├── README.md ├── elb.log ├── lambda.js ├── lambda.zip ├── node_modules ├── async │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── component.json │ ├── lib │ │ └── async.js │ └── package.json ├── aws-sdk │ ├── .jshintrc │ ├── .npmignore │ ├── CONTRIBUTING.md │ ├── LICENSE.txt │ ├── NOTICE.txt │ ├── README.md │ ├── UPGRADING.md │ ├── apis │ │ ├── autoscaling-2011-01-01.min.json │ │ ├── autoscaling-2011-01-01.paginators.json │ │ ├── cloudformation-2010-05-15.min.json │ │ ├── cloudformation-2010-05-15.paginators.json │ │ ├── cloudfront-2014-11-06.min.json │ │ ├── cloudfront-2014-11-06.paginators.json │ │ ├── cloudfront-2014-11-06.waiters.json │ │ ├── cloudhsm-2014-05-30.min.json │ │ ├── cloudsearch-2011-02-01.min.json │ │ ├── cloudsearch-2011-02-01.paginators.json │ │ ├── cloudsearch-2013-01-01.min.json │ │ ├── cloudsearch-2013-01-01.paginators.json │ │ ├── cloudsearchdomain-2013-01-01.min.json │ │ ├── cloudtrail-2013-11-01.min.json │ │ ├── cloudtrail-2013-11-01.paginators.json │ │ ├── codedeploy-2014-10-06.min.json │ │ ├── cognito-identity-2014-06-30.min.json │ │ ├── cognito-sync-2014-06-30.min.json │ │ ├── config-2014-11-12.min.json │ │ ├── datapipeline-2012-10-29.min.json │ │ ├── datapipeline-2012-10-29.paginators.json │ │ ├── directconnect-2012-10-25.min.json │ │ ├── directconnect-2012-10-25.paginators.json │ │ ├── dynamodb-2011-12-05.min.json │ │ ├── dynamodb-2011-12-05.paginators.json │ │ ├── dynamodb-2011-12-05.waiters.json │ │ ├── dynamodb-2012-08-10.min.json │ │ ├── dynamodb-2012-08-10.paginators.json │ │ ├── dynamodb-2012-08-10.waiters.json │ │ ├── ec2-2014-10-01.min.json │ │ ├── ec2-2014-10-01.paginators.json │ │ ├── ec2-2014-10-01.waiters.json │ │ ├── ecs-2014-11-13.min.json │ │ ├── elasticache-2015-02-02.min.json │ │ ├── elasticache-2015-02-02.paginators.json │ │ ├── elasticbeanstalk-2010-12-01.min.json │ │ ├── elasticbeanstalk-2010-12-01.paginators.json │ │ ├── elasticloadbalancing-2012-06-01.min.json │ │ ├── elasticloadbalancing-2012-06-01.paginators.json │ │ ├── elasticmapreduce-2009-03-31.min.json │ │ ├── elasticmapreduce-2009-03-31.paginators.json │ │ ├── elastictranscoder-2012-09-25.min.json │ │ ├── elastictranscoder-2012-09-25.paginators.json │ │ ├── elastictranscoder-2012-09-25.waiters.json │ │ ├── email-2010-12-01.min.json │ │ ├── email-2010-12-01.paginators.json │ │ ├── email-2010-12-01.waiters.json │ │ ├── glacier-2012-06-01.min.json │ │ ├── glacier-2012-06-01.paginators.json │ │ ├── glacier-2012-06-01.waiters.json │ │ ├── iam-2010-05-08.min.json │ │ ├── iam-2010-05-08.paginators.json │ │ ├── importexport-2010-06-01.min.json │ │ ├── importexport-2010-06-01.paginators.json │ │ ├── kinesis-2013-12-02.min.json │ │ ├── kinesis-2013-12-02.paginators.json │ │ ├── kms-2014-11-01.min.json │ │ ├── lambda-2014-11-11.min.json │ │ ├── lambda-2014-11-11.paginators.json │ │ ├── logs-2014-03-28.min.json │ │ ├── logs-2014-03-28.paginators.json │ │ ├── metadata.json │ │ ├── monitoring-2010-08-01.min.json │ │ ├── monitoring-2010-08-01.paginators.json │ │ ├── opsworks-2013-02-18.min.json │ │ ├── opsworks-2013-02-18.paginators.json │ │ ├── rds-2013-01-10.min.json │ │ ├── rds-2013-01-10.paginators.json │ │ ├── rds-2013-02-12.min.json │ │ ├── rds-2013-02-12.paginators.json │ │ ├── rds-2013-09-09.min.json │ │ ├── rds-2013-09-09.paginators.json │ │ ├── rds-2013-09-09.waiters.json │ │ ├── rds-2014-10-31.min.json │ │ ├── rds-2014-10-31.paginators.json │ │ ├── rds-2014-10-31.waiters.json │ │ ├── redshift-2012-12-01.min.json │ │ ├── redshift-2012-12-01.paginators.json │ │ ├── redshift-2012-12-01.waiters.json │ │ ├── route53-2013-04-01.min.json │ │ ├── route53-2013-04-01.paginators.json │ │ ├── route53domains-2014-05-15.min.json │ │ ├── route53domains-2014-05-15.paginators.json │ │ ├── s3-2006-03-01.min.json │ │ ├── s3-2006-03-01.paginators.json │ │ ├── s3-2006-03-01.waiters.json │ │ ├── sdb-2009-04-15.min.json │ │ ├── sdb-2009-04-15.paginators.json │ │ ├── sns-2010-03-31.min.json │ │ ├── sns-2010-03-31.paginators.json │ │ ├── sqs-2012-11-05.min.json │ │ ├── sqs-2012-11-05.paginators.json │ │ ├── ssm-2014-11-06.min.json │ │ ├── storagegateway-2013-06-30.min.json │ │ ├── storagegateway-2013-06-30.paginators.json │ │ ├── sts-2011-06-15.min.json │ │ ├── support-2013-04-15.min.json │ │ ├── support-2013-04-15.paginators.json │ │ ├── swf-2012-01-25.min.json │ │ └── swf-2012-01-25.paginators.json │ ├── bower.json │ ├── dist-tools │ │ ├── browser-builder.js │ │ ├── service-collector.js │ │ └── transform.js │ ├── index.js │ ├── lib │ │ ├── api_loader.js │ │ ├── aws.js │ │ ├── browser.js │ │ ├── config.js │ │ ├── core.js │ │ ├── credentials.js │ │ ├── credentials │ │ │ ├── cognito_identity_credentials.js │ │ │ ├── credential_provider_chain.js │ │ │ ├── ec2_metadata_credentials.js │ │ │ ├── environment_credentials.js │ │ │ ├── file_system_credentials.js │ │ │ ├── saml_credentials.js │ │ │ ├── shared_ini_file_credentials.js │ │ │ ├── temporary_credentials.js │ │ │ └── web_identity_credentials.js │ │ ├── event_listeners.js │ │ ├── http.js │ │ ├── http │ │ │ ├── node.js │ │ │ └── xhr.js │ │ ├── json │ │ │ ├── builder.js │ │ │ └── parser.js │ │ ├── metadata_service.js │ │ ├── model │ │ │ ├── api.js │ │ │ ├── collection.js │ │ │ ├── operation.js │ │ │ ├── paginator.js │ │ │ ├── resource_waiter.js │ │ │ └── shape.js │ │ ├── param_validator.js │ │ ├── protocol │ │ │ ├── json.js │ │ │ ├── query.js │ │ │ ├── rest.js │ │ │ ├── rest_json.js │ │ │ └── rest_xml.js │ │ ├── query │ │ │ └── query_param_serializer.js │ │ ├── region_config.js │ │ ├── region_config.json │ │ ├── request.js │ │ ├── resource_waiter.js │ │ ├── response.js │ │ ├── s3 │ │ │ └── managed_upload.js │ │ ├── sequential_executor.js │ │ ├── service.js │ │ ├── services.js │ │ ├── services │ │ │ ├── cloudfront.js │ │ │ ├── cloudsearchdomain.js │ │ │ ├── cognitoidentity.js │ │ │ ├── dynamodb.js │ │ │ ├── ec2.js │ │ │ ├── glacier.js │ │ │ ├── route53.js │ │ │ ├── s3.js │ │ │ ├── sqs.js │ │ │ ├── sts.js │ │ │ └── swf.js │ │ ├── signers │ │ │ ├── presign.js │ │ │ ├── request_signer.js │ │ │ ├── s3.js │ │ │ ├── v2.js │ │ │ ├── v3.js │ │ │ ├── v3https.js │ │ │ └── v4.js │ │ ├── state_machine.js │ │ ├── util.js │ │ └── xml │ │ │ ├── browser_parser.js │ │ │ ├── builder.js │ │ │ └── node_parser.js │ ├── node_modules │ │ ├── xml2js │ │ │ ├── .npmignore │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── lib │ │ │ │ └── xml2js.js │ │ │ ├── node_modules │ │ │ │ └── sax │ │ │ │ │ ├── AUTHORS │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── README.md │ │ │ │ │ ├── examples │ │ │ │ │ ├── big-not-pretty.xml │ │ │ │ │ ├── example.js │ │ │ │ │ ├── get-products.js │ │ │ │ │ ├── hello-world.js │ │ │ │ │ ├── not-pretty.xml │ │ │ │ │ ├── pretty-print.js │ │ │ │ │ ├── shopping.xml │ │ │ │ │ ├── strict.dtd │ │ │ │ │ ├── switch-bench.js │ │ │ │ │ ├── test.html │ │ │ │ │ └── test.xml │ │ │ │ │ ├── lib │ │ │ │ │ └── sax.js │ │ │ │ │ ├── package.json │ │ │ │ │ └── test │ │ │ │ │ ├── buffer-overrun.js │ │ │ │ │ ├── case.js │ │ │ │ │ ├── cdata-chunked.js │ │ │ │ │ ├── cdata-end-split.js │ │ │ │ │ ├── cdata-fake-end.js │ │ │ │ │ ├── cdata-multiple.js │ │ │ │ │ ├── cdata.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── issue-23.js │ │ │ │ │ ├── issue-30.js │ │ │ │ │ ├── issue-35.js │ │ │ │ │ ├── issue-47.js │ │ │ │ │ ├── issue-49.js │ │ │ │ │ ├── parser-position.js │ │ │ │ │ ├── script.js │ │ │ │ │ ├── self-closing-child-strict.js │ │ │ │ │ ├── self-closing-child.js │ │ │ │ │ ├── self-closing-tag.js │ │ │ │ │ ├── stray-ending.js │ │ │ │ │ ├── trailing-non-whitespace.js │ │ │ │ │ ├── unquoted.js │ │ │ │ │ ├── xmlns-issue-41.js │ │ │ │ │ ├── xmlns-rebinding.js │ │ │ │ │ ├── xmlns-strict.js │ │ │ │ │ ├── xmlns-unbound.js │ │ │ │ │ ├── xmlns-xml-default-ns.js │ │ │ │ │ ├── xmlns-xml-default-prefix-attribute.js │ │ │ │ │ ├── xmlns-xml-default-prefix.js │ │ │ │ │ └── xmlns-xml-default-redefine.js │ │ │ └── package.json │ │ └── xmlbuilder │ │ │ ├── .npmignore │ │ │ ├── README.md │ │ │ ├── lib │ │ │ ├── XMLBuilder.js │ │ │ ├── XMLFragment.js │ │ │ └── index.js │ │ │ └── package.json │ ├── package.json │ ├── scripts │ │ ├── console │ │ ├── lib │ │ │ └── translator.js │ │ └── translate-api │ └── testem.json └── underscore │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── underscore-min.js │ ├── underscore-min.map │ └── underscore.js ├── test.js └── zip_lambda.sh /README.md: -------------------------------------------------------------------------------- 1 | # ELB Percentiles to CloudWatch 2 | 3 | Analyse AWS ELB logs with AWS Lambda and put percentile metrics to AWS CloudWatch 4 | 5 | A small demonstration project to show how easy it is to 6 | - analyse AWS ElasticLoadBalancer (ELB) access logs 7 | - with the new AWS Lambda functionality (Node.js) 8 | - to get detailed and meaningful statistics (percentiles per url and method) 9 | - into AWS CloudWatch 10 | 11 | -------------------------------------------------------------------------------- /lambda.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/atombrenner/elb-lambda-analyse/754ac9d11632f237fa94dca2359303a14296dacb/lambda.zip -------------------------------------------------------------------------------- /node_modules/async/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "0.10" 4 | -------------------------------------------------------------------------------- /node_modules/async/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2014 Caolan McMahon 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /node_modules/async/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "async", 3 | "repo": "caolan/async", 4 | "description": "Higher-order functions and common patterns for asynchronous code", 5 | "version": "0.1.23", 6 | "keywords": [], 7 | "dependencies": {}, 8 | "development": {}, 9 | "main": "lib/async.js", 10 | "scripts": [ "lib/async.js" ] 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/.npmignore: -------------------------------------------------------------------------------- 1 | .yard* 2 | .eslintrc 3 | .travis.yml 4 | .gitignore 5 | apis/*.normal.json 6 | configuration 7 | configuration.sample 8 | coverage 9 | dist 10 | doc 11 | doc-src 12 | eslint-rules 13 | Gemfile 14 | Gemfile.lock 15 | features 16 | Rakefile 17 | test 18 | tasks 19 | vendor 20 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to the AWS SDK for JavaScript 2 | 3 | We work hard to provide a high-quality and useful SDK, and we greatly value 4 | feedback and contributions from our community. Whether it's a bug report, 5 | new feature, correction, or additional documentation, we welcome your issues 6 | and pull requests. Please read through this document before submitting any 7 | issues or pull requests to ensure we have all the necessary information to 8 | effectively respond to your bug report or contribution. 9 | 10 | 11 | ## Filing Bug Reports 12 | 13 | You can file bug reports against the SDK on the [GitHub issues][issues] page. 14 | 15 | If you are filing a report for a bug or regression in the SDK, it's extremely 16 | helpful to provide as much information as possible when opening the original 17 | issue. This helps us reproduce and investigate the possible bug without having 18 | to wait for this extra information to be provided. Please read the following 19 | guidelines prior to filing a bug report. 20 | 21 | 1. Search through existing [issues][] to ensure that your specific issue has 22 | not yet been reported. If it is a common issue, it is likely there is 23 | already a bug report for your problem. 24 | 25 | 2. Ensure that you have tested the latest version of the SDK. Although you 26 | may have an issue against an older version of the SDK, we cannot provide 27 | bug fixes for old versions. It's also possible that the bug may have been 28 | fixed in the latest release. 29 | 30 | 3. Provide as much information about your environment, SDK version, and 31 | relevant dependencies as possible. For example, let us know what version 32 | of Node.js you are using, or if it's a browser issue, which browser you 33 | are using. If the issue only occurs with a specific dependency loaded, 34 | please provide that dependency name and version. 35 | 36 | 4. Provide a minimal test case that reproduces your issue or any error 37 | information you related to your problem. We can provide feedback much 38 | more quickly if we know what operations you are calling in the SDK. If 39 | you cannot provide a full test case, provide as much code as you can 40 | to help us diagnose the problem. Any relevant information should be provided 41 | as well, like whether this is a persistent issue, or if it only occurs 42 | some of the time. 43 | 44 | 45 | ## Submitting Pull Requests 46 | 47 | We are always happy to receive code and documentation contributions to the SDK. 48 | Please be aware of the following notes prior to opening a pull request: 49 | 50 | 1. The SDK is released under the [Apache license][license]. Any code you submit 51 | will be released under that license. For substantial contributions, we may 52 | ask you to sign a [Contributor License Agreement (CLA)][cla]. 53 | 54 | 2. If you would like to implement support for a significant feature that is not 55 | yet available in the SDK, please talk to us beforehand to avoid any 56 | duplication of effort. 57 | 58 | [issues]: https://github.com/aws/aws-sdk-js/issues 59 | [pr]: https://github.com/aws/aws-sdk-js/pulls 60 | [license]: http://aws.amazon.com/apache2.0/ 61 | [cla]: http://en.wikipedia.org/wiki/Contributor_License_Agreement 62 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/NOTICE.txt: -------------------------------------------------------------------------------- 1 | AWS SDK for JavaScript 2 | Copyright 2012-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | 4 | This product includes software developed at 5 | Amazon Web Services, Inc. (http://aws.amazon.com/). 6 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/autoscaling-2011-01-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeAutoScalingGroups": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "limit_key": "MaxRecords", 7 | "result_key": "AutoScalingGroups" 8 | }, 9 | "DescribeAutoScalingInstances": { 10 | "input_token": "NextToken", 11 | "output_token": "NextToken", 12 | "limit_key": "MaxRecords", 13 | "result_key": "AutoScalingInstances" 14 | }, 15 | "DescribeLaunchConfigurations": { 16 | "input_token": "NextToken", 17 | "output_token": "NextToken", 18 | "limit_key": "MaxRecords", 19 | "result_key": "LaunchConfigurations" 20 | }, 21 | "DescribeNotificationConfigurations": { 22 | "input_token": "NextToken", 23 | "output_token": "NextToken", 24 | "limit_key": "MaxRecords", 25 | "result_key": "NotificationConfigurations" 26 | }, 27 | "DescribePolicies": { 28 | "input_token": "NextToken", 29 | "output_token": "NextToken", 30 | "limit_key": "MaxRecords", 31 | "result_key": "ScalingPolicies" 32 | }, 33 | "DescribeScalingActivities": { 34 | "input_token": "NextToken", 35 | "output_token": "NextToken", 36 | "limit_key": "MaxRecords", 37 | "result_key": "Activities" 38 | }, 39 | "DescribeScheduledActions": { 40 | "input_token": "NextToken", 41 | "output_token": "NextToken", 42 | "limit_key": "MaxRecords", 43 | "result_key": "ScheduledUpdateGroupActions" 44 | }, 45 | "DescribeTags": { 46 | "input_token": "NextToken", 47 | "output_token": "NextToken", 48 | "limit_key": "MaxRecords", 49 | "result_key": "Tags" 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudformation-2010-05-15.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeStackEvents": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "result_key": "StackEvents" 7 | }, 8 | "DescribeStackResources": { 9 | "result_key": "StackResources" 10 | }, 11 | "DescribeStacks": { 12 | "input_token": "NextToken", 13 | "output_token": "NextToken", 14 | "result_key": "Stacks" 15 | }, 16 | "ListStackResources": { 17 | "input_token": "NextToken", 18 | "output_token": "NextToken", 19 | "result_key": "StackResourceSummaries" 20 | }, 21 | "ListStacks": { 22 | "input_token": "NextToken", 23 | "output_token": "NextToken", 24 | "result_key": "StackSummaries" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudfront-2014-11-06.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListCloudFrontOriginAccessIdentities": { 4 | "input_token": "Marker", 5 | "output_token": "CloudFrontOriginAccessIdentityList.NextMarker", 6 | "limit_key": "MaxItems", 7 | "more_results": "CloudFrontOriginAccessIdentityList.IsTruncated", 8 | "result_key": "CloudFrontOriginAccessIdentityList.Items" 9 | }, 10 | "ListDistributions": { 11 | "input_token": "Marker", 12 | "output_token": "DistributionList.NextMarker", 13 | "limit_key": "MaxItems", 14 | "more_results": "DistributionList.IsTruncated", 15 | "result_key": "DistributionList.Items" 16 | }, 17 | "ListInvalidations": { 18 | "input_token": "Marker", 19 | "output_token": "InvalidationList.NextMarker", 20 | "limit_key": "MaxItems", 21 | "more_results": "InvalidationList.IsTruncated", 22 | "result_key": "InvalidationList.Items" 23 | }, 24 | "ListStreamingDistributions": { 25 | "input_token": "Marker", 26 | "output_token": "StreamingDistributionList.NextMarker", 27 | "limit_key": "MaxItems", 28 | "more_results": "StreamingDistributionList.IsTruncated", 29 | "result_key": "StreamingDistributionList.Items" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudfront-2014-11-06.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "success_type": "output", 5 | "success_path": "Status" 6 | }, 7 | "StreamingDistributionDeployed": { 8 | "operation": "GetStreamingDistribution", 9 | "description": "Wait until a streaming distribution is deployed.", 10 | "interval": 60, 11 | "max_attempts": 25, 12 | "success_value": "Deployed" 13 | }, 14 | "DistributionDeployed": { 15 | "operation": "GetDistribution", 16 | "description": "Wait until a distribution is deployed.", 17 | "interval": 60, 18 | "max_attempts": 25, 19 | "success_value": "Deployed" 20 | }, 21 | "InvalidationCompleted": { 22 | "operation": "GetInvalidation", 23 | "description": "Wait until an invalidation has completed.", 24 | "interval": 20, 25 | "max_attempts": 30, 26 | "success_value": "Completed" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudsearch-2011-02-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeDomains": { 4 | "result_key": "DomainStatusList" 5 | }, 6 | "DescribeIndexFields": { 7 | "result_key": "IndexFields" 8 | }, 9 | "DescribeRankExpressions": { 10 | "result_key": "RankExpressions" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudsearch-2013-01-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeAnalysisSchemes": { 4 | "result_key": "AnalysisSchemes" 5 | }, 6 | "DescribeDomains": { 7 | "result_key": "DomainStatusList" 8 | }, 9 | "DescribeExpressions": { 10 | "result_key": "Expressions" 11 | }, 12 | "DescribeIndexFields": { 13 | "result_key": "IndexFields" 14 | }, 15 | "DescribeSuggesters": { 16 | "result_key": "Suggesters" 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/cloudtrail-2013-11-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeTrails": { 4 | "result_key": "trailList" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/datapipeline-2012-10-29.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListPipelines": { 4 | "input_token": "marker", 5 | "output_token": "marker", 6 | "more_results": "hasMoreResults", 7 | "result_key": "pipelineIdList" 8 | }, 9 | "DescribeObjects": { 10 | "input_token": "marker", 11 | "output_token": "marker", 12 | "more_results": "hasMoreResults", 13 | "result_key": "pipelineObjects" 14 | }, 15 | "DescribePipelines": { 16 | "result_key": "pipelineDescriptionList" 17 | }, 18 | "QueryObjects": { 19 | "input_token": "marker", 20 | "output_token": "marker", 21 | "more_results": "hasMoreResults", 22 | "limit_key": "limit", 23 | "result_key": "ids" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/directconnect-2012-10-25.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeConnections": { 4 | "result_key": "connections" 5 | }, 6 | "DescribeConnectionsOnInterconnect": { 7 | "result_key": "connections" 8 | }, 9 | "DescribeInterconnects": { 10 | "result_key": "interconnects" 11 | }, 12 | "DescribeLocations": { 13 | "result_key": "locations" 14 | }, 15 | "DescribeVirtualGateways": { 16 | "result_key": "virtualGateways" 17 | }, 18 | "DescribeVirtualInterfaces": { 19 | "result_key": "virtualInterfaces" 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/dynamodb-2011-12-05.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "BatchGetItem": { 4 | "input_token": "RequestItems", 5 | "output_token": "UnprocessedKeys" 6 | }, 7 | "ListTables": { 8 | "input_token": "ExclusiveStartTableName", 9 | "output_token": "LastEvaluatedTableName", 10 | "limit_key": "Limit", 11 | "result_key": "TableNames" 12 | }, 13 | "Query": { 14 | "input_token": "ExclusiveStartKey", 15 | "output_token": "LastEvaluatedKey", 16 | "limit_key": "Limit", 17 | "result_key": "Items" 18 | }, 19 | "Scan": { 20 | "input_token": "ExclusiveStartKey", 21 | "output_token": "LastEvaluatedKey", 22 | "limit_key": "Limit", 23 | "result_key": "Items" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/dynamodb-2011-12-05.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 20, 5 | "max_attempts": 25 6 | }, 7 | "__TableState": { 8 | "operation": "DescribeTable" 9 | }, 10 | "TableExists": { 11 | "extends": "__TableState", 12 | "description": "Wait until a table exists and can be accessed", 13 | "ignore_errors": [ 14 | "ResourceNotFoundException" 15 | ], 16 | "success_type": "output", 17 | "success_path": "Table.TableStatus", 18 | "success_value": "ACTIVE" 19 | }, 20 | "TableNotExists": { 21 | "extends": "__TableState", 22 | "description": "Wait until a table is deleted", 23 | "success_type": "error", 24 | "success_value": "ResourceNotFoundException" 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/dynamodb-2012-08-10.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "BatchGetItem": { 4 | "input_token": "RequestItems", 5 | "output_token": "UnprocessedKeys" 6 | }, 7 | "ListTables": { 8 | "input_token": "ExclusiveStartTableName", 9 | "output_token": "LastEvaluatedTableName", 10 | "limit_key": "Limit", 11 | "result_key": "TableNames" 12 | }, 13 | "Query": { 14 | "input_token": "ExclusiveStartKey", 15 | "output_token": "LastEvaluatedKey", 16 | "limit_key": "Limit", 17 | "result_key": "Items" 18 | }, 19 | "Scan": { 20 | "input_token": "ExclusiveStartKey", 21 | "output_token": "LastEvaluatedKey", 22 | "limit_key": "Limit", 23 | "result_key": "Items" 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/dynamodb-2012-08-10.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 20, 5 | "max_attempts": 25 6 | }, 7 | "__TableState": { 8 | "operation": "DescribeTable" 9 | }, 10 | "TableExists": { 11 | "extends": "__TableState", 12 | "ignore_errors": [ 13 | "ResourceNotFoundException" 14 | ], 15 | "success_type": "output", 16 | "success_path": "Table.TableStatus", 17 | "success_value": "ACTIVE" 18 | }, 19 | "TableNotExists": { 20 | "extends": "__TableState", 21 | "success_type": "error", 22 | "success_value": "ResourceNotFoundException" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/ec2-2014-10-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeAccountAttributes": { 4 | "result_key": "AccountAttributes" 5 | }, 6 | "DescribeAddresses": { 7 | "result_key": "Addresses" 8 | }, 9 | "DescribeAvailabilityZones": { 10 | "result_key": "AvailabilityZones" 11 | }, 12 | "DescribeBundleTasks": { 13 | "result_key": "BundleTasks" 14 | }, 15 | "DescribeConversionTasks": { 16 | "result_key": "ConversionTasks" 17 | }, 18 | "DescribeCustomerGateways": { 19 | "result_key": "CustomerGateways" 20 | }, 21 | "DescribeDhcpOptions": { 22 | "result_key": "DhcpOptions" 23 | }, 24 | "DescribeExportTasks": { 25 | "result_key": "ExportTasks" 26 | }, 27 | "DescribeImages": { 28 | "result_key": "Images" 29 | }, 30 | "DescribeInstanceStatus": { 31 | "input_token": "NextToken", 32 | "output_token": "NextToken", 33 | "limit_key": "MaxResults", 34 | "result_key": "InstanceStatuses" 35 | }, 36 | "DescribeInstances": { 37 | "input_token": "NextToken", 38 | "output_token": "NextToken", 39 | "limit_key": "MaxResults", 40 | "result_key": "Reservations" 41 | }, 42 | "DescribeInternetGateways": { 43 | "result_key": "InternetGateways" 44 | }, 45 | "DescribeKeyPairs": { 46 | "result_key": "KeyPairs" 47 | }, 48 | "DescribeNetworkAcls": { 49 | "result_key": "NetworkAcls" 50 | }, 51 | "DescribeNetworkInterfaces": { 52 | "result_key": "NetworkInterfaces" 53 | }, 54 | "DescribePlacementGroups": { 55 | "result_key": "PlacementGroups" 56 | }, 57 | "DescribeRegions": { 58 | "result_key": "Regions" 59 | }, 60 | "DescribeReservedInstances": { 61 | "result_key": "ReservedInstances" 62 | }, 63 | "DescribeReservedInstancesListings": { 64 | "result_key": "ReservedInstancesListings" 65 | }, 66 | "DescribeReservedInstancesOfferings": { 67 | "input_token": "NextToken", 68 | "output_token": "NextToken", 69 | "limit_key": "MaxResults", 70 | "result_key": "ReservedInstancesOfferings" 71 | }, 72 | "DescribeRouteTables": { 73 | "result_key": "RouteTables" 74 | }, 75 | "DescribeSecurityGroups": { 76 | "result_key": "SecurityGroups" 77 | }, 78 | "DescribeSnapshots": { 79 | "result_key": "Snapshots" 80 | }, 81 | "DescribeSpotInstanceRequests": { 82 | "result_key": "SpotInstanceRequests" 83 | }, 84 | "DescribeSpotPriceHistory": { 85 | "input_token": "NextToken", 86 | "output_token": "NextToken", 87 | "limit_key": "MaxResults", 88 | "result_key": "SpotPriceHistory" 89 | }, 90 | "DescribeSubnets": { 91 | "result_key": "Subnets" 92 | }, 93 | "DescribeTags": { 94 | "result_key": "Tags" 95 | }, 96 | "DescribeVolumeStatus": { 97 | "input_token": "NextToken", 98 | "output_token": "NextToken", 99 | "limit_key": "MaxResults", 100 | "result_key": "VolumeStatuses" 101 | }, 102 | "DescribeVolumes": { 103 | "input_token": "NextToken", 104 | "output_token": "NextToken", 105 | "limit_key": "MaxResults", 106 | "result_key": "Volumes" 107 | }, 108 | "DescribeVpcs": { 109 | "result_key": "Vpcs" 110 | }, 111 | "DescribeVpnConnections": { 112 | "result_key": "VpnConnections" 113 | }, 114 | "DescribeVpnGateways": { 115 | "result_key": "VpnGateways" 116 | } 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeCacheClusters": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "CacheClusters" 8 | }, 9 | "DescribeCacheEngineVersions": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "CacheEngineVersions" 14 | }, 15 | "DescribeCacheParameterGroups": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "CacheParameterGroups" 20 | }, 21 | "DescribeCacheParameters": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "Parameters" 26 | }, 27 | "DescribeCacheSecurityGroups": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "CacheSecurityGroups" 32 | }, 33 | "DescribeCacheSubnetGroups": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "CacheSubnetGroups" 38 | }, 39 | "DescribeEngineDefaultParameters": { 40 | "input_token": "Marker", 41 | "output_token": "EngineDefaults.Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "EngineDefaults.Parameters" 44 | }, 45 | "DescribeEvents": { 46 | "input_token": "Marker", 47 | "output_token": "Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "Events" 50 | }, 51 | "DescribeReservedCacheNodes": { 52 | "input_token": "Marker", 53 | "output_token": "Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "ReservedCacheNodes" 56 | }, 57 | "DescribeReservedCacheNodesOfferings": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "ReservedCacheNodesOfferings" 62 | }, 63 | "DescribeReplicationGroups": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "ReplicationGroups" 68 | }, 69 | "DescribeSnapshots": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "Snapshots" 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elasticbeanstalk-2010-12-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeApplicationVersions": { 4 | "result_key": "ApplicationVersions" 5 | }, 6 | "DescribeApplications": { 7 | "result_key": "Applications" 8 | }, 9 | "DescribeConfigurationOptions": { 10 | "result_key": "Options" 11 | }, 12 | "DescribeEnvironments": { 13 | "result_key": "Environments" 14 | }, 15 | "DescribeEvents": { 16 | "input_token": "NextToken", 17 | "output_token": "NextToken", 18 | "limit_key": "MaxRecords", 19 | "result_key": "Events" 20 | }, 21 | "ListAvailableSolutionStacks": { 22 | "result_key": "SolutionStacks" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elasticloadbalancing-2012-06-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeInstanceHealth": { 4 | "result_key": "InstanceStates" 5 | }, 6 | "DescribeLoadBalancerPolicies": { 7 | "result_key": "PolicyDescriptions" 8 | }, 9 | "DescribeLoadBalancerPolicyTypes": { 10 | "result_key": "PolicyTypeDescriptions" 11 | }, 12 | "DescribeLoadBalancers": { 13 | "input_token": "Marker", 14 | "output_token": "NextMarker", 15 | "result_key": "LoadBalancerDescriptions" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elasticmapreduce-2009-03-31.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeJobFlows": { 4 | "result_key": "JobFlows" 5 | }, 6 | "ListBootstrapActions": { 7 | "input_token": "Marker", 8 | "output_token": "Marker", 9 | "result_key": "BootstrapActions" 10 | }, 11 | "ListClusters": { 12 | "input_token": "Marker", 13 | "output_token": "Marker", 14 | "result_key": "Clusters" 15 | }, 16 | "ListInstanceGroups": { 17 | "input_token": "Marker", 18 | "output_token": "Marker", 19 | "result_key": "InstanceGroups" 20 | }, 21 | "ListInstances": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "result_key": "Instances" 25 | }, 26 | "ListSteps": { 27 | "input_token": "Marker", 28 | "output_token": "Marker", 29 | "result_key": "Steps" 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListJobsByPipeline": { 4 | "input_token": "PageToken", 5 | "output_token": "NextPageToken", 6 | "result_key": "Jobs" 7 | }, 8 | "ListJobsByStatus": { 9 | "input_token": "PageToken", 10 | "output_token": "NextPageToken", 11 | "result_key": "Jobs" 12 | }, 13 | "ListPipelines": { 14 | "input_token": "PageToken", 15 | "output_token": "NextPageToken", 16 | "result_key": "Pipelines" 17 | }, 18 | "ListPresets": { 19 | "input_token": "PageToken", 20 | "output_token": "NextPageToken", 21 | "result_key": "Presets" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/elastictranscoder-2012-09-25.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "JobComplete": { 4 | "operation": "ReadJob", 5 | "success_type": "output", 6 | "success_path": "Job.Status", 7 | "interval": 30, 8 | "max_attempts": 120, 9 | "success_value": "Complete", 10 | "failure_value": [ 11 | "Canceled", 12 | "Error" 13 | ] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/email-2010-12-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListIdentities": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "limit_key": "MaxItems", 7 | "result_key": "Identities" 8 | }, 9 | "ListVerifiedEmailAddresses": { 10 | "result_key": "VerifiedEmailAddresses" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/email-2010-12-01.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 3, 5 | "max_attempts": 20 6 | }, 7 | "IdentityExists": { 8 | "operation": "GetIdentityVerificationAttributes", 9 | "success_type": "output", 10 | "success_path": "VerificationAttributes[].VerificationStatus", 11 | "success_value": true 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/glacier-2012-06-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListJobs": { 4 | "input_token": "marker", 5 | "output_token": "Marker", 6 | "limit_key": "limit", 7 | "result_key": "JobList" 8 | }, 9 | "ListMultipartUploads": { 10 | "input_token": "marker", 11 | "output_token": "Marker", 12 | "limit_key": "limit", 13 | "result_key": "UploadsList" 14 | }, 15 | "ListParts": { 16 | "input_token": "marker", 17 | "output_token": "Marker", 18 | "limit_key": "limit", 19 | "result_key": "Parts" 20 | }, 21 | "ListVaults": { 22 | "input_token": "marker", 23 | "output_token": "Marker", 24 | "limit_key": "limit", 25 | "result_key": "VaultList" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/glacier-2012-06-01.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 3, 5 | "max_attempts": 15 6 | }, 7 | "__VaultState": { 8 | "operation": "DescribeVault" 9 | }, 10 | "VaultExists": { 11 | "extends": "__VaultState", 12 | "ignore_errors": [ 13 | "ResourceNotFoundException" 14 | ], 15 | "success_type": "output" 16 | }, 17 | "VaultNotExists": { 18 | "extends": "__VaultState", 19 | "success_type": "error", 20 | "success_value": "ResourceNotFoundException" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/iam-2010-05-08.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "GetGroup": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "more_results": "IsTruncated", 7 | "limit_key": "MaxItems", 8 | "result_key": "Users" 9 | }, 10 | "ListAccessKeys": { 11 | "input_token": "Marker", 12 | "output_token": "Marker", 13 | "more_results": "IsTruncated", 14 | "limit_key": "MaxItems", 15 | "result_key": "AccessKeyMetadata" 16 | }, 17 | "ListAccountAliases": { 18 | "input_token": "Marker", 19 | "output_token": "Marker", 20 | "more_results": "IsTruncated", 21 | "limit_key": "MaxItems", 22 | "result_key": "AccountAliases" 23 | }, 24 | "ListGroupPolicies": { 25 | "input_token": "Marker", 26 | "output_token": "Marker", 27 | "more_results": "IsTruncated", 28 | "limit_key": "MaxItems", 29 | "result_key": "PolicyNames" 30 | }, 31 | "ListGroups": { 32 | "input_token": "Marker", 33 | "output_token": "Marker", 34 | "more_results": "IsTruncated", 35 | "limit_key": "MaxItems", 36 | "result_key": "Groups" 37 | }, 38 | "ListGroupsForUser": { 39 | "input_token": "Marker", 40 | "output_token": "Marker", 41 | "more_results": "IsTruncated", 42 | "limit_key": "MaxItems", 43 | "result_key": "Groups" 44 | }, 45 | "ListInstanceProfiles": { 46 | "input_token": "Marker", 47 | "output_token": "Marker", 48 | "more_results": "IsTruncated", 49 | "limit_key": "MaxItems", 50 | "result_key": "InstanceProfiles" 51 | }, 52 | "ListInstanceProfilesForRole": { 53 | "input_token": "Marker", 54 | "output_token": "Marker", 55 | "more_results": "IsTruncated", 56 | "limit_key": "MaxItems", 57 | "result_key": "InstanceProfiles" 58 | }, 59 | "ListMFADevices": { 60 | "input_token": "Marker", 61 | "output_token": "Marker", 62 | "more_results": "IsTruncated", 63 | "limit_key": "MaxItems", 64 | "result_key": "MFADevices" 65 | }, 66 | "ListRolePolicies": { 67 | "input_token": "Marker", 68 | "output_token": "Marker", 69 | "more_results": "IsTruncated", 70 | "limit_key": "MaxItems", 71 | "result_key": "PolicyNames" 72 | }, 73 | "ListRoles": { 74 | "input_token": "Marker", 75 | "output_token": "Marker", 76 | "more_results": "IsTruncated", 77 | "limit_key": "MaxItems", 78 | "result_key": "Roles" 79 | }, 80 | "ListSAMLProviders": { 81 | "result_key": "SAMLProviderList" 82 | }, 83 | "ListServerCertificates": { 84 | "input_token": "Marker", 85 | "output_token": "Marker", 86 | "more_results": "IsTruncated", 87 | "limit_key": "MaxItems", 88 | "result_key": "ServerCertificateMetadataList" 89 | }, 90 | "ListSigningCertificates": { 91 | "input_token": "Marker", 92 | "output_token": "Marker", 93 | "more_results": "IsTruncated", 94 | "limit_key": "MaxItems", 95 | "result_key": "Certificates" 96 | }, 97 | "ListUserPolicies": { 98 | "input_token": "Marker", 99 | "output_token": "Marker", 100 | "more_results": "IsTruncated", 101 | "limit_key": "MaxItems", 102 | "result_key": "PolicyNames" 103 | }, 104 | "ListUsers": { 105 | "input_token": "Marker", 106 | "output_token": "Marker", 107 | "more_results": "IsTruncated", 108 | "limit_key": "MaxItems", 109 | "result_key": "Users" 110 | }, 111 | "ListVirtualMFADevices": { 112 | "input_token": "Marker", 113 | "output_token": "Marker", 114 | "more_results": "IsTruncated", 115 | "limit_key": "MaxItems", 116 | "result_key": "VirtualMFADevices" 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/importexport-2010-06-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListJobs": { 4 | "input_token": "Marker", 5 | "output_token": "Jobs[-1].JobId", 6 | "more_results": "IsTruncated", 7 | "limit_key": "MaxJobs", 8 | "result_key": "Jobs" 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/kinesis-2013-12-02.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeStream": { 4 | "input_token": "ExclusiveStartShardId", 5 | "limit_key": "Limit", 6 | "more_results": "StreamDescription.HasMoreShards", 7 | "output_token": "StreamDescription.Shards[-1].ShardId", 8 | "result_key": "StreamDescription.Shards" 9 | }, 10 | "ListStreams": { 11 | "input_token": "ExclusiveStartStreamName", 12 | "limit_key": "Limit", 13 | "more_results": "HasMoreStreams", 14 | "output_token": "StreamNames[-1]", 15 | "result_key": "StreamNames" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/lambda-2014-11-11.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListEventSources": { 4 | "input_token": "Marker", 5 | "output_token": "NextMarker", 6 | "limit_key": "MaxItems", 7 | "result_key": "EventSources" 8 | }, 9 | "ListFunctions": { 10 | "input_token": "Marker", 11 | "output_token": "NextMarker", 12 | "limit_key": "MaxItems", 13 | "result_key": "Functions" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeLogGroups": { 4 | "input_token": "nextToken", 5 | "output_token": "nextToken", 6 | "limit_key": "limit", 7 | "result_key": "logGroups" 8 | }, 9 | "DescribeLogStreams": { 10 | "input_token": "nextToken", 11 | "output_token": "nextToken", 12 | "limit_key": "limit", 13 | "result_key": "logStreams" 14 | }, 15 | "DescribeMetricFilters": { 16 | "input_token": "nextToken", 17 | "output_token": "nextToken", 18 | "limit_key": "limit", 19 | "result_key": "metricFilters" 20 | }, 21 | "GetLogEvents": { 22 | "input_token": "nextToken", 23 | "output_token": "nextForwardToken", 24 | "limit_key": "limit", 25 | "result_key": "events" 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "autoscaling": { 3 | "name": "AutoScaling" 4 | }, 5 | "cloudformation": { 6 | "name": "CloudFormation" 7 | }, 8 | "cloudfront": { 9 | "name": "CloudFront", 10 | "versions": ["2013-05-12*", "2013-11-11*", "2014-05-31*", "2014-10-21*"] 11 | }, 12 | "cloudhsm": { 13 | "name": "CloudHSM" 14 | }, 15 | "cloudsearch": { 16 | "name": "CloudSearch" 17 | }, 18 | "cloudsearchdomain": { 19 | "name": "CloudSearchDomain" 20 | }, 21 | "cloudtrail": { 22 | "name": "CloudTrail" 23 | }, 24 | "cloudwatch": { 25 | "prefix": "monitoring", 26 | "name": "CloudWatch" 27 | }, 28 | "cloudwatchlogs": { 29 | "prefix": "logs", 30 | "name": "CloudWatchLogs" 31 | }, 32 | "codedeploy": { 33 | "name": "CodeDeploy" 34 | }, 35 | "cognitoidentity": { 36 | "prefix": "cognito-identity", 37 | "name": "CognitoIdentity" 38 | }, 39 | "cognitosync": { 40 | "prefix": "cognito-sync", 41 | "name": "CognitoSync" 42 | }, 43 | "configservice": { 44 | "prefix": "config", 45 | "name": "ConfigService" 46 | }, 47 | "datapipeline": { 48 | "name": "DataPipeline" 49 | }, 50 | "directconnect": { 51 | "name": "DirectConnect" 52 | }, 53 | "dynamodb": { 54 | "name": "DynamoDB" 55 | }, 56 | "ec2": { 57 | "name": "EC2", 58 | "versions": ["2013-06-15*", "2013-10-15*", "2014-02-01*", "2014-05-01*", "2014-06-15*", "2014-09-01*"] 59 | }, 60 | "ecs": { 61 | "name": "ECS" 62 | }, 63 | "elasticache": { 64 | "name": "ElastiCache", 65 | "versions": ["2012-11-15*", "2014-03-24*", "2014-07-15*", "2014-09-30*"] 66 | }, 67 | "elasticbeanstalk": { 68 | "name": "ElasticBeanstalk" 69 | }, 70 | "elb": { 71 | "prefix": "elasticloadbalancing", 72 | "name": "ELB" 73 | }, 74 | "emr": { 75 | "prefix": "elasticmapreduce", 76 | "name": "EMR" 77 | }, 78 | "elastictranscoder": { 79 | "name": "ElasticTranscoder" 80 | }, 81 | "glacier": { 82 | "name": "Glacier" 83 | }, 84 | "iam": { 85 | "name": "IAM" 86 | }, 87 | "importexport": { 88 | "name": "ImportExport" 89 | }, 90 | "kinesis": { 91 | "name": "Kinesis" 92 | }, 93 | "kms": { 94 | "name": "KMS" 95 | }, 96 | "lambda": { 97 | "name": "Lambda" 98 | }, 99 | "opsworks": { 100 | "name": "OpsWorks" 101 | }, 102 | "rds": { 103 | "name": "RDS", 104 | "versions": ["2014-09-01*"] 105 | }, 106 | "redshift": { 107 | "name": "Redshift" 108 | }, 109 | "route53": { 110 | "name": "Route53" 111 | }, 112 | "route53domains": { 113 | "name": "Route53Domains" 114 | }, 115 | "s3": { 116 | "name": "S3" 117 | }, 118 | "ses": { 119 | "prefix": "email", 120 | "name": "SES" 121 | }, 122 | "simpledb": { 123 | "prefix": "sdb", 124 | "name": "SimpleDB" 125 | }, 126 | "sns": { 127 | "name": "SNS" 128 | }, 129 | "sqs": { 130 | "name": "SQS" 131 | }, 132 | "ssm": { 133 | "name": "SSM" 134 | }, 135 | "storagegateway": { 136 | "name": "StorageGateway" 137 | }, 138 | "sts": { 139 | "name": "STS" 140 | }, 141 | "support": { 142 | "name": "Support" 143 | }, 144 | "swf": { 145 | "name": "SWF" 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/monitoring-2010-08-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeAlarmHistory": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "limit_key": "MaxRecords", 7 | "result_key": "AlarmHistoryItems" 8 | }, 9 | "DescribeAlarms": { 10 | "input_token": "NextToken", 11 | "output_token": "NextToken", 12 | "limit_key": "MaxRecords", 13 | "result_key": "MetricAlarms" 14 | }, 15 | "DescribeAlarmsForMetric": { 16 | "result_key": "MetricAlarms" 17 | }, 18 | "ListMetrics": { 19 | "input_token": "NextToken", 20 | "output_token": "NextToken", 21 | "result_key": "Metrics" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/opsworks-2013-02-18.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeApps": { 4 | "result_key": "Apps" 5 | }, 6 | "DescribeCommands": { 7 | "result_key": "Commands" 8 | }, 9 | "DescribeDeployments": { 10 | "result_key": "Deployments" 11 | }, 12 | "DescribeElasticIps": { 13 | "result_key": "ElasticIps" 14 | }, 15 | "DescribeElasticLoadBalancers": { 16 | "result_key": "ElasticLoadBalancers" 17 | }, 18 | "DescribeInstances": { 19 | "result_key": "Instances" 20 | }, 21 | "DescribeLayers": { 22 | "result_key": "Layers" 23 | }, 24 | "DescribeLoadBasedAutoScaling": { 25 | "result_key": "LoadBasedAutoScalingConfigurations" 26 | }, 27 | "DescribePermissions": { 28 | "result_key": "Permissions" 29 | }, 30 | "DescribeRaidArrays": { 31 | "result_key": "RaidArrays" 32 | }, 33 | "DescribeServiceErrors": { 34 | "result_key": "ServiceErrors" 35 | }, 36 | "DescribeStacks": { 37 | "result_key": "Stacks" 38 | }, 39 | "DescribeTimeBasedAutoScaling": { 40 | "result_key": "TimeBasedAutoScalingConfigurations" 41 | }, 42 | "DescribeUserProfiles": { 43 | "result_key": "UserProfiles" 44 | }, 45 | "DescribeVolumes": { 46 | "result_key": "Volumes" 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2013-01-10.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeDBEngineVersions": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "DBEngineVersions" 8 | }, 9 | "DescribeDBInstances": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "DBInstances" 14 | }, 15 | "DescribeDBParameterGroups": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "DBParameterGroups" 20 | }, 21 | "DescribeDBParameters": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "Parameters" 26 | }, 27 | "DescribeDBSecurityGroups": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "DBSecurityGroups" 32 | }, 33 | "DescribeDBSnapshots": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "DBSnapshots" 38 | }, 39 | "DescribeDBSubnetGroups": { 40 | "input_token": "Marker", 41 | "output_token": "Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "DBSubnetGroups" 44 | }, 45 | "DescribeEngineDefaultParameters": { 46 | "input_token": "Marker", 47 | "output_token": "EngineDefaults.Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "EngineDefaults.Parameters" 50 | }, 51 | "DescribeEventSubscriptions": { 52 | "input_token": "Marker", 53 | "output_token": "Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "EventSubscriptionsList" 56 | }, 57 | "DescribeEvents": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "Events" 62 | }, 63 | "DescribeOptionGroupOptions": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "OptionGroupOptions" 68 | }, 69 | "DescribeOptionGroups": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "OptionGroupsList" 74 | }, 75 | "DescribeOrderableDBInstanceOptions": { 76 | "input_token": "Marker", 77 | "output_token": "Marker", 78 | "limit_key": "MaxRecords", 79 | "result_key": "OrderableDBInstanceOptions" 80 | }, 81 | "DescribeReservedDBInstances": { 82 | "input_token": "Marker", 83 | "output_token": "Marker", 84 | "limit_key": "MaxRecords", 85 | "result_key": "ReservedDBInstances" 86 | }, 87 | "DescribeReservedDBInstancesOfferings": { 88 | "input_token": "Marker", 89 | "output_token": "Marker", 90 | "limit_key": "MaxRecords", 91 | "result_key": "ReservedDBInstancesOfferings" 92 | }, 93 | "ListTagsForResource": { 94 | "result_key": "TagList" 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2013-02-12.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeDBEngineVersions": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "DBEngineVersions" 8 | }, 9 | "DescribeDBInstances": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "DBInstances" 14 | }, 15 | "DescribeDBLogFiles": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "DescribeDBLogFiles" 20 | }, 21 | "DescribeDBParameterGroups": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "DBParameterGroups" 26 | }, 27 | "DescribeDBParameters": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "Parameters" 32 | }, 33 | "DescribeDBSecurityGroups": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "DBSecurityGroups" 38 | }, 39 | "DescribeDBSnapshots": { 40 | "input_token": "Marker", 41 | "output_token": "Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "DBSnapshots" 44 | }, 45 | "DescribeDBSubnetGroups": { 46 | "input_token": "Marker", 47 | "output_token": "Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "DBSubnetGroups" 50 | }, 51 | "DescribeEngineDefaultParameters": { 52 | "input_token": "Marker", 53 | "output_token": "EngineDefaults.Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "EngineDefaults.Parameters" 56 | }, 57 | "DescribeEventSubscriptions": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "EventSubscriptionsList" 62 | }, 63 | "DescribeEvents": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "Events" 68 | }, 69 | "DescribeOptionGroupOptions": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "OptionGroupOptions" 74 | }, 75 | "DescribeOptionGroups": { 76 | "input_token": "Marker", 77 | "output_token": "Marker", 78 | "limit_key": "MaxRecords", 79 | "result_key": "OptionGroupsList" 80 | }, 81 | "DescribeOrderableDBInstanceOptions": { 82 | "input_token": "Marker", 83 | "output_token": "Marker", 84 | "limit_key": "MaxRecords", 85 | "result_key": "OrderableDBInstanceOptions" 86 | }, 87 | "DescribeReservedDBInstances": { 88 | "input_token": "Marker", 89 | "output_token": "Marker", 90 | "limit_key": "MaxRecords", 91 | "result_key": "ReservedDBInstances" 92 | }, 93 | "DescribeReservedDBInstancesOfferings": { 94 | "input_token": "Marker", 95 | "output_token": "Marker", 96 | "limit_key": "MaxRecords", 97 | "result_key": "ReservedDBInstancesOfferings" 98 | }, 99 | "DownloadDBLogFilePortion": { 100 | "input_token": "Marker", 101 | "output_token": "Marker", 102 | "limit_key": "NumberOfLines", 103 | "more_results": "AdditionalDataPending", 104 | "result_key": "LogFileData" 105 | }, 106 | "ListTagsForResource": { 107 | "result_key": "TagList" 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2013-09-09.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeDBEngineVersions": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "DBEngineVersions" 8 | }, 9 | "DescribeDBInstances": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "DBInstances" 14 | }, 15 | "DescribeDBLogFiles": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "DescribeDBLogFiles" 20 | }, 21 | "DescribeDBParameterGroups": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "DBParameterGroups" 26 | }, 27 | "DescribeDBParameters": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "Parameters" 32 | }, 33 | "DescribeDBSecurityGroups": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "DBSecurityGroups" 38 | }, 39 | "DescribeDBSnapshots": { 40 | "input_token": "Marker", 41 | "output_token": "Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "DBSnapshots" 44 | }, 45 | "DescribeDBSubnetGroups": { 46 | "input_token": "Marker", 47 | "output_token": "Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "DBSubnetGroups" 50 | }, 51 | "DescribeEngineDefaultParameters": { 52 | "input_token": "Marker", 53 | "output_token": "EngineDefaults.Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "EngineDefaults.Parameters" 56 | }, 57 | "DescribeEventSubscriptions": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "EventSubscriptionsList" 62 | }, 63 | "DescribeEvents": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "Events" 68 | }, 69 | "DescribeOptionGroupOptions": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "OptionGroupOptions" 74 | }, 75 | "DescribeOptionGroups": { 76 | "input_token": "Marker", 77 | "output_token": "Marker", 78 | "limit_key": "MaxRecords", 79 | "result_key": "OptionGroupsList" 80 | }, 81 | "DescribeOrderableDBInstanceOptions": { 82 | "input_token": "Marker", 83 | "output_token": "Marker", 84 | "limit_key": "MaxRecords", 85 | "result_key": "OrderableDBInstanceOptions" 86 | }, 87 | "DescribeReservedDBInstances": { 88 | "input_token": "Marker", 89 | "output_token": "Marker", 90 | "limit_key": "MaxRecords", 91 | "result_key": "ReservedDBInstances" 92 | }, 93 | "DescribeReservedDBInstancesOfferings": { 94 | "input_token": "Marker", 95 | "output_token": "Marker", 96 | "limit_key": "MaxRecords", 97 | "result_key": "ReservedDBInstancesOfferings" 98 | }, 99 | "DownloadDBLogFilePortion": { 100 | "input_token": "Marker", 101 | "output_token": "Marker", 102 | "limit_key": "NumberOfLines", 103 | "more_results": "AdditionalDataPending", 104 | "result_key": "LogFileData" 105 | }, 106 | "ListTagsForResource": { 107 | "result_key": "TagList" 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2013-09-09.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 30, 5 | "max_attempts": 60 6 | }, 7 | "__DBInstanceState": { 8 | "operation": "DescribeDBInstances", 9 | "acceptor_path": "DBInstances[].DBInstanceStatus", 10 | "acceptor_type": "output" 11 | }, 12 | "DBInstanceAvailable": { 13 | "extends": "__DBInstanceState", 14 | "success_value": "available", 15 | "failure_value": [ 16 | "deleted", 17 | "deleting", 18 | "failed", 19 | "incompatible-restore", 20 | "incompatible-parameters", 21 | "incompatible-parameters", 22 | "incompatible-restore" 23 | ] 24 | }, 25 | "DBInstanceDeleted": { 26 | "extends": "__DBInstanceState", 27 | "success_value": "deleted", 28 | "failure_value": [ 29 | "creating", 30 | "modifying", 31 | "rebooting", 32 | "resetting-master-credentials" 33 | ] 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2014-10-31.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeDBEngineVersions": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "DBEngineVersions" 8 | }, 9 | "DescribeDBInstances": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "DBInstances" 14 | }, 15 | "DescribeDBLogFiles": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "DescribeDBLogFiles" 20 | }, 21 | "DescribeDBParameterGroups": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "DBParameterGroups" 26 | }, 27 | "DescribeDBParameters": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "Parameters" 32 | }, 33 | "DescribeDBSecurityGroups": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "DBSecurityGroups" 38 | }, 39 | "DescribeDBSnapshots": { 40 | "input_token": "Marker", 41 | "output_token": "Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "DBSnapshots" 44 | }, 45 | "DescribeDBSubnetGroups": { 46 | "input_token": "Marker", 47 | "output_token": "Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "DBSubnetGroups" 50 | }, 51 | "DescribeEngineDefaultParameters": { 52 | "input_token": "Marker", 53 | "output_token": "EngineDefaults.Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "EngineDefaults.Parameters" 56 | }, 57 | "DescribeEventSubscriptions": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "EventSubscriptionsList" 62 | }, 63 | "DescribeEvents": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "Events" 68 | }, 69 | "DescribeOptionGroupOptions": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "OptionGroupOptions" 74 | }, 75 | "DescribeOptionGroups": { 76 | "input_token": "Marker", 77 | "output_token": "Marker", 78 | "limit_key": "MaxRecords", 79 | "result_key": "OptionGroupsList" 80 | }, 81 | "DescribeOrderableDBInstanceOptions": { 82 | "input_token": "Marker", 83 | "output_token": "Marker", 84 | "limit_key": "MaxRecords", 85 | "result_key": "OrderableDBInstanceOptions" 86 | }, 87 | "DescribeReservedDBInstances": { 88 | "input_token": "Marker", 89 | "output_token": "Marker", 90 | "limit_key": "MaxRecords", 91 | "result_key": "ReservedDBInstances" 92 | }, 93 | "DescribeReservedDBInstancesOfferings": { 94 | "input_token": "Marker", 95 | "output_token": "Marker", 96 | "limit_key": "MaxRecords", 97 | "result_key": "ReservedDBInstancesOfferings" 98 | }, 99 | "DownloadDBLogFilePortion": { 100 | "input_token": "Marker", 101 | "output_token": "Marker", 102 | "limit_key": "NumberOfLines", 103 | "more_results": "AdditionalDataPending", 104 | "result_key": "LogFileData" 105 | }, 106 | "ListTagsForResource": { 107 | "result_key": "TagList" 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/rds-2014-10-31.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 30, 5 | "max_attempts": 60 6 | }, 7 | "__DBInstanceState": { 8 | "operation": "DescribeDBInstances", 9 | "acceptor_path": "DBInstances[].DBInstanceStatus", 10 | "acceptor_type": "output" 11 | }, 12 | "DBInstanceAvailable": { 13 | "extends": "__DBInstanceState", 14 | "success_value": "available", 15 | "failure_value": [ 16 | "deleted", 17 | "deleting", 18 | "failed", 19 | "incompatible-restore", 20 | "incompatible-parameters", 21 | "incompatible-parameters", 22 | "incompatible-restore" 23 | ] 24 | }, 25 | "DBInstanceDeleted": { 26 | "extends": "__DBInstanceState", 27 | "success_value": "deleted", 28 | "failure_value": [ 29 | "creating", 30 | "modifying", 31 | "rebooting", 32 | "resetting-master-credentials" 33 | ] 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/redshift-2012-12-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeClusterParameterGroups": { 4 | "input_token": "Marker", 5 | "output_token": "Marker", 6 | "limit_key": "MaxRecords", 7 | "result_key": "ParameterGroups" 8 | }, 9 | "DescribeClusterParameters": { 10 | "input_token": "Marker", 11 | "output_token": "Marker", 12 | "limit_key": "MaxRecords", 13 | "result_key": "Parameters" 14 | }, 15 | "DescribeClusterSecurityGroups": { 16 | "input_token": "Marker", 17 | "output_token": "Marker", 18 | "limit_key": "MaxRecords", 19 | "result_key": "ClusterSecurityGroups" 20 | }, 21 | "DescribeClusterSnapshots": { 22 | "input_token": "Marker", 23 | "output_token": "Marker", 24 | "limit_key": "MaxRecords", 25 | "result_key": "Snapshots" 26 | }, 27 | "DescribeClusterSubnetGroups": { 28 | "input_token": "Marker", 29 | "output_token": "Marker", 30 | "limit_key": "MaxRecords", 31 | "result_key": "ClusterSubnetGroups" 32 | }, 33 | "DescribeClusterVersions": { 34 | "input_token": "Marker", 35 | "output_token": "Marker", 36 | "limit_key": "MaxRecords", 37 | "result_key": "ClusterVersions" 38 | }, 39 | "DescribeClusters": { 40 | "input_token": "Marker", 41 | "output_token": "Marker", 42 | "limit_key": "MaxRecords", 43 | "result_key": "Clusters" 44 | }, 45 | "DescribeDefaultClusterParameters": { 46 | "input_token": "Marker", 47 | "output_token": "DefaultClusterParameters.Marker", 48 | "limit_key": "MaxRecords", 49 | "result_key": "DefaultClusterParameters.Parameters" 50 | }, 51 | "DescribeEventSubscriptions": { 52 | "input_token": "Marker", 53 | "output_token": "Marker", 54 | "limit_key": "MaxRecords", 55 | "result_key": "EventSubscriptionsList" 56 | }, 57 | "DescribeEvents": { 58 | "input_token": "Marker", 59 | "output_token": "Marker", 60 | "limit_key": "MaxRecords", 61 | "result_key": "Events" 62 | }, 63 | "DescribeHsmClientCertificates": { 64 | "input_token": "Marker", 65 | "output_token": "Marker", 66 | "limit_key": "MaxRecords", 67 | "result_key": "HsmClientCertificates" 68 | }, 69 | "DescribeHsmConfigurations": { 70 | "input_token": "Marker", 71 | "output_token": "Marker", 72 | "limit_key": "MaxRecords", 73 | "result_key": "HsmConfigurations" 74 | }, 75 | "DescribeOrderableClusterOptions": { 76 | "input_token": "Marker", 77 | "output_token": "Marker", 78 | "limit_key": "MaxRecords", 79 | "result_key": "OrderableClusterOptions" 80 | }, 81 | "DescribeReservedNodeOfferings": { 82 | "input_token": "Marker", 83 | "output_token": "Marker", 84 | "limit_key": "MaxRecords", 85 | "result_key": "ReservedNodeOfferings" 86 | }, 87 | "DescribeReservedNodes": { 88 | "input_token": "Marker", 89 | "output_token": "Marker", 90 | "limit_key": "MaxRecords", 91 | "result_key": "ReservedNodes" 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/redshift-2012-12-01.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "acceptor_type": "output" 5 | }, 6 | "__ClusterState": { 7 | "interval": 60, 8 | "max_attempts": 30, 9 | "operation": "DescribeClusters", 10 | "acceptor_path": "Clusters[].ClusterStatus" 11 | }, 12 | "ClusterAvailable": { 13 | "extends": "__ClusterState", 14 | "ignore_errors": [ 15 | "ClusterNotFound" 16 | ], 17 | "success_value": "available", 18 | "failure_value": [ 19 | "deleting" 20 | ] 21 | }, 22 | "ClusterDeleted": { 23 | "extends": "__ClusterState", 24 | "success_type": "error", 25 | "success_value": "ClusterNotFound", 26 | "failure_value": [ 27 | "creating", 28 | "rebooting" 29 | ] 30 | }, 31 | "SnapshotAvailable": { 32 | "interval": 15, 33 | "max_attempts": 20, 34 | "operation": "DescribeClusterSnapshots", 35 | "acceptor_path": "Snapshots[].Status", 36 | "success_value": "available", 37 | "failure_value": [ 38 | "failed", 39 | "deleted" 40 | ] 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/route53-2013-04-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListHealthChecks": { 4 | "input_token": "Marker", 5 | "output_token": "NextMarker", 6 | "more_results": "IsTruncated", 7 | "limit_key": "MaxItems", 8 | "result_key": "HealthChecks" 9 | }, 10 | "ListHostedZones": { 11 | "input_token": "Marker", 12 | "output_token": "NextMarker", 13 | "more_results": "IsTruncated", 14 | "limit_key": "MaxItems", 15 | "result_key": "HostedZones" 16 | }, 17 | "ListResourceRecordSets": { 18 | "more_results": "IsTruncated", 19 | "limit_key": "MaxItems", 20 | "result_key": "ResourceRecordSets", 21 | "input_token": [ 22 | "StartRecordName", 23 | "StartRecordType", 24 | "StartRecordIdentifier" 25 | ], 26 | "output_token": [ 27 | "NextRecordName", 28 | "NextRecordType", 29 | "NextRecordIdentifier" 30 | ] 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/route53domains-2014-05-15.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "pagination": { 4 | "ListDomains": { 5 | "limit_key": "MaxItems", 6 | "input_token": "Marker", 7 | "output_token": "NextPageMarker", 8 | "result_key": "Domains" 9 | }, 10 | "ListOperations": { 11 | "limit_key": "MaxItems", 12 | "input_token": "Marker", 13 | "output_token": "NextPageMarker", 14 | "result_key": "Operations" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListBuckets": { 4 | "result_key": "Buckets" 5 | }, 6 | "ListMultipartUploads": { 7 | "limit_key": "MaxUploads", 8 | "more_results": "IsTruncated", 9 | "output_token": [ 10 | "NextKeyMarker", 11 | "NextUploadIdMarker" 12 | ], 13 | "input_token": [ 14 | "KeyMarker", 15 | "UploadIdMarker" 16 | ], 17 | "result_key": [ 18 | "Uploads", 19 | "CommonPrefixes" 20 | ] 21 | }, 22 | "ListObjectVersions": { 23 | "more_results": "IsTruncated", 24 | "limit_key": "MaxKeys", 25 | "output_token": [ 26 | "NextKeyMarker", 27 | "NextVersionIdMarker" 28 | ], 29 | "input_token": [ 30 | "KeyMarker", 31 | "VersionIdMarker" 32 | ], 33 | "result_key": [ 34 | "Versions", 35 | "DeleteMarkers", 36 | "CommonPrefixes" 37 | ] 38 | }, 39 | "ListObjects": { 40 | "more_results": "IsTruncated", 41 | "limit_key": "MaxKeys", 42 | "output_token": "NextMarker || Contents[-1].Key", 43 | "input_token": "Marker", 44 | "result_key": [ 45 | "Contents", 46 | "CommonPrefixes" 47 | ] 48 | }, 49 | "ListParts": { 50 | "more_results": "IsTruncated", 51 | "limit_key": "MaxParts", 52 | "output_token": "NextPartNumberMarker", 53 | "input_token": "PartNumberMarker", 54 | "result_key": "Parts" 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/s3-2006-03-01.waiters.json: -------------------------------------------------------------------------------- 1 | { 2 | "waiters": { 3 | "__default__": { 4 | "interval": 5, 5 | "max_attempts": 20 6 | }, 7 | "BucketExists": { 8 | "operation": "HeadBucket", 9 | "ignore_errors": [ 10 | 404 11 | ], 12 | "success_type": "output" 13 | }, 14 | "BucketNotExists": { 15 | "operation": "HeadBucket", 16 | "success_type": "error", 17 | "success_value": 404 18 | }, 19 | "ObjectExists": { 20 | "operation": "HeadObject", 21 | "ignore_errors": [ 22 | 404 23 | ], 24 | "success_type": "output" 25 | }, 26 | "ObjectNotExists": { 27 | "operation": "HeadObject", 28 | "success_type": "error", 29 | "success_value": 404 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/sdb-2009-04-15.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListDomains": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "limit_key": "MaxNumberOfDomains", 7 | "result_key": "DomainNames" 8 | }, 9 | "Select": { 10 | "input_token": "NextToken", 11 | "output_token": "NextToken", 12 | "result_key": "Items" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/sns-2010-03-31.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListEndpointsByPlatformApplication": { 4 | "input_token": "NextToken", 5 | "output_token": "NextToken", 6 | "result_key": "Endpoints" 7 | }, 8 | "ListPlatformApplications": { 9 | "input_token": "NextToken", 10 | "output_token": "NextToken", 11 | "result_key": "PlatformApplications" 12 | }, 13 | "ListSubscriptions": { 14 | "input_token": "NextToken", 15 | "output_token": "NextToken", 16 | "result_key": "Subscriptions" 17 | }, 18 | "ListSubscriptionsByTopic": { 19 | "input_token": "NextToken", 20 | "output_token": "NextToken", 21 | "result_key": "Subscriptions" 22 | }, 23 | "ListTopics": { 24 | "input_token": "NextToken", 25 | "output_token": "NextToken", 26 | "result_key": "Topics" 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/sqs-2012-11-05.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "ListQueues": { 4 | "result_key": "QueueUrls" 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/storagegateway-2013-06-30.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeCachediSCSIVolumes": { 4 | "result_key": "CachediSCSIVolumes" 5 | }, 6 | "DescribeStorediSCSIVolumes": { 7 | "result_key": "StorediSCSIVolumes" 8 | }, 9 | "DescribeTapeArchives": { 10 | "input_token": "Marker", 11 | "limit_key": "Limit", 12 | "output_token": "Marker", 13 | "result_key": "TapeArchives" 14 | }, 15 | "DescribeTapeRecoveryPoints": { 16 | "input_token": "Marker", 17 | "limit_key": "Limit", 18 | "output_token": "Marker", 19 | "result_key": "TapeRecoveryPointInfos" 20 | }, 21 | "DescribeTapes": { 22 | "input_token": "Marker", 23 | "limit_key": "Limit", 24 | "output_token": "Marker", 25 | "result_key": "Tapes" 26 | }, 27 | "DescribeVTLDevices": { 28 | "input_token": "Marker", 29 | "limit_key": "Limit", 30 | "output_token": "Marker", 31 | "result_key": "VTLDevices" 32 | }, 33 | "ListGateways": { 34 | "input_token": "Marker", 35 | "limit_key": "Limit", 36 | "output_token": "Marker", 37 | "result_key": "Gateways" 38 | }, 39 | "ListLocalDisks": { 40 | "result_key": "Disks" 41 | }, 42 | "ListVolumeRecoveryPoints": { 43 | "result_key": "VolumeRecoveryPointInfos" 44 | }, 45 | "ListVolumes": { 46 | "input_token": "Marker", 47 | "limit_key": "Limit", 48 | "output_token": "Marker", 49 | "result_key": "VolumeInfos" 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/support-2013-04-15.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "DescribeCases": { 4 | "input_token": "nextToken", 5 | "output_token": "nextToken", 6 | "limit_key": "maxResults", 7 | "result_key": "cases" 8 | }, 9 | "DescribeCommunications": { 10 | "input_token": "nextToken", 11 | "output_token": "nextToken", 12 | "limit_key": "maxResults", 13 | "result_key": "communications" 14 | }, 15 | "DescribeServices": { 16 | "result_key": "services" 17 | }, 18 | "DescribeTrustedAdvisorCheckRefreshStatuses": { 19 | "result_key": "statuses" 20 | }, 21 | "DescribeTrustedAdvisorCheckSummaries": { 22 | "result_key": "summaries" 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/apis/swf-2012-01-25.paginators.json: -------------------------------------------------------------------------------- 1 | { 2 | "pagination": { 3 | "GetWorkflowExecutionHistory": { 4 | "limit_key": "maximumPageSize", 5 | "input_token": "nextPageToken", 6 | "output_token": "nextPageToken", 7 | "result_key": "events" 8 | }, 9 | "ListActivityTypes": { 10 | "limit_key": "maximumPageSize", 11 | "input_token": "nextPageToken", 12 | "output_token": "nextPageToken", 13 | "result_key": "typeInfos" 14 | }, 15 | "ListClosedWorkflowExecutions": { 16 | "limit_key": "maximumPageSize", 17 | "input_token": "nextPageToken", 18 | "output_token": "nextPageToken", 19 | "result_key": "executionInfos" 20 | }, 21 | "ListDomains": { 22 | "limit_key": "maximumPageSize", 23 | "input_token": "nextPageToken", 24 | "output_token": "nextPageToken", 25 | "result_key": "domainInfos" 26 | }, 27 | "ListOpenWorkflowExecutions": { 28 | "limit_key": "maximumPageSize", 29 | "input_token": "nextPageToken", 30 | "output_token": "nextPageToken", 31 | "result_key": "executionInfos" 32 | }, 33 | "ListWorkflowTypes": { 34 | "limit_key": "maximumPageSize", 35 | "input_token": "nextPageToken", 36 | "output_token": "nextPageToken", 37 | "result_key": "typeInfos" 38 | }, 39 | "PollForDecisionTask": { 40 | "limit_key": "maximumPageSize", 41 | "input_token": "nextPageToken", 42 | "output_token": "nextPageToken", 43 | "result_key": "events" 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "aws-sdk", 3 | "ignore": [ 4 | "doc-src", "dist-tools", "eslint-rules", "features", "lib", 5 | "scripts", "tasks", "test", "Gemfile*", "configuration*", 6 | "Rakefile", "*.json", ".*" 7 | ], 8 | "main": "dist/aws-sdk.js" 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/dist-tools/browser-builder.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var path = require('path'); 4 | 5 | var AWS = require('../'); 6 | 7 | var license = [ 8 | '// AWS SDK for JavaScript v' + AWS.VERSION, 9 | '// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.', 10 | '// License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt' 11 | ].join('\n') + '\n'; 12 | 13 | function minify(code) { 14 | var uglify = require('uglify-js'); 15 | var minified = uglify.minify(code, {fromString: true}); 16 | return minified.code; 17 | } 18 | 19 | function stripComments(code) { 20 | var lines = code.split(/\r?\n/); 21 | var multiLine = false; 22 | lines = lines.map(function (line) { 23 | var rLine = line; 24 | if (line.match(/^\s*\/\//)) { 25 | rLine = null; 26 | } else if (line.match(/^\s*\/\*/)) { 27 | multiLine = true; 28 | rLine = null; 29 | } 30 | 31 | if (multiLine) { 32 | var multiLineEnd = line.match(/\*\/(.*)/); 33 | if (multiLineEnd) { 34 | multiLine = false; 35 | rLine = multiLineEnd[1]; 36 | } else { 37 | rLine = null; 38 | } 39 | } 40 | 41 | return rLine; 42 | }).filter(function(l) { return l !== null; }); 43 | 44 | var newCode = lines.join('\n'); 45 | newCode = newCode.replace(/\/\*\*[\s\S]+?Copyright\s+.+?Amazon[\s\S]+?\*\//g, ''); 46 | return newCode; 47 | } 48 | 49 | function build(options, callback) { 50 | if (arguments.length === 1) { 51 | callback = options; 52 | options = {}; 53 | } 54 | 55 | var img = require('browserify/node_modules/insert-module-globals'); 56 | img.vars.process = function() { return '{browser:true}'; }; 57 | 58 | if (options.services) process.env.AWS_SERVICES = options.services; 59 | 60 | var browserify = require('browserify'); 61 | var brOpts = { basedir: path.resolve(__dirname, '..') }; 62 | browserify(brOpts).add('./').ignore('domain').bundle(function(err, data) { 63 | if (err) return callback(err); 64 | 65 | var code = (data || '').toString(); 66 | if (options.minify) code = minify(code); 67 | else code = stripComments(code); 68 | 69 | code = license + code; 70 | callback(null, code); 71 | }); 72 | } 73 | 74 | // run if we called this tool directly 75 | if (require.main === module) { 76 | var opts = { 77 | services: process.argv[2] || process.env.SERVICES, 78 | minify: process.env.MINIFY ? true : false 79 | }; 80 | build(opts, function(err, code) { 81 | if (err) console.error(err.message); 82 | else console.log(code); 83 | }); 84 | } 85 | 86 | build.license = license; 87 | module.exports = build; 88 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/dist-tools/transform.js: -------------------------------------------------------------------------------- 1 | var Transform = require('stream').Transform; 2 | var collector = require('./service-collector'); 3 | var license = require('./browser-builder').license; 4 | 5 | module.exports = function(file) { 6 | var stream = new Transform(); 7 | stream._transform = function(data, encoding, callback) { 8 | callback(null, data); 9 | }; 10 | 11 | if (file.match(/[\/\\]lib[\/\\]browser\.js$/)) { 12 | stream.push(license); 13 | 14 | var src = collector(process.env.AWS_SERVICES); 15 | stream._flush = function(callback) { stream.push(src); callback(); }; 16 | } 17 | 18 | return stream; 19 | }; 20 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/index.js: -------------------------------------------------------------------------------- 1 | // Convenience file to require the SDK from the root of the repository 2 | module.exports = require('./lib/aws'); 3 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/aws.js: -------------------------------------------------------------------------------- 1 | var AWS = require('./core'); 2 | module.exports = AWS; 3 | 4 | // Use default API loader function 5 | AWS.apiLoader = require('./api_loader').load; 6 | 7 | // Load the xml2js XML parser 8 | AWS.XML.Parser = require('./xml/node_parser'); 9 | 10 | // Load Node HTTP client 11 | require('./http/node'); 12 | 13 | // Load all service classes 14 | require('./services'); 15 | 16 | // Load custom credential providers 17 | require('./credentials/ec2_metadata_credentials'); 18 | require('./credentials/environment_credentials'); 19 | require('./credentials/file_system_credentials'); 20 | require('./credentials/shared_ini_file_credentials'); 21 | 22 | // Setup default chain providers 23 | AWS.CredentialProviderChain.defaultProviders = [ 24 | function () { return new AWS.EnvironmentCredentials('AWS'); }, 25 | function () { return new AWS.EnvironmentCredentials('AMAZON'); }, 26 | function () { return new AWS.SharedIniFileCredentials(); }, 27 | function () { return new AWS.EC2MetadataCredentials(); } 28 | ]; 29 | 30 | // Update configuration keys 31 | AWS.util.update(AWS.Config.prototype.keys, { 32 | credentials: function () { 33 | var credentials = null; 34 | new AWS.CredentialProviderChain([ 35 | function () { return new AWS.EnvironmentCredentials('AWS'); }, 36 | function () { return new AWS.EnvironmentCredentials('AMAZON'); }, 37 | function () { return new AWS.SharedIniFileCredentials(); } 38 | ]).resolve(function(err, creds) { 39 | if (!err) credentials = creds; 40 | }); 41 | return credentials; 42 | }, 43 | credentialProvider: function() { 44 | return new AWS.CredentialProviderChain(); 45 | }, 46 | region: function() { 47 | return process.env.AWS_REGION || process.env.AMAZON_REGION; 48 | } 49 | }); 50 | 51 | // Reset configuration 52 | AWS.config = new AWS.Config(); 53 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/browser.js: -------------------------------------------------------------------------------- 1 | var AWS = require('./core'); 2 | 3 | // Load browser API loader 4 | AWS.apiLoader = function(svc, version) { 5 | return AWS.apiLoader.services[svc][version]; 6 | }; 7 | 8 | /** 9 | * @api private 10 | */ 11 | AWS.apiLoader.services = {}; 12 | 13 | // Load the DOMParser XML parser 14 | AWS.XML.Parser = require('./xml/browser_parser'); 15 | 16 | // Load the XHR HttpClient 17 | require('./http/xhr'); 18 | 19 | if (typeof window !== 'undefined') window.AWS = AWS; 20 | if (typeof module !== 'undefined') module.exports = AWS; 21 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/core.js: -------------------------------------------------------------------------------- 1 | /** 2 | * The main AWS namespace 3 | */ 4 | var AWS = { util: require('./util') }; 5 | 6 | /** 7 | * @api private 8 | * @!macro [new] nobrowser 9 | * @note This feature is not supported in the browser environment of the SDK. 10 | */ 11 | var _hidden = {}; _hidden.toString(); // hack to parse macro 12 | 13 | module.exports = AWS; 14 | 15 | AWS.util.update(AWS, { 16 | 17 | /** 18 | * @constant 19 | */ 20 | VERSION: '2.1.17', 21 | 22 | /** 23 | * @api private 24 | */ 25 | Signers: {}, 26 | 27 | /** 28 | * @api private 29 | */ 30 | Protocol: { 31 | Json: require('./protocol/json'), 32 | Query: require('./protocol/query'), 33 | Rest: require('./protocol/rest'), 34 | RestJson: require('./protocol/rest_json'), 35 | RestXml: require('./protocol/rest_xml') 36 | }, 37 | 38 | /** 39 | * @api private 40 | */ 41 | XML: { 42 | Builder: require('./xml/builder'), 43 | Parser: null // conditionally set based on environment 44 | }, 45 | 46 | /** 47 | * @api private 48 | */ 49 | JSON: { 50 | Builder: require('./json/builder'), 51 | Parser: require('./json/parser') 52 | }, 53 | 54 | /** 55 | * @api private 56 | */ 57 | Model: { 58 | Api: require('./model/api'), 59 | Operation: require('./model/operation'), 60 | Shape: require('./model/shape'), 61 | Paginator: require('./model/paginator'), 62 | ResourceWaiter: require('./model/resource_waiter') 63 | }, 64 | 65 | util: require('./util'), 66 | 67 | /** 68 | * @api private 69 | */ 70 | apiLoader: function() { throw new Error('No API loader set'); } 71 | }); 72 | 73 | require('./service'); 74 | 75 | require('./credentials'); 76 | require('./credentials/credential_provider_chain'); 77 | require('./credentials/temporary_credentials'); 78 | require('./credentials/web_identity_credentials'); 79 | require('./credentials/cognito_identity_credentials'); 80 | require('./credentials/saml_credentials'); 81 | 82 | require('./config'); 83 | require('./http'); 84 | require('./sequential_executor'); 85 | require('./event_listeners'); 86 | require('./request'); 87 | require('./response'); 88 | require('./resource_waiter'); 89 | require('./signers/request_signer'); 90 | require('./param_validator'); 91 | 92 | /** 93 | * @readonly 94 | * @return [AWS.SequentialExecutor] a collection of global event listeners that 95 | * are attached to every sent request. 96 | * @see AWS.Request AWS.Request for a list of events to listen for 97 | * @example Logging the time taken to send a request 98 | * AWS.events.on('send', function startSend(resp) { 99 | * resp.startTime = new Date().getTime(); 100 | * }).on('complete', function calculateTime(resp) { 101 | * var time = (new Date().getTime() - resp.startTime) / 1000; 102 | * console.log('Request took ' + time + ' seconds'); 103 | * }); 104 | * 105 | * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' 106 | */ 107 | AWS.events = new AWS.SequentialExecutor(); 108 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | require('../metadata_service'); 3 | 4 | /** 5 | * Represents credentials received from the metadata service on an EC2 instance. 6 | * 7 | * By default, this class will connect to the metadata service using 8 | * {AWS.MetadataService} and attempt to load any available credentials. If it 9 | * can connect, and credentials are available, these will be used with zero 10 | * configuration. 11 | * 12 | * This credentials class will timeout after 1 second of inactivity by default. 13 | * If your requests to the EC2 metadata service are timing out, you can increase 14 | * the value by configuring them directly: 15 | * 16 | * ```javascript 17 | * AWS.config.credentials = new AWS.EC2MetadataCredentials({ 18 | * httpOptions: { timeout: 5000 } // 5 second timeout 19 | * }); 20 | * ``` 21 | * 22 | * @!macro nobrowser 23 | */ 24 | AWS.EC2MetadataCredentials = AWS.util.inherit(AWS.Credentials, { 25 | constructor: function EC2MetadataCredentials(options) { 26 | AWS.Credentials.call(this); 27 | 28 | options = options ? AWS.util.copy(options) : {}; 29 | if (!options.httpOptions) options.httpOptions = {}; 30 | options.httpOptions = AWS.util.merge( 31 | {timeout: this.defaultTimeout}, options.httpOptions); 32 | 33 | this.metadataService = new AWS.MetadataService(options); 34 | this.metadata = {}; 35 | }, 36 | 37 | /** 38 | * @api private 39 | */ 40 | defaultTimeout: 1000, 41 | 42 | /** 43 | * Loads the credentials from the instance metadata service 44 | * 45 | * @callback callback function(err) 46 | * Called when the instance metadata service responds (or fails). When 47 | * this callback is called with no error, it means that the credentials 48 | * information has been loaded into the object (as the `accessKeyId`, 49 | * `secretAccessKey`, and `sessionToken` properties). 50 | * @param err [Error] if an error occurred, this value will be filled 51 | * @see get 52 | */ 53 | refresh: function refresh(callback) { 54 | var self = this; 55 | if (!callback) callback = function(err) { if (err) throw err; }; 56 | 57 | self.metadataService.loadCredentials(function (err, creds) { 58 | if (!err) { 59 | self.expired = false; 60 | self.metadata = creds; 61 | self.accessKeyId = creds.AccessKeyId; 62 | self.secretAccessKey = creds.SecretAccessKey; 63 | self.sessionToken = creds.Token; 64 | self.expireTime = new Date(creds.Expiration); 65 | } 66 | callback(err); 67 | }); 68 | } 69 | }); 70 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/environment_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | /** 4 | * Represents credentials from the environment. 5 | * 6 | * By default, this class will look for the matching environment variables 7 | * prefixed by a given {envPrefix}. The un-prefixed environment variable names 8 | * for each credential value is listed below: 9 | * 10 | * ```javascript 11 | * accessKeyId: ACCESS_KEY_ID 12 | * secretAccessKey: SECRET_ACCESS_KEY 13 | * sessionToken: SESSION_TOKEN 14 | * ``` 15 | * 16 | * With the default prefix of 'AWS', the environment variables would be: 17 | * 18 | * AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN 19 | * 20 | * @!attribute envPrefix 21 | * @readonly 22 | * @return [String] the prefix for the environment variable names excluding 23 | * the separating underscore ('_'). 24 | */ 25 | AWS.EnvironmentCredentials = AWS.util.inherit(AWS.Credentials, { 26 | 27 | /** 28 | * Creates a new EnvironmentCredentials class with a given variable 29 | * prefix {envPrefix}. For example, to load credentials using the 'AWS' 30 | * prefix: 31 | * 32 | * ```javascript 33 | * var creds = new AWS.EnvironmentCredentials('AWS'); 34 | * creds.accessKeyId == 'AKID' // from AWS_ACCESS_KEY_ID env var 35 | * ``` 36 | * 37 | * @param envPrefix [String] the prefix to use (e.g., 'AWS') for environment 38 | * variables. Do not include the separating underscore. 39 | */ 40 | constructor: function EnvironmentCredentials(envPrefix) { 41 | AWS.Credentials.call(this); 42 | this.envPrefix = envPrefix; 43 | this.get(function() {}); 44 | }, 45 | 46 | /** 47 | * Loads credentials from the environment using the prefixed 48 | * environment variables. 49 | * 50 | * @callback callback function(err) 51 | * Called when the instance metadata service responds (or fails). When 52 | * this callback is called with no error, it means that the credentials 53 | * information has been loaded into the object (as the `accessKeyId`, 54 | * `secretAccessKey`, and `sessionToken` properties). 55 | * @param err [Error] if an error occurred, this value will be filled 56 | * @see get 57 | */ 58 | refresh: function refresh(callback) { 59 | if (!callback) callback = function(err) { if (err) throw err; }; 60 | 61 | if (process === undefined) { 62 | callback(new Error('No process info available')); 63 | return; 64 | } 65 | 66 | var keys = ['ACCESS_KEY_ID', 'SECRET_ACCESS_KEY', 'SESSION_TOKEN']; 67 | var values = []; 68 | 69 | for (var i = 0; i < keys.length; i++) { 70 | var prefix = ''; 71 | if (this.envPrefix) prefix = this.envPrefix + '_'; 72 | values[i] = process.env[prefix + keys[i]]; 73 | if (!values[i] && keys[i] !== 'SESSION_TOKEN') { 74 | callback(new Error('Variable ' + prefix + keys[i] + ' not set.')); 75 | return; 76 | } 77 | } 78 | 79 | this.expired = false; 80 | AWS.Credentials.apply(this, values); 81 | callback(); 82 | } 83 | 84 | }); 85 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/file_system_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | /** 4 | * Represents credentials from a JSON file on disk. 5 | * If the credentials expire, the SDK can {refresh} the credentials 6 | * from the file. 7 | * 8 | * The format of the file should be similar to the options passed to 9 | * {AWS.Config}: 10 | * 11 | * ```javascript 12 | * {accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'optional'} 13 | * ``` 14 | * 15 | * @example Loading credentials from disk 16 | * var creds = new AWS.FileSystemCredentials('./configuration.json'); 17 | * creds.accessKeyId == 'AKID' 18 | * 19 | * @!attribute filename 20 | * @readonly 21 | * @return [String] the path to the JSON file on disk containing the 22 | * credentials. 23 | * @!macro nobrowser 24 | */ 25 | AWS.FileSystemCredentials = AWS.util.inherit(AWS.Credentials, { 26 | 27 | /** 28 | * @overload AWS.FileSystemCredentials(filename) 29 | * Creates a new FileSystemCredentials object from a filename 30 | * 31 | * @param filename [String] the path on disk to the JSON file to load. 32 | */ 33 | constructor: function FileSystemCredentials(filename) { 34 | AWS.Credentials.call(this); 35 | this.filename = filename; 36 | this.get(function() {}); 37 | }, 38 | 39 | /** 40 | * Loads the credentials from the {filename} on disk. 41 | * 42 | * @callback callback function(err) 43 | * Called when the instance metadata service responds (or fails). When 44 | * this callback is called with no error, it means that the credentials 45 | * information has been loaded into the object (as the `accessKeyId`, 46 | * `secretAccessKey`, and `sessionToken` properties). 47 | * @param err [Error] if an error occurred, this value will be filled 48 | * @see get 49 | */ 50 | refresh: function refresh(callback) { 51 | if (!callback) callback = function(err) { if (err) throw err; }; 52 | try { 53 | var creds = JSON.parse(AWS.util.readFileSync(this.filename)); 54 | AWS.Credentials.call(this, creds); 55 | if (!this.accessKeyId || !this.secretAccessKey) { 56 | throw new Error('Credentials not set in ' + this.filename); 57 | } 58 | this.expired = false; 59 | callback(); 60 | } catch (err) { 61 | callback(err); 62 | } 63 | } 64 | 65 | }); 66 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/saml_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | /** 4 | * Represents credentials retrieved from STS SAML support. 5 | * 6 | * By default this provider gets credentials using the 7 | * {AWS.STS.assumeRoleWithSAML} service operation. This operation 8 | * requires a `RoleArn` containing the ARN of the IAM trust policy for the 9 | * application for which credentials will be given, as well as a `PrincipalArn` 10 | * representing the ARN for the SAML identity provider. In addition, the 11 | * `SAMLAssertion` must be set to the token provided by the identity 12 | * provider. See {constructor} for an example on creating a credentials 13 | * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values. 14 | * 15 | * ## Refreshing Credentials from Identity Service 16 | * 17 | * In addition to AWS credentials expiring after a given amount of time, the 18 | * login token from the identity provider will also expire. Once this token 19 | * expires, it will not be usable to refresh AWS credentials, and another 20 | * token will be needed. The SDK does not manage refreshing of the token value, 21 | * but this can be done through a "refresh token" supported by most identity 22 | * providers. Consult the documentation for the identity provider for refreshing 23 | * tokens. Once the refreshed token is acquired, you should make sure to update 24 | * this new token in the credentials object's {params} property. The following 25 | * code will update the SAMLAssertion, assuming you have retrieved an updated 26 | * token from the identity provider: 27 | * 28 | * ```javascript 29 | * AWS.config.credentials.params.SAMLAssertion = updatedToken; 30 | * ``` 31 | * 32 | * Future calls to `credentials.refresh()` will now use the new token. 33 | * 34 | * @!attribute params 35 | * @return [map] the map of params passed to 36 | * {AWS.STS.assumeRoleWithSAML}. To update the token, set the 37 | * `params.SAMLAssertion` property. 38 | */ 39 | AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { 40 | /** 41 | * Creates a new credentials object. 42 | * @param (see AWS.STS.assumeRoleWithSAML) 43 | * @example Creating a new credentials object 44 | * AWS.config.credentials = new AWS.SAMLCredentials({ 45 | * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole', 46 | * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal', 47 | * SAMLAssertion: 'base64-token', // base64-encoded token from IdP 48 | * }); 49 | * @see AWS.STS.assumeRoleWithSAML 50 | */ 51 | constructor: function SAMLCredentials(params) { 52 | AWS.Credentials.call(this); 53 | this.expired = true; 54 | this.params = params; 55 | this.service = new AWS.STS({params: this.params}); 56 | }, 57 | 58 | /** 59 | * Refreshes credentials using {AWS.STS.assumeRoleWithSAML} 60 | * 61 | * @callback callback function(err) 62 | * Called when the STS service responds (or fails). When 63 | * this callback is called with no error, it means that the credentials 64 | * information has been loaded into the object (as the `accessKeyId`, 65 | * `secretAccessKey`, and `sessionToken` properties). 66 | * @param err [Error] if an error occurred, this value will be filled 67 | * @see get 68 | */ 69 | refresh: function refresh(callback) { 70 | var self = this; 71 | if (!callback) callback = function(err) { if (err) throw err; }; 72 | 73 | self.service.assumeRoleWithSAML(function (err, data) { 74 | if (!err) { 75 | self.service.credentialsFrom(data, self); 76 | } 77 | callback(err); 78 | }); 79 | } 80 | }); 81 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var path = require('path'); 3 | 4 | /** 5 | * Represents credentials loaded from shared credentials file 6 | * (defaulting to ~/.aws/credentials). 7 | * 8 | * ## Using the shared credentials file 9 | * 10 | * This provider is checked by default in the Node.js environment. To use the 11 | * credentials file provider, simply add your access and secret keys to the 12 | * ~/.aws/credentials file in the following format: 13 | * 14 | * [default] 15 | * aws_access_key_id = AKID... 16 | * aws_secret_access_key = YOUR_SECRET_KEY 17 | * 18 | * ## Using custom profiles 19 | * 20 | * The SDK supports loading credentials for separate profiles. This can be done 21 | * in two ways: 22 | * 23 | * 1. Set the `AWS_PROFILE` environment variable in your process prior to 24 | * loading the SDK. 25 | * 2. Directly load the AWS.SharedIniFileCredentials provider: 26 | * 27 | * ```javascript 28 | * var creds = new AWS.SharedIniFileCredentials({profile: 'myprofile'}); 29 | * AWS.config.credentials = creds; 30 | * ``` 31 | * 32 | * @!macro nobrowser 33 | */ 34 | AWS.SharedIniFileCredentials = AWS.util.inherit(AWS.Credentials, { 35 | /** 36 | * Creates a new SharedIniFileCredentials object. 37 | * 38 | * @param options [map] a set of options 39 | * @option options profile [String] (AWS_PROFILE env var or 'default') 40 | * the name of the profile to load. 41 | * @option options filename [String] ('~/.aws/credentials') the filename 42 | * to use when loading credentials. 43 | */ 44 | constructor: function SharedIniFileCredentials(options) { 45 | AWS.Credentials.call(this); 46 | 47 | options = options || {}; 48 | 49 | this.filename = options.filename; 50 | this.profile = options.profile || process.env.AWS_PROFILE || 'default'; 51 | this.get(function() {}); 52 | }, 53 | 54 | /** 55 | * Loads the credentials from the instance metadata service 56 | * 57 | * @callback callback function(err) 58 | * Called when the instance metadata service responds (or fails). When 59 | * this callback is called with no error, it means that the credentials 60 | * information has been loaded into the object (as the `accessKeyId`, 61 | * `secretAccessKey`, and `sessionToken` properties). 62 | * @param err [Error] if an error occurred, this value will be filled 63 | * @see get 64 | */ 65 | refresh: function refresh(callback) { 66 | if (!callback) callback = function(err) { if (err) throw err; }; 67 | try { 68 | if (!this.filename) this.loadDefaultFilename(); 69 | var creds = AWS.util.ini.parse(AWS.util.readFileSync(this.filename)); 70 | if (typeof creds[this.profile] === 'object') { 71 | this.accessKeyId = creds[this.profile]['aws_access_key_id']; 72 | this.secretAccessKey = creds[this.profile]['aws_secret_access_key']; 73 | this.sessionToken = creds[this.profile]['aws_session_token']; 74 | } 75 | 76 | if (!this.accessKeyId || !this.secretAccessKey) { 77 | throw new Error('Credentials not set in ' + this.filename + 78 | ' using profile ' + this.profile); 79 | } 80 | this.expired = false; 81 | callback(); 82 | } catch (err) { 83 | callback(err); 84 | } 85 | }, 86 | 87 | /** 88 | * @api private 89 | */ 90 | loadDefaultFilename: function loadDefaultFilename() { 91 | var env = process.env; 92 | var home = env.HOME || 93 | env.USERPROFILE || 94 | (env.HOMEPATH ? ((env.HOMEDRIVE || 'C:/') + env.HOMEPATH) : null); 95 | if (!home) { 96 | throw AWS.util.error( 97 | new Error('Cannot load credentials, HOME path not set')); 98 | } 99 | 100 | this.filename = path.join(home, '.aws', 'credentials'); 101 | } 102 | }); 103 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/credentials/web_identity_credentials.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | /** 4 | * Represents credentials retrieved from STS Web Identity Federation support. 5 | * 6 | * By default this provider gets credentials using the 7 | * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation 8 | * requires a `RoleArn` containing the ARN of the IAM trust policy for the 9 | * application for which credentials will be given. In addition, the 10 | * `WebIdentityToken` must be set to the token provided by the identity 11 | * provider. See {constructor} for an example on creating a credentials 12 | * object with proper `RoleArn` and `WebIdentityToken` values. 13 | * 14 | * ## Refreshing Credentials from Identity Service 15 | * 16 | * In addition to AWS credentials expiring after a given amount of time, the 17 | * login token from the identity provider will also expire. Once this token 18 | * expires, it will not be usable to refresh AWS credentials, and another 19 | * token will be needed. The SDK does not manage refreshing of the token value, 20 | * but this can be done through a "refresh token" supported by most identity 21 | * providers. Consult the documentation for the identity provider for refreshing 22 | * tokens. Once the refreshed token is acquired, you should make sure to update 23 | * this new token in the credentials object's {params} property. The following 24 | * code will update the WebIdentityToken, assuming you have retrieved an updated 25 | * token from the identity provider: 26 | * 27 | * ```javascript 28 | * AWS.config.credentials.params.WebIdentityToken = updatedToken; 29 | * ``` 30 | * 31 | * Future calls to `credentials.refresh()` will now use the new token. 32 | * 33 | * @!attribute params 34 | * @return [map] the map of params passed to 35 | * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the 36 | * `params.WebIdentityToken` property. 37 | * @!attribute data 38 | * @return [map] the raw data response from the call to 39 | * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get 40 | * access to other properties from the response. 41 | */ 42 | AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { 43 | /** 44 | * Creates a new credentials object. 45 | * @param (see AWS.STS.assumeRoleWithWebIdentity) 46 | * @example Creating a new credentials object 47 | * AWS.config.credentials = new AWS.WebIdentityCredentials({ 48 | * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', 49 | * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service 50 | * RoleSessionName: 'web' // optional name, defaults to web-identity 51 | * }); 52 | * @see AWS.STS.assumeRoleWithWebIdentity 53 | */ 54 | constructor: function WebIdentityCredentials(params) { 55 | AWS.Credentials.call(this); 56 | this.expired = true; 57 | this.params = params; 58 | this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; 59 | this.service = new AWS.STS({params: this.params}); 60 | this.data = null; 61 | }, 62 | 63 | /** 64 | * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} 65 | * 66 | * @callback callback function(err) 67 | * Called when the STS service responds (or fails). When 68 | * this callback is called with no error, it means that the credentials 69 | * information has been loaded into the object (as the `accessKeyId`, 70 | * `secretAccessKey`, and `sessionToken` properties). 71 | * @param err [Error] if an error occurred, this value will be filled 72 | * @see get 73 | */ 74 | refresh: function refresh(callback) { 75 | var self = this; 76 | if (!callback) callback = function(err) { if (err) throw err; }; 77 | 78 | self.service.assumeRoleWithWebIdentity(function (err, data) { 79 | self.data = null; 80 | if (!err) { 81 | self.data = data; 82 | self.service.credentialsFrom(data, self); 83 | } 84 | callback(err); 85 | }); 86 | } 87 | }); 88 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/json/builder.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | 3 | function JsonBuilder() { } 4 | 5 | JsonBuilder.prototype.build = function(value, shape) { 6 | return JSON.stringify(translate(value, shape)); 7 | }; 8 | 9 | function translate(value, shape) { 10 | if (!shape || value === undefined || value === null) return undefined; 11 | 12 | switch (shape.type) { 13 | case 'structure': return translateStructure(value, shape); 14 | case 'map': return translateMap(value, shape); 15 | case 'list': return translateList(value, shape); 16 | default: return translateScalar(value, shape); 17 | } 18 | } 19 | 20 | function translateStructure(structure, shape) { 21 | var struct = {}; 22 | util.each(structure, function(name, value) { 23 | var memberShape = shape.members[name]; 24 | if (memberShape) { 25 | if (memberShape.location !== 'body') return; 26 | 27 | var result = translate(value, memberShape); 28 | if (result !== undefined) struct[name] = result; 29 | } 30 | }); 31 | return struct; 32 | } 33 | 34 | function translateList(list, shape) { 35 | var out = []; 36 | util.arrayEach(list, function(value) { 37 | var result = translate(value, shape.member); 38 | if (result !== undefined) out.push(result); 39 | }); 40 | return out; 41 | } 42 | 43 | function translateMap(map, shape) { 44 | var out = {}; 45 | util.each(map, function(key, value) { 46 | var result = translate(value, shape.value); 47 | if (result !== undefined) out[key] = result; 48 | }); 49 | return out; 50 | } 51 | 52 | function translateScalar(value, shape) { 53 | return shape.toWireFormat(value); 54 | } 55 | 56 | module.exports = JsonBuilder; 57 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/json/parser.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | 3 | function JsonParser() { } 4 | 5 | JsonParser.prototype.parse = function(value, shape) { 6 | return translate(JSON.parse(value), shape); 7 | }; 8 | 9 | function translate(value, shape) { 10 | if (!shape || value === undefined || value === null) return undefined; 11 | 12 | switch (shape.type) { 13 | case 'structure': return translateStructure(value, shape); 14 | case 'map': return translateMap(value, shape); 15 | case 'list': return translateList(value, shape); 16 | default: return translateScalar(value, shape); 17 | } 18 | } 19 | 20 | function translateStructure(structure, shape) { 21 | var struct = {}; 22 | util.each(structure, function(name, value) { 23 | var memberShape = shape.members[name]; 24 | if (memberShape) { 25 | var result = translate(value, memberShape); 26 | if (result !== undefined) struct[name] = result; 27 | } 28 | }); 29 | return struct; 30 | } 31 | 32 | function translateList(list, shape) { 33 | var out = []; 34 | util.arrayEach(list, function(value) { 35 | var result = translate(value, shape.member); 36 | if (result !== undefined) out.push(result); 37 | }); 38 | return out; 39 | } 40 | 41 | function translateMap(map, shape) { 42 | var out = {}; 43 | util.each(map, function(key, value) { 44 | var result = translate(value, shape.value); 45 | if (result !== undefined) out[key] = result; 46 | }); 47 | return out; 48 | } 49 | 50 | function translateScalar(value, shape) { 51 | return shape.toType(value); 52 | } 53 | 54 | module.exports = JsonParser; 55 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/model/api.js: -------------------------------------------------------------------------------- 1 | var Collection = require('./collection'); 2 | var Operation = require('./operation'); 3 | var Shape = require('./shape'); 4 | var Paginator = require('./paginator'); 5 | var ResourceWaiter = require('./resource_waiter'); 6 | 7 | var util = require('../util'); 8 | var property = util.property; 9 | var memoizedProperty = util.memoizedProperty; 10 | 11 | function Api(api, options) { 12 | api = api || {}; 13 | options = options || {}; 14 | options.api = this; 15 | 16 | api.metadata = api.metadata || {}; 17 | 18 | property(this, 'isApi', true, false); 19 | property(this, 'apiVersion', api.metadata.apiVersion); 20 | property(this, 'endpointPrefix', api.metadata.endpointPrefix); 21 | property(this, 'signingName', api.metadata.signingName); 22 | property(this, 'globalEndpoint', api.metadata.globalEndpoint); 23 | property(this, 'signatureVersion', api.metadata.signatureVersion); 24 | property(this, 'jsonVersion', api.metadata.jsonVersion); 25 | property(this, 'targetPrefix', api.metadata.targetPrefix); 26 | property(this, 'protocol', api.metadata.protocol); 27 | property(this, 'timestampFormat', api.metadata.timestampFormat); 28 | property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); 29 | property(this, 'abbreviation', api.metadata.serviceAbbreviation); 30 | property(this, 'fullName', api.metadata.serviceFullName); 31 | 32 | memoizedProperty(this, 'className', function() { 33 | var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; 34 | if (!name) return null; 35 | 36 | name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); 37 | if (name === 'ElasticLoadBalancing') name = 'ELB'; 38 | return name; 39 | }); 40 | 41 | property(this, 'operations', new Collection(api.operations, options, function(name, operation) { 42 | return new Operation(name, operation, options); 43 | }, util.string.lowerFirst)); 44 | 45 | property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { 46 | return Shape.create(shape, options); 47 | })); 48 | 49 | property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { 50 | return new Paginator(name, paginator, options); 51 | })); 52 | 53 | property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { 54 | return new ResourceWaiter(name, waiter, options); 55 | }, util.string.lowerFirst)); 56 | 57 | if (options.documentation) { 58 | property(this, 'documentation', api.documentation); 59 | property(this, 'documentationUrl', api.documentationUrl); 60 | } 61 | } 62 | 63 | module.exports = Api; 64 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/model/collection.js: -------------------------------------------------------------------------------- 1 | var memoizedProperty = require('../util').memoizedProperty; 2 | 3 | function memoize(name, value, fn, nameTr) { 4 | memoizedProperty(this, nameTr(name), function() { 5 | return fn(name, value); 6 | }); 7 | } 8 | 9 | function Collection(iterable, options, fn, nameTr) { 10 | nameTr = nameTr || String; 11 | var self = this; 12 | 13 | for (var id in iterable) { 14 | if (iterable.hasOwnProperty(id)) { 15 | memoize.call(self, id, iterable[id], fn, nameTr); 16 | } 17 | } 18 | } 19 | 20 | module.exports = Collection; 21 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/model/operation.js: -------------------------------------------------------------------------------- 1 | var Shape = require('./shape'); 2 | 3 | var util = require('../util'); 4 | var property = util.property; 5 | var memoizedProperty = util.memoizedProperty; 6 | 7 | function Operation(name, operation, options) { 8 | options = options || {}; 9 | 10 | property(this, 'name', operation.name || name); 11 | property(this, 'api', options.api, false); 12 | 13 | operation.http = operation.http || {}; 14 | property(this, 'httpMethod', operation.http.method || 'POST'); 15 | property(this, 'httpPath', operation.http.requestUri || '/'); 16 | 17 | memoizedProperty(this, 'input', function() { 18 | if (!operation.input) { 19 | return new Shape.create({type: 'structure'}, options); 20 | } 21 | return Shape.create(operation.input, options); 22 | }); 23 | 24 | memoizedProperty(this, 'output', function() { 25 | if (!operation.output) { 26 | return new Shape.create({type: 'structure'}, options); 27 | } 28 | return Shape.create(operation.output, options); 29 | }); 30 | 31 | memoizedProperty(this, 'errors', function() { 32 | var list = []; 33 | if (!operation.errors) return null; 34 | 35 | for (var i = 0; i < operation.errors.length; i++) { 36 | list.push(Shape.create(operation.errors[i], options)); 37 | } 38 | 39 | return list; 40 | }); 41 | 42 | memoizedProperty(this, 'paginator', function() { 43 | return options.api.paginators[name]; 44 | }); 45 | 46 | if (options.documentation) { 47 | property(this, 'documentation', operation.documentation); 48 | property(this, 'documentationUrl', operation.documentationUrl); 49 | } 50 | } 51 | 52 | module.exports = Operation; 53 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/model/paginator.js: -------------------------------------------------------------------------------- 1 | var property = require('../util').property; 2 | 3 | function Paginator(name, paginator) { 4 | property(this, 'inputToken', paginator.input_token); 5 | property(this, 'limitKey', paginator.limit_key); 6 | property(this, 'moreResults', paginator.more_results); 7 | property(this, 'outputToken', paginator.output_token); 8 | property(this, 'resultKey', paginator.result_key); 9 | } 10 | 11 | module.exports = Paginator; 12 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/model/resource_waiter.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | var property = util.property; 3 | 4 | function ResourceWaiter(name, waiter, options) { 5 | options = options || {}; 6 | 7 | function InnerResourceWaiter() { 8 | property(this, 'name', name); 9 | property(this, 'api', options.api, false); 10 | 11 | if (waiter.operation) { 12 | property(this, 'operation', util.string.lowerFirst(waiter.operation)); 13 | } 14 | 15 | var self = this, map = { 16 | ignoreErrors: 'ignore_errors', 17 | successType: 'success_type', 18 | successValue: 'success_value', 19 | successPath: 'success_path', 20 | acceptorType: 'acceptor_type', 21 | acceptorValue: 'acceptor_value', 22 | acceptorPath: 'acceptor_path', 23 | failureType: 'failure_type', 24 | failureValue: 'failure_value', 25 | failurePath: 'success_path', 26 | interval: 'interval', 27 | maxAttempts: 'max_attempts' 28 | }; 29 | Object.keys(map).forEach(function(key) { 30 | var value = waiter[map[key]]; 31 | if (value) property(self, key, value); 32 | }); 33 | } 34 | 35 | if (options.api) { 36 | var proto = null; 37 | if (waiter['extends']) { 38 | proto = options.api.waiters[waiter['extends']]; 39 | } else if (name !== '__default__') { 40 | proto = options.api.waiters['__default__']; 41 | } 42 | 43 | if (proto) InnerResourceWaiter.prototype = proto; 44 | } 45 | 46 | return new InnerResourceWaiter(); 47 | } 48 | 49 | module.exports = ResourceWaiter; 50 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/protocol/json.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | var JsonBuilder = require('../json/builder'); 3 | var JsonParser = require('../json/parser'); 4 | 5 | function buildRequest(req) { 6 | var httpRequest = req.httpRequest; 7 | var api = req.service.api; 8 | var target = api.targetPrefix + '.' + api.operations[req.operation].name; 9 | var version = api.jsonVersion || '1.0'; 10 | var input = api.operations[req.operation].input; 11 | var builder = new JsonBuilder(); 12 | 13 | if (version === 1) version = '1.0'; 14 | httpRequest.body = builder.build(req.params || {}, input); 15 | httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; 16 | httpRequest.headers['X-Amz-Target'] = target; 17 | } 18 | 19 | function extractError(resp) { 20 | var error = {}; 21 | var httpResponse = resp.httpResponse; 22 | 23 | error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; 24 | if (typeof error.code === 'string') { 25 | error.code = error.code.split(':')[0]; 26 | } 27 | 28 | if (httpResponse.body.length > 0) { 29 | var e = JSON.parse(httpResponse.body.toString()); 30 | if (e.__type || e.code) { 31 | error.code = (e.__type || e.code).split('#').pop(); 32 | } 33 | if (error.code === 'RequestEntityTooLarge') { 34 | error.message = 'Request body must be less than 1 MB'; 35 | } else { 36 | error.message = (e.message || e.Message || null); 37 | } 38 | } else { 39 | error.statusCode = httpResponse.statusCode; 40 | error.message = httpResponse.statusCode.toString(); 41 | } 42 | 43 | resp.error = util.error(new Error(), error); 44 | } 45 | 46 | function extractData(resp) { 47 | var body = resp.httpResponse.body.toString() || '{}'; 48 | if (resp.request.service.config.convertResponseTypes === false) { 49 | resp.data = JSON.parse(body); 50 | } else { 51 | var operation = resp.request.service.api.operations[resp.request.operation]; 52 | var shape = operation.output || {}; 53 | var parser = new JsonParser(); 54 | resp.data = parser.parse(body, shape); 55 | } 56 | } 57 | 58 | module.exports = { 59 | buildRequest: buildRequest, 60 | extractError: extractError, 61 | extractData: extractData 62 | }; 63 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/protocol/query.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var util = require('../util'); 3 | var QueryParamSerializer = require('../query/query_param_serializer'); 4 | var Shape = require('../model/shape'); 5 | 6 | function buildRequest(req) { 7 | var operation = req.service.api.operations[req.operation]; 8 | var httpRequest = req.httpRequest; 9 | httpRequest.headers['Content-Type'] = 10 | 'application/x-www-form-urlencoded; charset=utf-8'; 11 | httpRequest.params = { 12 | Version: req.service.api.apiVersion, 13 | Action: operation.name 14 | }; 15 | 16 | // convert the request parameters into a list of query params, 17 | // e.g. Deeply.NestedParam.0.Name=value 18 | var builder = new QueryParamSerializer(); 19 | builder.serialize(req.params, operation.input, function(name, value) { 20 | httpRequest.params[name] = value; 21 | }); 22 | httpRequest.body = util.queryParamsToString(httpRequest.params); 23 | } 24 | 25 | function extractError(resp) { 26 | var data, body = resp.httpResponse.body.toString(); 27 | if (body.match(' 0) { 77 | parser = new AWS.XML.Parser(); 78 | var data = parser.parse(body.toString(), output); 79 | util.update(resp.data, data); 80 | } 81 | } 82 | 83 | module.exports = { 84 | buildRequest: buildRequest, 85 | extractError: extractError, 86 | extractData: extractData 87 | }; 88 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/query/query_param_serializer.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | 3 | function QueryParamSerializer() { 4 | } 5 | 6 | QueryParamSerializer.prototype.serialize = function(params, shape, fn) { 7 | serializeStructure('', params, shape, fn); 8 | }; 9 | 10 | function ucfirst(shape) { 11 | if (shape.isQueryName || shape.api.protocol !== 'ec2') { 12 | return shape.name; 13 | } else { 14 | return shape.name[0].toUpperCase() + shape.name.substr(1); 15 | } 16 | } 17 | 18 | function serializeStructure(prefix, struct, rules, fn) { 19 | util.each(rules.members, function(name, member) { 20 | var value = struct[name]; 21 | if (value === null || value === undefined) return; 22 | 23 | var memberName = ucfirst(member); 24 | memberName = prefix ? prefix + '.' + memberName : memberName; 25 | serializeMember(memberName, value, member, fn); 26 | }); 27 | } 28 | 29 | function serializeMap(name, map, rules, fn) { 30 | var i = 1; 31 | util.each(map, function (key, value) { 32 | var prefix = rules.flattened ? '.' : '.entry.'; 33 | var position = prefix + (i++) + '.'; 34 | var keyName = position + (rules.key.name || 'key'); 35 | var valueName = position + (rules.value.name || 'value'); 36 | serializeMember(name + keyName, key, rules.key, fn); 37 | serializeMember(name + valueName, value, rules.value, fn); 38 | }); 39 | } 40 | 41 | function serializeList(name, list, rules, fn) { 42 | var memberRules = rules.member || {}; 43 | 44 | if (list.length === 0) { 45 | fn.call(this, name, null); 46 | return; 47 | } 48 | 49 | util.arrayEach(list, function (v, n) { 50 | var suffix = '.' + (n + 1); 51 | if (rules.api.protocol === 'ec2') { 52 | // Do nothing for EC2 53 | suffix = suffix + ''; // make linter happy 54 | } else if (rules.flattened) { 55 | if (memberRules.name) { 56 | var parts = name.split('.'); 57 | parts.pop(); 58 | parts.push(ucfirst(memberRules)); 59 | name = parts.join('.'); 60 | } 61 | } else { 62 | suffix = '.member' + suffix; 63 | } 64 | serializeMember(name + suffix, v, memberRules, fn); 65 | }); 66 | } 67 | 68 | function serializeMember(name, value, rules, fn) { 69 | if (value === null || value === undefined) return; 70 | if (rules.type === 'structure') { 71 | serializeStructure(name, value, rules, fn); 72 | } else if (rules.type === 'list') { 73 | serializeList(name, value, rules, fn); 74 | } else if (rules.type === 'map') { 75 | serializeMap(name, value, rules, fn); 76 | } else { 77 | fn(name, rules.toWireFormat(value).toString()); 78 | } 79 | } 80 | 81 | module.exports = QueryParamSerializer; 82 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/region_config.js: -------------------------------------------------------------------------------- 1 | var util = require('./util'); 2 | var regionConfig = require('./region_config.json'); 3 | 4 | function generateRegionPrefix(region) { 5 | if (!region) return null; 6 | 7 | var parts = region.split('-'); 8 | if (parts.length < 3) return null; 9 | return parts.slice(0, parts.length - 2).join('-') + '-*'; 10 | } 11 | 12 | function derivedKeys(service) { 13 | var region = service.config.region; 14 | var regionPrefix = generateRegionPrefix(region); 15 | var endpointPrefix = service.api.endpointPrefix; 16 | 17 | return [ 18 | [region, endpointPrefix], 19 | [regionPrefix, endpointPrefix], 20 | [region, '*'], 21 | [regionPrefix, '*'], 22 | ['*', endpointPrefix], 23 | ['*', '*'] 24 | ].map(function(item) { 25 | return item[0] && item[1] ? item.join('/') : null; 26 | }); 27 | } 28 | 29 | function applyConfig(service, config) { 30 | util.each(config, function(key, value) { 31 | if (key === 'globalEndpoint') return; 32 | if (service.config[key] === undefined || service.config[key] === null) { 33 | service.config[key] = value; 34 | } 35 | }); 36 | } 37 | 38 | function configureEndpoint(service) { 39 | var keys = derivedKeys(service); 40 | for (var i = 0; i < keys.length; i++) { 41 | var key = keys[i]; 42 | if (!key) continue; 43 | 44 | if (regionConfig.rules.hasOwnProperty(key)) { 45 | var config = regionConfig.rules[key]; 46 | if (typeof config === 'string') { 47 | config = regionConfig.patterns[config]; 48 | } 49 | 50 | // set global endpoint 51 | service.isGlobalEndpoint = !!config.globalEndpoint; 52 | 53 | // signature version 54 | if (!config.signatureVersion) config.signatureVersion = 'v4'; 55 | 56 | // merge config 57 | applyConfig(service, config); 58 | return; 59 | } 60 | } 61 | } 62 | 63 | module.exports = configureEndpoint; 64 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/region_config.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "*/*": { 4 | "endpoint": "{service}.{region}.amazonaws.com" 5 | }, 6 | "cn-*/*": { 7 | "endpoint": "{service}.{region}.amazonaws.com.cn" 8 | }, 9 | "*/cloudfront": "globalSSL", 10 | "*/iam": "globalSSL", 11 | "*/sts": "globalSSL", 12 | "*/importexport": { 13 | "endpoint": "{service}.amazonaws.com", 14 | "signatureVersion": "v2", 15 | "globalEndpoint": true 16 | }, 17 | "*/route53": { 18 | "endpoint": "https://{service}.amazonaws.com", 19 | "signatureVersion": "v3https", 20 | "globalEndpoint": true 21 | }, 22 | "us-gov-*/iam": "globalGovCloud", 23 | "us-gov-*/sts": { 24 | "endpoint": "{service}.{region}.amazonaws.com" 25 | }, 26 | "us-gov-west-1/s3": "s3dash", 27 | "us-west-1/s3": "s3dash", 28 | "us-west-2/s3": "s3dash", 29 | "eu-west-1/s3": "s3dash", 30 | "ap-southeast-1/s3": "s3dash", 31 | "ap-southeast-2/s3": "s3dash", 32 | "ap-northeast-1/s3": "s3dash", 33 | "sa-east-1/s3": "s3dash", 34 | "us-east-1/s3": { 35 | "endpoint": "{service}.amazonaws.com", 36 | "signatureVersion": "s3" 37 | }, 38 | "us-east-1/sdb": { 39 | "endpoint": "{service}.amazonaws.com", 40 | "signatureVersion": "v2" 41 | }, 42 | "*/sdb": { 43 | "endpoint": "{service}.{region}.amazonaws.com", 44 | "signatureVersion": "v2" 45 | } 46 | }, 47 | 48 | "patterns": { 49 | "globalSSL": { 50 | "endpoint": "https://{service}.amazonaws.com", 51 | "globalEndpoint": true 52 | }, 53 | "globalGovCloud": { 54 | "endpoint": "{service}.us-gov.amazonaws.com" 55 | }, 56 | "s3dash": { 57 | "endpoint": "{service}-{region}.amazonaws.com", 58 | "signatureVersion": "s3" 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var path = require('path'); 3 | var AWS = require('./core'); 4 | var apis = require('./api_loader'); 5 | 6 | // define services using map 7 | apis.services.forEach(function(identifier) { 8 | var name = apis.serviceName(identifier); 9 | var versions = apis.serviceVersions(identifier); 10 | AWS[name] = AWS.Service.defineService(identifier, versions); 11 | 12 | // load any customizations from lib/services/.js 13 | var svcFile = path.join(__dirname, 'services', identifier + '.js'); 14 | if (fs.existsSync(svcFile)) require('./services/' + identifier); 15 | }); 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/cloudfront.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.CloudFront.prototype, { 4 | 5 | setupRequestListeners: function setupRequestListeners(request) { 6 | request.addListener('extractData', AWS.util.hoistPayloadMember); 7 | } 8 | 9 | }); 10 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/cloudsearchdomain.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | /** 4 | * Constructs a service interface object. Each API operation is exposed as a 5 | * function on service. 6 | * 7 | * ### Sending a Request Using CloudSearchDomain 8 | * 9 | * ```javascript 10 | * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); 11 | * csd.search(params, function (err, data) { 12 | * if (err) console.log(err, err.stack); // an error occurred 13 | * else console.log(data); // successful response 14 | * }); 15 | * ``` 16 | * 17 | * ### Locking the API Version 18 | * 19 | * In order to ensure that the CloudSearchDomain object uses this specific API, 20 | * you can construct the object by passing the `apiVersion` option to the 21 | * constructor: 22 | * 23 | * ```javascript 24 | * var csd = new AWS.CloudSearchDomain({ 25 | * endpoint: 'my.host.tld', 26 | * apiVersion: '2013-01-01' 27 | * }); 28 | * ``` 29 | * 30 | * You can also set the API version globally in `AWS.config.apiVersions` using 31 | * the **cloudsearchdomain** service identifier: 32 | * 33 | * ```javascript 34 | * AWS.config.apiVersions = { 35 | * cloudsearchdomain: '2013-01-01', 36 | * // other service API versions 37 | * }; 38 | * 39 | * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); 40 | * ``` 41 | * 42 | * @note You *must* provide an `endpoint` configuration parameter when 43 | * constructing this service. See {constructor} for more information. 44 | * 45 | * @!method constructor(options = {}) 46 | * Constructs a service object. This object has one method for each 47 | * API operation. 48 | * 49 | * @example Constructing a CloudSearchDomain object 50 | * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); 51 | * @note You *must* provide an `endpoint` when constructing this service. 52 | * @option (see AWS.Config.constructor) 53 | * 54 | * @service cloudsearchdomain 55 | * @version 2013-01-01 56 | */ 57 | AWS.util.update(AWS.CloudSearchDomain.prototype, { 58 | /** 59 | * @api private 60 | */ 61 | validateService: function validateService() { 62 | if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { 63 | var msg = 'AWS.CloudSearchDomain requires an explicit ' + 64 | '`endpoint\' configuration option.'; 65 | throw AWS.util.error(new Error(), 66 | {name: 'InvalidEndpoint', message: msg}); 67 | } 68 | }, 69 | 70 | /** 71 | * @api private 72 | */ 73 | setupRequestListeners: function setupRequestListeners(request) { 74 | request.removeListener('validate', 75 | AWS.EventListeners.Core.VALIDATE_CREDENTIALS 76 | ); 77 | request.onAsync('validate', this.validateCredentials); 78 | request.addListener('validate', this.updateRegion); 79 | }, 80 | 81 | validateCredentials: function(req, done) { 82 | if (!req.service.api.signatureVersion) return done(); // none 83 | req.service.config.getCredentials(function(err) { 84 | if (err) { 85 | req.removeListener('sign', AWS.EventListeners.Core.SIGN); 86 | } 87 | done(); 88 | }); 89 | }, 90 | 91 | /** 92 | * @api private 93 | */ 94 | updateRegion: function updateRegion(request) { 95 | var endpoint = request.httpRequest.endpoint.hostname; 96 | var zones = endpoint.split('.'); 97 | request.httpRequest.region = zones[1] || request.httpRequest.region; 98 | } 99 | 100 | }); 101 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/cognitoidentity.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.CognitoIdentity.prototype, { 4 | getOpenIdToken: function getOpenIdToken(params, callback) { 5 | return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); 6 | }, 7 | 8 | getId: function getId(params, callback) { 9 | return this.makeUnauthenticatedRequest('getId', params, callback); 10 | }, 11 | 12 | getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { 13 | return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/dynamodb.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.DynamoDB.prototype, { 4 | /** 5 | * @api private 6 | */ 7 | setupRequestListeners: function setupRequestListeners(request) { 8 | if (request.service.config.dynamoDbCrc32) { 9 | request.addListener('extractData', this.checkCrc32); 10 | } 11 | }, 12 | 13 | /** 14 | * @api private 15 | */ 16 | checkCrc32: function checkCrc32(resp) { 17 | if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) { 18 | resp.error = AWS.util.error(new Error(), { 19 | code: 'CRC32CheckFailed', 20 | message: 'CRC32 integrity check failed', 21 | retryable: true 22 | }); 23 | } 24 | }, 25 | 26 | /** 27 | * @api private 28 | */ 29 | crc32IsValid: function crc32IsValid(resp) { 30 | var crc = resp.httpResponse.headers['x-amz-crc32']; 31 | if (!crc) return true; // no (valid) CRC32 header 32 | return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body); 33 | }, 34 | 35 | /** 36 | * @api private 37 | */ 38 | defaultRetryCount: 10, 39 | 40 | /** 41 | * @api private 42 | */ 43 | retryDelays: function retryDelays() { 44 | var retryCount = this.numRetries(); 45 | var delays = []; 46 | for (var i = 0; i < retryCount; ++i) { 47 | if (i === 0) { 48 | delays.push(0); 49 | } else { 50 | delays.push(50 * Math.pow(2, i - 1)); 51 | } 52 | } 53 | return delays; 54 | } 55 | }); 56 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/ec2.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.EC2.prototype, { 4 | /** 5 | * @api private 6 | */ 7 | setupRequestListeners: function setupRequestListeners(request) { 8 | request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR); 9 | request.addListener('extractError', this.extractError); 10 | 11 | if (request.operation === 'copySnapshot') { 12 | request.onAsync('validate', this.buildCopySnapshotPresignedUrl); 13 | } 14 | }, 15 | 16 | /** 17 | * @api private 18 | */ 19 | buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) { 20 | if (req.params.PresignedUrl || req._subRequest) { 21 | return done(); 22 | } 23 | 24 | req.params = AWS.util.copy(req.params); 25 | req.params.DestinationRegion = req.service.config.region; 26 | 27 | var config = AWS.util.copy(req.service.config); 28 | delete config.endpoint; 29 | config.region = req.params.SourceRegion; 30 | var svc = new req.service.constructor(config); 31 | var newReq = svc[req.operation](req.params); 32 | newReq._subRequest = true; 33 | newReq.presign(function(err, url) { 34 | if (err) done(err); 35 | else { 36 | req.params.PresignedUrl = url; 37 | done(); 38 | } 39 | }); 40 | }, 41 | 42 | /** 43 | * @api private 44 | */ 45 | extractError: function extractError(resp) { 46 | // EC2 nests the error code and message deeper than other AWS Query services. 47 | var httpResponse = resp.httpResponse; 48 | var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || ''); 49 | if (data.Errors) 50 | resp.error = AWS.util.error(new Error(), { 51 | code: data.Errors.Error.Code, 52 | message: data.Errors.Error.Message 53 | }); 54 | else 55 | resp.error = AWS.util.error(new Error(), { 56 | code: httpResponse.statusCode, 57 | message: null 58 | }); 59 | } 60 | }); 61 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/route53.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.Route53.prototype, { 4 | /** 5 | * @api private 6 | */ 7 | setupRequestListeners: function setupRequestListeners(request) { 8 | request.on('build', this.sanitizeUrl); 9 | }, 10 | 11 | /** 12 | * @api private 13 | */ 14 | sanitizeUrl: function sanitizeUrl(request) { 15 | var path = request.httpRequest.path; 16 | request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/'); 17 | } 18 | }); 19 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/sts.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.update(AWS.STS.prototype, { 4 | /** 5 | * @overload credentialsFrom(data, credentials = null) 6 | * Creates a credentials object from STS response data containing 7 | * credentials information. Useful for quickly setting AWS credentials. 8 | * 9 | * @note This is a low-level utility function. If you want to load temporary 10 | * credentials into your process for subsequent requests to AWS resources, 11 | * you should use {AWS.TemporaryCredentials} instead. 12 | * @param data [map] data retrieved from a call to {getFederatedToken}, 13 | * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}. 14 | * @param credentials [AWS.Credentials] an optional credentials object to 15 | * fill instead of creating a new object. Useful when modifying an 16 | * existing credentials object from a refresh call. 17 | * @return [AWS.TemporaryCredentials] the set of temporary credentials 18 | * loaded from a raw STS operation response. 19 | * @example Using credentialsFrom to load global AWS credentials 20 | * var sts = new AWS.STS(); 21 | * sts.getSessionToken(function (err, data) { 22 | * if (err) console.log("Error getting credentials"); 23 | * else { 24 | * AWS.config.credentials = sts.credentialsFrom(data); 25 | * } 26 | * }); 27 | * @see AWS.TemporaryCredentials 28 | */ 29 | credentialsFrom: function credentialsFrom(data, credentials) { 30 | if (!data) return null; 31 | if (!credentials) credentials = new AWS.TemporaryCredentials(); 32 | credentials.expired = false; 33 | credentials.accessKeyId = data.Credentials.AccessKeyId; 34 | credentials.secretAccessKey = data.Credentials.SecretAccessKey; 35 | credentials.sessionToken = data.Credentials.SessionToken; 36 | credentials.expireTime = data.Credentials.Expiration; 37 | return credentials; 38 | }, 39 | 40 | assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) { 41 | return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback); 42 | }, 43 | 44 | assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) { 45 | return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback); 46 | } 47 | }); 48 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/services/swf.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | 3 | AWS.util.hideProperties(AWS, ['SimpleWorkflow']); 4 | 5 | /** 6 | * @constant 7 | * @readonly 8 | * Backwards compatibility for access to the {AWS.SWF} service class. 9 | */ 10 | AWS.SimpleWorkflow = AWS.SWF; 11 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/signers/presign.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var inherit = AWS.util.inherit; 3 | 4 | /** 5 | * @api private 6 | */ 7 | var expiresHeader = 'presigned-expires'; 8 | 9 | /** 10 | * @api private 11 | */ 12 | function signedUrlBuilder(request) { 13 | var expires = request.httpRequest.headers[expiresHeader]; 14 | 15 | delete request.httpRequest.headers['User-Agent']; 16 | delete request.httpRequest.headers['X-Amz-User-Agent']; 17 | 18 | if (request.service.getSignerClass() === AWS.Signers.V4) { 19 | if (expires > 604800) { // one week expiry is invalid 20 | var message = 'Presigning does not support expiry time greater ' + 21 | 'than a week with SigV4 signing.'; 22 | throw AWS.util.error(new Error(), { 23 | code: 'InvalidExpiryTime', message: message, retryable: false 24 | }); 25 | } 26 | request.httpRequest.headers[expiresHeader] = expires; 27 | } else if (request.service.getSignerClass() === AWS.Signers.S3) { 28 | request.httpRequest.headers[expiresHeader] = parseInt( 29 | AWS.util.date.unixTimestamp() + expires, 10).toString(); 30 | } else { 31 | throw AWS.util.error(new Error(), { 32 | message: 'Presigning only supports S3 or SigV4 signing.', 33 | code: 'UnsupportedSigner', retryable: false 34 | }); 35 | } 36 | } 37 | 38 | /** 39 | * @api private 40 | */ 41 | function signedUrlSigner(request) { 42 | var endpoint = request.httpRequest.endpoint; 43 | var parsedUrl = AWS.util.urlParse(request.httpRequest.path); 44 | var queryParams = {}; 45 | 46 | if (parsedUrl.search) { 47 | queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); 48 | } 49 | 50 | AWS.util.each(request.httpRequest.headers, function (key, value) { 51 | if (key === expiresHeader) key = 'Expires'; 52 | queryParams[key] = value; 53 | }); 54 | delete request.httpRequest.headers[expiresHeader]; 55 | 56 | var auth = queryParams['Authorization'].split(' '); 57 | if (auth[0] === 'AWS') { 58 | auth = auth[1].split(':'); 59 | queryParams['AWSAccessKeyId'] = auth[0]; 60 | queryParams['Signature'] = auth[1]; 61 | } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing 62 | auth.shift(); 63 | var rest = auth.join(' '); 64 | var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; 65 | queryParams['X-Amz-Signature'] = signature; 66 | delete queryParams['Expires']; 67 | } 68 | delete queryParams['Authorization']; 69 | delete queryParams['Host']; 70 | 71 | // build URL 72 | endpoint.pathname = parsedUrl.pathname; 73 | endpoint.search = AWS.util.queryParamsToString(queryParams); 74 | } 75 | 76 | /** 77 | * @api private 78 | */ 79 | AWS.Signers.Presign = inherit({ 80 | /** 81 | * @api private 82 | */ 83 | sign: function sign(request, expireTime, callback) { 84 | request.httpRequest.headers[expiresHeader] = expireTime || 3600; 85 | request.on('build', signedUrlBuilder); 86 | request.on('sign', signedUrlSigner); 87 | request.removeListener('afterBuild', 88 | AWS.EventListeners.Core.SET_CONTENT_LENGTH); 89 | 90 | request.emit('beforePresign', [request]); 91 | 92 | if (callback) { 93 | request.build(function() { 94 | if (this.response.error) callback(this.response.error); 95 | else { 96 | callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); 97 | } 98 | }); 99 | } else { 100 | request.build(); 101 | if (request.response.error) throw request.response.error; 102 | return AWS.util.urlFormat(request.httpRequest.endpoint); 103 | } 104 | } 105 | }); 106 | 107 | module.exports = AWS.Signers.Presign; 108 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/signers/request_signer.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var inherit = AWS.util.inherit; 3 | 4 | /** 5 | * @api private 6 | */ 7 | AWS.Signers.RequestSigner = inherit({ 8 | constructor: function RequestSigner(request) { 9 | this.request = request; 10 | } 11 | }); 12 | 13 | AWS.Signers.RequestSigner.getVersion = function getVersion(version) { 14 | switch (version) { 15 | case 'v2': return AWS.Signers.V2; 16 | case 'v3': return AWS.Signers.V3; 17 | case 'v4': return AWS.Signers.V4; 18 | case 's3': return AWS.Signers.S3; 19 | case 'v3https': return AWS.Signers.V3Https; 20 | } 21 | throw new Error('Unknown signing version ' + version); 22 | }; 23 | 24 | require('./v2'); 25 | require('./v3'); 26 | require('./v3https'); 27 | require('./v4'); 28 | require('./s3'); 29 | require('./presign'); 30 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/signers/v2.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var inherit = AWS.util.inherit; 3 | 4 | /** 5 | * @api private 6 | */ 7 | AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { 8 | addAuthorization: function addAuthorization(credentials, date) { 9 | 10 | if (!date) date = AWS.util.date.getDate(); 11 | 12 | var r = this.request; 13 | 14 | r.params.Timestamp = AWS.util.date.iso8601(date); 15 | r.params.SignatureVersion = '2'; 16 | r.params.SignatureMethod = 'HmacSHA256'; 17 | r.params.AWSAccessKeyId = credentials.accessKeyId; 18 | 19 | if (credentials.sessionToken) { 20 | r.params.SecurityToken = credentials.sessionToken; 21 | } 22 | 23 | delete r.params.Signature; // delete old Signature for re-signing 24 | r.params.Signature = this.signature(credentials); 25 | 26 | r.body = AWS.util.queryParamsToString(r.params); 27 | r.headers['Content-Length'] = r.body.length; 28 | }, 29 | 30 | signature: function signature(credentials) { 31 | return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); 32 | }, 33 | 34 | stringToSign: function stringToSign() { 35 | var parts = []; 36 | parts.push(this.request.method); 37 | parts.push(this.request.endpoint.host.toLowerCase()); 38 | parts.push(this.request.pathname()); 39 | parts.push(AWS.util.queryParamsToString(this.request.params)); 40 | return parts.join('\n'); 41 | } 42 | 43 | }); 44 | 45 | module.exports = AWS.Signers.V2; 46 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/signers/v3.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var inherit = AWS.util.inherit; 3 | 4 | /** 5 | * @api private 6 | */ 7 | AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { 8 | addAuthorization: function addAuthorization(credentials, date) { 9 | 10 | var datetime = AWS.util.date.rfc822(date); 11 | 12 | this.request.headers['X-Amz-Date'] = datetime; 13 | 14 | if (credentials.sessionToken) { 15 | this.request.headers['x-amz-security-token'] = credentials.sessionToken; 16 | } 17 | 18 | this.request.headers['X-Amzn-Authorization'] = 19 | this.authorization(credentials, datetime); 20 | 21 | }, 22 | 23 | authorization: function authorization(credentials) { 24 | return 'AWS3 ' + 25 | 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 26 | 'Algorithm=HmacSHA256,' + 27 | 'SignedHeaders=' + this.signedHeaders() + ',' + 28 | 'Signature=' + this.signature(credentials); 29 | }, 30 | 31 | signedHeaders: function signedHeaders() { 32 | var headers = []; 33 | AWS.util.arrayEach(this.headersToSign(), function iterator(h) { 34 | headers.push(h.toLowerCase()); 35 | }); 36 | return headers.sort().join(';'); 37 | }, 38 | 39 | canonicalHeaders: function canonicalHeaders() { 40 | var headers = this.request.headers; 41 | var parts = []; 42 | AWS.util.arrayEach(this.headersToSign(), function iterator(h) { 43 | parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); 44 | }); 45 | return parts.sort().join('\n') + '\n'; 46 | }, 47 | 48 | headersToSign: function headersToSign() { 49 | var headers = []; 50 | AWS.util.each(this.request.headers, function iterator(k) { 51 | if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { 52 | headers.push(k); 53 | } 54 | }); 55 | return headers; 56 | }, 57 | 58 | signature: function signature(credentials) { 59 | return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); 60 | }, 61 | 62 | stringToSign: function stringToSign() { 63 | var parts = []; 64 | parts.push(this.request.method); 65 | parts.push('/'); 66 | parts.push(''); 67 | parts.push(this.canonicalHeaders()); 68 | parts.push(this.request.body); 69 | return AWS.util.crypto.sha256(parts.join('\n')); 70 | } 71 | 72 | }); 73 | 74 | module.exports = AWS.Signers.V3; 75 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/signers/v3https.js: -------------------------------------------------------------------------------- 1 | var AWS = require('../core'); 2 | var inherit = AWS.util.inherit; 3 | 4 | require('./v3'); 5 | 6 | /** 7 | * @api private 8 | */ 9 | AWS.Signers.V3Https = inherit(AWS.Signers.V3, { 10 | authorization: function authorization(credentials) { 11 | return 'AWS3-HTTPS ' + 12 | 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + 13 | 'Algorithm=HmacSHA256,' + 14 | 'Signature=' + this.signature(credentials); 15 | }, 16 | 17 | stringToSign: function stringToSign() { 18 | return this.request.headers['X-Amz-Date']; 19 | } 20 | }); 21 | 22 | module.exports = AWS.Signers.V3Https; 23 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/state_machine.js: -------------------------------------------------------------------------------- 1 | function AcceptorStateMachine(states, state) { 2 | this.currentState = state || null; 3 | this.states = states || {}; 4 | } 5 | 6 | AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { 7 | if (typeof finalState === 'function') { 8 | inputError = bindObject; bindObject = done; 9 | done = finalState; finalState = null; 10 | } 11 | 12 | var self = this; 13 | var state = self.states[self.currentState]; 14 | state.fn.call(bindObject || self, inputError, function(err) { 15 | if (err) { 16 | if (state.fail) self.currentState = state.fail; 17 | else return done ? done.call(bindObject, err) : null; 18 | } else { 19 | if (state.accept) self.currentState = state.accept; 20 | else return done ? done.call(bindObject) : null; 21 | } 22 | if (self.currentState === finalState) { 23 | return done ? done.call(bindObject, err) : null; 24 | } 25 | 26 | self.runTo(finalState, done, bindObject, err); 27 | }); 28 | }; 29 | 30 | AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { 31 | if (typeof acceptState === 'function') { 32 | fn = acceptState; acceptState = null; failState = null; 33 | } else if (typeof failState === 'function') { 34 | fn = failState; failState = null; 35 | } 36 | 37 | if (!this.currentState) this.currentState = name; 38 | this.states[name] = { accept: acceptState, fail: failState, fn: fn }; 39 | return this; 40 | }; 41 | 42 | module.exports = AcceptorStateMachine; 43 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/lib/xml/builder.js: -------------------------------------------------------------------------------- 1 | var util = require('../util'); 2 | var builder = require('xmlbuilder'); 3 | 4 | function XmlBuilder() { } 5 | 6 | XmlBuilder.prototype.toXML = function(params, shape, rootElement) { 7 | var xml = builder.create(rootElement); 8 | applyNamespaces(xml, shape); 9 | serialize(xml, params, shape); 10 | return xml.children.length === 0 ? '' : xml.root().toString(); 11 | }; 12 | 13 | function serialize(xml, value, shape) { 14 | switch (shape.type) { 15 | case 'structure': return serializeStructure(xml, value, shape); 16 | case 'map': return serializeMap(xml, value, shape); 17 | case 'list': return serializeList(xml, value, shape); 18 | default: return serializeScalar(xml, value, shape); 19 | } 20 | } 21 | 22 | function serializeStructure(xml, params, shape) { 23 | util.arrayEach(shape.memberNames, function(memberName) { 24 | var memberShape = shape.members[memberName]; 25 | if (memberShape.location !== 'body') return; 26 | 27 | var value = params[memberName]; 28 | var name = memberShape.name; 29 | if (value !== undefined && value !== null) { 30 | if (memberShape.isXmlAttribute) { 31 | xml.att(name, value); 32 | } else if (memberShape.flattened) { 33 | serialize(xml, value, memberShape); 34 | } else { 35 | var element = xml.ele(name); 36 | applyNamespaces(element, memberShape); 37 | serialize(element, value, memberShape); 38 | } 39 | } 40 | }); 41 | } 42 | 43 | function serializeMap(xml, map, shape) { 44 | var xmlKey = shape.key.name || 'key'; 45 | var xmlValue = shape.value.name || 'value'; 46 | 47 | util.each(map, function(key, value) { 48 | var entry = xml.ele(shape.flattened ? shape.name : 'entry'); 49 | serialize(entry.ele(xmlKey), key, shape.key); 50 | serialize(entry.ele(xmlValue), value, shape.value); 51 | }); 52 | } 53 | 54 | function serializeList(xml, list, shape) { 55 | if (shape.flattened) { 56 | util.arrayEach(list, function(value) { 57 | var name = shape.member.name || shape.name; 58 | var element = xml.ele(name); 59 | serialize(element, value, shape.member); 60 | }); 61 | } else { 62 | util.arrayEach(list, function(value) { 63 | var name = shape.member.name || 'member'; 64 | var element = xml.ele(name); 65 | serialize(element, value, shape.member); 66 | }); 67 | } 68 | } 69 | 70 | function serializeScalar(xml, value, shape) { 71 | xml.txt(shape.toWireFormat(value)); 72 | } 73 | 74 | function applyNamespaces(xml, shape) { 75 | var uri, prefix = 'xmlns'; 76 | if (shape.xmlNamespaceUri) { 77 | uri = shape.xmlNamespaceUri; 78 | if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; 79 | } else if (xml.isRoot && shape.api.xmlNamespaceUri) { 80 | uri = shape.api.xmlNamespaceUri; 81 | } 82 | 83 | if (uri) xml.att(prefix, uri); 84 | } 85 | 86 | module.exports = XmlBuilder; 87 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/.npmignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | .idea 3 | node_modules 4 | src 5 | test 6 | Cakefile -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | # test on two node.js versions: 0.6 and 0.8 4 | node_js: 5 | - 0.8 6 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2010, 2011, 2012, 2013. All rights reserved. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to 5 | deal in the Software without restriction, including without limitation the 6 | rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 7 | sell copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 19 | IN THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/AUTHORS: -------------------------------------------------------------------------------- 1 | # contributors sorted by whether or not they're me. 2 | Isaac Z. Schlueter 3 | Stein Martin Hustad 4 | Mikeal Rogers 5 | Laurie Harper 6 | Jann Horn 7 | Elijah Insua 8 | Henry Rawas 9 | Justin Makeig 10 | Mike 11 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2009, 2010, 2011 Isaac Z. Schlueter. 2 | All rights reserved. 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/example.js: -------------------------------------------------------------------------------- 1 | 2 | var fs = require("fs"), 3 | util = require('util'), 4 | path = require("path"), 5 | xml = fs.cat(path.join(__dirname, "test.xml")), 6 | sax = require("../lib/sax"), 7 | strict = sax.parser(true), 8 | loose = sax.parser(false, {trim:true}), 9 | inspector = function (ev) { return function (data) { 10 | // util.error(""); 11 | // util.error(ev+": "+util.inspect(data)); 12 | // for (var i in data) util.error(i+ " "+util.inspect(data[i])); 13 | // util.error(this.line+":"+this.column); 14 | }}; 15 | 16 | xml.addCallback(function (xml) { 17 | // strict.write(xml); 18 | 19 | sax.EVENTS.forEach(function (ev) { 20 | loose["on"+ev] = inspector(ev); 21 | }); 22 | loose.onend = function () { 23 | // util.error("end"); 24 | // util.error(util.inspect(loose)); 25 | }; 26 | 27 | // do this one char at a time to verify that it works. 28 | // (function () { 29 | // if (xml) { 30 | // loose.write(xml.substr(0,1000)); 31 | // xml = xml.substr(1000); 32 | // process.nextTick(arguments.callee); 33 | // } else loose.close(); 34 | // })(); 35 | 36 | for (var i = 0; i < 1000; i ++) { 37 | loose.write(xml); 38 | loose.close(); 39 | } 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/get-products.js: -------------------------------------------------------------------------------- 1 | // pull out /GeneralSearchResponse/categories/category/items/product tags 2 | // the rest we don't care about. 3 | 4 | var sax = require("../lib/sax.js") 5 | var fs = require("fs") 6 | var path = require("path") 7 | var xmlFile = path.resolve(__dirname, "shopping.xml") 8 | var util = require("util") 9 | var http = require("http") 10 | 11 | fs.readFile(xmlFile, function (er, d) { 12 | http.createServer(function (req, res) { 13 | if (er) throw er 14 | var xmlstr = d.toString("utf8") 15 | 16 | var parser = sax.parser(true) 17 | var products = [] 18 | var product = null 19 | var currentTag = null 20 | 21 | parser.onclosetag = function (tagName) { 22 | if (tagName === "product") { 23 | products.push(product) 24 | currentTag = product = null 25 | return 26 | } 27 | if (currentTag && currentTag.parent) { 28 | var p = currentTag.parent 29 | delete currentTag.parent 30 | currentTag = p 31 | } 32 | } 33 | 34 | parser.onopentag = function (tag) { 35 | if (tag.name !== "product" && !product) return 36 | if (tag.name === "product") { 37 | product = tag 38 | } 39 | tag.parent = currentTag 40 | tag.children = [] 41 | tag.parent && tag.parent.children.push(tag) 42 | currentTag = tag 43 | } 44 | 45 | parser.ontext = function (text) { 46 | if (currentTag) currentTag.children.push(text) 47 | } 48 | 49 | parser.onend = function () { 50 | var out = util.inspect(products, false, 3, true) 51 | res.writeHead(200, {"content-type":"application/json"}) 52 | res.end("{\"ok\":true}") 53 | // res.end(JSON.stringify(products)) 54 | } 55 | 56 | parser.write(xmlstr).end() 57 | }).listen(1337) 58 | }) 59 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/hello-world.js: -------------------------------------------------------------------------------- 1 | require("http").createServer(function (req, res) { 2 | res.writeHead(200, {"content-type":"application/json"}) 3 | res.end(JSON.stringify({ok: true})) 4 | }).listen(1337) 5 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/not-pretty.xml: -------------------------------------------------------------------------------- 1 | 2 | something blerm a bit down here 9 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/pretty-print.js: -------------------------------------------------------------------------------- 1 | var sax = require("../lib/sax") 2 | , printer = sax.createStream(false, {lowercasetags:true, trim:true}) 3 | , fs = require("fs") 4 | 5 | function entity (str) { 6 | return str.replace('"', '"') 7 | } 8 | 9 | printer.tabstop = 2 10 | printer.level = 0 11 | printer.indent = function () { 12 | print("\n") 13 | for (var i = this.level; i > 0; i --) { 14 | for (var j = this.tabstop; j > 0; j --) { 15 | print(" ") 16 | } 17 | } 18 | } 19 | printer.on("opentag", function (tag) { 20 | this.indent() 21 | this.level ++ 22 | print("<"+tag.name) 23 | for (var i in tag.attributes) { 24 | print(" "+i+"=\""+entity(tag.attributes[i])+"\"") 25 | } 26 | print(">") 27 | }) 28 | 29 | printer.on("text", ontext) 30 | printer.on("doctype", ontext) 31 | function ontext (text) { 32 | this.indent() 33 | print(text) 34 | } 35 | 36 | printer.on("closetag", function (tag) { 37 | this.level -- 38 | this.indent() 39 | print("") 40 | }) 41 | 42 | printer.on("cdata", function (data) { 43 | this.indent() 44 | print("") 45 | }) 46 | 47 | printer.on("comment", function (comment) { 48 | this.indent() 49 | print("") 50 | }) 51 | 52 | printer.on("error", function (error) { 53 | console.error(error) 54 | throw error 55 | }) 56 | 57 | if (!process.argv[2]) { 58 | throw new Error("Please provide an xml file to prettify\n"+ 59 | "TODO: read from stdin or take a file") 60 | } 61 | var xmlfile = require("path").join(process.cwd(), process.argv[2]) 62 | var fstr = fs.createReadStream(xmlfile, { encoding: "utf8" }) 63 | 64 | function print (c) { 65 | if (!process.stdout.write(c)) { 66 | fstr.pause() 67 | } 68 | } 69 | 70 | process.stdout.on("drain", function () { 71 | fstr.resume() 72 | }) 73 | 74 | fstr.pipe(printer) 75 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/switch-bench.js: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/node-bench 2 | 3 | var Promise = require("events").Promise; 4 | 5 | var xml = require("posix").cat("test.xml").wait(), 6 | path = require("path"), 7 | sax = require("../lib/sax"), 8 | saxT = require("../lib/sax-trampoline"), 9 | 10 | parser = sax.parser(false, {trim:true}), 11 | parserT = saxT.parser(false, {trim:true}), 12 | 13 | sys = require("sys"); 14 | 15 | 16 | var count = exports.stepsPerLap = 500, 17 | l = xml.length, 18 | runs = 0; 19 | exports.countPerLap = 1000; 20 | exports.compare = { 21 | "switch" : function () { 22 | // sys.debug("switch runs: "+runs++); 23 | // for (var x = 0; x < l; x += 1000) { 24 | // parser.write(xml.substr(x, 1000)) 25 | // } 26 | // for (var i = 0; i < count; i ++) { 27 | parser.write(xml); 28 | parser.close(); 29 | // } 30 | // done(); 31 | }, 32 | trampoline : function () { 33 | // sys.debug("trampoline runs: "+runs++); 34 | // for (var x = 0; x < l; x += 1000) { 35 | // parserT.write(xml.substr(x, 1000)) 36 | // } 37 | // for (var i = 0; i < count; i ++) { 38 | parserT.write(xml); 39 | parserT.close(); 40 | // } 41 | // done(); 42 | }, 43 | }; 44 | 45 | sys.debug("rock and roll..."); -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/examples/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | testing the parser 6 | 7 | 8 | 9 |

hello 10 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/buffer-overrun.js: -------------------------------------------------------------------------------- 1 | // set this really low so that I don't have to put 64 MB of xml in here. 2 | var sax = require("../lib/sax") 3 | var bl = sax.MAX_BUFFER_LENGTH 4 | sax.MAX_BUFFER_LENGTH = 5; 5 | 6 | require(__dirname).test({ 7 | expect : [ 8 | ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 15\nChar: "], 9 | ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 30\nChar: "], 10 | ["error", "Max buffer length exceeded: tagName\nLine: 0\nColumn: 45\nChar: "], 11 | ["opentag", { 12 | "name": "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ", 13 | "attributes": {} 14 | }], 15 | ["text", "yo"], 16 | ["closetag", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"] 17 | ] 18 | }).write("") 22 | .write("yo") 23 | .write("") 24 | .close(); 25 | sax.MAX_BUFFER_LENGTH = bl 26 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/case.js: -------------------------------------------------------------------------------- 1 | // default to uppercase 2 | require(__dirname).test 3 | ( { xml : 4 | "" 5 | , expect : 6 | [ [ "attribute", { name: "CLASS", value: "test" } ] 7 | , [ "attribute", { name: "HELLO", value: "world" } ] 8 | , [ "opentag", { name: "SPAN", 9 | attributes: { CLASS: "test", HELLO: "world" } } ] 10 | , [ "closetag", "SPAN" ] 11 | ] 12 | , strict : false 13 | , opt : {} 14 | } 15 | ) 16 | 17 | // lowercase option : lowercase tag/attribute names 18 | require(__dirname).test 19 | ( { xml : 20 | "" 21 | , expect : 22 | [ [ "attribute", { name: "class", value: "test" } ] 23 | , [ "attribute", { name: "hello", value: "world" } ] 24 | , [ "opentag", { name: "span", 25 | attributes: { class: "test", hello: "world" } } ] 26 | , [ "closetag", "span" ] 27 | ] 28 | , strict : false 29 | , opt : {lowercase:true} 30 | } 31 | ) 32 | 33 | // backward compatibility with old lowercasetags opt 34 | require(__dirname).test 35 | ( { xml : 36 | "" 37 | , expect : 38 | [ [ "attribute", { name: "class", value: "test" } ] 39 | , [ "attribute", { name: "hello", value: "world" } ] 40 | , [ "opentag", { name: "span", 41 | attributes: { class: "test", hello: "world" } } ] 42 | , [ "closetag", "span" ] 43 | ] 44 | , strict : false 45 | , opt : {lowercasetags:true} 46 | } 47 | ) 48 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-chunked.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | expect : [ 4 | ["opentag", {"name": "R","attributes": {}}], 5 | ["opencdata", undefined], 6 | ["cdata", " this is character data  "], 7 | ["closecdata", undefined], 8 | ["closetag", "R"] 9 | ] 10 | }).write("").close(); 11 | 12 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-end-split.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | expect : [ 4 | ["opentag", {"name": "R","attributes": {}}], 5 | ["opencdata", undefined], 6 | ["cdata", " this is "], 7 | ["closecdata", undefined], 8 | ["closetag", "R"] 9 | ] 10 | }) 11 | .write("") 13 | .write("") 14 | .close(); 15 | 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-fake-end.js: -------------------------------------------------------------------------------- 1 | 2 | var p = require(__dirname).test({ 3 | expect : [ 4 | ["opentag", {"name": "R","attributes": {}}], 5 | ["opencdata", undefined], 6 | ["cdata", "[[[[[[[[]]]]]]]]"], 7 | ["closecdata", undefined], 8 | ["closetag", "R"] 9 | ] 10 | }) 11 | var x = "" 12 | for (var i = 0; i < x.length ; i ++) { 13 | p.write(x.charAt(i)) 14 | } 15 | p.close(); 16 | 17 | 18 | var p2 = require(__dirname).test({ 19 | expect : [ 20 | ["opentag", {"name": "R","attributes": {}}], 21 | ["opencdata", undefined], 22 | ["cdata", "[[[[[[[[]]]]]]]]"], 23 | ["closecdata", undefined], 24 | ["closetag", "R"] 25 | ] 26 | }) 27 | var x = "" 28 | p2.write(x).close(); 29 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata-multiple.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | expect : [ 4 | ["opentag", {"name": "R","attributes": {}}], 5 | ["opencdata", undefined], 6 | ["cdata", " this is "], 7 | ["closecdata", undefined], 8 | ["opencdata", undefined], 9 | ["cdata", "character data  "], 10 | ["closecdata", undefined], 11 | ["closetag", "R"] 12 | ] 13 | }).write("").write("").close(); 15 | 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/cdata.js: -------------------------------------------------------------------------------- 1 | require(__dirname).test({ 2 | xml : "", 3 | expect : [ 4 | ["opentag", {"name": "R","attributes": {}}], 5 | ["opencdata", undefined], 6 | ["cdata", " this is character data  "], 7 | ["closecdata", undefined], 8 | ["closetag", "R"] 9 | ] 10 | }); 11 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/index.js: -------------------------------------------------------------------------------- 1 | var globalsBefore = JSON.stringify(Object.keys(global)) 2 | , util = require("util") 3 | , assert = require("assert") 4 | , fs = require("fs") 5 | , path = require("path") 6 | , sax = require("../lib/sax") 7 | 8 | exports.sax = sax 9 | 10 | // handy way to do simple unit tests 11 | // if the options contains an xml string, it'll be written and the parser closed. 12 | // otherwise, it's assumed that the test will write and close. 13 | exports.test = function test (options) { 14 | var xml = options.xml 15 | , parser = sax.parser(options.strict, options.opt) 16 | , expect = options.expect 17 | , e = 0 18 | sax.EVENTS.forEach(function (ev) { 19 | parser["on" + ev] = function (n) { 20 | if (process.env.DEBUG) { 21 | console.error({ expect: expect[e] 22 | , actual: [ev, n] }) 23 | } 24 | if (e >= expect.length && (ev === "end" || ev === "ready")) return 25 | assert.ok( e < expect.length, 26 | "expectation #"+e+" "+util.inspect(expect[e])+"\n"+ 27 | "Unexpected event: "+ev+" "+(n ? util.inspect(n) : "")) 28 | var inspected = n instanceof Error ? "\n"+ n.message : util.inspect(n) 29 | assert.equal(ev, expect[e][0], 30 | "expectation #"+e+"\n"+ 31 | "Didn't get expected event\n"+ 32 | "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+ 33 | "actual: "+ev+" "+inspected+"\n") 34 | if (ev === "error") assert.equal(n.message, expect[e][1]) 35 | else assert.deepEqual(n, expect[e][1], 36 | "expectation #"+e+"\n"+ 37 | "Didn't get expected argument\n"+ 38 | "expect: "+expect[e][0] + " " +util.inspect(expect[e][1])+"\n"+ 39 | "actual: "+ev+" "+inspected+"\n") 40 | e++ 41 | if (ev === "error") parser.resume() 42 | } 43 | }) 44 | if (xml) parser.write(xml).close() 45 | return parser 46 | } 47 | 48 | if (module === require.main) { 49 | var running = true 50 | , failures = 0 51 | 52 | function fail (file, er) { 53 | util.error("Failed: "+file) 54 | util.error(er.stack || er.message) 55 | failures ++ 56 | } 57 | 58 | fs.readdir(__dirname, function (error, files) { 59 | files = files.filter(function (file) { 60 | return (/\.js$/.exec(file) && file !== 'index.js') 61 | }) 62 | var n = files.length 63 | , i = 0 64 | console.log("0.." + n) 65 | files.forEach(function (file) { 66 | // run this test. 67 | try { 68 | require(path.resolve(__dirname, file)) 69 | var globalsAfter = JSON.stringify(Object.keys(global)) 70 | if (globalsAfter !== globalsBefore) { 71 | var er = new Error("new globals introduced\n"+ 72 | "expected: "+globalsBefore+"\n"+ 73 | "actual: "+globalsAfter) 74 | globalsBefore = globalsAfter 75 | throw er 76 | } 77 | console.log("ok " + (++i) + " - " + file) 78 | } catch (er) { 79 | console.log("not ok "+ (++i) + " - " + file) 80 | fail(file, er) 81 | } 82 | }) 83 | if (!failures) return console.log("#all pass") 84 | else return console.error(failures + " failure" + (failures > 1 ? "s" : "")) 85 | }) 86 | } 87 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-23.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test 3 | ( { xml : 4 | ""+ 5 | ""+ 6 | "653724009"+ 7 | "-1"+ 8 | "01pG0000002KoSUIA0"+ 9 | "-1"+ 10 | "CalendarController"+ 11 | "true"+ 12 | ""+ 13 | "" 14 | 15 | , expect : 16 | [ [ "opentag", { name: "COMPILECLASSESRESPONSE", attributes: {} } ] 17 | , [ "opentag", { name : "RESULT", attributes: {} } ] 18 | , [ "opentag", { name: "BODYCRC", attributes: {} } ] 19 | , [ "text", "653724009" ] 20 | , [ "closetag", "BODYCRC" ] 21 | , [ "opentag", { name: "COLUMN", attributes: {} } ] 22 | , [ "text", "-1" ] 23 | , [ "closetag", "COLUMN" ] 24 | , [ "opentag", { name: "ID", attributes: {} } ] 25 | , [ "text", "01pG0000002KoSUIA0" ] 26 | , [ "closetag", "ID" ] 27 | , [ "opentag", {name: "LINE", attributes: {} } ] 28 | , [ "text", "-1" ] 29 | , [ "closetag", "LINE" ] 30 | , [ "opentag", {name: "NAME", attributes: {} } ] 31 | , [ "text", "CalendarController" ] 32 | , [ "closetag", "NAME" ] 33 | , [ "opentag", {name: "SUCCESS", attributes: {} } ] 34 | , [ "text", "true" ] 35 | , [ "closetag", "SUCCESS" ] 36 | , [ "closetag", "RESULT" ] 37 | , [ "closetag", "COMPILECLASSESRESPONSE" ] 38 | ] 39 | , strict : false 40 | , opt : {} 41 | } 42 | ) 43 | 44 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-30.js: -------------------------------------------------------------------------------- 1 | // https://github.com/isaacs/sax-js/issues/33 2 | require(__dirname).test 3 | ( { xml : "\n"+ 4 | "\n"+ 7 | "\n"+ 8 | "" 9 | 10 | , expect : 11 | [ [ "opentag", { name: "xml", attributes: {} } ] 12 | , [ "text", "\n" ] 13 | , [ "comment", " \n comment with a single dash- in it\n" ] 14 | , [ "text", "\n" ] 15 | , [ "opentag", { name: "data", attributes: {} } ] 16 | , [ "closetag", "data" ] 17 | , [ "text", "\n" ] 18 | , [ "closetag", "xml" ] 19 | ] 20 | , strict : true 21 | , opt : {} 22 | } 23 | ) 24 | 25 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-35.js: -------------------------------------------------------------------------------- 1 | // https://github.com/isaacs/sax-js/issues/35 2 | require(__dirname).test 3 | ( { xml : " \n"+ 4 | "" 5 | 6 | , expect : 7 | [ [ "opentag", { name: "xml", attributes: {} } ] 8 | , [ "text", "\r\r\n" ] 9 | , [ "closetag", "xml" ] 10 | ] 11 | , strict : true 12 | , opt : {} 13 | } 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-47.js: -------------------------------------------------------------------------------- 1 | // https://github.com/isaacs/sax-js/issues/47 2 | require(__dirname).test 3 | ( { xml : '' 4 | , expect : [ 5 | [ "attribute", { name:'href', value:"query.svc?x=1&y=2&z=3"} ], 6 | [ "opentag", { name: "a", attributes: { href:"query.svc?x=1&y=2&z=3"} } ], 7 | [ "closetag", "a" ] 8 | ] 9 | , strict : true 10 | , opt : {} 11 | } 12 | ) 13 | 14 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/issue-49.js: -------------------------------------------------------------------------------- 1 | // https://github.com/isaacs/sax-js/issues/49 2 | require(__dirname).test 3 | ( { xml : "" 4 | , expect : 5 | [ [ "opentag", { name: "xml", attributes: {} } ] 6 | , [ "opentag", { name: "script", attributes: {} } ] 7 | , [ "text", "hello world" ] 8 | , [ "closetag", "script" ] 9 | , [ "closetag", "xml" ] 10 | ] 11 | , strict : false 12 | , opt : { lowercasetags: true, noscript: true } 13 | } 14 | ) 15 | 16 | require(__dirname).test 17 | ( { xml : "" 18 | , expect : 19 | [ [ "opentag", { name: "xml", attributes: {} } ] 20 | , [ "opentag", { name: "script", attributes: {} } ] 21 | , [ "opencdata", undefined ] 22 | , [ "cdata", "hello world" ] 23 | , [ "closecdata", undefined ] 24 | , [ "closetag", "script" ] 25 | , [ "closetag", "xml" ] 26 | ] 27 | , strict : false 28 | , opt : { lowercasetags: true, noscript: true } 29 | } 30 | ) 31 | 32 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/parser-position.js: -------------------------------------------------------------------------------- 1 | var sax = require("../lib/sax"), 2 | assert = require("assert") 3 | 4 | function testPosition(chunks, expectedEvents) { 5 | var parser = sax.parser(); 6 | expectedEvents.forEach(function(expectation) { 7 | parser['on' + expectation[0]] = function() { 8 | for (var prop in expectation[1]) { 9 | assert.equal(parser[prop], expectation[1][prop]); 10 | } 11 | } 12 | }); 13 | chunks.forEach(function(chunk) { 14 | parser.write(chunk); 15 | }); 16 | }; 17 | 18 | testPosition(['

'], 19 | [ ['opentag', { position: 5, startTagPosition: 1 }] 20 | , ['text', { position: 19, startTagPosition: 14 }] 21 | , ['closetag', { position: 19, startTagPosition: 14 }] 22 | ]); 23 | 24 | testPosition(['
abcde','fgh
'], 25 | [ ['opentag', { position: 5, startTagPosition: 1 }] 26 | , ['text', { position: 19, startTagPosition: 14 }] 27 | , ['closetag', { position: 19, startTagPosition: 14 }] 28 | ]); 29 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/script.js: -------------------------------------------------------------------------------- 1 | require(__dirname).test({ 2 | xml : "", 3 | expect : [ 4 | ["opentag", {"name": "HTML","attributes": {}}], 5 | ["opentag", {"name": "HEAD","attributes": {}}], 6 | ["opentag", {"name": "SCRIPT","attributes": {}}], 7 | ["script", "if (1 < 0) { console.log('elo there'); }"], 8 | ["closetag", "SCRIPT"], 9 | ["closetag", "HEAD"], 10 | ["closetag", "HTML"] 11 | ] 12 | }); 13 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child-strict.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | xml : 4 | ""+ 5 | "" + 6 | "" + 7 | "" + 8 | "" + 9 | "=(|)" + 10 | "" + 11 | "", 12 | expect : [ 13 | ["opentag", { 14 | "name": "root", 15 | "attributes": {} 16 | }], 17 | ["opentag", { 18 | "name": "child", 19 | "attributes": {} 20 | }], 21 | ["opentag", { 22 | "name": "haha", 23 | "attributes": {} 24 | }], 25 | ["closetag", "haha"], 26 | ["closetag", "child"], 27 | ["opentag", { 28 | "name": "monkey", 29 | "attributes": {} 30 | }], 31 | ["text", "=(|)"], 32 | ["closetag", "monkey"], 33 | ["closetag", "root"], 34 | ["end"], 35 | ["ready"] 36 | ], 37 | strict : true, 38 | opt : {} 39 | }); 40 | 41 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-child.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | xml : 4 | ""+ 5 | "" + 6 | "" + 7 | "" + 8 | "" + 9 | "=(|)" + 10 | "" + 11 | "", 12 | expect : [ 13 | ["opentag", { 14 | "name": "ROOT", 15 | "attributes": {} 16 | }], 17 | ["opentag", { 18 | "name": "CHILD", 19 | "attributes": {} 20 | }], 21 | ["opentag", { 22 | "name": "HAHA", 23 | "attributes": {} 24 | }], 25 | ["closetag", "HAHA"], 26 | ["closetag", "CHILD"], 27 | ["opentag", { 28 | "name": "MONKEY", 29 | "attributes": {} 30 | }], 31 | ["text", "=(|)"], 32 | ["closetag", "MONKEY"], 33 | ["closetag", "ROOT"], 34 | ["end"], 35 | ["ready"] 36 | ], 37 | strict : false, 38 | opt : {} 39 | }); 40 | 41 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/self-closing-tag.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | xml : 4 | " "+ 5 | " "+ 6 | " "+ 7 | " "+ 8 | "=(|) "+ 9 | ""+ 10 | " ", 11 | expect : [ 12 | ["opentag", {name:"ROOT", attributes:{}}], 13 | ["opentag", {name:"HAHA", attributes:{}}], 14 | ["closetag", "HAHA"], 15 | ["opentag", {name:"HAHA", attributes:{}}], 16 | ["closetag", "HAHA"], 17 | // ["opentag", {name:"HAHA", attributes:{}}], 18 | // ["closetag", "HAHA"], 19 | ["opentag", {name:"MONKEY", attributes:{}}], 20 | ["text", "=(|)"], 21 | ["closetag", "MONKEY"], 22 | ["closetag", "ROOT"] 23 | ], 24 | opt : { trim : true } 25 | }); -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/stray-ending.js: -------------------------------------------------------------------------------- 1 | // stray ending tags should just be ignored in non-strict mode. 2 | // https://github.com/isaacs/sax-js/issues/32 3 | require(__dirname).test 4 | ( { xml : 5 | "
" 6 | , expect : 7 | [ [ "opentag", { name: "A", attributes: {} } ] 8 | , [ "opentag", { name: "B", attributes: {} } ] 9 | , [ "text", "" ] 10 | , [ "closetag", "B" ] 11 | , [ "closetag", "A" ] 12 | ] 13 | , strict : false 14 | , opt : {} 15 | } 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/trailing-non-whitespace.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test({ 3 | xml : "Welcome, to monkey land", 4 | expect : [ 5 | ["opentag", { 6 | "name": "SPAN", 7 | "attributes": {} 8 | }], 9 | ["text", "Welcome,"], 10 | ["closetag", "SPAN"], 11 | ["text", " to monkey land"], 12 | ["end"], 13 | ["ready"] 14 | ], 15 | strict : false, 16 | opt : {} 17 | }); 18 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/unquoted.js: -------------------------------------------------------------------------------- 1 | // unquoted attributes should be ok in non-strict mode 2 | // https://github.com/isaacs/sax-js/issues/31 3 | require(__dirname).test 4 | ( { xml : 5 | "" 6 | , expect : 7 | [ [ "attribute", { name: "CLASS", value: "test" } ] 8 | , [ "attribute", { name: "HELLO", value: "world" } ] 9 | , [ "opentag", { name: "SPAN", 10 | attributes: { CLASS: "test", HELLO: "world" } } ] 11 | , [ "closetag", "SPAN" ] 12 | ] 13 | , strict : false 14 | , opt : {} 15 | } 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-issue-41.js: -------------------------------------------------------------------------------- 1 | var t = require(__dirname) 2 | 3 | , xmls = // should be the same both ways. 4 | [ "" 5 | , "" ] 6 | 7 | , ex1 = 8 | [ [ "opennamespace" 9 | , { prefix: "a" 10 | , uri: "http://ATTRIBUTE" 11 | } 12 | ] 13 | , [ "attribute" 14 | , { name: "xmlns:a" 15 | , value: "http://ATTRIBUTE" 16 | , prefix: "xmlns" 17 | , local: "a" 18 | , uri: "http://www.w3.org/2000/xmlns/" 19 | } 20 | ] 21 | , [ "attribute" 22 | , { name: "a:attr" 23 | , local: "attr" 24 | , prefix: "a" 25 | , uri: "http://ATTRIBUTE" 26 | , value: "value" 27 | } 28 | ] 29 | , [ "opentag" 30 | , { name: "parent" 31 | , uri: "" 32 | , prefix: "" 33 | , local: "parent" 34 | , attributes: 35 | { "a:attr": 36 | { name: "a:attr" 37 | , local: "attr" 38 | , prefix: "a" 39 | , uri: "http://ATTRIBUTE" 40 | , value: "value" 41 | } 42 | , "xmlns:a": 43 | { name: "xmlns:a" 44 | , local: "a" 45 | , prefix: "xmlns" 46 | , uri: "http://www.w3.org/2000/xmlns/" 47 | , value: "http://ATTRIBUTE" 48 | } 49 | } 50 | , ns: {"a": "http://ATTRIBUTE"} 51 | } 52 | ] 53 | , ["closetag", "parent"] 54 | , ["closenamespace", { prefix: "a", uri: "http://ATTRIBUTE" }] 55 | ] 56 | 57 | // swap the order of elements 2 and 1 58 | , ex2 = [ex1[0], ex1[2], ex1[1]].concat(ex1.slice(3)) 59 | , expected = [ex1, ex2] 60 | 61 | xmls.forEach(function (x, i) { 62 | t.test({ xml: x 63 | , expect: expected[i] 64 | , strict: true 65 | , opt: { xmlns: true } 66 | }) 67 | }) 68 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-rebinding.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test 3 | ( { xml : 4 | ""+ 5 | ""+ 6 | ""+ 7 | ""+ 8 | ""+ 9 | "" 10 | 11 | , expect : 12 | [ [ "opennamespace", { prefix: "x", uri: "x1" } ] 13 | , [ "opennamespace", { prefix: "y", uri: "y1" } ] 14 | , [ "attribute", { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] 15 | , [ "attribute", { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } ] 16 | , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] 17 | , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] 18 | , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", 19 | attributes: { "xmlns:x": { name: "xmlns:x", value: "x1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } 20 | , "xmlns:y": { name: "xmlns:y", value: "y1", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "y" } 21 | , "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } 22 | , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, 23 | ns: { x: 'x1', y: 'y1' } } ] 24 | 25 | , [ "opennamespace", { prefix: "x", uri: "x2" } ] 26 | , [ "attribute", { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } ] 27 | , [ "opentag", { name: "rebind", uri: "", prefix: "", local: "rebind", 28 | attributes: { "xmlns:x": { name: "xmlns:x", value: "x2", uri: "http://www.w3.org/2000/xmlns/", prefix: "xmlns", local: "x" } }, 29 | ns: { x: 'x2' } } ] 30 | 31 | , [ "attribute", { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } ] 32 | , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] 33 | , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", 34 | attributes: { "x:a": { name: "x:a", value: "x2", uri: "x2", prefix: "x", local: "a" } 35 | , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, 36 | ns: { x: 'x2' } } ] 37 | 38 | , [ "closetag", "check" ] 39 | 40 | , [ "closetag", "rebind" ] 41 | , [ "closenamespace", { prefix: "x", uri: "x2" } ] 42 | 43 | , [ "attribute", { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } ] 44 | , [ "attribute", { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } ] 45 | , [ "opentag", { name: "check", uri: "", prefix: "", local: "check", 46 | attributes: { "x:a": { name: "x:a", value: "x1", uri: "x1", prefix: "x", local: "a" } 47 | , "y:a": { name: "y:a", value: "y1", uri: "y1", prefix: "y", local: "a" } }, 48 | ns: { x: 'x1', y: 'y1' } } ] 49 | , [ "closetag", "check" ] 50 | 51 | , [ "closetag", "root" ] 52 | , [ "closenamespace", { prefix: "x", uri: "x1" } ] 53 | , [ "closenamespace", { prefix: "y", uri: "y1" } ] 54 | ] 55 | , strict : true 56 | , opt : { xmlns: true } 57 | } 58 | ) 59 | 60 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-strict.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test 3 | ( { xml : 4 | ""+ 5 | ""+ 6 | ""+ 7 | ""+ 8 | ""+ 9 | ""+ 10 | ""+ 11 | ""+ 12 | ""+ 13 | "" 14 | 15 | , expect : 16 | [ [ "opentag", { name: "root", prefix: "", local: "root", uri: "", 17 | attributes: {}, ns: {} } ] 18 | 19 | , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] 20 | , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", 21 | attributes: { "attr": { name: "attr", value: "normal", uri: "", prefix: "", local: "attr", uri: "" } }, 22 | ns: {} } ] 23 | , [ "closetag", "plain" ] 24 | 25 | , [ "opennamespace", { prefix: "", uri: "uri:default" } ] 26 | 27 | , [ "attribute", { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } ] 28 | , [ "opentag", { name: "ns1", prefix: "", local: "ns1", uri: "uri:default", 29 | attributes: { "xmlns": { name: "xmlns", value: "uri:default", prefix: "xmlns", local: "", uri: "http://www.w3.org/2000/xmlns/" } }, 30 | ns: { "": "uri:default" } } ] 31 | 32 | , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] 33 | , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "uri:default", ns: { '': 'uri:default' }, 34 | attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } } } ] 35 | , [ "closetag", "plain" ] 36 | 37 | , [ "closetag", "ns1" ] 38 | 39 | , [ "closenamespace", { prefix: "", uri: "uri:default" } ] 40 | 41 | , [ "opennamespace", { prefix: "a", uri: "uri:nsa" } ] 42 | 43 | , [ "attribute", { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } ] 44 | 45 | , [ "opentag", { name: "ns2", prefix: "", local: "ns2", uri: "", 46 | attributes: { "xmlns:a": { name: "xmlns:a", value: "uri:nsa", prefix: "xmlns", local: "a", uri: "http://www.w3.org/2000/xmlns/" } }, 47 | ns: { a: "uri:nsa" } } ] 48 | 49 | , [ "attribute", { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } ] 50 | , [ "opentag", { name: "plain", prefix: "", local: "plain", uri: "", 51 | attributes: { "attr": { name: "attr", value: "normal", prefix: "", local: "attr", uri: "" } }, 52 | ns: { a: 'uri:nsa' } } ] 53 | , [ "closetag", "plain" ] 54 | 55 | , [ "attribute", { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } ] 56 | , [ "opentag", { name: "a:ns", prefix: "a", local: "ns", uri: "uri:nsa", 57 | attributes: { "a:attr": { name: "a:attr", value: "namespaced", prefix: "a", local: "attr", uri: "uri:nsa" } }, 58 | ns: { a: 'uri:nsa' } } ] 59 | , [ "closetag", "a:ns" ] 60 | 61 | , [ "closetag", "ns2" ] 62 | 63 | , [ "closenamespace", { prefix: "a", uri: "uri:nsa" } ] 64 | 65 | , [ "closetag", "root" ] 66 | ] 67 | , strict : true 68 | , opt : { xmlns: true } 69 | } 70 | ) 71 | 72 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-unbound.js: -------------------------------------------------------------------------------- 1 | 2 | require(__dirname).test( 3 | { strict : true 4 | , opt : { xmlns: true } 5 | , expect : 6 | [ ["error", "Unbound namespace prefix: \"unbound\"\nLine: 0\nColumn: 28\nChar: >"] 7 | 8 | , [ "attribute", { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } ] 9 | , [ "opentag", { name: "root", uri: "", prefix: "", local: "root", 10 | attributes: { "unbound:attr": { name: "unbound:attr", value: "value", uri: "unbound", prefix: "unbound", local: "attr" } }, 11 | ns: {} } ] 12 | , [ "closetag", "root" ] 13 | ] 14 | } 15 | ).write("") 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-ns.js: -------------------------------------------------------------------------------- 1 | var xmlns_attr = 2 | { 3 | name: "xmlns", value: "http://foo", prefix: "xmlns", 4 | local: "", uri : "http://www.w3.org/2000/xmlns/" 5 | }; 6 | 7 | var attr_attr = 8 | { 9 | name: "attr", value: "bar", prefix: "", 10 | local : "attr", uri : "" 11 | }; 12 | 13 | 14 | require(__dirname).test 15 | ( { xml : 16 | "" 17 | , expect : 18 | [ [ "opennamespace", { prefix: "", uri: "http://foo" } ] 19 | , [ "attribute", xmlns_attr ] 20 | , [ "attribute", attr_attr ] 21 | , [ "opentag", { name: "elm", prefix: "", local: "elm", uri : "http://foo", 22 | ns : { "" : "http://foo" }, 23 | attributes: { xmlns: xmlns_attr, attr: attr_attr } } ] 24 | , [ "closetag", "elm" ] 25 | , [ "closenamespace", { prefix: "", uri: "http://foo"} ] 26 | ] 27 | , strict : true 28 | , opt : {xmlns: true} 29 | } 30 | ) 31 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix-attribute.js: -------------------------------------------------------------------------------- 1 | require(__dirname).test( 2 | { xml : "" 3 | , expect : 4 | [ [ "attribute" 5 | , { name: "xml:lang" 6 | , local: "lang" 7 | , prefix: "xml" 8 | , uri: "http://www.w3.org/XML/1998/namespace" 9 | , value: "en" 10 | } 11 | ] 12 | , [ "opentag" 13 | , { name: "root" 14 | , uri: "" 15 | , prefix: "" 16 | , local: "root" 17 | , attributes: 18 | { "xml:lang": 19 | { name: "xml:lang" 20 | , local: "lang" 21 | , prefix: "xml" 22 | , uri: "http://www.w3.org/XML/1998/namespace" 23 | , value: "en" 24 | } 25 | } 26 | , ns: {} 27 | } 28 | ] 29 | , ["closetag", "root"] 30 | ] 31 | , strict : true 32 | , opt : { xmlns: true } 33 | } 34 | ) 35 | 36 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-prefix.js: -------------------------------------------------------------------------------- 1 | require(__dirname).test( 2 | { xml : "" 3 | , expect : 4 | [ 5 | [ "opentag" 6 | , { name: "xml:root" 7 | , uri: "http://www.w3.org/XML/1998/namespace" 8 | , prefix: "xml" 9 | , local: "root" 10 | , attributes: {} 11 | , ns: {} 12 | } 13 | ] 14 | , ["closetag", "xml:root"] 15 | ] 16 | , strict : true 17 | , opt : { xmlns: true } 18 | } 19 | ) 20 | 21 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xml2js/node_modules/sax/test/xmlns-xml-default-redefine.js: -------------------------------------------------------------------------------- 1 | require(__dirname).test( 2 | { xml : "" 3 | , expect : 4 | [ ["error" 5 | , "xml: prefix must be bound to http://www.w3.org/XML/1998/namespace\n" 6 | + "Actual: ERROR\n" 7 | + "Line: 0\nColumn: 27\nChar: '" 8 | ] 9 | , [ "attribute" 10 | , { name: "xmlns:xml" 11 | , local: "xml" 12 | , prefix: "xmlns" 13 | , uri: "http://www.w3.org/2000/xmlns/" 14 | , value: "ERROR" 15 | } 16 | ] 17 | , [ "opentag" 18 | , { name: "xml:root" 19 | , uri: "http://www.w3.org/XML/1998/namespace" 20 | , prefix: "xml" 21 | , local: "root" 22 | , attributes: 23 | { "xmlns:xml": 24 | { name: "xmlns:xml" 25 | , local: "xml" 26 | , prefix: "xmlns" 27 | , uri: "http://www.w3.org/2000/xmlns/" 28 | , value: "ERROR" 29 | } 30 | } 31 | , ns: {} 32 | } 33 | ] 34 | , ["closetag", "xml:root"] 35 | ] 36 | , strict : true 37 | , opt : { xmlns: true } 38 | } 39 | ) 40 | 41 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xmlbuilder/.npmignore: -------------------------------------------------------------------------------- 1 | .gitignore 2 | .travis.yml 3 | Makefile 4 | .git/ 5 | src/ 6 | test/ 7 | node_modules/ 8 | 9 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xmlbuilder/README.md: -------------------------------------------------------------------------------- 1 | # xmlbuilder-js 2 | 3 | An XMLBuilder for [node.js](http://nodejs.org/) similar to 4 | [java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/). 5 | 6 | [![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js) 7 | 8 | ### Installation: 9 | 10 | ``` sh 11 | npm install xmlbuilder 12 | ``` 13 | 14 | ### Important: 15 | 16 | I had to break compatibility while adding multiple instances in 0.1.3. 17 | As a result, version from v0.1.3 are **not** compatible with previous versions. 18 | 19 | ### Usage: 20 | 21 | ``` js 22 | var builder = require('xmlbuilder'); 23 | var xml = builder.create('root') 24 | .ele('xmlbuilder', {'for': 'node-js'}) 25 | .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git') 26 | .end({ pretty: true}); 27 | 28 | console.log(xml); 29 | ``` 30 | 31 | will result in: 32 | 33 | ``` xml 34 | 35 | 36 | 37 | git://github.com/oozcitak/xmlbuilder-js.git 38 | 39 | 40 | ``` 41 | 42 | If you need to do some processing: 43 | 44 | ``` js 45 | var root = builder.create('squares'); 46 | root.com('f(x) = x^2'); 47 | for(var i = 1; i <= 5; i++) 48 | { 49 | var item = root.ele('data'); 50 | item.att('x', i); 51 | item.att('y', i * i); 52 | } 53 | ``` 54 | 55 | This will result in: 56 | 57 | ``` xml 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | ``` 68 | 69 | See the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions. 70 | 71 | ### License: 72 | 73 | `xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php). 74 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xmlbuilder/lib/XMLBuilder.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.3.3 2 | (function() { 3 | var XMLBuilder, XMLFragment; 4 | 5 | XMLFragment = require('./XMLFragment'); 6 | 7 | XMLBuilder = (function() { 8 | 9 | function XMLBuilder(name, xmldec, doctype) { 10 | var att, child, _ref; 11 | this.children = []; 12 | this.rootObject = null; 13 | if (this.is(name, 'Object')) { 14 | _ref = [name, xmldec], xmldec = _ref[0], doctype = _ref[1]; 15 | name = null; 16 | } 17 | if (name != null) { 18 | name = '' + name || ''; 19 | if (xmldec == null) { 20 | xmldec = { 21 | 'version': '1.0' 22 | }; 23 | } 24 | } 25 | if ((xmldec != null) && !(xmldec.version != null)) { 26 | throw new Error("Version number is required"); 27 | } 28 | if (xmldec != null) { 29 | xmldec.version = '' + xmldec.version || ''; 30 | if (!xmldec.version.match(/1\.[0-9]+/)) { 31 | throw new Error("Invalid version number: " + xmldec.version); 32 | } 33 | att = { 34 | version: xmldec.version 35 | }; 36 | if (xmldec.encoding != null) { 37 | xmldec.encoding = '' + xmldec.encoding || ''; 38 | if (!xmldec.encoding.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/)) { 39 | throw new Error("Invalid encoding: " + xmldec.encoding); 40 | } 41 | att.encoding = xmldec.encoding; 42 | } 43 | if (xmldec.standalone != null) { 44 | att.standalone = xmldec.standalone ? "yes" : "no"; 45 | } 46 | child = new XMLFragment(this, '?xml', att); 47 | this.children.push(child); 48 | } 49 | if (doctype != null) { 50 | att = {}; 51 | if (name != null) { 52 | att.name = name; 53 | } 54 | if (doctype.ext != null) { 55 | doctype.ext = '' + doctype.ext || ''; 56 | att.ext = doctype.ext; 57 | } 58 | child = new XMLFragment(this, '!DOCTYPE', att); 59 | this.children.push(child); 60 | } 61 | if (name != null) { 62 | this.begin(name); 63 | } 64 | } 65 | 66 | XMLBuilder.prototype.begin = function(name, xmldec, doctype) { 67 | var doc, root; 68 | if (!(name != null)) { 69 | throw new Error("Root element needs a name"); 70 | } 71 | if (this.rootObject) { 72 | this.children = []; 73 | this.rootObject = null; 74 | } 75 | if (xmldec != null) { 76 | doc = new XMLBuilder(name, xmldec, doctype); 77 | return doc.root(); 78 | } 79 | name = '' + name || ''; 80 | root = new XMLFragment(this, name, {}); 81 | root.isRoot = true; 82 | root.documentObject = this; 83 | this.children.push(root); 84 | this.rootObject = root; 85 | return root; 86 | }; 87 | 88 | XMLBuilder.prototype.root = function() { 89 | return this.rootObject; 90 | }; 91 | 92 | XMLBuilder.prototype.end = function(options) { 93 | return toString(options); 94 | }; 95 | 96 | XMLBuilder.prototype.toString = function(options) { 97 | var child, r, _i, _len, _ref; 98 | r = ''; 99 | _ref = this.children; 100 | for (_i = 0, _len = _ref.length; _i < _len; _i++) { 101 | child = _ref[_i]; 102 | r += child.toString(options); 103 | } 104 | return r; 105 | }; 106 | 107 | XMLBuilder.prototype.is = function(obj, type) { 108 | var clas; 109 | clas = Object.prototype.toString.call(obj).slice(8, -1); 110 | return (obj != null) && clas === type; 111 | }; 112 | 113 | return XMLBuilder; 114 | 115 | })(); 116 | 117 | module.exports = XMLBuilder; 118 | 119 | }).call(this); 120 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xmlbuilder/lib/index.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.3.3 2 | (function() { 3 | var XMLBuilder; 4 | 5 | XMLBuilder = require('./XMLBuilder'); 6 | 7 | module.exports.create = function(name, xmldec, doctype) { 8 | if (name != null) { 9 | return new XMLBuilder(name, xmldec, doctype).root(); 10 | } else { 11 | return new XMLBuilder(); 12 | } 13 | }; 14 | 15 | }).call(this); 16 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/node_modules/xmlbuilder/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xmlbuilder", 3 | "version": "0.4.2", 4 | "keywords": [ 5 | "xml", 6 | "xmlbuilder" 7 | ], 8 | "homepage": "http://github.com/oozcitak/xmlbuilder-js", 9 | "description": "An XML builder for node.js", 10 | "author": { 11 | "name": "Ozgur Ozcitak", 12 | "email": "oozcitak@gmail.com" 13 | }, 14 | "licenses": [ 15 | { 16 | "type": "MIT", 17 | "url": "http://opensource.org/licenses/mit-license.php" 18 | } 19 | ], 20 | "repository": { 21 | "type": "git", 22 | "url": "git://github.com/oozcitak/xmlbuilder-js.git" 23 | }, 24 | "bugs": { 25 | "url": "http://github.com/oozcitak/xmlbuilder-js/issues" 26 | }, 27 | "main": "./lib/index", 28 | "engines": { 29 | "node": ">=0.2.0" 30 | }, 31 | "devDependencies": { 32 | "coffee-script": "1.1.x" 33 | }, 34 | "scripts": { 35 | "test": "make test" 36 | }, 37 | "readme": "# xmlbuilder-js\n\nAn XMLBuilder for [node.js](http://nodejs.org/) similar to \n[java-xmlbuilder](http://code.google.com/p/java-xmlbuilder/).\n\n[![Build Status](https://secure.travis-ci.org/oozcitak/xmlbuilder-js.png)](http://travis-ci.org/oozcitak/xmlbuilder-js)\n\n### Installation:\n\n``` sh\nnpm install xmlbuilder\n```\n\n### Important:\n\nI had to break compatibility while adding multiple instances in 0.1.3. \nAs a result, version from v0.1.3 are **not** compatible with previous versions.\n\n### Usage:\n\n``` js\nvar builder = require('xmlbuilder');\nvar xml = builder.create('root')\n .ele('xmlbuilder', {'for': 'node-js'})\n .ele('repo', {'type': 'git'}, 'git://github.com/oozcitak/xmlbuilder-js.git')\n .end({ pretty: true});\n \nconsole.log(xml);\n```\n\nwill result in:\n\n``` xml\n\n\n \n git://github.com/oozcitak/xmlbuilder-js.git\n \n\n```\n\nIf you need to do some processing:\n\n``` js\nvar root = builder.create('squares');\nroot.com('f(x) = x^2');\nfor(var i = 1; i <= 5; i++)\n{\n var item = root.ele('data');\n item.att('x', i);\n item.att('y', i * i);\n}\n```\n\nThis will result in:\n\n``` xml\n\n\n \n \n \n \n \n \n\n```\n\nSee the [Usage](https://github.com/oozcitak/xmlbuilder-js/wiki/Usage) page in the wiki for more detailed instructions.\n\n### License:\n\n`xmlbuilder-js` is [MIT Licensed](http://opensource.org/licenses/mit-license.php).\n", 38 | "readmeFilename": "README.md", 39 | "_id": "xmlbuilder@0.4.2", 40 | "_from": "xmlbuilder@0.4.2" 41 | } 42 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/scripts/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var repl = require('repl').start('aws-sdk> '), 4 | replEval = repl.eval, 5 | defaultOptions = { 6 | logger: process.stdout, 7 | region: process.env.AWS_REGION || 'us-east-1' 8 | }; 9 | 10 | 11 | function customEval(cmd, context, filename, callback) { 12 | replEval(cmd, context, filename, function(err, value) { 13 | if (err) { 14 | callback(err, null); 15 | return; 16 | } 17 | 18 | if (value && value.constructor === AWS.Request) { 19 | if (!value.__hasBeenSent__) { 20 | value.__hasBeenSent__ = true; 21 | try { 22 | value.on('complete', function consoleDataExtraction(resp) { 23 | context.data = resp.data; 24 | context.error = resp.error; 25 | callback(resp.error, resp.data); 26 | }); 27 | context.request = value; 28 | context.data = null; 29 | context.error = null; 30 | context.response = value.send(); 31 | } catch (err2) { 32 | callback(err2, null); 33 | return; 34 | } 35 | } else { 36 | callback(null, value); 37 | } 38 | } else { 39 | callback(null, value); 40 | } 41 | }); 42 | } 43 | 44 | var AWS = repl.context.AWS = require('../lib/aws'); 45 | repl.eval = customEval; 46 | 47 | // context variables 48 | repl.context.data = null; 49 | repl.context.error = null; 50 | repl.context.request = null; 51 | repl.context.response = null; 52 | 53 | // setup REPL history 54 | try { 55 | var replHistory = require('repl.history'); 56 | replHistory(repl, process.env.HOME + '/.node_history'); 57 | } catch (e) { 58 | console.log("Missing repl.history package, history will not be supported."); 59 | console.log(" Type `npm install repl.history` to enable history."); 60 | } 61 | 62 | // load services as defined instances 63 | for (var key in AWS) { 64 | var id = AWS[key].serviceIdentifier; 65 | if (id) { 66 | if (id === 'cloudsearchdomain') continue; // this required an explicit endpoint 67 | 68 | var svcClass = AWS[key]; 69 | var svc = new svcClass(defaultOptions); 70 | svc.with = function(config) { 71 | return new this.constructor.__super__(AWS.util.merge(this.config, config)); 72 | }; 73 | repl.context[svcClass.serviceIdentifier] = svc; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/scripts/translate-api: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var fs = require('fs'); 4 | var Translator = require('./lib/translator'); 5 | var util = require('util'); 6 | 7 | var basePath = __dirname + '/../apis/'; 8 | var paths = fs.readdirSync(basePath); 9 | var modelName = process.argv[2] || ''; 10 | 11 | paths.forEach(function (path) { 12 | if (path.match(new RegExp(modelName + ".+\\.normal\\.json$"))) { 13 | var opath = path.replace(/\.normal\.json$/, '.min.json'); 14 | var data = JSON.parse(fs.readFileSync(basePath + path).toString()); 15 | var translated = new Translator(data, {documentation: false}); 16 | var json = JSON.stringify(translated, null, ' '); 17 | fs.writeFileSync(basePath + opath, json); 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /node_modules/aws-sdk/testem.json: -------------------------------------------------------------------------------- 1 | { 2 | "test_page": "test/browser/runner.html" 3 | } 4 | -------------------------------------------------------------------------------- /node_modules/underscore/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative 2 | Reporters & Editors 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /node_modules/underscore/README.md: -------------------------------------------------------------------------------- 1 | __ 2 | /\ \ __ 3 | __ __ ___ \_\ \ __ _ __ ____ ___ ___ _ __ __ /\_\ ____ 4 | /\ \/\ \ /' _ `\ /'_ \ /'__`\/\ __\/ ,__\ / ___\ / __`\/\ __\/'__`\ \/\ \ /',__\ 5 | \ \ \_\ \/\ \/\ \/\ \ \ \/\ __/\ \ \//\__, `\/\ \__//\ \ \ \ \ \//\ __/ __ \ \ \/\__, `\ 6 | \ \____/\ \_\ \_\ \___,_\ \____\\ \_\\/\____/\ \____\ \____/\ \_\\ \____\/\_\ _\ \ \/\____/ 7 | \/___/ \/_/\/_/\/__,_ /\/____/ \/_/ \/___/ \/____/\/___/ \/_/ \/____/\/_//\ \_\ \/___/ 8 | \ \____/ 9 | \/___/ 10 | 11 | Underscore.js is a utility-belt library for JavaScript that provides 12 | support for the usual functional suspects (each, map, reduce, filter...) 13 | without extending any core JavaScript objects. 14 | 15 | For Docs, License, Tests, and pre-packed downloads, see: 16 | http://underscorejs.org 17 | 18 | Underscore is an open-sourced component of DocumentCloud: 19 | https://github.com/documentcloud 20 | 21 | Many thanks to our contributors: 22 | https://github.com/jashkenas/underscore/contributors 23 | -------------------------------------------------------------------------------- /node_modules/underscore/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "underscore", 3 | "description": "JavaScript's functional programming helper library.", 4 | "homepage": "http://underscorejs.org", 5 | "keywords": [ 6 | "util", 7 | "functional", 8 | "server", 9 | "client", 10 | "browser" 11 | ], 12 | "author": { 13 | "name": "Jeremy Ashkenas", 14 | "email": "jeremy@documentcloud.org" 15 | }, 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/jashkenas/underscore.git" 19 | }, 20 | "main": "underscore.js", 21 | "version": "1.8.2", 22 | "devDependencies": { 23 | "docco": "*", 24 | "eslint": "0.6.x", 25 | "karma": "~0.12.31", 26 | "karma-qunit": "~0.1.4", 27 | "qunit-cli": "~0.2.0", 28 | "uglify-js": "2.4.x" 29 | }, 30 | "scripts": { 31 | "test": "npm run test-node && npm run lint", 32 | "lint": "eslint underscore.js test/*.js", 33 | "test-node": "qunit-cli test/*.js", 34 | "test-browser": "npm i karma-phantomjs-launcher && ./node_modules/karma/bin/karma start", 35 | "build": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m --source-map underscore-min.map -o underscore-min.js", 36 | "doc": "docco underscore.js" 37 | }, 38 | "license": "MIT", 39 | "files": [ 40 | "underscore.js", 41 | "underscore-min.js", 42 | "underscore-min.map", 43 | "LICENSE" 44 | ], 45 | "readme": " __\n /\\ \\ __\n __ __ ___ \\_\\ \\ __ _ __ ____ ___ ___ _ __ __ /\\_\\ ____\n /\\ \\/\\ \\ /' _ `\\ /'_ \\ /'__`\\/\\ __\\/ ,__\\ / ___\\ / __`\\/\\ __\\/'__`\\ \\/\\ \\ /',__\\\n \\ \\ \\_\\ \\/\\ \\/\\ \\/\\ \\ \\ \\/\\ __/\\ \\ \\//\\__, `\\/\\ \\__//\\ \\ \\ \\ \\ \\//\\ __/ __ \\ \\ \\/\\__, `\\\n \\ \\____/\\ \\_\\ \\_\\ \\___,_\\ \\____\\\\ \\_\\\\/\\____/\\ \\____\\ \\____/\\ \\_\\\\ \\____\\/\\_\\ _\\ \\ \\/\\____/\n \\/___/ \\/_/\\/_/\\/__,_ /\\/____/ \\/_/ \\/___/ \\/____/\\/___/ \\/_/ \\/____/\\/_//\\ \\_\\ \\/___/\n \\ \\____/\n \\/___/\n\nUnderscore.js is a utility-belt library for JavaScript that provides\nsupport for the usual functional suspects (each, map, reduce, filter...)\nwithout extending any core JavaScript objects.\n\nFor Docs, License, Tests, and pre-packed downloads, see:\nhttp://underscorejs.org\n\nUnderscore is an open-sourced component of DocumentCloud:\nhttps://github.com/documentcloud\n\nMany thanks to our contributors:\nhttps://github.com/jashkenas/underscore/contributors\n", 46 | "readmeFilename": "README.md", 47 | "bugs": { 48 | "url": "https://github.com/jashkenas/underscore/issues" 49 | }, 50 | "_id": "underscore@1.8.2", 51 | "dist": { 52 | "shasum": "57d0155d77e6ea7678db3b88d83da2254f49bdbb" 53 | }, 54 | "_from": "underscore@", 55 | "_resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" 56 | } 57 | -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | 2 | var fs = require('fs'); 3 | var util = require('util'); 4 | var lambda = require("./lambda.js"); 5 | 6 | fs.readFile('./elb.log', function (err, log) { 7 | if (err) throw err; 8 | 9 | var stats = lambda.analyse(log); 10 | var metrics = lambda.buildMetrics(stats, new Date()); 11 | 12 | console.log(util.inspect(metrics, {depth: 5})); 13 | }); 14 | 15 | var context = { 16 | done: function(err, s){ 17 | console.log("done(" + err + ", '" + s + "')"); 18 | } 19 | } 20 | 21 | var event = { 22 | "Records": [ 23 | { 24 | "eventVersion": "2.0", 25 | "eventSource": "aws:s3", 26 | "awsRegion": "eu-west-1", 27 | "eventTime": "2015-03-08T16:45:57.612Z", 28 | "eventName": "ObjectCreated:Put", 29 | "userIdentity": { 30 | "principalId": "AWS:AIDAIC3Q6OY7XTEX2MMHK" 31 | }, 32 | "requestParameters": { 33 | "sourceIPAddress": "54.76.184.55" 34 | }, 35 | "responseElements": { 36 | "x-amz-request-id": "322D61A642DC4F13", 37 | "x-amz-id-2": "fxEIaKx/BG0oaQu9iaavhqjbsiSG12/uvzT10NKMM2jvjC96Hp6U1XIiwihWM+DibwTfxr98+a4=" 38 | }, 39 | "s3": { 40 | "s3SchemaVersion": "1.0", 41 | "configurationId": "elb test", 42 | "bucket": { 43 | "name": "atombrenner-logs", 44 | "ownerIdentity": { 45 | "principalId": "A3SY18V2289Y99" 46 | }, 47 | "arn": "arn:aws:s3:::atombrenner-logs" 48 | }, 49 | "object": { 50 | "key": "atombrenner-elb/AWSLogs/037251718545/elasticloadbalancing/eu-west-1/2015/03/15/037251718545_elasticloadbalancing_eu-west-1_atombrenner-ELB_20150315T1800Z_54.229.210.119_35ze8umx.log", 51 | "size": 1736717, 52 | "eTag": "56e3d1f9cc437c0c9b95865022803151" 53 | } 54 | } 55 | } 56 | ] 57 | }; 58 | 59 | lambda.handler(event, context); 60 | -------------------------------------------------------------------------------- /zip_lambda.sh: -------------------------------------------------------------------------------- 1 | rm lambda.zip 2 | zip -r lambda.zip lambda.js node_modules/async node_modules/underscore 3 | 4 | # Optionally upload your lambda, did not work for me, uploaded zip manually 5 | # aws lambda upload-function \ 6 | # --region eu-west-1 \ 7 | # --function-name analyse-elb-logs \ 8 | # --function-zip lambda.zip \ 9 | # --role arn:aws:iam::514996828637:role/lambda_exec \ 10 | # --mode event \ 11 | # --handler lambda.handler \ 12 | # --runtime nodejs \ 13 | # --timeout 30 \ 14 | # --memory-size 128 15 | --------------------------------------------------------------------------------