🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@arcjet/headers

Package Overview
Dependencies
Maintainers
2
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@arcjet/headers - npm Package Compare versions

Comparing version
1.6.1
to
1.7.0-rc.0
+44
dist/index.d.ts
//#region src/index.d.ts
type HeadersInit = Headers | Array<[string, string]> | Record<string, Array<string> | string | undefined>;
/**
* Arcjet headers.
*
* This exists to prevent the `cookie` header from being set
* and non-string values from being set.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers).
*/
declare class ArcjetHeaders extends Headers {
constructor(init?: HeadersInit | undefined);
/**
* Append a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)
*
* @param key
* Header name.
* @param value
* Header value.
* @returns
* Nothing.
*/
append: (key: string, value: string) => void;
/**
* Set a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)
*
* @param key
* Header key.
* @param value
* Header value.
* @returns
* Nothing.
*/
set: (key: string, value: string) => void;
}
//#endregion
export { ArcjetHeaders, ArcjetHeaders as default };
//#region src/index.ts
function isIterable(val) {
return typeof val?.[Symbol.iterator] === "function";
}
/**
* Arcjet headers.
*
* This exists to prevent the `cookie` header from being set
* and non-string values from being set.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers).
*/
var ArcjetHeaders = class extends Headers {
constructor(init) {
super();
if (typeof init !== "undefined" && typeof init !== "string" && init !== null) if (isIterable(init)) for (const [key, value] of init) this.append(key, value);
else for (const [key, value] of Object.entries(init)) {
if (typeof value === "undefined") continue;
if (Array.isArray(value)) for (const singleValue of value) this.append(key, singleValue);
else this.append(key, value);
}
}
/**
* Append a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)
*
* @param key
* Header name.
* @param value
* Header value.
* @returns
* Nothing.
*/
append = (key, value) => {
if (typeof key !== "string" || typeof value !== "string") return;
if (key.toLowerCase() !== "cookie") Headers.prototype.append.call(this, key, value);
};
/**
* Set a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)
*
* @param key
* Header key.
* @param value
* Header value.
* @returns
* Nothing.
*/
set = (key, value) => {
if (typeof key !== "string" || typeof value !== "string") return;
if (key.toLowerCase() !== "cookie") Headers.prototype.set.call(this, key, value);
};
};
//#endregion
export { ArcjetHeaders, ArcjetHeaders as default };
+32
-29
{
"name": "@arcjet/headers",
"version": "1.6.1",
"version": "1.7.0-rc.0",
"description": "Arcjet extension of the Headers class",

@@ -8,12 +8,6 @@ "keywords": [

"headers",
"utility",
"util"
"util",
"utility"
],
"license": "Apache-2.0",
"homepage": "https://arcjet.com",
"repository": {
"type": "git",
"url": "git+https://github.com/arcjet/arcjet-js.git",
"directory": "headers"
},
"bugs": {

@@ -23,2 +17,3 @@ "url": "https://github.com/arcjet/arcjet-js/issues",

},
"license": "Apache-2.0",
"author": {

@@ -29,32 +24,40 @@ "name": "Arcjet",

},
"engines": {
"node": ">=22.21.0 <23 || >=24.5.0"
"repository": {
"type": "git",
"url": "git+https://github.com/arcjet/arcjet-js.git",
"directory": "headers"
},
"type": "module",
"main": "./index.js",
"types": "./index.d.ts",
"files": [
"index.d.ts",
"index.js"
"dist"
],
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
},
"./package.json": "./package.json"
},
"publishConfig": {
"access": "public",
"tag": "latest"
},
"scripts": {
"build": "rollup --config rollup.config.js",
"lint": "eslint .",
"test-api": "node --test -- test/*.test.js",
"test-coverage": "node --experimental-test-coverage --test -- test/*.test.js",
"test": "npm run build && npm run lint && npm run test-coverage"
"build": "tsdown",
"typecheck": "tsgo --noEmit",
"test-api": "node --test -- test/*.test.ts",
"test-coverage": "node --experimental-test-coverage --test -- test/*.test.ts",
"test": "npm run build && npm run test-coverage"
},
"dependencies": {},
"devDependencies": {
"@arcjet/eslint-config": "1.6.1",
"@arcjet/rollup-config": "1.6.1",
"@rollup/wasm-node": "4.62.2",
"@types/node": "22.19.21",
"eslint": "9.39.4",
"typescript": "5.9.3"
"tsdown": "0.22.3",
"typescript": "6.0.3"
},
"publishConfig": {
"access": "public",
"tag": "latest"
"engines": {
"node": ">=22.21.0 <23 || >=24.5.0"
}
}
type HeadersInit = Headers | Array<[string, string]> | Record<string, Array<string> | string | undefined>;
/**
* Arcjet headers.
*
* This exists to prevent the `cookie` header from being set
* and non-string values from being set.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers).
*/
export declare class ArcjetHeaders extends Headers {
constructor(init?: HeadersInit | undefined);
/**
* Append a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)
*
* @param key
* Header name.
* @param value
* Header value.
* @returns
* Nothing.
*/
append: (key: string, value: string) => void;
/**
* Set a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)
*
* @param key
* Header key.
* @param value
* Header value.
* @returns
* Nothing.
*/
set: (key: string, value: string) => void;
}
/**
* @deprecated
* Use the named export `ArcjetHeaders` instead.
*/
export default ArcjetHeaders;
function isIterable(val) {
return typeof val?.[Symbol.iterator] === "function";
}
/**
* Arcjet headers.
*
* This exists to prevent the `cookie` header from being set
* and non-string values from being set.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers).
*/
class ArcjetHeaders extends Headers {
constructor(init) {
super();
if (typeof init !== "undefined" &&
typeof init !== "string" &&
init !== null) {
if (isIterable(init)) {
for (const [key, value] of init) {
this.append(key, value);
}
}
else {
for (const [key, value] of Object.entries(init)) {
if (typeof value === "undefined") {
continue;
}
if (Array.isArray(value)) {
for (const singleValue of value) {
this.append(key, singleValue);
}
}
else {
this.append(key, value);
}
}
}
}
}
/**
* Append a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/append)
*
* @param key
* Header name.
* @param value
* Header value.
* @returns
* Nothing.
*/
append = (key, value) => {
if (typeof key !== "string" || typeof value !== "string") {
return;
}
if (key.toLowerCase() !== "cookie") {
Headers.prototype.append.call(this, key, value);
}
};
/**
* Set a header while ignoring `cookie`.
*
* @see
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Headers/set)
*
* @param key
* Header key.
* @param value
* Header value.
* @returns
* Nothing.
*/
set = (key, value) => {
if (typeof key !== "string" || typeof value !== "string") {
return;
}
if (key.toLowerCase() !== "cookie") {
Headers.prototype.set.call(this, key, value);
}
};
}
export { ArcjetHeaders, ArcjetHeaders as default };