@crawly/browser
Advanced tools
Comparing version 1.0.1 to 1.0.2
@@ -5,5 +5,5 @@ export interface IHeader { | ||
export interface IBrowser { | ||
setHeaders(): void; | ||
resetHeaders(): void; | ||
getHeaders(): IHeader; | ||
mergeHeaders(headers: IHeader, value: IHeader): IHeader; | ||
mergeHeaders(value: IHeader): IHeader; | ||
getRandomAccept(): string; | ||
@@ -16,10 +16,9 @@ getRandomAcceptLanguage(): string; | ||
private headers; | ||
static readonly BASE_HEADERS: IHeader; | ||
static readonly ACCEPT_VALUES: string[]; | ||
static readonly ACCEPT_LANGUAGE_VALUES: string[]; | ||
static readonly REFERER_VALUES: string[]; | ||
constructor(); | ||
setHeaders(): void; | ||
readonly BASE_HEADERS: IHeader; | ||
readonly ACCEPT_VALUES: string[]; | ||
readonly ACCEPT_LANGUAGE_VALUES: string[]; | ||
readonly REFERER_VALUES: string[]; | ||
resetHeaders(): void; | ||
getHeaders(): IHeader; | ||
mergeHeaders(headers: IHeader, value: IHeader): IHeader; | ||
mergeHeaders(value: IHeader): IHeader; | ||
getRandomAccept(): string; | ||
@@ -26,0 +25,0 @@ getRandomAcceptLanguage(): string; |
@@ -10,6 +10,32 @@ "use strict"; | ||
constructor() { | ||
this.setHeaders(); | ||
this.BASE_HEADERS = { | ||
Pragma: 'no-cache', | ||
Connection: 'keep-alive', | ||
'Accept-Encoding': 'gzip, deflate, br', | ||
'Content-Type': 'application/json; charset=UTF-8', | ||
'Cache-Control': 'no-cache', | ||
'Upgrade-Insecure-Requests': 1, | ||
'X-Requested-With': 'XMLHttpRequest', | ||
}; | ||
this.ACCEPT_VALUES = [ | ||
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', | ||
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', | ||
]; | ||
this.ACCEPT_LANGUAGE_VALUES = [ | ||
'en-US,en;q=0.5', | ||
'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3', | ||
'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,fr;q=0.5', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,es;q=0.4', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,pt;q=0.6,fr;q=0.5,es;q=0.4', | ||
]; | ||
this.REFERER_VALUES = [ | ||
'https://www.google.com', | ||
'https://www.facebook.com', | ||
'https://www.twitter.com', | ||
]; | ||
} | ||
setHeaders() { | ||
this.headers = Browser.BASE_HEADERS; | ||
resetHeaders() { | ||
this.headers = Object.assign({}, this.BASE_HEADERS); | ||
this.headers['Accept'] = this.getRandomAccept(); | ||
@@ -21,15 +47,19 @@ this.headers['Accept-Language'] = this.getRandomAcceptLanguage(); | ||
getHeaders() { | ||
if (!this.headers) { | ||
this.resetHeaders(); | ||
} | ||
return Object.assign({}, this.headers); | ||
} | ||
mergeHeaders(headers, value) { | ||
mergeHeaders(value) { | ||
const headers = this.getHeaders(); | ||
return Object.assign({}, headers, value); | ||
} | ||
getRandomAccept() { | ||
return lodash_1.sample(Browser.ACCEPT_VALUES); | ||
return lodash_1.sample(this.ACCEPT_VALUES); | ||
} | ||
getRandomAcceptLanguage() { | ||
return lodash_1.sample(Browser.ACCEPT_LANGUAGE_VALUES); | ||
return lodash_1.sample(this.ACCEPT_LANGUAGE_VALUES); | ||
} | ||
getRandomReferer() { | ||
return lodash_1.sample(Browser.REFERER_VALUES); | ||
return lodash_1.sample(this.REFERER_VALUES); | ||
} | ||
@@ -41,28 +71,2 @@ getRandomUserAgent() { | ||
} | ||
Browser.BASE_HEADERS = { | ||
Pragma: 'no-cache', | ||
Connection: 'keep-alive', | ||
'Accept-Encoding': 'gzip, deflate, br', | ||
'Content-Type': 'application/json; charset=UTF-8', | ||
'Cache-Control': 'no-cache', | ||
'Upgrade-Insecure-Requests': 1, | ||
'X-Requested-With': 'XMLHttpRequest', | ||
}; | ||
Browser.ACCEPT_VALUES = [ | ||
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', | ||
'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', | ||
]; | ||
Browser.ACCEPT_LANGUAGE_VALUES = [ | ||
'en-US,en;q=0.5', | ||
'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,fr;q=0.5', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,es;q=0.4', | ||
'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7,pt;q=0.6,fr;q=0.5,es;q=0.4', | ||
]; | ||
Browser.REFERER_VALUES = [ | ||
'https://www.google.com', | ||
'https://www.facebook.com', | ||
'https://www.twitter.com', | ||
]; | ||
exports.Browser = Browser; |
{ | ||
"name": "@crawly/browser", | ||
"description": "lib to encapsulate browser data", | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"main": "dist/index", | ||
@@ -6,0 +6,0 @@ "types": "dist/index.d.ts", |
@@ -12,5 +12,5 @@ import { sample } from 'lodash'; | ||
export interface IBrowser { | ||
setHeaders(): void; | ||
resetHeaders(): void; | ||
getHeaders(): IHeader; | ||
mergeHeaders(headers: IHeader, value: IHeader): IHeader; | ||
mergeHeaders(value: IHeader): IHeader; | ||
getRandomAccept(): string; | ||
@@ -22,6 +22,6 @@ getRandomAcceptLanguage(): string; | ||
export class Browser implements IBrowser{ | ||
export class Browser implements IBrowser { | ||
private headers: IHeader; | ||
public static readonly BASE_HEADERS: IHeader = { | ||
public readonly BASE_HEADERS: IHeader = { | ||
Pragma: 'no-cache', | ||
@@ -36,3 +36,3 @@ Connection: 'keep-alive', | ||
public static readonly ACCEPT_VALUES: string[] = [ | ||
public readonly ACCEPT_VALUES: string[] = [ | ||
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', | ||
@@ -42,4 +42,5 @@ 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', | ||
public static readonly ACCEPT_LANGUAGE_VALUES: string[] = [ | ||
public readonly ACCEPT_LANGUAGE_VALUES: string[] = [ | ||
'en-US,en;q=0.5', | ||
'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3', | ||
'pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7', | ||
@@ -52,3 +53,3 @@ 'en-GB,en;q=0.9,en-US;q=0.8,pt-BR;q=0.7', | ||
public static readonly REFERER_VALUES = [ | ||
public readonly REFERER_VALUES = [ | ||
'https://www.google.com', | ||
@@ -59,8 +60,5 @@ 'https://www.facebook.com', | ||
constructor() { | ||
this.setHeaders(); | ||
} | ||
public resetHeaders(): void { | ||
this.headers = Object.assign({}, this.BASE_HEADERS); | ||
public setHeaders(): void { | ||
this.headers = Browser.BASE_HEADERS; | ||
this.headers['Accept'] = this.getRandomAccept(); | ||
@@ -73,6 +71,12 @@ this.headers['Accept-Language'] = this.getRandomAcceptLanguage(); | ||
public getHeaders(): IHeader { | ||
if (!this.headers) { | ||
this.resetHeaders(); | ||
} | ||
return Object.assign({}, this.headers); | ||
} | ||
public mergeHeaders (headers: IHeader, value: IHeader): IHeader { | ||
public mergeHeaders(value: IHeader): IHeader { | ||
const headers = this.getHeaders(); | ||
return <IHeader> { | ||
@@ -85,11 +89,11 @@ ...headers, | ||
public getRandomAccept(): string { | ||
return <string> sample(Browser.ACCEPT_VALUES); | ||
return <string> sample(this.ACCEPT_VALUES); | ||
} | ||
public getRandomAcceptLanguage(): string { | ||
return <string> sample(Browser.ACCEPT_LANGUAGE_VALUES); | ||
return <string> sample(this.ACCEPT_LANGUAGE_VALUES); | ||
} | ||
public getRandomReferer(): string { | ||
return <string> sample(Browser.REFERER_VALUES); | ||
return <string> sample(this.REFERER_VALUES); | ||
} | ||
@@ -96,0 +100,0 @@ |
@@ -32,5 +32,5 @@ import { expect } from 'chai'; | ||
it('setHeaders must change headers', () => { | ||
it('resetHeaders must change headers', () => { | ||
const headers = browser.getHeaders(); | ||
browser.setHeaders(); | ||
browser.resetHeaders(); | ||
const headersChanged = browser.getHeaders(); | ||
@@ -43,7 +43,8 @@ | ||
const headers = browser.getHeaders(); | ||
browser.setHeaders(); | ||
browser.resetHeaders(); | ||
const headersChanged = browser.getHeaders(); | ||
const mergedHeaders = browser.mergeHeaders(headers, headersChanged); | ||
const mergedHeaders = browser.mergeHeaders(headers); | ||
expect(mergedHeaders).to.eql(headersChanged); | ||
expect(mergedHeaders).to.eql(headers) | ||
.and.to.not.eql(headersChanged); | ||
}); | ||
@@ -54,3 +55,3 @@ | ||
expect(Browser.ACCEPT_VALUES).to.include(accept); | ||
expect(browser.ACCEPT_VALUES).to.include(accept); | ||
}); | ||
@@ -61,3 +62,3 @@ | ||
expect(Browser.ACCEPT_LANGUAGE_VALUES).to.include(acceptLanguage); | ||
expect(browser.ACCEPT_LANGUAGE_VALUES).to.include(acceptLanguage); | ||
}); | ||
@@ -68,3 +69,3 @@ | ||
expect(Browser.REFERER_VALUES).to.include(referer); | ||
expect(browser.REFERER_VALUES).to.include(referer); | ||
}); | ||
@@ -71,0 +72,0 @@ |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
20463
511
1