aws-sdk 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,7 +18,7 @@ to work with the new major version.
18
18
  To use the SDK in the browser, simply add the following script tag to your
19
19
  HTML pages:
20
20
 
21
- <script src="https://sdk.amazonaws.com/js/aws-sdk-2.0.4.min.js"></script>
21
+ <script src="https://sdk.amazonaws.com/js/aws-sdk-2.0.5.min.js"></script>
22
22
 
23
23
  ### In Node.js
24
24
 
package/dist/aws-sdk.js CHANGED
@@ -1,4 +1,4 @@
1
- // AWS SDK for JavaScript v2.0.4
1
+ // AWS SDK for JavaScript v2.0.5
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt
4
4
  (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
@@ -3842,14 +3842,14 @@ AWS.config = new AWS.Config();
3842
3842
  var AWS = { util: require('./util') };
3843
3843
 
3844
3844
 
3845
- var _hidden = {}; _hidden = {}; // hack to parse macro
3845
+ var _hidden = {}; _hidden.toString(); // hack to parse macro
3846
3846
 
3847
3847
  module.exports = AWS;
3848
3848
 
3849
3849
  AWS.util.update(AWS, {
3850
3850
 
3851
3851
 
3852
- VERSION: '2.0.4',
3852
+ VERSION: '2.0.5',
3853
3853
 
3854
3854
 
3855
3855
  Signers: {},
@@ -4171,6 +4171,17 @@ AWS.EventListeners = {
4171
4171
  req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;
4172
4172
  });
4173
4173
 
4174
+ add('RESTART', 'restart', function RESTART(req) {
4175
+ var err = this.response.error;
4176
+ if (!err || !err.retryable) return;
4177
+
4178
+ if (this.response.retryCount < this.service.config.maxRetries) {
4179
+ this.response.retryCount++;
4180
+ } else {
4181
+ this.response.error = null;
4182
+ }
4183
+ });
4184
+
4174
4185
  addAsync('SIGN', 'sign', function SIGN(req, done) {
4175
4186
  if (!req.service.api.signatureVersion) return done(); // none
4176
4187
 
@@ -4925,12 +4936,8 @@ function Paginator(name, paginator) {
4925
4936
  module.exports = Paginator;
4926
4937
 
4927
4938
  },{"../util":61}],37:[function(require,module,exports){
4928
- var Shape = require('./shape');
4929
- var StructureShape = Shape.shapes.StructureShape;
4930
-
4931
4939
  var util = require('../util');
4932
4940
  var property = util.property;
4933
- var memoizedProperty = util.memoizedProperty;
4934
4941
 
4935
4942
  function ResourceWaiter(name, waiter, options) {
4936
4943
  options = options || {};
@@ -4979,7 +4986,7 @@ function ResourceWaiter(name, waiter, options) {
4979
4986
 
4980
4987
  module.exports = ResourceWaiter;
4981
4988
 
4982
- },{"../util":61,"./shape":38}],38:[function(require,module,exports){
4989
+ },{"../util":61}],38:[function(require,module,exports){
4983
4990
  var Collection = require('./collection');
4984
4991
 
4985
4992
  var util = require('../util');
@@ -5829,7 +5836,7 @@ function extractData(resp) {
5829
5836
  resp.data[payload] = body;
5830
5837
  } else if (payloadMember.type === 'structure') {
5831
5838
  parser = new AWS.XML.Parser();
5832
- resp.data = parser.parse(body.toString(), payloadMember);
5839
+ util.update(resp.data, parser.parse(body.toString(), payloadMember));
5833
5840
  } else {
5834
5841
  resp.data[payload] = body.toString();
5835
5842
  }
@@ -6014,14 +6021,6 @@ var AcceptorStateMachine = require('./state_machine');
6014
6021
  var inherit = AWS.util.inherit;
6015
6022
 
6016
6023
  var hardErrorStates = {success:1, error:1, complete:1};
6017
- var hardErrors = {
6018
- EvalError: 1,
6019
- RangeError: 1,
6020
- ReferenceError: 1,
6021
- SyntaxError: 1,
6022
- TypeError: 1,
6023
- URIError: 1
6024
- };
6025
6024
 
6026
6025
  function isTerminalState(machine) {
6027
6026
  return hardErrorStates.hasOwnProperty(machine._asm.currentState);
@@ -6034,37 +6033,24 @@ fsm.setupStates = function() {
6034
6033
  var self = this;
6035
6034
  self.emit(self._asm.currentState, function() {
6036
6035
  var nextError = self.response.error;
6037
- if (nextError && isTerminalState(self)) {
6038
- var isHardError = hardErrors.hasOwnProperty(nextError.name);
6039
- if (!isHardError) nextError = null;
6036
+ if (nextError && nextError !== err && isTerminalState(self)) {
6037
+ throw nextError;
6040
6038
  }
6041
6039
 
6042
6040
  done(nextError);
6043
6041
  });
6044
6042
 
6045
6043
  } catch (e) {
6046
- err = e;
6047
- if (isTerminalState(self)) {
6048
- var isHardError = hardErrors.hasOwnProperty(err.name);
6049
- if (!isHardError) err = null;
6044
+ if (e !== err && isTerminalState(self)) {
6045
+ AWS.SequentialExecutor.prototype.unhandledErrorCallback.call(this, e);
6046
+ done();
6047
+ } else {
6048
+ done(e);
6050
6049
  }
6051
- done(err);
6052
6050
  }
6053
6051
  };
6054
6052
 
6055
6053
  this.addState('validate', 'build', 'error', transition);
6056
- this.addState('restart', 'build', 'error', function(err, done) {
6057
- err = this.response.error;
6058
- if (!err) return done();
6059
- if (!err.retryable) return done(err);
6060
-
6061
- if (this.response.retryCount < this.service.config.maxRetries) {
6062
- this.response.retryCount++;
6063
- done();
6064
- } else {
6065
- done(err);
6066
- }
6067
- });
6068
6054
  this.addState('build', 'afterBuild', 'restart', transition);
6069
6055
  this.addState('afterBuild', 'sign', 'restart', transition);
6070
6056
  this.addState('sign', 'send', 'retry', transition);
@@ -6074,13 +6060,10 @@ fsm.setupStates = function() {
6074
6060
  this.addState('validateResponse', 'extractData', 'extractError', transition);
6075
6061
  this.addState('extractError', 'extractData', 'retry', transition);
6076
6062
  this.addState('extractData', 'success', 'retry', transition);
6063
+ this.addState('restart', 'build', 'error', transition);
6077
6064
  this.addState('success', 'complete', 'complete', transition);
6078
6065
  this.addState('error', 'complete', 'complete', transition);
6079
- this.addState('complete', null, 'uncaughtException', transition);
6080
- this.addState('uncaughtException', function(err, done) {
6081
- AWS.SequentialExecutor.prototype.unhandledErrorCallback.call(this, err);
6082
- done(err);
6083
- });
6066
+ this.addState('complete', null, null, transition);
6084
6067
  };
6085
6068
  fsm.setupStates();
6086
6069
 
@@ -6101,7 +6084,6 @@ AWS.Request = inherit({
6101
6084
  this.startTime = AWS.util.date.getDate();
6102
6085
 
6103
6086
  this.response = new AWS.Response(this);
6104
- this.restartCount = 0;
6105
6087
  this._asm = new AcceptorStateMachine(fsm.states, 'validate');
6106
6088
 
6107
6089
  AWS.SequentialExecutor.call(this);
@@ -6155,15 +6137,18 @@ AWS.Request = inherit({
6155
6137
 
6156
6138
 
6157
6139
  eachPage: function eachPage(callback) {
6140
+ callback = AWS.util.fn.makeAsync(callback, 3);
6141
+
6158
6142
  function wrappedCallback(response) {
6159
- var result = callback.call(response, response.error, response.data);
6160
- if (result === false) return;
6143
+ callback.call(response, response.error, response.data, function (result) {
6144
+ if (result === false) return;
6161
6145
 
6162
- if (response.hasNextPage()) {
6163
- response.nextPage().on('complete', wrappedCallback).send();
6164
- } else {
6165
- callback.call(response, null, null);
6166
- }
6146
+ if (response.hasNextPage()) {
6147
+ response.nextPage().on('complete', wrappedCallback).send();
6148
+ } else {
6149
+ callback.call(response, null, null, AWS.util.fn.noop);
6150
+ }
6151
+ });
6167
6152
  }
6168
6153
 
6169
6154
  this.on('complete', wrappedCallback).send();
@@ -6270,6 +6255,7 @@ AWS.Request = inherit({
6270
6255
 
6271
6256
  eventParameters: function eventParameters(eventName) {
6272
6257
  switch (eventName) {
6258
+ case 'restart':
6273
6259
  case 'validate':
6274
6260
  case 'sign':
6275
6261
  case 'build':
@@ -6627,9 +6613,6 @@ AWS.SequentialExecutor = AWS.util.inherit({
6627
6613
 
6628
6614
  emit: function emit(eventName, eventArgs, doneCallback) {
6629
6615
  if (!doneCallback) doneCallback = this.unhandledErrorCallback;
6630
- if (domain && this.domain instanceof domain.Domain)
6631
- this.domain.enter();
6632
-
6633
6616
  var listeners = this.listeners(eventName);
6634
6617
  var count = listeners.length;
6635
6618
  this.callListeners(listeners, eventArgs, doneCallback);
@@ -6640,37 +6623,25 @@ AWS.SequentialExecutor = AWS.util.inherit({
6640
6623
  callListeners: function callListeners(listeners, args, doneCallback) {
6641
6624
  if (listeners.length === 0) {
6642
6625
  doneCallback.call(this);
6643
- if (domain && this.domain instanceof domain.Domain)
6644
- this.domain.exit();
6645
- } else {
6646
- var listener = listeners.shift();
6647
- if (listener._isAsync) {
6648
-
6649
- var self = this;
6650
- var callNextListener = function(err) {
6651
- if (err) {
6652
- doneCallback.call(self, err);
6653
- if (domain && self.domain instanceof domain.Domain)
6654
- self.domain.exit();
6655
- } else {
6656
- self.callListeners(listeners, args, doneCallback);
6657
- }
6658
- };
6659
- listener.apply(this, args.concat([callNextListener]));
6660
-
6661
- } else {
6662
-
6663
- try {
6664
- listener.apply(this, args);
6665
- this.callListeners(listeners, args, doneCallback);
6666
- } catch (err) {
6667
- if (err._hardError) throw err;
6626
+ return;
6627
+ }
6668
6628
 
6669
- doneCallback.call(this, err);
6670
- if (domain && this.domain instanceof domain.Domain)
6671
- this.domain.exit();
6629
+ var self = this, listener = listeners.shift();
6630
+ if (listener._isAsync) { // asynchronous listener
6631
+ var callNextListener = function(err) {
6632
+ if (err) {
6633
+ doneCallback.call(self, err);
6634
+ } else {
6635
+ self.callListeners(listeners, args, doneCallback);
6672
6636
  }
6673
-
6637
+ };
6638
+ listener.apply(self, args.concat([callNextListener]));
6639
+ } else { // synchronous listener
6640
+ try {
6641
+ listener.apply(self, args);
6642
+ self.callListeners(listeners, args, doneCallback);
6643
+ } catch (err) {
6644
+ doneCallback.call(self, err);
6674
6645
  }
6675
6646
  }
6676
6647
  },
@@ -7716,9 +7687,10 @@ AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {
7716
7687
  },
7717
7688
 
7718
7689
  unsignableHeaders: ['authorization', 'content-type', 'content-length',
7719
- 'user-agent', expiresHeader, 'x-amz-user-agent', 'x-amz-content-sha256'],
7690
+ 'user-agent', expiresHeader],
7720
7691
 
7721
7692
  isSignableHeader: function isSignableHeader(key) {
7693
+ if (key.toLowerCase().indexOf('x-amz-') === 0) return true;
7722
7694
  return this.unsignableHeaders.indexOf(key) < 0;
7723
7695
  },
7724
7696
 
@@ -7950,6 +7922,24 @@ var util = {
7950
7922
  }
7951
7923
  },
7952
7924
 
7925
+ fn: {
7926
+ noop: function(){},
7927
+
7928
+
7929
+ makeAsync: function makeAsync(fn, expectedArgs) {
7930
+ if (expectedArgs && expectedArgs <= fn.length) {
7931
+ return fn;
7932
+ }
7933
+
7934
+ return function() {
7935
+ var args = Array.prototype.slice.call(arguments, 0);
7936
+ var callback = args.pop();
7937
+ var result = fn.apply(null, args);
7938
+ callback(result);
7939
+ };
7940
+ }
7941
+ },
7942
+
7953
7943
  jamespath: {
7954
7944
  query: function query(expression, data) {
7955
7945
  if (!data) return [];
@@ -8047,7 +8037,7 @@ var util = {
8047
8037
 
8048
8038
  parseTimestamp: function parseTimestamp(value) {
8049
8039
  if (typeof value === 'number') { // unix timestamp (number)
8050
- return new Date(value);
8040
+ return new Date(value * 1000);
8051
8041
  } else if (value.match(/^\d+$/)) { // unix timestamp
8052
8042
  return new Date(value * 1000);
8053
8043
  } else if (value.match(/^\d{4}/)) { // iso8601