{"version":3,"sources":["webpack:///./node_modules/aws-sdk/clients/athena.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/set.js","webpack:///./node_modules/aws-sdk/lib/protocol/json.js","webpack:///./node_modules/aws-sdk/lib/util.js","webpack:///./node_modules/aws-sdk/lib/signers/request_signer.js","webpack:///./node_modules/aws-sdk/clients/inspector.js","webpack:///./node_modules/aws-sdk/lib/xml/browser_parser.js","webpack:///./node_modules/jmespath/jmespath.js","webpack:///./node_modules/aws-sdk/lib/model/resource_waiter.js","webpack:///./node_modules/aws-sdk/clients/directconnect.js","webpack:///./node_modules/aws-sdk/clients/translate.js","webpack:///./node_modules/aws-sdk/clients/iam.js","webpack:///./node_modules/aws-sdk/lib/signers/v2.js","webpack:///./node_modules/aws-sdk/clients/cloudhsmv2.js","webpack:///./node_modules/aws-sdk/clients/dynamodbstreams.js","webpack:///./node_modules/aws-sdk/clients/apigateway.js","webpack:///./node_modules/aws-sdk/vendor/endpoint-cache/index.js","webpack:///./node_modules/aws-sdk/lib/signers/v4_credentials.js","webpack:///./node_modules/aws-sdk/lib/services/iotdata.js","webpack:///./node_modules/aws-sdk/clients/iotanalytics.js","webpack:///./node_modules/aws-sdk/lib/signers/presign.js","webpack:///./node_modules/aws-sdk/clients/elb.js","webpack:///./node_modules/aws-sdk/lib/services/machinelearning.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/converter.js","webpack:///./node_modules/aws-sdk/clients/browser_default.js","webpack:///./node_modules/aws-sdk/clients/codepipeline.js","webpack:///./node_modules/aws-sdk/clients/kinesis.js","webpack:///./node_modules/aws-sdk/lib/json/builder.js","webpack:///./node_modules/aws-sdk/clients/emr.js","webpack:///./node_modules/aws-sdk/lib/protocol/rest.js","webpack:///./node_modules/aws-sdk/lib/signers/v4.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/aws-sdk/clients/comprehend.js","webpack:///./node_modules/aws-sdk/clients/forecastservice.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/numberValue.js","webpack:///./node_modules/aws-sdk/lib/services/ec2.js","webpack:///./node_modules/aws-sdk/lib/http/xhr.js","webpack:///./node_modules/aws-sdk/clients/codebuild.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/aws-sdk/clients/lexruntime.js","webpack:///./node_modules/aws-sdk/lib/services/lambda.js","webpack:///./node_modules/aws-sdk/clients/firehose.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/v1.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideomedia.js","webpack:///./node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","webpack:///./node_modules/aws-sdk/lib/signers/v3.js","webpack:///./node_modules/aws-sdk/clients/location.js","webpack:///./node_modules/aws-sdk/clients/resourcegroups.js","webpack:///./node_modules/aws-sdk/clients/cloudhsm.js","webpack:///./node_modules/aws-sdk/lib/services/apigateway.js","webpack:///./node_modules/aws-sdk/lib/http.js","webpack:///./node_modules/aws-sdk/clients/configservice.js","webpack:///./node_modules/aws-sdk/clients/cloudwatchlogs.js","webpack:///./node_modules/aws-sdk/lib/core.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-element.js","webpack:///./node_modules/aws-sdk/lib/browser.js","webpack:///./node_modules/aws-sdk/lib/signers/s3.js","webpack:///./node_modules/aws-sdk/lib/credentials/temporary_credentials.js","webpack:///./node_modules/aws-sdk/clients/mediastoredata.js","webpack:///./node_modules/aws-sdk/lib/region/utils.js","webpack:///./node_modules/aws-sdk/clients/xray.js","webpack:///./node_modules/mdi-vue/icons.css?12ab","webpack:///./node_modules/aws-sdk/lib/model/paginator.js","webpack:///./node_modules/aws-sdk/lib/model/collection.js","webpack:///./node_modules/aws-sdk/lib/param_validator.js","webpack:///./node_modules/aws-sdk/clients/personalize.js","webpack:///./node_modules/aws-sdk/lib/services/s3.js","webpack:///./node_modules/aws-sdk/clients/gamelift.js","webpack:///./node_modules/aws-sdk/lib/signers/v3https.js","webpack:///./node_modules/aws-sdk/lib/discover_endpoint.js","webpack:///./node_modules/aws-sdk/lib/services/route53.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/translator.js","webpack:///./node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/aws-sdk/clients/devicefarm.js","webpack:///./node_modules/aws-sdk/lib/services/cloudfront.js","webpack:///./node_modules/aws-sdk/clients/waf.js","webpack:///./node_modules/aws-sdk/clients/connect.js","webpack:///./node_modules/aws-sdk/clients/efs.js","webpack:///./node_modules/aws-sdk/clients/cloudfront.js","webpack:///./node_modules/aws-sdk/lib/api_loader.js","webpack:///./node_modules/aws-sdk/lib/polly/presigner.js","webpack:///./node_modules/aws-sdk/clients/lexmodelbuildingservice.js","webpack:///./node_modules/aws-sdk/lib/config_regional_endpoint.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-node.js","webpack:///./node_modules/aws-sdk/lib/response.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","webpack:///./node_modules/aws-sdk/clients/route53domains.js","webpack:///./node_modules/aws-sdk/lib/services/rdsutil.js","webpack:///./node_modules/aws-sdk/clients/mobileanalytics.js","webpack:///./node_modules/aws-sdk/clients/iotdata.js","webpack:///./node_modules/aws-sdk/lib/config.js","webpack:///./node_modules/aws-sdk/clients/ecr.js","webpack:///./node_modules/aws-sdk/lib/xml/xml-text.js","webpack:///./node_modules/aws-sdk/clients/rekognition.js","webpack:///./node_modules/aws-sdk/lib/event-stream/parse-event.js","webpack:///./node_modules/node-libs-browser/node_modules/url/util.js","webpack:///./node_modules/aws-sdk/clients/costexplorer.js","webpack:///./node_modules/aws-sdk/clients/route53.js","webpack:///./node_modules/mdi-vue/Camera.vue?aa5c","webpack:///node_modules/mdi-vue/Camera.vue","webpack:///./node_modules/mdi-vue/Camera.vue?5b72","webpack:///./node_modules/mdi-vue/Camera.vue","webpack:///./node_modules/aws-sdk/lib/protocol/rest_xml.js","webpack:///./node_modules/aws-sdk/lib/sequential_executor.js","webpack:///./node_modules/node-libs-browser/node_modules/events/events.js","webpack:///./node_modules/aws-sdk/lib/query/query_param_serializer.js","webpack:///./node_modules/aws-sdk/clients/lexruntimev2.js","webpack:///./node_modules/aws-sdk/clients/opsworks.js","webpack:///./node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","webpack:///./node_modules/aws-sdk/lib/json/parser.js","webpack:///./node_modules/aws-sdk/clients/comprehendmedical.js","webpack:///./node_modules/aws-sdk/lib/request.js","webpack:///./node_modules/aws-sdk/clients/ecs.js","webpack:///./node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","webpack:///./node_modules/aws-sdk/lib/service.js","webpack:///./src/assets/colmedica_logo.png","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","webpack:///./node_modules/aws-sdk/clients/rds.js","webpack:///./node_modules/aws-sdk/clients/cognitoidentity.js","webpack:///./node_modules/aws-sdk/lib/protocol/helpers.js","webpack:///./node_modules/aws-sdk/clients/redshift.js","webpack:///./node_modules/aws-sdk/clients/lambda.js","webpack:///./node_modules/aws-sdk/clients/secretsmanager.js","webpack:///./node_modules/aws-sdk/clients/ssm.js","webpack:///./node_modules/aws-sdk/clients/polly.js","webpack:///./node_modules/aws-sdk/lib/services/sqs.js","webpack:///./node_modules/aws-sdk/lib/browser_loader.js","webpack:///./node_modules/aws-sdk/lib/event-stream/split-message.js","webpack:///./node_modules/aws-sdk/lib/xml/escape-attribute.js","webpack:///./node_modules/aws-sdk/clients/servicecatalog.js","webpack:///./node_modules/mdi-vue/Attachment.vue?8daa","webpack:///node_modules/mdi-vue/Attachment.vue","webpack:///./node_modules/mdi-vue/Attachment.vue?d238","webpack:///./node_modules/mdi-vue/Attachment.vue","webpack:///./node_modules/aws-sdk/node_modules/uuid/index.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/aws-sdk/clients/personalizeevents.js","webpack:///./node_modules/aws-sdk/clients/dynamodb.js","webpack:///./node_modules/aws-sdk/lib/model/shape.js","webpack:///./node_modules/aws-sdk/lib/event-stream/int64.js","webpack:///./node_modules/aws-sdk/lib/browserHashUtils.js","webpack:///./node_modules/aws-sdk/lib/services/polly.js","webpack:///./node_modules/aws-sdk/clients/machinelearning.js","webpack:///./node_modules/aws-sdk/clients/codecommit.js","webpack:///./node_modules/aws-sdk/clients/cloudtrail.js","webpack:///./node_modules/aws-sdk/lib/resource_waiter.js","webpack:///./node_modules/aws-sdk/clients/cognitosync.js","webpack:///./node_modules/aws-sdk/clients/autoscaling.js","webpack:///./node_modules/aws-sdk/node_modules/uuid/v4.js","webpack:///./node_modules/node-libs-browser/node_modules/url/url.js","webpack:///./node_modules/aws-sdk/lib/s3/managed_upload.js","webpack:///./node_modules/aws-sdk/lib/services/dynamodb.js","webpack:///./node_modules/aws-sdk/clients/storagegateway.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","webpack:///./node_modules/aws-sdk/clients/personalizeruntime.js","webpack:///./node_modules/aws-sdk/clients/s3.js","webpack:///./node_modules/aws-sdk/clients/elbv2.js","webpack:///./node_modules/aws-sdk/lib/event_listeners.js","webpack:///./node_modules/aws-sdk/clients/cloudformation.js","webpack:///./node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","webpack:///./node_modules/aws-sdk/clients/acm.js","webpack:///./node_modules/aws-sdk/lib/credentials/saml_credentials.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","webpack:///./node_modules/mdi-vue/browser-c94fd32b.js","webpack:///./node_modules/aws-sdk/clients/sns.js","webpack:///./node_modules/aws-sdk/clients/mturk.js","webpack:///./node_modules/aws-sdk/lib/rds/signer.js","webpack:///./node_modules/aws-sdk/lib/xml/builder.js","webpack:///./node_modules/aws-sdk/clients/cloudwatch.js","webpack:///./node_modules/aws-sdk/lib/browserSha1.js","webpack:///./node_modules/aws-sdk/clients/forecastqueryservice.js","webpack:///./node_modules/aws-sdk/lib/browserMd5.js","webpack:///./node_modules/aws-sdk/lib/services/sts.js","webpack:///./node_modules/aws-sdk/lib/browserSha256.js","webpack:///./node_modules/aws-sdk/lib/services/s3util.js","webpack:///./node_modules/aws-sdk/lib/protocol/query.js","webpack:///./node_modules/aws-sdk/clients/pricing.js","webpack:///./node_modules/aws-sdk/clients/workdocs.js","webpack:///./node_modules/aws-sdk/lib/cloudfront/signer.js","webpack:///./node_modules/aws-sdk/clients/cloudwatchevents.js","webpack:///./node_modules/aws-sdk/clients/kms.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/aws-sdk/clients/kinesisvideo.js","webpack:///./node_modules/aws-sdk/lib/model/operation.js","webpack:///./node_modules/aws-sdk/lib/realclock/browserClock.js","webpack:///./node_modules/aws-sdk/clients/iot.js","webpack:///./node_modules/aws-sdk/clients/applicationautoscaling.js","webpack:///./node_modules/aws-sdk/lib/region_config.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/document_client.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/aws-sdk/lib/dynamodb/types.js","webpack:///./node_modules/aws-sdk/clients/ec2.js","webpack:///./node_modules/aws-sdk/lib/event-stream/parse-message.js","webpack:///./node_modules/aws-sdk/clients/elastictranscoder.js","webpack:///./node_modules/aws-sdk/clients/cur.js","webpack:///./node_modules/aws-sdk/lib/browserCryptoLib.js","webpack:///./node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","webpack:///./node_modules/aws-sdk/lib/services/rds.js","webpack:///./node_modules/aws-sdk/lib/model/api.js","webpack:///./node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","webpack:///./node_modules/aws-sdk/clients/codedeploy.js","webpack:///./node_modules/aws-sdk/clients/sts.js","webpack:///./src/utils/evalmobile.js","webpack:///./node_modules/aws-sdk/lib/credentials.js","webpack:///./node_modules/aws-sdk/clients/sqs.js","webpack:///./node_modules/aws-sdk/lib/state_machine.js","webpack:///./node_modules/aws-sdk/lib/protocol/rest_json.js","webpack:///./node_modules/aws-sdk/clients/elasticache.js","webpack:///./node_modules/aws-sdk/clients/elasticbeanstalk.js","webpack:///./node_modules/aws-sdk/lib/browserHmac.js","webpack:///./node_modules/aws-sdk/clients/ses.js"],"names":["AWS","Service","apiLoader","services","Athena","defineService","Object","defineProperty","get","model","paginators","pagination","enumerable","configurable","module","exports","util","typeOf","memberTypeToSetType","DynamoDBSet","inherit","constructor","list","options","this","wrapperName","initialize","validate","self","values","concat","detectType","type","error","Error","code","message","length","i","toJSON","JsonBuilder","JsonParser","populateHostPrefix","buildRequest","req","httpRequest","api","service","target","targetPrefix","operations","operation","name","version","jsonVersion","input","builder","body","build","params","headers","extractError","resp","httpResponse","split","e","JSON","parse","toString","__type","Code","pop","Message","statusCode","statusMessage","extractData","request","config","convertResponseTypes","data","shape","output","parser","environment","engine","isBrowser","navigator","userAgent","process","platform","AWS_EXECUTION_ENV","agent","VERSION","uriEscape","string","encodeURIComponent","replace","escape","ch","charCodeAt","toUpperCase","uriEscapePath","parts","arrayEach","part","push","join","urlParse","url","urlFormat","format","queryStringParse","qs","querystring","queryParamsToString","items","sortedKeys","keys","sort","value","ename","result","Array","isArray","vals","item","undefined","readFileSync","path","base64","encode","buf","buffer","toBuffer","decode","encoding","Buffer","from","Uint8Array","alloc","size","fill","toStream","isBuffer","readable","stream","pos","_read","end","slice","buffers","offset","copy","byteLength","lstatSync","object","upperFirst","substr","lowerFirst","toLowerCase","ini","currentSection","map","line","section","match","fn","noop","callback","err","makeAsync","expectedArgs","args","prototype","call","arguments","apply","date","getDate","systemClockOffset","Date","getTime","iso8601","toISOString","rfc822","toUTCString","unixTimestamp","formatter","parseTimestamp","crypto","crc32Table","crc32","tbl","crc","readUInt8","hmac","key","digest","lib","createHmac","update","md5","hash","sha256","algorithm","createHash","sliceFn","arraySliceFn","ArrayBuffer","on","chunk","FileReader","out","index","reader","onerror","onload","_continueReading","back","readAsArrayBuffer","toHex","abort","each","iterFunction","hasOwnProperty","ret","array","idx","parseInt","obj1","obj2","merge","dupe","isEmpty","obj","prop","webkitSlice","mozSlice","isType","typeName","str","originalError","stack","writable","String","time","klass","features","newObject","ctor","__super__","mixin","hideProperties","props","property","isValue","opts","memoizedProperty","cachedValue","hoistPayloadMember","operationName","payload","hasEventOutput","payloadMember","members","responsePayload","computeSha256","done","isNode","Stream","fs","settings","start","createReadStream","sha","isClockSkewed","serverTime","Math","abs","applyClockOffset","extractRequestId","requestId","ResponseMetadata","RequestId","addPromises","constructors","PromiseDependency","deletePromises","getPromisesDependency","Promise","ind","deletePromisesFromClass","addPromisesToClass","promisifyMethod","methodName","resolve","reject","isDualstackAvailable","metadata","serviceIdentifier","dualstackAvailable","calculateRetryDelay","retryCount","retryDelayOptions","customBackoff","base","delay","random","pow","handleRequestWithRetries","cb","http","HttpClient","getInstance","httpOptions","errCallback","maxRetries","retryable","setTimeout","sendRequest","retryAfter","handleRequest","defer","uuid","v4","convertPayloadToString","rules","nextTick","setImmediate","getRequestPayloadShape","getProfilesFromSharedConfig","iniLoader","filename","profiles","profilesFromConfig","configOptInEnv","loadFrom","isConfig","sharedConfigFileEnv","profilesFromCreds","sharedCredentialsFileEnv","profileNames","objectAssign","source","ARN","indexOf","arn","matched","partition","region","accountId","resource","arnObject","defaultProfile","imdsDisabledEnv","Signers","RequestSigner","setServiceClientId","id","serviceClientId","getServiceClientId","getVersion","V2","V3","V4","S3","V3Https","Inspector","Shape","DomXmlParser","getElementByTagName","xml","tag","elements","getElementsByTagName","iLen","parentNode","parseXml","parseStructure","parseMap","parseList","parseUnknown","parseScalar","memberName","memberShape","isXmlAttribute","attributes","textContent","xmlChild","flattened","xmlNoDefaultLists","defaultValue","xmlKey","xmlValue","tagName","child","firstElementChild","nodeName","nextElementSibling","member","getAttribute","create","text","toType","childNodes","window","DOMParser","parseFromString","syntaxError","documentElement","isError","errorElement","ActiveXObject","async","loadXML","isObject","strictDeepEqual","first","second","firstType","keysSeen","key2","isFalse","objValues","trimLeft","TYPE_NUMBER","TYPE_ANY","TYPE_STRING","TYPE_ARRAY","TYPE_OBJECT","TYPE_BOOLEAN","TYPE_EXPREF","TYPE_NULL","TYPE_ARRAY_NUMBER","TYPE_ARRAY_STRING","TYPE_NAME_TABLE","0","1","2","3","4","5","6","7","8","9","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens","operatorStartToken","skipChars","isAlpha","isNum","isAlphaNum","Lexer","tokenize","identifier","token","tokens","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","current","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","Parser","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","types","avg","_functionAvg","ceil","_functionCeil","contains","_functionContains","_functionEndsWith","floor","_functionFloor","_functionLength","_functionMap","max","_functionMax","_functionMerge","variadic","_functionMaxBy","sum","_functionSum","_functionStartsWith","min","_functionMin","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","_functionSortBy","_functionJoin","reverse","_functionReverse","_functionToArray","_functionToString","_functionToNumber","_functionNotNull","compile","ast","lexer","search","expression","node","_loadTokens","_lookahead","t","_lookaheadToken","rbp","leftToken","_advance","left","nud","currentToken","led","number","right","Not","children","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","condition","Filter","leftNode","rightNode","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","exprTokens","expressions","keyToken","keyName","pairs","identifierTypes","visit","field","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","j","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","signature","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","expected","typeIdentifier","actual","argValue","subtype","lastIndexOf","searchStr","suffix","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","maxElement","localeCompare","minElement","listToSum","joinChar","listJoin","stringify","convertedValue","isNaN","sortedArray","requiredType","that","decorated","a","b","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","Infinity","minRecord","minNumber","allowedTypes","keyFunc","x","msg","ResourceWaiter","waiter","forEach","DirectConnect","Translate","IAM","waiters","addAuthorization","credentials","r","Timestamp","SignatureVersion","SignatureMethod","AWSAccessKeyId","accessKeyId","sessionToken","SecurityToken","Signature","secretAccessKey","stringToSign","method","endpoint","host","pathname","CloudHSMV2","DynamoDBStreams","APIGateway","LRU_1","CACHE_SIZE","EndpointCache","maxSize","cache","LRUCache","put","keyString","getKeyString","endpointRecord","populateValue","now","records","record","Expire","splice","remove","identifiers","identifierNames","identifierName","endpoints","Address","CachePeriodInMinutes","empty","cachedSecret","cacheQueue","maxCacheEntries","v4Identifier","createScope","serviceName","getSigningKey","shouldCache","credsIdentifier","cacheKey","kDate","kRegion","kService","signingKey","shift","emptyCache","blobPayloadOutputOps","IotData","validateService","setupRequestListeners","addListener","validateResponseBody","bodyCheck","trim","charAt","IoTAnalytics","expiresHeader","signedUrlBuilder","expires","signerClass","getSignerClass","getSkewCorrectedDate","signedUrlSigner","parsedUrl","queryParams","auth","rest","Presign","sign","expireTime","removeListener","EventListeners","Core","SET_CONTENT_LENGTH","COMPUTE_SHA256","emit","response","ELB","MachineLearning","buildEndpoint","PredictEndpoint","Endpoint","NumberValue","formatList","L","DynamoDB","Converter","convertNumber","wrapNumbers","Number","formatMap","M","formatted","formatSet","convertEmptyValues","filterEmptySetValues","set","nonEmptyValues","potentiallyEmptyTypes","Binary","convertInput","S","N","B","BOOL","NULL","marshall","convertOutput","unmarshall","ACM","ApplicationAutoScaling","AutoScaling","CloudFormation","CloudFront","CloudHSM","CloudTrail","CloudWatch","CloudWatchEvents","CloudWatchLogs","CodeBuild","CodeCommit","CodeDeploy","CodePipeline","CognitoIdentity","CognitoIdentityServiceProvider","CognitoSync","ConfigService","CUR","DeviceFarm","EC2","ECR","ECS","EFS","ElastiCache","ElasticBeanstalk","ELBv2","EMR","ElasticTranscoder","Firehose","GameLift","Iot","Kinesis","KMS","Lambda","LexRuntime","MarketplaceCommerceAnalytics","MTurk","MobileAnalytics","OpsWorks","Polly","RDS","Redshift","Rekognition","Route53","Route53Domains","ServiceCatalog","SES","SNS","SQS","SSM","StorageGateway","STS","XRay","WAF","WorkDocs","LexModelBuildingService","Pricing","CostExplorer","MediaStoreData","Comprehend","KinesisVideoArchivedMedia","KinesisVideoMedia","KinesisVideo","ResourceGroups","Connect","SecretsManager","ComprehendMedical","Personalize","PersonalizeEvents","PersonalizeRuntime","ForecastService","ForecastQueryService","KinesisVideoSignalingChannels","Location","LexRuntimeV2","translate","translateStructure","translateMap","translateList","translateScalar","structure","isDocument","struct","location","locationName","isLocationName","toWireFormat","populateMethod","httpMethod","generateURI","endpointPath","operationPath","uri","queryString","queryStringSet","paramValue","regex","RegExp","_","plus","val","populateURI","httpPath","populateHeaders","memberValue","isJsonValue","k","v","header","pattern","v4Credentials","signatureCache","signatureVersion","datetime","isPresigned","updateForPresigned","addHeaders","authorization","credString","credentialString","signedHeaders","isSignableHeader","lowerKey","sep","hexEncodedHash","canonicalString","canonicalHeaders","hexEncodedBodyHash","canonicalHeaderValues","unsignableHeaders","superCtor","super_","TempCtor","DynamoDBNumberValue","toNumber","Query","EXTRACT_ERROR","onAsync","buildCopySnapshotPresignedUrl","PresignedUrl","_subRequest","DestinationRegion","SourceRegion","svc","newReq","presign","XML","Errors","RequestID","EventEmitter","XHRClient","emitter","href","protocol","hostname","port","xhr","XMLHttpRequest","headersEmitted","addEventListener","status","readyState","HEADERS_RECEIVED","parseHeaders","getAllResponseHeaders","statusText","DONE","finishRequest","upload","evt","open","xhrAsync","setRequestHeader","timeout","xhrWithCredentials","withCredentials","responseType","send","rawHeaders","substring","ab","view","responseText","streamsApiVersion","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","f","isString","objects","inspect","len","isNull","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","recurseTimes","isFunction","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","isRegExp","isDate","braces","n","formatArray","formatProperty","reduceToSingleString","simple","isNumber","l","desc","reduce","prev","cur","numLinesEst","ar","arg","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","o","pad","debuglog","NODE_DEBUG","test","pid","months","timestamp","getHours","getMinutes","getSeconds","getMonth","log","inherits","origin","add","kCustomPromisifiedSymbol","Symbol","callbackifyOnRejected","reason","newReason","callbackify","TypeError","callbackified","maybeCb","then","rej","setPrototypeOf","getPrototypeOf","defineProperties","promisify","promiseResolve","promiseReject","promise","custom","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","v1","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","eventMessageChunker","parseEvent","createEventStream","eventMessages","events","headersToSign","h","setAcceptHeader","Accept","exportType","useSSL","sslEnabled","HttpRequest","_userAgent","setUserAgent","getUserAgentHeaderName","prefix","appendToUserAgent","agentPartial","getUserAgent","query","updateEndpoint","endpointStr","newEndpoint","HttpResponse","streaming","createUnbufferedStream","singleton","_hidden","Protocol","Json","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Paginator","SequentialExecutor","endpointCacheSize","escapeElement","subResources","responseHeaders","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","virtualHostedBucket","resources","param","subresource","decodeURIComponent","res","secret","TemporaryCredentials","Credentials","masterCredentials","loadMasterCredentials","expired","RoleArn","RoleSessionName","refresh","coalesceRefresh","load","createClients","assumeRole","getSessionToken","credentialsFrom","isFipsRegion","startsWith","endsWith","isGlobalRegion","includes","getRealRegion","paginator","input_token","limit_key","more_results","output_token","result_key","memoize","factory","nameTr","Collection","iterable","ParamValidator","validation","context","errors","validateMember","fail","validateStructure","paramName","validateType","required","memberContext","validateList","validateMap","validateScalar","validateRange","mapCount","validateString","validatePayload","validateNumber","validTypes","validateEnum","validatePattern","validateUri","descriptor","acceptedTypes","foundInvalidType","acceptedType","vowel","castedValue","parseFloat","Blob","resolveRegionalEndpointsFlag","s3util","regionUtil","operationsWith200StatusCodeError","regionRedirectErrorCodes","OBJECT_LAMBDA_SERVICE","getSignatureVersion","defaultApiVersion","userDefinedVersion","_originalConfig","regionDefinedVersion","getSigningName","_super","_parsedArn","messages","s3BucketEndpoint","shouldDisableBodySigning","s3DisableBodySigning","prependListener","validateScheme","validateBucketName","optInUsEast1RegionalEndpoint","VALIDATE_REGION","addContentType","computeContentMd5","computeSseCustomerKeyMd5","addExpect100Continue","extractErrorFrom200Response","prepareSignedUrl","disableBodySigning","isArnInParam","Bucket","validateS3AccessPointArn","validateArnResourceType","validateArnRegion","validateOutpostsAccessPointArn","validateOutpostsArn","validateArnAccount","validateArnService","populateUriFromAccessPointArn","validatePopulateUriFromArn","validateBucketEndpoint","correctBucketRegionFromCache","requestBucketRegion","reqRegionForNetworkingError","scheme","sensitive","SSECustomerKey","CopySourceSSECustomerKey","allowFipsEndpoint","bucket","Key","slashIndex","isValidAccelerateOperation","invalidOperations","s3UsEast1RegionalEndpoint","env","sharedConfig","clientConfig","insertPoint","regionalEndpoint","pathStyleBucketName","useAccelerateEndpoint","useDualstackEndpoint","removeVirtualHostedBucketFromPath","encodedS3Key","accessPointArn","isOutpostArn","isObjectLambdaArn","outpostsSuffix","outpostId","fipsSuffix","useFipsEndpoint","dualStackSuffix","dnsSuffix","getEndpointSuffix","useArnRegion","s3UseArnRegion","accessPoint","accesspointName","encodedArn","Body","contentType","replaceFn","charsetName","charset","willComputeChecksums","needsContentMD5","computeChecksums","ContentMD5","bucketName","s3ForcePathStyle","dnsCompatibleBucketName","retryableError","_requestRegionForBucket","bucketRegionCache","updateReqBucketRegion","s3Config","newConfig","Host","_asm","currentState","LocationConstraint","createBucketConfiguration","CreateBucketConfiguration","clearBucketRegionCache","extractRequestIds","cachedRegion","codes","304","403","400","404","Region","reqOperation","reqParams","MaxKeys","regionReq","getRegionReq","listObjects","buckets","requestRegion","extendedRequestId","cfId","getSignedUrl","Expires","makeRequest","createPresignedPost","boundParams","finalizePost","fields","preparePostFields","Fields","Conditions","getCredentials","conditions","expiresInSeconds","signingDate","shortDate","scope","credential","Policy","preparePostPolicy","valueOf","expiration","noPresignedContentLength","ContentLength","createBucket","copiedParams","globalEndpoint","writeGetObjectResponse","uploader","ManagedUpload","getSignedUrlPromise","endpointDiscoveryEnabledEnvs","getCacheKey","serviceId","marshallCustomIdentifiersHelper","endpointDiscoveryId","marshallCustomIdentifiers","optionalDiscoverEndpoint","operationModel","inputShape","endpointCache","endpointRequest","endpointOperation","Identifiers","addApiVersionHeader","VALIDATE_PARAMETERS","RETRY_CHECK","Endpoints","requestQueue","requiredDiscoverEndpoint","cacheKeyStr","pendingRequests","requestContext","apiVersion","invalidateCachedEndpoints","hasCustomEndpoint","client","endpointDiscoveryEnabled","svcConfig","Boolean","isFalsy","resolveEndpointDiscoveryConfig","configFile","sharedFileConfig","AWS_PROFILE","endpoint_discovery_enabled","discoverEndpoint","isEndpointDiscoveryRequired","endpointDiscoveryRequired","isEnabled","hasRequiredEndpointDiscovery","addNamedListener","className","invalidateCachedEndpoint","sanitizeUrl","convert","Translator","attrValue","translateInput","mode","translateOutput","WebIdentityCredentials","_clientConfig","assumeRoleWithWebIdentity","stsConfig","byteToHex","bth","Presigner","bindServiceObject","_operations","modifyInputMembers","modifiedInput","convertPostToGet","getSynthesizeSpeechUrl","removeAllListeners","validateRegionalEndpointsFlagValue","configValue","errorOptions","originalConfig","resolved","envFlag","profile","fileFlag","escapeAttribute","XmlNode","addAttribute","addChildNode","removeAttribute","hasChildren","xmlText","attributeNames","attributeName","attribute","c","jmespath","Response","redirectCount","numRetries","maxRedirects","nextPage","paginationConfig","hasNextPage","nextPageTokens","inputTokens","inputToken","cacheNextPageTokens","moreResults","exprs","outputToken","expr","getRandomValues","bind","msCrypto","rnds8","rnds","rdsutil","crossRegionOperations","PreSignedUrl","doesParamValidation","paramValidation","buildCrossRegionPresignedUrl","destinationRegion","PromisesDependency","Config","extractCredentials","finish","credError","getAsyncCredentials","getStaticCredentials","credentialProvider","creds","allowUnknownKeys","hasService","loadFromPath","clear","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","unshift","logger","apiVersions","correctClockSkew","customUserAgent","dynamoDbCrc32","clientSideMonitoring","hostPrefixEnabled","stsRegionalEndpoints","setPromisesDependency","dep","Request","XmlText","parseMessage","parsedMessage","messageType","parseError","eventType","eventModel","eventPayloadMemberName","payloadShape","eventHeaderNames","eventHeaderMemberNames","errorCode","errorMessage","render","_h","_vm","_c","class","staticClass","spin","attrs","role","ariaLabel","width","height","viewBox","xmlns","_v","_s","title","_e","staticRenderFns","default","component","populateBody","rootElement","toXML","isEventStream","isStreaming","_events","listeners","eventName","listener","toHead","_isAsync","position","eventArgs","doneCallback","count","callListeners","prevError","callNextListener","_haltHandlersOnError","addListeners","event","callbacks","addNamedAsyncListener","addNamedListeners","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","Function","ProcessEmitWarning","warning","warn","ownKeys","getOwnPropertySymbols","NumberIsNaN","init","once","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","m","existing","newListener","w","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","arr","spliceOne","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","removeEventListener","RangeError","setMaxListeners","getMaxListeners","doError","er","prependOnceListener","originalListener","off","rawListeners","eventNames","QueryParamSerializer","ucfirst","isQueryName","serializeStructure","serializeMember","serializeMap","valueName","serializeList","memberRules","serialize","LinkedListNode","nodeMap","sizeLimit","prependToList","headerNode","next","tailNode","removeFromTail","prevNode","detachFromList","key_1","newNode","shapeMembers","AcceptorStateMachine","domain","hardErrorStates","success","complete","isTerminalState","machine","fsm","setupStates","transition","Domain","domainEmitter","domainThrown","addState","signingRegion","isGlobalEndpoint","active","startTime","states","emitEvent","runTo","didCallback","_abortCallback","eachPage","wrappedCallback","eachItem","resultKey","continueIteration","isPageable","streams","PassThrough","sent","HTTP_DATA","HTTP_ERROR","expectedLen","shouldCheckContentLength","receivedLen","checkContentLengthAndEmit","httpStream","lengthAccumulator","_write","unpipe","pipe","eventParameters","origEmit","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","haltHandlersOnError","CognitoIdentityCredentials","localStorageKey","_identityId","loadCachedId","IdentityId","identityId","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","poolId","IdentityPoolId","loginId","LoginId","storage","cognito","loadCredentials","AccessKeyId","SecretKey","SessionToken","Expiration","cacheId","getOpenIdToken","WebIdentityToken","Token","webIdentityCredentials","webErr","sts","getStorage","Logins","actualProviders","cachedProviders","intersect","filter","cognitoConfig","setStorage","localStorage","regionConfig","clientCount","region_utils","loadServiceClass","useDualstack","ServiceClass","_clientId","configureEndpoint","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","serviceConfig","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","selectedVersion","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","wait","serviceInterface","CorePost","Logger","apiCallEvent","monitoringEvent","Type","Version","endpointPrefix","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","attemptTimestamp","attemptStartRealTime","attemptLatency","callStartRealTime","callTimestamp","attemptCount","addToHead","realClock","round","AttemptLatency","AttemptCount","latency","Latency","signingName","authtype","successfulResponse","retryDelays","timeoutError","networkingError","expiredCredentialsError","throttledError","clockSkewError","newServerTime","throwException","defineMethods","versions","_serviceMap","addVersions","Publisher","configProvider","publisherConfig","enabled","superclass","setApi","isApi","attachOn","baseClass","eq","regexp","maxKeys","kstr","vstr","xs","hasEndpointDiscover","hostPrefix","hostPrefixNotation","expandHostPrefix","prependEndpointPrefix","validateHostname","isEndpointOperation","hostLabel","labels","hostPattern","label","verifySendMessageChecksum","verifySendMessageBatchChecksum","verifyReceiveMessageChecksum","MD5OfMessageBody","MessageBody","calculatedMd5","calculateChecksum","throwInvalidChecksumError","MessageId","entries","messageIds","Successful","entry","Id","Entries","isChecksumValid","Messages","MD5OfBody","ids","checksum","QueueUrl","matches","browser","PRELUDE_MEMBER_LENGTH","PRELUDE_LENGTH","CHECKSUM_LENGTH","MINIMUM_MESSAGE_LENGTH","splitMessage","readUInt32BE","expectedPreludeChecksum","expectedMessageChecksum","headersStart","headersEnd","root","nodeType","freeGlobal","global","punycode","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","fromCharCode","mapDomain","encoded","ucs2decode","extra","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","toASCII","enum","xmlName","queryName","requiresLength","isComposite","idempotencyToken","jsonvalue","eventstream","eventpayload","eventheader","timestampFormat","isTimestampFormatSet","endpointdiscoveryid","documentation","documentationUrl","xmlAttribute","CompositeShape","StructureShape","requiredMap","firstInit","isShape","document","xmlOrder","memberNames","isEventPayload","isEventHeader","resultWrapper","xmlNamespace","ListShape","oldName","MapShape","TimestampShape","StringShape","nullLessProtocols","FloatShape","IntegerShape","BinaryShape","isSensitive","secureBuf","Base64Shape","BooleanShape","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","refShape","shapes","filteredKeys","InlineShape","origType","Int64","bytes","negate","fromNumber","remaining","negative","isView","viewStrings","isEmptyData","convertToBuffer","byteOffset","BYTES_PER_ELEMENT","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","matchers","argument","setSuccess","setError","loadWaiterConfig","pathAll","results","numResults","pathAny","retryDelay","$waiter","maxAttempts","ii","Url","slashes","urlResolve","resolveObject","urlResolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","u","relative","queryIndex","splitter","uSplit","slashRegex","simplePath","exec","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","p","ae","esc","qm","s","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","last","hasTrailingSlash","up","isAbsolute","completeInfo","fillQueue","configure","partSize","minPartSize","queueSize","leavePartsOnError","tags","validateBody","adjustTotalBytes","maxTotalParts","failed","runFill","fillBuffer","fillStream","partBuffers","cleanup","isDoneChunking","numParts","totalPartNumbers","doneParts","finishMultiPart","singlePart","totalBytes","newPartSize","partPos","totalChunkedBytes","totalUploadedBytes","activeParts","multipartReq","partBufferLength","bodyLen","nextChunk","endPos","read","pbuf","isDoneSending","partNumber","Tagging","getTaggingHeader","putObject","_managedUpload","progress","finishSinglePart","ETag","UploadId","uploadPart","queueChunks","createMultipartUpload","kvPairStrings","Value","partParams","PartNumber","partInfo","_lastUploadedBytes","resume","abortMultipartUpload","completeParams","MultipartUpload","Parts","completeMultipartUpload","putObjectTagging","TagSet","httpReq","info","loaded","total","EXTRACT_DATA","checkCrc32","crc32IsValid","ChainableTemporaryCredentials","tokenCodeFn","SerialNumber","getTokenCode","tokenCode","TokenCode","DISCOVER_ENDPOINT","getOperationAuthtype","addAsync","dnsHostRegex","idempotentMembers","isNonStreamingPayload","httpChecksumRequired","SignerClass","signer","signedAt","httpResp","errCode","executeSend","timeDiff","numBytes","dateHeader","redirect","willRetry","isDNSError","errno","getSystemErrorName","buildMessage","write","filterSensitiveLog","subShapeName","subShape","ansi","isTTY","censoredParams","defaultProviders","resolveCallbacks","resolveNext","provider","getErr","resolvePromise","SAMLCredentials","assumeRoleWithSAML","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","originalRender","beforeCreate","isOldIE","addStyle","HEAD","css","group","media","Set","has","sources","btoa","unescape","element","createElement","setAttribute","head","appendChild","styleSheet","cssText","textNode","createTextNode","nodes","removeChild","insertBefore","requiredAuthTokenOptions","username","Signer","convertUrlToAuthToken","getAuthToken","hasCallback","optionsValidation","validateAuthTokenOptions","serviceOptions","modifyRequestForAuthToken","Action","DBUser","XmlBuilder","serializeScalar","applyNamespaces","entryKey","entryValue","isRoot","xmlNamespaceUri","xmlNamespacePrefix","noEmpty","hashUtils","BLOCK_SIZE","DIGEST_LENGTH","Uint32Array","Sha1","h0","h1","h2","h3","h4","block","totalLength","finished","byte","processBlock","outView","DataView","setUint32","temp","Md5","bufferLength","bytesHashed","cmn","ff","gg","hh","sourceData","setUint8","hashBuffer","_a","undecoratedLength","bitsHashed","buff","getUint32","ENV_REGIONAL_ENDPOINT_ENABLED","CONFIG_REGIONAL_ENDPOINT_ENABLED","SecretAccessKey","optInRegionalEndpoint","KEY","MAX_HASHABLE_LENGTH","Sha256","Int32Array","bufferView","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","t1","t2","inputMembers","parsedArn","accessPointPrefix","loadUseArnRegionConfig","regionFromArn","clientRegion","envName","configName","ipAddress","dots","origRules","tmp","_XAMZRequestId","requestIdShape","base64Encode","queryEncode","replacements","signPolicy","policy","privateKey","createSign","signWithCannedPolicy","keyPairId","Statement","Resource","Condition","DateLessThan","signWithCustomPolicy","determineScheme","getRtmpUrl","rtmpUrl","parsed","getResource","handleError","handleSuccess","getSignedCookie","signatureHash","cookieHash","signedUrl","requestUri","endpointdiscovery","httpChecksum","requestChecksumRequired","isIdempotent","hasEventStream","topLevelShape","performance","generateRegionPrefix","derivedKeys","regionPrefix","applyConfig","dualstackFipsRules","fipsRules","dualstackRules","patterns","regionRegexes","defaultSuffix","regexes","regionPattern","DocumentClient","putItem","Item","makeServiceRequest","setupRequest","setupResponse","serviceClientOperationsMap","batchGet","batchWrite","delete","scan","transactGet","transactWrite","createSet","getTranslator","translator","rawParams","outputShape","stringifyPrimitive","isFinite","objectKeys","ks","isBinary","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","nameLength","readInt8","readInt16BE","readInt32BE","binaryLength","readUInt16BE","stringLength","uuidChars","Hmac","alg","addEndpointOperation","endpointoperation","serviceAbbreviation","serviceFullName","Android","BlackBerry","iOS","Opera","Windows","any","refreshCallbacks","expiryWindow","needsRefresh","currentTime","adjustedTime","sync","getPromise","refreshPromise","finalState","bindObject","inputError","accept","acceptState","failState","applyContentTypeHeader","hashCtor","outer","inner","bufferFromSecret","bufferHash","toHash"],"mappings":"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","file":"js/chunk-0c4f9731.9475a59d.js","sourcesContent":["require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0]; // remove comments\n var section = line.match(/^\\s*\\[([^\\[\\]]+)\\]\\s*$/);\n if (section) {\n currentSection = section[1];\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var item = line.match(/^\\s*(.+?)\\s*=\\s*(.+?)\\s*$/);\n if (item) {\n map[currentSection] = map[currentSection] || {};\n map[currentSection][item[1]] = item[2];\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) err.originalError = originalError;\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TYPE_NAME_TABLE = {\n 0: 'number',\n 1: 'any',\n 2: 'string',\n 3: 'array',\n 4: 'object',\n 5: 'boolean',\n 6: 'expression',\n 7: 'null',\n 8: 'Array',\n 9: 'Array'\n };\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n }\n return node;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n }\n return this._parseMultiselectList();\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n }\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n }\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value !== null && isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n }\n return null;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n var expected = currentSpec\n .map(function(typeIdentifier) {\n return TYPE_NAME_TABLE[typeIdentifier];\n })\n .join(',');\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + expected +\n \" but received type \" +\n TYPE_NAME_TABLE[actualType] + \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","var util = require('../util');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction populateMethod(req) {\n req.httpRequest.method = req.service.api.operations[req.operation].httpMethod;\n}\n\nfunction generateURI(endpointPath, operationPath, input, params) {\n var uri = [endpointPath, operationPath].join('/');\n uri = uri.replace(/\\/+/g, '/');\n\n var queryString = {}, queryStringSet = false;\n util.each(input.members, function (name, member) {\n var paramValue = params[name];\n if (paramValue === null || paramValue === undefined) return;\n if (member.location === 'uri') {\n var regex = new RegExp('\\\\{' + member.name + '(\\\\+)?\\\\}');\n uri = uri.replace(regex, function(_, plus) {\n var fn = plus ? util.uriEscapePath : util.uriEscape;\n return fn(String(paramValue));\n });\n } else if (member.location === 'querystring') {\n queryStringSet = true;\n\n if (member.type === 'list') {\n queryString[member.name] = paramValue.map(function(val) {\n return util.uriEscape(member.member.toWireFormat(val).toString());\n });\n } else if (member.type === 'map') {\n util.each(paramValue, function(key, value) {\n if (Array.isArray(value)) {\n queryString[key] = value.map(function(val) {\n return util.uriEscape(String(val));\n });\n } else {\n queryString[key] = util.uriEscape(String(value));\n }\n });\n } else {\n queryString[member.name] = util.uriEscape(member.toWireFormat(paramValue).toString());\n }\n }\n });\n\n if (queryStringSet) {\n uri += (uri.indexOf('?') >= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/broofa/node-uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1135.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","export * from \"-!../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../vue-loader/lib/loaders/stylePostLoader.js!../postcss-loader/src/index.js??ref--6-oneOf-1-2!./icons.css?vue&type=style&index=0&lang=css&\"","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","var render = function (_h,_vm) {var _c=_vm._c;return _c('span',{class:[_vm.data.staticClass, 'mdi', 'mdi-camera', _vm.props.spin ? 'mdi-spin' : undefined],attrs:{\"role\":_vm.props.role,\"aria-label\":_vm.props.ariaLabel}},[_c('svg',{attrs:{\"fill\":\"currentColor\",\"width\":_vm.props.width || _vm.props.size,\"height\":_vm.props.height || _vm.props.size,\"viewBox\":_vm.props.viewBox,\"xmlns\":_vm.props.xmlns}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('path',{attrs:{\"d\":\"M4,4H7L9,2H15L17,4H20A2,2 0 0,1 22,6V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9Z\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n