blob: a0f5872ecc0689bad778187a893d96f1fa30ce02 [file] [log] [blame]
{"version":3,"file":"http.js","sources":["../../../packages/http/esm5/src/backends/browser_xhr.js","../../../packages/http/esm5/src/enums.js","../../../packages/http/esm5/src/headers.js","../../../packages/http/esm5/src/base_response_options.js","../../../packages/http/esm5/src/interfaces.js","../../../packages/http/esm5/src/http_utils.js","../../../packages/http/esm5/src/url_search_params.js","../../../packages/http/esm5/src/body.js","../../../packages/http/esm5/src/static_response.js","../../../packages/http/esm5/src/backends/browser_jsonp.js","../../../packages/http/esm5/src/backends/jsonp_backend.js","../../../packages/http/esm5/src/backends/xhr_backend.js","../../../packages/http/esm5/src/base_request_options.js","../../../packages/http/esm5/src/static_request.js","../../../packages/http/esm5/src/http.js","../../../packages/http/esm5/src/http_module.js","../../../packages/http/esm5/src/version.js","../../../packages/http/esm5/src/index.js","../../../packages/http/esm5/public_api.js","../../../packages/http/esm5/http.js"],"sourcesContent":["/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable } from '@angular/core';\n/**\n * A backend for http that uses the `XMLHttpRequest` browser API.\n *\n * Take care not to evaluate this in non-browser contexts.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar BrowserXhr = /** @class */ (function () {\n function BrowserXhr() {\n }\n /**\n * @return {?}\n */\n BrowserXhr.prototype.build = /**\n * @return {?}\n */\n function () { return /** @type {?} */ ((new XMLHttpRequest())); };\n BrowserXhr.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n BrowserXhr.ctorParameters = function () { return []; };\n return BrowserXhr;\n}());\nexport { BrowserXhr };\nfunction BrowserXhr_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n BrowserXhr.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n BrowserXhr.ctorParameters;\n}\n//# sourceMappingURL=browser_xhr.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {number} */\nvar RequestMethod = {\n Get: 0,\n Post: 1,\n Put: 2,\n Delete: 3,\n Options: 4,\n Head: 5,\n Patch: 6,\n};\nexport { RequestMethod };\nRequestMethod[RequestMethod.Get] = \"Get\";\nRequestMethod[RequestMethod.Post] = \"Post\";\nRequestMethod[RequestMethod.Put] = \"Put\";\nRequestMethod[RequestMethod.Delete] = \"Delete\";\nRequestMethod[RequestMethod.Options] = \"Options\";\nRequestMethod[RequestMethod.Head] = \"Head\";\nRequestMethod[RequestMethod.Patch] = \"Patch\";\n/** @enum {number} */\nvar ReadyState = {\n Unsent: 0,\n Open: 1,\n HeadersReceived: 2,\n Loading: 3,\n Done: 4,\n Cancelled: 5,\n};\nexport { ReadyState };\nReadyState[ReadyState.Unsent] = \"Unsent\";\nReadyState[ReadyState.Open] = \"Open\";\nReadyState[ReadyState.HeadersReceived] = \"HeadersReceived\";\nReadyState[ReadyState.Loading] = \"Loading\";\nReadyState[ReadyState.Done] = \"Done\";\nReadyState[ReadyState.Cancelled] = \"Cancelled\";\n/** @enum {number} */\nvar ResponseType = {\n Basic: 0,\n Cors: 1,\n Default: 2,\n Error: 3,\n Opaque: 4,\n};\nexport { ResponseType };\nResponseType[ResponseType.Basic] = \"Basic\";\nResponseType[ResponseType.Cors] = \"Cors\";\nResponseType[ResponseType.Default] = \"Default\";\nResponseType[ResponseType.Error] = \"Error\";\nResponseType[ResponseType.Opaque] = \"Opaque\";\n/** @enum {number} */\nvar ContentType = {\n NONE: 0,\n JSON: 1,\n FORM: 2,\n FORM_DATA: 3,\n TEXT: 4,\n BLOB: 5,\n ARRAY_BUFFER: 6,\n};\nexport { ContentType };\nContentType[ContentType.NONE] = \"NONE\";\nContentType[ContentType.JSON] = \"JSON\";\nContentType[ContentType.FORM] = \"FORM\";\nContentType[ContentType.FORM_DATA] = \"FORM_DATA\";\nContentType[ContentType.TEXT] = \"TEXT\";\nContentType[ContentType.BLOB] = \"BLOB\";\nContentType[ContentType.ARRAY_BUFFER] = \"ARRAY_BUFFER\";\n/** @enum {number} */\nvar ResponseContentType = {\n Text: 0,\n Json: 1,\n ArrayBuffer: 2,\n Blob: 3,\n};\nexport { ResponseContentType };\nResponseContentType[ResponseContentType.Text] = \"Text\";\nResponseContentType[ResponseContentType.Json] = \"Json\";\nResponseContentType[ResponseContentType.ArrayBuffer] = \"ArrayBuffer\";\nResponseContentType[ResponseContentType.Blob] = \"Blob\";\n//# sourceMappingURL=enums.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Polyfill for [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers/Headers), as\n * specified in the [Fetch Spec](https://fetch.spec.whatwg.org/#headers-class).\n *\n * The only known difference between this `Headers` implementation and the spec is the\n * lack of an `entries` method.\n *\n * ### Example\n *\n * ```\n * import {Headers} from '\\@angular/http';\n *\n * var firstHeaders = new Headers();\n * firstHeaders.append('Content-Type', 'image/jpeg');\n * console.log(firstHeaders.get('Content-Type')) //'image/jpeg'\n *\n * // Create headers from Plain Old JavaScript Object\n * var secondHeaders = new Headers({\n * 'X-My-Custom-Header': 'Angular'\n * });\n * console.log(secondHeaders.get('X-My-Custom-Header')); //'Angular'\n *\n * var thirdHeaders = new Headers(secondHeaders);\n * console.log(thirdHeaders.get('X-My-Custom-Header')); //'Angular'\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Polyfill for [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers/Headers), as\n * specified in the [Fetch Spec](https://fetch.spec.whatwg.org/#headers-class).\n *\n * The only known difference between this `Headers` implementation and the spec is the\n * lack of an `entries` method.\n *\n * ### Example\n *\n * ```\n * import {Headers} from '\\@angular/http';\n *\n * var firstHeaders = new Headers();\n * firstHeaders.append('Content-Type', 'image/jpeg');\n * console.log(firstHeaders.get('Content-Type')) //'image/jpeg'\n *\n * // Create headers from Plain Old JavaScript Object\n * var secondHeaders = new Headers({\n * 'X-My-Custom-Header': 'Angular'\n * });\n * console.log(secondHeaders.get('X-My-Custom-Header')); //'Angular'\n *\n * var thirdHeaders = new Headers(secondHeaders);\n * console.log(thirdHeaders.get('X-My-Custom-Header')); //'Angular'\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nHeaders = /** @class */ (function () {\n // TODO(vicb): any -> string|string[]\n function Headers(headers) {\n var _this = this;\n /**\n * \\@internal header names are lower case\n */\n this._headers = new Map();\n /**\n * \\@internal map lower case names to actual names\n */\n this._normalizedNames = new Map();\n if (!headers) {\n return;\n }\n if (headers instanceof Headers) {\n headers.forEach(function (values, name) {\n values.forEach(function (value) { return _this.append(name, value); });\n });\n return;\n }\n Object.keys(headers).forEach(function (name) {\n var /** @type {?} */ values = Array.isArray(headers[name]) ? headers[name] : [headers[name]];\n _this.delete(name);\n values.forEach(function (value) { return _this.append(name, value); });\n });\n }\n /**\n * Returns a new Headers instance from the given DOMString of Response Headers\n */\n /**\n * Returns a new Headers instance from the given DOMString of Response Headers\n * @param {?} headersString\n * @return {?}\n */\n Headers.fromResponseHeaderString = /**\n * Returns a new Headers instance from the given DOMString of Response Headers\n * @param {?} headersString\n * @return {?}\n */\n function (headersString) {\n var /** @type {?} */ headers = new Headers();\n headersString.split('\\n').forEach(function (line) {\n var /** @type {?} */ index = line.indexOf(':');\n if (index > 0) {\n var /** @type {?} */ name_1 = line.slice(0, index);\n var /** @type {?} */ value = line.slice(index + 1).trim();\n headers.set(name_1, value);\n }\n });\n return headers;\n };\n /**\n * Appends a header to existing list of header values for a given header name.\n */\n /**\n * Appends a header to existing list of header values for a given header name.\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n Headers.prototype.append = /**\n * Appends a header to existing list of header values for a given header name.\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n function (name, value) {\n var /** @type {?} */ values = this.getAll(name);\n if (values === null) {\n this.set(name, value);\n }\n else {\n values.push(value);\n }\n };\n /**\n * Deletes all header values for the given name.\n */\n /**\n * Deletes all header values for the given name.\n * @param {?} name\n * @return {?}\n */\n Headers.prototype.delete = /**\n * Deletes all header values for the given name.\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var /** @type {?} */ lcName = name.toLowerCase();\n this._normalizedNames.delete(lcName);\n this._headers.delete(lcName);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n Headers.prototype.forEach = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n var _this = this;\n this._headers.forEach(function (values, lcName) { return fn(values, _this._normalizedNames.get(lcName), _this._headers); });\n };\n /**\n * Returns first header that matches given name.\n */\n /**\n * Returns first header that matches given name.\n * @param {?} name\n * @return {?}\n */\n Headers.prototype.get = /**\n * Returns first header that matches given name.\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var /** @type {?} */ values = this.getAll(name);\n if (values === null) {\n return null;\n }\n return values.length > 0 ? values[0] : null;\n };\n /**\n * Checks for existence of header by given name.\n */\n /**\n * Checks for existence of header by given name.\n * @param {?} name\n * @return {?}\n */\n Headers.prototype.has = /**\n * Checks for existence of header by given name.\n * @param {?} name\n * @return {?}\n */\n function (name) { return this._headers.has(name.toLowerCase()); };\n /**\n * Returns the names of the headers\n */\n /**\n * Returns the names of the headers\n * @return {?}\n */\n Headers.prototype.keys = /**\n * Returns the names of the headers\n * @return {?}\n */\n function () { return Array.from(this._normalizedNames.values()); };\n /**\n * Sets or overrides header value for given name.\n */\n /**\n * Sets or overrides header value for given name.\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n Headers.prototype.set = /**\n * Sets or overrides header value for given name.\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n function (name, value) {\n if (Array.isArray(value)) {\n if (value.length) {\n this._headers.set(name.toLowerCase(), [value.join(',')]);\n }\n }\n else {\n this._headers.set(name.toLowerCase(), [value]);\n }\n this.mayBeSetNormalizedName(name);\n };\n /**\n * Returns values of all headers.\n */\n /**\n * Returns values of all headers.\n * @return {?}\n */\n Headers.prototype.values = /**\n * Returns values of all headers.\n * @return {?}\n */\n function () { return Array.from(this._headers.values()); };\n /**\n * Returns string of all headers.\n */\n // TODO(vicb): returns {[name: string]: string[]}\n /**\n * Returns string of all headers.\n * @return {?}\n */\n Headers.prototype.toJSON = /**\n * Returns string of all headers.\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ serialized = {};\n this._headers.forEach(function (values, name) {\n var /** @type {?} */ split = [];\n values.forEach(function (v) { return split.push.apply(split, v.split(',')); });\n serialized[/** @type {?} */ ((_this._normalizedNames.get(name)))] = split;\n });\n return serialized;\n };\n /**\n * Returns list of header values for a given name.\n */\n /**\n * Returns list of header values for a given name.\n * @param {?} name\n * @return {?}\n */\n Headers.prototype.getAll = /**\n * Returns list of header values for a given name.\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.has(name) ? this._headers.get(name.toLowerCase()) || null : null;\n };\n /**\n * This method is not implemented.\n */\n /**\n * This method is not implemented.\n * @return {?}\n */\n Headers.prototype.entries = /**\n * This method is not implemented.\n * @return {?}\n */\n function () { throw new Error('\"entries\" method is not implemented on Headers class'); };\n /**\n * @param {?} name\n * @return {?}\n */\n Headers.prototype.mayBeSetNormalizedName = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var /** @type {?} */ lcName = name.toLowerCase();\n if (!this._normalizedNames.has(lcName)) {\n this._normalizedNames.set(lcName, name);\n }\n };\n return Headers;\n}());\n/**\n * Polyfill for [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers/Headers), as\n * specified in the [Fetch Spec](https://fetch.spec.whatwg.org/#headers-class).\n *\n * The only known difference between this `Headers` implementation and the spec is the\n * lack of an `entries` method.\n *\n * ### Example\n *\n * ```\n * import {Headers} from '\\@angular/http';\n *\n * var firstHeaders = new Headers();\n * firstHeaders.append('Content-Type', 'image/jpeg');\n * console.log(firstHeaders.get('Content-Type')) //'image/jpeg'\n *\n * // Create headers from Plain Old JavaScript Object\n * var secondHeaders = new Headers({\n * 'X-My-Custom-Header': 'Angular'\n * });\n * console.log(secondHeaders.get('X-My-Custom-Header')); //'Angular'\n *\n * var thirdHeaders = new Headers(secondHeaders);\n * console.log(thirdHeaders.get('X-My-Custom-Header')); //'Angular'\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { Headers };\nfunction Headers_tsickle_Closure_declarations() {\n /**\n * \\@internal header names are lower case\n * @type {?}\n */\n Headers.prototype._headers;\n /**\n * \\@internal map lower case names to actual names\n * @type {?}\n */\n Headers.prototype._normalizedNames;\n}\n//# sourceMappingURL=headers.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { ResponseType } from './enums';\nimport { Headers } from './headers';\n/**\n * Creates a response options object to be optionally provided when instantiating a\n * {\\@link Response}.\n *\n * This class is based on the `ResponseInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#responseinit).\n *\n * All values are null by default. Typical defaults can be found in the\n * {\\@link BaseResponseOptions} class, which sub-classes `ResponseOptions`.\n *\n * This class may be used in tests to build {\\@link Response Responses} for\n * mock responses (see {\\@link MockBackend}).\n *\n * ### Example ([live demo](http://plnkr.co/edit/P9Jkk8e8cz6NVzbcxEsD?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new ResponseOptions({\n * body: '{\"name\":\"Jeff\"}'\n * });\n * var res = new Response(options);\n *\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Creates a response options object to be optionally provided when instantiating a\n * {\\@link Response}.\n *\n * This class is based on the `ResponseInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#responseinit).\n *\n * All values are null by default. Typical defaults can be found in the\n * {\\@link BaseResponseOptions} class, which sub-classes `ResponseOptions`.\n *\n * This class may be used in tests to build {\\@link Response Responses} for\n * mock responses (see {\\@link MockBackend}).\n *\n * ### Example ([live demo](http://plnkr.co/edit/P9Jkk8e8cz6NVzbcxEsD?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new ResponseOptions({\n * body: '{\"name\":\"Jeff\"}'\n * });\n * var res = new Response(options);\n *\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nResponseOptions = /** @class */ (function () {\n function ResponseOptions(opts) {\n if (opts === void 0) { opts = {}; }\n var body = opts.body, status = opts.status, headers = opts.headers, statusText = opts.statusText, type = opts.type, url = opts.url;\n this.body = body != null ? body : null;\n this.status = status != null ? status : null;\n this.headers = headers != null ? headers : null;\n this.statusText = statusText != null ? statusText : null;\n this.type = type != null ? type : null;\n this.url = url != null ? url : null;\n }\n /**\n * Creates a copy of the `ResponseOptions` instance, using the optional input as values to\n * override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * This may be useful when sharing a base `ResponseOptions` object inside tests,\n * where certain properties may change from test to test.\n *\n * ### Example ([live demo](http://plnkr.co/edit/1lXquqFfgduTFBWjNoRE?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '@angular/http';\n *\n * var options = new ResponseOptions({\n * body: {name: 'Jeff'}\n * });\n * var res = new Response(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('options.url:', options.url); // null\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * console.log('res.url:', res.url); // https://google.com\n * ```\n */\n /**\n * Creates a copy of the `ResponseOptions` instance, using the optional input as values to\n * override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * This may be useful when sharing a base `ResponseOptions` object inside tests,\n * where certain properties may change from test to test.\n *\n * ### Example ([live demo](http://plnkr.co/edit/1lXquqFfgduTFBWjNoRE?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new ResponseOptions({\n * body: {name: 'Jeff'}\n * });\n * var res = new Response(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('options.url:', options.url); // null\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * console.log('res.url:', res.url); // https://google.com\n * ```\n * @param {?=} options\n * @return {?}\n */\n ResponseOptions.prototype.merge = /**\n * Creates a copy of the `ResponseOptions` instance, using the optional input as values to\n * override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * This may be useful when sharing a base `ResponseOptions` object inside tests,\n * where certain properties may change from test to test.\n *\n * ### Example ([live demo](http://plnkr.co/edit/1lXquqFfgduTFBWjNoRE?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new ResponseOptions({\n * body: {name: 'Jeff'}\n * });\n * var res = new Response(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('options.url:', options.url); // null\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * console.log('res.url:', res.url); // https://google.com\n * ```\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n return new ResponseOptions({\n body: options && options.body != null ? options.body : this.body,\n status: options && options.status != null ? options.status : this.status,\n headers: options && options.headers != null ? options.headers : this.headers,\n statusText: options && options.statusText != null ? options.statusText : this.statusText,\n type: options && options.type != null ? options.type : this.type,\n url: options && options.url != null ? options.url : this.url,\n });\n };\n return ResponseOptions;\n}());\n/**\n * Creates a response options object to be optionally provided when instantiating a\n * {\\@link Response}.\n *\n * This class is based on the `ResponseInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#responseinit).\n *\n * All values are null by default. Typical defaults can be found in the\n * {\\@link BaseResponseOptions} class, which sub-classes `ResponseOptions`.\n *\n * This class may be used in tests to build {\\@link Response Responses} for\n * mock responses (see {\\@link MockBackend}).\n *\n * ### Example ([live demo](http://plnkr.co/edit/P9Jkk8e8cz6NVzbcxEsD?p=preview))\n *\n * ```typescript\n * import {ResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new ResponseOptions({\n * body: '{\"name\":\"Jeff\"}'\n * });\n * var res = new Response(options);\n *\n * console.log('res.json():', res.json()); // Object {name: \"Jeff\"}\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { ResponseOptions };\nfunction ResponseOptions_tsickle_Closure_declarations() {\n /**\n * String, Object, ArrayBuffer or Blob representing the body of the {\\@link Response}.\n * @type {?}\n */\n ResponseOptions.prototype.body;\n /**\n * Http {\\@link http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html status code}\n * associated with the response.\n * @type {?}\n */\n ResponseOptions.prototype.status;\n /**\n * Response {\\@link Headers headers}\n * @type {?}\n */\n ResponseOptions.prototype.headers;\n /**\n * \\@internal\n * @type {?}\n */\n ResponseOptions.prototype.statusText;\n /**\n * \\@internal\n * @type {?}\n */\n ResponseOptions.prototype.type;\n /** @type {?} */\n ResponseOptions.prototype.url;\n}\n/**\n * Subclass of {\\@link ResponseOptions}, with default values.\n *\n * Default values:\n * * status: 200\n * * headers: empty {\\@link Headers} object\n *\n * This class could be extended and bound to the {\\@link ResponseOptions} class\n * when configuring an {\\@link Injector}, in order to override the default options\n * used by {\\@link Http} to create {\\@link Response Responses}.\n *\n * ### Example ([live demo](http://plnkr.co/edit/qv8DLT?p=preview))\n *\n * ```typescript\n * import {provide} from '\\@angular/core';\n * import {bootstrap} from '\\@angular/platform-browser/browser';\n * import {HTTP_PROVIDERS, Headers, Http, BaseResponseOptions, ResponseOptions} from\n * '\\@angular/http';\n * import {App} from './myapp';\n *\n * class MyOptions extends BaseResponseOptions {\n * headers:Headers = new Headers({network: 'github'});\n * }\n *\n * bootstrap(App, [HTTP_PROVIDERS, {provide: ResponseOptions, useClass: MyOptions}]);\n * ```\n *\n * The options could also be extended when manually creating a {\\@link Response}\n * object.\n *\n * ### Example ([live demo](http://plnkr.co/edit/VngosOWiaExEtbstDoix?p=preview))\n *\n * ```\n * import {BaseResponseOptions, Response} from '\\@angular/http';\n *\n * var options = new BaseResponseOptions();\n * var res = new Response(options.merge({\n * body: 'Angular',\n * headers: new Headers({framework: 'angular'})\n * }));\n * console.log('res.headers.get(\"framework\"):', res.headers.get('framework')); // angular\n * console.log('res.text():', res.text()); // Angular;\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar BaseResponseOptions = /** @class */ (function (_super) {\n tslib_1.__extends(BaseResponseOptions, _super);\n function BaseResponseOptions() {\n return _super.call(this, { status: 200, statusText: 'Ok', type: ResponseType.Default, headers: new Headers() }) || this;\n }\n BaseResponseOptions.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n BaseResponseOptions.ctorParameters = function () { return []; };\n return BaseResponseOptions;\n}(ResponseOptions));\nexport { BaseResponseOptions };\nfunction BaseResponseOptions_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n BaseResponseOptions.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n BaseResponseOptions.ctorParameters;\n}\n//# sourceMappingURL=base_response_options.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Abstract class from which real backends are derived.\n *\n * The primary purpose of a `ConnectionBackend` is to create new connections to fulfill a given\n * {\\@link Request}.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nvar /**\n * Abstract class from which real backends are derived.\n *\n * The primary purpose of a `ConnectionBackend` is to create new connections to fulfill a given\n * {\\@link Request}.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nConnectionBackend = /** @class */ (function () {\n function ConnectionBackend() {\n }\n return ConnectionBackend;\n}());\n/**\n * Abstract class from which real backends are derived.\n *\n * The primary purpose of a `ConnectionBackend` is to create new connections to fulfill a given\n * {\\@link Request}.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nexport { ConnectionBackend };\nfunction ConnectionBackend_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} request\n * @return {?}\n */\n ConnectionBackend.prototype.createConnection = function (request) { };\n}\n/**\n * Abstract class from which real connections are derived.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nvar /**\n * Abstract class from which real connections are derived.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nConnection = /** @class */ (function () {\n function Connection() {\n }\n return Connection;\n}());\n/**\n * Abstract class from which real connections are derived.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nexport { Connection };\nfunction Connection_tsickle_Closure_declarations() {\n /** @type {?} */\n Connection.prototype.readyState;\n /** @type {?} */\n Connection.prototype.request;\n /** @type {?} */\n Connection.prototype.response;\n}\n/**\n * An XSRFStrategy configures XSRF protection (e.g. via headers) on an HTTP request.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nvar /**\n * An XSRFStrategy configures XSRF protection (e.g. via headers) on an HTTP request.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nXSRFStrategy = /** @class */ (function () {\n function XSRFStrategy() {\n }\n return XSRFStrategy;\n}());\n/**\n * An XSRFStrategy configures XSRF protection (e.g. via headers) on an HTTP request.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nexport { XSRFStrategy };\nfunction XSRFStrategy_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} req\n * @return {?}\n */\n XSRFStrategy.prototype.configureRequest = function (req) { };\n}\n/**\n * Interface for options to construct a RequestOptions, based on\n * [RequestInit](https://fetch.spec.whatwg.org/#requestinit) from the Fetch spec.\n *\n * @deprecated use \\@angular/common/http instead\n * @record\n */\nexport function RequestOptionsArgs() { }\nfunction RequestOptionsArgs_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.url;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.method;\n /**\n * @deprecated from 4.0.0. Use params instead.\n * @type {?|undefined}\n */\n RequestOptionsArgs.prototype.search;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.params;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.headers;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.body;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.withCredentials;\n /** @type {?|undefined} */\n RequestOptionsArgs.prototype.responseType;\n}\n/**\n * Required structure when constructing new Request();\n * @record\n */\nexport function RequestArgs() { }\nfunction RequestArgs_tsickle_Closure_declarations() {\n /** @type {?} */\n RequestArgs.prototype.url;\n}\n/**\n * Interface for options to construct a Response, based on\n * [ResponseInit](https://fetch.spec.whatwg.org/#responseinit) from the Fetch spec.\n *\n * @deprecated use \\@angular/common/http instead\n * @record\n */\nexport function ResponseOptionsArgs() { }\nfunction ResponseOptionsArgs_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.body;\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.status;\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.statusText;\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.headers;\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.type;\n /** @type {?|undefined} */\n ResponseOptionsArgs.prototype.url;\n}\n//# sourceMappingURL=interfaces.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { RequestMethod } from './enums';\n/**\n * @param {?} method\n * @return {?}\n */\nexport function normalizeMethodName(method) {\n if (typeof method !== 'string')\n return method;\n switch (method.toUpperCase()) {\n case 'GET':\n return RequestMethod.Get;\n case 'POST':\n return RequestMethod.Post;\n case 'PUT':\n return RequestMethod.Put;\n case 'DELETE':\n return RequestMethod.Delete;\n case 'OPTIONS':\n return RequestMethod.Options;\n case 'HEAD':\n return RequestMethod.Head;\n case 'PATCH':\n return RequestMethod.Patch;\n }\n throw new Error(\"Invalid request method. The method \\\"\" + method + \"\\\" is not supported.\");\n}\nexport var /** @type {?} */ isSuccess = function (status) { return (status >= 200 && status < 300); };\n/**\n * @param {?} xhr\n * @return {?}\n */\nexport function getResponseURL(xhr) {\n if ('responseURL' in xhr) {\n return xhr.responseURL;\n }\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\n return xhr.getResponseHeader('X-Request-URL');\n }\n return null;\n}\n/**\n * @param {?} input\n * @return {?}\n */\nexport function stringToArrayBuffer8(input) {\n var /** @type {?} */ view = new Uint8Array(input.length);\n for (var /** @type {?} */ i = 0, /** @type {?} */ strLen = input.length; i < strLen; i++) {\n view[i] = input.charCodeAt(i);\n }\n return view.buffer;\n}\n/**\n * @param {?} input\n * @return {?}\n */\nexport function stringToArrayBuffer(input) {\n var /** @type {?} */ view = new Uint16Array(input.length);\n for (var /** @type {?} */ i = 0, /** @type {?} */ strLen = input.length; i < strLen; i++) {\n view[i] = input.charCodeAt(i);\n }\n return view.buffer;\n}\n//# sourceMappingURL=http_utils.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @param {?=} rawParams\n * @return {?}\n */\nfunction paramParser(rawParams) {\n if (rawParams === void 0) { rawParams = ''; }\n var /** @type {?} */ map = new Map();\n if (rawParams.length > 0) {\n var /** @type {?} */ params = rawParams.split('&');\n params.forEach(function (param) {\n var /** @type {?} */ eqIdx = param.indexOf('=');\n var _a = eqIdx == -1 ? [param, ''] : [param.slice(0, eqIdx), param.slice(eqIdx + 1)], key = _a[0], val = _a[1];\n var /** @type {?} */ list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * @deprecated use \\@angular/common/http instead\n *\n */\nvar /**\n * @deprecated use \\@angular/common/http instead\n *\n */\nQueryEncoder = /** @class */ (function () {\n function QueryEncoder() {\n }\n /**\n * @param {?} k\n * @return {?}\n */\n QueryEncoder.prototype.encodeKey = /**\n * @param {?} k\n * @return {?}\n */\n function (k) { return standardEncoding(k); };\n /**\n * @param {?} v\n * @return {?}\n */\n QueryEncoder.prototype.encodeValue = /**\n * @param {?} v\n * @return {?}\n */\n function (v) { return standardEncoding(v); };\n return QueryEncoder;\n}());\n/**\n * @deprecated use \\@angular/common/http instead\n *\n */\nexport { QueryEncoder };\n/**\n * @param {?} v\n * @return {?}\n */\nfunction standardEncoding(v) {\n return encodeURIComponent(v)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/gi, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%2B/gi, '+')\n .replace(/%3D/gi, '=')\n .replace(/%3F/gi, '?')\n .replace(/%2F/gi, '/');\n}\n/**\n * Map-like representation of url search parameters, based on\n * [URLSearchParams](https://url.spec.whatwg.org/#urlsearchparams) in the url living standard,\n * with several extensions for merging URLSearchParams objects:\n * - setAll()\n * - appendAll()\n * - replaceAll()\n *\n * This class accepts an optional second parameter of ${\\@link QueryEncoder},\n * which is used to serialize parameters before making a request. By default,\n * `QueryEncoder` encodes keys and values of parameters using `encodeURIComponent`,\n * and then un-encodes certain characters that are allowed to be part of the query\n * according to IETF RFC 3986: https://tools.ietf.org/html/rfc3986.\n *\n * These are the characters that are not encoded: `! $ \\' ( ) * + , ; A 9 - . _ ~ ? /`\n *\n * If the set of allowed query characters is not acceptable for a particular backend,\n * `QueryEncoder` can be subclassed and provided as the 2nd argument to URLSearchParams.\n *\n * ```\n * import {URLSearchParams, QueryEncoder} from '\\@angular/http';\n * class MyQueryEncoder extends QueryEncoder {\n * encodeKey(k: string): string {\n * return myEncodingFunction(k);\n * }\n *\n * encodeValue(v: string): string {\n * return myEncodingFunction(v);\n * }\n * }\n *\n * let params = new URLSearchParams('', new MyQueryEncoder());\n * ```\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Map-like representation of url search parameters, based on\n * [URLSearchParams](https://url.spec.whatwg.org/#urlsearchparams) in the url living standard,\n * with several extensions for merging URLSearchParams objects:\n * - setAll()\n * - appendAll()\n * - replaceAll()\n *\n * This class accepts an optional second parameter of ${\\@link QueryEncoder},\n * which is used to serialize parameters before making a request. By default,\n * `QueryEncoder` encodes keys and values of parameters using `encodeURIComponent`,\n * and then un-encodes certain characters that are allowed to be part of the query\n * according to IETF RFC 3986: https://tools.ietf.org/html/rfc3986.\n *\n * These are the characters that are not encoded: `! $ \\' ( ) * + , ; A 9 - . _ ~ ? /`\n *\n * If the set of allowed query characters is not acceptable for a particular backend,\n * `QueryEncoder` can be subclassed and provided as the 2nd argument to URLSearchParams.\n *\n * ```\n * import {URLSearchParams, QueryEncoder} from '\\@angular/http';\n * class MyQueryEncoder extends QueryEncoder {\n * encodeKey(k: string): string {\n * return myEncodingFunction(k);\n * }\n *\n * encodeValue(v: string): string {\n * return myEncodingFunction(v);\n * }\n * }\n *\n * let params = new URLSearchParams('', new MyQueryEncoder());\n * ```\n * @deprecated use \\@angular/common/http instead\n */\nURLSearchParams = /** @class */ (function () {\n function URLSearchParams(rawParams, queryEncoder) {\n if (rawParams === void 0) { rawParams = ''; }\n if (queryEncoder === void 0) { queryEncoder = new QueryEncoder(); }\n this.rawParams = rawParams;\n this.queryEncoder = queryEncoder;\n this.paramsMap = paramParser(rawParams);\n }\n /**\n * @return {?}\n */\n URLSearchParams.prototype.clone = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ clone = new URLSearchParams('', this.queryEncoder);\n clone.appendAll(this);\n return clone;\n };\n /**\n * @param {?} param\n * @return {?}\n */\n URLSearchParams.prototype.has = /**\n * @param {?} param\n * @return {?}\n */\n function (param) { return this.paramsMap.has(param); };\n /**\n * @param {?} param\n * @return {?}\n */\n URLSearchParams.prototype.get = /**\n * @param {?} param\n * @return {?}\n */\n function (param) {\n var /** @type {?} */ storedParam = this.paramsMap.get(param);\n return Array.isArray(storedParam) ? storedParam[0] : null;\n };\n /**\n * @param {?} param\n * @return {?}\n */\n URLSearchParams.prototype.getAll = /**\n * @param {?} param\n * @return {?}\n */\n function (param) { return this.paramsMap.get(param) || []; };\n /**\n * @param {?} param\n * @param {?} val\n * @return {?}\n */\n URLSearchParams.prototype.set = /**\n * @param {?} param\n * @param {?} val\n * @return {?}\n */\n function (param, val) {\n if (val === void 0 || val === null) {\n this.delete(param);\n return;\n }\n var /** @type {?} */ list = this.paramsMap.get(param) || [];\n list.length = 0;\n list.push(val);\n this.paramsMap.set(param, list);\n };\n // A merge operation\n // For each name-values pair in `searchParams`, perform `set(name, values[0])`\n //\n // E.g: \"a=[1,2,3], c=[8]\" + \"a=[4,5,6], b=[7]\" = \"a=[4], c=[8], b=[7]\"\n //\n // TODO(@caitp): document this better\n /**\n * @param {?} searchParams\n * @return {?}\n */\n URLSearchParams.prototype.setAll = /**\n * @param {?} searchParams\n * @return {?}\n */\n function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var /** @type {?} */ list = _this.paramsMap.get(param) || [];\n list.length = 0;\n list.push(value[0]);\n _this.paramsMap.set(param, list);\n });\n };\n /**\n * @param {?} param\n * @param {?} val\n * @return {?}\n */\n URLSearchParams.prototype.append = /**\n * @param {?} param\n * @param {?} val\n * @return {?}\n */\n function (param, val) {\n if (val === void 0 || val === null)\n return;\n var /** @type {?} */ list = this.paramsMap.get(param) || [];\n list.push(val);\n this.paramsMap.set(param, list);\n };\n // A merge operation\n // For each name-values pair in `searchParams`, perform `append(name, value)`\n // for each value in `values`.\n //\n // E.g: \"a=[1,2], c=[8]\" + \"a=[3,4], b=[7]\" = \"a=[1,2,3,4], c=[8], b=[7]\"\n //\n // TODO(@caitp): document this better\n /**\n * @param {?} searchParams\n * @return {?}\n */\n URLSearchParams.prototype.appendAll = /**\n * @param {?} searchParams\n * @return {?}\n */\n function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var /** @type {?} */ list = _this.paramsMap.get(param) || [];\n for (var /** @type {?} */ i = 0; i < value.length; ++i) {\n list.push(value[i]);\n }\n _this.paramsMap.set(param, list);\n });\n };\n // A merge operation\n // For each name-values pair in `searchParams`, perform `delete(name)`,\n // followed by `set(name, values)`\n //\n // E.g: \"a=[1,2,3], c=[8]\" + \"a=[4,5,6], b=[7]\" = \"a=[4,5,6], c=[8], b=[7]\"\n //\n // TODO(@caitp): document this better\n /**\n * @param {?} searchParams\n * @return {?}\n */\n URLSearchParams.prototype.replaceAll = /**\n * @param {?} searchParams\n * @return {?}\n */\n function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var /** @type {?} */ list = _this.paramsMap.get(param) || [];\n list.length = 0;\n for (var /** @type {?} */ i = 0; i < value.length; ++i) {\n list.push(value[i]);\n }\n _this.paramsMap.set(param, list);\n });\n };\n /**\n * @return {?}\n */\n URLSearchParams.prototype.toString = /**\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ paramsList = [];\n this.paramsMap.forEach(function (values, k) {\n values.forEach(function (v) {\n return paramsList.push(_this.queryEncoder.encodeKey(k) + '=' + _this.queryEncoder.encodeValue(v));\n });\n });\n return paramsList.join('&');\n };\n /**\n * @param {?} param\n * @return {?}\n */\n URLSearchParams.prototype.delete = /**\n * @param {?} param\n * @return {?}\n */\n function (param) { this.paramsMap.delete(param); };\n return URLSearchParams;\n}());\n/**\n * Map-like representation of url search parameters, based on\n * [URLSearchParams](https://url.spec.whatwg.org/#urlsearchparams) in the url living standard,\n * with several extensions for merging URLSearchParams objects:\n * - setAll()\n * - appendAll()\n * - replaceAll()\n *\n * This class accepts an optional second parameter of ${\\@link QueryEncoder},\n * which is used to serialize parameters before making a request. By default,\n * `QueryEncoder` encodes keys and values of parameters using `encodeURIComponent`,\n * and then un-encodes certain characters that are allowed to be part of the query\n * according to IETF RFC 3986: https://tools.ietf.org/html/rfc3986.\n *\n * These are the characters that are not encoded: `! $ \\' ( ) * + , ; A 9 - . _ ~ ? /`\n *\n * If the set of allowed query characters is not acceptable for a particular backend,\n * `QueryEncoder` can be subclassed and provided as the 2nd argument to URLSearchParams.\n *\n * ```\n * import {URLSearchParams, QueryEncoder} from '\\@angular/http';\n * class MyQueryEncoder extends QueryEncoder {\n * encodeKey(k: string): string {\n * return myEncodingFunction(k);\n * }\n *\n * encodeValue(v: string): string {\n * return myEncodingFunction(v);\n * }\n * }\n *\n * let params = new URLSearchParams('', new MyQueryEncoder());\n * ```\n * @deprecated use \\@angular/common/http instead\n */\nexport { URLSearchParams };\nfunction URLSearchParams_tsickle_Closure_declarations() {\n /** @type {?} */\n URLSearchParams.prototype.paramsMap;\n /** @type {?} */\n URLSearchParams.prototype.rawParams;\n /** @type {?} */\n URLSearchParams.prototype.queryEncoder;\n}\n//# sourceMappingURL=url_search_params.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { stringToArrayBuffer } from './http_utils';\nimport { URLSearchParams } from './url_search_params';\n/**\n * HTTP request body used by both {\\@link Request} and {\\@link Response}\n * https://fetch.spec.whatwg.org/#body\n * @abstract\n */\nvar /**\n * HTTP request body used by both {\\@link Request} and {\\@link Response}\n * https://fetch.spec.whatwg.org/#body\n * @abstract\n */\nBody = /** @class */ (function () {\n function Body() {\n }\n /**\n * Attempts to return body as parsed `JSON` object, or raises an exception.\n */\n /**\n * Attempts to return body as parsed `JSON` object, or raises an exception.\n * @return {?}\n */\n Body.prototype.json = /**\n * Attempts to return body as parsed `JSON` object, or raises an exception.\n * @return {?}\n */\n function () {\n if (typeof this._body === 'string') {\n return JSON.parse(/** @type {?} */ (this._body));\n }\n if (this._body instanceof ArrayBuffer) {\n return JSON.parse(this.text());\n }\n return this._body;\n };\n /**\n * Returns the body as a string, presuming `toString()` can be called on the response body.\n *\n * When decoding an `ArrayBuffer`, the optional `encodingHint` parameter determines how the\n * bytes in the buffer will be interpreted. Valid values are:\n *\n * - `legacy` - incorrectly interpret the bytes as UTF-16 (technically, UCS-2). Only characters\n * in the Basic Multilingual Plane are supported, surrogate pairs are not handled correctly.\n * In addition, the endianness of the 16-bit octet pairs in the `ArrayBuffer` is not taken\n * into consideration. This is the default behavior to avoid breaking apps, but should be\n * considered deprecated.\n *\n * - `iso-8859` - interpret the bytes as ISO-8859 (which can be used for ASCII encoded text).\n */\n /**\n * Returns the body as a string, presuming `toString()` can be called on the response body.\n *\n * When decoding an `ArrayBuffer`, the optional `encodingHint` parameter determines how the\n * bytes in the buffer will be interpreted. Valid values are:\n *\n * - `legacy` - incorrectly interpret the bytes as UTF-16 (technically, UCS-2). Only characters\n * in the Basic Multilingual Plane are supported, surrogate pairs are not handled correctly.\n * In addition, the endianness of the 16-bit octet pairs in the `ArrayBuffer` is not taken\n * into consideration. This is the default behavior to avoid breaking apps, but should be\n * considered deprecated.\n *\n * - `iso-8859` - interpret the bytes as ISO-8859 (which can be used for ASCII encoded text).\n * @param {?=} encodingHint\n * @return {?}\n */\n Body.prototype.text = /**\n * Returns the body as a string, presuming `toString()` can be called on the response body.\n *\n * When decoding an `ArrayBuffer`, the optional `encodingHint` parameter determines how the\n * bytes in the buffer will be interpreted. Valid values are:\n *\n * - `legacy` - incorrectly interpret the bytes as UTF-16 (technically, UCS-2). Only characters\n * in the Basic Multilingual Plane are supported, surrogate pairs are not handled correctly.\n * In addition, the endianness of the 16-bit octet pairs in the `ArrayBuffer` is not taken\n * into consideration. This is the default behavior to avoid breaking apps, but should be\n * considered deprecated.\n *\n * - `iso-8859` - interpret the bytes as ISO-8859 (which can be used for ASCII encoded text).\n * @param {?=} encodingHint\n * @return {?}\n */\n function (encodingHint) {\n if (encodingHint === void 0) { encodingHint = 'legacy'; }\n if (this._body instanceof URLSearchParams) {\n return this._body.toString();\n }\n if (this._body instanceof ArrayBuffer) {\n switch (encodingHint) {\n case 'legacy':\n return String.fromCharCode.apply(null, new Uint16Array(/** @type {?} */ (this._body)));\n case 'iso-8859':\n return String.fromCharCode.apply(null, new Uint8Array(/** @type {?} */ (this._body)));\n default:\n throw new Error(\"Invalid value for encodingHint: \" + encodingHint);\n }\n }\n if (this._body == null) {\n return '';\n }\n if (typeof this._body === 'object') {\n return JSON.stringify(this._body, null, 2);\n }\n return this._body.toString();\n };\n /**\n * Return the body as an ArrayBuffer\n */\n /**\n * Return the body as an ArrayBuffer\n * @return {?}\n */\n Body.prototype.arrayBuffer = /**\n * Return the body as an ArrayBuffer\n * @return {?}\n */\n function () {\n if (this._body instanceof ArrayBuffer) {\n return /** @type {?} */ (this._body);\n }\n return stringToArrayBuffer(this.text());\n };\n /**\n * Returns the request's body as a Blob, assuming that body exists.\n */\n /**\n * Returns the request's body as a Blob, assuming that body exists.\n * @return {?}\n */\n Body.prototype.blob = /**\n * Returns the request's body as a Blob, assuming that body exists.\n * @return {?}\n */\n function () {\n if (this._body instanceof Blob) {\n return /** @type {?} */ (this._body);\n }\n if (this._body instanceof ArrayBuffer) {\n return new Blob([this._body]);\n }\n throw new Error('The request body isn\\'t either a blob or an array buffer');\n };\n return Body;\n}());\n/**\n * HTTP request body used by both {\\@link Request} and {\\@link Response}\n * https://fetch.spec.whatwg.org/#body\n * @abstract\n */\nexport { Body };\nfunction Body_tsickle_Closure_declarations() {\n /**\n * \\@internal\n * @type {?}\n */\n Body.prototype._body;\n}\n//# sourceMappingURL=body.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Body } from './body';\n/**\n * Creates `Response` instances from provided values.\n *\n * Though this object isn't\n * usually instantiated by end-users, it is the primary object interacted with when it comes time to\n * add data to a view.\n *\n * ### Example\n *\n * ```\n * http.request('my-friends.txt').subscribe(response => this.friends = response.text());\n * ```\n *\n * The Response's interface is inspired by the Response constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#response-class), but is considered a static value whose body\n * can be accessed many times. There are other differences in the implementation, but this is the\n * most significant.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Creates `Response` instances from provided values.\n *\n * Though this object isn't\n * usually instantiated by end-users, it is the primary object interacted with when it comes time to\n * add data to a view.\n *\n * ### Example\n *\n * ```\n * http.request('my-friends.txt').subscribe(response => this.friends = response.text());\n * ```\n *\n * The Response's interface is inspired by the Response constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#response-class), but is considered a static value whose body\n * can be accessed many times. There are other differences in the implementation, but this is the\n * most significant.\n *\n * @deprecated use \\@angular/common/http instead\n */\nResponse = /** @class */ (function (_super) {\n tslib_1.__extends(Response, _super);\n function Response(responseOptions) {\n var _this = _super.call(this) || this;\n _this._body = responseOptions.body;\n _this.status = /** @type {?} */ ((responseOptions.status));\n _this.ok = (_this.status >= 200 && _this.status <= 299);\n _this.statusText = responseOptions.statusText;\n _this.headers = responseOptions.headers;\n _this.type = /** @type {?} */ ((responseOptions.type));\n _this.url = /** @type {?} */ ((responseOptions.url));\n return _this;\n }\n /**\n * @return {?}\n */\n Response.prototype.toString = /**\n * @return {?}\n */\n function () {\n return \"Response with status: \" + this.status + \" \" + this.statusText + \" for URL: \" + this.url;\n };\n return Response;\n}(Body));\n/**\n * Creates `Response` instances from provided values.\n *\n * Though this object isn't\n * usually instantiated by end-users, it is the primary object interacted with when it comes time to\n * add data to a view.\n *\n * ### Example\n *\n * ```\n * http.request('my-friends.txt').subscribe(response => this.friends = response.text());\n * ```\n *\n * The Response's interface is inspired by the Response constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#response-class), but is considered a static value whose body\n * can be accessed many times. There are other differences in the implementation, but this is the\n * most significant.\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { Response };\nfunction Response_tsickle_Closure_declarations() {\n /**\n * One of \"basic\", \"cors\", \"default\", \"error\", or \"opaque\".\n *\n * Defaults to \"default\".\n * @type {?}\n */\n Response.prototype.type;\n /**\n * True if the response's status is within 200-299\n * @type {?}\n */\n Response.prototype.ok;\n /**\n * URL of response.\n *\n * Defaults to empty string.\n * @type {?}\n */\n Response.prototype.url;\n /**\n * Status code returned by server.\n *\n * Defaults to 200.\n * @type {?}\n */\n Response.prototype.status;\n /**\n * Text representing the corresponding reason phrase to the `status`, as defined in [ietf rfc 2616\n * section 6.1.1](https://tools.ietf.org/html/rfc2616#section-6.1.1)\n *\n * Defaults to \"OK\"\n * @type {?}\n */\n Response.prototype.statusText;\n /**\n * Non-standard property\n *\n * Denotes how many of the response body's bytes have been loaded, for example if the response is\n * the result of a progress event.\n * @type {?}\n */\n Response.prototype.bytesLoaded;\n /**\n * Non-standard property\n *\n * Denotes how many bytes are expected in the final response body.\n * @type {?}\n */\n Response.prototype.totalBytes;\n /**\n * Headers object based on the `Headers` class in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#headers-class).\n * @type {?}\n */\n Response.prototype.headers;\n}\n//# sourceMappingURL=static_response.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable } from '@angular/core';\nvar /** @type {?} */ _nextRequestId = 0;\nexport var /** @type {?} */ JSONP_HOME = '__ng_jsonp__';\nvar /** @type {?} */ _jsonpConnections = null;\n/**\n * @return {?}\n */\nfunction _getJsonpConnections() {\n var /** @type {?} */ w = typeof window == 'object' ? window : {};\n if (_jsonpConnections === null) {\n _jsonpConnections = w[JSONP_HOME] = {};\n }\n return _jsonpConnections;\n}\nvar BrowserJsonp = /** @class */ (function () {\n function BrowserJsonp() {\n }\n // Construct a <script> element with the specified URL\n /**\n * @param {?} url\n * @return {?}\n */\n BrowserJsonp.prototype.build = /**\n * @param {?} url\n * @return {?}\n */\n function (url) {\n var /** @type {?} */ node = document.createElement('script');\n node.src = url;\n return node;\n };\n /**\n * @return {?}\n */\n BrowserJsonp.prototype.nextRequestID = /**\n * @return {?}\n */\n function () { return \"__req\" + _nextRequestId++; };\n /**\n * @param {?} id\n * @return {?}\n */\n BrowserJsonp.prototype.requestCallback = /**\n * @param {?} id\n * @return {?}\n */\n function (id) { return JSONP_HOME + \".\" + id + \".finished\"; };\n /**\n * @param {?} id\n * @param {?} connection\n * @return {?}\n */\n BrowserJsonp.prototype.exposeConnection = /**\n * @param {?} id\n * @param {?} connection\n * @return {?}\n */\n function (id, connection) {\n var /** @type {?} */ connections = _getJsonpConnections();\n connections[id] = connection;\n };\n /**\n * @param {?} id\n * @return {?}\n */\n BrowserJsonp.prototype.removeConnection = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n var /** @type {?} */ connections = _getJsonpConnections();\n connections[id] = null;\n };\n // Attach the <script> element to the DOM\n /**\n * @param {?} node\n * @return {?}\n */\n BrowserJsonp.prototype.send = /**\n * @param {?} node\n * @return {?}\n */\n function (node) { document.body.appendChild(/** @type {?} */ ((node))); };\n // Remove <script> element from the DOM\n /**\n * @param {?} node\n * @return {?}\n */\n BrowserJsonp.prototype.cleanup = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild(/** @type {?} */ ((node)));\n }\n };\n BrowserJsonp.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n BrowserJsonp.ctorParameters = function () { return []; };\n return BrowserJsonp;\n}());\nexport { BrowserJsonp };\nfunction BrowserJsonp_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n BrowserJsonp.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n BrowserJsonp.ctorParameters;\n}\n//# sourceMappingURL=browser_jsonp.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/Observable';\nimport { ResponseOptions } from '../base_response_options';\nimport { ReadyState, RequestMethod, ResponseType } from '../enums';\nimport { ConnectionBackend } from '../interfaces';\nimport { Response } from '../static_response';\nimport { BrowserJsonp } from './browser_jsonp';\nvar /** @type {?} */ JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\nvar /** @type {?} */ JSONP_ERR_WRONG_METHOD = 'JSONP requests must use GET request method.';\n/**\n * Base class for an in-flight JSONP request.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Base class for an in-flight JSONP request.\n *\n * @deprecated use \\@angular/common/http instead\n */\nJSONPConnection = /** @class */ (function () {\n /** @internal */\n function JSONPConnection(req, _dom, baseResponseOptions) {\n var _this = this;\n this._dom = _dom;\n this.baseResponseOptions = baseResponseOptions;\n this._finished = false;\n if (req.method !== RequestMethod.Get) {\n throw new TypeError(JSONP_ERR_WRONG_METHOD);\n }\n this.request = req;\n this.response = new Observable(function (responseObserver) {\n _this.readyState = ReadyState.Loading;\n var /** @type {?} */ id = _this._id = _dom.nextRequestID();\n _dom.exposeConnection(id, _this);\n // Workaround Dart\n // url = url.replace(/=JSONP_CALLBACK(&|$)/, `generated method`);\n var /** @type {?} */ callback = _dom.requestCallback(_this._id);\n var /** @type {?} */ url = req.url;\n if (url.indexOf('=JSONP_CALLBACK&') > -1) {\n url = url.replace('=JSONP_CALLBACK&', \"=\" + callback + \"&\");\n }\n else if (url.lastIndexOf('=JSONP_CALLBACK') === url.length - '=JSONP_CALLBACK'.length) {\n url = url.substring(0, url.length - '=JSONP_CALLBACK'.length) + (\"=\" + callback);\n }\n var /** @type {?} */ script = _this._script = _dom.build(url);\n var /** @type {?} */ onLoad = function (event) {\n if (_this.readyState === ReadyState.Cancelled)\n return;\n _this.readyState = ReadyState.Done;\n _dom.cleanup(script);\n if (!_this._finished) {\n var /** @type {?} */ responseOptions_1 = new ResponseOptions({ body: JSONP_ERR_NO_CALLBACK, type: ResponseType.Error, url: url });\n if (baseResponseOptions) {\n responseOptions_1 = baseResponseOptions.merge(responseOptions_1);\n }\n responseObserver.error(new Response(responseOptions_1));\n return;\n }\n var /** @type {?} */ responseOptions = new ResponseOptions({ body: _this._responseData, url: url });\n if (_this.baseResponseOptions) {\n responseOptions = _this.baseResponseOptions.merge(responseOptions);\n }\n responseObserver.next(new Response(responseOptions));\n responseObserver.complete();\n };\n var /** @type {?} */ onError = function (error) {\n if (_this.readyState === ReadyState.Cancelled)\n return;\n _this.readyState = ReadyState.Done;\n _dom.cleanup(script);\n var /** @type {?} */ responseOptions = new ResponseOptions({ body: error.message, type: ResponseType.Error });\n if (baseResponseOptions) {\n responseOptions = baseResponseOptions.merge(responseOptions);\n }\n responseObserver.error(new Response(responseOptions));\n };\n script.addEventListener('load', onLoad);\n script.addEventListener('error', onError);\n _dom.send(script);\n return function () {\n _this.readyState = ReadyState.Cancelled;\n script.removeEventListener('load', onLoad);\n script.removeEventListener('error', onError);\n _this._dom.cleanup(script);\n };\n });\n }\n /**\n * Callback called when the JSONP request completes, to notify the application\n * of the new data.\n */\n /**\n * Callback called when the JSONP request completes, to notify the application\n * of the new data.\n * @param {?=} data\n * @return {?}\n */\n JSONPConnection.prototype.finished = /**\n * Callback called when the JSONP request completes, to notify the application\n * of the new data.\n * @param {?=} data\n * @return {?}\n */\n function (data) {\n // Don't leak connections\n this._finished = true;\n this._dom.removeConnection(this._id);\n if (this.readyState === ReadyState.Cancelled)\n return;\n this._responseData = data;\n };\n return JSONPConnection;\n}());\n/**\n * Base class for an in-flight JSONP request.\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { JSONPConnection };\nfunction JSONPConnection_tsickle_Closure_declarations() {\n /** @type {?} */\n JSONPConnection.prototype._id;\n /** @type {?} */\n JSONPConnection.prototype._script;\n /** @type {?} */\n JSONPConnection.prototype._responseData;\n /** @type {?} */\n JSONPConnection.prototype._finished;\n /**\n * The {\\@link ReadyState} of this request.\n * @type {?}\n */\n JSONPConnection.prototype.readyState;\n /**\n * The outgoing HTTP request.\n * @type {?}\n */\n JSONPConnection.prototype.request;\n /**\n * An observable that completes with the response, when the request is finished.\n * @type {?}\n */\n JSONPConnection.prototype.response;\n /** @type {?} */\n JSONPConnection.prototype._dom;\n /** @type {?} */\n JSONPConnection.prototype.baseResponseOptions;\n}\n/**\n * A {\\@link ConnectionBackend} that uses the JSONP strategy of making requests.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar JSONPBackend = /** @class */ (function (_super) {\n tslib_1.__extends(JSONPBackend, _super);\n /** @internal */\n function JSONPBackend(_browserJSONP, _baseResponseOptions) {\n var _this = _super.call(this) || this;\n _this._browserJSONP = _browserJSONP;\n _this._baseResponseOptions = _baseResponseOptions;\n return _this;\n }\n /**\n * @param {?} request\n * @return {?}\n */\n JSONPBackend.prototype.createConnection = /**\n * @param {?} request\n * @return {?}\n */\n function (request) {\n return new JSONPConnection(request, this._browserJSONP, this._baseResponseOptions);\n };\n JSONPBackend.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n JSONPBackend.ctorParameters = function () { return [\n { type: BrowserJsonp, },\n { type: ResponseOptions, },\n ]; };\n return JSONPBackend;\n}(ConnectionBackend));\nexport { JSONPBackend };\nfunction JSONPBackend_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n JSONPBackend.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n JSONPBackend.ctorParameters;\n /** @type {?} */\n JSONPBackend.prototype._browserJSONP;\n /** @type {?} */\n JSONPBackend.prototype._baseResponseOptions;\n}\n//# sourceMappingURL=jsonp_backend.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Injectable } from '@angular/core';\nimport { ɵgetDOM as getDOM } from '@angular/platform-browser';\nimport { Observable } from 'rxjs/Observable';\nimport { ResponseOptions } from '../base_response_options';\nimport { ContentType, RequestMethod, ResponseContentType, ResponseType } from '../enums';\nimport { Headers } from '../headers';\nimport { getResponseURL, isSuccess } from '../http_utils';\nimport { XSRFStrategy } from '../interfaces';\nimport { Response } from '../static_response';\nimport { BrowserXhr } from './browser_xhr';\nvar /** @type {?} */ XSSI_PREFIX = /^\\)\\]\\}',?\\n/;\n/**\n * Creates connections using `XMLHttpRequest`. Given a fully-qualified\n * request, an `XHRConnection` will immediately create an `XMLHttpRequest` object and send the\n * request.\n *\n * This class would typically not be created or interacted with directly inside applications, though\n * the {\\@link MockConnection} may be interacted with in tests.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Creates connections using `XMLHttpRequest`. Given a fully-qualified\n * request, an `XHRConnection` will immediately create an `XMLHttpRequest` object and send the\n * request.\n *\n * This class would typically not be created or interacted with directly inside applications, though\n * the {\\@link MockConnection} may be interacted with in tests.\n *\n * @deprecated use \\@angular/common/http instead\n */\nXHRConnection = /** @class */ (function () {\n function XHRConnection(req, browserXHR, baseResponseOptions) {\n var _this = this;\n this.request = req;\n this.response = new Observable(function (responseObserver) {\n var /** @type {?} */ _xhr = browserXHR.build();\n _xhr.open(RequestMethod[req.method].toUpperCase(), req.url);\n if (req.withCredentials != null) {\n _xhr.withCredentials = req.withCredentials;\n }\n // load event handler\n var /** @type {?} */ onLoad = function () {\n // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)\n var /** @type {?} */ status = _xhr.status === 1223 ? 204 : _xhr.status;\n var /** @type {?} */ body = null;\n // HTTP 204 means no content\n if (status !== 204) {\n // responseText is the old-school way of retrieving response (supported by IE8 & 9)\n // response/responseType properties were introduced in ResourceLoader Level2 spec\n // (supported by IE10)\n body = (typeof _xhr.response === 'undefined') ? _xhr.responseText : _xhr.response;\n // Implicitly strip a potential XSSI prefix.\n if (typeof body === 'string') {\n body = body.replace(XSSI_PREFIX, '');\n }\n }\n // fix status code when it is 0 (0 status is undocumented).\n // Occurs when accessing file resources or on Android 4.1 stock browser\n // while retrieving files from application cache.\n if (status === 0) {\n status = body ? 200 : 0;\n }\n var /** @type {?} */ headers = Headers.fromResponseHeaderString(_xhr.getAllResponseHeaders());\n // IE 9 does not provide the way to get URL of response\n var /** @type {?} */ url = getResponseURL(_xhr) || req.url;\n var /** @type {?} */ statusText = _xhr.statusText || 'OK';\n var /** @type {?} */ responseOptions = new ResponseOptions({ body: body, status: status, headers: headers, statusText: statusText, url: url });\n if (baseResponseOptions != null) {\n responseOptions = baseResponseOptions.merge(responseOptions);\n }\n var /** @type {?} */ response = new Response(responseOptions);\n response.ok = isSuccess(status);\n if (response.ok) {\n responseObserver.next(response);\n // TODO(gdi2290): defer complete if array buffer until done\n responseObserver.complete();\n return;\n }\n responseObserver.error(response);\n };\n // error event handler\n var /** @type {?} */ onError = function (err) {\n var /** @type {?} */ responseOptions = new ResponseOptions({\n body: err,\n type: ResponseType.Error,\n status: _xhr.status,\n statusText: _xhr.statusText,\n });\n if (baseResponseOptions != null) {\n responseOptions = baseResponseOptions.merge(responseOptions);\n }\n responseObserver.error(new Response(responseOptions));\n };\n _this.setDetectedContentType(req, _xhr);\n if (req.headers == null) {\n req.headers = new Headers();\n }\n if (!req.headers.has('Accept')) {\n req.headers.append('Accept', 'application/json, text/plain, */*');\n }\n req.headers.forEach(function (values, name) { return _xhr.setRequestHeader(/** @type {?} */ ((name)), values.join(',')); });\n // Select the correct buffer type to store the response\n if (req.responseType != null && _xhr.responseType != null) {\n switch (req.responseType) {\n case ResponseContentType.ArrayBuffer:\n _xhr.responseType = 'arraybuffer';\n break;\n case ResponseContentType.Json:\n _xhr.responseType = 'json';\n break;\n case ResponseContentType.Text:\n _xhr.responseType = 'text';\n break;\n case ResponseContentType.Blob:\n _xhr.responseType = 'blob';\n break;\n default:\n throw new Error('The selected responseType is not supported');\n }\n }\n _xhr.addEventListener('load', onLoad);\n _xhr.addEventListener('error', onError);\n _xhr.send(_this.request.getBody());\n return function () {\n _xhr.removeEventListener('load', onLoad);\n _xhr.removeEventListener('error', onError);\n _xhr.abort();\n };\n });\n }\n /**\n * @param {?} req\n * @param {?} _xhr\n * @return {?}\n */\n XHRConnection.prototype.setDetectedContentType = /**\n * @param {?} req\n * @param {?} _xhr\n * @return {?}\n */\n function (req /** TODO Request */, _xhr /** XMLHttpRequest */) {\n // Skip if a custom Content-Type header is provided\n if (req.headers != null && req.headers.get('Content-Type') != null) {\n return;\n }\n // Set the detected content type\n switch (req.contentType) {\n case ContentType.NONE:\n break;\n case ContentType.JSON:\n _xhr.setRequestHeader('content-type', 'application/json');\n break;\n case ContentType.FORM:\n _xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n break;\n case ContentType.TEXT:\n _xhr.setRequestHeader('content-type', 'text/plain');\n break;\n case ContentType.BLOB:\n var /** @type {?} */ blob = req.blob();\n if (blob.type) {\n _xhr.setRequestHeader('content-type', blob.type);\n }\n break;\n }\n };\n return XHRConnection;\n}());\n/**\n * Creates connections using `XMLHttpRequest`. Given a fully-qualified\n * request, an `XHRConnection` will immediately create an `XMLHttpRequest` object and send the\n * request.\n *\n * This class would typically not be created or interacted with directly inside applications, though\n * the {\\@link MockConnection} may be interacted with in tests.\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { XHRConnection };\nfunction XHRConnection_tsickle_Closure_declarations() {\n /** @type {?} */\n XHRConnection.prototype.request;\n /**\n * Response {\\@link EventEmitter} which emits a single {\\@link Response} value on load event of\n * `XMLHttpRequest`.\n * @type {?}\n */\n XHRConnection.prototype.response;\n /** @type {?} */\n XHRConnection.prototype.readyState;\n}\n/**\n * `XSRFConfiguration` sets up Cross Site Request Forgery (XSRF) protection for the application\n * using a cookie. See https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)\n * for more information on XSRF.\n *\n * Applications can configure custom cookie and header names by binding an instance of this class\n * with different `cookieName` and `headerName` values. See the main HTTP documentation for more\n * details.\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * `XSRFConfiguration` sets up Cross Site Request Forgery (XSRF) protection for the application\n * using a cookie. See https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)\n * for more information on XSRF.\n *\n * Applications can configure custom cookie and header names by binding an instance of this class\n * with different `cookieName` and `headerName` values. See the main HTTP documentation for more\n * details.\n *\n * @deprecated use \\@angular/common/http instead\n */\nCookieXSRFStrategy = /** @class */ (function () {\n function CookieXSRFStrategy(_cookieName, _headerName) {\n if (_cookieName === void 0) { _cookieName = 'XSRF-TOKEN'; }\n if (_headerName === void 0) { _headerName = 'X-XSRF-TOKEN'; }\n this._cookieName = _cookieName;\n this._headerName = _headerName;\n }\n /**\n * @param {?} req\n * @return {?}\n */\n CookieXSRFStrategy.prototype.configureRequest = /**\n * @param {?} req\n * @return {?}\n */\n function (req) {\n var /** @type {?} */ xsrfToken = getDOM().getCookie(this._cookieName);\n if (xsrfToken) {\n req.headers.set(this._headerName, xsrfToken);\n }\n };\n return CookieXSRFStrategy;\n}());\n/**\n * `XSRFConfiguration` sets up Cross Site Request Forgery (XSRF) protection for the application\n * using a cookie. See https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)\n * for more information on XSRF.\n *\n * Applications can configure custom cookie and header names by binding an instance of this class\n * with different `cookieName` and `headerName` values. See the main HTTP documentation for more\n * details.\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { CookieXSRFStrategy };\nfunction CookieXSRFStrategy_tsickle_Closure_declarations() {\n /** @type {?} */\n CookieXSRFStrategy.prototype._cookieName;\n /** @type {?} */\n CookieXSRFStrategy.prototype._headerName;\n}\n/**\n * Creates {\\@link XHRConnection} instances.\n *\n * This class would typically not be used by end users, but could be\n * overridden if a different backend implementation should be used,\n * such as in a node backend.\n *\n * ### Example\n *\n * ```\n * import {Http, MyNodeBackend, HTTP_PROVIDERS, BaseRequestOptions} from '\\@angular/http';\n * \\@Component({\n * viewProviders: [\n * HTTP_PROVIDERS,\n * {provide: Http, useFactory: (backend, options) => {\n * return new Http(backend, options);\n * }, deps: [MyNodeBackend, BaseRequestOptions]}]\n * })\n * class MyComponent {\n * constructor(http:Http) {\n * http.request('people.json').subscribe(res => this.people = res.json());\n * }\n * }\n * ```\n * @deprecated use \\@angular/common/http instead\n */\nvar XHRBackend = /** @class */ (function () {\n function XHRBackend(_browserXHR, _baseResponseOptions, _xsrfStrategy) {\n this._browserXHR = _browserXHR;\n this._baseResponseOptions = _baseResponseOptions;\n this._xsrfStrategy = _xsrfStrategy;\n }\n /**\n * @param {?} request\n * @return {?}\n */\n XHRBackend.prototype.createConnection = /**\n * @param {?} request\n * @return {?}\n */\n function (request) {\n this._xsrfStrategy.configureRequest(request);\n return new XHRConnection(request, this._browserXHR, this._baseResponseOptions);\n };\n XHRBackend.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n XHRBackend.ctorParameters = function () { return [\n { type: BrowserXhr, },\n { type: ResponseOptions, },\n { type: XSRFStrategy, },\n ]; };\n return XHRBackend;\n}());\nexport { XHRBackend };\nfunction XHRBackend_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n XHRBackend.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n XHRBackend.ctorParameters;\n /** @type {?} */\n XHRBackend.prototype._browserXHR;\n /** @type {?} */\n XHRBackend.prototype._baseResponseOptions;\n /** @type {?} */\n XHRBackend.prototype._xsrfStrategy;\n}\n//# sourceMappingURL=xhr_backend.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { RequestMethod } from './enums';\nimport { Headers } from './headers';\nimport { normalizeMethodName } from './http_utils';\nimport { URLSearchParams } from './url_search_params';\n/**\n * Creates a request options object to be optionally provided when instantiating a\n * {\\@link Request}.\n *\n * This class is based on the `RequestInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#requestinit).\n *\n * All values are null by default. Typical defaults can be found in the {\\@link BaseRequestOptions}\n * class, which sub-classes `RequestOptions`.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post,\n * url: 'https://google.com'\n * });\n * const req = new Request(options);\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // https://google.com\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Creates a request options object to be optionally provided when instantiating a\n * {\\@link Request}.\n *\n * This class is based on the `RequestInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#requestinit).\n *\n * All values are null by default. Typical defaults can be found in the {\\@link BaseRequestOptions}\n * class, which sub-classes `RequestOptions`.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post,\n * url: 'https://google.com'\n * });\n * const req = new Request(options);\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // https://google.com\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nRequestOptions = /** @class */ (function () {\n // TODO(Dzmitry): remove search when this.search is removed\n function RequestOptions(opts) {\n if (opts === void 0) { opts = {}; }\n var method = opts.method, headers = opts.headers, body = opts.body, url = opts.url, search = opts.search, params = opts.params, withCredentials = opts.withCredentials, responseType = opts.responseType;\n this.method = method != null ? normalizeMethodName(method) : null;\n this.headers = headers != null ? headers : null;\n this.body = body != null ? body : null;\n this.url = url != null ? url : null;\n this.params = this._mergeSearchParams(params || search);\n this.withCredentials = withCredentials != null ? withCredentials : null;\n this.responseType = responseType != null ? responseType : null;\n }\n Object.defineProperty(RequestOptions.prototype, \"search\", {\n /**\n * @deprecated from 4.0.0. Use params instead.\n */\n get: /**\n * @deprecated from 4.0.0. Use params instead.\n * @return {?}\n */\n function () { return this.params; },\n /**\n * @deprecated from 4.0.0. Use params instead.\n */\n set: /**\n * @deprecated from 4.0.0. Use params instead.\n * @param {?} params\n * @return {?}\n */\n function (params) { this.params = params; },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates a copy of the `RequestOptions` instance, using the optional input as values to override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * Note that `headers` and `search` will override existing values completely if present in\n * the `options` object. If these values should be merged, it should be done prior to calling\n * `merge` on the `RequestOptions` instance.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post\n * });\n * const req = new Request(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // null\n * console.log('req.url:', req.url); // https://google.com\n * ```\n */\n /**\n * Creates a copy of the `RequestOptions` instance, using the optional input as values to override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * Note that `headers` and `search` will override existing values completely if present in\n * the `options` object. If these values should be merged, it should be done prior to calling\n * `merge` on the `RequestOptions` instance.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post\n * });\n * const req = new Request(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // null\n * console.log('req.url:', req.url); // https://google.com\n * ```\n * @param {?=} options\n * @return {?}\n */\n RequestOptions.prototype.merge = /**\n * Creates a copy of the `RequestOptions` instance, using the optional input as values to override\n * existing values. This method will not change the values of the instance on which it is being\n * called.\n *\n * Note that `headers` and `search` will override existing values completely if present in\n * the `options` object. If these values should be merged, it should be done prior to calling\n * `merge` on the `RequestOptions` instance.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post\n * });\n * const req = new Request(options.merge({\n * url: 'https://google.com'\n * }));\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // null\n * console.log('req.url:', req.url); // https://google.com\n * ```\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n return new RequestOptions({\n method: options && options.method != null ? options.method : this.method,\n headers: options && options.headers != null ? options.headers : new Headers(this.headers),\n body: options && options.body != null ? options.body : this.body,\n url: options && options.url != null ? options.url : this.url,\n params: options && this._mergeSearchParams(options.params || options.search),\n withCredentials: options && options.withCredentials != null ? options.withCredentials :\n this.withCredentials,\n responseType: options && options.responseType != null ? options.responseType :\n this.responseType\n });\n };\n /**\n * @param {?=} params\n * @return {?}\n */\n RequestOptions.prototype._mergeSearchParams = /**\n * @param {?=} params\n * @return {?}\n */\n function (params) {\n if (!params)\n return this.params;\n if (params instanceof URLSearchParams) {\n return params.clone();\n }\n if (typeof params === 'string') {\n return new URLSearchParams(params);\n }\n return this._parseParams(params);\n };\n /**\n * @param {?=} objParams\n * @return {?}\n */\n RequestOptions.prototype._parseParams = /**\n * @param {?=} objParams\n * @return {?}\n */\n function (objParams) {\n var _this = this;\n if (objParams === void 0) { objParams = {}; }\n var /** @type {?} */ params = new URLSearchParams();\n Object.keys(objParams).forEach(function (key) {\n var /** @type {?} */ value = objParams[key];\n if (Array.isArray(value)) {\n value.forEach(function (item) { return _this._appendParam(key, item, params); });\n }\n else {\n _this._appendParam(key, value, params);\n }\n });\n return params;\n };\n /**\n * @param {?} key\n * @param {?} value\n * @param {?} params\n * @return {?}\n */\n RequestOptions.prototype._appendParam = /**\n * @param {?} key\n * @param {?} value\n * @param {?} params\n * @return {?}\n */\n function (key, value, params) {\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n params.append(key, value);\n };\n return RequestOptions;\n}());\n/**\n * Creates a request options object to be optionally provided when instantiating a\n * {\\@link Request}.\n *\n * This class is based on the `RequestInit` description in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#requestinit).\n *\n * All values are null by default. Typical defaults can be found in the {\\@link BaseRequestOptions}\n * class, which sub-classes `RequestOptions`.\n *\n * ```typescript\n * import {RequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new RequestOptions({\n * method: RequestMethod.Post,\n * url: 'https://google.com'\n * });\n * const req = new Request(options);\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // https://google.com\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { RequestOptions };\nfunction RequestOptions_tsickle_Closure_declarations() {\n /**\n * Http method with which to execute a {\\@link Request}.\n * Acceptable methods are defined in the {\\@link RequestMethod} enum.\n * @type {?}\n */\n RequestOptions.prototype.method;\n /**\n * {\\@link Headers} to be attached to a {\\@link Request}.\n * @type {?}\n */\n RequestOptions.prototype.headers;\n /**\n * Body to be used when creating a {\\@link Request}.\n * @type {?}\n */\n RequestOptions.prototype.body;\n /**\n * Url with which to perform a {\\@link Request}.\n * @type {?}\n */\n RequestOptions.prototype.url;\n /**\n * Search parameters to be included in a {\\@link Request}.\n * @type {?}\n */\n RequestOptions.prototype.params;\n /**\n * Enable use credentials for a {\\@link Request}.\n * @type {?}\n */\n RequestOptions.prototype.withCredentials;\n /** @type {?} */\n RequestOptions.prototype.responseType;\n}\n/**\n * Subclass of {\\@link RequestOptions}, with default values.\n *\n * Default values:\n * * method: {\\@link RequestMethod RequestMethod.Get}\n * * headers: empty {\\@link Headers} object\n *\n * This class could be extended and bound to the {\\@link RequestOptions} class\n * when configuring an {\\@link Injector}, in order to override the default options\n * used by {\\@link Http} to create and send {\\@link Request Requests}.\n *\n * ```typescript\n * import {BaseRequestOptions, RequestOptions} from '\\@angular/http';\n *\n * class MyOptions extends BaseRequestOptions {\n * search: string = 'coreTeam=true';\n * }\n *\n * {provide: RequestOptions, useClass: MyOptions};\n * ```\n *\n * The options could also be extended when manually creating a {\\@link Request}\n * object.\n *\n * ```\n * import {BaseRequestOptions, Request, RequestMethod} from '\\@angular/http';\n *\n * const options = new BaseRequestOptions();\n * const req = new Request(options.merge({\n * method: RequestMethod.Post,\n * url: 'https://google.com'\n * }));\n * console.log('req.method:', RequestMethod[req.method]); // Post\n * console.log('options.url:', options.url); // null\n * console.log('req.url:', req.url); // https://google.com\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar BaseRequestOptions = /** @class */ (function (_super) {\n tslib_1.__extends(BaseRequestOptions, _super);\n function BaseRequestOptions() {\n return _super.call(this, { method: RequestMethod.Get, headers: new Headers() }) || this;\n }\n BaseRequestOptions.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n BaseRequestOptions.ctorParameters = function () { return []; };\n return BaseRequestOptions;\n}(RequestOptions));\nexport { BaseRequestOptions };\nfunction BaseRequestOptions_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n BaseRequestOptions.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n BaseRequestOptions.ctorParameters;\n}\n//# sourceMappingURL=base_request_options.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Body } from './body';\nimport { ContentType } from './enums';\nimport { Headers } from './headers';\nimport { normalizeMethodName } from './http_utils';\nimport { URLSearchParams } from './url_search_params';\n/**\n * Creates `Request` instances from provided values.\n *\n * The Request's interface is inspired by the Request constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#request-class),\n * but is considered a static value whose body can be accessed many times. There are other\n * differences in the implementation, but this is the most significant.\n *\n * `Request` instances are typically created by higher-level classes, like {\\@link Http} and\n * {\\@link Jsonp}, but it may occasionally be useful to explicitly create `Request` instances.\n * One such example is when creating services that wrap higher-level services, like {\\@link Http},\n * where it may be useful to generate a `Request` with arbitrary headers and search params.\n *\n * ```typescript\n * import {Injectable, Injector} from '\\@angular/core';\n * import {HTTP_PROVIDERS, Http, Request, RequestMethod} from '\\@angular/http';\n *\n * \\@Injectable()\n * class AutoAuthenticator {\n * constructor(public http:Http) {}\n * request(url:string) {\n * return this.http.request(new Request({\n * method: RequestMethod.Get,\n * url: url,\n * search: 'password=123'\n * }));\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([HTTP_PROVIDERS, AutoAuthenticator]);\n * var authenticator = injector.get(AutoAuthenticator);\n * authenticator.request('people.json').subscribe(res => {\n * //URL should have included '?password=123'\n * console.log('people', res.json());\n * });\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar /**\n * Creates `Request` instances from provided values.\n *\n * The Request's interface is inspired by the Request constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#request-class),\n * but is considered a static value whose body can be accessed many times. There are other\n * differences in the implementation, but this is the most significant.\n *\n * `Request` instances are typically created by higher-level classes, like {\\@link Http} and\n * {\\@link Jsonp}, but it may occasionally be useful to explicitly create `Request` instances.\n * One such example is when creating services that wrap higher-level services, like {\\@link Http},\n * where it may be useful to generate a `Request` with arbitrary headers and search params.\n *\n * ```typescript\n * import {Injectable, Injector} from '\\@angular/core';\n * import {HTTP_PROVIDERS, Http, Request, RequestMethod} from '\\@angular/http';\n *\n * \\@Injectable()\n * class AutoAuthenticator {\n * constructor(public http:Http) {}\n * request(url:string) {\n * return this.http.request(new Request({\n * method: RequestMethod.Get,\n * url: url,\n * search: 'password=123'\n * }));\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([HTTP_PROVIDERS, AutoAuthenticator]);\n * var authenticator = injector.get(AutoAuthenticator);\n * authenticator.request('people.json').subscribe(res => {\n * //URL should have included '?password=123'\n * console.log('people', res.json());\n * });\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nRequest = /** @class */ (function (_super) {\n tslib_1.__extends(Request, _super);\n function Request(requestOptions) {\n var _this = _super.call(this) || this;\n // TODO: assert that url is present\n var /** @type {?} */ url = requestOptions.url;\n _this.url = /** @type {?} */ ((requestOptions.url));\n var /** @type {?} */ paramsArg = requestOptions.params || requestOptions.search;\n if (paramsArg) {\n var /** @type {?} */ params = void 0;\n if (typeof paramsArg === 'object' && !(paramsArg instanceof URLSearchParams)) {\n params = urlEncodeParams(paramsArg).toString();\n }\n else {\n params = paramsArg.toString();\n }\n if (params.length > 0) {\n var /** @type {?} */ prefix = '?';\n if (_this.url.indexOf('?') != -1) {\n prefix = (_this.url[_this.url.length - 1] == '&') ? '' : '&';\n }\n // TODO: just delete search-query-looking string in url?\n // TODO: just delete search-query-looking string in url?\n _this.url = url + prefix + params;\n }\n }\n _this._body = requestOptions.body;\n _this.method = normalizeMethodName(/** @type {?} */ ((requestOptions.method)));\n // TODO(jeffbcross): implement behavior\n // Defaults to 'omit', consistent with browser\n // TODO(jeffbcross): implement behavior\n // Defaults to 'omit', consistent with browser\n _this.headers = new Headers(requestOptions.headers);\n _this.contentType = _this.detectContentType();\n _this.withCredentials = /** @type {?} */ ((requestOptions.withCredentials));\n _this.responseType = /** @type {?} */ ((requestOptions.responseType));\n return _this;\n }\n /**\n * Returns the content type enum based on header options.\n */\n /**\n * Returns the content type enum based on header options.\n * @return {?}\n */\n Request.prototype.detectContentType = /**\n * Returns the content type enum based on header options.\n * @return {?}\n */\n function () {\n switch (this.headers.get('content-type')) {\n case 'application/json':\n return ContentType.JSON;\n case 'application/x-www-form-urlencoded':\n return ContentType.FORM;\n case 'multipart/form-data':\n return ContentType.FORM_DATA;\n case 'text/plain':\n case 'text/html':\n return ContentType.TEXT;\n case 'application/octet-stream':\n return this._body instanceof ArrayBuffer ? ContentType.ARRAY_BUFFER : ContentType.BLOB;\n default:\n return this.detectContentTypeFromBody();\n }\n };\n /**\n * Returns the content type of request's body based on its type.\n */\n /**\n * Returns the content type of request's body based on its type.\n * @return {?}\n */\n Request.prototype.detectContentTypeFromBody = /**\n * Returns the content type of request's body based on its type.\n * @return {?}\n */\n function () {\n if (this._body == null) {\n return ContentType.NONE;\n }\n else if (this._body instanceof URLSearchParams) {\n return ContentType.FORM;\n }\n else if (this._body instanceof FormData) {\n return ContentType.FORM_DATA;\n }\n else if (this._body instanceof Blob) {\n return ContentType.BLOB;\n }\n else if (this._body instanceof ArrayBuffer) {\n return ContentType.ARRAY_BUFFER;\n }\n else if (this._body && typeof this._body === 'object') {\n return ContentType.JSON;\n }\n else {\n return ContentType.TEXT;\n }\n };\n /**\n * Returns the request's body according to its type. If body is undefined, return\n * null.\n */\n /**\n * Returns the request's body according to its type. If body is undefined, return\n * null.\n * @return {?}\n */\n Request.prototype.getBody = /**\n * Returns the request's body according to its type. If body is undefined, return\n * null.\n * @return {?}\n */\n function () {\n switch (this.contentType) {\n case ContentType.JSON:\n return this.text();\n case ContentType.FORM:\n return this.text();\n case ContentType.FORM_DATA:\n return this._body;\n case ContentType.TEXT:\n return this.text();\n case ContentType.BLOB:\n return this.blob();\n case ContentType.ARRAY_BUFFER:\n return this.arrayBuffer();\n default:\n return null;\n }\n };\n return Request;\n}(Body));\n/**\n * Creates `Request` instances from provided values.\n *\n * The Request's interface is inspired by the Request constructor defined in the [Fetch\n * Spec](https://fetch.spec.whatwg.org/#request-class),\n * but is considered a static value whose body can be accessed many times. There are other\n * differences in the implementation, but this is the most significant.\n *\n * `Request` instances are typically created by higher-level classes, like {\\@link Http} and\n * {\\@link Jsonp}, but it may occasionally be useful to explicitly create `Request` instances.\n * One such example is when creating services that wrap higher-level services, like {\\@link Http},\n * where it may be useful to generate a `Request` with arbitrary headers and search params.\n *\n * ```typescript\n * import {Injectable, Injector} from '\\@angular/core';\n * import {HTTP_PROVIDERS, Http, Request, RequestMethod} from '\\@angular/http';\n *\n * \\@Injectable()\n * class AutoAuthenticator {\n * constructor(public http:Http) {}\n * request(url:string) {\n * return this.http.request(new Request({\n * method: RequestMethod.Get,\n * url: url,\n * search: 'password=123'\n * }));\n * }\n * }\n *\n * var injector = Injector.resolveAndCreate([HTTP_PROVIDERS, AutoAuthenticator]);\n * var authenticator = injector.get(AutoAuthenticator);\n * authenticator.request('people.json').subscribe(res => {\n * //URL should have included '?password=123'\n * console.log('people', res.json());\n * });\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nexport { Request };\nfunction Request_tsickle_Closure_declarations() {\n /**\n * Http method with which to perform the request.\n * @type {?}\n */\n Request.prototype.method;\n /**\n * {\\@link Headers} instance\n * @type {?}\n */\n Request.prototype.headers;\n /**\n * Url of the remote resource\n * @type {?}\n */\n Request.prototype.url;\n /**\n * Type of the request body *\n * @type {?}\n */\n Request.prototype.contentType;\n /**\n * Enable use credentials\n * @type {?}\n */\n Request.prototype.withCredentials;\n /**\n * Buffer to store the response\n * @type {?}\n */\n Request.prototype.responseType;\n}\n/**\n * @param {?} params\n * @return {?}\n */\nfunction urlEncodeParams(params) {\n var /** @type {?} */ searchParams = new URLSearchParams();\n Object.keys(params).forEach(function (key) {\n var /** @type {?} */ value = params[key];\n if (value && Array.isArray(value)) {\n value.forEach(function (element) { return searchParams.append(key, element.toString()); });\n }\n else {\n searchParams.append(key, value.toString());\n }\n });\n return searchParams;\n}\nvar /** @type {?} */ noop = function () { };\nvar ɵ0 = noop;\nvar /** @type {?} */ w = typeof window == 'object' ? window : noop;\nvar /** @type {?} */ FormData = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['FormData'] || noop;\nvar /** @type {?} */ Blob = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['Blob'] || noop;\nexport var /** @type {?} */ ArrayBuffer = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['ArrayBuffer'] || noop;\nexport { ɵ0 };\n//# sourceMappingURL=static_request.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport * as tslib_1 from \"tslib\";\nimport { Injectable } from '@angular/core';\nimport { RequestOptions } from './base_request_options';\nimport { RequestMethod } from './enums';\nimport { ConnectionBackend } from './interfaces';\nimport { Request } from './static_request';\n/**\n * @param {?} backend\n * @param {?} request\n * @return {?}\n */\nfunction httpRequest(backend, request) {\n return backend.createConnection(request).response;\n}\n/**\n * @param {?} defaultOpts\n * @param {?} providedOpts\n * @param {?} method\n * @param {?} url\n * @return {?}\n */\nfunction mergeOptions(defaultOpts, providedOpts, method, url) {\n var /** @type {?} */ newOptions = defaultOpts;\n if (providedOpts) {\n // Hack so Dart can used named parameters\n return /** @type {?} */ (newOptions.merge(new RequestOptions({\n method: providedOpts.method || method,\n url: providedOpts.url || url,\n search: providedOpts.search,\n params: providedOpts.params,\n headers: providedOpts.headers,\n body: providedOpts.body,\n withCredentials: providedOpts.withCredentials,\n responseType: providedOpts.responseType\n })));\n }\n return /** @type {?} */ (newOptions.merge(new RequestOptions({ method: method, url: url })));\n}\n/**\n * Performs http requests using `XMLHttpRequest` as the default backend.\n *\n * `Http` is available as an injectable class, with methods to perform http requests. Calling\n * `request` returns an `Observable` which will emit a single {\\@link Response} when a\n * response is received.\n *\n * ### Example\n *\n * ```typescript\n * import {Http, HTTP_PROVIDERS} from '\\@angular/http';\n * import 'rxjs/add/operator/map'\n * \\@Component({\n * selector: 'http-app',\n * viewProviders: [HTTP_PROVIDERS],\n * templateUrl: 'people.html'\n * })\n * class PeopleComponent {\n * constructor(http: Http) {\n * http.get('people.json')\n * // Call map on the response observable to get the parsed people object\n * .map(res => res.json())\n * // Subscribe to the observable to get the parsed people object and attach it to the\n * // component\n * .subscribe(people => this.people = people);\n * }\n * }\n * ```\n *\n *\n * ### Example\n *\n * ```\n * http.get('people.json').subscribe((res:Response) => this.people = res.json());\n * ```\n *\n * The default construct used to perform requests, `XMLHttpRequest`, is abstracted as a \"Backend\" (\n * {\\@link XHRBackend} in this case), which could be mocked with dependency injection by replacing\n * the {\\@link XHRBackend} provider, as in the following example:\n *\n * ### Example\n *\n * ```typescript\n * import {BaseRequestOptions, Http} from '\\@angular/http';\n * import {MockBackend} from '\\@angular/http/testing';\n * var injector = Injector.resolveAndCreate([\n * BaseRequestOptions,\n * MockBackend,\n * {provide: Http, useFactory:\n * function(backend, defaultOptions) {\n * return new Http(backend, defaultOptions);\n * },\n * deps: [MockBackend, BaseRequestOptions]}\n * ]);\n * var http = injector.get(Http);\n * http.get('request-from-mock-backend.json').subscribe((res:Response) => doSomething(res));\n * ```\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar Http = /** @class */ (function () {\n function Http(_backend, _defaultOptions) {\n this._backend = _backend;\n this._defaultOptions = _defaultOptions;\n }\n /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {@link Request} instance. If the first argument is a url, an optional {@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {@link BaseRequestOptions} before performing the request.\n */\n /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {\\@link Request} instance. If the first argument is a url, an optional {\\@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {\\@link BaseRequestOptions} before performing the request.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.request = /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {\\@link Request} instance. If the first argument is a url, an optional {\\@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {\\@link BaseRequestOptions} before performing the request.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n var /** @type {?} */ responseObservable;\n if (typeof url === 'string') {\n responseObservable = httpRequest(this._backend, new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Get, /** @type {?} */ (url))));\n }\n else if (url instanceof Request) {\n responseObservable = httpRequest(this._backend, url);\n }\n else {\n throw new Error('First argument must be a url string or Request instance.');\n }\n return responseObservable;\n };\n /**\n * Performs a request with `get` http method.\n */\n /**\n * Performs a request with `get` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.get = /**\n * Performs a request with `get` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Get, url)));\n };\n /**\n * Performs a request with `post` http method.\n */\n /**\n * Performs a request with `post` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.post = /**\n * Performs a request with `post` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, RequestMethod.Post, url)));\n };\n /**\n * Performs a request with `put` http method.\n */\n /**\n * Performs a request with `put` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.put = /**\n * Performs a request with `put` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, RequestMethod.Put, url)));\n };\n /**\n * Performs a request with `delete` http method.\n */\n /**\n * Performs a request with `delete` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.delete = /**\n * Performs a request with `delete` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Delete, url)));\n };\n /**\n * Performs a request with `patch` http method.\n */\n /**\n * Performs a request with `patch` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.patch = /**\n * Performs a request with `patch` http method.\n * @param {?} url\n * @param {?} body\n * @param {?=} options\n * @return {?}\n */\n function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, RequestMethod.Patch, url)));\n };\n /**\n * Performs a request with `head` http method.\n */\n /**\n * Performs a request with `head` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.head = /**\n * Performs a request with `head` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Head, url)));\n };\n /**\n * Performs a request with `options` http method.\n */\n /**\n * Performs a request with `options` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Http.prototype.options = /**\n * Performs a request with `options` http method.\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Options, url)));\n };\n Http.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n Http.ctorParameters = function () { return [\n { type: ConnectionBackend, },\n { type: RequestOptions, },\n ]; };\n return Http;\n}());\nexport { Http };\nfunction Http_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n Http.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n Http.ctorParameters;\n /** @type {?} */\n Http.prototype._backend;\n /** @type {?} */\n Http.prototype._defaultOptions;\n}\n/**\n * @deprecated use \\@angular/common/http instead\n */\nvar Jsonp = /** @class */ (function (_super) {\n tslib_1.__extends(Jsonp, _super);\n function Jsonp(backend, defaultOptions) {\n return _super.call(this, backend, defaultOptions) || this;\n }\n /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {@link Request} instance. If the first argument is a url, an optional {@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {@link BaseRequestOptions} before performing the request.\n *\n * @security Regular XHR is the safest alternative to JSONP for most applications, and is\n * supported by all current browsers. Because JSONP creates a `<script>` element with\n * contents retrieved from a remote source, attacker-controlled data introduced by an untrusted\n * source could expose your application to XSS risks. Data exposed by JSONP may also be\n * readable by malicious third-party websites. In addition, JSONP introduces potential risk for\n * future security issues (e.g. content sniffing). For more detail, see the\n * [Security Guide](http://g.co/ng/security).\n */\n /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {\\@link Request} instance. If the first argument is a url, an optional {\\@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {\\@link BaseRequestOptions} before performing the request.\n *\n * \\@security Regular XHR is the safest alternative to JSONP for most applications, and is\n * supported by all current browsers. Because JSONP creates a `<script>` element with\n * contents retrieved from a remote source, attacker-controlled data introduced by an untrusted\n * source could expose your application to XSS risks. Data exposed by JSONP may also be\n * readable by malicious third-party websites. In addition, JSONP introduces potential risk for\n * future security issues (e.g. content sniffing). For more detail, see the\n * [Security Guide](http://g.co/ng/security).\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n Jsonp.prototype.request = /**\n * Performs any type of http request. First argument is required, and can either be a url or\n * a {\\@link Request} instance. If the first argument is a url, an optional {\\@link RequestOptions}\n * object can be provided as the 2nd argument. The options object will be merged with the values\n * of {\\@link BaseRequestOptions} before performing the request.\n *\n * \\@security Regular XHR is the safest alternative to JSONP for most applications, and is\n * supported by all current browsers. Because JSONP creates a `<script>` element with\n * contents retrieved from a remote source, attacker-controlled data introduced by an untrusted\n * source could expose your application to XSS risks. Data exposed by JSONP may also be\n * readable by malicious third-party websites. In addition, JSONP introduces potential risk for\n * future security issues (e.g. content sniffing). For more detail, see the\n * [Security Guide](http://g.co/ng/security).\n * @param {?} url\n * @param {?=} options\n * @return {?}\n */\n function (url, options) {\n var /** @type {?} */ responseObservable;\n if (typeof url === 'string') {\n url =\n new Request(mergeOptions(this._defaultOptions, options, RequestMethod.Get, /** @type {?} */ (url)));\n }\n if (url instanceof Request) {\n if (url.method !== RequestMethod.Get) {\n throw new Error('JSONP requests must use GET request method.');\n }\n responseObservable = httpRequest(this._backend, url);\n }\n else {\n throw new Error('First argument must be a url string or Request instance.');\n }\n return responseObservable;\n };\n Jsonp.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n Jsonp.ctorParameters = function () { return [\n { type: ConnectionBackend, },\n { type: RequestOptions, },\n ]; };\n return Jsonp;\n}(Http));\nexport { Jsonp };\nfunction Jsonp_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n Jsonp.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n Jsonp.ctorParameters;\n}\n//# sourceMappingURL=http.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { NgModule } from '@angular/core';\nimport { BrowserJsonp } from './backends/browser_jsonp';\nimport { BrowserXhr } from './backends/browser_xhr';\nimport { JSONPBackend } from './backends/jsonp_backend';\nimport { CookieXSRFStrategy, XHRBackend } from './backends/xhr_backend';\nimport { BaseRequestOptions, RequestOptions } from './base_request_options';\nimport { BaseResponseOptions, ResponseOptions } from './base_response_options';\nimport { Http, Jsonp } from './http';\nimport { XSRFStrategy } from './interfaces';\n/**\n * @return {?}\n */\nexport function _createDefaultCookieXSRFStrategy() {\n return new CookieXSRFStrategy();\n}\n/**\n * @param {?} xhrBackend\n * @param {?} requestOptions\n * @return {?}\n */\nexport function httpFactory(xhrBackend, requestOptions) {\n return new Http(xhrBackend, requestOptions);\n}\n/**\n * @param {?} jsonpBackend\n * @param {?} requestOptions\n * @return {?}\n */\nexport function jsonpFactory(jsonpBackend, requestOptions) {\n return new Jsonp(jsonpBackend, requestOptions);\n}\n/**\n * The module that includes http's providers\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar HttpModule = /** @class */ (function () {\n function HttpModule() {\n }\n HttpModule.decorators = [\n { type: NgModule, args: [{\n providers: [\n // TODO(pascal): use factory type annotations once supported in DI\n // issue: https://github.com/angular/angular/issues/3183\n { provide: Http, useFactory: httpFactory, deps: [XHRBackend, RequestOptions] },\n BrowserXhr,\n { provide: RequestOptions, useClass: BaseRequestOptions },\n { provide: ResponseOptions, useClass: BaseResponseOptions },\n XHRBackend,\n { provide: XSRFStrategy, useFactory: _createDefaultCookieXSRFStrategy },\n ],\n },] },\n ];\n /** @nocollapse */\n HttpModule.ctorParameters = function () { return []; };\n return HttpModule;\n}());\nexport { HttpModule };\nfunction HttpModule_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n HttpModule.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n HttpModule.ctorParameters;\n}\n/**\n * The module that includes jsonp's providers\n *\n * @deprecated use \\@angular/common/http instead\n */\nvar JsonpModule = /** @class */ (function () {\n function JsonpModule() {\n }\n JsonpModule.decorators = [\n { type: NgModule, args: [{\n providers: [\n // TODO(pascal): use factory type annotations once supported in DI\n // issue: https://github.com/angular/angular/issues/3183\n { provide: Jsonp, useFactory: jsonpFactory, deps: [JSONPBackend, RequestOptions] },\n BrowserJsonp,\n { provide: RequestOptions, useClass: BaseRequestOptions },\n { provide: ResponseOptions, useClass: BaseResponseOptions },\n JSONPBackend,\n ],\n },] },\n ];\n /** @nocollapse */\n JsonpModule.ctorParameters = function () { return []; };\n return JsonpModule;\n}());\nexport { JsonpModule };\nfunction JsonpModule_tsickle_Closure_declarations() {\n /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */\n JsonpModule.decorators;\n /**\n * @nocollapse\n * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}\n */\n JsonpModule.ctorParameters;\n}\n//# sourceMappingURL=http_module.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Version } from '@angular/core';\n/**\n * @deprecated use \\@angular/common/http instead\n */\nexport var /** @type {?} */ VERSION = new Version('5.2.0');\n//# sourceMappingURL=version.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { BrowserXhr } from './backends/browser_xhr';\nexport { JSONPBackend, JSONPConnection } from './backends/jsonp_backend';\nexport { CookieXSRFStrategy, XHRBackend, XHRConnection } from './backends/xhr_backend';\nexport { BaseRequestOptions, RequestOptions } from './base_request_options';\nexport { BaseResponseOptions, ResponseOptions } from './base_response_options';\nexport { ReadyState, RequestMethod, ResponseContentType, ResponseType } from './enums';\nexport { Headers } from './headers';\nexport { Http, Jsonp } from './http';\nexport { HttpModule, JsonpModule } from './http_module';\nexport { Connection, ConnectionBackend, XSRFStrategy } from './interfaces';\nexport { Request } from './static_request';\nexport { Response } from './static_response';\nexport { QueryEncoder, URLSearchParams } from './url_search_params';\nexport { VERSION } from './version';\n//# sourceMappingURL=index.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport { BrowserXhr, JSONPBackend, JSONPConnection, CookieXSRFStrategy, XHRBackend, XHRConnection, BaseRequestOptions, RequestOptions, BaseResponseOptions, ResponseOptions, ReadyState, RequestMethod, ResponseContentType, ResponseType, Headers, Http, Jsonp, HttpModule, JsonpModule, Connection, ConnectionBackend, XSRFStrategy, Request, Response, QueryEncoder, URLSearchParams, VERSION } from './src/index';\n// This file only reexports content of the `src` folder. Keep it that way.\n//# sourceMappingURL=public_api.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * Generated bundle index. Do not edit.\n */\nexport { BrowserXhr, JSONPBackend, JSONPConnection, CookieXSRFStrategy, XHRBackend, XHRConnection, BaseRequestOptions, RequestOptions, BaseResponseOptions, ResponseOptions, ReadyState, RequestMethod, ResponseContentType, ResponseType, Headers, Http, Jsonp, HttpModule, JsonpModule, Connection, ConnectionBackend, XSRFStrategy, Request, Response, QueryEncoder, URLSearchParams, VERSION } from './public_api';\nexport { BrowserJsonp as ɵe } from './src/backends/browser_jsonp';\nexport { Body as ɵf } from './src/body';\nexport { _createDefaultCookieXSRFStrategy as ɵa, httpFactory as ɵb, jsonpFactory as ɵc } from './src/http_module';\n//# sourceMappingURL=http.js.map"],"names":["tslib_1.__extends","getDOM","ArrayBuffer","Blob"],"mappings":"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"}