New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@uppy/xhr-upload

Package Overview
Dependencies
Maintainers
5
Versions
115
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uppy/xhr-upload - npm Package Compare versions

Comparing version

to
0.30.4

19

lib/index.js

@@ -17,2 +17,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

Provider = _require2.Provider,
RequestClient = _require2.RequestClient,
Socket = _require2.Socket;

@@ -98,2 +99,11 @@

return new Error('Upload error');
},
/**
* @param {number} status the response status code
* @param {string} responseText the response body string
* @param {XMLHttpRequest | respObj} response the response object (XHR or similar)
*/
validateStatus: function validateStatus(status, responseText, response) {
return status >= 200 && status < 300;
}

@@ -252,3 +262,3 @@ };

if (ev.target.status >= 200 && ev.target.status < 300) {
if (opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {
var body = opts.getResponseData(xhr.responseText, xhr);

@@ -337,4 +347,5 @@ var uploadURL = body[opts.responseUrlFieldName];

var provider = new Provider(_this3.uppy, file.remote.providerOptions);
provider.post(file.remote.url, _extends({}, file.remote.body, {
var Client = file.remote.providerOptions.provider ? Provider : RequestClient;
var client = new Client(_this3.uppy, file.remote.providerOptions);
client.post(file.remote.url, _extends({}, file.remote.body, {
endpoint: opts.endpoint,

@@ -428,3 +439,3 @@ size: file.data.size,

if (ev.target.status >= 200 && ev.target.status < 300) {
if (_this4.opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {
var body = _this4.opts.getResponseData(xhr.responseText, xhr);

@@ -431,0 +442,0 @@ var uploadResp = {

{
"name": "@uppy/xhr-upload",
"description": "Plain and simple classic HTML multipart form uploads with Uppy, as well as uploads using the HTTP PUT method.",
"version": "0.30.3",
"version": "0.30.4",
"license": "MIT",

@@ -27,8 +27,8 @@ "main": "lib/index.js",

"dependencies": {
"@uppy/companion-client": "0.28.3",
"@uppy/utils": "0.30.3",
"@uppy/companion-client": "0.28.4",
"@uppy/utils": "0.30.4",
"cuid": "^2.1.1"
},
"devDependencies": {
"@uppy/core": "0.30.3"
"@uppy/core": "0.30.4"
},

@@ -38,3 +38,3 @@ "peerDependencies": {

},
"gitHead": "27899d944f0ffb551d0473955236734c24eb4fff"
"gitHead": "7ae8af44abdd42eef71c46b831b2e3dadb00237f"
}
const { Plugin } = require('@uppy/core')
const cuid = require('cuid')
const Translator = require('@uppy/utils/lib/Translator')
const { Provider, Socket } = require('@uppy/companion-client')
const { Provider, RequestClient, Socket } = require('@uppy/companion-client')
const emitSocketProgress = require('@uppy/utils/lib/emitSocketProgress')

@@ -78,2 +78,10 @@ const getSocketHost = require('@uppy/utils/lib/getSocketHost')

return new Error('Upload error')
},
/**
* @param {number} status the response status code
* @param {string} responseText the response body string
* @param {XMLHttpRequest | respObj} response the response object (XHR or similar)
*/
validateStatus (status, responseText, response) {
return status >= 200 && status < 300
}

@@ -232,3 +240,3 @@ }

if (ev.target.status >= 200 && ev.target.status < 300) {
if (opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {
const body = opts.getResponseData(xhr.responseText, xhr)

@@ -316,4 +324,5 @@ const uploadURL = body[opts.responseUrlFieldName]

const provider = new Provider(this.uppy, file.remote.providerOptions)
provider.post(
const Client = file.remote.providerOptions.provider ? Provider : RequestClient
const client = new Client(this.uppy, file.remote.providerOptions)
client.post(
file.remote.url,

@@ -409,3 +418,3 @@ Object.assign({}, file.remote.body, {

if (ev.target.status >= 200 && ev.target.status < 300) {
if (this.opts.validateStatus(ev.target.status, xhr.responseText, xhr)) {
const body = this.opts.getResponseData(xhr.responseText, xhr)

@@ -412,0 +421,0 @@ const uploadResp = {

@@ -37,2 +37,44 @@ const nock = require('nock')

})
describe('validateStatus', () => {
it('emit upload error under status code 200', () => {
nock('https://fake-endpoint.uppy.io')
.defaultReplyHeaders({
'access-control-allow-method': 'POST',
'access-control-allow-origin': '*'
})
.options('/').reply(200, {})
.post('/').reply(200, {
code: 40000,
message: 'custom upload error'
})
const core = new Core()
const validateStatus = jest.fn(function (status, responseText, response) {
return JSON.parse(responseText).code !== 40000
})
core.use(XHRUpload, {
id: 'XHRUpload',
endpoint: 'https://fake-endpoint.uppy.io',
some: 'option',
validateStatus,
getResponseError (responseText, xhr) {
return JSON.parse(responseText).message
}
})
core.addFile({
name: 'test.jpg',
data: new Blob([Buffer.alloc(8192)])
})
return core.upload().then(result => {
expect(validateStatus).toHaveBeenCalled()
expect(result.failed.length).toBeGreaterThan(0)
result.failed.forEach(file => {
expect(file.error).toEqual('custom upload error')
})
})
})
})
})