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":";AAAA,4DAA4D;AAC5D,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,2BAA6B;AAC7B,oCAAsC;AACtC,8CAA6C;AAC7C,yCAAwC;AACxC,0CAAyC;AACzC,kEAAiE;AACjE,+BAAiC;AAEjC;;;GAGG;AACH;IACE,uDAAuD;IACvD,mFAAmF;IACnF,sDAAsD;IACtD,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,SAAS;QACnE,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AAC9D,CAAC;AATD,4BASC;AAED;;GAEG;AACU,QAAA,OAAO,GAAG,QAAQ,EAAE,CAAC;AAElC;;GAEG;AACU,QAAA,MAAM,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,CAAC;AAEzF;;;;;GAKG;AACH,oBAA2B,UAAgC;IACzD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,qBAAS,CAAC,KAAK,CAAC;AAC/D,CAAC;AAFD,gCAEC;AAED;;;;;GAKG;AACH,kDAAkD;AAClD,sFAAsF;AACtF,sDAAsD;AACtD,sBAA6B,KAAU;IACrC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,oCAEC;AAED;;;;;GAKG;AACH,mBAA0B,GAAW;IACnC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC;SAC3B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAPD,8BAOC;AAED;;;;;;;GAOG;AACH,uBAA8B,QAAkB;IAC9C,IAAM,gBAAgB,GAAQ,EAAE,CAAC;IACjC,gBAAgB,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACtC,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC5C,gBAAgB,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1C,MAAM,CAAC,gBAAgB,CAAC;AAC1B,CAAC;AAND,sCAMC;AAED;;;;;;;GAOG;AACH,sBAA6B,OAAoB;IAC/C,IAAI,eAAe,GAAG,IAAI,yBAAW,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACrE,OAAO,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5E,OAAO,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC;QAC/C,CAAC;IACH,CAAC;IAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACb,IAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,GAAG,CAAC,OAAO,GAAG,eAAY,MAAM,+EAAwE,OAAO,QAAI,CAAC;QACpH,MAAM,CAAC,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,eAAe,CAAC;AACzB,CAAC;AAhBD,oCAgBC;AAED;;;;;;GAMG;AACH,qBAA4B,IAAY;IACtC,IAAM,cAAc,GAAG,IAAI,MAAM,CAAC,+EAA+E,EAAE,IAAI,CAAC,CAAC;IACzH,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAHD,kCAGC;AAED;;;;;;;GAOG;AACH,sBAA6B,GAA4B;IACvD,IAAM,MAAM,GAAU,EAAE,CAAC;IACzB,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,YAAY,MAAM,CAAC,CAAC,CAAC;QACjC,GAAG,CAAC,CAAC,IAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;YACtB,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAO,GAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,yBAAuB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,wCAAqC;YAC3G,+CAA+C,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC,MAAM,CAAC;AAChB,CAAC;AAbD,oCAaC;AAED;;;;GAIG;AACH;IACE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACnB,CAAC;AAFD,oCAEC;AAED;;;;;;;;;;GAUG;AACH,qCAA4C,gBAA4B,EAAE,SAAc;IACtF,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,gBAAgB,CAAC,OAAO,CAAC,UAAC,cAAc;QACtC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC;AAChB,CAAC;AAND,kEAMC;AAED;;;;;;;GAOG;AACH,sBAA6B,MAA+B,EAAE,MAA+B;IAC3F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAG;QAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC;AAChB,CAAC;AALD,oCAKC;AAED;;;;;GAKG;AACH,eAAyB,CAAS,EAAE,KAAS;IAC3C,MAAM,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,cAAM,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,EAAE,CAAC,CAAC,EAAnC,CAAmC,CAAC,CAAC;AACvE,CAAC;AAFD,sBAEC;AAED;;GAEG;AACH,iBAA0C,CAAW;IACnD,oCAAoC;IACpC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAW;QAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACf,MAAM,CAAC,GAAG,CAAC;IACb,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB,mCAAmC;AACrC,CAAC;AAPD,0BAOC;AAYD;;;;GAIG;AACH,2BAAkC,OAAqB;IACrD,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,UAAC,EAAY;QAClB,OAAO,CAAC,IAAI,CAAC,UAAC,IAAS;YACrB,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC,EAAE,UAAC,GAAU;YACZ,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,8CAWC;AAED;;;;GAIG;AACH,kCAA4C,OAAuC;IACjF,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,UAAC,EAAsB;QAC5B,OAAO,CAAC,IAAI,CAAC,UAAC,IAA2B;YACvC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrF,CAAC,EAAE,UAAC,GAAU;YACZ,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,4DAWC;AAGD,IAAM,kBAAkB,GAAqB;IAC3C,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,sBAA6B,GAAQ,EAAE,IAA4B;IACjE,IAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC;QACjC,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;QACtB,QAAQ,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ;KAChC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAPD,oCAOC;AAED,4BAAmC,GAAQ,EAAE,WAAmB;IAC9D,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IACD,MAAM,UAAG,GAAC,WAAW,IAAG,GAAG,KAAG;;AAChC,CAAC;AALD,gDAKC;AAED;;;;GAIG;AACH,yBAAsC,OAAoB;;;;;;oBACxD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACb,MAAM,gBAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC,EAAC;oBACpH,CAAC;oBAED,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACf,QAAQ,GAAQ,OAAO,CAAC,QAAQ,CAAC;wBACjC,gBAAc,IAAI,QAAQ,EAAE,CAAC;wBAC7B,eAAe,GAAG,UAAC,GAAW,EAAE,KAAU;4BAC9C,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gCAC9E,aAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;4BACtD,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACN,aAAW,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;4BACjC,CAAC;wBACH,CAAC,CAAC;wBACF,GAAG,CAAC,CAAO,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;4BAC/B,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gCAC/B,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;gCACpC,EAAE,CAAC,CAAC,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC;oCAC/B,GAAG,CAAC,CAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wCAC1C,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oCACzC,CAAC;gCACH,CAAC;gCAAC,IAAI,CAAC,CAAC;oCACN,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gCACtC,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,OAAO,CAAC,IAAI,GAAG,aAAW,CAAC;wBAC3B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;wBAC7B,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;4BACpD,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,aAAW,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC;4BACvH,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,mCAAiC,aAAW,CAAC,WAAW,EAAI,CAAC;wBACjG,CAAC;oBACH,CAAC;;;;oBAGO,qBAAM,eAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,EAAA;;oBAAzC,GAAG,GAAG,SAAmC,CAAC;;;;oBAE1C,sBAAO,OAAO,CAAC,MAAM,CAAC,KAAG,CAAC,EAAC;;oBAGvB,iBAAiB,GAAG,IAAI,6CAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;yBAC9D,CAAC,OAAO,CAAC,WAAW,EAApB,yBAAoB;;;;oBAEpB,KAAA,iBAAiB,CAAA;oBAAc,qBAAM,GAAG,CAAC,IAAI,EAAE,EAAA;;oBAA/C,GAAkB,UAAU,GAAG,SAAgB,CAAC;;;;oBAE1C,GAAG,GAAG,aAAU,KAAG,mEAA+D,CAAC;oBACnF,OAAO,GAAG,KAAG,CAAC,IAAI,IAAI,0BAA0B,CAAC;oBACjD,CAAC,GAAG,IAAI,qBAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC1E,sBAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;;;yBAIrB,iBAAiB,CAAC,UAAU,EAA5B,yBAA4B;oBACxB,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC;yBACjD,CAAA,WAAW,KAAK,iBAAiB,IAAI,WAAW,KAAK,UAAU,CAAA,EAA/D,yBAA+D;oBAC3D,cAAY,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBAClD,WAAW,GAAG,IAAI,OAAO,CAAC,UAAS,OAA8B,EAAE,MAA0B;wBACjG,WAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,UAAW,EAAE,UAAS,GAAQ,EAAE,MAAW;4BACjF,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gCACR,MAAM,CAAC,GAAG,CAAC,CAAC;4BACd,CAAC;4BAAC,IAAI,CAAC,CAAC;gCACN,OAAO,CAAC,MAAM,CAAC,CAAC;4BAClB,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,KAAA,iBAAiB,CAAA;oBAAc,qBAAM,WAAW,EAAA;;oBAAhD,GAAkB,UAAU,GAAG,SAAiB,CAAC;;;oBAEjD,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;;;;;oBAItE,GAAG,GAAG,aAAU,KAAG,qEAA+D,iBAAiB,CAAC,UAAU,MAAG,CAAC;oBAClH,OAAO,GAAG,KAAG,CAAC,IAAI,IAAI,kBAAkB,CAAC;oBACzC,CAAC,GAAG,IAAI,qBAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;oBAC9F,sBAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC;yBAG7B,sBAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAC;;;;CAC3C;AAjFD,0CAiFC;AAED;;;;GAIG;AACH,qBAA4B,UAAe,EAAE,WAAkB;IAC7D,WAAW,CAAC,OAAO,CAAC,UAAA,WAAW;QAC7B,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;YAC5D,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAND,kCAMC"} \ 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 += '>' + 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 += '' + 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 + '' + this.newline; + } + return r; + }; + + XMLStringWriter.prototype.processingInstruction = function(node, level) { + var r; + r = this.space(level) + '' + 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) + '' + 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('>'); + } 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(''); + } 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 + ''); + } + return this.stream.write(this.endline(node)); + }; + + XMLStreamWriter.prototype.processingInstruction = function(node, level) { + this.stream.write(this.space(level) + '' + 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++, //