@esri/arcgis-rest-request
Advanced tools
Comparing version 1.5.1 to 1.6.0
@@ -0,2 +1,18 @@ | ||
/** | ||
* Authentication can be supplied to `request` via [`UserSession`](../../auth/UserSession/) or [`ApplicationSession`](../../auth/ApplicationSession/). Both classes extend `IAuthenticationManager`. | ||
* ```js | ||
* const session = new UserSession({ | ||
* username: "jsmith", | ||
* password: "123456", | ||
* // optional | ||
* portal: "https://[yourserver]/arcgis/sharing/rest" | ||
* }) | ||
* | ||
* request(url, { authentication: session }) | ||
* ``` | ||
*/ | ||
export interface IAuthenticationManager { | ||
/** | ||
* Defaults to 'https://www.arcgis.com/sharing/rest'. | ||
*/ | ||
portal: string; | ||
@@ -3,0 +19,0 @@ getToken(url: string): Promise<string>; |
@@ -82,3 +82,5 @@ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc. | ||
// encode the parameters into the query string | ||
var urlWithQueryString = url + "?" + encodeQueryString(params); | ||
var queryParams = encodeQueryString(params); | ||
// dont append a '?' unless parameters are actually present | ||
var urlWithQueryString = queryParams === "" ? url : url + "?" + encodeQueryString(params); | ||
if (options.maxUrlLength && | ||
@@ -123,5 +125,9 @@ urlWithQueryString.length > options.maxUrlLength) { | ||
return response.blob(); | ||
/* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */ | ||
/* istanbul ignore next */ | ||
case "zip": | ||
return response.blob(); | ||
/* istanbul ignore next */ | ||
default: | ||
// hopefully we never need to handle JSON payloads when no f= parameter is set | ||
return response.blob(); | ||
} | ||
@@ -128,0 +134,0 @@ }) |
@@ -17,3 +17,9 @@ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc. | ||
Object.keys(newParams).forEach(function (key) { | ||
formData_1.append(key, newParams[key]); | ||
if (key === "file" && newParams[key].name) { | ||
// Pass on the file's name if provided to override defaults such as "blob" | ||
formData_1.append(key, newParams[key], newParams[key].name); | ||
} | ||
else { | ||
formData_1.append(key, newParams[key]); | ||
} | ||
}); | ||
@@ -20,0 +26,0 @@ return formData_1; |
@@ -44,3 +44,6 @@ /* Copyright (c) 2017 Environmental Systems Research Institute, Inc. | ||
var param = params[key]; | ||
if (!param && param !== 0 && typeof param !== "boolean") { | ||
if (!param && | ||
param !== 0 && | ||
typeof param !== "boolean" && | ||
typeof param !== "string") { | ||
return; | ||
@@ -52,7 +55,12 @@ } | ||
// ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18: | ||
// null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "". | ||
switch (type) { | ||
case "Array": | ||
// Based on the first element of the array, classify array as an array of objects to be stringified | ||
// or an array of non-objects to be comma-separated | ||
value = | ||
param[0].constructor.name === "Object" | ||
param[0] && | ||
param[0].constructor && | ||
param[0].constructor.name === "Object" | ||
? JSON.stringify(param) | ||
@@ -77,3 +85,3 @@ : param.join(","); | ||
} | ||
if (value || value === 0) { | ||
if (value || value === 0 || typeof value === "string") { | ||
newParams[key] = value; | ||
@@ -80,0 +88,0 @@ } |
@@ -84,3 +84,5 @@ "use strict"; | ||
// encode the parameters into the query string | ||
var urlWithQueryString = url + "?" + encode_query_string_1.encodeQueryString(params); | ||
var queryParams = encode_query_string_1.encodeQueryString(params); | ||
// dont append a '?' unless parameters are actually present | ||
var urlWithQueryString = queryParams === "" ? url : url + "?" + encode_query_string_1.encodeQueryString(params); | ||
if (options.maxUrlLength && | ||
@@ -125,5 +127,9 @@ urlWithQueryString.length > options.maxUrlLength) { | ||
return response.blob(); | ||
/* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */ | ||
/* istanbul ignore next */ | ||
case "zip": | ||
return response.blob(); | ||
/* istanbul ignore next */ | ||
default: | ||
// hopefully we never need to handle JSON payloads when no f= parameter is set | ||
return response.blob(); | ||
} | ||
@@ -130,0 +136,0 @@ }) |
@@ -19,3 +19,9 @@ "use strict"; | ||
Object.keys(newParams).forEach(function (key) { | ||
formData_1.append(key, newParams[key]); | ||
if (key === "file" && newParams[key].name) { | ||
// Pass on the file's name if provided to override defaults such as "blob" | ||
formData_1.append(key, newParams[key], newParams[key].name); | ||
} | ||
else { | ||
formData_1.append(key, newParams[key]); | ||
} | ||
}); | ||
@@ -22,0 +28,0 @@ return formData_1; |
@@ -47,3 +47,6 @@ "use strict"; | ||
var param = params[key]; | ||
if (!param && param !== 0 && typeof param !== "boolean") { | ||
if (!param && | ||
param !== 0 && | ||
typeof param !== "boolean" && | ||
typeof param !== "string") { | ||
return; | ||
@@ -55,7 +58,12 @@ } | ||
// ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18: | ||
// null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "". | ||
switch (type) { | ||
case "Array": | ||
// Based on the first element of the array, classify array as an array of objects to be stringified | ||
// or an array of non-objects to be comma-separated | ||
value = | ||
param[0].constructor.name === "Object" | ||
param[0] && | ||
param[0].constructor && | ||
param[0].constructor.name === "Object" | ||
? JSON.stringify(param) | ||
@@ -80,3 +88,3 @@ : param.join(","); | ||
} | ||
if (value || value === 0) { | ||
if (value || value === 0 || typeof value === "string") { | ||
newParams[key] = value; | ||
@@ -83,0 +91,0 @@ } |
/* @preserve | ||
* @esri/arcgis-rest-request - v1.5.1 - Thu Jul 12 2018 08:29:00 GMT-0700 (PDT) | ||
* @esri/arcgis-rest-request - v1.6.0 - Fri Jul 27 2018 15:13:00 GMT-0700 (PDT) | ||
* Copyright (c) 2017 - 2018 Environmental Systems Research Institute, Inc. | ||
@@ -227,3 +227,6 @@ * Apache-2.0 | ||
var param = params[key]; | ||
if (!param && param !== 0 && typeof param !== "boolean") { | ||
if (!param && | ||
param !== 0 && | ||
typeof param !== "boolean" && | ||
typeof param !== "string") { | ||
return; | ||
@@ -235,7 +238,12 @@ } | ||
// ported from https://github.com/Esri/esri-leaflet/blob/master/src/Request.js#L22-L30 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18 | ||
// also see https://github.com/Esri/arcgis-rest-js/issues/18: | ||
// null, undefined, function are excluded. If you want to send an empty key you need to send an empty string "". | ||
switch (type) { | ||
case "Array": | ||
// Based on the first element of the array, classify array as an array of objects to be stringified | ||
// or an array of non-objects to be comma-separated | ||
value = | ||
param[0].constructor.name === "Object" | ||
param[0] && | ||
param[0].constructor && | ||
param[0].constructor.name === "Object" | ||
? JSON.stringify(param) | ||
@@ -260,3 +268,3 @@ : param.join(","); | ||
} | ||
if (value || value === 0) { | ||
if (value || value === 0 || typeof value === "string") { | ||
newParams[key] = value; | ||
@@ -302,3 +310,9 @@ } | ||
Object.keys(newParams).forEach(function (key) { | ||
formData_1.append(key, newParams[key]); | ||
if (key === "file" && newParams[key].name) { | ||
// Pass on the file's name if provided to override defaults such as "blob" | ||
formData_1.append(key, newParams[key], newParams[key].name); | ||
} | ||
else { | ||
formData_1.append(key, newParams[key]); | ||
} | ||
}); | ||
@@ -387,3 +401,5 @@ return formData_1; | ||
// encode the parameters into the query string | ||
var urlWithQueryString = url + "?" + encodeQueryString(params); | ||
var queryParams = encodeQueryString(params); | ||
// dont append a '?' unless parameters are actually present | ||
var urlWithQueryString = queryParams === "" ? url : url + "?" + encodeQueryString(params); | ||
if (options.maxUrlLength && | ||
@@ -428,5 +444,9 @@ urlWithQueryString.length > options.maxUrlLength) { | ||
return response.blob(); | ||
/* istanbul ignore next blob responses are difficult to make cross platform we will just have to trust the isomorphic fetch will do its job */ | ||
/* istanbul ignore next */ | ||
case "zip": | ||
return response.blob(); | ||
/* istanbul ignore next */ | ||
default: | ||
// hopefully we never need to handle JSON payloads when no f= parameter is set | ||
return response.blob(); | ||
} | ||
@@ -433,0 +453,0 @@ }) |
/* @preserve | ||
* @esri/arcgis-rest-request - v1.5.1 - Thu Jul 12 2018 08:29:02 GMT-0700 (PDT) | ||
* @esri/arcgis-rest-request - v1.6.0 - Fri Jul 27 2018 15:13:03 GMT-0700 (PDT) | ||
* Copyright (c) 2017 - 2018 Environmental Systems Research Institute, Inc. | ||
* Apache-2.0 | ||
*/ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.arcgisRest=e.arcgisRest||{})}(this,function(e){"use strict";var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};var r=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o=function(){return function(e,t,r,o,n){void 0===e&&(e="UNKNOWN_ERROR"),void 0===t&&(t="UNKNOWN_ERROR_CODE"),this.name="ArcGISRequestError",this.message="UNKNOWN_ERROR_CODE"===t?e:t+": "+e,this.originalMessage=e,this.code=t,this.response=r,this.url=o,this.options=n}}();o.prototype=Object.create(Error.prototype),o.prototype.constructor=o;var n,a=function(e){function o(t,r,o,n,a){void 0===t&&(t="AUTHENTICATION_ERROR"),void 0===r&&(r="AUTHENTICATION_ERROR_CODE");var s=e.call(this,t,r,o,n,a)||this;return s.name="ArcGISAuthError",s.message="AUTHENTICATION_ERROR_CODE"===r?t:r+": "+t,s}return function(e,r){function o(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(o.prototype=r.prototype,new o)}(o,e),o.prototype.retry=function(e,t){var o=this;void 0===t&&(t=3);var n=0,a=function(s,c){e(o.url,o.options).then(function(e){var t=r({},o.options,{authentication:e});return n+=1,p(o.url,t)}).then(function(e){s(e)}).catch(function(e){"ArcGISAuthError"===e.name&&n<t?a(s,c):"ArcGISAuthError"===e.name&&n>=t?c(o):c(e)})};return new Promise(function(e,t){a(e,t)})},o}(o);function s(e,t,r,n){if(e.code>=400){var s=e.message,c=e.code;throw new o(s,c,e,t,n)}if(e.error){var i=e.error,u=(s=i.message,c=i.code,i.messageCode),f=u||c||"UNKNOWN_ERROR_CODE";if(498===c||499===c||"GWM_0003"===u)throw new a(s,f,e,t,n);throw new o(s,f,e,t,n)}if("failed"===e.status){s=void 0,c="UNKNOWN_ERROR_CODE";try{s=JSON.parse(e.statusMessage).message,c=JSON.parse(e.statusMessage).code}catch(t){s=e.statusMessage}throw new o(s,c,e,t,n)}return e}function c(e){return Object.keys(e).some(function(t){var r=e[t];if(!r)return!1;switch(r.constructor.name){case"Array":case"Object":case"Date":case"Function":case"Boolean":case"String":case"Number":return!1;default:return!0}})}function i(e){var t={};return Object.keys(e).forEach(function(r){var o=e[r];if(o||0===o||"boolean"==typeof o){var n;switch(o.constructor.name){case"Array":n="Object"===o[0].constructor.name?JSON.stringify(o):o.join(",");break;case"Object":n=JSON.stringify(o);break;case"Date":n=o.valueOf();break;case"Function":n=null;break;case"Boolean":n=o+"";break;default:n=o}(n||0===n)&&(t[r]=n)}}),t}function u(e,t){return encodeURIComponent(e)+"="+encodeURIComponent(t)}function f(e){var t=i(e);return Object.keys(t).map(function(e){return u(e,t[e])}).join("&")}function h(e){var t=c(e),r=i(e);if(t){var o=new FormData;return Object.keys(r).forEach(function(e){o.append(e,r[e])}),o}return f(e)}function p(e,t){void 0===t&&(t={params:{f:"json"}});var n=r({httpMethod:"POST",fetch:fetch},t),a=[],i=[];if(n.fetch||(a.push("`fetch`"),i.push("`isomorphic-fetch`")),Promise||(a.push("`Promise`"),i.push("`es6-promise`")),FormData||(a.push("`FormData`"),i.push("`isomorphic-form-data`")),!n.fetch||!Promise||!FormData)throw new Error("`arcgis-rest-request` requires global variables for `fetch`, `Promise` and `FormData` to be present in the global scope. You are missing "+a.join(", ")+". We recommend installing the "+i.join(", ")+" modules at the root of your application to add these to the global scope. See https://bit.ly/2KNwWaJ for more info.");n.fetch===fetch&&(n.fetch=fetch.bind(Function("return this")()));var u=n.httpMethod,p=n.authentication,l=r({f:"json"},t.params),m={method:u,credentials:"same-origin"};return(p?p.getToken(e):Promise.resolve("")).then(function(t){if(t.length&&(l.token=t),"GET"===m.method){var r=e+"?"+f(l);n.maxUrlLength&&r.length>n.maxUrlLength?m.method="POST":e=r}return"POST"===m.method&&(m.body=h(l)),c(l)||(m.headers=new Headers,m.headers.append("Content-Type","application/x-www-form-urlencoded")),n.fetch(e,m)}).then(function(t){if(!t.ok){var r=t.status,a=t.statusText;throw new o(a,"HTTP "+r,t,e,n)}switch(l.f){case"json":case"geojson":return t.json();case"html":case"text":return t.text();case"image":case"zip":return t.blob()}}).then(function(t){return"json"===l.f||"geojson"===l.f?s(t,e,0,n):t})}function l(e){return void 0===e&&(e={}),e.portal?e.portal:e.authentication?e.authentication.portal:"https://www.arcgis.com/sharing/rest"}function m(e,t){var o=e||"self";return p(l(t)+"/portals/"+o,r({httpMethod:"GET"},t))}(n=e.ErrorTypes||(e.ErrorTypes={})).ArcGISRequestError="ArcGISRequestError",n.ArcGISAuthError="ArcGISAuthError",e.request=p,e.encodeFormData=h,e.encodeParam=u,e.encodeQueryString=f,e.checkForErrors=s,e.warn=function(e){console&&console.warn&&console.warn.apply(console,[e])},e.ArcGISRequestError=o,e.ArcGISAuthError=a,e.requiresFormData=c,e.processParams=i,e.getSelf=function(e){return m(null,e)},e.getPortal=m,e.getPortalUrl=l,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.arcgisRest=e.arcgisRest||{})}(this,function(e){"use strict";var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])};var r=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o=function(){return function(e,t,r,o,n){void 0===e&&(e="UNKNOWN_ERROR"),void 0===t&&(t="UNKNOWN_ERROR_CODE"),this.name="ArcGISRequestError",this.message="UNKNOWN_ERROR_CODE"===t?e:t+": "+e,this.originalMessage=e,this.code=t,this.response=r,this.url=o,this.options=n}}();o.prototype=Object.create(Error.prototype),o.prototype.constructor=o;var n,a=function(e){function o(t,r,o,n,a){void 0===t&&(t="AUTHENTICATION_ERROR"),void 0===r&&(r="AUTHENTICATION_ERROR_CODE");var s=e.call(this,t,r,o,n,a)||this;return s.name="ArcGISAuthError",s.message="AUTHENTICATION_ERROR_CODE"===r?t:r+": "+t,s}return function(e,r){function o(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(o.prototype=r.prototype,new o)}(o,e),o.prototype.retry=function(e,t){var o=this;void 0===t&&(t=3);var n=0,a=function(s,c){e(o.url,o.options).then(function(e){var t=r({},o.options,{authentication:e});return n+=1,p(o.url,t)}).then(function(e){s(e)}).catch(function(e){"ArcGISAuthError"===e.name&&n<t?a(s,c):"ArcGISAuthError"===e.name&&n>=t?c(o):c(e)})};return new Promise(function(e,t){a(e,t)})},o}(o);function s(e,t,r,n){if(e.code>=400){var s=e.message,c=e.code;throw new o(s,c,e,t,n)}if(e.error){var i=e.error,u=(s=i.message,c=i.code,i.messageCode),f=u||c||"UNKNOWN_ERROR_CODE";if(498===c||499===c||"GWM_0003"===u)throw new a(s,f,e,t,n);throw new o(s,f,e,t,n)}if("failed"===e.status){s=void 0,c="UNKNOWN_ERROR_CODE";try{s=JSON.parse(e.statusMessage).message,c=JSON.parse(e.statusMessage).code}catch(t){s=e.statusMessage}throw new o(s,c,e,t,n)}return e}function c(e){return Object.keys(e).some(function(t){var r=e[t];if(!r)return!1;switch(r.constructor.name){case"Array":case"Object":case"Date":case"Function":case"Boolean":case"String":case"Number":return!1;default:return!0}})}function i(e){var t={};return Object.keys(e).forEach(function(r){var o=e[r];if(o||0===o||"boolean"==typeof o||"string"==typeof o){var n;switch(o.constructor.name){case"Array":n=o[0]&&o[0].constructor&&"Object"===o[0].constructor.name?JSON.stringify(o):o.join(",");break;case"Object":n=JSON.stringify(o);break;case"Date":n=o.valueOf();break;case"Function":n=null;break;case"Boolean":n=o+"";break;default:n=o}(n||0===n||"string"==typeof n)&&(t[r]=n)}}),t}function u(e,t){return encodeURIComponent(e)+"="+encodeURIComponent(t)}function f(e){var t=i(e);return Object.keys(t).map(function(e){return u(e,t[e])}).join("&")}function h(e){var t=c(e),r=i(e);if(t){var o=new FormData;return Object.keys(r).forEach(function(e){"file"===e&&r[e].name?o.append(e,r[e],r[e].name):o.append(e,r[e])}),o}return f(e)}function p(e,t){void 0===t&&(t={params:{f:"json"}});var n=r({httpMethod:"POST",fetch:fetch},t),a=[],i=[];if(n.fetch||(a.push("`fetch`"),i.push("`isomorphic-fetch`")),Promise||(a.push("`Promise`"),i.push("`es6-promise`")),FormData||(a.push("`FormData`"),i.push("`isomorphic-form-data`")),!n.fetch||!Promise||!FormData)throw new Error("`arcgis-rest-request` requires global variables for `fetch`, `Promise` and `FormData` to be present in the global scope. You are missing "+a.join(", ")+". We recommend installing the "+i.join(", ")+" modules at the root of your application to add these to the global scope. See https://bit.ly/2KNwWaJ for more info.");n.fetch===fetch&&(n.fetch=fetch.bind(Function("return this")()));var u=n.httpMethod,p=n.authentication,l=r({f:"json"},t.params),m={method:u,credentials:"same-origin"};return(p?p.getToken(e):Promise.resolve("")).then(function(t){if(t.length&&(l.token=t),"GET"===m.method){var r=""===f(l)?e:e+"?"+f(l);n.maxUrlLength&&r.length>n.maxUrlLength?m.method="POST":e=r}return"POST"===m.method&&(m.body=h(l)),c(l)||(m.headers=new Headers,m.headers.append("Content-Type","application/x-www-form-urlencoded")),n.fetch(e,m)}).then(function(t){if(!t.ok){var r=t.status,a=t.statusText;throw new o(a,"HTTP "+r,t,e,n)}switch(l.f){case"json":case"geojson":return t.json();case"html":case"text":return t.text();case"image":case"zip":default:return t.blob()}}).then(function(t){return"json"===l.f||"geojson"===l.f?s(t,e,0,n):t})}function l(e){return void 0===e&&(e={}),e.portal?e.portal:e.authentication?e.authentication.portal:"https://www.arcgis.com/sharing/rest"}function m(e,t){var o=e||"self";return p(l(t)+"/portals/"+o,r({httpMethod:"GET"},t))}(n=e.ErrorTypes||(e.ErrorTypes={})).ArcGISRequestError="ArcGISRequestError",n.ArcGISAuthError="ArcGISAuthError",e.request=p,e.encodeFormData=h,e.encodeParam=u,e.encodeQueryString=f,e.checkForErrors=s,e.warn=function(e){console&&console.warn&&console.warn.apply(console,[e])},e.ArcGISRequestError=o,e.ArcGISAuthError=a,e.requiresFormData=c,e.processParams=i,e.getSelf=function(e){return m(null,e)},e.getPortal=m,e.getPortalUrl=l,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=request.umd.min.js.map |
{ | ||
"name": "@esri/arcgis-rest-request", | ||
"version": "1.5.1", | ||
"version": "1.6.0", | ||
"description": "Common methods and utilities for @esri/arcgis-rest-* packages.", | ||
@@ -5,0 +5,0 @@ "main": "dist/node/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
15
180076
63
1868