Comparing version 1.2.5 to 1.2.6
@@ -0,1 +1,2 @@ | ||
import * as tough_cookie from 'tough-cookie'; | ||
import { RequestlyOptions, RequestOptions, RequestlyResponse, MaybePromise, OnResponse } from './types.js'; | ||
@@ -6,9 +7,17 @@ | ||
private _headers; | ||
private _cookies; | ||
private _params?; | ||
private _storeCookies?; | ||
private _cookieJar; | ||
private _onRequest?; | ||
private _onResponse?; | ||
private _maxRedirects; | ||
constructor(opts?: RequestlyOptions | string); | ||
private _request; | ||
cookies: { | ||
serialize: () => tough_cookie.Cookie.Serialized[]; | ||
deserialize: (cookies: Record<string, string>[]) => void; | ||
get: (url: string) => Promise<string>; | ||
getAll: (url: string) => Promise<any[]>; | ||
set: (url: string, cookie: string) => Promise<void>; | ||
clear: () => void; | ||
}; | ||
get baseUrl(): string | undefined; | ||
@@ -26,10 +35,2 @@ set baseUrl(url: string | undefined); | ||
}; | ||
cookies: { | ||
set: (key: string, value: string) => void; | ||
get: (key: string) => string; | ||
getAll: () => Record<string, string>; | ||
remove: (key: string) => void; | ||
update: (cookies: Record<string, string>) => void; | ||
toString: () => string; | ||
}; | ||
get<T>(url: string, options?: Omit<RequestOptions, "body">): Promise<RequestlyResponse<T>>; | ||
@@ -36,0 +37,0 @@ post<T>(url: string, options?: RequestOptions): Promise<RequestlyResponse<T>>; |
@@ -1,1 +0,1 @@ | ||
var h="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36";function f(i){let e=new URLSearchParams(i).toString();return e?`?${e}`:""}function R(i){let e={},s=i.split(",").map(t=>t.trim().split(";")[0]).filter(t=>t?.includes("="));for(let t of s){let[u,n]=t.split("=");!u||!n||(e[u.trim()]=n.trim())}return e}function m(i){return Object.entries(i).map(([s,t])=>encodeURI(`${s}=${t}`)).join("; ")}function y(i){return!i||i instanceof FormData?"":i instanceof URLSearchParams?"application/x-www-form-urlencoded":i instanceof Blob||i instanceof ArrayBuffer||typeof ReadableStream<"u"&&i instanceof ReadableStream?"application/octet-stream":i instanceof URL?"text/uri-list":i instanceof Uint8Array?"application/octet-stream":typeof i.uri=="string"&&typeof i.type=="string"?i.type||"application/octet-stream":"application/json"}var p=class i{constructor(e){this._headers={};this._cookies={};this._params={};this.headers={set:(e,s)=>{this._headers[e]=s},get:e=>this._headers[e],getAll:()=>this._headers,remove:e=>{delete this._headers[e]},update:e=>{this._headers={...e,...this._headers}}};this.cookies={set:(e,s)=>{this._cookies[e]=s},get:e=>this._cookies[e],getAll:()=>this._cookies,remove:e=>{delete this._cookies[e]},update:e=>{this._cookies={...e,...this._cookies}},toString:()=>m(this.cookies.getAll())};if(typeof e=="string"){this._baseUrl=e;return}this._baseUrl=e?.baseUrl??"",this._headers=e?.headers??{},this._cookies=e?.cookies??{},this._params=e?.params??{},this._storeCookies=e?.storeCookies??!0,this._headers["User-Agent"]=e?.userAgent??h,this._onRequest=e?.onRequest}async _request(e,s,t){if(e.startsWith("/")&&this._baseUrl==null)throw new Error("Cannot make request with relative URL without a base URL");let u=f({...t?.params,...this._params}),n=`${this._baseUrl}${e}${u}`;n.endsWith("/")&&(n=n.slice(0,-1));let l=y(t?.body),_={...l?{"Content-Type":l}:{},...t?.headers},d=this.cookies.toString(),o={method:s,headers:{...this.headers.getAll(),..._,...d?{Cookie:d}:{}},body:typeof t?.body=="object"&&!(t?.body instanceof FormData)&&!(t?.body instanceof URLSearchParams)&&!(t?.body instanceof Blob)&&!(t?.body instanceof ArrayBuffer)&&(typeof ReadableStream>"u"||!(t?.body instanceof ReadableStream))&&!(t?.body instanceof URL)&&!(t?.body instanceof Uint8Array)?JSON.stringify(t?.body):t?.body},g=await this._onRequest?.(n,o);o={...o,...g,headers:{...o.headers,...g?.headers}};let c=await fetch(n,o).then(async r=>{let{headers:a}=r,b=a.get("Content-Type")?.includes("application/json"),k=R(a.get("Set-Cookie")||"");return{...r,url:r.url,ok:r.ok,redirected:r.redirected,status:r.status,statusText:r.statusText,request:{url:e,method:s,options:o},headers:a,cookies:k,data:await(b?r.json():r.text())}});if(this._storeCookies&&Object.entries(c.cookies).forEach(([r,a])=>{this.cookies.set(r,a)}),this._onResponse){let r=await this._onResponse(n,o,c);if(r)return r?.headers instanceof Headers?r:{...c,data:r}}return c}get baseUrl(){return this._baseUrl}set baseUrl(e){this._baseUrl=e}create(e){return new i(e)}get params(){return this._params}set params(e){this._params=e}get(e,s){return this._request(e,"GET",s)}post(e,s){return this._request(e,"POST",s)}put(e,s){return this._request(e,"PUT",s)}delete(e,s){return this._request(e,"DELETE",s)}patch(e,s){return this._request(e,"PATCH",s)}onRequest(e){this._onRequest=e}onResponse(e){this._onResponse=e}},T=new p,U=T;export{p as Requestly,U as default,T as requestly}; | ||
import{CookieJar as c}from"tough-cookie";import{splitCookiesString as w}from"set-cookie-parser";var m="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36";function y(s){let e=new URLSearchParams(s).toString();return e?`?${e}`:""}function _(s){return!s||s instanceof FormData?"":s instanceof URLSearchParams?"application/x-www-form-urlencoded":s instanceof Blob||s instanceof ArrayBuffer||typeof ReadableStream<"u"&&s instanceof ReadableStream?"application/octet-stream":s instanceof URL?"text/uri-list":s instanceof Uint8Array?"application/octet-stream":typeof s.uri=="string"&&typeof s.type=="string"?s.type||"application/octet-stream":"application/json"}var C=new Set([301,302,303,307,308]),p=class s{constructor(e){this._headers={};this._params={};this.cookies={serialize:()=>this._cookieJar.serializeSync().cookies,deserialize:e=>{this._cookieJar=c.deserializeSync({rejectPublicSuffixes:!0,storeType:"MemoryCookieStore",version:"tough-cookie@4.1.4",cookies:e})},get:async e=>this._cookieJar.getCookieString(e),getAll:async e=>this._cookieJar.getCookies(e),set:async(e,t)=>{await this._cookieJar.setCookie(t,e)},clear:()=>{this._cookieJar=new c}};this.headers={set:(e,t)=>{this._headers[e]=t},get:e=>this._headers[e],getAll:()=>this._headers,remove:e=>{delete this._headers[e]},update:e=>{this._headers={...e,...this._headers}}};if(typeof e=="string"){this._baseUrl=e,this._cookieJar=new c,this._maxRedirects=20;return}this._baseUrl=e?.baseUrl??"",this._headers=e?.headers??{},this._params=e?.params??{},this._cookieJar=new c,e?.cookies&&this.cookies.deserialize(e.cookies),this._headers["User-Agent"]=e?.userAgent??m,this._onRequest=e?.onRequest,this._maxRedirects=e?.maxRedirects??20}async _request(e,t,i,u=0){if(e.startsWith("/")&&this._baseUrl==null)throw new Error("Cannot make request with relative URL without a base URL");let b=y({...i?.params,...this._params}),n=`${this._baseUrl}${e}${b}`;n.endsWith("/")&&(n=n.slice(0,-1));let g=_(i?.body),k={...g?{"Content-Type":g}:{},...i?.headers},h=await this._cookieJar.getCookieString(n),o={method:t,headers:{...this.headers.getAll(),...k,...h?{Cookie:h}:{}},body:typeof i?.body=="object"&&!(i?.body instanceof FormData)&&!(i?.body instanceof URLSearchParams)&&!(i?.body instanceof Blob)&&!(i?.body instanceof ArrayBuffer)&&(typeof ReadableStream>"u"||!(i?.body instanceof ReadableStream))&&!(i?.body instanceof URL)&&!(i?.body instanceof Uint8Array)?JSON.stringify(i?.body):i?.body},f=await this._onRequest?.(n,o);o={...o,...f,headers:{...o.headers,...f?.headers},redirect:"manual"};let r=await fetch(n,o),R=r.headers.get("Set-Cookie");if(R){let a=w(R);for(let l of a)await this._cookieJar.setCookie(l,n,{ignoreError:!0})}if(C.has(r.status)&&u<this._maxRedirects){let a=r.headers.get("Location");if(a){let l=new URL(a,n).toString(),T=r.status===303?"GET":t,U=r.status===303?void 0:i?.body;return this._request(l,T,{...i,body:U},u+1)}}let q=r.headers.get("Content-Type")?.includes("application/json"),d={...r,url:r.url,ok:r.ok,redirected:u>0,status:r.status,statusText:r.statusText,request:{url:e,method:t,options:o},headers:r.headers,data:await(q?r.json():r.text())};if(this._onResponse){let a=await this._onResponse(n,o,d);if(a)return a?.headers instanceof Headers?a:{...d,data:a}}return d}get baseUrl(){return this._baseUrl}set baseUrl(e){this._baseUrl=e}create(e){return new s(e)}get params(){return this._params}set params(e){this._params=e}get(e,t){return this._request(e,"GET",t)}post(e,t){return this._request(e,"POST",t)}put(e,t){return this._request(e,"PUT",t)}delete(e,t){return this._request(e,"DELETE",t)}patch(e,t){return this._request(e,"PATCH",t)}onRequest(e){this._onRequest=e}onResponse(e){this._onResponse=e}},x=new p,v=x;export{p as Requestly,v as default,x as requestly}; |
@@ -7,5 +7,5 @@ type RequestMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH"; | ||
headers?: Record<string, string>; | ||
cookies?: Record<string, string>; | ||
params?: Record<string, string>; | ||
storeCookies?: boolean; | ||
cookies?: Record<string, string>[]; | ||
maxRedirects?: number; | ||
onRequest?: (url: string, init: RequestInit) => MaybePromise<RequestInit | void>; | ||
@@ -27,3 +27,2 @@ onResponse?: OnResponse; | ||
}; | ||
cookies: Record<string, string>; | ||
data: T; | ||
@@ -30,0 +29,0 @@ } |
{ | ||
"name": "requestly", | ||
"version": "1.2.5", | ||
"version": "1.2.6", | ||
"description": "A minimal, but powerful HTTP Client for Node.js", | ||
@@ -28,2 +28,4 @@ "publishConfig": { | ||
"devDependencies": { | ||
"@types/set-cookie-parser": "^2.4.10", | ||
"@types/tough-cookie": "^4.0.5", | ||
"tsup": "8.0.1", | ||
@@ -50,2 +52,6 @@ "typescript": "5.3.3" | ||
], | ||
"dependencies": { | ||
"set-cookie-parser": "^2.6.0", | ||
"tough-cookie": "^4.1.4" | ||
}, | ||
"scripts": { | ||
@@ -52,0 +58,0 @@ "dev": "tsup --watch", |
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
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
20676
104
2
4
1
+ Addedset-cookie-parser@^2.6.0
+ Addedtough-cookie@^4.1.4
+ Addedpsl@1.15.0(transitive)
+ Addedpunycode@2.3.1(transitive)
+ Addedquerystringify@2.2.0(transitive)
+ Addedrequires-port@1.0.0(transitive)
+ Addedset-cookie-parser@2.7.1(transitive)
+ Addedtough-cookie@4.1.4(transitive)
+ Addeduniversalify@0.2.0(transitive)
+ Addedurl-parse@1.5.10(transitive)