diff --git a/dist/lib/filters/rpRegistrationFilter.js b/dist/lib/filters/rpRegistrationFilter.js
index bc4ca19..a5c6ac8 100644
--- a/dist/lib/filters/rpRegistrationFilter.js
+++ b/dist/lib/filters/rpRegistrationFilter.js
@@ -252,8 +252,8 @@ var RPRegistrationFilter = /** @class */ (function (_super) {
err_5 = _a.sent();
return [2 /*return*/, Promise.reject(err_5)];
case 4:
- obj = res.bodyAsJson;
- if (res.bodyAsJson && obj.registrationState && obj.registrationState === "Registered") {
+ obj = res.parsedBody;
+ if (res.parsedBody && obj.registrationState && obj.registrationState === "Registered") {
result = true;
}
else {
diff --git a/dist/lib/httpOperationResponse.js b/dist/lib/httpOperationResponse.js
index 5fc73a4..cbc6cf3 100644
--- a/dist/lib/httpOperationResponse.js
+++ b/dist/lib/httpOperationResponse.js
@@ -4,7 +4,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Wrapper object for http request and response. Deserialized object is stored in
- * the `bodyAsJson` property when the response body is received in JSON.
+ * the `parsedBody` property when the response body is received in JSON or XML.
* @class
* Initializes a new instance of the HttpOperationResponse class.
* @constructor
@@ -25,7 +25,7 @@ var HttpOperationResponse = /** @class */ (function () {
this.response = response;
/* tslint:disable:no-null-keyword */
this.bodyAsText = null;
- this.bodyAsJson = null;
+ this.parsedBody = null;
}
return HttpOperationResponse;
}());
diff --git a/dist/lib/httpOperationResponse.js.map b/dist/lib/httpOperationResponse.js.map
index 1d62bbe..2913e54 100644
--- a/dist/lib/httpOperationResponse.js.map
+++ b/dist/lib/httpOperationResponse.js.map
@@ -1 +1 @@
-{"version":3,"file":"httpOperationResponse.js","sourceRoot":"","sources":["../../lib/httpOperationResponse.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,+FAA+F;;AAI/F;;;;;;GAMG;AACH;IAkBE,+BAAY,OAAoB,EAAE,QAAkB;QAClD;;;;WAIG;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB;;;;WAIG;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,oCAAoC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AApCD,IAoCC;AApCY,sDAAqB"}
\ No newline at end of file
+{"version":3,"file":"httpOperationResponse.js","sourceRoot":"","sources":["../../lib/httpOperationResponse.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,+FAA+F;;AAI/F;;;;;;GAMG;AACH;IAmBE,+BAAY,OAAoB,EAAE,QAAkB;QAClD;;;;WAIG;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB;;;;WAIG;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,oCAAoC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IACH,4BAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,sDAAqB"}
\ No newline at end of file
diff --git a/dist/lib/msRest.js b/dist/lib/msRest.js
index 2493e98..174b83a 100644
--- a/dist/lib/msRest.js
+++ b/dist/lib/msRest.js
@@ -45,6 +45,8 @@ exports.isValidUuid = utils_1.isValidUuid;
exports.dispatchRequest = utils_1.dispatchRequest;
exports.applyMixins = utils_1.applyMixins;
exports.isNode = utils_1.isNode;
+exports.stringifyXML = utils_1.stringifyXML;
+exports.prepareXMLRootList = utils_1.prepareXMLRootList;
// Credentials
var tokenCredentials_1 = require("./credentials/tokenCredentials");
exports.TokenCredentials = tokenCredentials_1.TokenCredentials;
diff --git a/dist/lib/msRest.js.map b/dist/lib/msRest.js.map
index dabfde2..23f1d5e 100644
--- a/dist/lib/msRest.js.map
+++ b/dist/lib/msRest.js.map
@@ -1 +1 @@
-{"version":3,"file":"msRest.js","sourceRoot":"","sources":["../../lib/msRest.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,+FAA+F;;AAE/F,6CAAoH;AAmClH,sBAnCO,yBAAW,CAmCP;AAlCb,iEAAgE;AAkCG,gCAlC1D,6CAAqB,CAkC0D;AAjCxF,yCAAwC;AAoCA,oBApC/B,qBAAS,CAoC+B;AAnCjD,iDAAsE;AAgCoB,wBAhCjF,6BAAa,CAgCiF;AA/BvG,8CAA6C;AA+B4D,oBA/BhG,qBAAS,CA+BgG;AA9BlH,qDAAqE;AA8B+C,0BA9B3G,iCAAe,CA8B2G;AA7BnI,iDAAgD;AA8BoE,oBA9B3G,qBAAS,CA8B2G;AA7B7H,mDAAkD;AA6BsD,qBA7B/F,uBAAU,CA6B+F;AA5BlH,uFAAsF;AA4B+D,uCA5B5I,2DAA4B,CA4B4I;AA3BjL,uFAAsF;AA4BpF,uCA5BO,2DAA4B,CA4BP;AA3B9B,2DAA0D;AA6BH,yBA7B9C,+BAAc,CA6B8C;AA5BrE,yDAAwD;AA0BxB,wBA1BvB,6BAAa,CA0BuB;AAzB7C,yEAAwE;AAyBzB,gCAzBtC,6CAAqB,CAyBsC;AAxBpE,2CAIsB;AAgBsE,qBAlBvE,uBAAU,CAkBuE;AACvC,qBAlB7C,uBAAU,CAkB6C;AAAE,0BAlB1B,4BAAe,CAkB0B;AAhB1F,sCAKsB;AAcgD,uBAlBpE,oBAAY,CAkBoE;AAAE,wBAlBpE,qBAAa,CAkBoE;AAAE,gBAlBpE,aAAK,CAkBoE;AAAE,sCAjBxG,mCAA2B,CAiBwG;AACnI,uBAlB6B,oBAAY,CAkB7B;AAAe,oBAlBgB,iBAAS,CAkBhB;AAAmE,4BAjBvG,yBAAiB,CAiBuG;AACxH,mCAlBmB,gCAAwB,CAkBnB;AADV,sBAjB+B,mBAAW,CAiB/B;AACW,0BAlBsB,uBAAe,CAkBtB;AAAkB,sBAjBrE,mBAAW,CAiBqE;AAAE,iBAjBrE,cAAM,CAiBqE;AAd1F,cAAc;AACd,mEAAkE;AAQ0B,2BARnF,mCAAgB,CAQmF;AAP5G,+FAA8F;AAS5F,yCATO,+DAA8B,CASP;AARhC,qEAA6F;AAQ3D,4BARzB,qCAAiB,CAQyB;AANnD,oCAAsC;AASV,4BAAQ"}
\ No newline at end of file
+{"version":3,"file":"msRest.js","sourceRoot":"","sources":["../../lib/msRest.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,+FAA+F;;AAE/F,6CAAoH;AAmClH,sBAnCO,yBAAW,CAmCP;AAlCb,iEAAgE;AAkCG,gCAlC1D,6CAAqB,CAkC0D;AAjCxF,yCAAwC;AAoCA,oBApC/B,qBAAS,CAoC+B;AAnCjD,iDAAsE;AAgCoB,wBAhCjF,6BAAa,CAgCiF;AA/BvG,8CAA6C;AA+B4D,oBA/BhG,qBAAS,CA+BgG;AA9BlH,qDAAqE;AA8B+C,0BA9B3G,iCAAe,CA8B2G;AA7BnI,iDAAgD;AA8BoE,oBA9B3G,qBAAS,CA8B2G;AA7B7H,mDAAkD;AA6BsD,qBA7B/F,uBAAU,CA6B+F;AA5BlH,uFAAsF;AA4B+D,uCA5B5I,2DAA4B,CA4B4I;AA3BjL,uFAAsF;AA4BpF,uCA5BO,2DAA4B,CA4BP;AA3B9B,2DAA0D;AA6BH,yBA7B9C,+BAAc,CA6B8C;AA5BrE,yDAAwD;AA0BxB,wBA1BvB,6BAAa,CA0BuB;AAzB7C,yEAAwE;AAyBzB,gCAzBtC,6CAAqB,CAyBsC;AAxBpE,2CAIsB;AAgBsE,qBAlBvE,uBAAU,CAkBuE;AACvC,qBAlB7C,uBAAU,CAkB6C;AAAE,0BAlB1B,4BAAe,CAkB0B;AAhB1F,sCAKsB;AAcgD,uBAlBpE,oBAAY,CAkBoE;AAAE,wBAlBpE,qBAAa,CAkBoE;AAAE,gBAlBpE,aAAK,CAkBoE;AAAE,sCAjBxG,mCAA2B,CAiBwG;AACnI,uBAlB6B,oBAAY,CAkB7B;AAAe,oBAlBgB,iBAAS,CAkBhB;AAAmE,4BAjBvG,yBAAiB,CAiBuG;AACxH,mCAlBmB,gCAAwB,CAkBnB;AADV,sBAjB+B,mBAAW,CAiB/B;AACW,0BAlBsB,uBAAe,CAkBtB;AAAkB,sBAjBrE,mBAAW,CAiBqE;AAAE,iBAjBrE,cAAM,CAiBqE;AAAE,uBAjBrE,oBAAY,CAiBqE;AAAE,6BAjBrE,0BAAkB,CAiBqE;AAd5H,cAAc;AACd,mEAAkE;AAQ0B,2BARnF,mCAAgB,CAQmF;AAP5G,+FAA8F;AAS5F,yCATO,+DAA8B,CASP;AARhC,qEAA6F;AAQ3D,4BARzB,qCAAiB,CAQyB;AANnD,oCAAsC;AASV,4BAAQ"}
\ No newline at end of file
diff --git a/dist/lib/serializer.js b/dist/lib/serializer.js
index c62a7ea..1b676c0 100644
--- a/dist/lib/serializer.js
+++ b/dist/lib/serializer.js
@@ -4,10 +4,11 @@
Object.defineProperty(exports, "__esModule", { value: true });
var utils = require("./util/utils");
var moment_1 = require("moment");
-var isBuffer = require("is-buffer");
var isStream = require("is-stream");
+var isBuffer = require("is-buffer");
var Serializer = /** @class */ (function () {
- function Serializer(mappers) {
+ function Serializer(mappers, isXML) {
+ this.isXML = isXML;
this.modelMappers = mappers;
}
Serializer.prototype.validateConstraints = function (mapper, value, objectName) {
@@ -305,45 +306,69 @@ var Serializer = /** @class */ (function () {
("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for object \"" + objectName + "\"."));
}
}
- for (var key in modelProps) {
- if (modelProps.hasOwnProperty(key)) {
- var paths = this.splitSerializeName(modelProps[key].serializedName);
- var propName = paths.pop();
- var parentObject = payload;
- for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
- var pathName = paths_1[_i];
+ for (var _i = 0, _a = Object.keys(modelProps); _i < _a.length; _i++) {
+ var key = _a[_i];
+ var propertyMapper = modelProps[key];
+ var propName = void 0;
+ var parentObject = payload;
+ if (this.isXML) {
+ if (propertyMapper.xmlIsWrapped) {
+ propName = propertyMapper.xmlName;
+ }
+ else {
+ propName = propertyMapper.xmlElementName || propertyMapper.xmlName;
+ }
+ }
+ else {
+ var paths = this.splitSerializeName(propertyMapper.serializedName);
+ propName = paths.pop();
+ for (var _b = 0, paths_1 = paths; _b < paths_1.length; _b++) {
+ var pathName = paths_1[_b];
var childObject = parentObject[pathName];
if ((childObject === null || childObject === undefined) && (object[key] !== null && object[key] !== undefined)) {
parentObject[pathName] = {};
}
parentObject = parentObject[pathName];
}
- // make sure required properties of the CompositeType are present
- if (modelProps[key].required && !modelProps[key].isConstant) {
- if (object[key] === null || object[key] === undefined) {
- throw new Error(key + "\" cannot be null or undefined in \"" + objectName + "\".");
+ }
+ // make sure required properties of the CompositeType are present
+ if (propertyMapper.required && !propertyMapper.isConstant) {
+ if (object[key] == undefined) {
+ throw new Error(key + "\" cannot be null or undefined in \"" + objectName + "\".");
+ }
+ }
+ // make sure that readOnly properties are not sent on the wire
+ if (propertyMapper.readOnly) {
+ continue;
+ }
+ // serialize the property if it is present in the provided object instance
+ if (((parentObject !== null && parentObject !== undefined) && (propertyMapper.defaultValue !== null && propertyMapper.defaultValue !== undefined)) ||
+ (object[key] !== null && object[key] !== undefined)) {
+ var propertyObjectName = propertyMapper.serializedName !== ""
+ ? objectName + "." + propertyMapper.serializedName
+ : objectName;
+ var serializedValue = this.serialize(propertyMapper, object[key], propertyObjectName);
+ if (propName !== null && propName !== undefined) {
+ if (propertyMapper.xmlIsAttribute) {
+ // $ is the key attributes are kept under in xml2js.
+ // This keeps things simple while preventing name collision
+ // with names in user documents.
+ parentObject.$ = parentObject.$ || {};
+ parentObject.$[propName] = serializedValue;
}
- }
- // make sure that readOnly properties are not sent on the wire
- if (modelProps[key].readOnly) {
- continue;
- }
- // serialize the property if it is present in the provided object instance
- if (((parentObject !== null && parentObject !== undefined) && (modelProps[key].defaultValue !== null && modelProps[key].defaultValue !== undefined)) ||
- (object[key] !== null && object[key] !== undefined)) {
- var propertyObjectName = objectName;
- if (modelProps[key].serializedName !== "")
- propertyObjectName = objectName + "." + modelProps[key].serializedName;
- var propertyMapper = modelProps[key];
- var serializedValue = this.serialize(propertyMapper, object[key], propertyObjectName);
- if (propName !== null && propName !== undefined)
+ else if (propertyMapper.xmlIsWrapped) {
+ parentObject[propName] = (_c = {}, _c[propertyMapper.xmlElementName] = serializedValue, _c);
+ }
+ else {
parentObject[propName] = serializedValue;
+ }
}
}
}
return payload;
}
return object;
+ var _c;
};
/**
* Serialize the given object based on its metadata defined in the mapper
@@ -420,57 +445,75 @@ var Serializer = /** @class */ (function () {
name: "Composite"
}
};
- if (responseBody !== null && responseBody !== undefined) {
- var modelProps = mapper.type.modelProperties;
+ responseBody = responseBody || {};
+ var modelProps = mapper.type.modelProperties;
+ if (!modelProps) {
+ if (!mapper.type.className) {
+ throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper) + "\"");
+ }
+ // get the mapper if modelProperties of the CompositeType is not present and
+ // then get the modelProperties from it.
+ modelMapper = this.modelMappers[mapper.type.className];
+ if (!modelMapper) {
+ throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"");
+ }
+ modelProps = modelMapper.type.modelProperties;
if (!modelProps) {
- if (!mapper.type.className) {
- throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper) + "\"");
- }
- // get the mapper if modelProperties of the CompositeType is not present and
- // then get the modelProperties from it.
- modelMapper = this.modelMappers[mapper.type.className];
- if (!modelMapper) {
- throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"");
- }
- modelProps = modelMapper.type.modelProperties;
- if (!modelProps) {
- throw new Error("modelProperties cannot be null or undefined in the " +
- ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for responseBody \"" + objectName + "\"."));
- }
+ throw new Error("modelProperties cannot be null or undefined in the " +
+ ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for responseBody \"" + objectName + "\"."));
}
- for (var key in modelProps) {
- if (modelProps.hasOwnProperty(key)) {
- var paths = this.splitSerializeName(modelProps[key].serializedName);
- // deserialize the property if it is present in the provided responseBody instance
- var propertyInstance = void 0;
- var res = responseBody;
- // traversing the object step by step.
- for (var _i = 0, paths_2 = paths; _i < paths_2.length; _i++) {
- var item = paths_2[_i];
- if (!res)
- break;
- res = res[item];
- }
- propertyInstance = res;
- var propertyObjectName = objectName;
- if (modelProps[key].serializedName !== "")
- propertyObjectName = objectName + "." + modelProps[key].serializedName;
- var propertyMapper = modelProps[key];
- var serializedValue = void 0;
- // paging
- if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
- propertyInstance = responseBody[key];
- instance = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
- }
- else if (propertyInstance !== null && propertyInstance !== undefined) {
- serializedValue = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
- instance[key] = serializedValue;
- }
- }
- }
- return instance;
}
- return responseBody;
+ for (var _i = 0, _a = Object.keys(modelProps); _i < _a.length; _i++) {
+ var key = _a[_i];
+ var propertyMapper = modelProps[key];
+ var propertyObjectName = objectName;
+ if (propertyMapper.serializedName !== "") {
+ propertyObjectName = objectName + "." + propertyMapper.serializedName;
+ }
+ if (this.isXML) {
+ if (propertyMapper.xmlIsAttribute && responseBody.$) {
+ instance[key] = this.deserialize(propertyMapper, responseBody.$[propertyMapper.xmlName], propertyObjectName);
+ }
+ else {
+ var propertyName = propertyMapper.xmlElementName || propertyMapper.xmlName;
+ var unwrappedProperty = responseBody[propertyName];
+ if (propertyMapper.xmlIsWrapped) {
+ unwrappedProperty = responseBody[propertyMapper.xmlName];
+ unwrappedProperty = unwrappedProperty && unwrappedProperty[propertyMapper.xmlElementName];
+ if (unwrappedProperty === undefined) {
+ // undefined means a wrapped list was empty
+ unwrappedProperty = [];
+ }
+ }
+ instance[key] = this.deserialize(propertyMapper, unwrappedProperty, propertyObjectName);
+ }
+ }
+ else {
+ var paths = this.splitSerializeName(modelProps[key].serializedName);
+ // deserialize the property if it is present in the provided responseBody instance
+ var propertyInstance = void 0;
+ var res = responseBody;
+ // traversing the object step by step.
+ for (var _b = 0, paths_2 = paths; _b < paths_2.length; _b++) {
+ var item = paths_2[_b];
+ if (!res)
+ break;
+ res = res[item];
+ }
+ propertyInstance = res;
+ var serializedValue = void 0;
+ // paging
+ if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
+ propertyInstance = responseBody[key];
+ instance = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
+ }
+ else if (propertyInstance !== null && propertyInstance !== undefined) {
+ serializedValue = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
+ instance[key] = serializedValue;
+ }
+ }
+ }
+ return instance;
};
Serializer.prototype.deserializeDictionaryType = function (mapper, responseBody, objectName) {
/*jshint validthis: true */
@@ -496,6 +539,10 @@ var Serializer = /** @class */ (function () {
("mapper and it must of type \"object\" in " + objectName));
}
if (responseBody) {
+ if (!Array.isArray(responseBody)) {
+ // xml2js will interpret a single element array as just the element, so force it to be an array
+ responseBody = [responseBody];
+ }
var tempArray = [];
for (var i = 0; i < responseBody.length; i++) {
tempArray[i] = this.deserialize(mapper.type.element, responseBody[i], objectName);
@@ -516,15 +563,51 @@ var Serializer = /** @class */ (function () {
* @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object
*/
Serializer.prototype.deserialize = function (mapper, responseBody, objectName) {
- if (responseBody === null || responseBody === undefined)
+ if (responseBody == undefined) {
+ if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) {
+ // Edge case for empty XML non-wrapped lists. xml2js can't distinguish
+ // between the list being empty versus being missing,
+ // so let's do the more user-friendly thing and return an empty list.
+ responseBody = [];
+ }
+ else {
+ return responseBody;
+ }
return responseBody;
+ }
var payload;
var mapperType = mapper.type.name;
- if (!objectName)
+ if (!objectName) {
objectName = mapper.serializedName;
- if (mapperType.match(/^Sequence$/ig) !== null)
- payload = [];
- if (mapperType.match(/^(Number|String|Boolean|Enum|Object|Stream|Uuid|any)$/ig) !== null) {
+ }
+ if (mapperType.match(/^Number$/ig) !== null) {
+ if (this.isXML) {
+ payload = parseFloat(responseBody);
+ if (isNaN(payload)) {
+ payload = responseBody;
+ }
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else if (mapperType.match(/^Boolean$/ig) !== null) {
+ if (this.isXML) {
+ if (responseBody === "true") {
+ payload = true;
+ }
+ else if (responseBody === "false") {
+ payload = false;
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|any)$/ig) !== null) {
payload = responseBody;
}
else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/ig) !== null) {
@@ -551,8 +634,9 @@ var Serializer = /** @class */ (function () {
else if (mapperType.match(/^Composite$/ig) !== null) {
payload = this.deserializeCompositeType(mapper, responseBody, objectName);
}
- if (mapper.isConstant)
+ if (mapper.isConstant) {
payload = mapper.defaultValue;
+ }
return payload;
};
Serializer.prototype.getPolymorphicMapper = function (mapper, object, objectName, mode) {
diff --git a/dist/lib/serializer.js.map b/dist/lib/serializer.js.map
index f95cbac..464d741 100644
--- a/dist/lib/serializer.js.map
+++ b/dist/lib/serializer.js.map
@@ -1 +1 @@
-{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../lib/serializer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../lib/serializer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/lib/util/utils.js b/dist/lib/util/utils.js
index d238ae0..295c4c8 100644
--- a/dist/lib/util/utils.js
+++ b/dist/lib/util/utils.js
@@ -43,6 +43,7 @@ var webResource_1 = require("../webResource");
var constants_1 = require("./constants");
var restError_1 = require("../restError");
var httpOperationResponse_1 = require("../httpOperationResponse");
+var xml2js = require("xml2js");
/**
* Provides the fetch() method based on the environment.
* @returns {fetch} fetch - The fetch() method available in the environment to make requests
@@ -277,13 +278,35 @@ function promiseToServiceCallback(promise) {
}
return function (cb) {
promise.then(function (data) {
- process.nextTick(cb, undefined, data.bodyAsJson, data.request, data.response);
+ process.nextTick(cb, undefined, data.parsedBody, data.request, data.response);
}, function (err) {
process.nextTick(cb, err);
});
};
}
exports.promiseToServiceCallback = promiseToServiceCallback;
+var XML2JS_PARSER_OPTS = {
+ explicitArray: false,
+ explicitCharkey: false,
+ explicitRoot: false
+};
+function stringifyXML(obj, opts) {
+ var builder = new xml2js.Builder({
+ explicitArray: false,
+ explicitCharkey: false,
+ rootName: (opts || {}).rootName
+ });
+ return builder.buildObject(obj);
+}
+exports.stringifyXML = stringifyXML;
+function prepareXMLRootList(obj, elementName) {
+ if (!Array.isArray(obj)) {
+ obj = [obj];
+ }
+ return _a = {}, _a[elementName] = obj, _a;
+ var _a;
+}
+exports.prepareXMLRootList = prepareXMLRootList;
/**
* Sends the request and returns the received response.
* @param {WebResource} options - The request to be sent.
@@ -291,9 +314,9 @@ exports.promiseToServiceCallback = promiseToServiceCallback;
*/
function dispatchRequest(options) {
return __awaiter(this, void 0, void 0, function () {
- var formData, requestForm_1, appendFormValue, formKey, formValue, j, res, err_1, operationResponse, _a, err_2, msg, errCode, e, msg, errCode, e;
- return __generator(this, function (_b) {
- switch (_b.label) {
+ var formData, requestForm_1, appendFormValue, formKey, formValue, j, res, err_1, operationResponse, _a, err_2, msg, errCode, e, contentType, xmlParser_1, parseString, _b, err_3, msg, errCode, e;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
case 0:
if (!options) {
return [2 /*return*/, Promise.reject(new Error("options (WebResource) cannot be null or undefined and must be of type object."))];
@@ -329,47 +352,65 @@ function dispatchRequest(options) {
options.headers["Content-Type"] = "multipart/form-data; boundary=" + requestForm_1.getBoundary();
}
}
- _b.label = 1;
+ _c.label = 1;
case 1:
- _b.trys.push([1, 3, , 4]);
+ _c.trys.push([1, 3, , 4]);
return [4 /*yield*/, exports.myFetch(options.url, options)];
case 2:
- res = _b.sent();
+ res = _c.sent();
return [3 /*break*/, 4];
case 3:
- err_1 = _b.sent();
+ err_1 = _c.sent();
return [2 /*return*/, Promise.reject(err_1)];
case 4:
operationResponse = new httpOperationResponse_1.HttpOperationResponse(options, res);
- if (!!options.rawResponse) return [3 /*break*/, 9];
- _b.label = 5;
+ if (!!options.rawResponse) return [3 /*break*/, 13];
+ _c.label = 5;
case 5:
- _b.trys.push([5, 7, , 8]);
+ _c.trys.push([5, 7, , 8]);
_a = operationResponse;
return [4 /*yield*/, res.text()];
case 6:
- _a.bodyAsText = _b.sent();
+ _a.bodyAsText = _c.sent();
return [3 /*break*/, 8];
case 7:
- err_2 = _b.sent();
+ err_2 = _c.sent();
msg = "Error \"" + err_2 + "\" occured while converting the raw response body into string.";
errCode = err_2.code || "RAWTEXT_CONVERSION_ERROR";
e = new restError_1.RestError(msg, errCode, res.status, options, res, res.body);
return [2 /*return*/, Promise.reject(e)];
case 8:
- try {
- if (operationResponse.bodyAsText) {
- operationResponse.bodyAsJson = JSON.parse(operationResponse.bodyAsText);
- }
- }
- catch (err) {
- msg = "Error \"" + err + "\" occured while executing JSON.parse on the response body - " + operationResponse.bodyAsText + ".";
- errCode = err.code || "JSON_PARSE_ERROR";
- e = new restError_1.RestError(msg, errCode, res.status, options, res, operationResponse.bodyAsText);
- return [2 /*return*/, Promise.reject(e)];
- }
- _b.label = 9;
- case 9: return [2 /*return*/, Promise.resolve(operationResponse)];
+ _c.trys.push([8, 12, , 13]);
+ if (!operationResponse.bodyAsText) return [3 /*break*/, 11];
+ contentType = res.headers.get("Content-Type");
+ if (!(contentType === "application/xml" || contentType === "text/xml")) return [3 /*break*/, 10];
+ xmlParser_1 = new xml2js.Parser(XML2JS_PARSER_OPTS);
+ parseString = new Promise(function (resolve, reject) {
+ xmlParser_1.parseString(operationResponse.bodyAsText, function (err, result) {
+ if (err) {
+ reject(err);
+ }
+ else {
+ resolve(result);
+ }
+ });
+ });
+ _b = operationResponse;
+ return [4 /*yield*/, parseString];
+ case 9:
+ _b.parsedBody = _c.sent();
+ return [3 /*break*/, 11];
+ case 10:
+ operationResponse.parsedBody = JSON.parse(operationResponse.bodyAsText);
+ _c.label = 11;
+ case 11: return [3 /*break*/, 13];
+ case 12:
+ err_3 = _c.sent();
+ msg = "Error \"" + err_3 + "\" occured while executing JSON.parse on the response body - " + operationResponse.bodyAsText + ".";
+ errCode = err_3.code || "JSON_PARSE_ERROR";
+ e = new restError_1.RestError(msg, errCode, res.status, options, res, operationResponse.bodyAsText);
+ return [2 /*return*/, Promise.reject(e)];
+ case 13: return [2 /*return*/, Promise.resolve(operationResponse)];
}
});
});
diff --git a/dist/lib/util/utils.js.map b/dist/lib/util/utils.js.map
index 9b0172f..c3feabf 100644
--- a/dist/lib/util/utils.js.map
+++ b/dist/lib/util/utils.js.map
@@ -1 +1 @@
-{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/util/utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/util/utils.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/msRestBundle.js b/msRestBundle.js
index 16d2bfd..3764c7e 100644
--- a/msRestBundle.js
+++ b/msRestBundle.js
@@ -61,13 +61,451 @@ var msRest =
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 17);
+/******/ return __webpack_require__(__webpack_require__.s = 53);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLProcessingInstruction, XMLRaw, XMLText, isEmpty, isFunction, isObject, ref,
+ hasProp = {}.hasOwnProperty;
+
+ ref = __webpack_require__(2), isObject = ref.isObject, isFunction = ref.isFunction, isEmpty = ref.isEmpty;
+
+ XMLElement = null;
+
+ XMLCData = null;
+
+ XMLComment = null;
+
+ XMLDeclaration = null;
+
+ XMLDocType = null;
+
+ XMLRaw = null;
+
+ XMLText = null;
+
+ XMLProcessingInstruction = null;
+
+ module.exports = XMLNode = (function() {
+ function XMLNode(parent) {
+ this.parent = parent;
+ if (this.parent) {
+ this.options = this.parent.options;
+ this.stringify = this.parent.stringify;
+ }
+ this.children = [];
+ if (!XMLElement) {
+ XMLElement = __webpack_require__(10);
+ XMLCData = __webpack_require__(11);
+ XMLComment = __webpack_require__(12);
+ XMLDeclaration = __webpack_require__(13);
+ XMLDocType = __webpack_require__(14);
+ XMLRaw = __webpack_require__(19);
+ XMLText = __webpack_require__(20);
+ XMLProcessingInstruction = __webpack_require__(21);
+ }
+ }
+
+ XMLNode.prototype.element = function(name, attributes, text) {
+ var childNode, item, j, k, key, lastChild, len, len1, ref1, val;
+ lastChild = null;
+ if (attributes == null) {
+ attributes = {};
+ }
+ attributes = attributes.valueOf();
+ if (!isObject(attributes)) {
+ ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
+ }
+ if (name != null) {
+ name = name.valueOf();
+ }
+ if (Array.isArray(name)) {
+ for (j = 0, len = name.length; j < len; j++) {
+ item = name[j];
+ lastChild = this.element(item);
+ }
+ } else if (isFunction(name)) {
+ lastChild = this.element(name.apply());
+ } else if (isObject(name)) {
+ for (key in name) {
+ if (!hasProp.call(name, key)) continue;
+ val = name[key];
+ if (isFunction(val)) {
+ val = val.apply();
+ }
+ if ((isObject(val)) && (isEmpty(val))) {
+ val = null;
+ }
+ if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) {
+ lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val);
+ } else if (!this.options.separateArrayItems && Array.isArray(val)) {
+ for (k = 0, len1 = val.length; k < len1; k++) {
+ item = val[k];
+ childNode = {};
+ childNode[key] = item;
+ lastChild = this.element(childNode);
+ }
+ } else if (isObject(val)) {
+ lastChild = this.element(key);
+ lastChild.element(val);
+ } else {
+ lastChild = this.element(key, val);
+ }
+ }
+ } else {
+ if (!this.options.ignoreDecorators && this.stringify.convertTextKey && name.indexOf(this.stringify.convertTextKey) === 0) {
+ lastChild = this.text(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertCDataKey && name.indexOf(this.stringify.convertCDataKey) === 0) {
+ lastChild = this.cdata(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertCommentKey && name.indexOf(this.stringify.convertCommentKey) === 0) {
+ lastChild = this.comment(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertRawKey && name.indexOf(this.stringify.convertRawKey) === 0) {
+ lastChild = this.raw(text);
+ } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && name.indexOf(this.stringify.convertPIKey) === 0) {
+ lastChild = this.instruction(name.substr(this.stringify.convertPIKey.length), text);
+ } else {
+ lastChild = this.node(name, attributes, text);
+ }
+ }
+ if (lastChild == null) {
+ throw new Error("Could not create any elements with: " + name);
+ }
+ return lastChild;
+ };
+
+ XMLNode.prototype.insertBefore = function(name, attributes, text) {
+ var child, i, removed;
+ if (this.isRoot) {
+ throw new Error("Cannot insert elements at root level");
+ }
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.element(name, attributes, text);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return child;
+ };
+
+ XMLNode.prototype.insertAfter = function(name, attributes, text) {
+ var child, i, removed;
+ if (this.isRoot) {
+ throw new Error("Cannot insert elements at root level");
+ }
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.element(name, attributes, text);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return child;
+ };
+
+ XMLNode.prototype.remove = function() {
+ var i, ref1;
+ if (this.isRoot) {
+ throw new Error("Cannot remove the root element");
+ }
+ i = this.parent.children.indexOf(this);
+ [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref1 = [])), ref1;
+ return this.parent;
+ };
+
+ XMLNode.prototype.node = function(name, attributes, text) {
+ var child, ref1;
+ if (name != null) {
+ name = name.valueOf();
+ }
+ attributes || (attributes = {});
+ attributes = attributes.valueOf();
+ if (!isObject(attributes)) {
+ ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
+ }
+ child = new XMLElement(this, name, attributes);
+ if (text != null) {
+ child.text(text);
+ }
+ this.children.push(child);
+ return child;
+ };
+
+ XMLNode.prototype.text = function(value) {
+ var child;
+ child = new XMLText(this, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLNode.prototype.cdata = function(value) {
+ var child;
+ child = new XMLCData(this, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLNode.prototype.comment = function(value) {
+ var child;
+ child = new XMLComment(this, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLNode.prototype.commentBefore = function(value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.comment(value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
+
+ XMLNode.prototype.commentAfter = function(value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.comment(value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
+
+ XMLNode.prototype.raw = function(value) {
+ var child;
+ child = new XMLRaw(this, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLNode.prototype.instruction = function(target, value) {
+ var insTarget, insValue, instruction, j, len;
+ if (target != null) {
+ target = target.valueOf();
+ }
+ if (value != null) {
+ value = value.valueOf();
+ }
+ if (Array.isArray(target)) {
+ for (j = 0, len = target.length; j < len; j++) {
+ insTarget = target[j];
+ this.instruction(insTarget);
+ }
+ } else if (isObject(target)) {
+ for (insTarget in target) {
+ if (!hasProp.call(target, insTarget)) continue;
+ insValue = target[insTarget];
+ this.instruction(insTarget, insValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ instruction = new XMLProcessingInstruction(this, target, value);
+ this.children.push(instruction);
+ }
+ return this;
+ };
+
+ XMLNode.prototype.instructionBefore = function(target, value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i);
+ child = this.parent.instruction(target, value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
+
+ XMLNode.prototype.instructionAfter = function(target, value) {
+ var child, i, removed;
+ i = this.parent.children.indexOf(this);
+ removed = this.parent.children.splice(i + 1);
+ child = this.parent.instruction(target, value);
+ Array.prototype.push.apply(this.parent.children, removed);
+ return this;
+ };
+
+ XMLNode.prototype.declaration = function(version, encoding, standalone) {
+ var doc, xmldec;
+ doc = this.document();
+ xmldec = new XMLDeclaration(doc, version, encoding, standalone);
+ if (doc.children[0] instanceof XMLDeclaration) {
+ doc.children[0] = xmldec;
+ } else {
+ doc.children.unshift(xmldec);
+ }
+ return doc.root() || doc;
+ };
+
+ XMLNode.prototype.doctype = function(pubID, sysID) {
+ var child, doc, doctype, i, j, k, len, len1, ref1, ref2;
+ doc = this.document();
+ doctype = new XMLDocType(doc, pubID, sysID);
+ ref1 = doc.children;
+ for (i = j = 0, len = ref1.length; j < len; i = ++j) {
+ child = ref1[i];
+ if (child instanceof XMLDocType) {
+ doc.children[i] = doctype;
+ return doctype;
+ }
+ }
+ ref2 = doc.children;
+ for (i = k = 0, len1 = ref2.length; k < len1; i = ++k) {
+ child = ref2[i];
+ if (child.isRoot) {
+ doc.children.splice(i, 0, doctype);
+ return doctype;
+ }
+ }
+ doc.children.push(doctype);
+ return doctype;
+ };
+
+ XMLNode.prototype.up = function() {
+ if (this.isRoot) {
+ throw new Error("The root node has no parent. Use doc() if you need to get the document object.");
+ }
+ return this.parent;
+ };
+
+ XMLNode.prototype.root = function() {
+ var node;
+ node = this;
+ while (node) {
+ if (node.isDocument) {
+ return node.rootObject;
+ } else if (node.isRoot) {
+ return node;
+ } else {
+ node = node.parent;
+ }
+ }
+ };
+
+ XMLNode.prototype.document = function() {
+ var node;
+ node = this;
+ while (node) {
+ if (node.isDocument) {
+ return node;
+ } else {
+ node = node.parent;
+ }
+ }
+ };
+
+ XMLNode.prototype.end = function(options) {
+ return this.document().end(options);
+ };
+
+ XMLNode.prototype.prev = function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ if (i < 1) {
+ throw new Error("Already at the first node");
+ }
+ return this.parent.children[i - 1];
+ };
+
+ XMLNode.prototype.next = function() {
+ var i;
+ i = this.parent.children.indexOf(this);
+ if (i === -1 || i === this.parent.children.length - 1) {
+ throw new Error("Already at the last node");
+ }
+ return this.parent.children[i + 1];
+ };
+
+ XMLNode.prototype.importDocument = function(doc) {
+ var clonedRoot;
+ clonedRoot = doc.root().clone();
+ clonedRoot.parent = this;
+ clonedRoot.isRoot = false;
+ this.children.push(clonedRoot);
+ return this;
+ };
+
+ XMLNode.prototype.ele = function(name, attributes, text) {
+ return this.element(name, attributes, text);
+ };
+
+ XMLNode.prototype.nod = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
+
+ XMLNode.prototype.txt = function(value) {
+ return this.text(value);
+ };
+
+ XMLNode.prototype.dat = function(value) {
+ return this.cdata(value);
+ };
+
+ XMLNode.prototype.com = function(value) {
+ return this.comment(value);
+ };
+
+ XMLNode.prototype.ins = function(target, value) {
+ return this.instruction(target, value);
+ };
+
+ XMLNode.prototype.doc = function() {
+ return this.document();
+ };
+
+ XMLNode.prototype.dec = function(version, encoding, standalone) {
+ return this.declaration(version, encoding, standalone);
+ };
+
+ XMLNode.prototype.dtd = function(pubID, sysID) {
+ return this.doctype(pubID, sysID);
+ };
+
+ XMLNode.prototype.e = function(name, attributes, text) {
+ return this.element(name, attributes, text);
+ };
+
+ XMLNode.prototype.n = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
+
+ XMLNode.prototype.t = function(value) {
+ return this.text(value);
+ };
+
+ XMLNode.prototype.d = function(value) {
+ return this.cdata(value);
+ };
+
+ XMLNode.prototype.c = function(value) {
+ return this.comment(value);
+ };
+
+ XMLNode.prototype.r = function(value) {
+ return this.raw(value);
+ };
+
+ XMLNode.prototype.i = function(target, value) {
+ return this.instruction(target, value);
+ };
+
+ XMLNode.prototype.u = function() {
+ return this.up();
+ };
+
+ XMLNode.prototype.importXMLBuilder = function(doc) {
+ return this.importDocument(doc);
+ };
+
+ return XMLNode;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports, __webpack_require__) {
+
"use strict";
/* WEBPACK VAR INJECTION */(function(process) {
// Copyright (c) Microsoft Corporation. All rights reserved.
@@ -108,12 +546,13 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
};
Object.defineProperty(exports, "__esModule", { value: true });
-var uuid = __webpack_require__(18);
-var FormData = __webpack_require__(21);
-var webResource_1 = __webpack_require__(3);
-var constants_1 = __webpack_require__(2);
-var restError_1 = __webpack_require__(7);
-var httpOperationResponse_1 = __webpack_require__(8);
+var uuid = __webpack_require__(54);
+var FormData = __webpack_require__(57);
+var webResource_1 = __webpack_require__(25);
+var constants_1 = __webpack_require__(7);
+var restError_1 = __webpack_require__(33);
+var httpOperationResponse_1 = __webpack_require__(34);
+var xml2js = __webpack_require__(58);
/**
* Provides the fetch() method based on the environment.
* @returns {fetch} fetch - The fetch() method available in the environment to make requests
@@ -126,7 +565,7 @@ function getFetch() {
window.navigator.userAgent && window.navigator.userAgent.indexOf("Edge/") === -1) {
return window.fetch.bind(window);
}
- return __webpack_require__(22)({ useCookie: true }).fetch;
+ return __webpack_require__(81)({ useCookie: true }).fetch;
}
exports.getFetch = getFetch;
/**
@@ -348,13 +787,35 @@ function promiseToServiceCallback(promise) {
}
return function (cb) {
promise.then(function (data) {
- process.nextTick(cb, undefined, data.bodyAsJson, data.request, data.response);
+ process.nextTick(cb, undefined, data.parsedBody, data.request, data.response);
}, function (err) {
process.nextTick(cb, err);
});
};
}
exports.promiseToServiceCallback = promiseToServiceCallback;
+var XML2JS_PARSER_OPTS = {
+ explicitArray: false,
+ explicitCharkey: false,
+ explicitRoot: false
+};
+function stringifyXML(obj, opts) {
+ var builder = new xml2js.Builder({
+ explicitArray: false,
+ explicitCharkey: false,
+ rootName: (opts || {}).rootName
+ });
+ return builder.buildObject(obj);
+}
+exports.stringifyXML = stringifyXML;
+function prepareXMLRootList(obj, elementName) {
+ if (!Array.isArray(obj)) {
+ obj = [obj];
+ }
+ return _a = {}, _a[elementName] = obj, _a;
+ var _a;
+}
+exports.prepareXMLRootList = prepareXMLRootList;
/**
* Sends the request and returns the received response.
* @param {WebResource} options - The request to be sent.
@@ -362,9 +823,9 @@ exports.promiseToServiceCallback = promiseToServiceCallback;
*/
function dispatchRequest(options) {
return __awaiter(this, void 0, void 0, function () {
- var formData, requestForm_1, appendFormValue, formKey, formValue, j, res, err_1, operationResponse, _a, err_2, msg, errCode, e, msg, errCode, e;
- return __generator(this, function (_b) {
- switch (_b.label) {
+ var formData, requestForm_1, appendFormValue, formKey, formValue, j, res, err_1, operationResponse, _a, err_2, msg, errCode, e, contentType, xmlParser_1, parseString, _b, err_3, msg, errCode, e;
+ return __generator(this, function (_c) {
+ switch (_c.label) {
case 0:
if (!options) {
return [2 /*return*/, Promise.reject(new Error("options (WebResource) cannot be null or undefined and must be of type object."))];
@@ -400,47 +861,65 @@ function dispatchRequest(options) {
options.headers["Content-Type"] = "multipart/form-data; boundary=" + requestForm_1.getBoundary();
}
}
- _b.label = 1;
+ _c.label = 1;
case 1:
- _b.trys.push([1, 3, , 4]);
+ _c.trys.push([1, 3, , 4]);
return [4 /*yield*/, exports.myFetch(options.url, options)];
case 2:
- res = _b.sent();
+ res = _c.sent();
return [3 /*break*/, 4];
case 3:
- err_1 = _b.sent();
+ err_1 = _c.sent();
return [2 /*return*/, Promise.reject(err_1)];
case 4:
operationResponse = new httpOperationResponse_1.HttpOperationResponse(options, res);
- if (!!options.rawResponse) return [3 /*break*/, 9];
- _b.label = 5;
+ if (!!options.rawResponse) return [3 /*break*/, 13];
+ _c.label = 5;
case 5:
- _b.trys.push([5, 7, , 8]);
+ _c.trys.push([5, 7, , 8]);
_a = operationResponse;
return [4 /*yield*/, res.text()];
case 6:
- _a.bodyAsText = _b.sent();
+ _a.bodyAsText = _c.sent();
return [3 /*break*/, 8];
case 7:
- err_2 = _b.sent();
+ err_2 = _c.sent();
msg = "Error \"" + err_2 + "\" occured while converting the raw response body into string.";
errCode = err_2.code || "RAWTEXT_CONVERSION_ERROR";
e = new restError_1.RestError(msg, errCode, res.status, options, res, res.body);
return [2 /*return*/, Promise.reject(e)];
case 8:
- try {
- if (operationResponse.bodyAsText) {
- operationResponse.bodyAsJson = JSON.parse(operationResponse.bodyAsText);
- }
- }
- catch (err) {
- msg = "Error \"" + err + "\" occured while executing JSON.parse on the response body - " + operationResponse.bodyAsText + ".";
- errCode = err.code || "JSON_PARSE_ERROR";
- e = new restError_1.RestError(msg, errCode, res.status, options, res, operationResponse.bodyAsText);
- return [2 /*return*/, Promise.reject(e)];
- }
- _b.label = 9;
- case 9: return [2 /*return*/, Promise.resolve(operationResponse)];
+ _c.trys.push([8, 12, , 13]);
+ if (!operationResponse.bodyAsText) return [3 /*break*/, 11];
+ contentType = res.headers.get("Content-Type");
+ if (!(contentType === "application/xml" || contentType === "text/xml")) return [3 /*break*/, 10];
+ xmlParser_1 = new xml2js.Parser(XML2JS_PARSER_OPTS);
+ parseString = new Promise(function (resolve, reject) {
+ xmlParser_1.parseString(operationResponse.bodyAsText, function (err, result) {
+ if (err) {
+ reject(err);
+ }
+ else {
+ resolve(result);
+ }
+ });
+ });
+ _b = operationResponse;
+ return [4 /*yield*/, parseString];
+ case 9:
+ _b.parsedBody = _c.sent();
+ return [3 /*break*/, 11];
+ case 10:
+ operationResponse.parsedBody = JSON.parse(operationResponse.bodyAsText);
+ _c.label = 11;
+ case 11: return [3 /*break*/, 13];
+ case 12:
+ err_3 = _c.sent();
+ msg = "Error \"" + err_3 + "\" occured while executing JSON.parse on the response body - " + operationResponse.bodyAsText + ".";
+ errCode = err_3.code || "JSON_PARSE_ERROR";
+ e = new restError_1.RestError(msg, errCode, res.status, options, res, operationResponse.bodyAsText);
+ return [2 /*return*/, Promise.reject(e)];
+ case 13: return [2 /*return*/, Promise.resolve(operationResponse)];
}
});
});
@@ -460,10 +939,89 @@ function applyMixins(targetCtor, sourceCtors) {
}
exports.applyMixins = applyMixins;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))
/***/ }),
-/* 1 */
+/* 2 */
+/***/ (function(module, exports) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var assign, isArray, isEmpty, isFunction, isObject, isPlainObject,
+ slice = [].slice,
+ hasProp = {}.hasOwnProperty;
+
+ assign = function() {
+ var i, key, len, source, sources, target;
+ target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];
+ if (isFunction(Object.assign)) {
+ Object.assign.apply(null, arguments);
+ } else {
+ for (i = 0, len = sources.length; i < len; i++) {
+ source = sources[i];
+ if (source != null) {
+ for (key in source) {
+ if (!hasProp.call(source, key)) continue;
+ target[key] = source[key];
+ }
+ }
+ }
+ }
+ return target;
+ };
+
+ isFunction = function(val) {
+ return !!val && Object.prototype.toString.call(val) === '[object Function]';
+ };
+
+ isObject = function(val) {
+ var ref;
+ return !!val && ((ref = typeof val) === 'function' || ref === 'object');
+ };
+
+ isArray = function(val) {
+ if (isFunction(Array.isArray)) {
+ return Array.isArray(val);
+ } else {
+ return Object.prototype.toString.call(val) === '[object Array]';
+ }
+ };
+
+ isEmpty = function(val) {
+ var key;
+ if (isArray(val)) {
+ return !val.length;
+ } else {
+ for (key in val) {
+ if (!hasProp.call(val, key)) continue;
+ return false;
+ }
+ return true;
+ }
+ };
+
+ isPlainObject = function(val) {
+ var ctor, proto;
+ return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
+ };
+
+ module.exports.assign = assign;
+
+ module.exports.isFunction = isFunction;
+
+ module.exports.isObject = isObject;
+
+ module.exports.isArray = isArray;
+
+ module.exports.isEmpty = isEmpty;
+
+ module.exports.isPlainObject = isPlainObject;
+
+}).call(this);
+
+
+/***/ }),
+/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -486,7 +1044,354 @@ exports.BaseFilter = BaseFilter;
/***/ }),
-/* 2 */
+/* 4 */
+/***/ (function(module, exports) {
+
+var g;
+
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
+
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || Function("return this")() || (1,eval)("this");
+} catch(e) {
+ // This works if the window reference is available
+ if(typeof window === "object")
+ g = window;
+}
+
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
+
+module.exports = g;
+
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// a duplex stream is just a stream that is both readable and writable.
+// Since JS doesn't have multiple prototypal inheritance, this class
+// prototypally inherits from Readable, and then parasitically from
+// Writable.
+
+
+
+/**/
+
+var pna = __webpack_require__(23);
+/**/
+
+/**/
+var objectKeys = Object.keys || function (obj) {
+ var keys = [];
+ for (var key in obj) {
+ keys.push(key);
+ }return keys;
+};
+/**/
+
+module.exports = Duplex;
+
+/**/
+var util = __webpack_require__(9);
+util.inherits = __webpack_require__(8);
+/**/
+
+var Readable = __webpack_require__(38);
+var Writable = __webpack_require__(29);
+
+util.inherits(Duplex, Readable);
+
+var keys = objectKeys(Writable.prototype);
+for (var v = 0; v < keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+}
+
+function Duplex(options) {
+ if (!(this instanceof Duplex)) return new Duplex(options);
+
+ Readable.call(this, options);
+ Writable.call(this, options);
+
+ if (options && options.readable === false) this.readable = false;
+
+ if (options && options.writable === false) this.writable = false;
+
+ this.allowHalfOpen = true;
+ if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
+
+ this.once('end', onend);
+}
+
+// the no-half-open enforcer
+function onend() {
+ // if we allow half-open state, or if the writable side ended,
+ // then we're ok.
+ if (this.allowHalfOpen || this._writableState.ended) return;
+
+ // no more data can be written.
+ // But allow more writes to happen in this tick.
+ pna.nextTick(onEndNT, this);
+}
+
+function onEndNT(self) {
+ self.end();
+}
+
+Object.defineProperty(Duplex.prototype, 'destroyed', {
+ get: function () {
+ if (this._readableState === undefined || this._writableState === undefined) {
+ return false;
+ }
+ return this._readableState.destroyed && this._writableState.destroyed;
+ },
+ set: function (value) {
+ // we ignore the value if the stream
+ // has not been initialized yet
+ if (this._readableState === undefined || this._writableState === undefined) {
+ return;
+ }
+
+ // backward compatibility, the user is explicitly
+ // managing destroyed
+ this._readableState.destroyed = value;
+ this._writableState.destroyed = value;
+ }
+});
+
+Duplex.prototype._destroy = function (err, cb) {
+ this.push(null);
+ this.end();
+
+ pna.nextTick(cb, err);
+};
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports) {
+
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+}
+
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+
+/***/ }),
+/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -570,7 +1475,1248 @@ exports.Constants = {
/***/ }),
-/* 3 */
+/* 8 */
+/***/ (function(module, exports) {
+
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ var TempCtor = function () {}
+ TempCtor.prototype = superCtor.prototype
+ ctor.prototype = new TempCtor()
+ ctor.prototype.constructor = ctor
+ }
+}
+
+
+/***/ }),
+/* 9 */
+/***/ (function(module, exports) {
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// NOTE: These type checking functions intentionally don't use `instanceof`
+// because it is fragile and can be easily faked with `Object.create()`.
+
+function isArray(arg) {
+ if (Array.isArray) {
+ return Array.isArray(arg);
+ }
+ return objectToString(arg) === '[object Array]';
+}
+exports.isArray = isArray;
+
+function isBoolean(arg) {
+ return typeof arg === 'boolean';
+}
+exports.isBoolean = isBoolean;
+
+function isNull(arg) {
+ return arg === null;
+}
+exports.isNull = isNull;
+
+function isNullOrUndefined(arg) {
+ return arg == null;
+}
+exports.isNullOrUndefined = isNullOrUndefined;
+
+function isNumber(arg) {
+ return typeof arg === 'number';
+}
+exports.isNumber = isNumber;
+
+function isString(arg) {
+ return typeof arg === 'string';
+}
+exports.isString = isString;
+
+function isSymbol(arg) {
+ return typeof arg === 'symbol';
+}
+exports.isSymbol = isSymbol;
+
+function isUndefined(arg) {
+ return arg === void 0;
+}
+exports.isUndefined = isUndefined;
+
+function isRegExp(re) {
+ return objectToString(re) === '[object RegExp]';
+}
+exports.isRegExp = isRegExp;
+
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
+}
+exports.isObject = isObject;
+
+function isDate(d) {
+ return objectToString(d) === '[object Date]';
+}
+exports.isDate = isDate;
+
+function isError(e) {
+ return (objectToString(e) === '[object Error]' || e instanceof Error);
+}
+exports.isError = isError;
+
+function isFunction(arg) {
+ return typeof arg === 'function';
+}
+exports.isFunction = isFunction;
+
+function isPrimitive(arg) {
+ return arg === null ||
+ typeof arg === 'boolean' ||
+ typeof arg === 'number' ||
+ typeof arg === 'string' ||
+ typeof arg === 'symbol' || // ES6 symbol
+ typeof arg === 'undefined';
+}
+exports.isPrimitive = isPrimitive;
+
+exports.isBuffer = Buffer.isBuffer;
+
+function objectToString(o) {
+ return Object.prototype.toString.call(o);
+}
+
+
+/***/ }),
+/* 10 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLAttribute, XMLElement, XMLNode, isFunction, isObject, ref,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ ref = __webpack_require__(2), isObject = ref.isObject, isFunction = ref.isFunction;
+
+ XMLNode = __webpack_require__(0);
+
+ XMLAttribute = __webpack_require__(35);
+
+ module.exports = XMLElement = (function(superClass) {
+ extend(XMLElement, superClass);
+
+ function XMLElement(parent, name, attributes) {
+ XMLElement.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing element name");
+ }
+ this.name = this.stringify.eleName(name);
+ this.attributes = {};
+ if (attributes != null) {
+ this.attribute(attributes);
+ }
+ if (parent.isDocument) {
+ this.isRoot = true;
+ this.documentObject = parent;
+ parent.rootObject = this;
+ }
+ }
+
+ XMLElement.prototype.clone = function() {
+ var att, attName, clonedSelf, ref1;
+ clonedSelf = Object.create(this);
+ if (clonedSelf.isRoot) {
+ clonedSelf.documentObject = null;
+ }
+ clonedSelf.attributes = {};
+ ref1 = this.attributes;
+ for (attName in ref1) {
+ if (!hasProp.call(ref1, attName)) continue;
+ att = ref1[attName];
+ clonedSelf.attributes[attName] = att.clone();
+ }
+ clonedSelf.children = [];
+ this.children.forEach(function(child) {
+ var clonedChild;
+ clonedChild = child.clone();
+ clonedChild.parent = clonedSelf;
+ return clonedSelf.children.push(clonedChild);
+ });
+ return clonedSelf;
+ };
+
+ XMLElement.prototype.attribute = function(name, value) {
+ var attName, attValue;
+ if (name != null) {
+ name = name.valueOf();
+ }
+ if (isObject(name)) {
+ for (attName in name) {
+ if (!hasProp.call(name, attName)) continue;
+ attValue = name[attName];
+ this.attribute(attName, attValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ if (!this.options.skipNullAttributes || (value != null)) {
+ this.attributes[name] = new XMLAttribute(this, name, value);
+ }
+ }
+ return this;
+ };
+
+ XMLElement.prototype.removeAttribute = function(name) {
+ var attName, i, len;
+ if (name == null) {
+ throw new Error("Missing attribute name");
+ }
+ name = name.valueOf();
+ if (Array.isArray(name)) {
+ for (i = 0, len = name.length; i < len; i++) {
+ attName = name[i];
+ delete this.attributes[attName];
+ }
+ } else {
+ delete this.attributes[name];
+ }
+ return this;
+ };
+
+ XMLElement.prototype.toString = function(options) {
+ return this.options.writer.set(options).element(this);
+ };
+
+ XMLElement.prototype.att = function(name, value) {
+ return this.attribute(name, value);
+ };
+
+ XMLElement.prototype.a = function(name, value) {
+ return this.attribute(name, value);
+ };
+
+ return XMLElement;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 11 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLCData, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLCData = (function(superClass) {
+ extend(XMLCData, superClass);
+
+ function XMLCData(parent, text) {
+ XMLCData.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing CDATA text");
+ }
+ this.text = this.stringify.cdata(text);
+ }
+
+ XMLCData.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLCData.prototype.toString = function(options) {
+ return this.options.writer.set(options).cdata(this);
+ };
+
+ return XMLCData;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 12 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLComment, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLComment = (function(superClass) {
+ extend(XMLComment, superClass);
+
+ function XMLComment(parent, text) {
+ XMLComment.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing comment text");
+ }
+ this.text = this.stringify.comment(text);
+ }
+
+ XMLComment.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLComment.prototype.toString = function(options) {
+ return this.options.writer.set(options).comment(this);
+ };
+
+ return XMLComment;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 13 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDeclaration, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ isObject = __webpack_require__(2).isObject;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLDeclaration = (function(superClass) {
+ extend(XMLDeclaration, superClass);
+
+ function XMLDeclaration(parent, version, encoding, standalone) {
+ var ref;
+ XMLDeclaration.__super__.constructor.call(this, parent);
+ if (isObject(version)) {
+ ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;
+ }
+ if (!version) {
+ version = '1.0';
+ }
+ this.version = this.stringify.xmlVersion(version);
+ if (encoding != null) {
+ this.encoding = this.stringify.xmlEncoding(encoding);
+ }
+ if (standalone != null) {
+ this.standalone = this.stringify.xmlStandalone(standalone);
+ }
+ }
+
+ XMLDeclaration.prototype.toString = function(options) {
+ return this.options.writer.set(options).declaration(this);
+ };
+
+ return XMLDeclaration;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 14 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ isObject = __webpack_require__(2).isObject;
+
+ XMLNode = __webpack_require__(0);
+
+ XMLDTDAttList = __webpack_require__(15);
+
+ XMLDTDEntity = __webpack_require__(16);
+
+ XMLDTDElement = __webpack_require__(17);
+
+ XMLDTDNotation = __webpack_require__(18);
+
+ module.exports = XMLDocType = (function(superClass) {
+ extend(XMLDocType, superClass);
+
+ function XMLDocType(parent, pubID, sysID) {
+ var ref, ref1;
+ XMLDocType.__super__.constructor.call(this, parent);
+ this.documentObject = parent;
+ if (isObject(pubID)) {
+ ref = pubID, pubID = ref.pubID, sysID = ref.sysID;
+ }
+ if (sysID == null) {
+ ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1];
+ }
+ if (pubID != null) {
+ this.pubID = this.stringify.dtdPubID(pubID);
+ }
+ if (sysID != null) {
+ this.sysID = this.stringify.dtdSysID(sysID);
+ }
+ }
+
+ XMLDocType.prototype.element = function(name, value) {
+ var child;
+ child = new XMLDTDElement(this, name, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ var child;
+ child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLDocType.prototype.entity = function(name, value) {
+ var child;
+ child = new XMLDTDEntity(this, false, name, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLDocType.prototype.pEntity = function(name, value) {
+ var child;
+ child = new XMLDTDEntity(this, true, name, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLDocType.prototype.notation = function(name, value) {
+ var child;
+ child = new XMLDTDNotation(this, name, value);
+ this.children.push(child);
+ return this;
+ };
+
+ XMLDocType.prototype.toString = function(options) {
+ return this.options.writer.set(options).docType(this);
+ };
+
+ XMLDocType.prototype.ele = function(name, value) {
+ return this.element(name, value);
+ };
+
+ XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ };
+
+ XMLDocType.prototype.ent = function(name, value) {
+ return this.entity(name, value);
+ };
+
+ XMLDocType.prototype.pent = function(name, value) {
+ return this.pEntity(name, value);
+ };
+
+ XMLDocType.prototype.not = function(name, value) {
+ return this.notation(name, value);
+ };
+
+ XMLDocType.prototype.up = function() {
+ return this.root() || this.documentObject;
+ };
+
+ return XMLDocType;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 15 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDTDAttList, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLDTDAttList = (function(superClass) {
+ extend(XMLDTDAttList, superClass);
+
+ function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ XMLDTDAttList.__super__.constructor.call(this, parent);
+ if (elementName == null) {
+ throw new Error("Missing DTD element name");
+ }
+ if (attributeName == null) {
+ throw new Error("Missing DTD attribute name");
+ }
+ if (!attributeType) {
+ throw new Error("Missing DTD attribute type");
+ }
+ if (!defaultValueType) {
+ throw new Error("Missing DTD attribute default");
+ }
+ if (defaultValueType.indexOf('#') !== 0) {
+ defaultValueType = '#' + defaultValueType;
+ }
+ if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {
+ throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");
+ }
+ if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {
+ throw new Error("Default value only applies to #FIXED or #DEFAULT");
+ }
+ this.elementName = this.stringify.eleName(elementName);
+ this.attributeName = this.stringify.attName(attributeName);
+ this.attributeType = this.stringify.dtdAttType(attributeType);
+ this.defaultValue = this.stringify.dtdAttDefault(defaultValue);
+ this.defaultValueType = defaultValueType;
+ }
+
+ XMLDTDAttList.prototype.toString = function(options) {
+ return this.options.writer.set(options).dtdAttList(this);
+ };
+
+ return XMLDTDAttList;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 16 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDTDEntity, XMLNode, isObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ isObject = __webpack_require__(2).isObject;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLDTDEntity = (function(superClass) {
+ extend(XMLDTDEntity, superClass);
+
+ function XMLDTDEntity(parent, pe, name, value) {
+ XMLDTDEntity.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing entity name");
+ }
+ if (value == null) {
+ throw new Error("Missing entity value");
+ }
+ this.pe = !!pe;
+ this.name = this.stringify.eleName(name);
+ if (!isObject(value)) {
+ this.value = this.stringify.dtdEntityValue(value);
+ } else {
+ if (!value.pubID && !value.sysID) {
+ throw new Error("Public and/or system identifiers are required for an external entity");
+ }
+ if (value.pubID && !value.sysID) {
+ throw new Error("System identifier is required for a public external entity");
+ }
+ if (value.pubID != null) {
+ this.pubID = this.stringify.dtdPubID(value.pubID);
+ }
+ if (value.sysID != null) {
+ this.sysID = this.stringify.dtdSysID(value.sysID);
+ }
+ if (value.nData != null) {
+ this.nData = this.stringify.dtdNData(value.nData);
+ }
+ if (this.pe && this.nData) {
+ throw new Error("Notation declaration is not allowed in a parameter entity");
+ }
+ }
+ }
+
+ XMLDTDEntity.prototype.toString = function(options) {
+ return this.options.writer.set(options).dtdEntity(this);
+ };
+
+ return XMLDTDEntity;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDTDElement, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLDTDElement = (function(superClass) {
+ extend(XMLDTDElement, superClass);
+
+ function XMLDTDElement(parent, name, value) {
+ XMLDTDElement.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing DTD element name");
+ }
+ if (!value) {
+ value = '(#PCDATA)';
+ }
+ if (Array.isArray(value)) {
+ value = '(' + value.join(',') + ')';
+ }
+ this.name = this.stringify.eleName(name);
+ this.value = this.stringify.dtdElementValue(value);
+ }
+
+ XMLDTDElement.prototype.toString = function(options) {
+ return this.options.writer.set(options).dtdElement(this);
+ };
+
+ return XMLDTDElement;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 18 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDTDNotation, XMLNode,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLDTDNotation = (function(superClass) {
+ extend(XMLDTDNotation, superClass);
+
+ function XMLDTDNotation(parent, name, value) {
+ XMLDTDNotation.__super__.constructor.call(this, parent);
+ if (name == null) {
+ throw new Error("Missing notation name");
+ }
+ if (!value.pubID && !value.sysID) {
+ throw new Error("Public or system identifiers are required for an external entity");
+ }
+ this.name = this.stringify.eleName(name);
+ if (value.pubID != null) {
+ this.pubID = this.stringify.dtdPubID(value.pubID);
+ }
+ if (value.sysID != null) {
+ this.sysID = this.stringify.dtdSysID(value.sysID);
+ }
+ }
+
+ XMLDTDNotation.prototype.toString = function(options) {
+ return this.options.writer.set(options).dtdNotation(this);
+ };
+
+ return XMLDTDNotation;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 19 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLNode, XMLRaw,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLRaw = (function(superClass) {
+ extend(XMLRaw, superClass);
+
+ function XMLRaw(parent, text) {
+ XMLRaw.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing raw text");
+ }
+ this.value = this.stringify.raw(text);
+ }
+
+ XMLRaw.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLRaw.prototype.toString = function(options) {
+ return this.options.writer.set(options).raw(this);
+ };
+
+ return XMLRaw;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 20 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLNode, XMLText,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLText = (function(superClass) {
+ extend(XMLText, superClass);
+
+ function XMLText(parent, text) {
+ XMLText.__super__.constructor.call(this, parent);
+ if (text == null) {
+ throw new Error("Missing element text");
+ }
+ this.value = this.stringify.eleText(text);
+ }
+
+ XMLText.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLText.prototype.toString = function(options) {
+ return this.options.writer.set(options).text(this);
+ };
+
+ return XMLText;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 21 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLNode, XMLProcessingInstruction,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLNode = __webpack_require__(0);
+
+ module.exports = XMLProcessingInstruction = (function(superClass) {
+ extend(XMLProcessingInstruction, superClass);
+
+ function XMLProcessingInstruction(parent, target, value) {
+ XMLProcessingInstruction.__super__.constructor.call(this, parent);
+ if (target == null) {
+ throw new Error("Missing instruction target");
+ }
+ this.target = this.stringify.insTarget(target);
+ if (value) {
+ this.value = this.stringify.insValue(value);
+ }
+ }
+
+ XMLProcessingInstruction.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLProcessingInstruction.prototype.toString = function(options) {
+ return this.options.writer.set(options).processingInstruction(this);
+ };
+
+ return XMLProcessingInstruction;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 22 */
+/***/ (function(module, exports) {
+
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+function EventEmitter() {
+ this._events = this._events || {};
+ this._maxListeners = this._maxListeners || undefined;
+}
+module.exports = EventEmitter;
+
+// Backwards-compat with node 0.10.x
+EventEmitter.EventEmitter = EventEmitter;
+
+EventEmitter.prototype._events = undefined;
+EventEmitter.prototype._maxListeners = undefined;
+
+// By default EventEmitters will print a warning if more than 10 listeners are
+// added to it. This is a useful default which helps finding memory leaks.
+EventEmitter.defaultMaxListeners = 10;
+
+// Obviously not all Emitters should be limited to 10. This function allows
+// that to be increased. Set to zero for unlimited.
+EventEmitter.prototype.setMaxListeners = function(n) {
+ if (!isNumber(n) || n < 0 || isNaN(n))
+ throw TypeError('n must be a positive number');
+ this._maxListeners = n;
+ return this;
+};
+
+EventEmitter.prototype.emit = function(type) {
+ var er, handler, len, args, i, listeners;
+
+ if (!this._events)
+ this._events = {};
+
+ // If there is no 'error' event listener then throw.
+ if (type === 'error') {
+ if (!this._events.error ||
+ (isObject(this._events.error) && !this._events.error.length)) {
+ er = arguments[1];
+ if (er instanceof Error) {
+ throw er; // Unhandled 'error' event
+ } else {
+ // At least give some kind of context to the user
+ var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
+ err.context = er;
+ throw err;
+ }
+ }
+ }
+
+ handler = this._events[type];
+
+ if (isUndefined(handler))
+ return false;
+
+ if (isFunction(handler)) {
+ switch (arguments.length) {
+ // fast cases
+ case 1:
+ handler.call(this);
+ break;
+ case 2:
+ handler.call(this, arguments[1]);
+ break;
+ case 3:
+ handler.call(this, arguments[1], arguments[2]);
+ break;
+ // slower
+ default:
+ args = Array.prototype.slice.call(arguments, 1);
+ handler.apply(this, args);
+ }
+ } else if (isObject(handler)) {
+ args = Array.prototype.slice.call(arguments, 1);
+ listeners = handler.slice();
+ len = listeners.length;
+ for (i = 0; i < len; i++)
+ listeners[i].apply(this, args);
+ }
+
+ return true;
+};
+
+EventEmitter.prototype.addListener = function(type, listener) {
+ var m;
+
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
+
+ if (!this._events)
+ this._events = {};
+
+ // To avoid recursion in the case that type === "newListener"! Before
+ // adding it to the listeners, first emit "newListener".
+ if (this._events.newListener)
+ this.emit('newListener', type,
+ isFunction(listener.listener) ?
+ listener.listener : listener);
+
+ if (!this._events[type])
+ // Optimize the case of one listener. Don't need the extra array object.
+ this._events[type] = listener;
+ else if (isObject(this._events[type]))
+ // If we've already got an array, just append.
+ this._events[type].push(listener);
+ else
+ // Adding the second element, need to change to array.
+ this._events[type] = [this._events[type], listener];
+
+ // Check for listener leak
+ if (isObject(this._events[type]) && !this._events[type].warned) {
+ if (!isUndefined(this._maxListeners)) {
+ m = this._maxListeners;
+ } else {
+ m = EventEmitter.defaultMaxListeners;
+ }
+
+ if (m && m > 0 && this._events[type].length > m) {
+ this._events[type].warned = true;
+ console.error('(node) warning: possible EventEmitter memory ' +
+ 'leak detected. %d listeners added. ' +
+ 'Use emitter.setMaxListeners() to increase limit.',
+ this._events[type].length);
+ if (typeof console.trace === 'function') {
+ // not supported in IE 10
+ console.trace();
+ }
+ }
+ }
+
+ return this;
+};
+
+EventEmitter.prototype.on = EventEmitter.prototype.addListener;
+
+EventEmitter.prototype.once = function(type, listener) {
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
+
+ var fired = false;
+
+ function g() {
+ this.removeListener(type, g);
+
+ if (!fired) {
+ fired = true;
+ listener.apply(this, arguments);
+ }
+ }
+
+ g.listener = listener;
+ this.on(type, g);
+
+ return this;
+};
+
+// emits a 'removeListener' event iff the listener was removed
+EventEmitter.prototype.removeListener = function(type, listener) {
+ var list, position, length, i;
+
+ if (!isFunction(listener))
+ throw TypeError('listener must be a function');
+
+ if (!this._events || !this._events[type])
+ return this;
+
+ list = this._events[type];
+ length = list.length;
+ position = -1;
+
+ if (list === listener ||
+ (isFunction(list.listener) && list.listener === listener)) {
+ delete this._events[type];
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
+
+ } else if (isObject(list)) {
+ for (i = length; i-- > 0;) {
+ if (list[i] === listener ||
+ (list[i].listener && list[i].listener === listener)) {
+ position = i;
+ break;
+ }
+ }
+
+ if (position < 0)
+ return this;
+
+ if (list.length === 1) {
+ list.length = 0;
+ delete this._events[type];
+ } else {
+ list.splice(position, 1);
+ }
+
+ if (this._events.removeListener)
+ this.emit('removeListener', type, listener);
+ }
+
+ return this;
+};
+
+EventEmitter.prototype.removeAllListeners = function(type) {
+ var key, listeners;
+
+ if (!this._events)
+ return this;
+
+ // not listening for removeListener, no need to emit
+ if (!this._events.removeListener) {
+ if (arguments.length === 0)
+ this._events = {};
+ else if (this._events[type])
+ delete this._events[type];
+ return this;
+ }
+
+ // emit removeListener for all listeners on all events
+ if (arguments.length === 0) {
+ for (key in this._events) {
+ if (key === 'removeListener') continue;
+ this.removeAllListeners(key);
+ }
+ this.removeAllListeners('removeListener');
+ this._events = {};
+ return this;
+ }
+
+ listeners = this._events[type];
+
+ if (isFunction(listeners)) {
+ this.removeListener(type, listeners);
+ } else if (listeners) {
+ // LIFO order
+ while (listeners.length)
+ this.removeListener(type, listeners[listeners.length - 1]);
+ }
+ delete this._events[type];
+
+ return this;
+};
+
+EventEmitter.prototype.listeners = function(type) {
+ var ret;
+ if (!this._events || !this._events[type])
+ ret = [];
+ else if (isFunction(this._events[type]))
+ ret = [this._events[type]];
+ else
+ ret = this._events[type].slice();
+ return ret;
+};
+
+EventEmitter.prototype.listenerCount = function(type) {
+ if (this._events) {
+ var evlistener = this._events[type];
+
+ if (isFunction(evlistener))
+ return 1;
+ else if (evlistener)
+ return evlistener.length;
+ }
+ return 0;
+};
+
+EventEmitter.listenerCount = function(emitter, type) {
+ return emitter.listenerCount(type);
+};
+
+function isFunction(arg) {
+ return typeof arg === 'function';
+}
+
+function isNumber(arg) {
+ return typeof arg === 'number';
+}
+
+function isObject(arg) {
+ return typeof arg === 'object' && arg !== null;
+}
+
+function isUndefined(arg) {
+ return arg === void 0;
+}
+
+
+/***/ }),
+/* 23 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process) {
+
+if (!process.version ||
+ process.version.indexOf('v0.') === 0 ||
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+ module.exports = { nextTick: nextTick };
+} else {
+ module.exports = process
+}
+
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
+ }
+}
+
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))
+
+/***/ }),
+/* 24 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* eslint-disable node/no-deprecated-api */
+var buffer = __webpack_require__(67)
+var Buffer = buffer.Buffer
+
+// alternative to using Object.keys for old browsers
+function copyProps (src, dst) {
+ for (var key in src) {
+ dst[key] = src[key]
+ }
+}
+if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
+ module.exports = buffer
+} else {
+ // Copy properties from require('buffer')
+ copyProps(buffer, exports)
+ exports.Buffer = SafeBuffer
+}
+
+function SafeBuffer (arg, encodingOrOffset, length) {
+ return Buffer(arg, encodingOrOffset, length)
+}
+
+// Copy static methods from Buffer
+copyProps(Buffer, SafeBuffer)
+
+SafeBuffer.from = function (arg, encodingOrOffset, length) {
+ if (typeof arg === 'number') {
+ throw new TypeError('Argument must not be a number')
+ }
+ return Buffer(arg, encodingOrOffset, length)
+}
+
+SafeBuffer.alloc = function (size, fill, encoding) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
+ }
+ var buf = Buffer(size)
+ if (fill !== undefined) {
+ if (typeof encoding === 'string') {
+ buf.fill(fill, encoding)
+ } else {
+ buf.fill(fill)
+ }
+ } else {
+ buf.fill(0)
+ }
+ return buf
+}
+
+SafeBuffer.allocUnsafe = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
+ }
+ return Buffer(size)
+}
+
+SafeBuffer.allocUnsafeSlow = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('Argument must be a number')
+ }
+ return buffer.SlowBuffer(size)
+}
+
+
+/***/ }),
+/* 25 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -578,8 +2724,8 @@ exports.Constants = {
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
-var utils_1 = __webpack_require__(0);
-var serializer_1 = __webpack_require__(9);
+var utils_1 = __webpack_require__(1);
+var serializer_1 = __webpack_require__(45);
/**
* Creates a new WebResource object.
*
@@ -785,197 +2931,1400 @@ exports.WebResource = WebResource;
/***/ }),
-/* 4 */
+/* 26 */
/***/ (function(module, exports) {
-// shim for using process in browser
-var process = module.exports = {};
-
-// cached from whatever global is present so that test runners that stub it
-// don't break things. But we need to wrap it in a try catch in case it is
-// wrapped in strict mode code which doesn't define any globals. It's inside a
-// function because try/catches deoptimize in certain engines.
-
-var cachedSetTimeout;
-var cachedClearTimeout;
-
-function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
-}
-function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
-}
-(function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
-} ())
-function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
+// Generated by CoffeeScript 1.12.7
+(function() {
+ exports.defaults = {
+ "0.1": {
+ explicitCharkey: false,
+ trim: true,
+ normalize: true,
+ normalizeTags: false,
+ attrkey: "@",
+ charkey: "#",
+ explicitArray: false,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: false,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ childkey: '@@',
+ charsAsChildren: false,
+ includeWhiteChars: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ attrValueProcessors: null,
+ tagNameProcessors: null,
+ valueProcessors: null,
+ emptyTag: ''
+ },
+ "0.2": {
+ explicitCharkey: false,
+ trim: false,
+ normalize: false,
+ normalizeTags: false,
+ attrkey: "$",
+ charkey: "_",
+ explicitArray: true,
+ ignoreAttrs: false,
+ mergeAttrs: false,
+ explicitRoot: true,
+ validator: null,
+ xmlns: false,
+ explicitChildren: false,
+ preserveChildrenOrder: false,
+ childkey: '$$',
+ charsAsChildren: false,
+ includeWhiteChars: false,
+ async: false,
+ strict: true,
+ attrNameProcessors: null,
+ attrValueProcessors: null,
+ tagNameProcessors: null,
+ valueProcessors: null,
+ rootName: 'root',
+ xmldec: {
+ 'version': '1.0',
+ 'encoding': 'UTF-8',
+ 'standalone': true
+ },
+ doctype: null,
+ renderOpts: {
+ 'pretty': true,
+ 'indent': ' ',
+ 'newline': '\n'
+ },
+ headless: false,
+ chunkSize: 10000,
+ emptyTag: '',
+ cdata: false
}
+ };
-
-}
-function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
-
-
-
-}
-var queue = [];
-var draining = false;
-var currentQueue;
-var queueIndex = -1;
-
-function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
-}
-
-function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
-}
-
-process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
-};
-
-// v8 likes predictible objects
-function Item(fun, array) {
- this.fun = fun;
- this.array = array;
-}
-Item.prototype.run = function () {
- this.fun.apply(null, this.array);
-};
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-process.version = ''; // empty string to avoid regexp issues
-process.versions = {};
-
-function noop() {}
-
-process.on = noop;
-process.addListener = noop;
-process.once = noop;
-process.off = noop;
-process.removeListener = noop;
-process.removeAllListeners = noop;
-process.emit = noop;
-process.prependListener = noop;
-process.prependOnceListener = noop;
-
-process.listeners = function (name) { return [] }
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-};
-
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-process.umask = function() { return 0; };
+}).call(this);
/***/ }),
-/* 5 */
+/* 27 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLText, XMLWriterBase,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLDeclaration = __webpack_require__(13);
+
+ XMLDocType = __webpack_require__(14);
+
+ XMLCData = __webpack_require__(11);
+
+ XMLComment = __webpack_require__(12);
+
+ XMLElement = __webpack_require__(10);
+
+ XMLRaw = __webpack_require__(19);
+
+ XMLText = __webpack_require__(20);
+
+ XMLProcessingInstruction = __webpack_require__(21);
+
+ XMLDTDAttList = __webpack_require__(15);
+
+ XMLDTDElement = __webpack_require__(17);
+
+ XMLDTDEntity = __webpack_require__(16);
+
+ XMLDTDNotation = __webpack_require__(18);
+
+ XMLWriterBase = __webpack_require__(37);
+
+ module.exports = XMLStringWriter = (function(superClass) {
+ extend(XMLStringWriter, superClass);
+
+ function XMLStringWriter(options) {
+ XMLStringWriter.__super__.constructor.call(this, options);
+ }
+
+ XMLStringWriter.prototype.document = function(doc) {
+ var child, i, len, r, ref;
+ this.textispresent = false;
+ r = '';
+ ref = doc.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ r += (function() {
+ switch (false) {
+ case !(child instanceof XMLDeclaration):
+ return this.declaration(child);
+ case !(child instanceof XMLDocType):
+ return this.docType(child);
+ case !(child instanceof XMLComment):
+ return this.comment(child);
+ case !(child instanceof XMLProcessingInstruction):
+ return this.processingInstruction(child);
+ default:
+ return this.element(child, 0);
+ }
+ }).call(this);
+ }
+ if (this.pretty && r.slice(-this.newline.length) === this.newline) {
+ r = r.slice(0, -this.newline.length);
+ }
+ return r;
+ };
+
+ XMLStringWriter.prototype.attribute = function(att) {
+ return ' ' + att.name + '="' + att.value + '"';
+ };
+
+ XMLStringWriter.prototype.cdata = function(node, level) {
+ return this.space(level) + '' + this.newline;
+ };
+
+ XMLStringWriter.prototype.comment = function(node, level) {
+ return this.space(level) + '' + this.newline;
+ };
+
+ XMLStringWriter.prototype.declaration = function(node, level) {
+ var r;
+ r = this.space(level);
+ r += '';
+ r += this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.docType = function(node, level) {
+ var child, i, len, r, ref;
+ level || (level = 0);
+ r = this.space(level);
+ r += ' 0) {
+ r += ' [';
+ r += this.newline;
+ ref = node.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ r += (function() {
+ switch (false) {
+ case !(child instanceof XMLDTDAttList):
+ return this.dtdAttList(child, level + 1);
+ case !(child instanceof XMLDTDElement):
+ return this.dtdElement(child, level + 1);
+ case !(child instanceof XMLDTDEntity):
+ return this.dtdEntity(child, level + 1);
+ case !(child instanceof XMLDTDNotation):
+ return this.dtdNotation(child, level + 1);
+ case !(child instanceof XMLCData):
+ return this.cdata(child, level + 1);
+ case !(child instanceof XMLComment):
+ return this.comment(child, level + 1);
+ case !(child instanceof XMLProcessingInstruction):
+ return this.processingInstruction(child, level + 1);
+ default:
+ throw new Error("Unknown DTD node type: " + child.constructor.name);
+ }
+ }).call(this);
+ }
+ r += ']';
+ }
+ r += this.spacebeforeslash + '>';
+ r += this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.element = function(node, level) {
+ var att, child, i, j, len, len1, name, r, ref, ref1, ref2, space, textispresentwasset;
+ level || (level = 0);
+ textispresentwasset = false;
+ if (this.textispresent) {
+ this.newline = '';
+ this.pretty = false;
+ } else {
+ this.newline = this.newlinedefault;
+ this.pretty = this.prettydefault;
+ }
+ space = this.space(level);
+ r = '';
+ r += space + '<' + node.name;
+ ref = node.attributes;
+ for (name in ref) {
+ if (!hasProp.call(ref, name)) continue;
+ att = ref[name];
+ r += this.attribute(att);
+ }
+ if (node.children.length === 0 || node.children.every(function(e) {
+ return e.value === '';
+ })) {
+ if (this.allowEmpty) {
+ r += '>' + node.name + '>' + this.newline;
+ } else {
+ r += this.spacebeforeslash + '/>' + this.newline;
+ }
+ } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {
+ r += '>';
+ r += node.children[0].value;
+ r += '' + node.name + '>' + this.newline;
+ } else {
+ if (this.dontprettytextnodes) {
+ ref1 = node.children;
+ for (i = 0, len = ref1.length; i < len; i++) {
+ child = ref1[i];
+ if (child.value != null) {
+ this.textispresent++;
+ textispresentwasset = true;
+ break;
+ }
+ }
+ }
+ if (this.textispresent) {
+ this.newline = '';
+ this.pretty = false;
+ space = this.space(level);
+ }
+ r += '>' + this.newline;
+ ref2 = node.children;
+ for (j = 0, len1 = ref2.length; j < len1; j++) {
+ child = ref2[j];
+ r += (function() {
+ switch (false) {
+ case !(child instanceof XMLCData):
+ return this.cdata(child, level + 1);
+ case !(child instanceof XMLComment):
+ return this.comment(child, level + 1);
+ case !(child instanceof XMLElement):
+ return this.element(child, level + 1);
+ case !(child instanceof XMLRaw):
+ return this.raw(child, level + 1);
+ case !(child instanceof XMLText):
+ return this.text(child, level + 1);
+ case !(child instanceof XMLProcessingInstruction):
+ return this.processingInstruction(child, level + 1);
+ default:
+ throw new Error("Unknown XML node type: " + child.constructor.name);
+ }
+ }).call(this);
+ }
+ if (textispresentwasset) {
+ this.textispresent--;
+ }
+ if (!this.textispresent) {
+ this.newline = this.newlinedefault;
+ this.pretty = this.prettydefault;
+ }
+ r += space + '' + node.name + '>' + this.newline;
+ }
+ return r;
+ };
+
+ XMLStringWriter.prototype.processingInstruction = function(node, level) {
+ var r;
+ r = this.space(level) + '' + node.target;
+ if (node.value) {
+ r += ' ' + node.value;
+ }
+ r += this.spacebeforeslash + '?>' + this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.raw = function(node, level) {
+ return this.space(level) + node.value + this.newline;
+ };
+
+ XMLStringWriter.prototype.text = function(node, level) {
+ return this.space(level) + node.value + this.newline;
+ };
+
+ XMLStringWriter.prototype.dtdAttList = function(node, level) {
+ var r;
+ r = this.space(level) + '' + this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.dtdElement = function(node, level) {
+ return this.space(level) + '' + this.newline;
+ };
+
+ XMLStringWriter.prototype.dtdEntity = function(node, level) {
+ var r;
+ r = this.space(level) + '' + this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.dtdNotation = function(node, level) {
+ var r;
+ r = this.space(level) + '' + this.newline;
+ return r;
+ };
+
+ XMLStringWriter.prototype.openNode = function(node, level) {
+ var att, name, r, ref;
+ level || (level = 0);
+ if (node instanceof XMLElement) {
+ r = this.space(level) + '<' + node.name;
+ ref = node.attributes;
+ for (name in ref) {
+ if (!hasProp.call(ref, name)) continue;
+ att = ref[name];
+ r += this.attribute(att);
+ }
+ r += (node.children ? '>' : '/>') + this.newline;
+ return r;
+ } else {
+ r = this.space(level) + '') + this.newline;
+ return r;
+ }
+ };
+
+ XMLStringWriter.prototype.closeNode = function(node, level) {
+ level || (level = 0);
+ switch (false) {
+ case !(node instanceof XMLElement):
+ return this.space(level) + '' + node.name + '>' + this.newline;
+ case !(node instanceof XMLDocType):
+ return this.space(level) + ']>' + this.newline;
+ }
+ };
+
+ return XMLStringWriter;
+
+ })(XMLWriterBase);
+
+}).call(this);
+
+
+/***/ }),
+/* 28 */
+/***/ (function(module, exports, __webpack_require__) {
+
+exports = module.exports = __webpack_require__(38);
+exports.Stream = exports;
+exports.Readable = exports;
+exports.Writable = __webpack_require__(29);
+exports.Duplex = __webpack_require__(5);
+exports.Transform = __webpack_require__(43);
+exports.PassThrough = __webpack_require__(75);
+
+
+/***/ }),
+/* 29 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process, setImmediate, global) {// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
+
+
+
+/**/
+
+var pna = __webpack_require__(23);
+/**/
+
+module.exports = Writable;
+
+/* */
+function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
+}
+
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+
+ this.next = null;
+ this.entry = null;
+ this.finish = function () {
+ onCorkedFinish(_this, state);
+ };
+}
+/* */
+
+/**/
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
+/**/
+
+/**/
+var Duplex;
+/**/
+
+Writable.WritableState = WritableState;
+
+/**/
+var util = __webpack_require__(9);
+util.inherits = __webpack_require__(8);
+/**/
+
+/**/
+var internalUtil = {
+ deprecate: __webpack_require__(74)
+};
+/**/
+
+/**/
+var Stream = __webpack_require__(40);
+/**/
+
+/**/
+
+var Buffer = __webpack_require__(24).Buffer;
+var OurUint8Array = global.Uint8Array || function () {};
+function _uint8ArrayToBuffer(chunk) {
+ return Buffer.from(chunk);
+}
+function _isUint8Array(obj) {
+ return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
+}
+
+/**/
+
+var destroyImpl = __webpack_require__(41);
+
+util.inherits(Writable, Stream);
+
+function nop() {}
+
+function WritableState(options, stream) {
+ Duplex = Duplex || __webpack_require__(5);
+
+ options = options || {};
+
+ // Duplex streams are both readable and writable, but share
+ // the same options object.
+ // However, some cases require setting options to different
+ // values for the readable and the writable sides of the duplex stream.
+ // These options can be provided separately as readableXXX and writableXXX.
+ var isDuplex = stream instanceof Duplex;
+
+ // object stream flag to indicate whether or not this stream
+ // contains buffers or objects.
+ this.objectMode = !!options.objectMode;
+
+ if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+
+ // the point at which write() starts returning false
+ // Note: 0 is a valid value, means that we always return false if
+ // the entire buffer is not flushed immediately on write()
+ var hwm = options.highWaterMark;
+ var writableHwm = options.writableHighWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = Math.floor(this.highWaterMark);
+
+ // if _final has been called
+ this.finalCalled = false;
+
+ // drain event flag.
+ this.needDrain = false;
+ // at the start of calling end()
+ this.ending = false;
+ // when end() has been called, and returned
+ this.ended = false;
+ // when 'finish' is emitted
+ this.finished = false;
+
+ // has it been destroyed
+ this.destroyed = false;
+
+ // should we decode strings into buffers before passing to _write?
+ // this is here so that some node-core streams can optimize string
+ // handling at a lower level.
+ var noDecode = options.decodeStrings === false;
+ this.decodeStrings = !noDecode;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // not an actual buffer we keep track of, but a measurement
+ // of how much we're waiting to get pushed to some underlying
+ // socket or file.
+ this.length = 0;
+
+ // a flag to see when we're in the middle of a write.
+ this.writing = false;
+
+ // when true all writes will be buffered until .uncork() call
+ this.corked = 0;
+
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+
+ // a flag to know if we're processing previously buffered items, which
+ // may call the _write() callback in the same tick, so that we don't
+ // end up in an overlapped onwrite situation.
+ this.bufferProcessing = false;
+
+ // the callback that's passed to _write(chunk,cb)
+ this.onwrite = function (er) {
+ onwrite(stream, er);
+ };
+
+ // the callback that the user supplies to write(chunk,encoding,cb)
+ this.writecb = null;
+
+ // the amount that is being written when _write is called.
+ this.writelen = 0;
+
+ this.bufferedRequest = null;
+ this.lastBufferedRequest = null;
+
+ // number of pending user-supplied write callbacks
+ // this must be 0 before 'finish' can be emitted
+ this.pendingcb = 0;
+
+ // emit prefinish if the only thing we're waiting for is _write cbs
+ // This is relevant for synchronous Transform streams
+ this.prefinished = false;
+
+ // True if the error was already emitted and should not be thrown again
+ this.errorEmitted = false;
+
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
+ this.corkedRequestsFree = new CorkedRequest(this);
+}
+
+WritableState.prototype.getBuffer = function getBuffer() {
+ var current = this.bufferedRequest;
+ var out = [];
+ while (current) {
+ out.push(current);
+ current = current.next;
+ }
+ return out;
+};
+
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(function () {
+ return this.getBuffer();
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
+ });
+ } catch (_) {}
+})();
+
+// Test _writableState for inheritance to account for Duplex streams,
+// whose prototype chain only points to Readable.
+var realHasInstance;
+if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
+ realHasInstance = Function.prototype[Symbol.hasInstance];
+ Object.defineProperty(Writable, Symbol.hasInstance, {
+ value: function (object) {
+ if (realHasInstance.call(this, object)) return true;
+ if (this !== Writable) return false;
+
+ return object && object._writableState instanceof WritableState;
+ }
+ });
+} else {
+ realHasInstance = function (object) {
+ return object instanceof this;
+ };
+}
+
+function Writable(options) {
+ Duplex = Duplex || __webpack_require__(5);
+
+ // Writable ctor is applied to Duplexes, too.
+ // `realHasInstance` is necessary because using plain `instanceof`
+ // would return false, as no `_writableState` property is attached.
+
+ // Trying to use the custom `instanceof` for Writable here will also break the
+ // Node.js LazyTransform implementation, which has a non-trivial getter for
+ // `_writableState` that would lead to infinite recursion.
+ if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
+ return new Writable(options);
+ }
+
+ this._writableState = new WritableState(options, this);
+
+ // legacy.
+ this.writable = true;
+
+ if (options) {
+ if (typeof options.write === 'function') this._write = options.write;
+
+ if (typeof options.writev === 'function') this._writev = options.writev;
+
+ if (typeof options.destroy === 'function') this._destroy = options.destroy;
+
+ if (typeof options.final === 'function') this._final = options.final;
+ }
+
+ Stream.call(this);
+}
+
+// Otherwise people can pipe Writable streams, which is just wrong.
+Writable.prototype.pipe = function () {
+ this.emit('error', new Error('Cannot pipe, not readable'));
+};
+
+function writeAfterEnd(stream, cb) {
+ var er = new Error('write after end');
+ // TODO: defer error events consistently everywhere, not just the cb
+ stream.emit('error', er);
+ pna.nextTick(cb, er);
+}
+
+// Checks that a user-supplied chunk is valid, especially for the particular
+// mode the stream is in. Currently this means that `null` is never accepted
+// and undefined/non-string values are only allowed in object mode.
+function validChunk(stream, state, chunk, cb) {
+ var valid = true;
+ var er = false;
+
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
+ stream.emit('error', er);
+ pna.nextTick(cb, er);
+ valid = false;
+ }
+ return valid;
+}
+
+Writable.prototype.write = function (chunk, encoding, cb) {
+ var state = this._writableState;
+ var ret = false;
+ var isBuf = !state.objectMode && _isUint8Array(chunk);
+
+ if (isBuf && !Buffer.isBuffer(chunk)) {
+ chunk = _uint8ArrayToBuffer(chunk);
+ }
+
+ if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+
+ if (typeof cb !== 'function') cb = nop;
+
+ if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
+ state.pendingcb++;
+ ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
+ }
+
+ return ret;
+};
+
+Writable.prototype.cork = function () {
+ var state = this._writableState;
+
+ state.corked++;
+};
+
+Writable.prototype.uncork = function () {
+ var state = this._writableState;
+
+ if (state.corked) {
+ state.corked--;
+
+ if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
+ }
+};
+
+Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+ // node::ParseEncoding() requires lower case.
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
+ this._writableState.defaultEncoding = encoding;
+ return this;
+};
+
+function decodeChunk(state, chunk, encoding) {
+ if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
+ chunk = Buffer.from(chunk, encoding);
+ }
+ return chunk;
+}
+
+// if we're already writing something, then just put this
+// in the queue, and wait our turn. Otherwise, call _write
+// If we return false, then we need a drain event, so set that flag.
+function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
+ if (!isBuf) {
+ var newChunk = decodeChunk(state, chunk, encoding);
+ if (chunk !== newChunk) {
+ isBuf = true;
+ encoding = 'buffer';
+ chunk = newChunk;
+ }
+ }
+ var len = state.objectMode ? 1 : chunk.length;
+
+ state.length += len;
+
+ var ret = state.length < state.highWaterMark;
+ // we must ensure that previous needDrain will not be reset to false.
+ if (!ret) state.needDrain = true;
+
+ if (state.writing || state.corked) {
+ var last = state.lastBufferedRequest;
+ state.lastBufferedRequest = {
+ chunk: chunk,
+ encoding: encoding,
+ isBuf: isBuf,
+ callback: cb,
+ next: null
+ };
+ if (last) {
+ last.next = state.lastBufferedRequest;
+ } else {
+ state.bufferedRequest = state.lastBufferedRequest;
+ }
+ state.bufferedRequestCount += 1;
+ } else {
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ }
+
+ return ret;
+}
+
+function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+ state.writelen = len;
+ state.writecb = cb;
+ state.writing = true;
+ state.sync = true;
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+ state.sync = false;
+}
+
+function onwriteError(stream, state, sync, er, cb) {
+ --state.pendingcb;
+
+ if (sync) {
+ // defer the callback if we are being called synchronously
+ // to avoid piling up things on the stack
+ pna.nextTick(cb, er);
+ // this can emit finish, and it will always happen
+ // after error
+ pna.nextTick(finishMaybe, stream, state);
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+ } else {
+ // the caller expect this to happen before if
+ // it is async
+ cb(er);
+ stream._writableState.errorEmitted = true;
+ stream.emit('error', er);
+ // this can emit finish, but finish must
+ // always follow error
+ finishMaybe(stream, state);
+ }
+}
+
+function onwriteStateUpdate(state) {
+ state.writing = false;
+ state.writecb = null;
+ state.length -= state.writelen;
+ state.writelen = 0;
+}
+
+function onwrite(stream, er) {
+ var state = stream._writableState;
+ var sync = state.sync;
+ var cb = state.writecb;
+
+ onwriteStateUpdate(state);
+
+ if (er) onwriteError(stream, state, sync, er, cb);else {
+ // Check if we're actually ready to finish, but don't emit yet
+ var finished = needFinish(state);
+
+ if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
+ clearBuffer(stream, state);
+ }
+
+ if (sync) {
+ /**/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /**/
+ } else {
+ afterWrite(stream, state, finished, cb);
+ }
+ }
+}
+
+function afterWrite(stream, state, finished, cb) {
+ if (!finished) onwriteDrain(stream, state);
+ state.pendingcb--;
+ cb();
+ finishMaybe(stream, state);
+}
+
+// Must force callback to be called on nextTick, so that we don't
+// emit 'drain' before the write() consumer gets the 'false' return
+// value, and has a chance to attach a 'drain' listener.
+function onwriteDrain(stream, state) {
+ if (state.length === 0 && state.needDrain) {
+ state.needDrain = false;
+ stream.emit('drain');
+ }
+}
+
+// if there's something in the buffer waiting, then process it
+function clearBuffer(stream, state) {
+ state.bufferProcessing = true;
+ var entry = state.bufferedRequest;
+
+ if (stream._writev && entry && entry.next) {
+ // Fast case, write everything using _writev()
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+
+ var count = 0;
+ var allBuffers = true;
+ while (entry) {
+ buffer[count] = entry;
+ if (!entry.isBuf) allBuffers = false;
+ entry = entry.next;
+ count += 1;
+ }
+ buffer.allBuffers = allBuffers;
+
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+
+ // doWrite is almost always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
+ state.pendingcb++;
+ state.lastBufferedRequest = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
+ state.bufferedRequestCount = 0;
+ } else {
+ // Slow case, write chunks one-by-one
+ while (entry) {
+ var chunk = entry.chunk;
+ var encoding = entry.encoding;
+ var cb = entry.callback;
+ var len = state.objectMode ? 1 : chunk.length;
+
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ entry = entry.next;
+ state.bufferedRequestCount--;
+ // if we didn't call the onwrite immediately, then
+ // it means that we need to wait until it does.
+ // also, that means that the chunk and cb are currently
+ // being processed, so move the buffer counter past them.
+ if (state.writing) {
+ break;
+ }
+ }
+
+ if (entry === null) state.lastBufferedRequest = null;
+ }
+
+ state.bufferedRequest = entry;
+ state.bufferProcessing = false;
+}
+
+Writable.prototype._write = function (chunk, encoding, cb) {
+ cb(new Error('_write() is not implemented'));
+};
+
+Writable.prototype._writev = null;
+
+Writable.prototype.end = function (chunk, encoding, cb) {
+ var state = this._writableState;
+
+ if (typeof chunk === 'function') {
+ cb = chunk;
+ chunk = null;
+ encoding = null;
+ } else if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+
+ if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
+
+ // .end() fully uncorks
+ if (state.corked) {
+ state.corked = 1;
+ this.uncork();
+ }
+
+ // ignore unnecessary end() calls.
+ if (!state.ending && !state.finished) endWritable(this, state, cb);
+};
+
+function needFinish(state) {
+ return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;
+}
+function callFinal(stream, state) {
+ stream._final(function (err) {
+ state.pendingcb--;
+ if (err) {
+ stream.emit('error', err);
+ }
+ state.prefinished = true;
+ stream.emit('prefinish');
+ finishMaybe(stream, state);
+ });
+}
+function prefinish(stream, state) {
+ if (!state.prefinished && !state.finalCalled) {
+ if (typeof stream._final === 'function') {
+ state.pendingcb++;
+ state.finalCalled = true;
+ pna.nextTick(callFinal, stream, state);
+ } else {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
+ }
+}
+
+function finishMaybe(stream, state) {
+ var need = needFinish(state);
+ if (need) {
+ prefinish(stream, state);
+ if (state.pendingcb === 0) {
+ state.finished = true;
+ stream.emit('finish');
+ }
+ }
+ return need;
+}
+
+function endWritable(stream, state, cb) {
+ state.ending = true;
+ finishMaybe(stream, state);
+ if (cb) {
+ if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
+ }
+ state.ended = true;
+ stream.writable = false;
+}
+
+function onCorkedFinish(corkReq, state, err) {
+ var entry = corkReq.entry;
+ corkReq.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = corkReq;
+ } else {
+ state.corkedRequestsFree = corkReq;
+ }
+}
+
+Object.defineProperty(Writable.prototype, 'destroyed', {
+ get: function () {
+ if (this._writableState === undefined) {
+ return false;
+ }
+ return this._writableState.destroyed;
+ },
+ set: function (value) {
+ // we ignore the value if the stream
+ // has not been initialized yet
+ if (!this._writableState) {
+ return;
+ }
+
+ // backward compatibility, the user is explicitly
+ // managing destroyed
+ this._writableState.destroyed = value;
+ }
+});
+
+Writable.prototype.destroy = destroyImpl.destroy;
+Writable.prototype._undestroy = destroyImpl.undestroy;
+Writable.prototype._destroy = function (err, cb) {
+ this.end();
+ cb(err);
+};
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6), __webpack_require__(42).setImmediate, __webpack_require__(4)))
+
+/***/ }),
+/* 30 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var Buffer = __webpack_require__(24).Buffer;
+
+var isEncoding = Buffer.isEncoding || function (encoding) {
+ encoding = '' + encoding;
+ switch (encoding && encoding.toLowerCase()) {
+ case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':
+ return true;
+ default:
+ return false;
+ }
+};
+
+function _normalizeEncoding(enc) {
+ if (!enc) return 'utf8';
+ var retried;
+ while (true) {
+ switch (enc) {
+ case 'utf8':
+ case 'utf-8':
+ return 'utf8';
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return 'utf16le';
+ case 'latin1':
+ case 'binary':
+ return 'latin1';
+ case 'base64':
+ case 'ascii':
+ case 'hex':
+ return enc;
+ default:
+ if (retried) return; // undefined
+ enc = ('' + enc).toLowerCase();
+ retried = true;
+ }
+ }
+};
+
+// Do not cache `Buffer.isEncoding` when checking encoding names as some
+// modules monkey-patch it to support additional encodings
+function normalizeEncoding(enc) {
+ var nenc = _normalizeEncoding(enc);
+ if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
+ return nenc || enc;
+}
+
+// StringDecoder provides an interface for efficiently splitting a series of
+// buffers into a series of JS strings without breaking apart multi-byte
+// characters.
+exports.StringDecoder = StringDecoder;
+function StringDecoder(encoding) {
+ this.encoding = normalizeEncoding(encoding);
+ var nb;
+ switch (this.encoding) {
+ case 'utf16le':
+ this.text = utf16Text;
+ this.end = utf16End;
+ nb = 4;
+ break;
+ case 'utf8':
+ this.fillLast = utf8FillLast;
+ nb = 4;
+ break;
+ case 'base64':
+ this.text = base64Text;
+ this.end = base64End;
+ nb = 3;
+ break;
+ default:
+ this.write = simpleWrite;
+ this.end = simpleEnd;
+ return;
+ }
+ this.lastNeed = 0;
+ this.lastTotal = 0;
+ this.lastChar = Buffer.allocUnsafe(nb);
+}
+
+StringDecoder.prototype.write = function (buf) {
+ if (buf.length === 0) return '';
+ var r;
+ var i;
+ if (this.lastNeed) {
+ r = this.fillLast(buf);
+ if (r === undefined) return '';
+ i = this.lastNeed;
+ this.lastNeed = 0;
+ } else {
+ i = 0;
+ }
+ if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
+ return r || '';
+};
+
+StringDecoder.prototype.end = utf8End;
+
+// Returns only complete characters in a Buffer
+StringDecoder.prototype.text = utf8Text;
+
+// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer
+StringDecoder.prototype.fillLast = function (buf) {
+ if (this.lastNeed <= buf.length) {
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
+ }
+ buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);
+ this.lastNeed -= buf.length;
+};
+
+// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
+// continuation byte.
+function utf8CheckByte(byte) {
+ if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
+ return -1;
+}
+
+// Checks at most 3 bytes at the end of a Buffer in order to detect an
+// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)
+// needed to complete the UTF-8 character (if applicable) are returned.
+function utf8CheckIncomplete(self, buf, i) {
+ var j = buf.length - 1;
+ if (j < i) return 0;
+ var nb = utf8CheckByte(buf[j]);
+ if (nb >= 0) {
+ if (nb > 0) self.lastNeed = nb - 1;
+ return nb;
+ }
+ if (--j < i) return 0;
+ nb = utf8CheckByte(buf[j]);
+ if (nb >= 0) {
+ if (nb > 0) self.lastNeed = nb - 2;
+ return nb;
+ }
+ if (--j < i) return 0;
+ nb = utf8CheckByte(buf[j]);
+ if (nb >= 0) {
+ if (nb > 0) {
+ if (nb === 2) nb = 0;else self.lastNeed = nb - 3;
+ }
+ return nb;
+ }
+ return 0;
+}
+
+// Validates as many continuation bytes for a multi-byte UTF-8 character as
+// needed or are available. If we see a non-continuation byte where we expect
+// one, we "replace" the validated continuation bytes we've seen so far with
+// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding
+// behavior. The continuation byte check is included three times in the case
+// where all of the continuation bytes for a character exist in the same buffer.
+// It is also done this way as a slight performance increase instead of using a
+// loop.
+function utf8CheckExtraBytes(self, buf, p) {
+ if ((buf[0] & 0xC0) !== 0x80) {
+ self.lastNeed = 0;
+ return '\ufffd'.repeat(p);
+ }
+ if (self.lastNeed > 1 && buf.length > 1) {
+ if ((buf[1] & 0xC0) !== 0x80) {
+ self.lastNeed = 1;
+ return '\ufffd'.repeat(p + 1);
+ }
+ if (self.lastNeed > 2 && buf.length > 2) {
+ if ((buf[2] & 0xC0) !== 0x80) {
+ self.lastNeed = 2;
+ return '\ufffd'.repeat(p + 2);
+ }
+ }
+ }
+}
+
+// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.
+function utf8FillLast(buf) {
+ var p = this.lastTotal - this.lastNeed;
+ var r = utf8CheckExtraBytes(this, buf, p);
+ if (r !== undefined) return r;
+ if (this.lastNeed <= buf.length) {
+ buf.copy(this.lastChar, p, 0, this.lastNeed);
+ return this.lastChar.toString(this.encoding, 0, this.lastTotal);
+ }
+ buf.copy(this.lastChar, p, 0, buf.length);
+ this.lastNeed -= buf.length;
+}
+
+// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a
+// partial character, the character's bytes are buffered until the required
+// number of bytes are available.
+function utf8Text(buf, i) {
+ var total = utf8CheckIncomplete(this, buf, i);
+ if (!this.lastNeed) return buf.toString('utf8', i);
+ this.lastTotal = total;
+ var end = buf.length - (total - this.lastNeed);
+ buf.copy(this.lastChar, 0, end);
+ return buf.toString('utf8', i, end);
+}
+
+// For UTF-8, a replacement character for each buffered byte of a (partial)
+// character needs to be added to the output.
+function utf8End(buf) {
+ var r = buf && buf.length ? this.write(buf) : '';
+ if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
+ return r;
+}
+
+// UTF-16LE typically needs two bytes per character, but even if we have an even
+// number of bytes available, we need to check if we end on a leading/high
+// surrogate. In that case, we need to wait for the next two bytes in order to
+// decode the last character properly.
+function utf16Text(buf, i) {
+ if ((buf.length - i) % 2 === 0) {
+ var r = buf.toString('utf16le', i);
+ if (r) {
+ var c = r.charCodeAt(r.length - 1);
+ if (c >= 0xD800 && c <= 0xDBFF) {
+ this.lastNeed = 2;
+ this.lastTotal = 4;
+ this.lastChar[0] = buf[buf.length - 2];
+ this.lastChar[1] = buf[buf.length - 1];
+ return r.slice(0, -1);
+ }
+ }
+ return r;
+ }
+ this.lastNeed = 1;
+ this.lastTotal = 2;
+ this.lastChar[0] = buf[buf.length - 1];
+ return buf.toString('utf16le', i, buf.length - 1);
+}
+
+// For UTF-16LE we do not explicitly append special replacement characters if we
+// end on a partial character, we simply let v8 handle that.
+function utf16End(buf) {
+ var r = buf && buf.length ? this.write(buf) : '';
+ if (this.lastNeed) {
+ var end = this.lastTotal - this.lastNeed;
+ return r + this.lastChar.toString('utf16le', 0, end);
+ }
+ return r;
+}
+
+function base64Text(buf, i) {
+ var n = (buf.length - i) % 3;
+ if (n === 0) return buf.toString('base64', i);
+ this.lastNeed = 3 - n;
+ this.lastTotal = 3;
+ if (n === 1) {
+ this.lastChar[0] = buf[buf.length - 1];
+ } else {
+ this.lastChar[0] = buf[buf.length - 2];
+ this.lastChar[1] = buf[buf.length - 1];
+ }
+ return buf.toString('base64', i, buf.length - n);
+}
+
+function base64End(buf) {
+ var r = buf && buf.length ? this.write(buf) : '';
+ if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);
+ return r;
+}
+
+// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
+function simpleWrite(buf) {
+ return buf.toString(this.encoding);
+}
+
+function simpleEnd(buf) {
+ return buf && buf.length ? this.write(buf) : '';
+}
+
+/***/ }),
+/* 31 */
/***/ (function(module, exports) {
// Unique ID creation requires a high quality random # generator. In the
@@ -1013,7 +4362,7 @@ if (getRandomValues) {
/***/ }),
-/* 6 */
+/* 32 */
/***/ (function(module, exports) {
/**
@@ -1042,7 +4391,7 @@ module.exports = bytesToUuid;
/***/ }),
-/* 7 */
+/* 33 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1077,7 +4426,7 @@ exports.RestError = RestError;
/***/ }),
-/* 8 */
+/* 34 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1087,7 +4436,7 @@ exports.RestError = RestError;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Wrapper object for http request and response. Deserialized object is stored in
- * the `bodyAsJson` property when the response body is received in JSON.
+ * the `parsedBody` property when the response body is received in JSON or XML.
* @class
* Initializes a new instance of the HttpOperationResponse class.
* @constructor
@@ -1108,7 +4457,7 @@ var HttpOperationResponse = /** @class */ (function () {
this.response = response;
/* tslint:disable:no-null-keyword */
this.bodyAsText = null;
- this.bodyAsJson = null;
+ this.parsedBody = null;
}
return HttpOperationResponse;
}());
@@ -1116,7 +4465,1756 @@ exports.HttpOperationResponse = HttpOperationResponse;
/***/ }),
-/* 9 */
+/* 35 */
+/***/ (function(module, exports) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLAttribute;
+
+ module.exports = XMLAttribute = (function() {
+ function XMLAttribute(parent, name, value) {
+ this.options = parent.options;
+ this.stringify = parent.stringify;
+ if (name == null) {
+ throw new Error("Missing attribute name of element " + parent.name);
+ }
+ if (value == null) {
+ throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name);
+ }
+ this.name = this.stringify.attName(name);
+ this.value = this.stringify.attValue(value);
+ }
+
+ XMLAttribute.prototype.clone = function() {
+ return Object.create(this);
+ };
+
+ XMLAttribute.prototype.toString = function(options) {
+ return this.options.writer.set(options).attribute(this);
+ };
+
+ return XMLAttribute;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+/* 36 */
+/***/ (function(module, exports) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLStringifier,
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ hasProp = {}.hasOwnProperty;
+
+ module.exports = XMLStringifier = (function() {
+ function XMLStringifier(options) {
+ this.assertLegalChar = bind(this.assertLegalChar, this);
+ var key, ref, value;
+ options || (options = {});
+ this.noDoubleEncoding = options.noDoubleEncoding;
+ ref = options.stringify || {};
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this[key] = value;
+ }
+ }
+
+ XMLStringifier.prototype.eleName = function(val) {
+ val = '' + val || '';
+ return this.assertLegalChar(val);
+ };
+
+ XMLStringifier.prototype.eleText = function(val) {
+ val = '' + val || '';
+ return this.assertLegalChar(this.elEscape(val));
+ };
+
+ XMLStringifier.prototype.cdata = function(val) {
+ val = '' + val || '';
+ val = val.replace(']]>', ']]]]>');
+ return this.assertLegalChar(val);
+ };
+
+ XMLStringifier.prototype.comment = function(val) {
+ val = '' + val || '';
+ if (val.match(/--/)) {
+ throw new Error("Comment text cannot contain double-hypen: " + val);
+ }
+ return this.assertLegalChar(val);
+ };
+
+ XMLStringifier.prototype.raw = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.attName = function(val) {
+ return val = '' + val || '';
+ };
+
+ XMLStringifier.prototype.attValue = function(val) {
+ val = '' + val || '';
+ return this.attEscape(val);
+ };
+
+ XMLStringifier.prototype.insTarget = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.insValue = function(val) {
+ val = '' + val || '';
+ if (val.match(/\?>/)) {
+ throw new Error("Invalid processing instruction value: " + val);
+ }
+ return val;
+ };
+
+ XMLStringifier.prototype.xmlVersion = function(val) {
+ val = '' + val || '';
+ if (!val.match(/1\.[0-9]+/)) {
+ throw new Error("Invalid version number: " + val);
+ }
+ return val;
+ };
+
+ XMLStringifier.prototype.xmlEncoding = function(val) {
+ val = '' + val || '';
+ if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {
+ throw new Error("Invalid encoding: " + val);
+ }
+ return val;
+ };
+
+ XMLStringifier.prototype.xmlStandalone = function(val) {
+ if (val) {
+ return "yes";
+ } else {
+ return "no";
+ }
+ };
+
+ XMLStringifier.prototype.dtdPubID = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.dtdSysID = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.dtdElementValue = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.dtdAttType = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.dtdAttDefault = function(val) {
+ if (val != null) {
+ return '' + val || '';
+ } else {
+ return val;
+ }
+ };
+
+ XMLStringifier.prototype.dtdEntityValue = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.dtdNData = function(val) {
+ return '' + val || '';
+ };
+
+ XMLStringifier.prototype.convertAttKey = '@';
+
+ XMLStringifier.prototype.convertPIKey = '?';
+
+ XMLStringifier.prototype.convertTextKey = '#text';
+
+ XMLStringifier.prototype.convertCDataKey = '#cdata';
+
+ XMLStringifier.prototype.convertCommentKey = '#comment';
+
+ XMLStringifier.prototype.convertRawKey = '#raw';
+
+ XMLStringifier.prototype.assertLegalChar = function(str) {
+ var res;
+ res = str.match(/[\0\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/);
+ if (res) {
+ throw new Error("Invalid character in string: " + str + " at index " + res.index);
+ }
+ return str;
+ };
+
+ XMLStringifier.prototype.elEscape = function(str) {
+ var ampregex;
+ ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
+ return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, '
');
+ };
+
+ XMLStringifier.prototype.attEscape = function(str) {
+ var ampregex;
+ ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g;
+ return str.replace(ampregex, '&').replace(/ 0) {
+ return new Array(indent).join(this.indent);
+ } else {
+ return '';
+ }
+ } else {
+ return '';
+ }
+ };
+
+ return XMLWriterBase;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+/* 38 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+/**/
+
+var pna = __webpack_require__(23);
+/**/
+
+module.exports = Readable;
+
+/**/
+var isArray = __webpack_require__(39);
+/**/
+
+/**/
+var Duplex;
+/**/
+
+Readable.ReadableState = ReadableState;
+
+/**/
+var EE = __webpack_require__(22).EventEmitter;
+
+var EElistenerCount = function (emitter, type) {
+ return emitter.listeners(type).length;
+};
+/**/
+
+/**/
+var Stream = __webpack_require__(40);
+/**/
+
+/**/
+
+var Buffer = __webpack_require__(24).Buffer;
+var OurUint8Array = global.Uint8Array || function () {};
+function _uint8ArrayToBuffer(chunk) {
+ return Buffer.from(chunk);
+}
+function _isUint8Array(obj) {
+ return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
+}
+
+/**/
+
+/**/
+var util = __webpack_require__(9);
+util.inherits = __webpack_require__(8);
+/**/
+
+/**/
+var debugUtil = __webpack_require__(70);
+var debug = void 0;
+if (debugUtil && debugUtil.debuglog) {
+ debug = debugUtil.debuglog('stream');
+} else {
+ debug = function () {};
+}
+/**/
+
+var BufferList = __webpack_require__(71);
+var destroyImpl = __webpack_require__(41);
+var StringDecoder;
+
+util.inherits(Readable, Stream);
+
+var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
+
+function prependListener(emitter, event, fn) {
+ // Sadly this is not cacheable as some libraries bundle their own
+ // event emitter implementation with them.
+ if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
+
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+}
+
+function ReadableState(options, stream) {
+ Duplex = Duplex || __webpack_require__(5);
+
+ options = options || {};
+
+ // Duplex streams are both readable and writable, but share
+ // the same options object.
+ // However, some cases require setting options to different
+ // values for the readable and the writable sides of the duplex stream.
+ // These options can be provided separately as readableXXX and writableXXX.
+ var isDuplex = stream instanceof Duplex;
+
+ // object stream flag. Used to make read(n) ignore n and to
+ // make all the buffer merging and length checks go away
+ this.objectMode = !!options.objectMode;
+
+ if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+
+ // the point at which it stops calling _read() to fill the buffer
+ // Note: 0 is a valid value, means "don't call _read preemptively ever"
+ var hwm = options.highWaterMark;
+ var readableHwm = options.readableHighWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
+
+ // cast to ints.
+ this.highWaterMark = Math.floor(this.highWaterMark);
+
+ // A linked list is used to store data chunks instead of an array because the
+ // linked list can remove elements from the beginning faster than
+ // array.shift()
+ this.buffer = new BufferList();
+ this.length = 0;
+ this.pipes = null;
+ this.pipesCount = 0;
+ this.flowing = null;
+ this.ended = false;
+ this.endEmitted = false;
+ this.reading = false;
+
+ // a flag to be able to tell if the event 'readable'/'data' is emitted
+ // immediately, or on a later tick. We set this to true at first, because
+ // any actions that shouldn't happen until "later" should generally also
+ // not happen before the first read call.
+ this.sync = true;
+
+ // whenever we return null, then we set a flag to say
+ // that we're awaiting a 'readable' event emission.
+ this.needReadable = false;
+ this.emittedReadable = false;
+ this.readableListening = false;
+ this.resumeScheduled = false;
+
+ // has it been destroyed
+ this.destroyed = false;
+
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+
+ // the number of writers that are awaiting a drain event in .pipe()s
+ this.awaitDrain = 0;
+
+ // if true, a maybeReadMore has been scheduled
+ this.readingMore = false;
+
+ this.decoder = null;
+ this.encoding = null;
+ if (options.encoding) {
+ if (!StringDecoder) StringDecoder = __webpack_require__(30).StringDecoder;
+ this.decoder = new StringDecoder(options.encoding);
+ this.encoding = options.encoding;
+ }
+}
+
+function Readable(options) {
+ Duplex = Duplex || __webpack_require__(5);
+
+ if (!(this instanceof Readable)) return new Readable(options);
+
+ this._readableState = new ReadableState(options, this);
+
+ // legacy
+ this.readable = true;
+
+ if (options) {
+ if (typeof options.read === 'function') this._read = options.read;
+
+ if (typeof options.destroy === 'function') this._destroy = options.destroy;
+ }
+
+ Stream.call(this);
+}
+
+Object.defineProperty(Readable.prototype, 'destroyed', {
+ get: function () {
+ if (this._readableState === undefined) {
+ return false;
+ }
+ return this._readableState.destroyed;
+ },
+ set: function (value) {
+ // we ignore the value if the stream
+ // has not been initialized yet
+ if (!this._readableState) {
+ return;
+ }
+
+ // backward compatibility, the user is explicitly
+ // managing destroyed
+ this._readableState.destroyed = value;
+ }
+});
+
+Readable.prototype.destroy = destroyImpl.destroy;
+Readable.prototype._undestroy = destroyImpl.undestroy;
+Readable.prototype._destroy = function (err, cb) {
+ this.push(null);
+ cb(err);
+};
+
+// Manually shove something into the read() buffer.
+// This returns true if the highWaterMark has not been hit yet,
+// similar to how Writable.write() returns true if you should
+// write() some more.
+Readable.prototype.push = function (chunk, encoding) {
+ var state = this._readableState;
+ var skipChunkCheck;
+
+ if (!state.objectMode) {
+ if (typeof chunk === 'string') {
+ encoding = encoding || state.defaultEncoding;
+ if (encoding !== state.encoding) {
+ chunk = Buffer.from(chunk, encoding);
+ encoding = '';
+ }
+ skipChunkCheck = true;
+ }
+ } else {
+ skipChunkCheck = true;
+ }
+
+ return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
+};
+
+// Unshift should *always* be something directly out of read()
+Readable.prototype.unshift = function (chunk) {
+ return readableAddChunk(this, chunk, null, true, false);
+};
+
+function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
+ var state = stream._readableState;
+ if (chunk === null) {
+ state.reading = false;
+ onEofChunk(stream, state);
+ } else {
+ var er;
+ if (!skipChunkCheck) er = chunkInvalid(state, chunk);
+ if (er) {
+ stream.emit('error', er);
+ } else if (state.objectMode || chunk && chunk.length > 0) {
+ if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
+ chunk = _uint8ArrayToBuffer(chunk);
+ }
+
+ if (addToFront) {
+ if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
+ } else if (state.ended) {
+ stream.emit('error', new Error('stream.push() after EOF'));
+ } else {
+ state.reading = false;
+ if (state.decoder && !encoding) {
+ chunk = state.decoder.write(chunk);
+ if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
+ } else {
+ addChunk(stream, state, chunk, false);
+ }
+ }
+ } else if (!addToFront) {
+ state.reading = false;
+ }
+ }
+
+ return needMoreData(state);
+}
+
+function addChunk(stream, state, chunk, addToFront) {
+ if (state.flowing && state.length === 0 && !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+
+ if (state.needReadable) emitReadable(stream);
+ }
+ maybeReadMore(stream, state);
+}
+
+function chunkInvalid(state, chunk) {
+ var er;
+ if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ return er;
+}
+
+// if it's past the high water mark, we can push in some more.
+// Also, if we have no data yet, we can stand some
+// more bytes. This is to work around cases where hwm=0,
+// such as the repl. Also, if the push() triggered a
+// readable event, and the user called read(largeNumber) such that
+// needReadable was set, then we ought to push more, so that another
+// 'readable' event will be triggered.
+function needMoreData(state) {
+ return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);
+}
+
+Readable.prototype.isPaused = function () {
+ return this._readableState.flowing === false;
+};
+
+// backwards compatibility.
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = __webpack_require__(30).StringDecoder;
+ this._readableState.decoder = new StringDecoder(enc);
+ this._readableState.encoding = enc;
+ return this;
+};
+
+// Don't raise the hwm > 8MB
+var MAX_HWM = 0x800000;
+function computeNewHighWaterMark(n) {
+ if (n >= MAX_HWM) {
+ n = MAX_HWM;
+ } else {
+ // Get the next highest power of 2 to prevent increasing hwm excessively in
+ // tiny amounts
+ n--;
+ n |= n >>> 1;
+ n |= n >>> 2;
+ n |= n >>> 4;
+ n |= n >>> 8;
+ n |= n >>> 16;
+ n++;
+ }
+ return n;
+}
+
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function howMuchToRead(n, state) {
+ if (n <= 0 || state.length === 0 && state.ended) return 0;
+ if (state.objectMode) return 1;
+ if (n !== n) {
+ // Only flow one buffer at a time
+ if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
+ }
+ // If we're asking for more than the current hwm, then raise the hwm.
+ if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+ if (n <= state.length) return n;
+ // Don't have enough
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
+ }
+ return state.length;
+}
+
+// you can override either this method, or the async _read(n) below.
+Readable.prototype.read = function (n) {
+ debug('read', n);
+ n = parseInt(n, 10);
+ var state = this._readableState;
+ var nOrig = n;
+
+ if (n !== 0) state.emittedReadable = false;
+
+ // if we're doing read(0) to trigger a readable event, but we
+ // already have a bunch of data in the buffer, then just trigger
+ // the 'readable' event and move on.
+ if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {
+ debug('read: emitReadable', state.length, state.ended);
+ if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);
+ return null;
+ }
+
+ n = howMuchToRead(n, state);
+
+ // if we've ended, and we're now clear, then finish it up.
+ if (n === 0 && state.ended) {
+ if (state.length === 0) endReadable(this);
+ return null;
+ }
+
+ // All the actual chunk generation logic needs to be
+ // *below* the call to _read. The reason is that in certain
+ // synthetic stream cases, such as passthrough streams, _read
+ // may be a completely synchronous operation which may change
+ // the state of the read buffer, providing enough data when
+ // before there was *not* enough.
+ //
+ // So, the steps are:
+ // 1. Figure out what the state of things will be after we do
+ // a read from the buffer.
+ //
+ // 2. If that resulting state will trigger a _read, then call _read.
+ // Note that this may be asynchronous, or synchronous. Yes, it is
+ // deeply ugly to write APIs this way, but that still doesn't mean
+ // that the Readable class should behave improperly, as streams are
+ // designed to be sync/async agnostic.
+ // Take note if the _read call is sync or async (ie, if the read call
+ // has returned yet), so that we know whether or not it's safe to emit
+ // 'readable' etc.
+ //
+ // 3. Actually pull the requested chunks out of the buffer and return.
+
+ // if we need a readable event, then we need to do some reading.
+ var doRead = state.needReadable;
+ debug('need readable', doRead);
+
+ // if we currently have less than the highWaterMark, then also read some
+ if (state.length === 0 || state.length - n < state.highWaterMark) {
+ doRead = true;
+ debug('length less than watermark', doRead);
+ }
+
+ // however, if we've ended, then there's no point, and if we're already
+ // reading, then it's unnecessary.
+ if (state.ended || state.reading) {
+ doRead = false;
+ debug('reading or ended', doRead);
+ } else if (doRead) {
+ debug('do read');
+ state.reading = true;
+ state.sync = true;
+ // if the length is currently zero, then we *need* a readable event.
+ if (state.length === 0) state.needReadable = true;
+ // call internal read method
+ this._read(state.highWaterMark);
+ state.sync = false;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (!state.reading) n = howMuchToRead(nOrig, state);
+ }
+
+ var ret;
+ if (n > 0) ret = fromList(n, state);else ret = null;
+
+ if (ret === null) {
+ state.needReadable = true;
+ n = 0;
+ } else {
+ state.length -= n;
+ }
+
+ if (state.length === 0) {
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (!state.ended) state.needReadable = true;
+
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n && state.ended) endReadable(this);
+ }
+
+ if (ret !== null) this.emit('data', ret);
+
+ return ret;
+};
+
+function onEofChunk(stream, state) {
+ if (state.ended) return;
+ if (state.decoder) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) {
+ state.buffer.push(chunk);
+ state.length += state.objectMode ? 1 : chunk.length;
+ }
+ }
+ state.ended = true;
+
+ // emit 'readable' now to make sure it gets picked up.
+ emitReadable(stream);
+}
+
+// Don't emit readable right away in sync mode, because this can trigger
+// another read() call => stack overflow. This way, it might trigger
+// a nextTick recursion warning, but that's not so bad.
+function emitReadable(stream) {
+ var state = stream._readableState;
+ state.needReadable = false;
+ if (!state.emittedReadable) {
+ debug('emitReadable', state.flowing);
+ state.emittedReadable = true;
+ if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
+ }
+}
+
+function emitReadable_(stream) {
+ debug('emit readable');
+ stream.emit('readable');
+ flow(stream);
+}
+
+// at this point, the user has presumably seen the 'readable' event,
+// and called read() to consume some data. that may have triggered
+// in turn another _read(n) call, in which case reading = true if
+// it's in progress.
+// However, if we're not ended, or reading, and the length < hwm,
+// then go ahead and try to read some more preemptively.
+function maybeReadMore(stream, state) {
+ if (!state.readingMore) {
+ state.readingMore = true;
+ pna.nextTick(maybeReadMore_, stream, state);
+ }
+}
+
+function maybeReadMore_(stream, state) {
+ var len = state.length;
+ while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
+ debug('maybeReadMore read 0');
+ stream.read(0);
+ if (len === state.length)
+ // didn't get any data, stop spinning.
+ break;else len = state.length;
+ }
+ state.readingMore = false;
+}
+
+// abstract method. to be overridden in specific implementation classes.
+// call cb(er, data) where data is <= n in length.
+// for virtual (non-string, non-buffer) streams, "length" is somewhat
+// arbitrary, and perhaps not very meaningful.
+Readable.prototype._read = function (n) {
+ this.emit('error', new Error('_read() is not implemented'));
+};
+
+Readable.prototype.pipe = function (dest, pipeOpts) {
+ var src = this;
+ var state = this._readableState;
+
+ switch (state.pipesCount) {
+ case 0:
+ state.pipes = dest;
+ break;
+ case 1:
+ state.pipes = [state.pipes, dest];
+ break;
+ default:
+ state.pipes.push(dest);
+ break;
+ }
+ state.pipesCount += 1;
+ debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
+
+ var endFn = doEnd ? onend : unpipe;
+ if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
+
+ dest.on('unpipe', onunpipe);
+ function onunpipe(readable, unpipeInfo) {
+ debug('onunpipe');
+ if (readable === src) {
+ if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
+ unpipeInfo.hasUnpiped = true;
+ cleanup();
+ }
+ }
+ }
+
+ function onend() {
+ debug('onend');
+ dest.end();
+ }
+
+ // when the dest drains, it reduces the awaitDrain counter
+ // on the source. This would be more elegant with a .once()
+ // handler in flow(), but adding and removing repeatedly is
+ // too slow.
+ var ondrain = pipeOnDrain(src);
+ dest.on('drain', ondrain);
+
+ var cleanedUp = false;
+ function cleanup() {
+ debug('cleanup');
+ // cleanup event handlers once the pipe is broken
+ dest.removeListener('close', onclose);
+ dest.removeListener('finish', onfinish);
+ dest.removeListener('drain', ondrain);
+ dest.removeListener('error', onerror);
+ dest.removeListener('unpipe', onunpipe);
+ src.removeListener('end', onend);
+ src.removeListener('end', unpipe);
+ src.removeListener('data', ondata);
+
+ cleanedUp = true;
+
+ // if the reader is waiting for a drain event from this
+ // specific writer, then it would cause it to never start
+ // flowing again.
+ // So, if this is awaiting a drain, then we just call it now.
+ // If we don't know, then assume that we are waiting for one.
+ if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
+ }
+
+ // If the user pushes more data while we're writing to dest then we'll end up
+ // in ondata again. However, we only want to increase awaitDrain once because
+ // dest will only emit one 'drain' event for the multiple writes.
+ // => Introduce a guard on increasing awaitDrain.
+ var increasedAwaitDrain = false;
+ src.on('data', ondata);
+ function ondata(chunk) {
+ debug('ondata');
+ increasedAwaitDrain = false;
+ var ret = dest.write(chunk);
+ if (false === ret && !increasedAwaitDrain) {
+ // If the user unpiped during `dest.write()`, it is possible
+ // to get stuck in a permanently paused state if that write
+ // also returned false.
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
+ debug('false write response, pause', src._readableState.awaitDrain);
+ src._readableState.awaitDrain++;
+ increasedAwaitDrain = true;
+ }
+ src.pause();
+ }
+ }
+
+ // if the dest has an error, then stop piping into it.
+ // however, don't suppress the throwing behavior for this.
+ function onerror(er) {
+ debug('onerror', er);
+ unpipe();
+ dest.removeListener('error', onerror);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
+ }
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
+
+ // Both close and finish should trigger unpipe, but only once.
+ function onclose() {
+ dest.removeListener('finish', onfinish);
+ unpipe();
+ }
+ dest.once('close', onclose);
+ function onfinish() {
+ debug('onfinish');
+ dest.removeListener('close', onclose);
+ unpipe();
+ }
+ dest.once('finish', onfinish);
+
+ function unpipe() {
+ debug('unpipe');
+ src.unpipe(dest);
+ }
+
+ // tell the dest that it's being piped to
+ dest.emit('pipe', src);
+
+ // start the flow if it hasn't been started already.
+ if (!state.flowing) {
+ debug('pipe resume');
+ src.resume();
+ }
+
+ return dest;
+};
+
+function pipeOnDrain(src) {
+ return function () {
+ var state = src._readableState;
+ debug('pipeOnDrain', state.awaitDrain);
+ if (state.awaitDrain) state.awaitDrain--;
+ if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {
+ state.flowing = true;
+ flow(src);
+ }
+ };
+}
+
+Readable.prototype.unpipe = function (dest) {
+ var state = this._readableState;
+ var unpipeInfo = { hasUnpiped: false };
+
+ // if we're not piping anywhere, then do nothing.
+ if (state.pipesCount === 0) return this;
+
+ // just one destination. most common case.
+ if (state.pipesCount === 1) {
+ // passed in one, but it's not the right one.
+ if (dest && dest !== state.pipes) return this;
+
+ if (!dest) dest = state.pipes;
+
+ // got a match.
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+ if (dest) dest.emit('unpipe', this, unpipeInfo);
+ return this;
+ }
+
+ // slow case. multiple pipe destinations.
+
+ if (!dest) {
+ // remove all.
+ var dests = state.pipes;
+ var len = state.pipesCount;
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+
+ for (var i = 0; i < len; i++) {
+ dests[i].emit('unpipe', this, unpipeInfo);
+ }return this;
+ }
+
+ // try to find the right one.
+ var index = indexOf(state.pipes, dest);
+ if (index === -1) return this;
+
+ state.pipes.splice(index, 1);
+ state.pipesCount -= 1;
+ if (state.pipesCount === 1) state.pipes = state.pipes[0];
+
+ dest.emit('unpipe', this, unpipeInfo);
+
+ return this;
+};
+
+// set up data events if they are asked for
+// Ensure readable listeners eventually get something
+Readable.prototype.on = function (ev, fn) {
+ var res = Stream.prototype.on.call(this, ev, fn);
+
+ if (ev === 'data') {
+ // Start flowing on next tick if stream isn't explicitly paused
+ if (this._readableState.flowing !== false) this.resume();
+ } else if (ev === 'readable') {
+ var state = this._readableState;
+ if (!state.endEmitted && !state.readableListening) {
+ state.readableListening = state.needReadable = true;
+ state.emittedReadable = false;
+ if (!state.reading) {
+ pna.nextTick(nReadingNextTick, this);
+ } else if (state.length) {
+ emitReadable(this);
+ }
+ }
+ }
+
+ return res;
+};
+Readable.prototype.addListener = Readable.prototype.on;
+
+function nReadingNextTick(self) {
+ debug('readable nexttick read 0');
+ self.read(0);
+}
+
+// pause() and resume() are remnants of the legacy readable stream API
+// If the user uses them, then switch into old mode.
+Readable.prototype.resume = function () {
+ var state = this._readableState;
+ if (!state.flowing) {
+ debug('resume');
+ state.flowing = true;
+ resume(this, state);
+ }
+ return this;
+};
+
+function resume(stream, state) {
+ if (!state.resumeScheduled) {
+ state.resumeScheduled = true;
+ pna.nextTick(resume_, stream, state);
+ }
+}
+
+function resume_(stream, state) {
+ if (!state.reading) {
+ debug('resume read 0');
+ stream.read(0);
+ }
+
+ state.resumeScheduled = false;
+ state.awaitDrain = 0;
+ stream.emit('resume');
+ flow(stream);
+ if (state.flowing && !state.reading) stream.read(0);
+}
+
+Readable.prototype.pause = function () {
+ debug('call pause flowing=%j', this._readableState.flowing);
+ if (false !== this._readableState.flowing) {
+ debug('pause');
+ this._readableState.flowing = false;
+ this.emit('pause');
+ }
+ return this;
+};
+
+function flow(stream) {
+ var state = stream._readableState;
+ debug('flow', state.flowing);
+ while (state.flowing && stream.read() !== null) {}
+}
+
+// wrap an old-style stream as the async data source.
+// This is *not* part of the readable stream interface.
+// It is an ugly unfortunate mess of history.
+Readable.prototype.wrap = function (stream) {
+ var _this = this;
+
+ var state = this._readableState;
+ var paused = false;
+
+ stream.on('end', function () {
+ debug('wrapped end');
+ if (state.decoder && !state.ended) {
+ var chunk = state.decoder.end();
+ if (chunk && chunk.length) _this.push(chunk);
+ }
+
+ _this.push(null);
+ });
+
+ stream.on('data', function (chunk) {
+ debug('wrapped data');
+ if (state.decoder) chunk = state.decoder.write(chunk);
+
+ // don't skip over falsy values in objectMode
+ if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
+
+ var ret = _this.push(chunk);
+ if (!ret) {
+ paused = true;
+ stream.pause();
+ }
+ });
+
+ // proxy all the other methods.
+ // important when wrapping filters and duplexes.
+ for (var i in stream) {
+ if (this[i] === undefined && typeof stream[i] === 'function') {
+ this[i] = function (method) {
+ return function () {
+ return stream[method].apply(stream, arguments);
+ };
+ }(i);
+ }
+ }
+
+ // proxy certain important events.
+ for (var n = 0; n < kProxyEvents.length; n++) {
+ stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
+ }
+
+ // when we try to consume some more bytes, simply unpause the
+ // underlying stream.
+ this._read = function (n) {
+ debug('wrapped _read', n);
+ if (paused) {
+ paused = false;
+ stream.resume();
+ }
+ };
+
+ return this;
+};
+
+// exposed for testing purposes only.
+Readable._fromList = fromList;
+
+// Pluck off n bytes from an array of buffers.
+// Length is the combined lengths of all the buffers in the list.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromList(n, state) {
+ // nothing buffered
+ if (state.length === 0) return null;
+
+ var ret;
+ if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {
+ // read it all, truncate the list
+ if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
+ state.buffer.clear();
+ } else {
+ // read part of list
+ ret = fromListPartial(n, state.buffer, state.decoder);
+ }
+
+ return ret;
+}
+
+// Extracts only enough buffered data to satisfy the amount requested.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function fromListPartial(n, list, hasStrings) {
+ var ret;
+ if (n < list.head.data.length) {
+ // slice is the same for buffers and strings
+ ret = list.head.data.slice(0, n);
+ list.head.data = list.head.data.slice(n);
+ } else if (n === list.head.data.length) {
+ // first chunk is a perfect match
+ ret = list.shift();
+ } else {
+ // result spans more than one buffer
+ ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
+ }
+ return ret;
+}
+
+// Copies a specified amount of characters from the list of buffered data
+// chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBufferString(n, list) {
+ var p = list.head;
+ var c = 1;
+ var ret = p.data;
+ n -= ret.length;
+ while (p = p.next) {
+ var str = p.data;
+ var nb = n > str.length ? str.length : n;
+ if (nb === str.length) ret += str;else ret += str.slice(0, n);
+ n -= nb;
+ if (n === 0) {
+ if (nb === str.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = str.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+// Copies a specified amount of bytes from the list of buffered data chunks.
+// This function is designed to be inlinable, so please take care when making
+// changes to the function body.
+function copyFromBuffer(n, list) {
+ var ret = Buffer.allocUnsafe(n);
+ var p = list.head;
+ var c = 1;
+ p.data.copy(ret);
+ n -= p.data.length;
+ while (p = p.next) {
+ var buf = p.data;
+ var nb = n > buf.length ? buf.length : n;
+ buf.copy(ret, ret.length - n, 0, nb);
+ n -= nb;
+ if (n === 0) {
+ if (nb === buf.length) {
+ ++c;
+ if (p.next) list.head = p.next;else list.head = list.tail = null;
+ } else {
+ list.head = p;
+ p.data = buf.slice(nb);
+ }
+ break;
+ }
+ ++c;
+ }
+ list.length -= c;
+ return ret;
+}
+
+function endReadable(stream) {
+ var state = stream._readableState;
+
+ // If we get here before consuming all the bytes, then that is a
+ // bug in node. Should never happen.
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
+
+ if (!state.endEmitted) {
+ state.ended = true;
+ pna.nextTick(endReadableNT, state, stream);
+ }
+}
+
+function endReadableNT(state, stream) {
+ // Check that we didn't get one last unshift.
+ if (!state.endEmitted && state.length === 0) {
+ state.endEmitted = true;
+ stream.readable = false;
+ stream.emit('end');
+ }
+}
+
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ f(xs[i], i);
+ }
+}
+
+function indexOf(xs, x) {
+ for (var i = 0, l = xs.length; i < l; i++) {
+ if (xs[i] === x) return i;
+ }
+ return -1;
+}
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4), __webpack_require__(6)))
+
+/***/ }),
+/* 39 */
+/***/ (function(module, exports) {
+
+var toString = {}.toString;
+
+module.exports = Array.isArray || function (arr) {
+ return toString.call(arr) == '[object Array]';
+};
+
+
+/***/ }),
+/* 40 */
+/***/ (function(module, exports, __webpack_require__) {
+
+module.exports = __webpack_require__(22).EventEmitter;
+
+
+/***/ }),
+/* 41 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+/**/
+
+var pna = __webpack_require__(23);
+/**/
+
+// undocumented cb() API, needed for core, not for public API
+function destroy(err, cb) {
+ var _this = this;
+
+ var readableDestroyed = this._readableState && this._readableState.destroyed;
+ var writableDestroyed = this._writableState && this._writableState.destroyed;
+
+ if (readableDestroyed || writableDestroyed) {
+ if (cb) {
+ cb(err);
+ } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
+ pna.nextTick(emitErrorNT, this, err);
+ }
+ return this;
+ }
+
+ // we set destroyed to true before firing error callbacks in order
+ // to make it re-entrance safe in case destroy() is called within callbacks
+
+ if (this._readableState) {
+ this._readableState.destroyed = true;
+ }
+
+ // if this is a duplex stream mark the writable part as destroyed as well
+ if (this._writableState) {
+ this._writableState.destroyed = true;
+ }
+
+ this._destroy(err || null, function (err) {
+ if (!cb && err) {
+ pna.nextTick(emitErrorNT, _this, err);
+ if (_this._writableState) {
+ _this._writableState.errorEmitted = true;
+ }
+ } else if (cb) {
+ cb(err);
+ }
+ });
+
+ return this;
+}
+
+function undestroy() {
+ if (this._readableState) {
+ this._readableState.destroyed = false;
+ this._readableState.reading = false;
+ this._readableState.ended = false;
+ this._readableState.endEmitted = false;
+ }
+
+ if (this._writableState) {
+ this._writableState.destroyed = false;
+ this._writableState.ended = false;
+ this._writableState.ending = false;
+ this._writableState.finished = false;
+ this._writableState.errorEmitted = false;
+ }
+}
+
+function emitErrorNT(self, err) {
+ self.emit('error', err);
+}
+
+module.exports = {
+ destroy: destroy,
+ undestroy: undestroy
+};
+
+/***/ }),
+/* 42 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* WEBPACK VAR INJECTION */(function(global) {var apply = Function.prototype.apply;
+
+// DOM APIs, for completeness
+
+exports.setTimeout = function() {
+ return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);
+};
+exports.setInterval = function() {
+ return new Timeout(apply.call(setInterval, window, arguments), clearInterval);
+};
+exports.clearTimeout =
+exports.clearInterval = function(timeout) {
+ if (timeout) {
+ timeout.close();
+ }
+};
+
+function Timeout(id, clearFn) {
+ this._id = id;
+ this._clearFn = clearFn;
+}
+Timeout.prototype.unref = Timeout.prototype.ref = function() {};
+Timeout.prototype.close = function() {
+ this._clearFn.call(window, this._id);
+};
+
+// Does not start the time, just sets up the members needed.
+exports.enroll = function(item, msecs) {
+ clearTimeout(item._idleTimeoutId);
+ item._idleTimeout = msecs;
+};
+
+exports.unenroll = function(item) {
+ clearTimeout(item._idleTimeoutId);
+ item._idleTimeout = -1;
+};
+
+exports._unrefActive = exports.active = function(item) {
+ clearTimeout(item._idleTimeoutId);
+
+ var msecs = item._idleTimeout;
+ if (msecs >= 0) {
+ item._idleTimeoutId = setTimeout(function onTimeout() {
+ if (item._onTimeout)
+ item._onTimeout();
+ }, msecs);
+ }
+};
+
+// setimmediate attaches itself to the global object
+__webpack_require__(73);
+// On some exotic environments, it's not clear which object `setimmeidate` was
+// able to install onto. Search each possibility in the same order as the
+// `setimmediate` library.
+exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
+ (typeof global !== "undefined" && global.setImmediate) ||
+ (this && this.setImmediate);
+exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
+ (typeof global !== "undefined" && global.clearImmediate) ||
+ (this && this.clearImmediate);
+
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
+
+/***/ }),
+/* 43 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+// a transform stream is a readable/writable stream where you do
+// something with the data. Sometimes it's called a "filter",
+// but that's not a great name for it, since that implies a thing where
+// some bits pass through, and others are simply ignored. (That would
+// be a valid example of a transform, of course.)
+//
+// While the output is causally related to the input, it's not a
+// necessarily symmetric or synchronous transformation. For example,
+// a zlib stream might take multiple plain-text writes(), and then
+// emit a single compressed chunk some time in the future.
+//
+// Here's how this works:
+//
+// The Transform stream has all the aspects of the readable and writable
+// stream classes. When you write(chunk), that calls _write(chunk,cb)
+// internally, and returns false if there's a lot of pending writes
+// buffered up. When you call read(), that calls _read(n) until
+// there's enough pending readable data buffered up.
+//
+// In a transform stream, the written data is placed in a buffer. When
+// _read(n) is called, it transforms the queued up data, calling the
+// buffered _write cb's as it consumes chunks. If consuming a single
+// written chunk would result in multiple output chunks, then the first
+// outputted bit calls the readcb, and subsequent chunks just go into
+// the read buffer, and will cause it to emit 'readable' if necessary.
+//
+// This way, back-pressure is actually determined by the reading side,
+// since _read has to be called to start processing a new chunk. However,
+// a pathological inflate type of transform can cause excessive buffering
+// here. For example, imagine a stream where every byte of input is
+// interpreted as an integer from 0-255, and then results in that many
+// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
+// 1kb of data being output. In this case, you could write a very small
+// amount of input, and end up with a very large amount of output. In
+// such a pathological inflating mechanism, there'd be no way to tell
+// the system to stop doing the transform. A single 4MB write could
+// cause the system to run out of memory.
+//
+// However, even in such a pathological case, only a single written chunk
+// would be consumed, and then the rest would wait (un-transformed) until
+// the results of the previous transformed chunk were consumed.
+
+
+
+module.exports = Transform;
+
+var Duplex = __webpack_require__(5);
+
+/**/
+var util = __webpack_require__(9);
+util.inherits = __webpack_require__(8);
+/**/
+
+util.inherits(Transform, Duplex);
+
+function afterTransform(er, data) {
+ var ts = this._transformState;
+ ts.transforming = false;
+
+ var cb = ts.writecb;
+
+ if (!cb) {
+ return this.emit('error', new Error('write callback called multiple times'));
+ }
+
+ ts.writechunk = null;
+ ts.writecb = null;
+
+ if (data != null) // single equals check for both `null` and `undefined`
+ this.push(data);
+
+ cb(er);
+
+ var rs = this._readableState;
+ rs.reading = false;
+ if (rs.needReadable || rs.length < rs.highWaterMark) {
+ this._read(rs.highWaterMark);
+ }
+}
+
+function Transform(options) {
+ if (!(this instanceof Transform)) return new Transform(options);
+
+ Duplex.call(this, options);
+
+ this._transformState = {
+ afterTransform: afterTransform.bind(this),
+ needTransform: false,
+ transforming: false,
+ writecb: null,
+ writechunk: null,
+ writeencoding: null
+ };
+
+ // start out asking for a readable event once data is transformed.
+ this._readableState.needReadable = true;
+
+ // we have implemented the _read method, and done the other things
+ // that Readable wants before the first _read call, so unset the
+ // sync guard flag.
+ this._readableState.sync = false;
+
+ if (options) {
+ if (typeof options.transform === 'function') this._transform = options.transform;
+
+ if (typeof options.flush === 'function') this._flush = options.flush;
+ }
+
+ // When the writable side finishes, then flush out anything remaining.
+ this.on('prefinish', prefinish);
+}
+
+function prefinish() {
+ var _this = this;
+
+ if (typeof this._flush === 'function') {
+ this._flush(function (er, data) {
+ done(_this, er, data);
+ });
+ } else {
+ done(this, null, null);
+ }
+}
+
+Transform.prototype.push = function (chunk, encoding) {
+ this._transformState.needTransform = false;
+ return Duplex.prototype.push.call(this, chunk, encoding);
+};
+
+// This is the part where you do stuff!
+// override this function in implementation classes.
+// 'chunk' is an input chunk.
+//
+// Call `push(newChunk)` to pass along transformed output
+// to the readable side. You may call 'push' zero or more times.
+//
+// Call `cb(err)` when you are done with this chunk. If you pass
+// an error, then that'll put the hurt on the whole operation. If you
+// never call cb(), then you'll never get another chunk.
+Transform.prototype._transform = function (chunk, encoding, cb) {
+ throw new Error('_transform() is not implemented');
+};
+
+Transform.prototype._write = function (chunk, encoding, cb) {
+ var ts = this._transformState;
+ ts.writecb = cb;
+ ts.writechunk = chunk;
+ ts.writeencoding = encoding;
+ if (!ts.transforming) {
+ var rs = this._readableState;
+ if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
+ }
+};
+
+// Doesn't matter what the args are here.
+// _transform does all the work.
+// That we got here means that the readable side wants more data.
+Transform.prototype._read = function (n) {
+ var ts = this._transformState;
+
+ if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
+ ts.transforming = true;
+ this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+ } else {
+ // mark that we need a transform, so that any data that comes in
+ // will get processed, now that we've asked for it.
+ ts.needTransform = true;
+ }
+};
+
+Transform.prototype._destroy = function (err, cb) {
+ var _this2 = this;
+
+ Duplex.prototype._destroy.call(this, err, function (err2) {
+ cb(err2);
+ _this2.emit('close');
+ });
+};
+
+function done(stream, er, data) {
+ if (er) return stream.emit('error', er);
+
+ if (data != null) // single equals check for both `null` and `undefined`
+ stream.push(data);
+
+ // if there's nothing in the write buffer, then that means
+ // that nothing more will ever be provided
+ if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
+
+ if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
+
+ return stream.push(null);
+}
+
+/***/ }),
+/* 44 */
+/***/ (function(module, exports) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var prefixMatch;
+
+ prefixMatch = new RegExp(/(?!xmlns)^.*:/);
+
+ exports.normalize = function(str) {
+ return str.toLowerCase();
+ };
+
+ exports.firstCharLowerCase = function(str) {
+ return str.charAt(0).toLowerCase() + str.slice(1);
+ };
+
+ exports.stripPrefix = function(str) {
+ return str.replace(prefixMatch, '');
+ };
+
+ exports.parseNumbers = function(str) {
+ if (!isNaN(str)) {
+ str = str % 1 === 0 ? parseInt(str, 10) : parseFloat(str);
+ }
+ return str;
+ };
+
+ exports.parseBooleans = function(str) {
+ if (/^(?:true|false)$/i.test(str)) {
+ str = str.toLowerCase() === 'true';
+ }
+ return str;
+ };
+
+}).call(this);
+
+
+/***/ }),
+/* 45 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1124,12 +6222,13 @@ exports.HttpOperationResponse = HttpOperationResponse;
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
-var utils = __webpack_require__(0);
-var moment_1 = __webpack_require__(23);
-var isBuffer = __webpack_require__(25);
-var isStream = __webpack_require__(10);
+var utils = __webpack_require__(1);
+var moment_1 = __webpack_require__(82);
+var isStream = __webpack_require__(46);
+var isBuffer = __webpack_require__(84);
var Serializer = /** @class */ (function () {
- function Serializer(mappers) {
+ function Serializer(mappers, isXML) {
+ this.isXML = isXML;
this.modelMappers = mappers;
}
Serializer.prototype.validateConstraints = function (mapper, value, objectName) {
@@ -1427,45 +6526,69 @@ var Serializer = /** @class */ (function () {
("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for object \"" + objectName + "\"."));
}
}
- for (var key in modelProps) {
- if (modelProps.hasOwnProperty(key)) {
- var paths = this.splitSerializeName(modelProps[key].serializedName);
- var propName = paths.pop();
- var parentObject = payload;
- for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
- var pathName = paths_1[_i];
+ for (var _i = 0, _a = Object.keys(modelProps); _i < _a.length; _i++) {
+ var key = _a[_i];
+ var propertyMapper = modelProps[key];
+ var propName = void 0;
+ var parentObject = payload;
+ if (this.isXML) {
+ if (propertyMapper.xmlIsWrapped) {
+ propName = propertyMapper.xmlName;
+ }
+ else {
+ propName = propertyMapper.xmlElementName || propertyMapper.xmlName;
+ }
+ }
+ else {
+ var paths = this.splitSerializeName(propertyMapper.serializedName);
+ propName = paths.pop();
+ for (var _b = 0, paths_1 = paths; _b < paths_1.length; _b++) {
+ var pathName = paths_1[_b];
var childObject = parentObject[pathName];
if ((childObject === null || childObject === undefined) && (object[key] !== null && object[key] !== undefined)) {
parentObject[pathName] = {};
}
parentObject = parentObject[pathName];
}
- // make sure required properties of the CompositeType are present
- if (modelProps[key].required && !modelProps[key].isConstant) {
- if (object[key] === null || object[key] === undefined) {
- throw new Error(key + "\" cannot be null or undefined in \"" + objectName + "\".");
+ }
+ // make sure required properties of the CompositeType are present
+ if (propertyMapper.required && !propertyMapper.isConstant) {
+ if (object[key] == undefined) {
+ throw new Error(key + "\" cannot be null or undefined in \"" + objectName + "\".");
+ }
+ }
+ // make sure that readOnly properties are not sent on the wire
+ if (propertyMapper.readOnly) {
+ continue;
+ }
+ // serialize the property if it is present in the provided object instance
+ if (((parentObject !== null && parentObject !== undefined) && (propertyMapper.defaultValue !== null && propertyMapper.defaultValue !== undefined)) ||
+ (object[key] !== null && object[key] !== undefined)) {
+ var propertyObjectName = propertyMapper.serializedName !== ""
+ ? objectName + "." + propertyMapper.serializedName
+ : objectName;
+ var serializedValue = this.serialize(propertyMapper, object[key], propertyObjectName);
+ if (propName !== null && propName !== undefined) {
+ if (propertyMapper.xmlIsAttribute) {
+ // $ is the key attributes are kept under in xml2js.
+ // This keeps things simple while preventing name collision
+ // with names in user documents.
+ parentObject.$ = parentObject.$ || {};
+ parentObject.$[propName] = serializedValue;
}
- }
- // make sure that readOnly properties are not sent on the wire
- if (modelProps[key].readOnly) {
- continue;
- }
- // serialize the property if it is present in the provided object instance
- if (((parentObject !== null && parentObject !== undefined) && (modelProps[key].defaultValue !== null && modelProps[key].defaultValue !== undefined)) ||
- (object[key] !== null && object[key] !== undefined)) {
- var propertyObjectName = objectName;
- if (modelProps[key].serializedName !== "")
- propertyObjectName = objectName + "." + modelProps[key].serializedName;
- var propertyMapper = modelProps[key];
- var serializedValue = this.serialize(propertyMapper, object[key], propertyObjectName);
- if (propName !== null && propName !== undefined)
+ else if (propertyMapper.xmlIsWrapped) {
+ parentObject[propName] = (_c = {}, _c[propertyMapper.xmlElementName] = serializedValue, _c);
+ }
+ else {
parentObject[propName] = serializedValue;
+ }
}
}
}
return payload;
}
return object;
+ var _c;
};
/**
* Serialize the given object based on its metadata defined in the mapper
@@ -1542,57 +6665,75 @@ var Serializer = /** @class */ (function () {
name: "Composite"
}
};
- if (responseBody !== null && responseBody !== undefined) {
- var modelProps = mapper.type.modelProperties;
+ responseBody = responseBody || {};
+ var modelProps = mapper.type.modelProperties;
+ if (!modelProps) {
+ if (!mapper.type.className) {
+ throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper) + "\"");
+ }
+ // get the mapper if modelProperties of the CompositeType is not present and
+ // then get the modelProperties from it.
+ modelMapper = this.modelMappers[mapper.type.className];
+ if (!modelMapper) {
+ throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"");
+ }
+ modelProps = modelMapper.type.modelProperties;
if (!modelProps) {
- if (!mapper.type.className) {
- throw new Error("Class name for model \"" + objectName + "\" is not provided in the mapper \"" + JSON.stringify(mapper) + "\"");
- }
- // get the mapper if modelProperties of the CompositeType is not present and
- // then get the modelProperties from it.
- modelMapper = this.modelMappers[mapper.type.className];
- if (!modelMapper) {
- throw new Error("mapper() cannot be null or undefined for model \"" + mapper.type.className + "\"");
- }
- modelProps = modelMapper.type.modelProperties;
- if (!modelProps) {
- throw new Error("modelProperties cannot be null or undefined in the " +
- ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for responseBody \"" + objectName + "\"."));
- }
+ throw new Error("modelProperties cannot be null or undefined in the " +
+ ("mapper \"" + JSON.stringify(modelMapper) + "\" of type \"" + mapper.type.className + "\" for responseBody \"" + objectName + "\"."));
}
- for (var key in modelProps) {
- if (modelProps.hasOwnProperty(key)) {
- var paths = this.splitSerializeName(modelProps[key].serializedName);
- // deserialize the property if it is present in the provided responseBody instance
- var propertyInstance = void 0;
- var res = responseBody;
- // traversing the object step by step.
- for (var _i = 0, paths_2 = paths; _i < paths_2.length; _i++) {
- var item = paths_2[_i];
- if (!res)
- break;
- res = res[item];
- }
- propertyInstance = res;
- var propertyObjectName = objectName;
- if (modelProps[key].serializedName !== "")
- propertyObjectName = objectName + "." + modelProps[key].serializedName;
- var propertyMapper = modelProps[key];
- var serializedValue = void 0;
- // paging
- if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
- propertyInstance = responseBody[key];
- instance = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
- }
- else if (propertyInstance !== null && propertyInstance !== undefined) {
- serializedValue = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
- instance[key] = serializedValue;
- }
- }
- }
- return instance;
}
- return responseBody;
+ for (var _i = 0, _a = Object.keys(modelProps); _i < _a.length; _i++) {
+ var key = _a[_i];
+ var propertyMapper = modelProps[key];
+ var propertyObjectName = objectName;
+ if (propertyMapper.serializedName !== "") {
+ propertyObjectName = objectName + "." + propertyMapper.serializedName;
+ }
+ if (this.isXML) {
+ if (propertyMapper.xmlIsAttribute && responseBody.$) {
+ instance[key] = this.deserialize(propertyMapper, responseBody.$[propertyMapper.xmlName], propertyObjectName);
+ }
+ else {
+ var propertyName = propertyMapper.xmlElementName || propertyMapper.xmlName;
+ var unwrappedProperty = responseBody[propertyName];
+ if (propertyMapper.xmlIsWrapped) {
+ unwrappedProperty = responseBody[propertyMapper.xmlName];
+ unwrappedProperty = unwrappedProperty && unwrappedProperty[propertyMapper.xmlElementName];
+ if (unwrappedProperty === undefined) {
+ // undefined means a wrapped list was empty
+ unwrappedProperty = [];
+ }
+ }
+ instance[key] = this.deserialize(propertyMapper, unwrappedProperty, propertyObjectName);
+ }
+ }
+ else {
+ var paths = this.splitSerializeName(modelProps[key].serializedName);
+ // deserialize the property if it is present in the provided responseBody instance
+ var propertyInstance = void 0;
+ var res = responseBody;
+ // traversing the object step by step.
+ for (var _b = 0, paths_2 = paths; _b < paths_2.length; _b++) {
+ var item = paths_2[_b];
+ if (!res)
+ break;
+ res = res[item];
+ }
+ propertyInstance = res;
+ var serializedValue = void 0;
+ // paging
+ if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") {
+ propertyInstance = responseBody[key];
+ instance = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
+ }
+ else if (propertyInstance !== null && propertyInstance !== undefined) {
+ serializedValue = this.deserialize(propertyMapper, propertyInstance, propertyObjectName);
+ instance[key] = serializedValue;
+ }
+ }
+ }
+ return instance;
};
Serializer.prototype.deserializeDictionaryType = function (mapper, responseBody, objectName) {
/*jshint validthis: true */
@@ -1618,6 +6759,10 @@ var Serializer = /** @class */ (function () {
("mapper and it must of type \"object\" in " + objectName));
}
if (responseBody) {
+ if (!Array.isArray(responseBody)) {
+ // xml2js will interpret a single element array as just the element, so force it to be an array
+ responseBody = [responseBody];
+ }
var tempArray = [];
for (var i = 0; i < responseBody.length; i++) {
tempArray[i] = this.deserialize(mapper.type.element, responseBody[i], objectName);
@@ -1638,15 +6783,51 @@ var Serializer = /** @class */ (function () {
* @returns {object|string|Array|number|boolean|Date|stream} A valid deserialized Javascript object
*/
Serializer.prototype.deserialize = function (mapper, responseBody, objectName) {
- if (responseBody === null || responseBody === undefined)
+ if (responseBody == undefined) {
+ if (this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped) {
+ // Edge case for empty XML non-wrapped lists. xml2js can't distinguish
+ // between the list being empty versus being missing,
+ // so let's do the more user-friendly thing and return an empty list.
+ responseBody = [];
+ }
+ else {
+ return responseBody;
+ }
return responseBody;
+ }
var payload;
var mapperType = mapper.type.name;
- if (!objectName)
+ if (!objectName) {
objectName = mapper.serializedName;
- if (mapperType.match(/^Sequence$/ig) !== null)
- payload = [];
- if (mapperType.match(/^(Number|String|Boolean|Enum|Object|Stream|Uuid|any)$/ig) !== null) {
+ }
+ if (mapperType.match(/^Number$/ig) !== null) {
+ if (this.isXML) {
+ payload = parseFloat(responseBody);
+ if (isNaN(payload)) {
+ payload = responseBody;
+ }
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else if (mapperType.match(/^Boolean$/ig) !== null) {
+ if (this.isXML) {
+ if (responseBody === "true") {
+ payload = true;
+ }
+ else if (responseBody === "false") {
+ payload = false;
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else {
+ payload = responseBody;
+ }
+ }
+ else if (mapperType.match(/^(String|Enum|Object|Stream|Uuid|any)$/ig) !== null) {
payload = responseBody;
}
else if (mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/ig) !== null) {
@@ -1673,8 +6854,9 @@ var Serializer = /** @class */ (function () {
else if (mapperType.match(/^Composite$/ig) !== null) {
payload = this.deserializeCompositeType(mapper, responseBody, objectName);
}
- if (mapper.isConstant)
+ if (mapper.isConstant) {
payload = mapper.defaultValue;
+ }
return payload;
};
Serializer.prototype.getPolymorphicMapper = function (mapper, object, objectName, mode) {
@@ -1817,7 +6999,7 @@ exports.MapperType = utils.strEnum([
/***/ }),
-/* 10 */
+/* 46 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1845,7 +7027,7 @@ isStream.transform = function (stream) {
/***/ }),
-/* 11 */
+/* 47 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1853,7 +7035,7 @@ isStream.transform = function (stream) {
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
-var utils = __webpack_require__(0);
+var utils = __webpack_require__(1);
var RequestPipeline = /** @class */ (function () {
function RequestPipeline(filters, requestOptions) {
this.filters = filters || [];
@@ -1903,7 +7085,7 @@ exports.RequestPipeline = RequestPipeline;
/***/ }),
-/* 12 */
+/* 48 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1956,8 +7138,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
};
Object.defineProperty(exports, "__esModule", { value: true });
-var baseFilter_1 = __webpack_require__(1);
-var utils = __webpack_require__(0);
+var baseFilter_1 = __webpack_require__(3);
+var utils = __webpack_require__(1);
/**
* @class
* Instantiates a new "ExponentialRetryPolicyFilter" instance.
@@ -2076,7 +7258,7 @@ exports.ExponentialRetryPolicyFilter = ExponentialRetryPolicyFilter;
/***/ }),
-/* 13 */
+/* 49 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2129,8 +7311,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
};
Object.defineProperty(exports, "__esModule", { value: true });
-var baseFilter_1 = __webpack_require__(1);
-var utils = __webpack_require__(0);
+var baseFilter_1 = __webpack_require__(3);
+var utils = __webpack_require__(1);
/**
* @class
* Instantiates a new "ExponentialRetryPolicyFilter" instance.
@@ -2247,7 +7429,7 @@ exports.SystemErrorRetryPolicyFilter = SystemErrorRetryPolicyFilter;
/***/ }),
-/* 14 */
+/* 50 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2300,9 +7482,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
Object.defineProperty(exports, "__esModule", { value: true });
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
-var baseFilter_1 = __webpack_require__(1);
-var utils = __webpack_require__(0);
-var parse = __webpack_require__(27);
+var baseFilter_1 = __webpack_require__(3);
+var utils = __webpack_require__(1);
+var parse = __webpack_require__(86);
var RedirectFilter = /** @class */ (function (_super) {
__extends(RedirectFilter, _super);
function RedirectFilter(maximumRetries) {
@@ -2362,7 +7544,7 @@ exports.RedirectFilter = RedirectFilter;
/***/ }),
-/* 15 */
+/* 51 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2380,7 +7562,7 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var baseFilter_1 = __webpack_require__(1);
+var baseFilter_1 = __webpack_require__(3);
var SigningFilter = /** @class */ (function (_super) {
__extends(SigningFilter, _super);
function SigningFilter(authenticationProvider) {
@@ -2398,7 +7580,7 @@ exports.SigningFilter = SigningFilter;
/***/ }),
-/* 16 */
+/* 52 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2416,10 +7598,10 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var baseFilter_1 = __webpack_require__(1);
-var constants_1 = __webpack_require__(2);
-var utils_1 = __webpack_require__(0);
-var os = __webpack_require__(32);
+var baseFilter_1 = __webpack_require__(3);
+var constants_1 = __webpack_require__(7);
+var utils_1 = __webpack_require__(1);
+var os = __webpack_require__(90);
var HeaderConstants = constants_1.Constants.HeaderConstants;
var MsRestUserAgentFilter = /** @class */ (function (_super) {
__extends(MsRestUserAgentFilter, _super);
@@ -2467,10 +7649,10 @@ var MsRestUserAgentFilter = /** @class */ (function (_super) {
}(baseFilter_1.BaseFilter));
exports.MsRestUserAgentFilter = MsRestUserAgentFilter;
-/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
+/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(6)))
/***/ }),
-/* 17 */
+/* 53 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2478,37 +7660,37 @@ exports.MsRestUserAgentFilter = MsRestUserAgentFilter;
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
Object.defineProperty(exports, "__esModule", { value: true });
-var webResource_1 = __webpack_require__(3);
+var webResource_1 = __webpack_require__(25);
exports.WebResource = webResource_1.WebResource;
-var httpOperationResponse_1 = __webpack_require__(8);
+var httpOperationResponse_1 = __webpack_require__(34);
exports.HttpOperationResponse = httpOperationResponse_1.HttpOperationResponse;
-var restError_1 = __webpack_require__(7);
+var restError_1 = __webpack_require__(33);
exports.RestError = restError_1.RestError;
-var serviceClient_1 = __webpack_require__(26);
+var serviceClient_1 = __webpack_require__(85);
exports.ServiceClient = serviceClient_1.ServiceClient;
-var constants_1 = __webpack_require__(2);
+var constants_1 = __webpack_require__(7);
exports.Constants = constants_1.Constants;
-var requestPipeline_1 = __webpack_require__(11);
+var requestPipeline_1 = __webpack_require__(47);
exports.RequestPipeline = requestPipeline_1.RequestPipeline;
-var logFilter_1 = __webpack_require__(33);
+var logFilter_1 = __webpack_require__(91);
exports.LogFilter = logFilter_1.LogFilter;
-var baseFilter_1 = __webpack_require__(1);
+var baseFilter_1 = __webpack_require__(3);
exports.BaseFilter = baseFilter_1.BaseFilter;
-var exponentialRetryPolicyFilter_1 = __webpack_require__(12);
+var exponentialRetryPolicyFilter_1 = __webpack_require__(48);
exports.ExponentialRetryPolicyFilter = exponentialRetryPolicyFilter_1.ExponentialRetryPolicyFilter;
-var systemErrorRetryPolicyFilter_1 = __webpack_require__(13);
+var systemErrorRetryPolicyFilter_1 = __webpack_require__(49);
exports.SystemErrorRetryPolicyFilter = systemErrorRetryPolicyFilter_1.SystemErrorRetryPolicyFilter;
-var redirectFilter_1 = __webpack_require__(14);
+var redirectFilter_1 = __webpack_require__(50);
exports.RedirectFilter = redirectFilter_1.RedirectFilter;
-var signingFilter_1 = __webpack_require__(15);
+var signingFilter_1 = __webpack_require__(51);
exports.SigningFilter = signingFilter_1.SigningFilter;
-var msRestUserAgentFilter_1 = __webpack_require__(16);
+var msRestUserAgentFilter_1 = __webpack_require__(52);
exports.MsRestUserAgentFilter = msRestUserAgentFilter_1.MsRestUserAgentFilter;
-var serializer_1 = __webpack_require__(9);
+var serializer_1 = __webpack_require__(45);
exports.MapperType = serializer_1.MapperType;
exports.Serializer = serializer_1.Serializer;
exports.serializeObject = serializer_1.serializeObject;
-var utils_1 = __webpack_require__(0);
+var utils_1 = __webpack_require__(1);
exports.stripRequest = utils_1.stripRequest;
exports.stripResponse = utils_1.stripResponse;
exports.delay = utils_1.delay;
@@ -2521,23 +7703,25 @@ exports.isValidUuid = utils_1.isValidUuid;
exports.dispatchRequest = utils_1.dispatchRequest;
exports.applyMixins = utils_1.applyMixins;
exports.isNode = utils_1.isNode;
+exports.stringifyXML = utils_1.stringifyXML;
+exports.prepareXMLRootList = utils_1.prepareXMLRootList;
// Credentials
-var tokenCredentials_1 = __webpack_require__(34);
+var tokenCredentials_1 = __webpack_require__(92);
exports.TokenCredentials = tokenCredentials_1.TokenCredentials;
-var basicAuthenticationCredentials_1 = __webpack_require__(35);
+var basicAuthenticationCredentials_1 = __webpack_require__(93);
exports.BasicAuthenticationCredentials = basicAuthenticationCredentials_1.BasicAuthenticationCredentials;
-var apiKeyCredentials_1 = __webpack_require__(36);
+var apiKeyCredentials_1 = __webpack_require__(94);
exports.ApiKeyCredentials = apiKeyCredentials_1.ApiKeyCredentials;
-var isStream = __webpack_require__(10);
+var isStream = __webpack_require__(46);
exports.isStream = isStream;
/***/ }),
-/* 18 */
+/* 54 */
/***/ (function(module, exports, __webpack_require__) {
-var v1 = __webpack_require__(19);
-var v4 = __webpack_require__(20);
+var v1 = __webpack_require__(55);
+var v4 = __webpack_require__(56);
var uuid = v4;
uuid.v1 = v1;
@@ -2547,11 +7731,11 @@ module.exports = uuid;
/***/ }),
-/* 19 */
+/* 55 */
/***/ (function(module, exports, __webpack_require__) {
-var rng = __webpack_require__(5);
-var bytesToUuid = __webpack_require__(6);
+var rng = __webpack_require__(31);
+var bytesToUuid = __webpack_require__(32);
// **`v1()` - Generate time-based UUID**
//
@@ -2662,11 +7846,11 @@ module.exports = v1;
/***/ }),
-/* 20 */
+/* 56 */
/***/ (function(module, exports, __webpack_require__) {
-var rng = __webpack_require__(5);
-var bytesToUuid = __webpack_require__(6);
+var rng = __webpack_require__(31);
+var bytesToUuid = __webpack_require__(32);
function v4(options, buf, offset) {
var i = buf && offset || 0;
@@ -2697,7 +7881,7 @@ module.exports = v4;
/***/ }),
-/* 21 */
+/* 57 */
/***/ (function(module, exports) {
/* eslint-env browser */
@@ -2705,7 +7889,5529 @@ module.exports = typeof self == 'object' ? self.FormData : window.FormData;
/***/ }),
-/* 22 */
+/* 58 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var builder, defaults, parser, processors,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ defaults = __webpack_require__(26);
+
+ builder = __webpack_require__(59);
+
+ parser = __webpack_require__(64);
+
+ processors = __webpack_require__(44);
+
+ exports.defaults = defaults.defaults;
+
+ exports.processors = processors;
+
+ exports.ValidationError = (function(superClass) {
+ extend(ValidationError, superClass);
+
+ function ValidationError(message) {
+ this.message = message;
+ }
+
+ return ValidationError;
+
+ })(Error);
+
+ exports.Builder = builder.Builder;
+
+ exports.Parser = parser.Parser;
+
+ exports.parseString = parser.parseString;
+
+}).call(this);
+
+
+/***/ }),
+/* 59 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,
+ hasProp = {}.hasOwnProperty;
+
+ builder = __webpack_require__(60);
+
+ defaults = __webpack_require__(26).defaults;
+
+ requiresCDATA = function(entry) {
+ return typeof entry === "string" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);
+ };
+
+ wrapCDATA = function(entry) {
+ return "";
+ };
+
+ escapeCDATA = function(entry) {
+ return entry.replace(']]>', ']]]]>');
+ };
+
+ exports.Builder = (function() {
+ function Builder(opts) {
+ var key, ref, value;
+ this.options = {};
+ ref = defaults["0.2"];
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ }
+
+ Builder.prototype.buildObject = function(rootObj) {
+ var attrkey, charkey, render, rootElement, rootName;
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {
+ rootName = Object.keys(rootObj)[0];
+ rootObj = rootObj[rootName];
+ } else {
+ rootName = this.options.rootName;
+ }
+ render = (function(_this) {
+ return function(element, obj) {
+ var attr, child, entry, index, key, value;
+ if (typeof obj !== 'object') {
+ if (_this.options.cdata && requiresCDATA(obj)) {
+ element.raw(wrapCDATA(obj));
+ } else {
+ element.txt(obj);
+ }
+ } else if (Array.isArray(obj)) {
+ for (index in obj) {
+ if (!hasProp.call(obj, index)) continue;
+ child = obj[index];
+ for (key in child) {
+ entry = child[key];
+ element = render(element.ele(key), entry).up();
+ }
+ }
+ } else {
+ for (key in obj) {
+ if (!hasProp.call(obj, key)) continue;
+ child = obj[key];
+ if (key === attrkey) {
+ if (typeof child === "object") {
+ for (attr in child) {
+ value = child[attr];
+ element = element.att(attr, value);
+ }
+ }
+ } else if (key === charkey) {
+ if (_this.options.cdata && requiresCDATA(child)) {
+ element = element.raw(wrapCDATA(child));
+ } else {
+ element = element.txt(child);
+ }
+ } else if (Array.isArray(child)) {
+ for (index in child) {
+ if (!hasProp.call(child, index)) continue;
+ entry = child[index];
+ if (typeof entry === 'string') {
+ if (_this.options.cdata && requiresCDATA(entry)) {
+ element = element.ele(key).raw(wrapCDATA(entry)).up();
+ } else {
+ element = element.ele(key, entry).up();
+ }
+ } else {
+ element = render(element.ele(key), entry).up();
+ }
+ }
+ } else if (typeof child === "object") {
+ element = render(element.ele(key), child).up();
+ } else {
+ if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {
+ element = element.ele(key).raw(wrapCDATA(child)).up();
+ } else {
+ if (child == null) {
+ child = '';
+ }
+ element = element.ele(key, child.toString()).up();
+ }
+ }
+ }
+ }
+ return element;
+ };
+ })(this);
+ rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {
+ headless: this.options.headless,
+ allowSurrogateChars: this.options.allowSurrogateChars
+ });
+ return render(rootElement, rootObj).end(this.options.renderOpts);
+ };
+
+ return Builder;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+/* 60 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDocument, XMLDocumentCB, XMLStreamWriter, XMLStringWriter, assign, isFunction, ref;
+
+ ref = __webpack_require__(2), assign = ref.assign, isFunction = ref.isFunction;
+
+ XMLDocument = __webpack_require__(61);
+
+ XMLDocumentCB = __webpack_require__(62);
+
+ XMLStringWriter = __webpack_require__(27);
+
+ XMLStreamWriter = __webpack_require__(63);
+
+ module.exports.create = function(name, xmldec, doctype, options) {
+ var doc, root;
+ if (name == null) {
+ throw new Error("Root element needs a name");
+ }
+ options = assign({}, xmldec, doctype, options);
+ doc = new XMLDocument(options);
+ root = doc.element(name);
+ if (!options.headless) {
+ doc.declaration(options);
+ if ((options.pubID != null) || (options.sysID != null)) {
+ doc.doctype(options);
+ }
+ }
+ return root;
+ };
+
+ module.exports.begin = function(options, onData, onEnd) {
+ var ref1;
+ if (isFunction(options)) {
+ ref1 = [options, onData], onData = ref1[0], onEnd = ref1[1];
+ options = {};
+ }
+ if (onData) {
+ return new XMLDocumentCB(options, onData, onEnd);
+ } else {
+ return new XMLDocument(options);
+ }
+ };
+
+ module.exports.stringWriter = function(options) {
+ return new XMLStringWriter(options);
+ };
+
+ module.exports.streamWriter = function(stream, options) {
+ return new XMLStreamWriter(stream, options);
+ };
+
+}).call(this);
+
+
+/***/ }),
+/* 61 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ isPlainObject = __webpack_require__(2).isPlainObject;
+
+ XMLNode = __webpack_require__(0);
+
+ XMLStringifier = __webpack_require__(36);
+
+ XMLStringWriter = __webpack_require__(27);
+
+ module.exports = XMLDocument = (function(superClass) {
+ extend(XMLDocument, superClass);
+
+ function XMLDocument(options) {
+ XMLDocument.__super__.constructor.call(this, null);
+ options || (options = {});
+ if (!options.writer) {
+ options.writer = new XMLStringWriter();
+ }
+ this.options = options;
+ this.stringify = new XMLStringifier(options);
+ this.isDocument = true;
+ }
+
+ XMLDocument.prototype.end = function(writer) {
+ var writerOptions;
+ if (!writer) {
+ writer = this.options.writer;
+ } else if (isPlainObject(writer)) {
+ writerOptions = writer;
+ writer = this.options.writer.set(writerOptions);
+ }
+ return writer.document(this);
+ };
+
+ XMLDocument.prototype.toString = function(options) {
+ return this.options.writer.set(options).document(this);
+ };
+
+ return XMLDocument;
+
+ })(XMLNode);
+
+}).call(this);
+
+
+/***/ }),
+/* 62 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, isFunction, isObject, isPlainObject, ref,
+ hasProp = {}.hasOwnProperty;
+
+ ref = __webpack_require__(2), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject;
+
+ XMLElement = __webpack_require__(10);
+
+ XMLCData = __webpack_require__(11);
+
+ XMLComment = __webpack_require__(12);
+
+ XMLRaw = __webpack_require__(19);
+
+ XMLText = __webpack_require__(20);
+
+ XMLProcessingInstruction = __webpack_require__(21);
+
+ XMLDeclaration = __webpack_require__(13);
+
+ XMLDocType = __webpack_require__(14);
+
+ XMLDTDAttList = __webpack_require__(15);
+
+ XMLDTDEntity = __webpack_require__(16);
+
+ XMLDTDElement = __webpack_require__(17);
+
+ XMLDTDNotation = __webpack_require__(18);
+
+ XMLAttribute = __webpack_require__(35);
+
+ XMLStringifier = __webpack_require__(36);
+
+ XMLStringWriter = __webpack_require__(27);
+
+ module.exports = XMLDocumentCB = (function() {
+ function XMLDocumentCB(options, onData, onEnd) {
+ var writerOptions;
+ options || (options = {});
+ if (!options.writer) {
+ options.writer = new XMLStringWriter(options);
+ } else if (isPlainObject(options.writer)) {
+ writerOptions = options.writer;
+ options.writer = new XMLStringWriter(writerOptions);
+ }
+ this.options = options;
+ this.writer = options.writer;
+ this.stringify = new XMLStringifier(options);
+ this.onDataCallback = onData || function() {};
+ this.onEndCallback = onEnd || function() {};
+ this.currentNode = null;
+ this.currentLevel = -1;
+ this.openTags = {};
+ this.documentStarted = false;
+ this.documentCompleted = false;
+ this.root = null;
+ }
+
+ XMLDocumentCB.prototype.node = function(name, attributes, text) {
+ var ref1;
+ if (name == null) {
+ throw new Error("Missing node name");
+ }
+ if (this.root && this.currentLevel === -1) {
+ throw new Error("Document can only have one root node");
+ }
+ this.openCurrent();
+ name = name.valueOf();
+ if (attributes == null) {
+ attributes = {};
+ }
+ attributes = attributes.valueOf();
+ if (!isObject(attributes)) {
+ ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];
+ }
+ this.currentNode = new XMLElement(this, name, attributes);
+ this.currentNode.children = false;
+ this.currentLevel++;
+ this.openTags[this.currentLevel] = this.currentNode;
+ if (text != null) {
+ this.text(text);
+ }
+ return this;
+ };
+
+ XMLDocumentCB.prototype.element = function(name, attributes, text) {
+ if (this.currentNode && this.currentNode instanceof XMLDocType) {
+ return this.dtdElement.apply(this, arguments);
+ } else {
+ return this.node(name, attributes, text);
+ }
+ };
+
+ XMLDocumentCB.prototype.attribute = function(name, value) {
+ var attName, attValue;
+ if (!this.currentNode || this.currentNode.children) {
+ throw new Error("att() can only be used immediately after an ele() call in callback mode");
+ }
+ if (name != null) {
+ name = name.valueOf();
+ }
+ if (isObject(name)) {
+ for (attName in name) {
+ if (!hasProp.call(name, attName)) continue;
+ attValue = name[attName];
+ this.attribute(attName, attValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ if (!this.options.skipNullAttributes || (value != null)) {
+ this.currentNode.attributes[name] = new XMLAttribute(this, name, value);
+ }
+ }
+ return this;
+ };
+
+ XMLDocumentCB.prototype.text = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLText(this, value);
+ this.onData(this.writer.text(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.cdata = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLCData(this, value);
+ this.onData(this.writer.cdata(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.comment = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLComment(this, value);
+ this.onData(this.writer.comment(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.raw = function(value) {
+ var node;
+ this.openCurrent();
+ node = new XMLRaw(this, value);
+ this.onData(this.writer.raw(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.instruction = function(target, value) {
+ var i, insTarget, insValue, len, node;
+ this.openCurrent();
+ if (target != null) {
+ target = target.valueOf();
+ }
+ if (value != null) {
+ value = value.valueOf();
+ }
+ if (Array.isArray(target)) {
+ for (i = 0, len = target.length; i < len; i++) {
+ insTarget = target[i];
+ this.instruction(insTarget);
+ }
+ } else if (isObject(target)) {
+ for (insTarget in target) {
+ if (!hasProp.call(target, insTarget)) continue;
+ insValue = target[insTarget];
+ this.instruction(insTarget, insValue);
+ }
+ } else {
+ if (isFunction(value)) {
+ value = value.apply();
+ }
+ node = new XMLProcessingInstruction(this, target, value);
+ this.onData(this.writer.processingInstruction(node, this.currentLevel + 1));
+ }
+ return this;
+ };
+
+ XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {
+ var node;
+ this.openCurrent();
+ if (this.documentStarted) {
+ throw new Error("declaration() must be the first node");
+ }
+ node = new XMLDeclaration(this, version, encoding, standalone);
+ this.onData(this.writer.declaration(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {
+ this.openCurrent();
+ if (root == null) {
+ throw new Error("Missing root node name");
+ }
+ if (this.root) {
+ throw new Error("dtd() must come before the root node");
+ }
+ this.currentNode = new XMLDocType(this, pubID, sysID);
+ this.currentNode.rootNodeName = root;
+ this.currentNode.children = false;
+ this.currentLevel++;
+ this.openTags[this.currentLevel] = this.currentNode;
+ return this;
+ };
+
+ XMLDocumentCB.prototype.dtdElement = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDElement(this, name, value);
+ this.onData(this.writer.dtdElement(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);
+ this.onData(this.writer.dtdAttList(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.entity = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDEntity(this, false, name, value);
+ this.onData(this.writer.dtdEntity(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.pEntity = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDEntity(this, true, name, value);
+ this.onData(this.writer.dtdEntity(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.notation = function(name, value) {
+ var node;
+ this.openCurrent();
+ node = new XMLDTDNotation(this, name, value);
+ this.onData(this.writer.dtdNotation(node, this.currentLevel + 1));
+ return this;
+ };
+
+ XMLDocumentCB.prototype.up = function() {
+ if (this.currentLevel < 0) {
+ throw new Error("The document node has no parent");
+ }
+ if (this.currentNode) {
+ if (this.currentNode.children) {
+ this.closeNode(this.currentNode);
+ } else {
+ this.openNode(this.currentNode);
+ }
+ this.currentNode = null;
+ } else {
+ this.closeNode(this.openTags[this.currentLevel]);
+ }
+ delete this.openTags[this.currentLevel];
+ this.currentLevel--;
+ return this;
+ };
+
+ XMLDocumentCB.prototype.end = function() {
+ while (this.currentLevel >= 0) {
+ this.up();
+ }
+ return this.onEnd();
+ };
+
+ XMLDocumentCB.prototype.openCurrent = function() {
+ if (this.currentNode) {
+ this.currentNode.children = true;
+ return this.openNode(this.currentNode);
+ }
+ };
+
+ XMLDocumentCB.prototype.openNode = function(node) {
+ if (!node.isOpen) {
+ if (!this.root && this.currentLevel === 0 && node instanceof XMLElement) {
+ this.root = node;
+ }
+ this.onData(this.writer.openNode(node, this.currentLevel));
+ return node.isOpen = true;
+ }
+ };
+
+ XMLDocumentCB.prototype.closeNode = function(node) {
+ if (!node.isClosed) {
+ this.onData(this.writer.closeNode(node, this.currentLevel));
+ return node.isClosed = true;
+ }
+ };
+
+ XMLDocumentCB.prototype.onData = function(chunk) {
+ this.documentStarted = true;
+ return this.onDataCallback(chunk);
+ };
+
+ XMLDocumentCB.prototype.onEnd = function() {
+ this.documentCompleted = true;
+ return this.onEndCallback();
+ };
+
+ XMLDocumentCB.prototype.ele = function() {
+ return this.element.apply(this, arguments);
+ };
+
+ XMLDocumentCB.prototype.nod = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
+
+ XMLDocumentCB.prototype.txt = function(value) {
+ return this.text(value);
+ };
+
+ XMLDocumentCB.prototype.dat = function(value) {
+ return this.cdata(value);
+ };
+
+ XMLDocumentCB.prototype.com = function(value) {
+ return this.comment(value);
+ };
+
+ XMLDocumentCB.prototype.ins = function(target, value) {
+ return this.instruction(target, value);
+ };
+
+ XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {
+ return this.declaration(version, encoding, standalone);
+ };
+
+ XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {
+ return this.doctype(root, pubID, sysID);
+ };
+
+ XMLDocumentCB.prototype.e = function(name, attributes, text) {
+ return this.element(name, attributes, text);
+ };
+
+ XMLDocumentCB.prototype.n = function(name, attributes, text) {
+ return this.node(name, attributes, text);
+ };
+
+ XMLDocumentCB.prototype.t = function(value) {
+ return this.text(value);
+ };
+
+ XMLDocumentCB.prototype.d = function(value) {
+ return this.cdata(value);
+ };
+
+ XMLDocumentCB.prototype.c = function(value) {
+ return this.comment(value);
+ };
+
+ XMLDocumentCB.prototype.r = function(value) {
+ return this.raw(value);
+ };
+
+ XMLDocumentCB.prototype.i = function(target, value) {
+ return this.instruction(target, value);
+ };
+
+ XMLDocumentCB.prototype.att = function() {
+ if (this.currentNode && this.currentNode instanceof XMLDocType) {
+ return this.attList.apply(this, arguments);
+ } else {
+ return this.attribute.apply(this, arguments);
+ }
+ };
+
+ XMLDocumentCB.prototype.a = function() {
+ if (this.currentNode && this.currentNode instanceof XMLDocType) {
+ return this.attList.apply(this, arguments);
+ } else {
+ return this.attribute.apply(this, arguments);
+ }
+ };
+
+ XMLDocumentCB.prototype.ent = function(name, value) {
+ return this.entity(name, value);
+ };
+
+ XMLDocumentCB.prototype.pent = function(name, value) {
+ return this.pEntity(name, value);
+ };
+
+ XMLDocumentCB.prototype.not = function(name, value) {
+ return this.notation(name, value);
+ };
+
+ return XMLDocumentCB;
+
+ })();
+
+}).call(this);
+
+
+/***/ }),
+/* 63 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStreamWriter, XMLText, XMLWriterBase,
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ XMLDeclaration = __webpack_require__(13);
+
+ XMLDocType = __webpack_require__(14);
+
+ XMLCData = __webpack_require__(11);
+
+ XMLComment = __webpack_require__(12);
+
+ XMLElement = __webpack_require__(10);
+
+ XMLRaw = __webpack_require__(19);
+
+ XMLText = __webpack_require__(20);
+
+ XMLProcessingInstruction = __webpack_require__(21);
+
+ XMLDTDAttList = __webpack_require__(15);
+
+ XMLDTDElement = __webpack_require__(17);
+
+ XMLDTDEntity = __webpack_require__(16);
+
+ XMLDTDNotation = __webpack_require__(18);
+
+ XMLWriterBase = __webpack_require__(37);
+
+ module.exports = XMLStreamWriter = (function(superClass) {
+ extend(XMLStreamWriter, superClass);
+
+ function XMLStreamWriter(stream, options) {
+ XMLStreamWriter.__super__.constructor.call(this, options);
+ this.stream = stream;
+ }
+
+ XMLStreamWriter.prototype.document = function(doc) {
+ var child, i, j, len, len1, ref, ref1, results;
+ ref = doc.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ child.isLastRootNode = false;
+ }
+ doc.children[doc.children.length - 1].isLastRootNode = true;
+ ref1 = doc.children;
+ results = [];
+ for (j = 0, len1 = ref1.length; j < len1; j++) {
+ child = ref1[j];
+ switch (false) {
+ case !(child instanceof XMLDeclaration):
+ results.push(this.declaration(child));
+ break;
+ case !(child instanceof XMLDocType):
+ results.push(this.docType(child));
+ break;
+ case !(child instanceof XMLComment):
+ results.push(this.comment(child));
+ break;
+ case !(child instanceof XMLProcessingInstruction):
+ results.push(this.processingInstruction(child));
+ break;
+ default:
+ results.push(this.element(child));
+ }
+ }
+ return results;
+ };
+
+ XMLStreamWriter.prototype.attribute = function(att) {
+ return this.stream.write(' ' + att.name + '="' + att.value + '"');
+ };
+
+ XMLStreamWriter.prototype.cdata = function(node, level) {
+ return this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.comment = function(node, level) {
+ return this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.declaration = function(node, level) {
+ this.stream.write(this.space(level));
+ this.stream.write('');
+ return this.stream.write(this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.docType = function(node, level) {
+ var child, i, len, ref;
+ level || (level = 0);
+ this.stream.write(this.space(level));
+ this.stream.write(' 0) {
+ this.stream.write(' [');
+ this.stream.write(this.endline(node));
+ ref = node.children;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
+ switch (false) {
+ case !(child instanceof XMLDTDAttList):
+ this.dtdAttList(child, level + 1);
+ break;
+ case !(child instanceof XMLDTDElement):
+ this.dtdElement(child, level + 1);
+ break;
+ case !(child instanceof XMLDTDEntity):
+ this.dtdEntity(child, level + 1);
+ break;
+ case !(child instanceof XMLDTDNotation):
+ this.dtdNotation(child, level + 1);
+ break;
+ case !(child instanceof XMLCData):
+ this.cdata(child, level + 1);
+ break;
+ case !(child instanceof XMLComment):
+ this.comment(child, level + 1);
+ break;
+ case !(child instanceof XMLProcessingInstruction):
+ this.processingInstruction(child, level + 1);
+ break;
+ default:
+ throw new Error("Unknown DTD node type: " + child.constructor.name);
+ }
+ }
+ this.stream.write(']');
+ }
+ this.stream.write(this.spacebeforeslash + '>');
+ return this.stream.write(this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.element = function(node, level) {
+ var att, child, i, len, name, ref, ref1, space;
+ level || (level = 0);
+ space = this.space(level);
+ this.stream.write(space + '<' + node.name);
+ ref = node.attributes;
+ for (name in ref) {
+ if (!hasProp.call(ref, name)) continue;
+ att = ref[name];
+ this.attribute(att);
+ }
+ if (node.children.length === 0 || node.children.every(function(e) {
+ return e.value === '';
+ })) {
+ if (this.allowEmpty) {
+ this.stream.write('>' + node.name + '>');
+ } else {
+ this.stream.write(this.spacebeforeslash + '/>');
+ }
+ } else if (this.pretty && node.children.length === 1 && (node.children[0].value != null)) {
+ this.stream.write('>');
+ this.stream.write(node.children[0].value);
+ this.stream.write('' + node.name + '>');
+ } else {
+ this.stream.write('>' + this.newline);
+ ref1 = node.children;
+ for (i = 0, len = ref1.length; i < len; i++) {
+ child = ref1[i];
+ switch (false) {
+ case !(child instanceof XMLCData):
+ this.cdata(child, level + 1);
+ break;
+ case !(child instanceof XMLComment):
+ this.comment(child, level + 1);
+ break;
+ case !(child instanceof XMLElement):
+ this.element(child, level + 1);
+ break;
+ case !(child instanceof XMLRaw):
+ this.raw(child, level + 1);
+ break;
+ case !(child instanceof XMLText):
+ this.text(child, level + 1);
+ break;
+ case !(child instanceof XMLProcessingInstruction):
+ this.processingInstruction(child, level + 1);
+ break;
+ default:
+ throw new Error("Unknown XML node type: " + child.constructor.name);
+ }
+ }
+ this.stream.write(space + '' + node.name + '>');
+ }
+ return this.stream.write(this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.processingInstruction = function(node, level) {
+ this.stream.write(this.space(level) + '' + node.target);
+ if (node.value) {
+ this.stream.write(' ' + node.value);
+ }
+ return this.stream.write(this.spacebeforeslash + '?>' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.raw = function(node, level) {
+ return this.stream.write(this.space(level) + node.value + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.text = function(node, level) {
+ return this.stream.write(this.space(level) + node.value + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.dtdAttList = function(node, level) {
+ this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.dtdElement = function(node, level) {
+ this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.dtdEntity = function(node, level) {
+ this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.dtdNotation = function(node, level) {
+ this.stream.write(this.space(level) + '' + this.endline(node));
+ };
+
+ XMLStreamWriter.prototype.endline = function(node) {
+ if (!node.isLastRootNode) {
+ return this.newline;
+ } else {
+ return '';
+ }
+ };
+
+ return XMLStreamWriter;
+
+ })(XMLWriterBase);
+
+}).call(this);
+
+
+/***/ }),
+/* 64 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Generated by CoffeeScript 1.12.7
+(function() {
+ "use strict";
+ var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+ hasProp = {}.hasOwnProperty;
+
+ sax = __webpack_require__(65);
+
+ events = __webpack_require__(22);
+
+ bom = __webpack_require__(80);
+
+ processors = __webpack_require__(44);
+
+ setImmediate = __webpack_require__(42).setImmediate;
+
+ defaults = __webpack_require__(26).defaults;
+
+ isEmpty = function(thing) {
+ return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
+ };
+
+ processItem = function(processors, item, key) {
+ var i, len, process;
+ for (i = 0, len = processors.length; i < len; i++) {
+ process = processors[i];
+ item = process(item, key);
+ }
+ return item;
+ };
+
+ exports.Parser = (function(superClass) {
+ extend(Parser, superClass);
+
+ function Parser(opts) {
+ this.parseString = bind(this.parseString, this);
+ this.reset = bind(this.reset, this);
+ this.assignOrPush = bind(this.assignOrPush, this);
+ this.processAsync = bind(this.processAsync, this);
+ var key, ref, value;
+ if (!(this instanceof exports.Parser)) {
+ return new exports.Parser(opts);
+ }
+ this.options = {};
+ ref = defaults["0.2"];
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ value = ref[key];
+ this.options[key] = value;
+ }
+ for (key in opts) {
+ if (!hasProp.call(opts, key)) continue;
+ value = opts[key];
+ this.options[key] = value;
+ }
+ if (this.options.xmlns) {
+ this.options.xmlnskey = this.options.attrkey + "ns";
+ }
+ if (this.options.normalizeTags) {
+ if (!this.options.tagNameProcessors) {
+ this.options.tagNameProcessors = [];
+ }
+ this.options.tagNameProcessors.unshift(processors.normalize);
+ }
+ this.reset();
+ }
+
+ Parser.prototype.processAsync = function() {
+ var chunk, err;
+ try {
+ if (this.remaining.length <= this.options.chunkSize) {
+ chunk = this.remaining;
+ this.remaining = '';
+ this.saxParser = this.saxParser.write(chunk);
+ return this.saxParser.close();
+ } else {
+ chunk = this.remaining.substr(0, this.options.chunkSize);
+ this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);
+ this.saxParser = this.saxParser.write(chunk);
+ return setImmediate(this.processAsync);
+ }
+ } catch (error1) {
+ err = error1;
+ if (!this.saxParser.errThrown) {
+ this.saxParser.errThrown = true;
+ return this.emit(err);
+ }
+ }
+ };
+
+ Parser.prototype.assignOrPush = function(obj, key, newValue) {
+ if (!(key in obj)) {
+ if (!this.options.explicitArray) {
+ return obj[key] = newValue;
+ } else {
+ return obj[key] = [newValue];
+ }
+ } else {
+ if (!(obj[key] instanceof Array)) {
+ obj[key] = [obj[key]];
+ }
+ return obj[key].push(newValue);
+ }
+ };
+
+ Parser.prototype.reset = function() {
+ var attrkey, charkey, ontext, stack;
+ this.removeAllListeners();
+ this.saxParser = sax.parser(this.options.strict, {
+ trim: false,
+ normalize: false,
+ xmlns: this.options.xmlns
+ });
+ this.saxParser.errThrown = false;
+ this.saxParser.onerror = (function(_this) {
+ return function(error) {
+ _this.saxParser.resume();
+ if (!_this.saxParser.errThrown) {
+ _this.saxParser.errThrown = true;
+ return _this.emit("error", error);
+ }
+ };
+ })(this);
+ this.saxParser.onend = (function(_this) {
+ return function() {
+ if (!_this.saxParser.ended) {
+ _this.saxParser.ended = true;
+ return _this.emit("end", _this.resultObject);
+ }
+ };
+ })(this);
+ this.saxParser.ended = false;
+ this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
+ this.resultObject = null;
+ stack = [];
+ attrkey = this.options.attrkey;
+ charkey = this.options.charkey;
+ this.saxParser.onopentag = (function(_this) {
+ return function(node) {
+ var key, newValue, obj, processedKey, ref;
+ obj = {};
+ obj[charkey] = "";
+ if (!_this.options.ignoreAttrs) {
+ ref = node.attributes;
+ for (key in ref) {
+ if (!hasProp.call(ref, key)) continue;
+ if (!(attrkey in obj) && !_this.options.mergeAttrs) {
+ obj[attrkey] = {};
+ }
+ newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
+ processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
+ if (_this.options.mergeAttrs) {
+ _this.assignOrPush(obj, processedKey, newValue);
+ } else {
+ obj[attrkey][processedKey] = newValue;
+ }
+ }
+ }
+ obj["#name"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;
+ if (_this.options.xmlns) {
+ obj[_this.options.xmlnskey] = {
+ uri: node.uri,
+ local: node.local
+ };
+ }
+ return stack.push(obj);
+ };
+ })(this);
+ this.saxParser.onclosetag = (function(_this) {
+ return function() {
+ var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;
+ obj = stack.pop();
+ nodeName = obj["#name"];
+ if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {
+ delete obj["#name"];
+ }
+ if (obj.cdata === true) {
+ cdata = obj.cdata;
+ delete obj.cdata;
+ }
+ s = stack[stack.length - 1];
+ if (obj[charkey].match(/^\s*$/) && !cdata) {
+ emptyStr = obj[charkey];
+ delete obj[charkey];
+ } else {
+ if (_this.options.trim) {
+ obj[charkey] = obj[charkey].trim();
+ }
+ if (_this.options.normalize) {
+ obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
+ }
+ obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];
+ if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
+ obj = obj[charkey];
+ }
+ }
+ if (isEmpty(obj)) {
+ obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
+ }
+ if (_this.options.validator != null) {
+ xpath = "/" + ((function() {
+ var i, len, results;
+ results = [];
+ for (i = 0, len = stack.length; i < len; i++) {
+ node = stack[i];
+ results.push(node["#name"]);
+ }
+ return results;
+ })()).concat(nodeName).join("/");
+ (function() {
+ var err;
+ try {
+ return obj = _this.options.validator(xpath, s && s[nodeName], obj);
+ } catch (error1) {
+ err = error1;
+ return _this.emit("error", err);
+ }
+ })();
+ }
+ if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
+ if (!_this.options.preserveChildrenOrder) {
+ node = {};
+ if (_this.options.attrkey in obj) {
+ node[_this.options.attrkey] = obj[_this.options.attrkey];
+ delete obj[_this.options.attrkey];
+ }
+ if (!_this.options.charsAsChildren && _this.options.charkey in obj) {
+ node[_this.options.charkey] = obj[_this.options.charkey];
+ delete obj[_this.options.charkey];
+ }
+ if (Object.getOwnPropertyNames(obj).length > 0) {
+ node[_this.options.childkey] = obj;
+ }
+ obj = node;
+ } else if (s) {
+ s[_this.options.childkey] = s[_this.options.childkey] || [];
+ objClone = {};
+ for (key in obj) {
+ if (!hasProp.call(obj, key)) continue;
+ objClone[key] = obj[key];
+ }
+ s[_this.options.childkey].push(objClone);
+ delete obj["#name"];
+ if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
+ obj = obj[charkey];
+ }
+ }
+ }
+ if (stack.length > 0) {
+ return _this.assignOrPush(s, nodeName, obj);
+ } else {
+ if (_this.options.explicitRoot) {
+ old = obj;
+ obj = {};
+ obj[nodeName] = old;
+ }
+ _this.resultObject = obj;
+ _this.saxParser.ended = true;
+ return _this.emit("end", _this.resultObject);
+ }
+ };
+ })(this);
+ ontext = (function(_this) {
+ return function(text) {
+ var charChild, s;
+ s = stack[stack.length - 1];
+ if (s) {
+ s[charkey] += text;
+ if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\n/g, '').trim() !== '')) {
+ s[_this.options.childkey] = s[_this.options.childkey] || [];
+ charChild = {
+ '#name': '__text__'
+ };
+ charChild[charkey] = text;
+ if (_this.options.normalize) {
+ charChild[charkey] = charChild[charkey].replace(/\s{2,}/g, " ").trim();
+ }
+ s[_this.options.childkey].push(charChild);
+ }
+ return s;
+ }
+ };
+ })(this);
+ this.saxParser.ontext = ontext;
+ return this.saxParser.oncdata = (function(_this) {
+ return function(text) {
+ var s;
+ s = ontext(text);
+ if (s) {
+ return s.cdata = true;
+ }
+ };
+ })(this);
+ };
+
+ Parser.prototype.parseString = function(str, cb) {
+ var err;
+ if ((cb != null) && typeof cb === "function") {
+ this.on("end", function(result) {
+ this.reset();
+ return cb(null, result);
+ });
+ this.on("error", function(err) {
+ this.reset();
+ return cb(err);
+ });
+ }
+ try {
+ str = str.toString();
+ if (str.trim() === '') {
+ this.emit("end", null);
+ return true;
+ }
+ str = bom.stripBOM(str);
+ if (this.options.async) {
+ this.remaining = str;
+ setImmediate(this.processAsync);
+ return this.saxParser;
+ }
+ return this.saxParser.write(str).close();
+ } catch (error1) {
+ err = error1;
+ if (!(this.saxParser.errThrown || this.saxParser.ended)) {
+ this.emit('error', err);
+ return this.saxParser.errThrown = true;
+ } else if (this.saxParser.ended) {
+ throw err;
+ }
+ }
+ };
+
+ return Parser;
+
+ })(events.EventEmitter);
+
+ exports.parseString = function(str, a, b) {
+ var cb, options, parser;
+ if (b != null) {
+ if (typeof b === 'function') {
+ cb = b;
+ }
+ if (typeof a === 'object') {
+ options = a;
+ }
+ } else {
+ if (typeof a === 'function') {
+ cb = a;
+ }
+ options = {};
+ }
+ parser = new exports.Parser(options);
+ return parser.parseString(str, cb);
+ };
+
+}).call(this);
+
+
+/***/ }),
+/* 65 */
+/***/ (function(module, exports, __webpack_require__) {
+
+;(function (sax) { // wrapper for non-node envs
+ sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }
+ sax.SAXParser = SAXParser
+ sax.SAXStream = SAXStream
+ sax.createStream = createStream
+
+ // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.
+ // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),
+ // since that's the earliest that a buffer overrun could occur. This way, checks are
+ // as rare as required, but as often as necessary to ensure never crossing this bound.
+ // Furthermore, buffers are only tested at most once per write(), so passing a very
+ // large string into write() might have undesirable effects, but this is manageable by
+ // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme
+ // edge case, result in creating at most one complete copy of the string passed in.
+ // Set to Infinity to have unlimited buffers.
+ sax.MAX_BUFFER_LENGTH = 64 * 1024
+
+ var buffers = [
+ 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',
+ 'procInstName', 'procInstBody', 'entity', 'attribName',
+ 'attribValue', 'cdata', 'script'
+ ]
+
+ sax.EVENTS = [
+ 'text',
+ 'processinginstruction',
+ 'sgmldeclaration',
+ 'doctype',
+ 'comment',
+ 'opentagstart',
+ 'attribute',
+ 'opentag',
+ 'closetag',
+ 'opencdata',
+ 'cdata',
+ 'closecdata',
+ 'error',
+ 'end',
+ 'ready',
+ 'script',
+ 'opennamespace',
+ 'closenamespace'
+ ]
+
+ function SAXParser (strict, opt) {
+ if (!(this instanceof SAXParser)) {
+ return new SAXParser(strict, opt)
+ }
+
+ var parser = this
+ clearBuffers(parser)
+ parser.q = parser.c = ''
+ parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH
+ parser.opt = opt || {}
+ parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags
+ parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'
+ parser.tags = []
+ parser.closed = parser.closedRoot = parser.sawRoot = false
+ parser.tag = parser.error = null
+ parser.strict = !!strict
+ parser.noscript = !!(strict || parser.opt.noscript)
+ parser.state = S.BEGIN
+ parser.strictEntities = parser.opt.strictEntities
+ parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)
+ parser.attribList = []
+
+ // namespaces form a prototype chain.
+ // it always points at the current tag,
+ // which protos to its parent tag.
+ if (parser.opt.xmlns) {
+ parser.ns = Object.create(rootNS)
+ }
+
+ // mostly just for error reporting
+ parser.trackPosition = parser.opt.position !== false
+ if (parser.trackPosition) {
+ parser.position = parser.line = parser.column = 0
+ }
+ emit(parser, 'onready')
+ }
+
+ if (!Object.create) {
+ Object.create = function (o) {
+ function F () {}
+ F.prototype = o
+ var newf = new F()
+ return newf
+ }
+ }
+
+ if (!Object.keys) {
+ Object.keys = function (o) {
+ var a = []
+ for (var i in o) if (o.hasOwnProperty(i)) a.push(i)
+ return a
+ }
+ }
+
+ function checkBufferLength (parser) {
+ var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)
+ var maxActual = 0
+ for (var i = 0, l = buffers.length; i < l; i++) {
+ var len = parser[buffers[i]].length
+ if (len > maxAllowed) {
+ // Text/cdata nodes can get big, and since they're buffered,
+ // we can get here under normal conditions.
+ // Avoid issues by emitting the text node now,
+ // so at least it won't get any bigger.
+ switch (buffers[i]) {
+ case 'textNode':
+ closeText(parser)
+ break
+
+ case 'cdata':
+ emitNode(parser, 'oncdata', parser.cdata)
+ parser.cdata = ''
+ break
+
+ case 'script':
+ emitNode(parser, 'onscript', parser.script)
+ parser.script = ''
+ break
+
+ default:
+ error(parser, 'Max buffer length exceeded: ' + buffers[i])
+ }
+ }
+ maxActual = Math.max(maxActual, len)
+ }
+ // schedule the next check for the earliest possible buffer overrun.
+ var m = sax.MAX_BUFFER_LENGTH - maxActual
+ parser.bufferCheckPosition = m + parser.position
+ }
+
+ function clearBuffers (parser) {
+ for (var i = 0, l = buffers.length; i < l; i++) {
+ parser[buffers[i]] = ''
+ }
+ }
+
+ function flushBuffers (parser) {
+ closeText(parser)
+ if (parser.cdata !== '') {
+ emitNode(parser, 'oncdata', parser.cdata)
+ parser.cdata = ''
+ }
+ if (parser.script !== '') {
+ emitNode(parser, 'onscript', parser.script)
+ parser.script = ''
+ }
+ }
+
+ SAXParser.prototype = {
+ end: function () { end(this) },
+ write: write,
+ resume: function () { this.error = null; return this },
+ close: function () { return this.write(null) },
+ flush: function () { flushBuffers(this) }
+ }
+
+ var Stream
+ try {
+ Stream = __webpack_require__(66).Stream
+ } catch (ex) {
+ Stream = function () {}
+ }
+
+ var streamWraps = sax.EVENTS.filter(function (ev) {
+ return ev !== 'error' && ev !== 'end'
+ })
+
+ function createStream (strict, opt) {
+ return new SAXStream(strict, opt)
+ }
+
+ function SAXStream (strict, opt) {
+ if (!(this instanceof SAXStream)) {
+ return new SAXStream(strict, opt)
+ }
+
+ Stream.apply(this)
+
+ this._parser = new SAXParser(strict, opt)
+ this.writable = true
+ this.readable = true
+
+ var me = this
+
+ this._parser.onend = function () {
+ me.emit('end')
+ }
+
+ this._parser.onerror = function (er) {
+ me.emit('error', er)
+
+ // if didn't throw, then means error was handled.
+ // go ahead and clear error, so we can write again.
+ me._parser.error = null
+ }
+
+ this._decoder = null
+
+ streamWraps.forEach(function (ev) {
+ Object.defineProperty(me, 'on' + ev, {
+ get: function () {
+ return me._parser['on' + ev]
+ },
+ set: function (h) {
+ if (!h) {
+ me.removeAllListeners(ev)
+ me._parser['on' + ev] = h
+ return h
+ }
+ me.on(ev, h)
+ },
+ enumerable: true,
+ configurable: false
+ })
+ })
+ }
+
+ SAXStream.prototype = Object.create(Stream.prototype, {
+ constructor: {
+ value: SAXStream
+ }
+ })
+
+ SAXStream.prototype.write = function (data) {
+ if (typeof Buffer === 'function' &&
+ typeof Buffer.isBuffer === 'function' &&
+ Buffer.isBuffer(data)) {
+ if (!this._decoder) {
+ var SD = __webpack_require__(30).StringDecoder
+ this._decoder = new SD('utf8')
+ }
+ data = this._decoder.write(data)
+ }
+
+ this._parser.write(data.toString())
+ this.emit('data', data)
+ return true
+ }
+
+ SAXStream.prototype.end = function (chunk) {
+ if (chunk && chunk.length) {
+ this.write(chunk)
+ }
+ this._parser.end()
+ return true
+ }
+
+ SAXStream.prototype.on = function (ev, handler) {
+ var me = this
+ if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {
+ me._parser['on' + ev] = function () {
+ var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)
+ args.splice(0, 0, ev)
+ me.emit.apply(me, args)
+ }
+ }
+
+ return Stream.prototype.on.call(me, ev, handler)
+ }
+
+ // this really needs to be replaced with character classes.
+ // XML allows all manner of ridiculous numbers and digits.
+ var CDATA = '[CDATA['
+ var DOCTYPE = 'DOCTYPE'
+ var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'
+ var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'
+ var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }
+
+ // http://www.w3.org/TR/REC-xml/#NT-NameStartChar
+ // This implementation works on strings, a single character at a time
+ // as such, it cannot ever support astral-plane characters (10000-EFFFF)
+ // without a significant breaking change to either this parser, or the
+ // JavaScript language. Implementation of an emoji-capable xml parser
+ // is left as an exercise for the reader.
+ var nameStart = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
+
+ var nameBody = /[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
+
+ var entityStart = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/
+ var entityBody = /[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/
+
+ function isWhitespace (c) {
+ return c === ' ' || c === '\n' || c === '\r' || c === '\t'
+ }
+
+ function isQuote (c) {
+ return c === '"' || c === '\''
+ }
+
+ function isAttribEnd (c) {
+ return c === '>' || isWhitespace(c)
+ }
+
+ function isMatch (regex, c) {
+ return regex.test(c)
+ }
+
+ function notMatch (regex, c) {
+ return !isMatch(regex, c)
+ }
+
+ var S = 0
+ sax.STATE = {
+ BEGIN: S++, // leading byte order mark or whitespace
+ BEGIN_WHITESPACE: S++, // leading whitespace
+ TEXT: S++, // general stuff
+ TEXT_ENTITY: S++, // & and such.
+ OPEN_WAKA: S++, // <
+ SGML_DECL: S++, //
+ SCRIPT: S++, //