Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@esri/arcgis-rest-request

Package Overview
Dependencies
Maintainers
16
Versions
130
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@esri/arcgis-rest-request - npm Package Compare versions

Comparing version 1.5.1 to 1.6.0

dist/.DS_Store

16

dist/esm/request.d.ts

@@ -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>;

10

dist/esm/request.js

@@ -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 @@ })

8

dist/esm/utils/encode-form-data.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc