blob: 9f913e83dc6228604bb74d123b11928d142a7620 [file] [log] [blame]
{"version":3,"sources":["packages/http/http.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","http","core","rxjs","platformBrowser","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","RequestMethod","ReadyState","ResponseType","ContentType","ResponseContentType","BrowserXhr","build","XMLHttpRequest","Injectable","Headers","headers","_this","_headers","Map","_normalizedNames","forEach","values","name","append","keys","isArray","delete","fromResponseHeaderString","headersString","split","line","index","indexOf","name_1","slice","trim","set","getAll","lcName","toLowerCase","fn","get","has","from","join","mayBeSetNormalizedName","toJSON","serialized","v","apply","__spread","concat","entries","Error","ResponseOptions","opts","body","status","statusText","type","url","merge","options","BaseResponseOptions","_super","Default","ConnectionBackend","Connection","XSRFStrategy","normalizeMethodName","method","toUpperCase","Get","Post","Put","Delete","Options","Head","Patch","isSuccess","QueryEncoder","encodeKey","standardEncoding","encodeValue","encodeURIComponent","replace","URLSearchParams","rawParams","queryEncoder","paramsMap","paramParser","map","param","eqIdx","_a","val","list","clone","appendAll","storedParam","setAll","searchParams","replaceAll","toString","paramsList","k","Body","json","_body","JSON","parse","ArrayBuffer","text","encodingHint","String","fromCharCode","Uint16Array","Uint8Array","stringify","arrayBuffer","stringToArrayBuffer","input","view","strLen","charCodeAt","buffer","blob","Blob","Response","responseOptions","ok","_nextRequestId","JSONP_HOME","_jsonpConnections","_getJsonpConnections","w","window","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","request","response","Observable","responseObserver","readyState","Loading","_id","callback","lastIndexOf","substring","script","_script","onLoad","event","Cancelled","Done","responseOptions_1","_responseData","complete","onError","message","addEventListener","removeEventListener","finished","data","JSONPBackend","_browserJSONP","_baseResponseOptions","createConnection","XSSI_PREFIX","XHRConnection","browserXHR","_xhr","open","withCredentials","responseText","getAllResponseHeaders","getResponseURL","xhr","responseURL","test","getResponseHeader","err","setDetectedContentType","setRequestHeader","responseType","Json","Text","getBody","abort","contentType","NONE","FORM","TEXT","BLOB","CookieXSRFStrategy","_cookieName","_headerName","configureRequest","xsrfToken","ɵgetDOM","getCookie","XHRBackend","_browserXHR","_xsrfStrategy","RequestOptions","search","params","_mergeSearchParams","enumerable","configurable","_parseParams","objParams","item","_appendParam","BaseRequestOptions","Request","requestOptions","paramsArg","urlEncodeParams","element","prefix","detectContentType","FORM_DATA","ArrayBuffer$1","ARRAY_BUFFER","detectContentTypeFromBody","FormData","Blob$1","noop","httpRequest","backend","mergeOptions","defaultOpts","providedOpts","Http","_backend","_defaultOptions","responseObservable","post","put","patch","head","Jsonp","defaultOptions","_createDefaultCookieXSRFStrategy","httpFactory","xhrBackend","jsonpFactory","jsonpBackend","HttpModule","NgModule","providers","provide","useFactory","deps","useClass","JsonpModule","VERSION","Version","ɵangular_packages_http_http_e","ɵangular_packages_http_http_f","ɵangular_packages_http_http_a","ɵangular_packages_http_http_b","ɵangular_packages_http_http_c"],"mappings":"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","sourcesContent":["/**\n * @license Angular v8.0.0-beta.10+1.sha-a28b3e3\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('@angular/platform-browser')) :\n typeof define === 'function' && define.amd ? define('@angular/http', ['exports', '@angular/core', 'rxjs', '@angular/platform-browser'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.http = {}), global.ng.core, global.rxjs, global.ng.platformBrowser));\n}(this, function (exports, core, rxjs, platformBrowser) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n 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 return extendStatics(d, b);\r\n };\r\n\r\n function __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 }\r\n\r\n function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\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 see https://angular.io/guide/http\n * @publicApi\n */\n var BrowserXhr = /** @class */ (function () {\n function BrowserXhr() {\n }\n BrowserXhr.prototype.build = function () { return (new XMLHttpRequest()); };\n BrowserXhr = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [])\n ], BrowserXhr);\n return BrowserXhr;\n }());\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 (function (RequestMethod) {\n RequestMethod[RequestMethod[\"Get\"] = 0] = \"Get\";\n RequestMethod[RequestMethod[\"Post\"] = 1] = \"Post\";\n RequestMethod[RequestMethod[\"Put\"] = 2] = \"Put\";\n RequestMethod[RequestMethod[\"Delete\"] = 3] = \"Delete\";\n RequestMethod[RequestMethod[\"Options\"] = 4] = \"Options\";\n RequestMethod[RequestMethod[\"Head\"] = 5] = \"Head\";\n RequestMethod[RequestMethod[\"Patch\"] = 6] = \"Patch\";\n })(exports.RequestMethod || (exports.RequestMethod = {}));\n (function (ReadyState) {\n ReadyState[ReadyState[\"Unsent\"] = 0] = \"Unsent\";\n ReadyState[ReadyState[\"Open\"] = 1] = \"Open\";\n ReadyState[ReadyState[\"HeadersReceived\"] = 2] = \"HeadersReceived\";\n ReadyState[ReadyState[\"Loading\"] = 3] = \"Loading\";\n ReadyState[ReadyState[\"Done\"] = 4] = \"Done\";\n ReadyState[ReadyState[\"Cancelled\"] = 5] = \"Cancelled\";\n })(exports.ReadyState || (exports.ReadyState = {}));\n (function (ResponseType) {\n ResponseType[ResponseType[\"Basic\"] = 0] = \"Basic\";\n ResponseType[ResponseType[\"Cors\"] = 1] = \"Cors\";\n ResponseType[ResponseType[\"Default\"] = 2] = \"Default\";\n ResponseType[ResponseType[\"Error\"] = 3] = \"Error\";\n ResponseType[ResponseType[\"Opaque\"] = 4] = \"Opaque\";\n })(exports.ResponseType || (exports.ResponseType = {}));\n /**\n * Supported content type to be automatically associated with a {@link Request}.\n * @deprecated see https://angular.io/guide/http\n */\n var ContentType;\n (function (ContentType) {\n ContentType[ContentType[\"NONE\"] = 0] = \"NONE\";\n ContentType[ContentType[\"JSON\"] = 1] = \"JSON\";\n ContentType[ContentType[\"FORM\"] = 2] = \"FORM\";\n ContentType[ContentType[\"FORM_DATA\"] = 3] = \"FORM_DATA\";\n ContentType[ContentType[\"TEXT\"] = 4] = \"TEXT\";\n ContentType[ContentType[\"BLOB\"] = 5] = \"BLOB\";\n ContentType[ContentType[\"ARRAY_BUFFER\"] = 6] = \"ARRAY_BUFFER\";\n })(ContentType || (ContentType = {}));\n (function (ResponseContentType) {\n ResponseContentType[ResponseContentType[\"Text\"] = 0] = \"Text\";\n ResponseContentType[ResponseContentType[\"Json\"] = 1] = \"Json\";\n ResponseContentType[ResponseContentType[\"ArrayBuffer\"] = 2] = \"ArrayBuffer\";\n ResponseContentType[ResponseContentType[\"Blob\"] = 3] = \"Blob\";\n })(exports.ResponseContentType || (exports.ResponseContentType = {}));\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 * @usageNotes\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 see https://angular.io/guide/http\n * @publicApi\n */\n var Headers = /** @class */ (function () {\n // TODO(vicb): any -> string|string[]\n function Headers(headers) {\n var _this = this;\n /** @internal header names are lower case */\n this._headers = new Map();\n /** @internal map lower case names to actual names */\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 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 Headers.fromResponseHeaderString = function (headersString) {\n var headers = new Headers();\n headersString.split('\\n').forEach(function (line) {\n var index = line.indexOf(':');\n if (index > 0) {\n var name_1 = line.slice(0, index);\n var 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 Headers.prototype.append = function (name, value) {\n var 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 Headers.prototype.delete = function (name) {\n var lcName = name.toLowerCase();\n this._normalizedNames.delete(lcName);\n this._headers.delete(lcName);\n };\n Headers.prototype.forEach = 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 Headers.prototype.get = function (name) {\n var 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 Headers.prototype.has = function (name) { return this._headers.has(name.toLowerCase()); };\n /**\n * Returns the names of the headers\n */\n Headers.prototype.keys = function () { return Array.from(this._normalizedNames.values()); };\n /**\n * Sets or overrides header value for given name.\n */\n Headers.prototype.set = 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 Headers.prototype.values = function () { return Array.from(this._headers.values()); };\n /**\n * Returns string of all headers.\n */\n // TODO(vicb): returns {[name: string]: string[]}\n Headers.prototype.toJSON = function () {\n var _this = this;\n var serialized = {};\n this._headers.forEach(function (values, name) {\n var split = [];\n values.forEach(function (v) { return split.push.apply(split, __spread(v.split(','))); });\n serialized[_this._normalizedNames.get(name)] = split;\n });\n return serialized;\n };\n /**\n * Returns list of header values for a given name.\n */\n Headers.prototype.getAll = function (name) {\n return this.has(name) ? this._headers.get(name.toLowerCase()) || null : null;\n };\n /**\n * This method is not implemented.\n */\n Headers.prototype.entries = function () { throw new Error('\"entries\" method is not implemented on Headers class'); };\n Headers.prototype.mayBeSetNormalizedName = function (name) {\n var lcName = name.toLowerCase();\n if (!this._normalizedNames.has(lcName)) {\n this._normalizedNames.set(lcName, name);\n }\n };\n return Headers;\n }());\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 * @usageNotes\n * ### Example\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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 * @usageNotes\n * ### Example\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 ResponseOptions.prototype.merge = 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 * @usageNotes\n * ### Example\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\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 see https://angular.io/guide/http\n * @publicApi\n */\n var BaseResponseOptions = /** @class */ (function (_super) {\n __extends(BaseResponseOptions, _super);\n function BaseResponseOptions() {\n return _super.call(this, { status: 200, statusText: 'Ok', type: exports.ResponseType.Default, headers: new Headers() }) || this;\n }\n BaseResponseOptions = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [])\n ], BaseResponseOptions);\n return BaseResponseOptions;\n }(ResponseOptions));\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 see https://angular.io/guide/http\n * @publicApi\n */\n var ConnectionBackend = /** @class */ (function () {\n function ConnectionBackend() {\n }\n return ConnectionBackend;\n }());\n /**\n * Abstract class from which real connections are derived.\n *\n * @deprecated see https://angular.io/guide/http\n * @publicApi\n */\n var 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 see https://angular.io/guide/http\n * @publicApi\n */\n var XSRFStrategy = /** @class */ (function () {\n function XSRFStrategy() {\n }\n return XSRFStrategy;\n }());\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 function normalizeMethodName(method) {\n if (typeof method !== 'string')\n return method;\n switch (method.toUpperCase()) {\n case 'GET':\n return exports.RequestMethod.Get;\n case 'POST':\n return exports.RequestMethod.Post;\n case 'PUT':\n return exports.RequestMethod.Put;\n case 'DELETE':\n return exports.RequestMethod.Delete;\n case 'OPTIONS':\n return exports.RequestMethod.Options;\n case 'HEAD':\n return exports.RequestMethod.Head;\n case 'PATCH':\n return exports.RequestMethod.Patch;\n }\n throw new Error(\"Invalid request method. The method \\\"\" + method + \"\\\" is not supported.\");\n }\n var isSuccess = function (status) { return (status >= 200 && status < 300); };\n 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 function stringToArrayBuffer(input) {\n var view = new Uint16Array(input.length);\n for (var i = 0, strLen = input.length; i < strLen; i++) {\n view[i] = input.charCodeAt(i);\n }\n return view.buffer;\n }\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 function paramParser(rawParams) {\n if (rawParams === void 0) { rawParams = ''; }\n var map = new Map();\n if (rawParams.length > 0) {\n var params = rawParams.split('&');\n params.forEach(function (param) {\n var eqIdx = param.indexOf('=');\n var _a = __read(eqIdx == -1 ? [param, ''] : [param.slice(0, eqIdx), param.slice(eqIdx + 1)], 2), key = _a[0], val = _a[1];\n var list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n }\n /**\n * @deprecated see https://angular.io/guide/http\n * @publicApi\n **/\n var QueryEncoder = /** @class */ (function () {\n function QueryEncoder() {\n }\n QueryEncoder.prototype.encodeKey = function (key) { return standardEncoding(key); };\n QueryEncoder.prototype.encodeValue = function (value) { return standardEncoding(value); };\n return QueryEncoder;\n }());\n function 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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 URLSearchParams.prototype.clone = function () {\n var clone = new URLSearchParams('', this.queryEncoder);\n clone.appendAll(this);\n return clone;\n };\n URLSearchParams.prototype.has = function (param) { return this.paramsMap.has(param); };\n URLSearchParams.prototype.get = function (param) {\n var storedParam = this.paramsMap.get(param);\n return Array.isArray(storedParam) ? storedParam[0] : null;\n };\n URLSearchParams.prototype.getAll = function (param) { return this.paramsMap.get(param) || []; };\n URLSearchParams.prototype.set = function (param, val) {\n if (val === void 0 || val === null) {\n this.delete(param);\n return;\n }\n var 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 URLSearchParams.prototype.setAll = function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var list = _this.paramsMap.get(param) || [];\n list.length = 0;\n list.push(value[0]);\n _this.paramsMap.set(param, list);\n });\n };\n URLSearchParams.prototype.append = function (param, val) {\n if (val === void 0 || val === null)\n return;\n var 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 URLSearchParams.prototype.appendAll = function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var list = _this.paramsMap.get(param) || [];\n for (var 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 URLSearchParams.prototype.replaceAll = function (searchParams) {\n var _this = this;\n searchParams.paramsMap.forEach(function (value, param) {\n var list = _this.paramsMap.get(param) || [];\n list.length = 0;\n for (var i = 0; i < value.length; ++i) {\n list.push(value[i]);\n }\n _this.paramsMap.set(param, list);\n });\n };\n URLSearchParams.prototype.toString = function () {\n var _this = this;\n var paramsList = [];\n this.paramsMap.forEach(function (values, k) {\n values.forEach(function (v) { return paramsList.push(_this.queryEncoder.encodeKey(k) + '=' + _this.queryEncoder.encodeValue(v)); });\n });\n return paramsList.join('&');\n };\n URLSearchParams.prototype.delete = function (param) { this.paramsMap.delete(param); };\n return URLSearchParams;\n }());\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 */\n var Body = /** @class */ (function () {\n function Body() {\n }\n /**\n * Attempts to return body as parsed `JSON` object, or raises an exception.\n */\n Body.prototype.json = function () {\n if (typeof this._body === 'string') {\n return JSON.parse(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 Body.prototype.text = 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(this._body));\n case 'iso-8859':\n return String.fromCharCode.apply(null, new Uint8Array(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 Body.prototype.arrayBuffer = function () {\n if (this._body instanceof ArrayBuffer) {\n return 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 Body.prototype.blob = function () {\n if (this._body instanceof Blob) {\n return 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 * @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 * @usageNotes\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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 = responseOptions.status;\n _this.ok = (_this.status >= 200 && _this.status <= 299);\n _this.statusText = responseOptions.statusText;\n _this.headers = responseOptions.headers;\n _this.type = responseOptions.type;\n _this.url = responseOptions.url;\n return _this;\n }\n Response.prototype.toString = function () {\n return \"Response with status: \" + this.status + \" \" + this.statusText + \" for URL: \" + this.url;\n };\n return Response;\n }(Body));\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 var _nextRequestId = 0;\n var JSONP_HOME = '__ng_jsonp__';\n var _jsonpConnections = null;\n function _getJsonpConnections() {\n var w = typeof window == 'object' ? window : {};\n if (_jsonpConnections === null) {\n _jsonpConnections = w[JSONP_HOME] = {};\n }\n return _jsonpConnections;\n }\n // Make sure not to evaluate this in a non-browser environment!\n var BrowserJsonp = /** @class */ (function () {\n function BrowserJsonp() {\n }\n // Construct a <script> element with the specified URL\n BrowserJsonp.prototype.build = function (url) {\n var node = document.createElement('script');\n node.src = url;\n return node;\n };\n BrowserJsonp.prototype.nextRequestID = function () { return \"__req\" + _nextRequestId++; };\n BrowserJsonp.prototype.requestCallback = function (id) { return JSONP_HOME + \".\" + id + \".finished\"; };\n BrowserJsonp.prototype.exposeConnection = function (id, connection) {\n var connections = _getJsonpConnections();\n connections[id] = connection;\n };\n BrowserJsonp.prototype.removeConnection = function (id) {\n var connections = _getJsonpConnections();\n connections[id] = null;\n };\n // Attach the <script> element to the DOM\n BrowserJsonp.prototype.send = function (node) { document.body.appendChild((node)); };\n // Remove <script> element from the DOM\n BrowserJsonp.prototype.cleanup = function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild((node));\n }\n };\n BrowserJsonp = __decorate([\n core.Injectable()\n ], BrowserJsonp);\n return BrowserJsonp;\n }());\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 var JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\n var JSONP_ERR_WRONG_METHOD = 'JSONP requests must use GET request method.';\n /**\n * Base class for an in-flight JSONP request.\n *\n * @deprecated see https://angular.io/guide/http\n * @publicApi\n */\n var 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 !== exports.RequestMethod.Get) {\n throw new TypeError(JSONP_ERR_WRONG_METHOD);\n }\n this.request = req;\n this.response = new rxjs.Observable(function (responseObserver) {\n _this.readyState = exports.ReadyState.Loading;\n var id = _this._id = _dom.nextRequestID();\n _dom.exposeConnection(id, _this);\n // Workaround Dart\n // url = url.replace(/=JSONP_CALLBACK(&|$)/, `generated method`);\n var callback = _dom.requestCallback(_this._id);\n var 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 script = _this._script = _dom.build(url);\n var onLoad = function (event) {\n if (_this.readyState === exports.ReadyState.Cancelled)\n return;\n _this.readyState = exports.ReadyState.Done;\n _dom.cleanup(script);\n if (!_this._finished) {\n var responseOptions_1 = new ResponseOptions({ body: JSONP_ERR_NO_CALLBACK, type: exports.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 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 onError = function (error) {\n if (_this.readyState === exports.ReadyState.Cancelled)\n return;\n _this.readyState = exports.ReadyState.Done;\n _dom.cleanup(script);\n var responseOptions = new ResponseOptions({ body: error.message, type: exports.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 = exports.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 JSONPConnection.prototype.finished = function (data) {\n // Don't leak connections\n this._finished = true;\n this._dom.removeConnection(this._id);\n if (this.readyState === exports.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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 JSONPBackend.prototype.createConnection = function (request) {\n return new JSONPConnection(request, this._browserJSONP, this._baseResponseOptions);\n };\n JSONPBackend = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [BrowserJsonp, ResponseOptions])\n ], JSONPBackend);\n return JSONPBackend;\n }(ConnectionBackend));\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 var 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 see https://angular.io/guide/http\n * @publicApi\n */\n var XHRConnection = /** @class */ (function () {\n function XHRConnection(req, browserXHR, baseResponseOptions) {\n var _this = this;\n this.request = req;\n this.response = new rxjs.Observable(function (responseObserver) {\n var _xhr = browserXHR.build();\n _xhr.open(exports.RequestMethod[req.method].toUpperCase(), req.url);\n if (req.withCredentials != null) {\n _xhr.withCredentials = req.withCredentials;\n }\n // load event handler\n var onLoad = function () {\n // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)\n var status = _xhr.status === 1223 ? 204 : _xhr.status;\n var 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 headers = Headers.fromResponseHeaderString(_xhr.getAllResponseHeaders());\n // IE 9 does not provide the way to get URL of response\n var url = getResponseURL(_xhr) || req.url;\n var statusText = _xhr.statusText || 'OK';\n var 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 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 onError = function (err) {\n var responseOptions = new ResponseOptions({\n body: err,\n type: exports.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(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 exports.ResponseContentType.ArrayBuffer:\n _xhr.responseType = 'arraybuffer';\n break;\n case exports.ResponseContentType.Json:\n _xhr.responseType = 'json';\n break;\n case exports.ResponseContentType.Text:\n _xhr.responseType = 'text';\n break;\n case exports.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 XHRConnection.prototype.setDetectedContentType = 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 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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 CookieXSRFStrategy.prototype.configureRequest = function (req) {\n var xsrfToken = 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 * @usageNotes\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 see https://angular.io/guide/http\n * @publicApi\n */\n var XHRBackend = /** @class */ (function () {\n function XHRBackend(_browserXHR, _baseResponseOptions, _xsrfStrategy) {\n this._browserXHR = _browserXHR;\n this._baseResponseOptions = _baseResponseOptions;\n this._xsrfStrategy = _xsrfStrategy;\n }\n XHRBackend.prototype.createConnection = function (request) {\n this._xsrfStrategy.configureRequest(request);\n return new XHRConnection(request, this._browserXHR, this._baseResponseOptions);\n };\n XHRBackend = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [BrowserXhr, ResponseOptions,\n XSRFStrategy])\n ], XHRBackend);\n return XHRBackend;\n }());\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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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: function () { return this.params; },\n /**\n * @deprecated from 4.0.0. Use params instead.\n */\n set: 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 RequestOptions.prototype.merge = 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 RequestOptions.prototype._mergeSearchParams = 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 RequestOptions.prototype._parseParams = function (objParams) {\n var _this = this;\n if (objParams === void 0) { objParams = {}; }\n var params = new URLSearchParams();\n Object.keys(objParams).forEach(function (key) {\n var 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 RequestOptions.prototype._appendParam = 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 see https://angular.io/guide/http\n * @publicApi\n */\n var BaseRequestOptions = /** @class */ (function (_super) {\n __extends(BaseRequestOptions, _super);\n function BaseRequestOptions() {\n return _super.call(this, { method: exports.RequestMethod.Get, headers: new Headers() }) || this;\n }\n BaseRequestOptions = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [])\n ], BaseRequestOptions);\n return BaseRequestOptions;\n }(RequestOptions));\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 // TODO(jeffbcross): properly implement body accessors\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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 url = requestOptions.url;\n _this.url = requestOptions.url;\n var paramsArg = requestOptions.params || requestOptions.search;\n if (paramsArg) {\n var 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 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 _this.url = url + prefix + params;\n }\n }\n _this._body = requestOptions.body;\n _this.method = normalizeMethodName(requestOptions.method);\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 = requestOptions.withCredentials;\n _this.responseType = requestOptions.responseType;\n return _this;\n }\n /**\n * Returns the content type enum based on header options.\n */\n Request.prototype.detectContentType = 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 Request.prototype.detectContentTypeFromBody = 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 Request.prototype.getBody = 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 function urlEncodeParams(params) {\n var searchParams = new URLSearchParams();\n Object.keys(params).forEach(function (key) {\n var 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 }\n var noop = function () { };\n var w = typeof window == 'object' ? window : noop;\n var FormData = w /** TODO #9100 */['FormData'] || noop;\n var Blob$1 = w /** TODO #9100 */['Blob'] || noop;\n var ArrayBuffer$1 = w /** TODO #9100 */['ArrayBuffer'] || noop;\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 function httpRequest(backend, request) {\n return backend.createConnection(request).response;\n }\n function mergeOptions(defaultOpts, providedOpts, method, url) {\n var newOptions = defaultOpts;\n if (providedOpts) {\n // Hack so Dart can used named parameters\n return 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 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 * @usageNotes\n * ### Example\n *\n * ```typescript\n * import {Http, HTTP_PROVIDERS} from '@angular/http';\n * import {map} from 'rxjs/operators';\n *\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 * .pipe(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 see https://angular.io/guide/http\n * @publicApi\n */\n var 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 Http.prototype.request = function (url, options) {\n var responseObservable;\n if (typeof url === 'string') {\n responseObservable = httpRequest(this._backend, new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Get, 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 Http.prototype.get = function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Get, url)));\n };\n /**\n * Performs a request with `post` http method.\n */\n Http.prototype.post = function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, exports.RequestMethod.Post, url)));\n };\n /**\n * Performs a request with `put` http method.\n */\n Http.prototype.put = function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, exports.RequestMethod.Put, url)));\n };\n /**\n * Performs a request with `delete` http method.\n */\n Http.prototype.delete = function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Delete, url)));\n };\n /**\n * Performs a request with `patch` http method.\n */\n Http.prototype.patch = function (url, body, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions.merge(new RequestOptions({ body: body })), options, exports.RequestMethod.Patch, url)));\n };\n /**\n * Performs a request with `head` http method.\n */\n Http.prototype.head = function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Head, url)));\n };\n /**\n * Performs a request with `options` http method.\n */\n Http.prototype.options = function (url, options) {\n return this.request(new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Options, url)));\n };\n Http = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [ConnectionBackend, RequestOptions])\n ], Http);\n return Http;\n }());\n /**\n * @deprecated see https://angular.io/guide/http\n * @publicApi\n */\n var 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 Jsonp.prototype.request = function (url, options) {\n var responseObservable;\n if (typeof url === 'string') {\n url =\n new Request(mergeOptions(this._defaultOptions, options, exports.RequestMethod.Get, url));\n }\n if (url instanceof Request) {\n if (url.method !== exports.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 = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [ConnectionBackend, RequestOptions])\n ], Jsonp);\n return Jsonp;\n }(Http));\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 function _createDefaultCookieXSRFStrategy() {\n return new CookieXSRFStrategy();\n }\n function httpFactory(xhrBackend, requestOptions) {\n return new Http(xhrBackend, requestOptions);\n }\n function jsonpFactory(jsonpBackend, requestOptions) {\n return new Jsonp(jsonpBackend, requestOptions);\n }\n /**\n * The module that includes http's providers\n *\n * @deprecated see https://angular.io/guide/http\n * @publicApi\n */\n var HttpModule = /** @class */ (function () {\n function HttpModule() {\n }\n HttpModule = __decorate([\n core.NgModule({\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 ], HttpModule);\n return HttpModule;\n }());\n /**\n * The module that includes jsonp's providers\n *\n * @deprecated see https://angular.io/api/common/http/HttpClient#jsonp\n * @publicApi\n */\n var JsonpModule = /** @class */ (function () {\n function JsonpModule() {\n }\n JsonpModule = __decorate([\n core.NgModule({\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 ], JsonpModule);\n return JsonpModule;\n }());\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 see https://angular.io/guide/http\n * @publicApi\n */\n var VERSION = new core.Version('8.0.0-beta.10+1.sha-a28b3e3');\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 /**\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 // This file only reexports content of the `src` folder. Keep it that way.\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 /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_http_http_e = BrowserJsonp;\n exports.ɵangular_packages_http_http_f = Body;\n exports.ɵangular_packages_http_http_a = _createDefaultCookieXSRFStrategy;\n exports.ɵangular_packages_http_http_b = httpFactory;\n exports.ɵangular_packages_http_http_c = jsonpFactory;\n exports.BrowserXhr = BrowserXhr;\n exports.JSONPBackend = JSONPBackend;\n exports.JSONPConnection = JSONPConnection;\n exports.CookieXSRFStrategy = CookieXSRFStrategy;\n exports.XHRBackend = XHRBackend;\n exports.XHRConnection = XHRConnection;\n exports.BaseRequestOptions = BaseRequestOptions;\n exports.RequestOptions = RequestOptions;\n exports.BaseResponseOptions = BaseResponseOptions;\n exports.ResponseOptions = ResponseOptions;\n exports.Headers = Headers;\n exports.Http = Http;\n exports.Jsonp = Jsonp;\n exports.HttpModule = HttpModule;\n exports.JsonpModule = JsonpModule;\n exports.Connection = Connection;\n exports.ConnectionBackend = ConnectionBackend;\n exports.XSRFStrategy = XSRFStrategy;\n exports.Request = Request;\n exports.Response = Response;\n exports.QueryEncoder = QueryEncoder;\n exports.URLSearchParams = URLSearchParams;\n exports.VERSION = VERSION;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=http.umd.js.map\n"]}