Socket
Socket
Sign inDemoInstall

cheerio

Package Overview
Dependencies
Maintainers
2
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cheerio - npm Package Compare versions

Comparing version 1.0.0-rc.11 to 1.0.0-rc.12

4

lib/api/attributes.d.ts

@@ -106,3 +106,3 @@ /**

/** Get a parsed CSS style object. */
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp;
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp | undefined;
/**

@@ -115,3 +115,3 @@ * Resolve `href` or `src` of supported elements. Requires the `baseURI` option

* ```js
* $('<img src="image.png">).prop('src');
* $('<img src="image.png">').prop('src');
* //=> 'https://example.com/image.png'

@@ -118,0 +118,0 @@ * ```

@@ -112,4 +112,2 @@ "use strict";

function getProp(el, name, xmlMode) {
if (!el || !(0, utils_js_1.isTag)(el))
return;
return name in el

@@ -143,2 +141,5 @@ ? // @ts-expect-error TS doesn't like us accessing the value directly here.

if (typeof name === 'string' && value === undefined) {
var el = this[0];
if (!el || !(0, utils_js_1.isTag)(el))
return undefined;
switch (name) {

@@ -156,11 +157,6 @@ case 'style': {

case 'nodeName': {
var el = this[0];
return (0, utils_js_1.isTag)(el) ? el.name.toUpperCase() : undefined;
return el.name.toUpperCase();
}
case 'href':
case 'src': {
var el = this[0];
if (!(0, utils_js_1.isTag)(el)) {
return undefined;
}
var prop_1 = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name];

@@ -183,6 +179,8 @@ /* eslint-disable node/no-unsupported-features/node-builtins */

}
case 'innerText':
return (0, domutils_1.innerText)(this[0]);
case 'textContent':
return (0, domutils_1.textContent)(this[0]);
case 'innerText': {
return (0, domutils_1.innerText)(el);
}
case 'textContent': {
return (0, domutils_1.textContent)(el);
}
case 'outerHTML':

@@ -193,3 +191,3 @@ return this.clone().wrap('<container />').parent().html();

default:
return getProp(this[0], name, this.options.xmlMode);
return getProp(el, name, this.options.xmlMode);
}

@@ -196,0 +194,0 @@ }

@@ -44,3 +44,3 @@ /**

*/
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -64,3 +64,3 @@ * Get a set of parents filtered by `selector` of each element in the current

*/
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -83,3 +83,3 @@ * Get the ancestors of each element in the current set of matched elements, up

*/
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -126,3 +126,3 @@ * For each element in the set, get the first element that matches the selector

*/
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -146,3 +146,3 @@ * Gets all the following siblings of the first selected element, optionally

*/
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -165,3 +165,3 @@ * Gets all the following siblings up to but not including the element matched

*/
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -183,3 +183,3 @@ * Gets the previous sibling of the first selected element optionally filtered

*/
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -204,3 +204,3 @@ * Gets all the preceding siblings of the first selected element, optionally

*/
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -223,3 +223,3 @@ * Gets all the preceding siblings up to but not including the element matched

*/
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -244,3 +244,3 @@ * Get the siblings of each element (excluding the element) in the set of

*/
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -264,3 +264,3 @@ * Gets the element children of each element in the set of matched elements.

*/
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -596,5 +596,5 @@ * Gets the children of each element in the set of matched elements, including

*
* @param start - An position at which the elements begin to be selected. If
* @param start - A position at which the elements begin to be selected. If
* negative, it indicates an offset from the end of the set.
* @param end - An position at which the elements stop being selected. If
* @param end - A position at which the elements stop being selected. If
* negative, it indicates an offset from the end of the set. If omitted, the

@@ -601,0 +601,0 @@ * range continues until the end of the set.

@@ -831,5 +831,5 @@ "use strict";

*
* @param start - An position at which the elements begin to be selected. If
* @param start - A position at which the elements begin to be selected. If
* negative, it indicates an offset from the end of the set.
* @param end - An position at which the elements stop being selected. If
* @param end - A position at which the elements stop being selected. If
* negative, it indicates an offset from the end of the set. If omitted, the

@@ -836,0 +836,0 @@ * range continues until the end of the set.

@@ -106,3 +106,3 @@ /**

/** Get a parsed CSS style object. */
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp;
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp | undefined;
/**

@@ -115,3 +115,3 @@ * Resolve `href` or `src` of supported elements. Requires the `baseURI` option

* ```js
* $('<img src="image.png">).prop('src');
* $('<img src="image.png">').prop('src');
* //=> 'https://example.com/image.png'

@@ -118,0 +118,0 @@ * ```

@@ -108,4 +108,2 @@ /**

function getProp(el, name, xmlMode) {
if (!el || !isTag(el))
return;
return name in el

@@ -138,2 +136,5 @@ ? // @ts-expect-error TS doesn't like us accessing the value directly here.

if (typeof name === 'string' && value === undefined) {
const el = this[0];
if (!el || !isTag(el))
return undefined;
switch (name) {

@@ -151,11 +152,6 @@ case 'style': {

case 'nodeName': {
const el = this[0];
return isTag(el) ? el.name.toUpperCase() : undefined;
return el.name.toUpperCase();
}
case 'href':
case 'src': {
const el = this[0];
if (!isTag(el)) {
return undefined;
}
const prop = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name];

@@ -178,6 +174,8 @@ /* eslint-disable node/no-unsupported-features/node-builtins */

}
case 'innerText':
return innerText(this[0]);
case 'textContent':
return textContent(this[0]);
case 'innerText': {
return innerText(el);
}
case 'textContent': {
return textContent(el);
}
case 'outerHTML':

@@ -188,3 +186,3 @@ return this.clone().wrap('<container />').parent().html();

default:
return getProp(this[0], name, this.options.xmlMode);
return getProp(el, name, this.options.xmlMode);
}

@@ -191,0 +189,0 @@ }

@@ -44,3 +44,3 @@ /**

*/
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -64,3 +64,3 @@ * Get a set of parents filtered by `selector` of each element in the current

*/
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -83,3 +83,3 @@ * Get the ancestors of each element in the current set of matched elements, up

*/
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -126,3 +126,3 @@ * For each element in the set, get the first element that matches the selector

*/
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -146,3 +146,3 @@ * Gets all the following siblings of the first selected element, optionally

*/
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -165,3 +165,3 @@ * Gets all the following siblings up to but not including the element matched

*/
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -183,3 +183,3 @@ * Gets the previous sibling of the first selected element optionally filtered

*/
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -204,3 +204,3 @@ * Gets all the preceding siblings of the first selected element, optionally

*/
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -223,3 +223,3 @@ * Gets all the preceding siblings up to but not including the element matched

*/
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null | undefined, filterSelector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -244,3 +244,3 @@ * Get the siblings of each element (excluding the element) in the set of

*/
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -264,3 +264,3 @@ * Gets the element children of each element in the set of matched elements.

*/
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | undefined) => Cheerio<Element>;
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
/**

@@ -596,5 +596,5 @@ * Gets the children of each element in the set of matched elements, including

*
* @param start - An position at which the elements begin to be selected. If
* @param start - A position at which the elements begin to be selected. If
* negative, it indicates an offset from the end of the set.
* @param end - An position at which the elements stop being selected. If
* @param end - A position at which the elements stop being selected. If
* negative, it indicates an offset from the end of the set. If omitted, the

@@ -601,0 +601,0 @@ * range continues until the end of the set.

@@ -759,5 +759,5 @@ /**

*
* @param start - An position at which the elements begin to be selected. If
* @param start - A position at which the elements begin to be selected. If
* negative, it indicates an offset from the end of the set.
* @param end - An position at which the elements stop being selected. If
* @param end - A position at which the elements stop being selected. If
* negative, it indicates an offset from the end of the set. If omitted, the

@@ -764,0 +764,0 @@ * range continues until the end of the set.

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

export declare const load: (content: string | import("domhandler").AnyNode | import("domhandler").AnyNode[] | Buffer, options?: import("./options.js").CheerioOptions | null | undefined, isDocument?: boolean) => import("./load.js").CheerioAPI;
declare const _default: import("./load.js").CheerioAPI;
/**

@@ -43,2 +42,3 @@ * The default cheerio instance.

*/
declare const _default: import("./load.js").CheerioAPI;
export default _default;

@@ -45,0 +45,0 @@ export { html, xml, text } from './static.js';

@@ -58,4 +58,4 @@ /// <reference types="node" />

}
export declare function getLoad(parse: typeof Cheerio.prototype._parse, render: (dom: AnyNode | ArrayLike<AnyNode>, options: InternalOptions) => string): (content: string | AnyNode | AnyNode[] | Buffer, options?: CheerioOptions | null | undefined, isDocument?: boolean) => CheerioAPI;
export declare function getLoad(parse: typeof Cheerio.prototype._parse, render: (dom: AnyNode | ArrayLike<AnyNode>, options: InternalOptions) => string): (content: string | AnyNode | AnyNode[] | Buffer, options?: CheerioOptions | null, isDocument?: boolean) => CheerioAPI;
export {};
//# sourceMappingURL=load.d.ts.map

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

export declare const load: (content: string | import("domhandler").AnyNode | import("domhandler").AnyNode[] | Buffer, options?: import("./options.js").CheerioOptions | null | undefined, isDocument?: boolean) => import("./load.js").CheerioAPI;
declare const _default: import("./load.js").CheerioAPI;
/**

@@ -43,2 +42,3 @@ * The default cheerio instance.

*/
declare const _default: import("./load.js").CheerioAPI;
export default _default;

@@ -45,0 +45,0 @@ export { html, xml, text } from './static.js';

@@ -58,4 +58,4 @@ /// <reference types="node" />

}
export declare function getLoad(parse: typeof Cheerio.prototype._parse, render: (dom: AnyNode | ArrayLike<AnyNode>, options: InternalOptions) => string): (content: string | AnyNode | AnyNode[] | Buffer, options?: CheerioOptions | null | undefined, isDocument?: boolean) => CheerioAPI;
export declare function getLoad(parse: typeof Cheerio.prototype._parse, render: (dom: AnyNode | ArrayLike<AnyNode>, options: InternalOptions) => string): (content: string | AnyNode | AnyNode[] | Buffer, options?: CheerioOptions | null, isDocument?: boolean) => CheerioAPI;
export {};
//# sourceMappingURL=load.d.ts.map
{
"name": "cheerio",
"version": "1.0.0-rc.11",
"version": "1.0.0-rc.12",
"description": "Tiny, fast, and elegant implementation of core jQuery designed specifically for the server",

@@ -38,2 +38,6 @@ "author": "Matt Mueller <mattmuelle@gmail.com>",

"import": "./lib/esm/slim.js"
},
"./lib/utils": {
"require": "./lib/utils.js",
"import": "./lib/esm/utils.js"
}

@@ -54,4 +58,3 @@ },

"parse5": "^7.0.0",
"parse5-htmlparser2-tree-adapter": "^7.0.0",
"tslib": "^2.4.0"
"parse5-htmlparser2-tree-adapter": "^7.0.0"
},

@@ -61,24 +64,24 @@ "devDependencies": {

"@types/benchmark": "^2.1.1",
"@types/jest": "^27.5.0",
"@types/node": "^17.0.35",
"@typescript-eslint/eslint-plugin": "^5.25.0",
"@typescript-eslint/parser": "^5.25.0",
"@types/jest": "^28.1.3",
"@types/node": "^18.0.0",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"@typescript-eslint/parser": "^5.29.0",
"benchmark": "^2.1.4",
"eslint": "^8.15.0",
"eslint": "^8.18.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest": "^26.2.2",
"eslint-plugin-jsdoc": "^39.3.0",
"eslint-plugin-jest": "^26.5.3",
"eslint-plugin-jsdoc": "^39.3.3",
"eslint-plugin-node": "^11.1.0",
"husky": "^8.0.1",
"jest": "^27.5.1",
"jest": "^28.1.1",
"jquery": "^3.6.0",
"jsdom": "^19.0.0",
"lint-staged": "^12.4.1",
"prettier": "^2.6.2",
"jsdom": "^20.0.0",
"lint-staged": "^13.0.2",
"prettier": "^2.7.1",
"prettier-plugin-jsdoc": "0.3.38",
"ts-jest": "^27.1.4",
"ts-node": "^10.7.0",
"typedoc": "^0.22.15",
"typescript": "^4.6.4",
"undici": "^5.2.0"
"ts-jest": "^28.0.5",
"ts-node": "^10.8.1",
"typedoc": "^0.22.17",
"typescript": "^4.7.4",
"undici": "^5.5.1"
},

@@ -128,5 +131,8 @@ "scripts": {

"moduleNameMapper": {
"^(.*)\\.js$": "$1"
"^(.*)\\.js$": [
"$1.js",
"$1"
]
}
}
}

@@ -285,4 +285,4 @@ <h1 align="center">cheerio</h1>

<a href="https://substack.com/" target="_blank" rel="noopener noreferrer">
<img style="max-height:128px;max-width:128px" src="https://avatars.githubusercontent.com/u/53023767?v=4&s=128" title="Substack" alt="Substack"></img>
<a href="https://github.com/about" target="_blank" rel="noopener noreferrer">
<img style="max-height:128px;max-width:128px" src="https://avatars.githubusercontent.com/u/9919?v=4&s=128" title="GitHub" alt="GitHub"></img>
</a>

@@ -307,2 +307,5 @@ <a href="https://cryptocasinos.com/" target="_blank" rel="noopener noreferrer">

</a>
<a href="https://starwarscasinos.com/" target="_blank" rel="noopener noreferrer">
<img style="max-height:128px;max-width:128px" src="https://images.opencollective.com/casino-utan-svensk-licens1/f3487ff/logo.png" title="Casino utan svensk licens" alt="Casino utan svensk licens"></img>
</a>

@@ -309,0 +312,0 @@ <!-- END SPONSORS -->

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

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

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

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

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

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

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

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

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

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

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

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

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