1 |
- {"version":3,"sources":["http.umd.js"],"names":["global","factory","exports","module","require","define","amd","ng","http","core","Rx","platformBrowser","this","_angular_core","rxjs_Observable","_angular_platformBrowser","__extends","d","b","__","constructor","extendStatics","prototype","Object","create","normalizeMethodName","method","toUpperCase","RequestMethod","Get","Post","Put","Delete","Options","Head","Patch","Error","getResponseURL","xhr","responseURL","test","getAllResponseHeaders","getResponseHeader","stringToArrayBuffer","input","view","Uint16Array","length","i","strLen","charCodeAt","buffer","paramParser","rawParams","map","Map","split","forEach","param","eqIdx","indexOf","_a","slice","key","val","list","get","push","set","standardEncoding","v","encodeURIComponent","replace","_getJsonpConnections","w","window","_jsonpConnections","JSONP_HOME","urlEncodeParams","params","searchParams","URLSearchParams","keys","value","Array","isArray","element","append","toString","httpRequest","backend","request","createConnection","response","mergeOptions","defaultOpts","providedOpts","url","newOptions","merge","RequestOptions","search","headers","body","withCredentials","responseType","_createDefaultCookieXSRFStrategy","CookieXSRFStrategy","httpFactory","xhrBackend","requestOptions","Http","jsonpFactory","jsonpBackend","Jsonp","setPrototypeOf","__proto__","p","hasOwnProperty","BrowserXhr","build","XMLHttpRequest","decorators","type","Injectable","ctorParameters","ReadyState","Unsent","Open","HeadersReceived","Loading","Done","Cancelled","ResponseType","Basic","Cors","Default","Opaque","ContentType","NONE","JSON","FORM","FORM_DATA","TEXT","BLOB","ARRAY_BUFFER","ResponseContentType","Text","Json","ArrayBuffer","Blob","Headers","_this","_headers","_normalizedNames","values","name","delete","fromResponseHeaderString","headersString","line","index","name_1","trim","getAll","lcName","toLowerCase","fn","has","from","join","mayBeSetNormalizedName","toJSON","serialized","apply","entries","ResponseOptions","opts","status","statusText","options","BaseResponseOptions","_super","call","ConnectionBackend","Connection","XSRFStrategy","isSuccess","QueryEncoder","encodeKey","k","encodeValue","queryEncoder","paramsMap","clone","appendAll","storedParam","setAll","replaceAll","paramsList","Body","json","_body","parse","text","encodingHint","String","fromCharCode","Uint8Array","stringify","arrayBuffer","blob","Response","responseOptions","ok","_nextRequestId","BrowserJsonp","node","document","createElement","src","nextRequestID","requestCallback","id","exposeConnection","connection","removeConnection","send","appendChild","cleanup","parentNode","removeChild","JSONP_ERR_NO_CALLBACK","JSONP_ERR_WRONG_METHOD","JSONPConnection","req","_dom","baseResponseOptions","_finished","TypeError","Observable","responseObserver","readyState","_id","callback","lastIndexOf","substring","script","_script","onLoad","event","responseOptions_1","error","_responseData","next","complete","onError","message","addEventListener","removeEventListener","finished","data","JSONPBackend","_browserJSONP","_baseResponseOptions","XSSI_PREFIX","XHRConnection","browserXHR","_xhr","open","responseText","err","setDetectedContentType","setRequestHeader","getBody","abort","contentType","_cookieName","_headerName","configureRequest","xsrfToken","ɵgetDOM","getCookie","XHRBackend","_browserXHR","_xsrfStrategy","_mergeSearchParams","defineProperty","enumerable","configurable","_parseParams","objParams","item","_appendParam","BaseRequestOptions","Request","paramsArg","prefix","detectContentType","ArrayBuffer$1","detectContentTypeFromBody","FormData","Blob$1","noop","_backend","_defaultOptions","responseObservable","post","put","patch","head","defaultOptions","HttpModule","NgModule","args","providers","provide","useFactory","deps","useClass","JsonpModule","VERSION","Version","ɵe","ɵf","ɵa","ɵb","ɵc"],"mappings":"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","file":"http.umd.min.js","sourcesContent":["/**\n * @license Angular v5.2.11\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/Observable'), require('@angular/platform-browser')) :\n\ttypeof define === 'function' && define.amd ? define('@angular/http', ['exports', '@angular/core', 'rxjs/Observable', '@angular/platform-browser'], factory) :\n\t(factory((global.ng = global.ng || {}, global.ng.http = {}),global.ng.core,global.Rx,global.ng.platformBrowser));\n}(this, (function (exports,_angular_core,rxjs_Observable,_angular_platformBrowser) { 'use strict';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\n\n/**\n * @license Angular v5.2.11\n * (c) 2010-2018 Google, Inc. https://angular.io/\n * License: MIT\n */\n/**\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 * 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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n BrowserXhr.ctorParameters = function () { return []; };\n return BrowserXhr;\n}());\n\n/**\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};\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};\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};\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};\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};\nResponseContentType[ResponseContentType.Text] = \"Text\";\nResponseContentType[ResponseContentType.Json] = \"Json\";\nResponseContentType[ResponseContentType.ArrayBuffer] = \"ArrayBuffer\";\nResponseContentType[ResponseContentType.Blob] = \"Blob\";\n\n/**\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 Headers = /** @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/**\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 * 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 ResponseOptions = /** @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 * 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 __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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n BaseResponseOptions.ctorParameters = function () { return []; };\n return BaseResponseOptions;\n}(ResponseOptions));\n\n/**\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 ConnectionBackend = /** @class */ (function () {\n function ConnectionBackend() {\n }\n return ConnectionBackend;\n}());\n/**\n * Abstract class from which real connections are derived.\n *\n * @deprecated use \\@angular/common/http instead\n * @abstract\n */\nvar Connection = /** @class */ (function () {\n function Connection() {\n }\n return Connection;\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 XSRFStrategy = /** @class */ (function () {\n function XSRFStrategy() {\n }\n return XSRFStrategy;\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 */\n\n/**\n * Required structure when constructing new Request();\n * @record\n */\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 */\n\n/**\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 {?} method\n * @return {?}\n */\nfunction 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}\nvar isSuccess = function (status) { return (status >= 200 && status < 300); };\n/**\n * @param {?} xhr\n * @return {?}\n */\nfunction 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 */\n\n/**\n * @param {?} input\n * @return {?}\n */\nfunction 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\n/**\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 QueryEncoder = /** @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 * @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 URLSearchParams = /** @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/**\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 * HTTP request body used by both {\\@link Request} and {\\@link Response}\n * https://fetch.spec.whatwg.org/#body\n * @abstract\n */\nvar Body = /** @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/**\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 * 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 Response = /** @class */ (function (_super) {\n __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/**\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 */\nvar _nextRequestId = 0;\nvar JSONP_HOME = '__ng_jsonp__';\nvar _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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n BrowserJsonp.ctorParameters = function () { return []; };\n return BrowserJsonp;\n}());\n\n/**\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 */\nvar JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\nvar 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 JSONPConnection = /** @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 rxjs_Observable.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 * 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 __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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n JSONPBackend.ctorParameters = function () { return [\n { type: BrowserJsonp, },\n { type: ResponseOptions, },\n ]; };\n return JSONPBackend;\n}(ConnectionBackend));\n\n/**\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 */\nvar 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 XHRConnection = /** @class */ (function () {\n function XHRConnection(req, browserXHR, baseResponseOptions) {\n var _this = this;\n this.request = req;\n this.response = new rxjs_Observable.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 * `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 CookieXSRFStrategy = /** @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 = _angular_platformBrowser.ɵgetDOM().getCookie(this._cookieName);\n if (xsrfToken) {\n req.headers.set(this._headerName, xsrfToken);\n }\n };\n return CookieXSRFStrategy;\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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n XHRBackend.ctorParameters = function () { return [\n { type: BrowserXhr, },\n { type: ResponseOptions, },\n { type: XSRFStrategy, },\n ]; };\n return XHRBackend;\n}());\n\n/**\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 * 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 RequestOptions = /** @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 * 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 __extends(BaseRequestOptions, _super);\n function BaseRequestOptions() {\n return _super.call(this, { method: RequestMethod.Get, headers: new Headers() }) || this;\n }\n BaseRequestOptions.decorators = [\n { type: _angular_core.Injectable },\n ];\n /** @nocollapse */\n BaseRequestOptions.ctorParameters = function () { return []; };\n return BaseRequestOptions;\n}(RequestOptions));\n\n/**\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 * 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 Request = /** @class */ (function (_super) {\n __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$1 ? 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$1) {\n return ContentType.BLOB;\n }\n else if (this._body instanceof ArrayBuffer$1) {\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 * @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 noop = function () { };\nvar w = typeof window == 'object' ? window : noop;\nvar FormData = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['FormData'] || noop;\nvar Blob$1 = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['Blob'] || noop;\nvar ArrayBuffer$1 = (/** @type {?} */ (w /** TODO #9100 */) /** TODO #9100 */)['ArrayBuffer'] || noop;\n\n/**\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 {?} 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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n Http.ctorParameters = function () { return [\n { type: ConnectionBackend, },\n { type: RequestOptions, },\n ]; };\n return Http;\n}());\n/**\n * @deprecated use \\@angular/common/http instead\n */\nvar Jsonp = /** @class */ (function (_super) {\n __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: _angular_core.Injectable },\n ];\n /** @nocollapse */\n Jsonp.ctorParameters = function () { return [\n { type: ConnectionBackend, },\n { type: RequestOptions, },\n ]; };\n return Jsonp;\n}(Http));\n\n/**\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 * @return {?}\n */\nfunction _createDefaultCookieXSRFStrategy() {\n return new CookieXSRFStrategy();\n}\n/**\n * @param {?} xhrBackend\n * @param {?} requestOptions\n * @return {?}\n */\nfunction httpFactory(xhrBackend, requestOptions) {\n return new Http(xhrBackend, requestOptions);\n}\n/**\n * @param {?} jsonpBackend\n * @param {?} requestOptions\n * @return {?}\n */\nfunction 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: _angular_core.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}());\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: _angular_core.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}());\n\n/**\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 * @deprecated use \\@angular/common/http instead\n */\nvar VERSION = new _angular_core.Version('5.2.11');\n\nexports.BrowserXhr = BrowserXhr;\nexports.JSONPBackend = JSONPBackend;\nexports.JSONPConnection = JSONPConnection;\nexports.CookieXSRFStrategy = CookieXSRFStrategy;\nexports.XHRBackend = XHRBackend;\nexports.XHRConnection = XHRConnection;\nexports.BaseRequestOptions = BaseRequestOptions;\nexports.RequestOptions = RequestOptions;\nexports.BaseResponseOptions = BaseResponseOptions;\nexports.ResponseOptions = ResponseOptions;\nexports.ReadyState = ReadyState;\nexports.RequestMethod = RequestMethod;\nexports.ResponseContentType = ResponseContentType;\nexports.ResponseType = ResponseType;\nexports.Headers = Headers;\nexports.Http = Http;\nexports.Jsonp = Jsonp;\nexports.HttpModule = HttpModule;\nexports.JsonpModule = JsonpModule;\nexports.Connection = Connection;\nexports.ConnectionBackend = ConnectionBackend;\nexports.XSRFStrategy = XSRFStrategy;\nexports.Request = Request;\nexports.Response = Response;\nexports.QueryEncoder = QueryEncoder;\nexports.URLSearchParams = URLSearchParams;\nexports.VERSION = VERSION;\nexports.ɵe = BrowserJsonp;\nexports.ɵf = Body;\nexports.ɵa = _createDefaultCookieXSRFStrategy;\nexports.ɵb = httpFactory;\nexports.ɵc = jsonpFactory;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=http.umd.js.map\n"]}
|