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

@superfaceai/one-sdk

Package Overview
Dependencies
Maintainers
3
Versions
138
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@superfaceai/one-sdk - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0-rc.0

7

CHANGELOG.md

@@ -9,3 +9,10 @@ # Changelog

## [Unreleased]
### Fixed
- Do not set `Accept` and `Content-Type` header when defined in [HTTP request headers](https://spec.superface.dev/latest/map-spec.html#HTTPHeaders) - [#264](https://github.com/superfaceai/one-sdk-js/issues/264)
- Replaced `isomorphic-form-data` with `form-data` package to fix `FormData` serialization - [#291](https://github.com/superfaceai/one-sdk-js/issues/291)
- Create valid `headersInit` shape in `NodeFetch.fetch`
### Added
- `multipart/form-data` supports array values to define duplicate fields
## [2.0.0] - 2022-08-15

@@ -12,0 +19,0 @@ ### Added

21

dist/core/interpreter/http/filters.js

@@ -210,3 +210,6 @@ "use strict";

else if (parameters.contentType === interfaces_1.FORMDATA_CONTENT) {
finalBody = interfaces_1.formDataBody(lib_1.variablesToStrings(parameters.body));
var body = lib_1.castToNonPrimitive(parameters.body);
if (body) {
finalBody = interfaces_1.formDataBody(body);
}
}

@@ -262,12 +265,12 @@ else if (parameters.contentType !== undefined &&

var headersFilter = function (_a) {
var _b, _c, _d, _e, _f, _g;
var _b, _c, _d;
var parameters = _a.parameters, request = _a.request, response = _a.response;
var headers = parameters.headers || {};
headers['accept'] = (_b = parameters.accept) !== null && _b !== void 0 ? _b : '*/*';
(_c = headers['user-agent']) !== null && _c !== void 0 ? _c : (headers['user-agent'] = user_agent_1.USER_AGENT);
var headers = (_b = parameters.headers) !== null && _b !== void 0 ? _b : {};
utils_1.setHeader(headers, 'user-agent', user_agent_1.USER_AGENT);
utils_1.setHeader(headers, 'accept', (_c = parameters.accept) !== null && _c !== void 0 ? _c : '*/*');
if (parameters.contentType === interfaces_1.JSON_CONTENT) {
(_d = headers['content-type']) !== null && _d !== void 0 ? _d : (headers['content-type'] = interfaces_1.JSON_CONTENT);
utils_1.setHeader(headers, 'content-type', interfaces_1.JSON_CONTENT);
}
else if (parameters.contentType === interfaces_1.URLENCODED_CONTENT) {
(_e = headers['content-type']) !== null && _e !== void 0 ? _e : (headers['content-type'] = interfaces_1.URLENCODED_CONTENT);
utils_1.setHeader(headers, 'content-type', interfaces_1.URLENCODED_CONTENT);
}

@@ -279,3 +282,3 @@ else if (parameters.contentType === interfaces_1.FORMDATA_CONTENT) {

interfaces_1.BINARY_CONTENT_REGEXP.test(parameters.contentType)) {
(_f = headers['Content-Type']) !== null && _f !== void 0 ? _f : (headers['Content-Type'] = parameters.contentType);
utils_1.setHeader(headers, 'content-type', parameters.contentType);
}

@@ -289,3 +292,3 @@ else {

], __read(interfaces_1.BINARY_CONTENT_TYPES));
throw errors_1.unsupportedContentType((_g = parameters.contentType) !== null && _g !== void 0 ? _g : '', supportedTypes);
throw errors_1.unsupportedContentType((_d = parameters.contentType) !== null && _d !== void 0 ? _d : '', supportedTypes);
}

@@ -292,0 +295,0 @@ }

@@ -8,3 +8,3 @@ /// <reference types="node" />

_type: 'formdata';
data: Record<string, string>;
data: Record<string, unknown>;
};

@@ -20,3 +20,3 @@ declare type BinaryBody = {

export declare const stringBody: (data: string) => StringBody;
export declare const formDataBody: (data: Record<string, string>) => FormDataBody;
export declare const formDataBody: (data: Record<string, unknown>) => FormDataBody;
export declare const urlSearchParamsBody: (data: Record<string, string>) => URLSearchParamsBody;

@@ -23,0 +23,0 @@ export declare const binaryBody: (data: Buffer) => BinaryBody;

@@ -12,1 +12,14 @@ import type { ILogger } from '../../../interfaces';

export declare function fetchRequest(fetchInstance: IFetch, request: HttpRequest, logger?: ILogger): Promise<HttpResponse>;
/**
* Get header value. For duplicate headers all delimited by `,` are returned
*/
export declare function getHeader(headers: NonPrimitive, headerName: string): string;
/**
* Checks in case-insensitive way if the given header is present
*/
export declare function hasHeader(headers: NonPrimitive, headerName: string): boolean;
export declare function setHeader(headers: NonPrimitive, headerName: string, value: string): void;
/**
* Deletes header
*/
export declare function deleteHeader(headers: NonPrimitive, headerName: string): void;

@@ -66,3 +66,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchRequest = exports.createUrl = void 0;
exports.deleteHeader = exports.setHeader = exports.hasHeader = exports.getHeader = exports.fetchRequest = exports.createUrl = void 0;
var lib_1 = require("../../../lib");

@@ -185,2 +185,40 @@ var errors_1 = require("../../errors");

exports.fetchRequest = fetchRequest;
/**
* Get header value. For duplicate headers all delimited by `,` are returned
*/
function getHeader(headers, headerName) {
var values = Object.entries(headers).flatMap(function (_a) {
var _b = __read(_a, 2), key = _b[0], value = _b[1];
if (key.toLowerCase() === headerName.toLowerCase()) {
return value;
}
return undefined;
}).filter(function (value) { return value !== undefined; });
return values.join(', ');
}
exports.getHeader = getHeader;
/**
* Checks in case-insensitive way if the given header is present
*/
function hasHeader(headers, headerName) {
return Object.keys(headers).some(function (header) { return header.toLowerCase() === headerName.toLowerCase(); });
}
exports.hasHeader = hasHeader;
function setHeader(headers, headerName, value) {
if (!hasHeader(headers, headerName)) {
headers[headerName] = value;
}
}
exports.setHeader = setHeader;
/**
* Deletes header
*/
function deleteHeader(headers, headerName) {
Object.keys(headers).forEach(function (header) {
if (header.toLowerCase() === headerName.toLowerCase()) {
delete headers[header];
}
});
}
exports.deleteHeader = deleteHeader;
//# sourceMappingURL=utils.js.map

@@ -276,3 +276,2 @@ "use strict";

});
accept = '';
if (responseHandlers.some(function (_a) {

@@ -279,0 +278,0 @@ var _b = __read(_a, 2), accept = _b[1];

@@ -1,2 +0,1 @@

import 'isomorphic-form-data';
import type { AuthCache, Events, FetchResponse, IFetch, Interceptable, InterceptableMetadata, ITimers } from '../../core';

@@ -19,2 +18,3 @@ import { FetchParameters } from '../../core';

private isBinaryContent;
private prepareHeadersInit;
}

@@ -93,7 +93,2 @@ "use strict";

};
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
to[j] = from[i];
return to;
};
var __values = (this && this.__values) || function(o) {

@@ -110,7 +105,10 @@ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;

};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NodeFetch = void 0;
require("isomorphic-form-data");
var abort_controller_1 = require("abort-controller");
var cross_fetch_1 = __importStar(require("cross-fetch"));
var form_data_1 = __importDefault(require("form-data"));
var core_1 = require("../../core");

@@ -130,13 +128,8 @@ var events_1 = require("../../core/events/events");

case 0:
headersInit = parameters.headers
? Object.entries(parameters.headers).map(function (_a) {
var _b = __read(_a, 2), key = _b[0], value = _b[1];
return __spreadArray([
key
], __read((Array.isArray(value) ? value : [value])));
})
: undefined;
headersInit = this.prepareHeadersInit(parameters.headers);
request = {
headers: new cross_fetch_1.Headers(headersInit),
method: parameters.method,
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore https://github.com/form-data/form-data/issues/513
body: this.body(parameters.body),

@@ -261,7 +254,12 @@ };

NodeFetch.prototype.formData = function (data) {
var formData = new FormData();
var formData = new form_data_1.default();
if (data) {
Object.entries(data).forEach(function (_a) {
var _b = __read(_a, 2), key = _b[0], value = _b[1];
return formData.append(key, value);
if (Array.isArray(value)) {
value.forEach(function (item) { return formData.append(key, item); });
}
else {
formData.append(key, value);
}
});

@@ -305,2 +303,18 @@ }

};
NodeFetch.prototype.prepareHeadersInit = function (data) {
if (data === undefined) {
return [];
}
var headers = [];
Object.entries(data).forEach(function (_a) {
var _b = __read(_a, 2), key = _b[0], value = _b[1];
if (Array.isArray(value)) {
value.forEach(function (val) { return headers.push([key, val]); });
}
else {
headers.push([key, value]);
}
});
return headers;
};
__decorate([

@@ -307,0 +321,0 @@ events_1.eventInterceptor({

{
"name": "@superfaceai/one-sdk",
"version": "2.0.0",
"version": "2.1.0-rc.0",
"description": "OneSDK is a universal API client which provides an unparalleled developer experience for every HTTP API",

@@ -73,5 +73,5 @@ "license": "MIT",

"debug": "^4.3.2",
"isomorphic-form-data": "^2.0.0",
"form-data": "^4.0.0",
"vm2": "^3.9.7"
}
}

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