builderman verion 0.1.0, initial commit/release.
This commit is contained in:
332
node_modules/cheerio/lib/api/attributes.d.ts
generated
vendored
Normal file
332
node_modules/cheerio/lib/api/attributes.d.ts
generated
vendored
Normal file
@@ -0,0 +1,332 @@
|
||||
/**
|
||||
* Methods for getting and modifying attributes.
|
||||
*
|
||||
* @module cheerio/attributes
|
||||
*/
|
||||
import type { AnyNode, Element } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Method for getting attributes. Gets the attribute value for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The attribute's value.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, name: string): string | undefined;
|
||||
/**
|
||||
* Method for getting all attributes and their values of the first element in
|
||||
* the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').attr();
|
||||
* //=> { id: 'fruits' }
|
||||
* ```
|
||||
*
|
||||
* @returns The attribute's values.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>): Record<string, string> | undefined;
|
||||
/**
|
||||
* Method for setting attributes. Sets the attribute value for only the first
|
||||
* element in the matched set. If you set an attribute's value to `null`, you
|
||||
* remove that attribute. You may also pass a `map` and `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').attr('id', 'favorite').html();
|
||||
* //=> <li class="apple" id="favorite">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @param value - The new value of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, name: string, value?: string | null | ((this: Element, i: number, attrib: string) => string | null)): Cheerio<T>;
|
||||
/**
|
||||
* Method for setting multiple attributes at once. Sets the attribute value for
|
||||
* only the first element in the matched set. If you set an attribute's value to
|
||||
* `null`, you remove that attribute.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').attr({ id: 'favorite' }).html();
|
||||
* //=> <li class="apple" id="favorite">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param values - Map of attribute names and values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, values: Record<string, string | null>): Cheerio<T>;
|
||||
interface StyleProp {
|
||||
length: number;
|
||||
[key: string]: string | number;
|
||||
[index: number]: string;
|
||||
}
|
||||
/**
|
||||
* Method for getting and setting properties. Gets the property value for only
|
||||
* the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="checkbox"]').prop('checked');
|
||||
* //=> false
|
||||
*
|
||||
* $('input[type="checkbox"]').prop('checked', true).val();
|
||||
* //=> ok
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the property.
|
||||
* @param value - If specified set the property to this.
|
||||
* @returns If `value` is specified the instance itself, otherwise the prop's value.
|
||||
* @see {@link https://api.jquery.com/prop/}
|
||||
*/
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'tagName' | 'nodeName'): T extends Element ? string : undefined;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'innerHTML' | 'outerHTML' | 'innerText' | 'textContent'): string | null;
|
||||
/** Get a parsed CSS style object. */
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp | undefined;
|
||||
/**
|
||||
* Resolve `href` or `src` of supported elements. Requires the `baseURI` option
|
||||
* to be set, and a global `URL` object to be part of the environment.
|
||||
*
|
||||
* @example With `baseURI` set to `'https://example.com'`:
|
||||
*
|
||||
* ```js
|
||||
* $('<img src="image.png">').prop('src');
|
||||
* //=> 'https://example.com/image.png'
|
||||
* ```
|
||||
*/
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'href' | 'src'): string | undefined;
|
||||
/** Get a property of an element. */
|
||||
export declare function prop<T extends AnyNode, K extends keyof Element>(this: Cheerio<T>, name: K): Element[K];
|
||||
/** Set a property of an element. */
|
||||
export declare function prop<T extends AnyNode, K extends keyof Element>(this: Cheerio<T>, name: K, value: Element[K] | ((this: Element, i: number, prop: K) => Element[keyof Element])): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: Record<string, string | Element[keyof Element] | boolean>): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: string, value: string | boolean | null | ((this: Element, i: number, prop: string) => string | boolean)): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: string): string;
|
||||
/**
|
||||
* Method for getting data attributes, for only the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<div data-apple-color="red"></div>').data('apple-color');
|
||||
* //=> 'red'
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the data attribute.
|
||||
* @returns The data attribute's value, or `undefined` if the attribute does not exist.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, name: string): unknown | undefined;
|
||||
/**
|
||||
* Method for getting all of an element's data attributes, for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<div data-apple-color="red"></div>').data();
|
||||
* //=> { appleColor: 'red' }
|
||||
* ```
|
||||
*
|
||||
* @returns A map with all of the data attributes.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>): Record<string, unknown>;
|
||||
/**
|
||||
* Method for setting data attributes, for only the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const apple = $('.apple').data('kind', 'mac');
|
||||
*
|
||||
* apple.data('kind');
|
||||
* //=> 'mac'
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the data attribute.
|
||||
* @param value - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, name: string, value: unknown): Cheerio<T>;
|
||||
/**
|
||||
* Method for setting multiple data attributes at once, for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const apple = $('.apple').data({ kind: 'mac' });
|
||||
*
|
||||
* apple.data('kind');
|
||||
* //=> 'mac'
|
||||
* ```
|
||||
*
|
||||
* @param values - Map of names to values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, values: Record<string, unknown>): Cheerio<T>;
|
||||
/**
|
||||
* Method for getting the value of input, select, and textarea. Note: Support
|
||||
* for `map`, and `function` has not been added yet.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="text"]').val();
|
||||
* //=> input_text
|
||||
* ```
|
||||
*
|
||||
* @returns The value.
|
||||
* @see {@link https://api.jquery.com/val/}
|
||||
*/
|
||||
export declare function val<T extends AnyNode>(this: Cheerio<T>): string | undefined | string[];
|
||||
/**
|
||||
* Method for setting the value of input, select, and textarea. Note: Support
|
||||
* for `map`, and `function` has not been added yet.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="text"]').val('test').html();
|
||||
* //=> <input type="text" value="test"/>
|
||||
* ```
|
||||
*
|
||||
* @param value - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/val/}
|
||||
*/
|
||||
export declare function val<T extends AnyNode>(this: Cheerio<T>, value: string | string[]): Cheerio<T>;
|
||||
/**
|
||||
* Method for removing attributes by `name`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeAttr('class').html();
|
||||
* //=> <li>Pear</li>
|
||||
*
|
||||
* $('.apple').attr('id', 'favorite');
|
||||
* $('.apple').removeAttr('id class').html();
|
||||
* //=> <li>Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeAttr/}
|
||||
*/
|
||||
export declare function removeAttr<T extends AnyNode>(this: Cheerio<T>, name: string): Cheerio<T>;
|
||||
/**
|
||||
* Check to see if _any_ of the matched elements have the given `className`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').hasClass('pear');
|
||||
* //=> true
|
||||
*
|
||||
* $('apple').hasClass('fruit');
|
||||
* //=> false
|
||||
*
|
||||
* $('li').hasClass('pear');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param className - Name of the class.
|
||||
* @returns Indicates if an element has the given `className`.
|
||||
* @see {@link https://api.jquery.com/hasClass/}
|
||||
*/
|
||||
export declare function hasClass<T extends AnyNode>(this: Cheerio<T>, className: string): boolean;
|
||||
/**
|
||||
* Adds class(es) to all of the matched elements. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').addClass('fruit').html();
|
||||
* //=> <li class="pear fruit">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('fruit red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of new class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/addClass/}
|
||||
*/
|
||||
export declare function addClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, value?: string | ((this: Element, i: number, className: string) => string | undefined)): R;
|
||||
/**
|
||||
* Removes one or more space-separated classes from the selected elements. If no
|
||||
* `className` is defined, all classes will be removed. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeClass('pear').html();
|
||||
* //=> <li class="">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('red').removeClass().html();
|
||||
* //=> <li class="">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the class. If not specified, removes all elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeClass/}
|
||||
*/
|
||||
export declare function removeClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, name?: string | ((this: Element, i: number, className: string) => string | undefined)): R;
|
||||
/**
|
||||
* Add or remove class(es) from the matched elements, depending on either the
|
||||
* class's presence or the value of the switch argument. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple.green').toggleClass('fruit green red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
*
|
||||
* $('.apple.green').toggleClass('fruit green red', true).html();
|
||||
* //=> <li class="apple green fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of the class. Can also be a function.
|
||||
* @param stateVal - If specified the state of the class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/toggleClass/}
|
||||
*/
|
||||
export declare function toggleClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, value?: string | ((this: Element, i: number, className: string, stateVal?: boolean) => string), stateVal?: boolean): R;
|
||||
export {};
|
||||
//# sourceMappingURL=attributes.d.ts.map
|
||||
1
node_modules/cheerio/lib/api/attributes.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/attributes.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"attributes.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/attributes.ts"],"names":[],"mappings":"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"}
|
||||
622
node_modules/cheerio/lib/api/attributes.js
generated
vendored
Normal file
622
node_modules/cheerio/lib/api/attributes.js
generated
vendored
Normal file
@@ -0,0 +1,622 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Methods for getting and modifying attributes.
|
||||
*
|
||||
* @module cheerio/attributes
|
||||
*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.toggleClass = exports.removeClass = exports.addClass = exports.hasClass = exports.removeAttr = exports.val = exports.data = exports.prop = exports.attr = void 0;
|
||||
var static_js_1 = require("../static.js");
|
||||
var utils_js_1 = require("../utils.js");
|
||||
var domutils_1 = require("domutils");
|
||||
var hasOwn = Object.prototype.hasOwnProperty;
|
||||
var rspace = /\s+/;
|
||||
var dataAttrPrefix = 'data-';
|
||||
/*
|
||||
* Lookup table for coercing string data-* attributes to their corresponding
|
||||
* JavaScript primitives
|
||||
*/
|
||||
var primitives = {
|
||||
null: null,
|
||||
true: true,
|
||||
false: false,
|
||||
};
|
||||
// Attributes that are booleans
|
||||
var rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;
|
||||
// Matches strings that look like JSON objects or arrays
|
||||
var rbrace = /^{[^]*}$|^\[[^]*]$/;
|
||||
function getAttr(elem, name, xmlMode) {
|
||||
var _a;
|
||||
if (!elem || !(0, utils_js_1.isTag)(elem))
|
||||
return undefined;
|
||||
(_a = elem.attribs) !== null && _a !== void 0 ? _a : (elem.attribs = {});
|
||||
// Return the entire attribs object if no attribute specified
|
||||
if (!name) {
|
||||
return elem.attribs;
|
||||
}
|
||||
if (hasOwn.call(elem.attribs, name)) {
|
||||
// Get the (decoded) attribute
|
||||
return !xmlMode && rboolean.test(name) ? name : elem.attribs[name];
|
||||
}
|
||||
// Mimic the DOM and return text content as value for `option's`
|
||||
if (elem.name === 'option' && name === 'value') {
|
||||
return (0, static_js_1.text)(elem.children);
|
||||
}
|
||||
// Mimic DOM with default value for radios/checkboxes
|
||||
if (elem.name === 'input' &&
|
||||
(elem.attribs['type'] === 'radio' || elem.attribs['type'] === 'checkbox') &&
|
||||
name === 'value') {
|
||||
return 'on';
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
/**
|
||||
* Sets the value of an attribute. The attribute will be deleted if the value is `null`.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the attribute on.
|
||||
* @param name - The attribute's name.
|
||||
* @param value - The attribute's value.
|
||||
*/
|
||||
function setAttr(el, name, value) {
|
||||
if (value === null) {
|
||||
removeAttribute(el, name);
|
||||
}
|
||||
else {
|
||||
el.attribs[name] = "".concat(value);
|
||||
}
|
||||
}
|
||||
function attr(name, value) {
|
||||
// Set the value (with attr map support)
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
if (typeof value === 'function') {
|
||||
if (typeof name !== 'string') {
|
||||
{
|
||||
throw new Error('Bad combination of arguments.');
|
||||
}
|
||||
}
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el))
|
||||
setAttr(el, name, value.call(el, i, el.attribs[name]));
|
||||
});
|
||||
}
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, utils_js_1.isTag)(el))
|
||||
return;
|
||||
if (typeof name === 'object') {
|
||||
Object.keys(name).forEach(function (objName) {
|
||||
var objValue = name[objName];
|
||||
setAttr(el, objName, objValue);
|
||||
});
|
||||
}
|
||||
else {
|
||||
setAttr(el, name, value);
|
||||
}
|
||||
});
|
||||
}
|
||||
return arguments.length > 1
|
||||
? this
|
||||
: getAttr(this[0], name, this.options.xmlMode);
|
||||
}
|
||||
exports.attr = attr;
|
||||
/**
|
||||
* Gets a node's prop.
|
||||
*
|
||||
* @private
|
||||
* @category Attributes
|
||||
* @param el - Element to get the prop of.
|
||||
* @param name - Name of the prop.
|
||||
* @returns The prop's value.
|
||||
*/
|
||||
function getProp(el, name, xmlMode) {
|
||||
return name in el
|
||||
? // @ts-expect-error TS doesn't like us accessing the value directly here.
|
||||
el[name]
|
||||
: !xmlMode && rboolean.test(name)
|
||||
? getAttr(el, name, false) !== undefined
|
||||
: getAttr(el, name, xmlMode);
|
||||
}
|
||||
/**
|
||||
* Sets the value of a prop.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the prop on.
|
||||
* @param name - The prop's name.
|
||||
* @param value - The prop's value.
|
||||
*/
|
||||
function setProp(el, name, value, xmlMode) {
|
||||
if (name in el) {
|
||||
// @ts-expect-error Overriding value
|
||||
el[name] = value;
|
||||
}
|
||||
else {
|
||||
setAttr(el, name, !xmlMode && rboolean.test(name) ? (value ? '' : null) : "".concat(value));
|
||||
}
|
||||
}
|
||||
function prop(name, value) {
|
||||
var _this = this;
|
||||
var _a;
|
||||
if (typeof name === 'string' && value === undefined) {
|
||||
var el = this[0];
|
||||
if (!el || !(0, utils_js_1.isTag)(el))
|
||||
return undefined;
|
||||
switch (name) {
|
||||
case 'style': {
|
||||
var property_1 = this.css();
|
||||
var keys = Object.keys(property_1);
|
||||
keys.forEach(function (p, i) {
|
||||
property_1[i] = p;
|
||||
});
|
||||
property_1.length = keys.length;
|
||||
return property_1;
|
||||
}
|
||||
case 'tagName':
|
||||
case 'nodeName': {
|
||||
return el.name.toUpperCase();
|
||||
}
|
||||
case 'href':
|
||||
case 'src': {
|
||||
var prop_1 = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name];
|
||||
/* eslint-disable node/no-unsupported-features/node-builtins */
|
||||
if (typeof URL !== 'undefined' &&
|
||||
((name === 'href' && (el.tagName === 'a' || el.name === 'link')) ||
|
||||
(name === 'src' &&
|
||||
(el.tagName === 'img' ||
|
||||
el.tagName === 'iframe' ||
|
||||
el.tagName === 'audio' ||
|
||||
el.tagName === 'video' ||
|
||||
el.tagName === 'source'))) &&
|
||||
prop_1 !== undefined &&
|
||||
this.options.baseURI) {
|
||||
return new URL(prop_1, this.options.baseURI).href;
|
||||
}
|
||||
/* eslint-enable node/no-unsupported-features/node-builtins */
|
||||
return prop_1;
|
||||
}
|
||||
case 'innerText': {
|
||||
return (0, domutils_1.innerText)(el);
|
||||
}
|
||||
case 'textContent': {
|
||||
return (0, domutils_1.textContent)(el);
|
||||
}
|
||||
case 'outerHTML':
|
||||
return this.clone().wrap('<container />').parent().html();
|
||||
case 'innerHTML':
|
||||
return this.html();
|
||||
default:
|
||||
return getProp(el, name, this.options.xmlMode);
|
||||
}
|
||||
}
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
if (typeof value === 'function') {
|
||||
if (typeof name === 'object') {
|
||||
throw new Error('Bad combination of arguments.');
|
||||
}
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
setProp(el, name, value.call(el, i, getProp(el, name, _this.options.xmlMode)), _this.options.xmlMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, utils_js_1.isTag)(el))
|
||||
return;
|
||||
if (typeof name === 'object') {
|
||||
Object.keys(name).forEach(function (key) {
|
||||
var val = name[key];
|
||||
setProp(el, key, val, _this.options.xmlMode);
|
||||
});
|
||||
}
|
||||
else {
|
||||
setProp(el, name, value, _this.options.xmlMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
exports.prop = prop;
|
||||
/**
|
||||
* Sets the value of a data attribute.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the data attribute on.
|
||||
* @param name - The data attribute's name.
|
||||
* @param value - The data attribute's value.
|
||||
*/
|
||||
function setData(el, name, value) {
|
||||
var _a;
|
||||
var elem = el;
|
||||
(_a = elem.data) !== null && _a !== void 0 ? _a : (elem.data = {});
|
||||
if (typeof name === 'object')
|
||||
Object.assign(elem.data, name);
|
||||
else if (typeof name === 'string' && value !== undefined) {
|
||||
elem.data[name] = value;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Read the specified attribute from the equivalent HTML5 `data-*` attribute,
|
||||
* and (if present) cache the value in the node's internal data store. If no
|
||||
* attribute name is specified, read _all_ HTML5 `data-*` attributes in this manner.
|
||||
*
|
||||
* @private
|
||||
* @category Attributes
|
||||
* @param el - Element to get the data attribute of.
|
||||
* @param name - Name of the data attribute.
|
||||
* @returns The data attribute's value, or a map with all of the data attributes.
|
||||
*/
|
||||
function readData(el, name) {
|
||||
var domNames;
|
||||
var jsNames;
|
||||
var value;
|
||||
if (name == null) {
|
||||
domNames = Object.keys(el.attribs).filter(function (attrName) {
|
||||
return attrName.startsWith(dataAttrPrefix);
|
||||
});
|
||||
jsNames = domNames.map(function (domName) {
|
||||
return (0, utils_js_1.camelCase)(domName.slice(dataAttrPrefix.length));
|
||||
});
|
||||
}
|
||||
else {
|
||||
domNames = [dataAttrPrefix + (0, utils_js_1.cssCase)(name)];
|
||||
jsNames = [name];
|
||||
}
|
||||
for (var idx = 0; idx < domNames.length; ++idx) {
|
||||
var domName = domNames[idx];
|
||||
var jsName = jsNames[idx];
|
||||
if (hasOwn.call(el.attribs, domName) &&
|
||||
!hasOwn.call(el.data, jsName)) {
|
||||
value = el.attribs[domName];
|
||||
if (hasOwn.call(primitives, value)) {
|
||||
value = primitives[value];
|
||||
}
|
||||
else if (value === String(Number(value))) {
|
||||
value = Number(value);
|
||||
}
|
||||
else if (rbrace.test(value)) {
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
}
|
||||
catch (e) {
|
||||
/* Ignore */
|
||||
}
|
||||
}
|
||||
el.data[jsName] = value;
|
||||
}
|
||||
}
|
||||
return name == null ? el.data : value;
|
||||
}
|
||||
function data(name, value) {
|
||||
var _a;
|
||||
var elem = this[0];
|
||||
if (!elem || !(0, utils_js_1.isTag)(elem))
|
||||
return;
|
||||
var dataEl = elem;
|
||||
(_a = dataEl.data) !== null && _a !== void 0 ? _a : (dataEl.data = {});
|
||||
// Return the entire data object if no data specified
|
||||
if (!name) {
|
||||
return readData(dataEl);
|
||||
}
|
||||
// Set the value (with attr map support)
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
(0, utils_js_1.domEach)(this, function (el) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
if (typeof name === 'object')
|
||||
setData(el, name);
|
||||
else
|
||||
setData(el, name, value);
|
||||
}
|
||||
});
|
||||
return this;
|
||||
}
|
||||
if (hasOwn.call(dataEl.data, name)) {
|
||||
return dataEl.data[name];
|
||||
}
|
||||
return readData(dataEl, name);
|
||||
}
|
||||
exports.data = data;
|
||||
function val(value) {
|
||||
var querying = arguments.length === 0;
|
||||
var element = this[0];
|
||||
if (!element || !(0, utils_js_1.isTag)(element))
|
||||
return querying ? undefined : this;
|
||||
switch (element.name) {
|
||||
case 'textarea':
|
||||
return this.text(value);
|
||||
case 'select': {
|
||||
var option = this.find('option:selected');
|
||||
if (!querying) {
|
||||
if (this.attr('multiple') == null && typeof value === 'object') {
|
||||
return this;
|
||||
}
|
||||
this.find('option').removeAttr('selected');
|
||||
var values = typeof value !== 'object' ? [value] : value;
|
||||
for (var i = 0; i < values.length; i++) {
|
||||
this.find("option[value=\"".concat(values[i], "\"]")).attr('selected', '');
|
||||
}
|
||||
return this;
|
||||
}
|
||||
return this.attr('multiple')
|
||||
? option.toArray().map(function (el) { return (0, static_js_1.text)(el.children); })
|
||||
: option.attr('value');
|
||||
}
|
||||
case 'input':
|
||||
case 'option':
|
||||
return querying
|
||||
? this.attr('value')
|
||||
: this.attr('value', value);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
exports.val = val;
|
||||
/**
|
||||
* Remove an attribute.
|
||||
*
|
||||
* @private
|
||||
* @param elem - Node to remove attribute from.
|
||||
* @param name - Name of the attribute to remove.
|
||||
*/
|
||||
function removeAttribute(elem, name) {
|
||||
if (!elem.attribs || !hasOwn.call(elem.attribs, name))
|
||||
return;
|
||||
delete elem.attribs[name];
|
||||
}
|
||||
/**
|
||||
* Splits a space-separated list of names to individual names.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param names - Names to split.
|
||||
* @returns - Split names.
|
||||
*/
|
||||
function splitNames(names) {
|
||||
return names ? names.trim().split(rspace) : [];
|
||||
}
|
||||
/**
|
||||
* Method for removing attributes by `name`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeAttr('class').html();
|
||||
* //=> <li>Pear</li>
|
||||
*
|
||||
* $('.apple').attr('id', 'favorite');
|
||||
* $('.apple').removeAttr('id class').html();
|
||||
* //=> <li>Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeAttr/}
|
||||
*/
|
||||
function removeAttr(name) {
|
||||
var attrNames = splitNames(name);
|
||||
var _loop_1 = function (i) {
|
||||
(0, utils_js_1.domEach)(this_1, function (elem) {
|
||||
if ((0, utils_js_1.isTag)(elem))
|
||||
removeAttribute(elem, attrNames[i]);
|
||||
});
|
||||
};
|
||||
var this_1 = this;
|
||||
for (var i = 0; i < attrNames.length; i++) {
|
||||
_loop_1(i);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
exports.removeAttr = removeAttr;
|
||||
/**
|
||||
* Check to see if _any_ of the matched elements have the given `className`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').hasClass('pear');
|
||||
* //=> true
|
||||
*
|
||||
* $('apple').hasClass('fruit');
|
||||
* //=> false
|
||||
*
|
||||
* $('li').hasClass('pear');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param className - Name of the class.
|
||||
* @returns Indicates if an element has the given `className`.
|
||||
* @see {@link https://api.jquery.com/hasClass/}
|
||||
*/
|
||||
function hasClass(className) {
|
||||
return this.toArray().some(function (elem) {
|
||||
var clazz = (0, utils_js_1.isTag)(elem) && elem.attribs['class'];
|
||||
var idx = -1;
|
||||
if (clazz && className.length) {
|
||||
while ((idx = clazz.indexOf(className, idx + 1)) > -1) {
|
||||
var end = idx + className.length;
|
||||
if ((idx === 0 || rspace.test(clazz[idx - 1])) &&
|
||||
(end === clazz.length || rspace.test(clazz[end]))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
exports.hasClass = hasClass;
|
||||
/**
|
||||
* Adds class(es) to all of the matched elements. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').addClass('fruit').html();
|
||||
* //=> <li class="pear fruit">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('fruit red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of new class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/addClass/}
|
||||
*/
|
||||
function addClass(value) {
|
||||
// Support functions
|
||||
if (typeof value === 'function') {
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
var className = el.attribs['class'] || '';
|
||||
addClass.call([el], value.call(el, i, className));
|
||||
}
|
||||
});
|
||||
}
|
||||
// Return if no value or not a string or function
|
||||
if (!value || typeof value !== 'string')
|
||||
return this;
|
||||
var classNames = value.split(rspace);
|
||||
var numElements = this.length;
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var el = this[i];
|
||||
// If selected element isn't a tag, move on
|
||||
if (!(0, utils_js_1.isTag)(el))
|
||||
continue;
|
||||
// If we don't already have classes — always set xmlMode to false here, as it doesn't matter for classes
|
||||
var className = getAttr(el, 'class', false);
|
||||
if (!className) {
|
||||
setAttr(el, 'class', classNames.join(' ').trim());
|
||||
}
|
||||
else {
|
||||
var setClass = " ".concat(className, " ");
|
||||
// Check if class already exists
|
||||
for (var j = 0; j < classNames.length; j++) {
|
||||
var appendClass = "".concat(classNames[j], " ");
|
||||
if (!setClass.includes(" ".concat(appendClass)))
|
||||
setClass += appendClass;
|
||||
}
|
||||
setAttr(el, 'class', setClass.trim());
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
exports.addClass = addClass;
|
||||
/**
|
||||
* Removes one or more space-separated classes from the selected elements. If no
|
||||
* `className` is defined, all classes will be removed. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeClass('pear').html();
|
||||
* //=> <li class="">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('red').removeClass().html();
|
||||
* //=> <li class="">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the class. If not specified, removes all elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeClass/}
|
||||
*/
|
||||
function removeClass(name) {
|
||||
// Handle if value is a function
|
||||
if (typeof name === 'function') {
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
removeClass.call([el], name.call(el, i, el.attribs['class'] || ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
var classes = splitNames(name);
|
||||
var numClasses = classes.length;
|
||||
var removeAll = arguments.length === 0;
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, utils_js_1.isTag)(el))
|
||||
return;
|
||||
if (removeAll) {
|
||||
// Short circuit the remove all case as this is the nice one
|
||||
el.attribs['class'] = '';
|
||||
}
|
||||
else {
|
||||
var elClasses = splitNames(el.attribs['class']);
|
||||
var changed = false;
|
||||
for (var j = 0; j < numClasses; j++) {
|
||||
var index = elClasses.indexOf(classes[j]);
|
||||
if (index >= 0) {
|
||||
elClasses.splice(index, 1);
|
||||
changed = true;
|
||||
/*
|
||||
* We have to do another pass to ensure that there are not duplicate
|
||||
* classes listed
|
||||
*/
|
||||
j--;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
el.attribs['class'] = elClasses.join(' ');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.removeClass = removeClass;
|
||||
/**
|
||||
* Add or remove class(es) from the matched elements, depending on either the
|
||||
* class's presence or the value of the switch argument. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple.green').toggleClass('fruit green red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
*
|
||||
* $('.apple.green').toggleClass('fruit green red', true).html();
|
||||
* //=> <li class="apple green fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of the class. Can also be a function.
|
||||
* @param stateVal - If specified the state of the class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/toggleClass/}
|
||||
*/
|
||||
function toggleClass(value, stateVal) {
|
||||
// Support functions
|
||||
if (typeof value === 'function') {
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
toggleClass.call([el], value.call(el, i, el.attribs['class'] || '', stateVal), stateVal);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Return if no value or not a string or function
|
||||
if (!value || typeof value !== 'string')
|
||||
return this;
|
||||
var classNames = value.split(rspace);
|
||||
var numClasses = classNames.length;
|
||||
var state = typeof stateVal === 'boolean' ? (stateVal ? 1 : -1) : 0;
|
||||
var numElements = this.length;
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var el = this[i];
|
||||
// If selected element isn't a tag, move on
|
||||
if (!(0, utils_js_1.isTag)(el))
|
||||
continue;
|
||||
var elementClasses = splitNames(el.attribs['class']);
|
||||
// Check if class already exists
|
||||
for (var j = 0; j < numClasses; j++) {
|
||||
// Check if the class name is currently defined
|
||||
var index = elementClasses.indexOf(classNames[j]);
|
||||
// Add if stateValue === true or we are toggling and there is no value
|
||||
if (state >= 0 && index < 0) {
|
||||
elementClasses.push(classNames[j]);
|
||||
}
|
||||
else if (state <= 0 && index >= 0) {
|
||||
// Otherwise remove but only if the item exists
|
||||
elementClasses.splice(index, 1);
|
||||
}
|
||||
}
|
||||
el.attribs['class'] = elementClasses.join(' ');
|
||||
}
|
||||
return this;
|
||||
}
|
||||
exports.toggleClass = toggleClass;
|
||||
//# sourceMappingURL=attributes.js.map
|
||||
1
node_modules/cheerio/lib/api/attributes.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/attributes.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
40
node_modules/cheerio/lib/api/css.d.ts
generated
vendored
Normal file
40
node_modules/cheerio/lib/api/css.d.ts
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
import type { Element, AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Get the value of a style property for the first element in the set of matched elements.
|
||||
*
|
||||
* @category CSS
|
||||
* @param names - Optionally the names of the properties of interest.
|
||||
* @returns A map of all of the style properties.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, names?: string[]): Record<string, string> | undefined;
|
||||
/**
|
||||
* Get the value of a style property for the first element in the set of matched elements.
|
||||
*
|
||||
* @category CSS
|
||||
* @param names - The name of the property.
|
||||
* @returns The property value for the given name.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, name: string): string | undefined;
|
||||
/**
|
||||
* Set one CSS property for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param prop - The name of the property.
|
||||
* @param val - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, prop: string, val: string | ((this: Element, i: number, style: string) => string | undefined)): Cheerio<T>;
|
||||
/**
|
||||
* Set multiple CSS properties for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param map - A map of property names and values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, map: Record<string, string>): Cheerio<T>;
|
||||
//# sourceMappingURL=css.d.ts.map
|
||||
1
node_modules/cheerio/lib/api/css.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/css.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AACtC;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAAC;AACtB;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EACC,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
||||
118
node_modules/cheerio/lib/api/css.js
generated
vendored
Normal file
118
node_modules/cheerio/lib/api/css.js
generated
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.css = void 0;
|
||||
var utils_js_1 = require("../utils.js");
|
||||
/**
|
||||
* Set multiple CSS properties for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param prop - The names of the properties.
|
||||
* @param val - The new values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
function css(prop, val) {
|
||||
if ((prop != null && val != null) ||
|
||||
// When `prop` is a "plain" object
|
||||
(typeof prop === 'object' && !Array.isArray(prop))) {
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if ((0, utils_js_1.isTag)(el)) {
|
||||
// `prop` can't be an array here anymore.
|
||||
setCss(el, prop, val, i);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (this.length === 0) {
|
||||
return undefined;
|
||||
}
|
||||
return getCss(this[0], prop);
|
||||
}
|
||||
exports.css = css;
|
||||
/**
|
||||
* Set styles of all elements.
|
||||
*
|
||||
* @private
|
||||
* @param el - Element to set style of.
|
||||
* @param prop - Name of property.
|
||||
* @param value - Value to set property to.
|
||||
* @param idx - Optional index within the selection.
|
||||
*/
|
||||
function setCss(el, prop, value, idx) {
|
||||
if (typeof prop === 'string') {
|
||||
var styles = getCss(el);
|
||||
var val = typeof value === 'function' ? value.call(el, idx, styles[prop]) : value;
|
||||
if (val === '') {
|
||||
delete styles[prop];
|
||||
}
|
||||
else if (val != null) {
|
||||
styles[prop] = val;
|
||||
}
|
||||
el.attribs['style'] = stringify(styles);
|
||||
}
|
||||
else if (typeof prop === 'object') {
|
||||
Object.keys(prop).forEach(function (k, i) {
|
||||
setCss(el, k, prop[k], i);
|
||||
});
|
||||
}
|
||||
}
|
||||
function getCss(el, prop) {
|
||||
if (!el || !(0, utils_js_1.isTag)(el))
|
||||
return;
|
||||
var styles = parse(el.attribs['style']);
|
||||
if (typeof prop === 'string') {
|
||||
return styles[prop];
|
||||
}
|
||||
if (Array.isArray(prop)) {
|
||||
var newStyles_1 = {};
|
||||
prop.forEach(function (item) {
|
||||
if (styles[item] != null) {
|
||||
newStyles_1[item] = styles[item];
|
||||
}
|
||||
});
|
||||
return newStyles_1;
|
||||
}
|
||||
return styles;
|
||||
}
|
||||
/**
|
||||
* Stringify `obj` to styles.
|
||||
*
|
||||
* @private
|
||||
* @category CSS
|
||||
* @param obj - Object to stringify.
|
||||
* @returns The serialized styles.
|
||||
*/
|
||||
function stringify(obj) {
|
||||
return Object.keys(obj).reduce(function (str, prop) { return "".concat(str).concat(str ? ' ' : '').concat(prop, ": ").concat(obj[prop], ";"); }, '');
|
||||
}
|
||||
/**
|
||||
* Parse `styles`.
|
||||
*
|
||||
* @private
|
||||
* @category CSS
|
||||
* @param styles - Styles to be parsed.
|
||||
* @returns The parsed styles.
|
||||
*/
|
||||
function parse(styles) {
|
||||
styles = (styles || '').trim();
|
||||
if (!styles)
|
||||
return {};
|
||||
var obj = {};
|
||||
var key;
|
||||
for (var _i = 0, _a = styles.split(';'); _i < _a.length; _i++) {
|
||||
var str = _a[_i];
|
||||
var n = str.indexOf(':');
|
||||
// If there is no :, or if it is the first/last character, add to the previous item's value
|
||||
if (n < 1 || n === str.length - 1) {
|
||||
var trimmed = str.trimEnd();
|
||||
if (trimmed.length > 0 && key !== undefined) {
|
||||
obj[key] += ";".concat(trimmed);
|
||||
}
|
||||
}
|
||||
else {
|
||||
key = str.slice(0, n).trim();
|
||||
obj[key] = str.slice(n + 1).trim();
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
//# sourceMappingURL=css.js.map
|
||||
1
node_modules/cheerio/lib/api/css.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/css.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"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"}
|
||||
38
node_modules/cheerio/lib/api/forms.d.ts
generated
vendored
Normal file
38
node_modules/cheerio/lib/api/forms.d.ts
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Encode a set of form elements as a string for submission.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serialize();
|
||||
* //=> 'foo=bar'
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serialize/}
|
||||
*/
|
||||
export declare function serialize<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
interface SerializedField {
|
||||
name: string;
|
||||
value: string;
|
||||
}
|
||||
/**
|
||||
* Encode a set of form elements as an array of names and values.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serializeArray();
|
||||
* //=> [ { name: 'foo', value: 'bar' } ]
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serializeArray/}
|
||||
*/
|
||||
export declare function serializeArray<T extends AnyNode>(this: Cheerio<T>): SerializedField[];
|
||||
export {};
|
||||
//# sourceMappingURL=forms.d.ts.map
|
||||
1
node_modules/cheerio/lib/api/forms.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/forms.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"forms.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAYrE;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC9C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,eAAe,EAAE,CAsCnB"}
|
||||
92
node_modules/cheerio/lib/api/forms.js
generated
vendored
Normal file
92
node_modules/cheerio/lib/api/forms.js
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.serializeArray = exports.serialize = void 0;
|
||||
var utils_js_1 = require("../utils.js");
|
||||
/*
|
||||
* https://github.com/jquery/jquery/blob/2.1.3/src/manipulation/var/rcheckableType.js
|
||||
* https://github.com/jquery/jquery/blob/2.1.3/src/serialize.js
|
||||
*/
|
||||
var submittableSelector = 'input,select,textarea,keygen';
|
||||
var r20 = /%20/g;
|
||||
var rCRLF = /\r?\n/g;
|
||||
/**
|
||||
* Encode a set of form elements as a string for submission.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serialize();
|
||||
* //=> 'foo=bar'
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serialize/}
|
||||
*/
|
||||
function serialize() {
|
||||
// Convert form elements into name/value objects
|
||||
var arr = this.serializeArray();
|
||||
// Serialize each element into a key/value string
|
||||
var retArr = arr.map(function (data) {
|
||||
return "".concat(encodeURIComponent(data.name), "=").concat(encodeURIComponent(data.value));
|
||||
});
|
||||
// Return the resulting serialization
|
||||
return retArr.join('&').replace(r20, '+');
|
||||
}
|
||||
exports.serialize = serialize;
|
||||
/**
|
||||
* Encode a set of form elements as an array of names and values.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serializeArray();
|
||||
* //=> [ { name: 'foo', value: 'bar' } ]
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serializeArray/}
|
||||
*/
|
||||
function serializeArray() {
|
||||
var _this = this;
|
||||
// Resolve all form elements from either forms or collections of form elements
|
||||
return this.map(function (_, elem) {
|
||||
var $elem = _this._make(elem);
|
||||
if ((0, utils_js_1.isTag)(elem) && elem.name === 'form') {
|
||||
return $elem.find(submittableSelector).toArray();
|
||||
}
|
||||
return $elem.filter(submittableSelector).toArray();
|
||||
})
|
||||
.filter(
|
||||
// Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
|
||||
'[name!=""]:enabled' +
|
||||
// And cannot be clicked (`[type=submit]`) or are used in `x-www-form-urlencoded` (`[type=file]`)
|
||||
':not(:submit, :button, :image, :reset, :file)' +
|
||||
// And are either checked/don't have a checkable state
|
||||
':matches([checked], :not(:checkbox, :radio))'
|
||||
// Convert each of the elements to its value(s)
|
||||
)
|
||||
.map(function (_, elem) {
|
||||
var _a;
|
||||
var $elem = _this._make(elem);
|
||||
var name = $elem.attr('name'); // We have filtered for elements with a name before.
|
||||
// If there is no value set (e.g. `undefined`, `null`), then default value to empty
|
||||
var value = (_a = $elem.val()) !== null && _a !== void 0 ? _a : '';
|
||||
// If we have an array of values (e.g. `<select multiple>`), return an array of key/value pairs
|
||||
if (Array.isArray(value)) {
|
||||
return value.map(function (val) {
|
||||
/*
|
||||
* We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms
|
||||
* These can occur inside of `<textarea>'s`
|
||||
*/
|
||||
return ({ name: name, value: val.replace(rCRLF, '\r\n') });
|
||||
});
|
||||
}
|
||||
// Otherwise (e.g. `<input type="text">`, return only one key/value pair
|
||||
return { name: name, value: value.replace(rCRLF, '\r\n') };
|
||||
})
|
||||
.toArray();
|
||||
}
|
||||
exports.serializeArray = serializeArray;
|
||||
//# sourceMappingURL=forms.js.map
|
||||
1
node_modules/cheerio/lib/api/forms.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/forms.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"forms.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/forms.ts"],"names":[],"mappings":";;;AAEA,wCAAoC;AAEpC;;;GAGG;AACH,IAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAC3D,IAAM,GAAG,GAAG,MAAM,CAAC;AACnB,IAAM,KAAK,GAAG,QAAQ,CAAC;AAEvB;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS;IACvB,gDAAgD;IAChD,IAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAElC,iDAAiD;IACjD,IAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CACpB,UAAC,IAAI;QACH,OAAA,UAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE;IAApE,CAAoE,CACvE,CAAC;IAEF,qCAAqC;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAZD,8BAYC;AAOD;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc;IAA9B,iBAwCC;IArCC,8EAA8E;IAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,IAAI;QACtB,IAAM,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAA,gBAAK,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;SAClD;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC,CAAC;SACC,MAAM;IACL,8EAA8E;IAC9E,oBAAoB;QAClB,iGAAiG;QACjG,+CAA+C;QAC/C,sDAAsD;QACtD,8CAA8C;IAChD,+CAA+C;KAChD;SACA,GAAG,CAA2B,UAAC,CAAC,EAAE,IAAI;;QACrC,IAAM,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC,CAAC,oDAAoD;QAC/F,mFAAmF;QACnF,IAAM,KAAK,GAAG,MAAA,KAAK,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC;QAEhC,+FAA+F;QAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,GAAG;gBACnB;;;mBAGG;gBACH,OAAA,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YAA7C,CAA6C,CAC9C,CAAC;SACH;QACD,wEAAwE;QACxE,OAAO,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACvD,CAAC,CAAC;SACD,OAAO,EAAE,CAAC;AACf,CAAC;AAxCD,wCAwCC"}
|
||||
522
node_modules/cheerio/lib/api/manipulation.d.ts
generated
vendored
Normal file
522
node_modules/cheerio/lib/api/manipulation.d.ts
generated
vendored
Normal file
@@ -0,0 +1,522 @@
|
||||
/**
|
||||
* Methods for modifying the DOM structure.
|
||||
*
|
||||
* @module cheerio/manipulation
|
||||
*/
|
||||
import { AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
import type { BasicAcceptedElems, AcceptedElems } from '../types.js';
|
||||
/**
|
||||
* Create an array of nodes, recursing into arrays and parsing strings if necessary.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param elem - Elements to make an array of.
|
||||
* @param clone - Optionally clone nodes.
|
||||
* @returns The array of nodes.
|
||||
*/
|
||||
export declare function _makeDomArray<T extends AnyNode>(this: Cheerio<T>, elem?: BasicAcceptedElems<AnyNode>, clone?: boolean): AnyNode[];
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the end of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').appendTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to append elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/appendTo/}
|
||||
*/
|
||||
export declare function appendTo<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the beginning of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').prependTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to prepend elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/prependTo/}
|
||||
*/
|
||||
export declare function prependTo<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Inserts content as the _last_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').append('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/append/}
|
||||
*/
|
||||
export declare const append: <T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]) => Cheerio<T>;
|
||||
/**
|
||||
* Inserts content as the _first_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').prepend('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/prepend/}
|
||||
*/
|
||||
export declare const prepend: <T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]) => Cheerio<T>;
|
||||
/**
|
||||
* The .wrap() function can take any string or object that could be passed to
|
||||
* the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. A
|
||||
* copy of this structure will be wrapped around each of the elements in the set
|
||||
* of matched elements. This method returns the original set of elements for
|
||||
* chaining purposes.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrap(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="red-fruit">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrap(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="healthy">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </div>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around each element in the selection.
|
||||
* @see {@link https://api.jquery.com/wrap/}
|
||||
*/
|
||||
export declare const wrap: <T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<AnyNode>) => Cheerio<T>;
|
||||
/**
|
||||
* The .wrapInner() function can take any string or object that could be passed
|
||||
* to the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around the content of each of the elements in the
|
||||
* set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrapInner(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="red-fruit">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrapInner(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="healthy">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">
|
||||
* // <div class="healthy">Orange</div>
|
||||
* // </li>
|
||||
* // <li class="pear">
|
||||
* // <div class="healthy">Pear</div>
|
||||
* // </li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around the content of each element
|
||||
* in the selection.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/wrapInner/}
|
||||
*/
|
||||
export declare const wrapInner: <T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<AnyNode>) => Cheerio<T>;
|
||||
/**
|
||||
* The .unwrap() function, removes the parents of the set of matched elements
|
||||
* from the DOM, leaving the matched elements in their place.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>without selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <div><p>Hello</p></div>\n <div><p>World</p></div>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap();
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>with selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <p>Hello</p>\n <b><p>World</p></b>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap('b');
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @param selector - A selector to check the parent element against. If an
|
||||
* element's parent does not match the selector, the element won't be unwrapped.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/unwrap/}
|
||||
*/
|
||||
export declare function unwrap<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<T>;
|
||||
/**
|
||||
* The .wrapAll() function can take any string or object that could be passed to
|
||||
* the $() function to specify a DOM structure. This structure may be nested
|
||||
* several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around all of the elements in the set of matched
|
||||
* elements, as a single group.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>With markup passed to `wrapAll`</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="container"><div class="inner">First</div><div class="inner">Second</div></div>'
|
||||
* );
|
||||
* $('.inner').wrapAll("<div class='new'></div>");
|
||||
*
|
||||
* //=> <div class="container">
|
||||
* // <div class='new'>
|
||||
* // <div class="inner">First</div>
|
||||
* // <div class="inner">Second</div>
|
||||
* // </div>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>With an existing cheerio instance</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<span>Span 1</span><strong>Strong</strong><span>Span 2</span>'
|
||||
* );
|
||||
* const wrap = $('<div><p><em><b></b></em></p></div>');
|
||||
* $('span').wrapAll(wrap);
|
||||
*
|
||||
* //=> <div>
|
||||
* // <p>
|
||||
* // <em>
|
||||
* // <b>
|
||||
* // <span>Span 1</span>
|
||||
* // <span>Span 2</span>
|
||||
* // </b>
|
||||
* // </em>
|
||||
* // </p>
|
||||
* // </div>
|
||||
* // <strong>Strong</strong>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around all matched elements in the
|
||||
* selection.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/wrapAll/}
|
||||
*/
|
||||
export declare function wrapAll<T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<T>): Cheerio<T>;
|
||||
/**
|
||||
* Insert content next to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').after('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert after each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/after/}
|
||||
*/
|
||||
export declare function after<T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements after the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertAfter('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements after.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertAfter/}
|
||||
*/
|
||||
export declare function insertAfter<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Insert content previous to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').before('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert before each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/before/}
|
||||
*/
|
||||
export declare function before<T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements before the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertBefore('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements before.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertBefore/}
|
||||
*/
|
||||
export declare function insertBefore<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Removes the set of matched elements from the DOM and all their children.
|
||||
* `selector` filters the set of matched elements to be removed.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').remove();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param selector - Optional selector for elements to remove.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/remove/}
|
||||
*/
|
||||
export declare function remove<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<T>;
|
||||
/**
|
||||
* Replaces matched elements with `content`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const plum = $('<li class="plum">Plum</li>');
|
||||
* $('.pear').replaceWith(plum);
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - Replacement for matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/replaceWith/}
|
||||
*/
|
||||
export declare function replaceWith<T extends AnyNode>(this: Cheerio<T>, content: AcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Empties an element, removing all its children.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').empty();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/empty/}
|
||||
*/
|
||||
export declare function empty<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Gets an HTML content string from the first selected element.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').html();
|
||||
* //=> Orange
|
||||
*
|
||||
* $('#fruits').html('<li class="mango">Mango</li>').html();
|
||||
* //=> <li class="mango">Mango</li>
|
||||
* ```
|
||||
*
|
||||
* @returns The HTML content string.
|
||||
* @see {@link https://api.jquery.com/html/}
|
||||
*/
|
||||
export declare function html<T extends AnyNode>(this: Cheerio<T>): string | null;
|
||||
/**
|
||||
* Replaces each selected element's content with the specified content.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').html('<li class="mango">Mango</li>').html();
|
||||
* //=> <li class="mango">Mango</li>
|
||||
* ```
|
||||
*
|
||||
* @param str - The content to replace selection's contents with.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/html/}
|
||||
*/
|
||||
export declare function html<T extends AnyNode>(this: Cheerio<T>, str: string | Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Turns the collection to a string. Alias for `.html()`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function toString<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
/**
|
||||
* Get the combined text contents of each element in the set of matched
|
||||
* elements, including their descendants.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').text();
|
||||
* //=> Orange
|
||||
*
|
||||
* $('ul').text();
|
||||
* //=> Apple
|
||||
* // Orange
|
||||
* // Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The text contents of the collection.
|
||||
* @see {@link https://api.jquery.com/text/}
|
||||
*/
|
||||
export declare function text<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
/**
|
||||
* Set the content of each element in the set of matched elements to the specified text.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').text('Orange');
|
||||
* //=> <div class="orange">Orange</div>
|
||||
* ```
|
||||
*
|
||||
* @param str - The text to set as the content of each matched element.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/text/}
|
||||
*/
|
||||
export declare function text<T extends AnyNode>(this: Cheerio<T>, str: string | ((this: AnyNode, i: number, text: string) => string)): Cheerio<T>;
|
||||
/**
|
||||
* Clone the cheerio object.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const moreFruit = $('#fruits').clone();
|
||||
* ```
|
||||
*
|
||||
* @returns The cloned object.
|
||||
* @see {@link https://api.jquery.com/clone/}
|
||||
*/
|
||||
export declare function clone<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
//# sourceMappingURL=manipulation.d.ts.map
|
||||
1
node_modules/cheerio/lib/api/manipulation.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/manipulation.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"manipulation.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/manipulation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,OAAO,EAA8B,MAAM,YAAY,CAAC;AAK7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC7C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,EAAE,CAiBX;AA8GD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EACzC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,0DAnLD,OAAO,KACV,MAAM,QACH,MAAM,KACT,mBAAmB,OAAO,CAAC,gDAkLxC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,0DA1MF,OAAO,KACV,MAAM,QACH,MAAM,KACT,mBAAmB,OAAO,CAAC,gDAyMxC,CAAC;AAuDH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,IAAI,iDAtFJ,cAAc,OAAO,CAAC,eAqGjC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,SAAS,iDAlJT,cAAc,OAAO,CAAC,eAsJjC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EACvC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAiCZ;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EACrC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,KAAK,EACJ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,CAAC,GACzE,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAChC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,KAAK,EACJ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,CAAC,GACzE,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAChC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;AACzE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EACpC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAAC;AAyBd;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAClE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EACpC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,GACjE,OAAO,CAAC,CAAC,CAAC,CAAC;AA6Bd;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAErE"}
|
||||
861
node_modules/cheerio/lib/api/manipulation.js
generated
vendored
Normal file
861
node_modules/cheerio/lib/api/manipulation.js
generated
vendored
Normal file
@@ -0,0 +1,861 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Methods for modifying the DOM structure.
|
||||
*
|
||||
* @module cheerio/manipulation
|
||||
*/
|
||||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||
if (ar || !(i in from)) {
|
||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||
ar[i] = from[i];
|
||||
}
|
||||
}
|
||||
return to.concat(ar || Array.prototype.slice.call(from));
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.clone = exports.text = exports.toString = exports.html = exports.empty = exports.replaceWith = exports.remove = exports.insertBefore = exports.before = exports.insertAfter = exports.after = exports.wrapAll = exports.unwrap = exports.wrapInner = exports.wrap = exports.prepend = exports.append = exports.prependTo = exports.appendTo = exports._makeDomArray = void 0;
|
||||
var domhandler_1 = require("domhandler");
|
||||
var parse_js_1 = require("../parse.js");
|
||||
var static_js_1 = require("../static.js");
|
||||
var utils_js_1 = require("../utils.js");
|
||||
var domutils_1 = require("domutils");
|
||||
/**
|
||||
* Create an array of nodes, recursing into arrays and parsing strings if necessary.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param elem - Elements to make an array of.
|
||||
* @param clone - Optionally clone nodes.
|
||||
* @returns The array of nodes.
|
||||
*/
|
||||
function _makeDomArray(elem, clone) {
|
||||
var _this = this;
|
||||
if (elem == null) {
|
||||
return [];
|
||||
}
|
||||
if ((0, utils_js_1.isCheerio)(elem)) {
|
||||
return clone ? (0, utils_js_1.cloneDom)(elem.get()) : elem.get();
|
||||
}
|
||||
if (Array.isArray(elem)) {
|
||||
return elem.reduce(function (newElems, el) { return newElems.concat(_this._makeDomArray(el, clone)); }, []);
|
||||
}
|
||||
if (typeof elem === 'string') {
|
||||
return this._parse(elem, this.options, false, null).children;
|
||||
}
|
||||
return clone ? (0, utils_js_1.cloneDom)([elem]) : [elem];
|
||||
}
|
||||
exports._makeDomArray = _makeDomArray;
|
||||
function _insert(concatenator) {
|
||||
return function () {
|
||||
var _this = this;
|
||||
var elems = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
elems[_i] = arguments[_i];
|
||||
}
|
||||
var lastIdx = this.length - 1;
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
if (!(0, domhandler_1.hasChildren)(el))
|
||||
return;
|
||||
var domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, _this._render(el.children))
|
||||
: elems;
|
||||
var dom = _this._makeDomArray(domSrc, i < lastIdx);
|
||||
concatenator(dom, el.children, el);
|
||||
});
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Modify an array in-place, removing some number of elements and adding new
|
||||
* elements directly following them.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param array - Target array to splice.
|
||||
* @param spliceIdx - Index at which to begin changing the array.
|
||||
* @param spliceCount - Number of elements to remove from the array.
|
||||
* @param newElems - Elements to insert into the array.
|
||||
* @param parent - The parent of the node.
|
||||
* @returns The spliced array.
|
||||
*/
|
||||
function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent) {
|
||||
var _a, _b;
|
||||
var spliceArgs = __spreadArray([
|
||||
spliceIdx,
|
||||
spliceCount
|
||||
], newElems, true);
|
||||
var prev = spliceIdx === 0 ? null : array[spliceIdx - 1];
|
||||
var next = spliceIdx + spliceCount >= array.length
|
||||
? null
|
||||
: array[spliceIdx + spliceCount];
|
||||
/*
|
||||
* Before splicing in new elements, ensure they do not already appear in the
|
||||
* current array.
|
||||
*/
|
||||
for (var idx = 0; idx < newElems.length; ++idx) {
|
||||
var node = newElems[idx];
|
||||
var oldParent = node.parent;
|
||||
if (oldParent) {
|
||||
var oldSiblings = oldParent.children;
|
||||
var prevIdx = oldSiblings.indexOf(node);
|
||||
if (prevIdx > -1) {
|
||||
oldParent.children.splice(prevIdx, 1);
|
||||
if (parent === oldParent && spliceIdx > prevIdx) {
|
||||
spliceArgs[0]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
node.parent = parent;
|
||||
if (node.prev) {
|
||||
node.prev.next = (_a = node.next) !== null && _a !== void 0 ? _a : null;
|
||||
}
|
||||
if (node.next) {
|
||||
node.next.prev = (_b = node.prev) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
node.prev = idx === 0 ? prev : newElems[idx - 1];
|
||||
node.next = idx === newElems.length - 1 ? next : newElems[idx + 1];
|
||||
}
|
||||
if (prev) {
|
||||
prev.next = newElems[0];
|
||||
}
|
||||
if (next) {
|
||||
next.prev = newElems[newElems.length - 1];
|
||||
}
|
||||
return array.splice.apply(array, spliceArgs);
|
||||
}
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the end of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').appendTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to append elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/appendTo/}
|
||||
*/
|
||||
function appendTo(target) {
|
||||
var appendTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
|
||||
appendTarget.append(this);
|
||||
return this;
|
||||
}
|
||||
exports.appendTo = appendTo;
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the beginning of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').prependTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to prepend elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/prependTo/}
|
||||
*/
|
||||
function prependTo(target) {
|
||||
var prependTarget = (0, utils_js_1.isCheerio)(target) ? target : this._make(target);
|
||||
prependTarget.prepend(this);
|
||||
return this;
|
||||
}
|
||||
exports.prependTo = prependTo;
|
||||
/**
|
||||
* Inserts content as the _last_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').append('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/append/}
|
||||
*/
|
||||
exports.append = _insert(function (dom, children, parent) {
|
||||
uniqueSplice(children, children.length, 0, dom, parent);
|
||||
});
|
||||
/**
|
||||
* Inserts content as the _first_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').prepend('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/prepend/}
|
||||
*/
|
||||
exports.prepend = _insert(function (dom, children, parent) {
|
||||
uniqueSplice(children, 0, 0, dom, parent);
|
||||
});
|
||||
function _wrap(insert) {
|
||||
return function (wrapper) {
|
||||
var lastIdx = this.length - 1;
|
||||
var lastParent = this.parents().last();
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
var el = this[i];
|
||||
var wrap_1 = typeof wrapper === 'function'
|
||||
? wrapper.call(el, i, el)
|
||||
: typeof wrapper === 'string' && !(0, utils_js_1.isHtml)(wrapper)
|
||||
? lastParent.find(wrapper).clone()
|
||||
: wrapper;
|
||||
var wrapperDom = this._makeDomArray(wrap_1, i < lastIdx)[0];
|
||||
if (!wrapperDom || !(0, domhandler_1.hasChildren)(wrapperDom))
|
||||
continue;
|
||||
var elInsertLocation = wrapperDom;
|
||||
/*
|
||||
* Find the deepest child. Only consider the first tag child of each node
|
||||
* (ignore text); stop if no children are found.
|
||||
*/
|
||||
var j = 0;
|
||||
while (j < elInsertLocation.children.length) {
|
||||
var child = elInsertLocation.children[j];
|
||||
if ((0, utils_js_1.isTag)(child)) {
|
||||
elInsertLocation = child;
|
||||
j = 0;
|
||||
}
|
||||
else {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
insert(el, elInsertLocation, [wrapperDom]);
|
||||
}
|
||||
return this;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* The .wrap() function can take any string or object that could be passed to
|
||||
* the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. A
|
||||
* copy of this structure will be wrapped around each of the elements in the set
|
||||
* of matched elements. This method returns the original set of elements for
|
||||
* chaining purposes.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrap(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="red-fruit">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrap(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="healthy">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </div>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around each element in the selection.
|
||||
* @see {@link https://api.jquery.com/wrap/}
|
||||
*/
|
||||
exports.wrap = _wrap(function (el, elInsertLocation, wrapperDom) {
|
||||
var parent = el.parent;
|
||||
if (!parent)
|
||||
return;
|
||||
var siblings = parent.children;
|
||||
var index = siblings.indexOf(el);
|
||||
(0, parse_js_1.update)([el], elInsertLocation);
|
||||
/*
|
||||
* The previous operation removed the current element from the `siblings`
|
||||
* array, so the `dom` array can be inserted without removing any
|
||||
* additional elements.
|
||||
*/
|
||||
uniqueSplice(siblings, index, 0, wrapperDom, parent);
|
||||
});
|
||||
/**
|
||||
* The .wrapInner() function can take any string or object that could be passed
|
||||
* to the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around the content of each of the elements in the
|
||||
* set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrapInner(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="red-fruit">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrapInner(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="healthy">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">
|
||||
* // <div class="healthy">Orange</div>
|
||||
* // </li>
|
||||
* // <li class="pear">
|
||||
* // <div class="healthy">Pear</div>
|
||||
* // </li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around the content of each element
|
||||
* in the selection.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/wrapInner/}
|
||||
*/
|
||||
exports.wrapInner = _wrap(function (el, elInsertLocation, wrapperDom) {
|
||||
if (!(0, domhandler_1.hasChildren)(el))
|
||||
return;
|
||||
(0, parse_js_1.update)(el.children, elInsertLocation);
|
||||
(0, parse_js_1.update)(wrapperDom, el);
|
||||
});
|
||||
/**
|
||||
* The .unwrap() function, removes the parents of the set of matched elements
|
||||
* from the DOM, leaving the matched elements in their place.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>without selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <div><p>Hello</p></div>\n <div><p>World</p></div>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap();
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>with selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <p>Hello</p>\n <b><p>World</p></b>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap('b');
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @param selector - A selector to check the parent element against. If an
|
||||
* element's parent does not match the selector, the element won't be unwrapped.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/unwrap/}
|
||||
*/
|
||||
function unwrap(selector) {
|
||||
var _this = this;
|
||||
this.parent(selector)
|
||||
.not('body')
|
||||
.each(function (_, el) {
|
||||
_this._make(el).replaceWith(el.children);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
exports.unwrap = unwrap;
|
||||
/**
|
||||
* The .wrapAll() function can take any string or object that could be passed to
|
||||
* the $() function to specify a DOM structure. This structure may be nested
|
||||
* several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around all of the elements in the set of matched
|
||||
* elements, as a single group.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>With markup passed to `wrapAll`</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="container"><div class="inner">First</div><div class="inner">Second</div></div>'
|
||||
* );
|
||||
* $('.inner').wrapAll("<div class='new'></div>");
|
||||
*
|
||||
* //=> <div class="container">
|
||||
* // <div class='new'>
|
||||
* // <div class="inner">First</div>
|
||||
* // <div class="inner">Second</div>
|
||||
* // </div>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>With an existing cheerio instance</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<span>Span 1</span><strong>Strong</strong><span>Span 2</span>'
|
||||
* );
|
||||
* const wrap = $('<div><p><em><b></b></em></p></div>');
|
||||
* $('span').wrapAll(wrap);
|
||||
*
|
||||
* //=> <div>
|
||||
* // <p>
|
||||
* // <em>
|
||||
* // <b>
|
||||
* // <span>Span 1</span>
|
||||
* // <span>Span 2</span>
|
||||
* // </b>
|
||||
* // </em>
|
||||
* // </p>
|
||||
* // </div>
|
||||
* // <strong>Strong</strong>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around all matched elements in the
|
||||
* selection.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/wrapAll/}
|
||||
*/
|
||||
function wrapAll(wrapper) {
|
||||
var el = this[0];
|
||||
if (el) {
|
||||
var wrap_2 = this._make(typeof wrapper === 'function' ? wrapper.call(el, 0, el) : wrapper).insertBefore(el);
|
||||
// If html is given as wrapper, wrap may contain text elements
|
||||
var elInsertLocation = void 0;
|
||||
for (var i = 0; i < wrap_2.length; i++) {
|
||||
if (wrap_2[i].type === 'tag')
|
||||
elInsertLocation = wrap_2[i];
|
||||
}
|
||||
var j = 0;
|
||||
/*
|
||||
* Find the deepest child. Only consider the first tag child of each node
|
||||
* (ignore text); stop if no children are found.
|
||||
*/
|
||||
while (elInsertLocation && j < elInsertLocation.children.length) {
|
||||
var child = elInsertLocation.children[j];
|
||||
if (child.type === 'tag') {
|
||||
elInsertLocation = child;
|
||||
j = 0;
|
||||
}
|
||||
else {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
if (elInsertLocation)
|
||||
this._make(elInsertLocation).append(this);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
exports.wrapAll = wrapAll;
|
||||
/* eslint-disable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert content next to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').after('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert after each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/after/}
|
||||
*/
|
||||
function after() {
|
||||
var _this = this;
|
||||
var elems = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
elems[_i] = arguments[_i];
|
||||
}
|
||||
var lastIdx = this.length - 1;
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
var parent = el.parent;
|
||||
if (!(0, domhandler_1.hasChildren)(el) || !parent) {
|
||||
return;
|
||||
}
|
||||
var siblings = parent.children;
|
||||
var index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
var domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, _this._render(el.children))
|
||||
: elems;
|
||||
var dom = _this._makeDomArray(domSrc, i < lastIdx);
|
||||
// Add element after `this` element
|
||||
uniqueSplice(siblings, index + 1, 0, dom, parent);
|
||||
});
|
||||
}
|
||||
exports.after = after;
|
||||
/* eslint-enable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert every element in the set of matched elements after the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertAfter('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements after.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertAfter/}
|
||||
*/
|
||||
function insertAfter(target) {
|
||||
var _this = this;
|
||||
if (typeof target === 'string') {
|
||||
target = this._make(target);
|
||||
}
|
||||
this.remove();
|
||||
var clones = [];
|
||||
this._makeDomArray(target).forEach(function (el) {
|
||||
var clonedSelf = _this.clone().toArray();
|
||||
var parent = el.parent;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
var siblings = parent.children;
|
||||
var index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
// Add cloned `this` element(s) after target element
|
||||
uniqueSplice(siblings, index + 1, 0, clonedSelf, parent);
|
||||
clones.push.apply(clones, clonedSelf);
|
||||
});
|
||||
return this._make(clones);
|
||||
}
|
||||
exports.insertAfter = insertAfter;
|
||||
/* eslint-disable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert content previous to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').before('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert before each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/before/}
|
||||
*/
|
||||
function before() {
|
||||
var _this = this;
|
||||
var elems = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
elems[_i] = arguments[_i];
|
||||
}
|
||||
var lastIdx = this.length - 1;
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
var parent = el.parent;
|
||||
if (!(0, domhandler_1.hasChildren)(el) || !parent) {
|
||||
return;
|
||||
}
|
||||
var siblings = parent.children;
|
||||
var index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
var domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, _this._render(el.children))
|
||||
: elems;
|
||||
var dom = _this._makeDomArray(domSrc, i < lastIdx);
|
||||
// Add element before `el` element
|
||||
uniqueSplice(siblings, index, 0, dom, parent);
|
||||
});
|
||||
}
|
||||
exports.before = before;
|
||||
/* eslint-enable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert every element in the set of matched elements before the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertBefore('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements before.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertBefore/}
|
||||
*/
|
||||
function insertBefore(target) {
|
||||
var _this = this;
|
||||
var targetArr = this._make(target);
|
||||
this.remove();
|
||||
var clones = [];
|
||||
(0, utils_js_1.domEach)(targetArr, function (el) {
|
||||
var clonedSelf = _this.clone().toArray();
|
||||
var parent = el.parent;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
var siblings = parent.children;
|
||||
var index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
// Add cloned `this` element(s) after target element
|
||||
uniqueSplice(siblings, index, 0, clonedSelf, parent);
|
||||
clones.push.apply(clones, clonedSelf);
|
||||
});
|
||||
return this._make(clones);
|
||||
}
|
||||
exports.insertBefore = insertBefore;
|
||||
/**
|
||||
* Removes the set of matched elements from the DOM and all their children.
|
||||
* `selector` filters the set of matched elements to be removed.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').remove();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param selector - Optional selector for elements to remove.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/remove/}
|
||||
*/
|
||||
function remove(selector) {
|
||||
// Filter if we have selector
|
||||
var elems = selector ? this.filter(selector) : this;
|
||||
(0, utils_js_1.domEach)(elems, function (el) {
|
||||
(0, domutils_1.removeElement)(el);
|
||||
el.prev = el.next = el.parent = null;
|
||||
});
|
||||
return this;
|
||||
}
|
||||
exports.remove = remove;
|
||||
/**
|
||||
* Replaces matched elements with `content`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const plum = $('<li class="plum">Plum</li>');
|
||||
* $('.pear').replaceWith(plum);
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - Replacement for matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/replaceWith/}
|
||||
*/
|
||||
function replaceWith(content) {
|
||||
var _this = this;
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
var parent = el.parent;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
var siblings = parent.children;
|
||||
var cont = typeof content === 'function' ? content.call(el, i, el) : content;
|
||||
var dom = _this._makeDomArray(cont);
|
||||
/*
|
||||
* In the case that `dom` contains nodes that already exist in other
|
||||
* structures, ensure those nodes are properly removed.
|
||||
*/
|
||||
(0, parse_js_1.update)(dom, null);
|
||||
var index = siblings.indexOf(el);
|
||||
// Completely remove old element
|
||||
uniqueSplice(siblings, index, 1, dom, parent);
|
||||
if (!dom.includes(el)) {
|
||||
el.parent = el.prev = el.next = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.replaceWith = replaceWith;
|
||||
/**
|
||||
* Empties an element, removing all its children.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').empty();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/empty/}
|
||||
*/
|
||||
function empty() {
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, domhandler_1.hasChildren)(el))
|
||||
return;
|
||||
el.children.forEach(function (child) {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
el.children.length = 0;
|
||||
});
|
||||
}
|
||||
exports.empty = empty;
|
||||
function html(str) {
|
||||
var _this = this;
|
||||
if (str === undefined) {
|
||||
var el = this[0];
|
||||
if (!el || !(0, domhandler_1.hasChildren)(el))
|
||||
return null;
|
||||
return this._render(el.children);
|
||||
}
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, domhandler_1.hasChildren)(el))
|
||||
return;
|
||||
el.children.forEach(function (child) {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
var content = (0, utils_js_1.isCheerio)(str)
|
||||
? str.toArray()
|
||||
: _this._parse("".concat(str), _this.options, false, el).children;
|
||||
(0, parse_js_1.update)(content, el);
|
||||
});
|
||||
}
|
||||
exports.html = html;
|
||||
/**
|
||||
* Turns the collection to a string. Alias for `.html()`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
function toString() {
|
||||
return this._render(this);
|
||||
}
|
||||
exports.toString = toString;
|
||||
function text(str) {
|
||||
var _this = this;
|
||||
// If `str` is undefined, act as a "getter"
|
||||
if (str === undefined) {
|
||||
return (0, static_js_1.text)(this);
|
||||
}
|
||||
if (typeof str === 'function') {
|
||||
// Function support
|
||||
return (0, utils_js_1.domEach)(this, function (el, i) {
|
||||
return _this._make(el).text(str.call(el, i, (0, static_js_1.text)([el])));
|
||||
});
|
||||
}
|
||||
// Append text node to each selected elements
|
||||
return (0, utils_js_1.domEach)(this, function (el) {
|
||||
if (!(0, domhandler_1.hasChildren)(el))
|
||||
return;
|
||||
el.children.forEach(function (child) {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
var textNode = new domhandler_1.Text("".concat(str));
|
||||
(0, parse_js_1.update)(textNode, el);
|
||||
});
|
||||
}
|
||||
exports.text = text;
|
||||
/**
|
||||
* Clone the cheerio object.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const moreFruit = $('#fruits').clone();
|
||||
* ```
|
||||
*
|
||||
* @returns The cloned object.
|
||||
* @see {@link https://api.jquery.com/clone/}
|
||||
*/
|
||||
function clone() {
|
||||
return this._make((0, utils_js_1.cloneDom)(this.get()));
|
||||
}
|
||||
exports.clone = clone;
|
||||
//# sourceMappingURL=manipulation.js.map
|
||||
1
node_modules/cheerio/lib/api/manipulation.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/manipulation.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
644
node_modules/cheerio/lib/api/traversing.d.ts
generated
vendored
Normal file
644
node_modules/cheerio/lib/api/traversing.d.ts
generated
vendored
Normal file
@@ -0,0 +1,644 @@
|
||||
/**
|
||||
* Methods for traversing the DOM structure.
|
||||
*
|
||||
* @module cheerio/traversing
|
||||
*/
|
||||
import { AnyNode, Element, Document } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
import type { AcceptedFilters } from '../types.js';
|
||||
/**
|
||||
* Get the descendants of each element in the current set of matched elements,
|
||||
* filtered by a selector, jQuery object, or element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').find('li').length;
|
||||
* //=> 3
|
||||
* $('#fruits').find($('.apple')).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The found elements.
|
||||
* @see {@link https://api.jquery.com/find/}
|
||||
*/
|
||||
export declare function find<T extends AnyNode>(this: Cheerio<T>, selectorOrHaystack?: string | Cheerio<Element> | Element): Cheerio<Element>;
|
||||
/**
|
||||
* Get the parent of each element in the current set of matched elements,
|
||||
* optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').parent().attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parent.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parent/}
|
||||
*/
|
||||
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get a set of parents filtered by `selector` of each element in the current
|
||||
* set of match elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parents().length;
|
||||
* //=> 2
|
||||
* $('.orange').parents('#fruits').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parents/}
|
||||
*/
|
||||
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get the ancestors of each element in the current set of matched elements, up
|
||||
* to but not including the element matched by the selector, DOM node, or cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parentsUntil('#food').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - Optional filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parentsUntil/}
|
||||
*/
|
||||
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* For each element in the set, get the first element that matches the selector
|
||||
* by testing the element itself and traversing up through its ancestors in the DOM tree.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').closest();
|
||||
* //=> []
|
||||
*
|
||||
* $('.orange').closest('.apple');
|
||||
* // => []
|
||||
*
|
||||
* $('.orange').closest('li');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
*
|
||||
* $('.orange').closest('#fruits');
|
||||
* //=> [<ul id="fruits"> ... </ul>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the element to find.
|
||||
* @returns The closest nodes.
|
||||
* @see {@link https://api.jquery.com/closest/}
|
||||
*/
|
||||
export declare function closest<T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Gets the next sibling of the first selected element, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').next().hasClass('orange');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for sibling.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/next/}
|
||||
*/
|
||||
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the following siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="pear">Pear</li>]
|
||||
* $('.apple').nextAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextAll/}
|
||||
*/
|
||||
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the following siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextUntil('.pear');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextUntil/}
|
||||
*/
|
||||
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the previous sibling of the first selected element optionally filtered
|
||||
* by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').prev().hasClass('apple');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prev/}
|
||||
*/
|
||||
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the preceding siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="apple">Apple</li>]
|
||||
*
|
||||
* $('.pear').prevAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevAll/}
|
||||
*/
|
||||
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the preceding siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevUntil('.apple');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevUntil/}
|
||||
*/
|
||||
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get the siblings of each element (excluding the element) in the set of
|
||||
* matched elements, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').siblings().length;
|
||||
* //=> 2
|
||||
*
|
||||
* $('.pear').siblings('.orange').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The siblings.
|
||||
* @see {@link https://api.jquery.com/siblings/}
|
||||
*/
|
||||
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the element children of each element in the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().length;
|
||||
* //=> 3
|
||||
*
|
||||
* $('#fruits').children('.pear').text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for children.
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/children/}
|
||||
*/
|
||||
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the children of each element in the set of matched elements, including
|
||||
* text and comment nodes.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').contents().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/contents/}
|
||||
*/
|
||||
export declare function contents<T extends AnyNode>(this: Cheerio<T>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Iterates over a cheerio object, executing a function for each matched
|
||||
* element. When the callback is fired, the function is fired in the context of
|
||||
* the DOM element, so `this` refers to the current element, which is equivalent
|
||||
* to the function parameter `element`. To break out of the `each` loop early,
|
||||
* return with `false`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const fruits = [];
|
||||
*
|
||||
* $('li').each(function (i, elem) {
|
||||
* fruits[i] = $(this).text();
|
||||
* });
|
||||
*
|
||||
* fruits.join(', ');
|
||||
* //=> Apple, Orange, Pear
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The instance itself, useful for chaining.
|
||||
* @see {@link https://api.jquery.com/each/}
|
||||
*/
|
||||
export declare function each<T>(this: Cheerio<T>, fn: (this: T, i: number, el: T) => void | boolean): Cheerio<T>;
|
||||
/**
|
||||
* Pass each element in the current matched set through a function, producing a
|
||||
* new Cheerio object containing the return values. The function can return an
|
||||
* individual data item or an array of data items to be inserted into the
|
||||
* resulting set. If an array is returned, the elements inside the array are
|
||||
* inserted into the set. If the function returns null or undefined, no element
|
||||
* will be inserted.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .map(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).text();
|
||||
* })
|
||||
* .toArray()
|
||||
* .join(' ');
|
||||
* //=> "apple orange pear"
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The mapped elements, wrapped in a Cheerio collection.
|
||||
* @see {@link https://api.jquery.com/map/}
|
||||
*/
|
||||
export declare function map<T, M>(this: Cheerio<T>, fn: (this: T, i: number, el: T) => M[] | M | null | undefined): Cheerio<M>;
|
||||
/**
|
||||
* Iterates over a cheerio object, reducing the set of selector elements to
|
||||
* those that match the selector or pass the function's test.
|
||||
*
|
||||
* This is the definition for using type guards; have a look below for other
|
||||
* ways to invoke this method. The function is executed in the context of the
|
||||
* selected element, so `this` refers to the current element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .filter(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* })
|
||||
* .attr('class'); //=> orange
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/filter/}
|
||||
*/
|
||||
export declare function filter<T, S extends T>(this: Cheerio<T>, match: (this: T, index: number, value: T) => value is S): Cheerio<S>;
|
||||
/**
|
||||
* Iterates over a cheerio object, reducing the set of selector elements to
|
||||
* those that match the selector or pass the function's test.
|
||||
*
|
||||
* - When a Cheerio selection is specified, return only the elements contained in
|
||||
* that selection.
|
||||
* - When an element is specified, return only that element (if it is contained in
|
||||
* the original selection).
|
||||
* - If using the function method, the function is executed in the context of the
|
||||
* selected element, so `this` refers to the current element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').filter('.orange').attr('class');
|
||||
* //=> orange
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .filter(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* })
|
||||
* .attr('class'); //=> orange
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above. See
|
||||
* {@link AcceptedFilters}.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/filter/}
|
||||
*/
|
||||
export declare function filter<T, S extends AcceptedFilters<T>>(this: Cheerio<T>, match: S): Cheerio<S extends string ? Element : T>;
|
||||
export declare function filterArray<T>(nodes: T[], match: AcceptedFilters<T>, xmlMode?: boolean, root?: Document): Element[] | T[];
|
||||
/**
|
||||
* Checks the current list of elements and returns `true` if _any_ of the
|
||||
* elements match the selector. If using an element or Cheerio selection,
|
||||
* returns `true` if _any_ of the elements match. If using a predicate function,
|
||||
* the function is executed in the context of the selected element, so `this`
|
||||
* refers to the current element.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param selector - Selector for the selection.
|
||||
* @returns Whether or not the selector matches an element of the instance.
|
||||
* @see {@link https://api.jquery.com/is/}
|
||||
*/
|
||||
export declare function is<T>(this: Cheerio<T>, selector?: AcceptedFilters<T>): boolean;
|
||||
/**
|
||||
* Remove elements from the set of matched elements. Given a Cheerio object that
|
||||
* represents a set of DOM elements, the `.not()` method constructs a new
|
||||
* Cheerio object from a subset of the matching elements. The supplied selector
|
||||
* is tested against each element; the elements that don't match the selector
|
||||
* will be included in the result.
|
||||
*
|
||||
* The `.not()` method can take a function as its argument in the same way that
|
||||
* `.filter()` does. Elements for which the function returns `true` are excluded
|
||||
* from the filtered set; all other elements are included.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not('.apple').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* }).length; //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @param container - Optional node to filter instead.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/not/}
|
||||
*/
|
||||
export declare function not<T extends AnyNode>(this: Cheerio<T>, match: AcceptedFilters<T>): Cheerio<T>;
|
||||
/**
|
||||
* Filters the set of matched elements to only those which have the given DOM
|
||||
* element as a descendant or which have a descendant that matches the given
|
||||
* selector. Equivalent to `.filter(':has(selector)')`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has('.pear').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Element</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has($('.pear')[0]).attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/has/}
|
||||
*/
|
||||
export declare function has(this: Cheerio<AnyNode | Element>, selectorOrHaystack: string | Cheerio<Element> | Element): Cheerio<AnyNode | Element>;
|
||||
/**
|
||||
* Will select the first element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().first().text();
|
||||
* //=> Apple
|
||||
* ```
|
||||
*
|
||||
* @returns The first element.
|
||||
* @see {@link https://api.jquery.com/first/}
|
||||
*/
|
||||
export declare function first<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Will select the last element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().last().text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The last element.
|
||||
* @see {@link https://api.jquery.com/last/}
|
||||
*/
|
||||
export declare function last<T>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Reduce the set of matched elements to the one at the specified index. Use
|
||||
* `.eq(-i)` to count backwards from the last selected element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('li').eq(-1).text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param i - Index of the element to select.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/eq/}
|
||||
*/
|
||||
export declare function eq<T>(this: Cheerio<T>, i: number): Cheerio<T>;
|
||||
/**
|
||||
* Retrieve one of the elements matched by the Cheerio object, at the `i`th position.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').get(0).tagName;
|
||||
* //=> li
|
||||
* ```
|
||||
*
|
||||
* @param i - Element to retrieve.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/get/}
|
||||
*/
|
||||
export declare function get<T>(this: Cheerio<T>, i: number): T | undefined;
|
||||
/**
|
||||
* Retrieve all elements matched by the Cheerio object, as an array.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').get().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns All elements matched by the Cheerio object.
|
||||
* @see {@link https://api.jquery.com/get/}
|
||||
*/
|
||||
export declare function get<T>(this: Cheerio<T>): T[];
|
||||
/**
|
||||
* Retrieve all the DOM elements contained in the jQuery set as an array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').toArray();
|
||||
* //=> [ {...}, {...}, {...} ]
|
||||
* ```
|
||||
*
|
||||
* @returns The contained items.
|
||||
*/
|
||||
export declare function toArray<T>(this: Cheerio<T>): T[];
|
||||
/**
|
||||
* Search for a given element from among the matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').index();
|
||||
* //=> 2 $('.orange').index('li');
|
||||
* //=> 1
|
||||
* $('.apple').index($('#fruit, li'));
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrNeedle - Element to look for.
|
||||
* @returns The index of the element.
|
||||
* @see {@link https://api.jquery.com/index/}
|
||||
*/
|
||||
export declare function index<T extends AnyNode>(this: Cheerio<T>, selectorOrNeedle?: string | Cheerio<AnyNode> | AnyNode): number;
|
||||
/**
|
||||
* Gets the elements matching the specified range (0-based position).
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').slice(1).eq(0).text();
|
||||
* //=> 'Orange'
|
||||
*
|
||||
* $('li').slice(1, 2).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @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 - A position at which the elements stop being selected. If
|
||||
* negative, it indicates an offset from the end of the set. If omitted, the
|
||||
* range continues until the end of the set.
|
||||
* @returns The elements matching the specified range.
|
||||
* @see {@link https://api.jquery.com/slice/}
|
||||
*/
|
||||
export declare function slice<T>(this: Cheerio<T>, start?: number, end?: number): Cheerio<T>;
|
||||
/**
|
||||
* End the most recent filtering operation in the current chain and return the
|
||||
* set of matched elements to its previous state.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).end().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The previous state of the set of matched elements.
|
||||
* @see {@link https://api.jquery.com/end/}
|
||||
*/
|
||||
export declare function end<T>(this: Cheerio<T>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Add elements to the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').add('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param other - Elements to add.
|
||||
* @param context - Optionally the context of the new selection.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/add/}
|
||||
*/
|
||||
export declare function add<S extends AnyNode, T extends AnyNode>(this: Cheerio<T>, other: string | Cheerio<S> | S | S[], context?: Cheerio<S> | string): Cheerio<S | T>;
|
||||
/**
|
||||
* Add the previous set of elements on the stack to the current set, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).addBack('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the elements to add.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/addBack/}
|
||||
*/
|
||||
export declare function addBack<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<AnyNode>;
|
||||
//# sourceMappingURL=traversing.d.ts.map
|
||||
1
node_modules/cheerio/lib/api/traversing.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/traversing.d.ts.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
907
node_modules/cheerio/lib/api/traversing.js
generated
vendored
Normal file
907
node_modules/cheerio/lib/api/traversing.js
generated
vendored
Normal file
@@ -0,0 +1,907 @@
|
||||
"use strict";
|
||||
/**
|
||||
* Methods for traversing the DOM structure.
|
||||
*
|
||||
* @module cheerio/traversing
|
||||
*/
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
||||
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
||||
if (ar || !(i in from)) {
|
||||
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
||||
ar[i] = from[i];
|
||||
}
|
||||
}
|
||||
return to.concat(ar || Array.prototype.slice.call(from));
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.addBack = exports.add = exports.end = exports.slice = exports.index = exports.toArray = exports.get = exports.eq = exports.last = exports.first = exports.has = exports.not = exports.is = exports.filterArray = exports.filter = exports.map = exports.each = exports.contents = exports.children = exports.siblings = exports.prevUntil = exports.prevAll = exports.prev = exports.nextUntil = exports.nextAll = exports.next = exports.closest = exports.parentsUntil = exports.parents = exports.parent = exports.find = void 0;
|
||||
var domhandler_1 = require("domhandler");
|
||||
var select = __importStar(require("cheerio-select"));
|
||||
var utils_js_1 = require("../utils.js");
|
||||
var static_js_1 = require("../static.js");
|
||||
var domutils_1 = require("domutils");
|
||||
var reSiblingSelector = /^\s*[~+]/;
|
||||
/**
|
||||
* Get the descendants of each element in the current set of matched elements,
|
||||
* filtered by a selector, jQuery object, or element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').find('li').length;
|
||||
* //=> 3
|
||||
* $('#fruits').find($('.apple')).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The found elements.
|
||||
* @see {@link https://api.jquery.com/find/}
|
||||
*/
|
||||
function find(selectorOrHaystack) {
|
||||
var _a;
|
||||
if (!selectorOrHaystack) {
|
||||
return this._make([]);
|
||||
}
|
||||
var context = this.toArray();
|
||||
if (typeof selectorOrHaystack !== 'string') {
|
||||
var haystack = (0, utils_js_1.isCheerio)(selectorOrHaystack)
|
||||
? selectorOrHaystack.toArray()
|
||||
: [selectorOrHaystack];
|
||||
return this._make(haystack.filter(function (elem) { return context.some(function (node) { return (0, static_js_1.contains)(node, elem); }); }));
|
||||
}
|
||||
var elems = reSiblingSelector.test(selectorOrHaystack)
|
||||
? context
|
||||
: this.children().toArray();
|
||||
var options = {
|
||||
context: context,
|
||||
root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0],
|
||||
// Pass options that are recognized by `cheerio-select`
|
||||
xmlMode: this.options.xmlMode,
|
||||
lowerCaseTags: this.options.lowerCaseTags,
|
||||
lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
|
||||
pseudos: this.options.pseudos,
|
||||
quirksMode: this.options.quirksMode,
|
||||
};
|
||||
return this._make(select.select(selectorOrHaystack, elems, options));
|
||||
}
|
||||
exports.find = find;
|
||||
/**
|
||||
* Creates a matcher, using a particular mapping function. Matchers provide a
|
||||
* function that finds elements using a generating function, supporting filtering.
|
||||
*
|
||||
* @private
|
||||
* @param matchMap - Mapping function.
|
||||
* @returns - Function for wrapping generating functions.
|
||||
*/
|
||||
function _getMatcher(matchMap) {
|
||||
return function (fn) {
|
||||
var postFns = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
postFns[_i - 1] = arguments[_i];
|
||||
}
|
||||
return function (selector) {
|
||||
var _a;
|
||||
var matched = matchMap(fn, this);
|
||||
if (selector) {
|
||||
matched = filterArray(matched, selector, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0]);
|
||||
}
|
||||
return this._make(
|
||||
// Post processing is only necessary if there is more than one element.
|
||||
this.length > 1 && matched.length > 1
|
||||
? postFns.reduce(function (elems, fn) { return fn(elems); }, matched)
|
||||
: matched);
|
||||
};
|
||||
};
|
||||
}
|
||||
/** Matcher that adds multiple elements for each entry in the input. */
|
||||
var _matcher = _getMatcher(function (fn, elems) {
|
||||
var _a;
|
||||
var ret = [];
|
||||
for (var i = 0; i < elems.length; i++) {
|
||||
var value = fn(elems[i]);
|
||||
ret.push(value);
|
||||
}
|
||||
return (_a = new Array()).concat.apply(_a, ret);
|
||||
});
|
||||
/** Matcher that adds at most one element for each entry in the input. */
|
||||
var _singleMatcher = _getMatcher(function (fn, elems) {
|
||||
var ret = [];
|
||||
for (var i = 0; i < elems.length; i++) {
|
||||
var value = fn(elems[i]);
|
||||
if (value !== null) {
|
||||
ret.push(value);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
});
|
||||
/**
|
||||
* Matcher that supports traversing until a condition is met.
|
||||
*
|
||||
* @returns A function usable for `*Until` methods.
|
||||
*/
|
||||
function _matchUntil(nextElem) {
|
||||
var postFns = [];
|
||||
for (var _i = 1; _i < arguments.length; _i++) {
|
||||
postFns[_i - 1] = arguments[_i];
|
||||
}
|
||||
// We use a variable here that is used from within the matcher.
|
||||
var matches = null;
|
||||
var innerMatcher = _getMatcher(function (nextElem, elems) {
|
||||
var matched = [];
|
||||
(0, utils_js_1.domEach)(elems, function (elem) {
|
||||
for (var next_1; (next_1 = nextElem(elem)); elem = next_1) {
|
||||
// FIXME: `matched` might contain duplicates here and the index is too large.
|
||||
if (matches === null || matches === void 0 ? void 0 : matches(next_1, matched.length))
|
||||
break;
|
||||
matched.push(next_1);
|
||||
}
|
||||
});
|
||||
return matched;
|
||||
}).apply(void 0, __spreadArray([nextElem], postFns, false));
|
||||
return function (selector, filterSelector) {
|
||||
var _this = this;
|
||||
// Override `matches` variable with the new target.
|
||||
matches =
|
||||
typeof selector === 'string'
|
||||
? function (elem) { return select.is(elem, selector, _this.options); }
|
||||
: selector
|
||||
? getFilterFn(selector)
|
||||
: null;
|
||||
var ret = innerMatcher.call(this, filterSelector);
|
||||
// Set `matches` to `null`, so we don't waste memory.
|
||||
matches = null;
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
function _removeDuplicates(elems) {
|
||||
return Array.from(new Set(elems));
|
||||
}
|
||||
/**
|
||||
* Get the parent of each element in the current set of matched elements,
|
||||
* optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').parent().attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parent.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parent/}
|
||||
*/
|
||||
exports.parent = _singleMatcher(function (_a) {
|
||||
var parent = _a.parent;
|
||||
return (parent && !(0, domhandler_1.isDocument)(parent) ? parent : null);
|
||||
}, _removeDuplicates);
|
||||
/**
|
||||
* Get a set of parents filtered by `selector` of each element in the current
|
||||
* set of match elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parents().length;
|
||||
* //=> 2
|
||||
* $('.orange').parents('#fruits').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parents/}
|
||||
*/
|
||||
exports.parents = _matcher(function (elem) {
|
||||
var matched = [];
|
||||
while (elem.parent && !(0, domhandler_1.isDocument)(elem.parent)) {
|
||||
matched.push(elem.parent);
|
||||
elem = elem.parent;
|
||||
}
|
||||
return matched;
|
||||
}, domutils_1.uniqueSort, function (elems) { return elems.reverse(); });
|
||||
/**
|
||||
* Get the ancestors of each element in the current set of matched elements, up
|
||||
* to but not including the element matched by the selector, DOM node, or cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parentsUntil('#food').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - Optional filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parentsUntil/}
|
||||
*/
|
||||
exports.parentsUntil = _matchUntil(function (_a) {
|
||||
var parent = _a.parent;
|
||||
return (parent && !(0, domhandler_1.isDocument)(parent) ? parent : null);
|
||||
}, domutils_1.uniqueSort, function (elems) { return elems.reverse(); });
|
||||
/**
|
||||
* For each element in the set, get the first element that matches the selector
|
||||
* by testing the element itself and traversing up through its ancestors in the DOM tree.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').closest();
|
||||
* //=> []
|
||||
*
|
||||
* $('.orange').closest('.apple');
|
||||
* // => []
|
||||
*
|
||||
* $('.orange').closest('li');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
*
|
||||
* $('.orange').closest('#fruits');
|
||||
* //=> [<ul id="fruits"> ... </ul>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the element to find.
|
||||
* @returns The closest nodes.
|
||||
* @see {@link https://api.jquery.com/closest/}
|
||||
*/
|
||||
function closest(selector) {
|
||||
var _a;
|
||||
var set = [];
|
||||
if (!selector) {
|
||||
return this._make(set);
|
||||
}
|
||||
var selectOpts = {
|
||||
xmlMode: this.options.xmlMode,
|
||||
root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0],
|
||||
};
|
||||
var selectFn = typeof selector === 'string'
|
||||
? function (elem) { return select.is(elem, selector, selectOpts); }
|
||||
: getFilterFn(selector);
|
||||
(0, utils_js_1.domEach)(this, function (elem) {
|
||||
while (elem && (0, utils_js_1.isTag)(elem)) {
|
||||
if (selectFn(elem, 0)) {
|
||||
// Do not add duplicate elements to the set
|
||||
if (!set.includes(elem)) {
|
||||
set.push(elem);
|
||||
}
|
||||
break;
|
||||
}
|
||||
elem = elem.parent;
|
||||
}
|
||||
});
|
||||
return this._make(set);
|
||||
}
|
||||
exports.closest = closest;
|
||||
/**
|
||||
* Gets the next sibling of the first selected element, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').next().hasClass('orange');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for sibling.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/next/}
|
||||
*/
|
||||
exports.next = _singleMatcher(function (elem) { return (0, domutils_1.nextElementSibling)(elem); });
|
||||
/**
|
||||
* Gets all the following siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="pear">Pear</li>]
|
||||
* $('.apple').nextAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextAll/}
|
||||
*/
|
||||
exports.nextAll = _matcher(function (elem) {
|
||||
var matched = [];
|
||||
while (elem.next) {
|
||||
elem = elem.next;
|
||||
if ((0, utils_js_1.isTag)(elem))
|
||||
matched.push(elem);
|
||||
}
|
||||
return matched;
|
||||
}, _removeDuplicates);
|
||||
/**
|
||||
* Gets all the following siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextUntil('.pear');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextUntil/}
|
||||
*/
|
||||
exports.nextUntil = _matchUntil(function (el) { return (0, domutils_1.nextElementSibling)(el); }, _removeDuplicates);
|
||||
/**
|
||||
* Gets the previous sibling of the first selected element optionally filtered
|
||||
* by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').prev().hasClass('apple');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prev/}
|
||||
*/
|
||||
exports.prev = _singleMatcher(function (elem) { return (0, domutils_1.prevElementSibling)(elem); });
|
||||
/**
|
||||
* Gets all the preceding siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="apple">Apple</li>]
|
||||
*
|
||||
* $('.pear').prevAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevAll/}
|
||||
*/
|
||||
exports.prevAll = _matcher(function (elem) {
|
||||
var matched = [];
|
||||
while (elem.prev) {
|
||||
elem = elem.prev;
|
||||
if ((0, utils_js_1.isTag)(elem))
|
||||
matched.push(elem);
|
||||
}
|
||||
return matched;
|
||||
}, _removeDuplicates);
|
||||
/**
|
||||
* Gets all the preceding siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevUntil('.apple');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevUntil/}
|
||||
*/
|
||||
exports.prevUntil = _matchUntil(function (el) { return (0, domutils_1.prevElementSibling)(el); }, _removeDuplicates);
|
||||
/**
|
||||
* Get the siblings of each element (excluding the element) in the set of
|
||||
* matched elements, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').siblings().length;
|
||||
* //=> 2
|
||||
*
|
||||
* $('.pear').siblings('.orange').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The siblings.
|
||||
* @see {@link https://api.jquery.com/siblings/}
|
||||
*/
|
||||
exports.siblings = _matcher(function (elem) {
|
||||
return (0, domutils_1.getSiblings)(elem).filter(function (el) { return (0, utils_js_1.isTag)(el) && el !== elem; });
|
||||
}, domutils_1.uniqueSort);
|
||||
/**
|
||||
* Gets the element children of each element in the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().length;
|
||||
* //=> 3
|
||||
*
|
||||
* $('#fruits').children('.pear').text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for children.
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/children/}
|
||||
*/
|
||||
exports.children = _matcher(function (elem) { return (0, domutils_1.getChildren)(elem).filter(utils_js_1.isTag); }, _removeDuplicates);
|
||||
/**
|
||||
* Gets the children of each element in the set of matched elements, including
|
||||
* text and comment nodes.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').contents().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/contents/}
|
||||
*/
|
||||
function contents() {
|
||||
var elems = this.toArray().reduce(function (newElems, elem) {
|
||||
return (0, domhandler_1.hasChildren)(elem) ? newElems.concat(elem.children) : newElems;
|
||||
}, []);
|
||||
return this._make(elems);
|
||||
}
|
||||
exports.contents = contents;
|
||||
/**
|
||||
* Iterates over a cheerio object, executing a function for each matched
|
||||
* element. When the callback is fired, the function is fired in the context of
|
||||
* the DOM element, so `this` refers to the current element, which is equivalent
|
||||
* to the function parameter `element`. To break out of the `each` loop early,
|
||||
* return with `false`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const fruits = [];
|
||||
*
|
||||
* $('li').each(function (i, elem) {
|
||||
* fruits[i] = $(this).text();
|
||||
* });
|
||||
*
|
||||
* fruits.join(', ');
|
||||
* //=> Apple, Orange, Pear
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The instance itself, useful for chaining.
|
||||
* @see {@link https://api.jquery.com/each/}
|
||||
*/
|
||||
function each(fn) {
|
||||
var i = 0;
|
||||
var len = this.length;
|
||||
while (i < len && fn.call(this[i], i, this[i]) !== false)
|
||||
++i;
|
||||
return this;
|
||||
}
|
||||
exports.each = each;
|
||||
/**
|
||||
* Pass each element in the current matched set through a function, producing a
|
||||
* new Cheerio object containing the return values. The function can return an
|
||||
* individual data item or an array of data items to be inserted into the
|
||||
* resulting set. If an array is returned, the elements inside the array are
|
||||
* inserted into the set. If the function returns null or undefined, no element
|
||||
* will be inserted.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .map(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).text();
|
||||
* })
|
||||
* .toArray()
|
||||
* .join(' ');
|
||||
* //=> "apple orange pear"
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The mapped elements, wrapped in a Cheerio collection.
|
||||
* @see {@link https://api.jquery.com/map/}
|
||||
*/
|
||||
function map(fn) {
|
||||
var elems = [];
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
var el = this[i];
|
||||
var val = fn.call(el, i, el);
|
||||
if (val != null) {
|
||||
elems = elems.concat(val);
|
||||
}
|
||||
}
|
||||
return this._make(elems);
|
||||
}
|
||||
exports.map = map;
|
||||
/**
|
||||
* Creates a function to test if a filter is matched.
|
||||
*
|
||||
* @param match - A filter.
|
||||
* @returns A function that determines if a filter has been matched.
|
||||
*/
|
||||
function getFilterFn(match) {
|
||||
if (typeof match === 'function') {
|
||||
return function (el, i) { return match.call(el, i, el); };
|
||||
}
|
||||
if ((0, utils_js_1.isCheerio)(match)) {
|
||||
return function (el) { return Array.prototype.includes.call(match, el); };
|
||||
}
|
||||
return function (el) {
|
||||
return match === el;
|
||||
};
|
||||
}
|
||||
function filter(match) {
|
||||
var _a;
|
||||
return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0]));
|
||||
}
|
||||
exports.filter = filter;
|
||||
function filterArray(nodes, match, xmlMode, root) {
|
||||
return typeof match === 'string'
|
||||
? select.filter(match, nodes, { xmlMode: xmlMode, root: root })
|
||||
: nodes.filter(getFilterFn(match));
|
||||
}
|
||||
exports.filterArray = filterArray;
|
||||
/**
|
||||
* Checks the current list of elements and returns `true` if _any_ of the
|
||||
* elements match the selector. If using an element or Cheerio selection,
|
||||
* returns `true` if _any_ of the elements match. If using a predicate function,
|
||||
* the function is executed in the context of the selected element, so `this`
|
||||
* refers to the current element.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param selector - Selector for the selection.
|
||||
* @returns Whether or not the selector matches an element of the instance.
|
||||
* @see {@link https://api.jquery.com/is/}
|
||||
*/
|
||||
function is(selector) {
|
||||
var nodes = this.toArray();
|
||||
return typeof selector === 'string'
|
||||
? select.some(nodes.filter(utils_js_1.isTag), selector, this.options)
|
||||
: selector
|
||||
? nodes.some(getFilterFn(selector))
|
||||
: false;
|
||||
}
|
||||
exports.is = is;
|
||||
/**
|
||||
* Remove elements from the set of matched elements. Given a Cheerio object that
|
||||
* represents a set of DOM elements, the `.not()` method constructs a new
|
||||
* Cheerio object from a subset of the matching elements. The supplied selector
|
||||
* is tested against each element; the elements that don't match the selector
|
||||
* will be included in the result.
|
||||
*
|
||||
* The `.not()` method can take a function as its argument in the same way that
|
||||
* `.filter()` does. Elements for which the function returns `true` are excluded
|
||||
* from the filtered set; all other elements are included.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not('.apple').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* }).length; //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @param container - Optional node to filter instead.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/not/}
|
||||
*/
|
||||
function not(match) {
|
||||
var nodes = this.toArray();
|
||||
if (typeof match === 'string') {
|
||||
var matches_1 = new Set(select.filter(match, nodes, this.options));
|
||||
nodes = nodes.filter(function (el) { return !matches_1.has(el); });
|
||||
}
|
||||
else {
|
||||
var filterFn_1 = getFilterFn(match);
|
||||
nodes = nodes.filter(function (el, i) { return !filterFn_1(el, i); });
|
||||
}
|
||||
return this._make(nodes);
|
||||
}
|
||||
exports.not = not;
|
||||
/**
|
||||
* Filters the set of matched elements to only those which have the given DOM
|
||||
* element as a descendant or which have a descendant that matches the given
|
||||
* selector. Equivalent to `.filter(':has(selector)')`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has('.pear').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Element</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has($('.pear')[0]).attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/has/}
|
||||
*/
|
||||
function has(selectorOrHaystack) {
|
||||
var _this = this;
|
||||
return this.filter(typeof selectorOrHaystack === 'string'
|
||||
? // Using the `:has` selector here short-circuits searches.
|
||||
":has(".concat(selectorOrHaystack, ")")
|
||||
: function (_, el) { return _this._make(el).find(selectorOrHaystack).length > 0; });
|
||||
}
|
||||
exports.has = has;
|
||||
/**
|
||||
* Will select the first element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().first().text();
|
||||
* //=> Apple
|
||||
* ```
|
||||
*
|
||||
* @returns The first element.
|
||||
* @see {@link https://api.jquery.com/first/}
|
||||
*/
|
||||
function first() {
|
||||
return this.length > 1 ? this._make(this[0]) : this;
|
||||
}
|
||||
exports.first = first;
|
||||
/**
|
||||
* Will select the last element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().last().text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The last element.
|
||||
* @see {@link https://api.jquery.com/last/}
|
||||
*/
|
||||
function last() {
|
||||
return this.length > 0 ? this._make(this[this.length - 1]) : this;
|
||||
}
|
||||
exports.last = last;
|
||||
/**
|
||||
* Reduce the set of matched elements to the one at the specified index. Use
|
||||
* `.eq(-i)` to count backwards from the last selected element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('li').eq(-1).text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param i - Index of the element to select.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/eq/}
|
||||
*/
|
||||
function eq(i) {
|
||||
var _a;
|
||||
i = +i;
|
||||
// Use the first identity optimization if possible
|
||||
if (i === 0 && this.length <= 1)
|
||||
return this;
|
||||
if (i < 0)
|
||||
i = this.length + i;
|
||||
return this._make((_a = this[i]) !== null && _a !== void 0 ? _a : []);
|
||||
}
|
||||
exports.eq = eq;
|
||||
function get(i) {
|
||||
if (i == null) {
|
||||
return this.toArray();
|
||||
}
|
||||
return this[i < 0 ? this.length + i : i];
|
||||
}
|
||||
exports.get = get;
|
||||
/**
|
||||
* Retrieve all the DOM elements contained in the jQuery set as an array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').toArray();
|
||||
* //=> [ {...}, {...}, {...} ]
|
||||
* ```
|
||||
*
|
||||
* @returns The contained items.
|
||||
*/
|
||||
function toArray() {
|
||||
return Array.prototype.slice.call(this);
|
||||
}
|
||||
exports.toArray = toArray;
|
||||
/**
|
||||
* Search for a given element from among the matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').index();
|
||||
* //=> 2 $('.orange').index('li');
|
||||
* //=> 1
|
||||
* $('.apple').index($('#fruit, li'));
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrNeedle - Element to look for.
|
||||
* @returns The index of the element.
|
||||
* @see {@link https://api.jquery.com/index/}
|
||||
*/
|
||||
function index(selectorOrNeedle) {
|
||||
var $haystack;
|
||||
var needle;
|
||||
if (selectorOrNeedle == null) {
|
||||
$haystack = this.parent().children();
|
||||
needle = this[0];
|
||||
}
|
||||
else if (typeof selectorOrNeedle === 'string') {
|
||||
$haystack = this._make(selectorOrNeedle);
|
||||
needle = this[0];
|
||||
}
|
||||
else {
|
||||
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||
$haystack = this;
|
||||
needle = (0, utils_js_1.isCheerio)(selectorOrNeedle)
|
||||
? selectorOrNeedle[0]
|
||||
: selectorOrNeedle;
|
||||
}
|
||||
return Array.prototype.indexOf.call($haystack, needle);
|
||||
}
|
||||
exports.index = index;
|
||||
/**
|
||||
* Gets the elements matching the specified range (0-based position).
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').slice(1).eq(0).text();
|
||||
* //=> 'Orange'
|
||||
*
|
||||
* $('li').slice(1, 2).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @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 - A position at which the elements stop being selected. If
|
||||
* negative, it indicates an offset from the end of the set. If omitted, the
|
||||
* range continues until the end of the set.
|
||||
* @returns The elements matching the specified range.
|
||||
* @see {@link https://api.jquery.com/slice/}
|
||||
*/
|
||||
function slice(start, end) {
|
||||
return this._make(Array.prototype.slice.call(this, start, end));
|
||||
}
|
||||
exports.slice = slice;
|
||||
/**
|
||||
* End the most recent filtering operation in the current chain and return the
|
||||
* set of matched elements to its previous state.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).end().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The previous state of the set of matched elements.
|
||||
* @see {@link https://api.jquery.com/end/}
|
||||
*/
|
||||
function end() {
|
||||
var _a;
|
||||
return (_a = this.prevObject) !== null && _a !== void 0 ? _a : this._make([]);
|
||||
}
|
||||
exports.end = end;
|
||||
/**
|
||||
* Add elements to the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').add('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param other - Elements to add.
|
||||
* @param context - Optionally the context of the new selection.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/add/}
|
||||
*/
|
||||
function add(other, context) {
|
||||
var selection = this._make(other, context);
|
||||
var contents = (0, domutils_1.uniqueSort)(__spreadArray(__spreadArray([], this.get(), true), selection.get(), true));
|
||||
return this._make(contents);
|
||||
}
|
||||
exports.add = add;
|
||||
/**
|
||||
* Add the previous set of elements on the stack to the current set, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).addBack('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the elements to add.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/addBack/}
|
||||
*/
|
||||
function addBack(selector) {
|
||||
return this.prevObject
|
||||
? this.add(selector ? this.prevObject.filter(selector) : this.prevObject)
|
||||
: this;
|
||||
}
|
||||
exports.addBack = addBack;
|
||||
//# sourceMappingURL=traversing.js.map
|
||||
1
node_modules/cheerio/lib/api/traversing.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/api/traversing.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
69
node_modules/cheerio/lib/cheerio.d.ts
generated
vendored
Normal file
69
node_modules/cheerio/lib/cheerio.d.ts
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/// <reference types="node" />
|
||||
import type { InternalOptions } from './options.js';
|
||||
import type { AnyNode, Document, ParentNode } from 'domhandler';
|
||||
import type { BasicAcceptedElems } from './types.js';
|
||||
import * as Attributes from './api/attributes.js';
|
||||
import * as Traversing from './api/traversing.js';
|
||||
import * as Manipulation from './api/manipulation.js';
|
||||
import * as Css from './api/css.js';
|
||||
import * as Forms from './api/forms.js';
|
||||
declare type AttributesType = typeof Attributes;
|
||||
declare type TraversingType = typeof Traversing;
|
||||
declare type ManipulationType = typeof Manipulation;
|
||||
declare type CssType = typeof Css;
|
||||
declare type FormsType = typeof Forms;
|
||||
export declare abstract class Cheerio<T> implements ArrayLike<T> {
|
||||
length: number;
|
||||
[index: number]: T;
|
||||
options: InternalOptions;
|
||||
/**
|
||||
* The root of the document. Can be set by using the `root` argument of the constructor.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_root: Cheerio<Document> | null;
|
||||
/**
|
||||
* Instance of cheerio. Methods are specified in the modules. Usage of this
|
||||
* constructor is not recommended. Please use `$.load` instead.
|
||||
*
|
||||
* @private
|
||||
* @param elements - The new selection.
|
||||
* @param root - Sets the root node.
|
||||
* @param options - Options for the instance.
|
||||
*/
|
||||
constructor(elements: ArrayLike<T> | undefined, root: Cheerio<Document> | null, options: InternalOptions);
|
||||
prevObject: Cheerio<any> | undefined;
|
||||
/**
|
||||
* Make a cheerio object.
|
||||
*
|
||||
* @private
|
||||
* @param dom - The contents of the new object.
|
||||
* @param context - The context of the new object.
|
||||
* @returns The new cheerio object.
|
||||
*/
|
||||
abstract _make<T>(dom: ArrayLike<T> | T | string, context?: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Parses some content.
|
||||
*
|
||||
* @private
|
||||
* @param content - Content to parse.
|
||||
* @param options - Options for parsing.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns A document containing the `content`.
|
||||
*/
|
||||
abstract _parse(content: string | Document | AnyNode | AnyNode[] | Buffer, options: InternalOptions, isDocument: boolean, context: ParentNode | null): Document;
|
||||
/**
|
||||
* Render an element or a set of elements.
|
||||
*
|
||||
* @private
|
||||
* @param dom - DOM to render.
|
||||
* @returns The rendered DOM.
|
||||
*/
|
||||
abstract _render(dom: AnyNode | ArrayLike<AnyNode>): string;
|
||||
}
|
||||
export interface Cheerio<T> extends AttributesType, TraversingType, ManipulationType, CssType, FormsType, Iterable<T> {
|
||||
cheerio: '[cheerio object]';
|
||||
splice: typeof Array.prototype.slice;
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=cheerio.d.ts.map
|
||||
1
node_modules/cheerio/lib/cheerio.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/cheerio.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cheerio.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["cheerio.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,aAAK,cAAc,GAAG,OAAO,UAAU,CAAC;AACxC,aAAK,cAAc,GAAG,OAAO,UAAU,CAAC;AACxC,aAAK,gBAAgB,GAAG,OAAO,YAAY,CAAC;AAC5C,aAAK,OAAO,GAAG,OAAO,GAAG,CAAC;AAC1B,aAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,8BAAsB,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,SAAK;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;IAEnB,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEhC;;;;;;;;OAQG;gBAED,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,EAC9B,OAAO,EAAE,eAAe;IAa1B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,CAAC,EACd,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;IAEb;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CACb,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,EACzD,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,QAAQ;IAEX;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM;CAC5D;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,CACxB,SAAQ,cAAc,EACpB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC;IACb,OAAO,EAAE,kBAAkB,CAAC;IAE5B,MAAM,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;CACtC"}
|
||||
66
node_modules/cheerio/lib/cheerio.js
generated
vendored
Normal file
66
node_modules/cheerio/lib/cheerio.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Cheerio = void 0;
|
||||
var Attributes = __importStar(require("./api/attributes.js"));
|
||||
var Traversing = __importStar(require("./api/traversing.js"));
|
||||
var Manipulation = __importStar(require("./api/manipulation.js"));
|
||||
var Css = __importStar(require("./api/css.js"));
|
||||
var Forms = __importStar(require("./api/forms.js"));
|
||||
var Cheerio = /** @class */ (function () {
|
||||
/**
|
||||
* Instance of cheerio. Methods are specified in the modules. Usage of this
|
||||
* constructor is not recommended. Please use `$.load` instead.
|
||||
*
|
||||
* @private
|
||||
* @param elements - The new selection.
|
||||
* @param root - Sets the root node.
|
||||
* @param options - Options for the instance.
|
||||
*/
|
||||
function Cheerio(elements, root, options) {
|
||||
this.length = 0;
|
||||
this.options = options;
|
||||
this._root = root;
|
||||
if (elements) {
|
||||
for (var idx = 0; idx < elements.length; idx++) {
|
||||
this[idx] = elements[idx];
|
||||
}
|
||||
this.length = elements.length;
|
||||
}
|
||||
}
|
||||
return Cheerio;
|
||||
}());
|
||||
exports.Cheerio = Cheerio;
|
||||
/** Set a signature of the object. */
|
||||
Cheerio.prototype.cheerio = '[cheerio object]';
|
||||
/*
|
||||
* Make cheerio an array-like object
|
||||
*/
|
||||
Cheerio.prototype.splice = Array.prototype.splice;
|
||||
// Support for (const element of $(...)) iteration:
|
||||
Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
|
||||
// Plug in the API
|
||||
Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms);
|
||||
//# sourceMappingURL=cheerio.js.map
|
||||
1
node_modules/cheerio/lib/cheerio.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/cheerio.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cheerio.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["cheerio.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,8DAAkD;AAClD,8DAAkD;AAClD,kEAAsD;AACtD,gDAAoC;AACpC,oDAAwC;AAQxC;IAYE;;;;;;;;OAQG;IACH,iBACE,QAAkC,EAClC,IAA8B,EAC9B,OAAwB;QAvB1B,WAAM,GAAG,CAAC,CAAC;QAyBT,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,QAAQ,EAAE;YACZ,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC/B;IACH,CAAC;IAwCH,cAAC;AAAD,CAAC,AA3ED,IA2EC;AA3EqB,0BAAO;AAyF7B,qCAAqC;AACrC,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,kBAAkB,CAAC;AAE/C;;GAEG;AACH,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAElD,mDAAmD;AACnD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEtE,kBAAkB;AAClB,MAAM,CAAC,MAAM,CACX,OAAO,CAAC,SAAS,EACjB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,GAAG,EACH,KAAK,CACN,CAAC"}
|
||||
332
node_modules/cheerio/lib/esm/api/attributes.d.ts
generated
vendored
Normal file
332
node_modules/cheerio/lib/esm/api/attributes.d.ts
generated
vendored
Normal file
@@ -0,0 +1,332 @@
|
||||
/**
|
||||
* Methods for getting and modifying attributes.
|
||||
*
|
||||
* @module cheerio/attributes
|
||||
*/
|
||||
import type { AnyNode, Element } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Method for getting attributes. Gets the attribute value for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The attribute's value.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, name: string): string | undefined;
|
||||
/**
|
||||
* Method for getting all attributes and their values of the first element in
|
||||
* the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').attr();
|
||||
* //=> { id: 'fruits' }
|
||||
* ```
|
||||
*
|
||||
* @returns The attribute's values.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>): Record<string, string> | undefined;
|
||||
/**
|
||||
* Method for setting attributes. Sets the attribute value for only the first
|
||||
* element in the matched set. If you set an attribute's value to `null`, you
|
||||
* remove that attribute. You may also pass a `map` and `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').attr('id', 'favorite').html();
|
||||
* //=> <li class="apple" id="favorite">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @param value - The new value of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, name: string, value?: string | null | ((this: Element, i: number, attrib: string) => string | null)): Cheerio<T>;
|
||||
/**
|
||||
* Method for setting multiple attributes at once. Sets the attribute value for
|
||||
* only the first element in the matched set. If you set an attribute's value to
|
||||
* `null`, you remove that attribute.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').attr({ id: 'favorite' }).html();
|
||||
* //=> <li class="apple" id="favorite">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param values - Map of attribute names and values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/attr/}
|
||||
*/
|
||||
export declare function attr<T extends AnyNode>(this: Cheerio<T>, values: Record<string, string | null>): Cheerio<T>;
|
||||
interface StyleProp {
|
||||
length: number;
|
||||
[key: string]: string | number;
|
||||
[index: number]: string;
|
||||
}
|
||||
/**
|
||||
* Method for getting and setting properties. Gets the property value for only
|
||||
* the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="checkbox"]').prop('checked');
|
||||
* //=> false
|
||||
*
|
||||
* $('input[type="checkbox"]').prop('checked', true).val();
|
||||
* //=> ok
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the property.
|
||||
* @param value - If specified set the property to this.
|
||||
* @returns If `value` is specified the instance itself, otherwise the prop's value.
|
||||
* @see {@link https://api.jquery.com/prop/}
|
||||
*/
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'tagName' | 'nodeName'): T extends Element ? string : undefined;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'innerHTML' | 'outerHTML' | 'innerText' | 'textContent'): string | null;
|
||||
/** Get a parsed CSS style object. */
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'style'): StyleProp | undefined;
|
||||
/**
|
||||
* Resolve `href` or `src` of supported elements. Requires the `baseURI` option
|
||||
* to be set, and a global `URL` object to be part of the environment.
|
||||
*
|
||||
* @example With `baseURI` set to `'https://example.com'`:
|
||||
*
|
||||
* ```js
|
||||
* $('<img src="image.png">').prop('src');
|
||||
* //=> 'https://example.com/image.png'
|
||||
* ```
|
||||
*/
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: 'href' | 'src'): string | undefined;
|
||||
/** Get a property of an element. */
|
||||
export declare function prop<T extends AnyNode, K extends keyof Element>(this: Cheerio<T>, name: K): Element[K];
|
||||
/** Set a property of an element. */
|
||||
export declare function prop<T extends AnyNode, K extends keyof Element>(this: Cheerio<T>, name: K, value: Element[K] | ((this: Element, i: number, prop: K) => Element[keyof Element])): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: Record<string, string | Element[keyof Element] | boolean>): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: string, value: string | boolean | null | ((this: Element, i: number, prop: string) => string | boolean)): Cheerio<T>;
|
||||
export declare function prop<T extends AnyNode>(this: Cheerio<T>, name: string): string;
|
||||
/**
|
||||
* Method for getting data attributes, for only the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<div data-apple-color="red"></div>').data('apple-color');
|
||||
* //=> 'red'
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the data attribute.
|
||||
* @returns The data attribute's value, or `undefined` if the attribute does not exist.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, name: string): unknown | undefined;
|
||||
/**
|
||||
* Method for getting all of an element's data attributes, for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<div data-apple-color="red"></div>').data();
|
||||
* //=> { appleColor: 'red' }
|
||||
* ```
|
||||
*
|
||||
* @returns A map with all of the data attributes.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>): Record<string, unknown>;
|
||||
/**
|
||||
* Method for setting data attributes, for only the first element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const apple = $('.apple').data('kind', 'mac');
|
||||
*
|
||||
* apple.data('kind');
|
||||
* //=> 'mac'
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the data attribute.
|
||||
* @param value - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, name: string, value: unknown): Cheerio<T>;
|
||||
/**
|
||||
* Method for setting multiple data attributes at once, for only the first
|
||||
* element in the matched set.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const apple = $('.apple').data({ kind: 'mac' });
|
||||
*
|
||||
* apple.data('kind');
|
||||
* //=> 'mac'
|
||||
* ```
|
||||
*
|
||||
* @param values - Map of names to values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/data/}
|
||||
*/
|
||||
export declare function data<T extends AnyNode>(this: Cheerio<T>, values: Record<string, unknown>): Cheerio<T>;
|
||||
/**
|
||||
* Method for getting the value of input, select, and textarea. Note: Support
|
||||
* for `map`, and `function` has not been added yet.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="text"]').val();
|
||||
* //=> input_text
|
||||
* ```
|
||||
*
|
||||
* @returns The value.
|
||||
* @see {@link https://api.jquery.com/val/}
|
||||
*/
|
||||
export declare function val<T extends AnyNode>(this: Cheerio<T>): string | undefined | string[];
|
||||
/**
|
||||
* Method for setting the value of input, select, and textarea. Note: Support
|
||||
* for `map`, and `function` has not been added yet.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('input[type="text"]').val('test').html();
|
||||
* //=> <input type="text" value="test"/>
|
||||
* ```
|
||||
*
|
||||
* @param value - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/val/}
|
||||
*/
|
||||
export declare function val<T extends AnyNode>(this: Cheerio<T>, value: string | string[]): Cheerio<T>;
|
||||
/**
|
||||
* Method for removing attributes by `name`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeAttr('class').html();
|
||||
* //=> <li>Pear</li>
|
||||
*
|
||||
* $('.apple').attr('id', 'favorite');
|
||||
* $('.apple').removeAttr('id class').html();
|
||||
* //=> <li>Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeAttr/}
|
||||
*/
|
||||
export declare function removeAttr<T extends AnyNode>(this: Cheerio<T>, name: string): Cheerio<T>;
|
||||
/**
|
||||
* Check to see if _any_ of the matched elements have the given `className`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').hasClass('pear');
|
||||
* //=> true
|
||||
*
|
||||
* $('apple').hasClass('fruit');
|
||||
* //=> false
|
||||
*
|
||||
* $('li').hasClass('pear');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param className - Name of the class.
|
||||
* @returns Indicates if an element has the given `className`.
|
||||
* @see {@link https://api.jquery.com/hasClass/}
|
||||
*/
|
||||
export declare function hasClass<T extends AnyNode>(this: Cheerio<T>, className: string): boolean;
|
||||
/**
|
||||
* Adds class(es) to all of the matched elements. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').addClass('fruit').html();
|
||||
* //=> <li class="pear fruit">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('fruit red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of new class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/addClass/}
|
||||
*/
|
||||
export declare function addClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, value?: string | ((this: Element, i: number, className: string) => string | undefined)): R;
|
||||
/**
|
||||
* Removes one or more space-separated classes from the selected elements. If no
|
||||
* `className` is defined, all classes will be removed. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeClass('pear').html();
|
||||
* //=> <li class="">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('red').removeClass().html();
|
||||
* //=> <li class="">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the class. If not specified, removes all elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeClass/}
|
||||
*/
|
||||
export declare function removeClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, name?: string | ((this: Element, i: number, className: string) => string | undefined)): R;
|
||||
/**
|
||||
* Add or remove class(es) from the matched elements, depending on either the
|
||||
* class's presence or the value of the switch argument. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple.green').toggleClass('fruit green red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
*
|
||||
* $('.apple.green').toggleClass('fruit green red', true).html();
|
||||
* //=> <li class="apple green fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of the class. Can also be a function.
|
||||
* @param stateVal - If specified the state of the class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/toggleClass/}
|
||||
*/
|
||||
export declare function toggleClass<T extends AnyNode, R extends ArrayLike<T>>(this: R, value?: string | ((this: Element, i: number, className: string, stateVal?: boolean) => string), stateVal?: boolean): R;
|
||||
export {};
|
||||
//# sourceMappingURL=attributes.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/api/attributes.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/attributes.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"attributes.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/attributes.ts"],"names":[],"mappings":"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"}
|
||||
601
node_modules/cheerio/lib/esm/api/attributes.js
generated
vendored
Normal file
601
node_modules/cheerio/lib/esm/api/attributes.js
generated
vendored
Normal file
@@ -0,0 +1,601 @@
|
||||
/**
|
||||
* Methods for getting and modifying attributes.
|
||||
*
|
||||
* @module cheerio/attributes
|
||||
*/
|
||||
import { text } from '../static.js';
|
||||
import { isTag, domEach, camelCase, cssCase } from '../utils.js';
|
||||
import { innerText, textContent } from 'domutils';
|
||||
const hasOwn = Object.prototype.hasOwnProperty;
|
||||
const rspace = /\s+/;
|
||||
const dataAttrPrefix = 'data-';
|
||||
/*
|
||||
* Lookup table for coercing string data-* attributes to their corresponding
|
||||
* JavaScript primitives
|
||||
*/
|
||||
const primitives = {
|
||||
null: null,
|
||||
true: true,
|
||||
false: false,
|
||||
};
|
||||
// Attributes that are booleans
|
||||
const rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i;
|
||||
// Matches strings that look like JSON objects or arrays
|
||||
const rbrace = /^{[^]*}$|^\[[^]*]$/;
|
||||
function getAttr(elem, name, xmlMode) {
|
||||
var _a;
|
||||
if (!elem || !isTag(elem))
|
||||
return undefined;
|
||||
(_a = elem.attribs) !== null && _a !== void 0 ? _a : (elem.attribs = {});
|
||||
// Return the entire attribs object if no attribute specified
|
||||
if (!name) {
|
||||
return elem.attribs;
|
||||
}
|
||||
if (hasOwn.call(elem.attribs, name)) {
|
||||
// Get the (decoded) attribute
|
||||
return !xmlMode && rboolean.test(name) ? name : elem.attribs[name];
|
||||
}
|
||||
// Mimic the DOM and return text content as value for `option's`
|
||||
if (elem.name === 'option' && name === 'value') {
|
||||
return text(elem.children);
|
||||
}
|
||||
// Mimic DOM with default value for radios/checkboxes
|
||||
if (elem.name === 'input' &&
|
||||
(elem.attribs['type'] === 'radio' || elem.attribs['type'] === 'checkbox') &&
|
||||
name === 'value') {
|
||||
return 'on';
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
/**
|
||||
* Sets the value of an attribute. The attribute will be deleted if the value is `null`.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the attribute on.
|
||||
* @param name - The attribute's name.
|
||||
* @param value - The attribute's value.
|
||||
*/
|
||||
function setAttr(el, name, value) {
|
||||
if (value === null) {
|
||||
removeAttribute(el, name);
|
||||
}
|
||||
else {
|
||||
el.attribs[name] = `${value}`;
|
||||
}
|
||||
}
|
||||
export function attr(name, value) {
|
||||
// Set the value (with attr map support)
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
if (typeof value === 'function') {
|
||||
if (typeof name !== 'string') {
|
||||
{
|
||||
throw new Error('Bad combination of arguments.');
|
||||
}
|
||||
}
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el))
|
||||
setAttr(el, name, value.call(el, i, el.attribs[name]));
|
||||
});
|
||||
}
|
||||
return domEach(this, (el) => {
|
||||
if (!isTag(el))
|
||||
return;
|
||||
if (typeof name === 'object') {
|
||||
Object.keys(name).forEach((objName) => {
|
||||
const objValue = name[objName];
|
||||
setAttr(el, objName, objValue);
|
||||
});
|
||||
}
|
||||
else {
|
||||
setAttr(el, name, value);
|
||||
}
|
||||
});
|
||||
}
|
||||
return arguments.length > 1
|
||||
? this
|
||||
: getAttr(this[0], name, this.options.xmlMode);
|
||||
}
|
||||
/**
|
||||
* Gets a node's prop.
|
||||
*
|
||||
* @private
|
||||
* @category Attributes
|
||||
* @param el - Element to get the prop of.
|
||||
* @param name - Name of the prop.
|
||||
* @returns The prop's value.
|
||||
*/
|
||||
function getProp(el, name, xmlMode) {
|
||||
return name in el
|
||||
? // @ts-expect-error TS doesn't like us accessing the value directly here.
|
||||
el[name]
|
||||
: !xmlMode && rboolean.test(name)
|
||||
? getAttr(el, name, false) !== undefined
|
||||
: getAttr(el, name, xmlMode);
|
||||
}
|
||||
/**
|
||||
* Sets the value of a prop.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the prop on.
|
||||
* @param name - The prop's name.
|
||||
* @param value - The prop's value.
|
||||
*/
|
||||
function setProp(el, name, value, xmlMode) {
|
||||
if (name in el) {
|
||||
// @ts-expect-error Overriding value
|
||||
el[name] = value;
|
||||
}
|
||||
else {
|
||||
setAttr(el, name, !xmlMode && rboolean.test(name) ? (value ? '' : null) : `${value}`);
|
||||
}
|
||||
}
|
||||
export function prop(name, value) {
|
||||
var _a;
|
||||
if (typeof name === 'string' && value === undefined) {
|
||||
const el = this[0];
|
||||
if (!el || !isTag(el))
|
||||
return undefined;
|
||||
switch (name) {
|
||||
case 'style': {
|
||||
const property = this.css();
|
||||
const keys = Object.keys(property);
|
||||
keys.forEach((p, i) => {
|
||||
property[i] = p;
|
||||
});
|
||||
property.length = keys.length;
|
||||
return property;
|
||||
}
|
||||
case 'tagName':
|
||||
case 'nodeName': {
|
||||
return el.name.toUpperCase();
|
||||
}
|
||||
case 'href':
|
||||
case 'src': {
|
||||
const prop = (_a = el.attribs) === null || _a === void 0 ? void 0 : _a[name];
|
||||
/* eslint-disable node/no-unsupported-features/node-builtins */
|
||||
if (typeof URL !== 'undefined' &&
|
||||
((name === 'href' && (el.tagName === 'a' || el.name === 'link')) ||
|
||||
(name === 'src' &&
|
||||
(el.tagName === 'img' ||
|
||||
el.tagName === 'iframe' ||
|
||||
el.tagName === 'audio' ||
|
||||
el.tagName === 'video' ||
|
||||
el.tagName === 'source'))) &&
|
||||
prop !== undefined &&
|
||||
this.options.baseURI) {
|
||||
return new URL(prop, this.options.baseURI).href;
|
||||
}
|
||||
/* eslint-enable node/no-unsupported-features/node-builtins */
|
||||
return prop;
|
||||
}
|
||||
case 'innerText': {
|
||||
return innerText(el);
|
||||
}
|
||||
case 'textContent': {
|
||||
return textContent(el);
|
||||
}
|
||||
case 'outerHTML':
|
||||
return this.clone().wrap('<container />').parent().html();
|
||||
case 'innerHTML':
|
||||
return this.html();
|
||||
default:
|
||||
return getProp(el, name, this.options.xmlMode);
|
||||
}
|
||||
}
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
if (typeof value === 'function') {
|
||||
if (typeof name === 'object') {
|
||||
throw new Error('Bad combination of arguments.');
|
||||
}
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el)) {
|
||||
setProp(el, name, value.call(el, i, getProp(el, name, this.options.xmlMode)), this.options.xmlMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
return domEach(this, (el) => {
|
||||
if (!isTag(el))
|
||||
return;
|
||||
if (typeof name === 'object') {
|
||||
Object.keys(name).forEach((key) => {
|
||||
const val = name[key];
|
||||
setProp(el, key, val, this.options.xmlMode);
|
||||
});
|
||||
}
|
||||
else {
|
||||
setProp(el, name, value, this.options.xmlMode);
|
||||
}
|
||||
});
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
/**
|
||||
* Sets the value of a data attribute.
|
||||
*
|
||||
* @private
|
||||
* @param el - The element to set the data attribute on.
|
||||
* @param name - The data attribute's name.
|
||||
* @param value - The data attribute's value.
|
||||
*/
|
||||
function setData(el, name, value) {
|
||||
var _a;
|
||||
const elem = el;
|
||||
(_a = elem.data) !== null && _a !== void 0 ? _a : (elem.data = {});
|
||||
if (typeof name === 'object')
|
||||
Object.assign(elem.data, name);
|
||||
else if (typeof name === 'string' && value !== undefined) {
|
||||
elem.data[name] = value;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Read the specified attribute from the equivalent HTML5 `data-*` attribute,
|
||||
* and (if present) cache the value in the node's internal data store. If no
|
||||
* attribute name is specified, read _all_ HTML5 `data-*` attributes in this manner.
|
||||
*
|
||||
* @private
|
||||
* @category Attributes
|
||||
* @param el - Element to get the data attribute of.
|
||||
* @param name - Name of the data attribute.
|
||||
* @returns The data attribute's value, or a map with all of the data attributes.
|
||||
*/
|
||||
function readData(el, name) {
|
||||
let domNames;
|
||||
let jsNames;
|
||||
let value;
|
||||
if (name == null) {
|
||||
domNames = Object.keys(el.attribs).filter((attrName) => attrName.startsWith(dataAttrPrefix));
|
||||
jsNames = domNames.map((domName) => camelCase(domName.slice(dataAttrPrefix.length)));
|
||||
}
|
||||
else {
|
||||
domNames = [dataAttrPrefix + cssCase(name)];
|
||||
jsNames = [name];
|
||||
}
|
||||
for (let idx = 0; idx < domNames.length; ++idx) {
|
||||
const domName = domNames[idx];
|
||||
const jsName = jsNames[idx];
|
||||
if (hasOwn.call(el.attribs, domName) &&
|
||||
!hasOwn.call(el.data, jsName)) {
|
||||
value = el.attribs[domName];
|
||||
if (hasOwn.call(primitives, value)) {
|
||||
value = primitives[value];
|
||||
}
|
||||
else if (value === String(Number(value))) {
|
||||
value = Number(value);
|
||||
}
|
||||
else if (rbrace.test(value)) {
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
}
|
||||
catch (e) {
|
||||
/* Ignore */
|
||||
}
|
||||
}
|
||||
el.data[jsName] = value;
|
||||
}
|
||||
}
|
||||
return name == null ? el.data : value;
|
||||
}
|
||||
export function data(name, value) {
|
||||
var _a;
|
||||
const elem = this[0];
|
||||
if (!elem || !isTag(elem))
|
||||
return;
|
||||
const dataEl = elem;
|
||||
(_a = dataEl.data) !== null && _a !== void 0 ? _a : (dataEl.data = {});
|
||||
// Return the entire data object if no data specified
|
||||
if (!name) {
|
||||
return readData(dataEl);
|
||||
}
|
||||
// Set the value (with attr map support)
|
||||
if (typeof name === 'object' || value !== undefined) {
|
||||
domEach(this, (el) => {
|
||||
if (isTag(el)) {
|
||||
if (typeof name === 'object')
|
||||
setData(el, name);
|
||||
else
|
||||
setData(el, name, value);
|
||||
}
|
||||
});
|
||||
return this;
|
||||
}
|
||||
if (hasOwn.call(dataEl.data, name)) {
|
||||
return dataEl.data[name];
|
||||
}
|
||||
return readData(dataEl, name);
|
||||
}
|
||||
export function val(value) {
|
||||
const querying = arguments.length === 0;
|
||||
const element = this[0];
|
||||
if (!element || !isTag(element))
|
||||
return querying ? undefined : this;
|
||||
switch (element.name) {
|
||||
case 'textarea':
|
||||
return this.text(value);
|
||||
case 'select': {
|
||||
const option = this.find('option:selected');
|
||||
if (!querying) {
|
||||
if (this.attr('multiple') == null && typeof value === 'object') {
|
||||
return this;
|
||||
}
|
||||
this.find('option').removeAttr('selected');
|
||||
const values = typeof value !== 'object' ? [value] : value;
|
||||
for (let i = 0; i < values.length; i++) {
|
||||
this.find(`option[value="${values[i]}"]`).attr('selected', '');
|
||||
}
|
||||
return this;
|
||||
}
|
||||
return this.attr('multiple')
|
||||
? option.toArray().map((el) => text(el.children))
|
||||
: option.attr('value');
|
||||
}
|
||||
case 'input':
|
||||
case 'option':
|
||||
return querying
|
||||
? this.attr('value')
|
||||
: this.attr('value', value);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
/**
|
||||
* Remove an attribute.
|
||||
*
|
||||
* @private
|
||||
* @param elem - Node to remove attribute from.
|
||||
* @param name - Name of the attribute to remove.
|
||||
*/
|
||||
function removeAttribute(elem, name) {
|
||||
if (!elem.attribs || !hasOwn.call(elem.attribs, name))
|
||||
return;
|
||||
delete elem.attribs[name];
|
||||
}
|
||||
/**
|
||||
* Splits a space-separated list of names to individual names.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param names - Names to split.
|
||||
* @returns - Split names.
|
||||
*/
|
||||
function splitNames(names) {
|
||||
return names ? names.trim().split(rspace) : [];
|
||||
}
|
||||
/**
|
||||
* Method for removing attributes by `name`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeAttr('class').html();
|
||||
* //=> <li>Pear</li>
|
||||
*
|
||||
* $('.apple').attr('id', 'favorite');
|
||||
* $('.apple').removeAttr('id class').html();
|
||||
* //=> <li>Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the attribute.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeAttr/}
|
||||
*/
|
||||
export function removeAttr(name) {
|
||||
const attrNames = splitNames(name);
|
||||
for (let i = 0; i < attrNames.length; i++) {
|
||||
domEach(this, (elem) => {
|
||||
if (isTag(elem))
|
||||
removeAttribute(elem, attrNames[i]);
|
||||
});
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Check to see if _any_ of the matched elements have the given `className`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').hasClass('pear');
|
||||
* //=> true
|
||||
*
|
||||
* $('apple').hasClass('fruit');
|
||||
* //=> false
|
||||
*
|
||||
* $('li').hasClass('pear');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param className - Name of the class.
|
||||
* @returns Indicates if an element has the given `className`.
|
||||
* @see {@link https://api.jquery.com/hasClass/}
|
||||
*/
|
||||
export function hasClass(className) {
|
||||
return this.toArray().some((elem) => {
|
||||
const clazz = isTag(elem) && elem.attribs['class'];
|
||||
let idx = -1;
|
||||
if (clazz && className.length) {
|
||||
while ((idx = clazz.indexOf(className, idx + 1)) > -1) {
|
||||
const end = idx + className.length;
|
||||
if ((idx === 0 || rspace.test(clazz[idx - 1])) &&
|
||||
(end === clazz.length || rspace.test(clazz[end]))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Adds class(es) to all of the matched elements. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').addClass('fruit').html();
|
||||
* //=> <li class="pear fruit">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('fruit red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of new class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/addClass/}
|
||||
*/
|
||||
export function addClass(value) {
|
||||
// Support functions
|
||||
if (typeof value === 'function') {
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el)) {
|
||||
const className = el.attribs['class'] || '';
|
||||
addClass.call([el], value.call(el, i, className));
|
||||
}
|
||||
});
|
||||
}
|
||||
// Return if no value or not a string or function
|
||||
if (!value || typeof value !== 'string')
|
||||
return this;
|
||||
const classNames = value.split(rspace);
|
||||
const numElements = this.length;
|
||||
for (let i = 0; i < numElements; i++) {
|
||||
const el = this[i];
|
||||
// If selected element isn't a tag, move on
|
||||
if (!isTag(el))
|
||||
continue;
|
||||
// If we don't already have classes — always set xmlMode to false here, as it doesn't matter for classes
|
||||
const className = getAttr(el, 'class', false);
|
||||
if (!className) {
|
||||
setAttr(el, 'class', classNames.join(' ').trim());
|
||||
}
|
||||
else {
|
||||
let setClass = ` ${className} `;
|
||||
// Check if class already exists
|
||||
for (let j = 0; j < classNames.length; j++) {
|
||||
const appendClass = `${classNames[j]} `;
|
||||
if (!setClass.includes(` ${appendClass}`))
|
||||
setClass += appendClass;
|
||||
}
|
||||
setAttr(el, 'class', setClass.trim());
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Removes one or more space-separated classes from the selected elements. If no
|
||||
* `className` is defined, all classes will be removed. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').removeClass('pear').html();
|
||||
* //=> <li class="">Pear</li>
|
||||
*
|
||||
* $('.apple').addClass('red').removeClass().html();
|
||||
* //=> <li class="">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param name - Name of the class. If not specified, removes all elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/removeClass/}
|
||||
*/
|
||||
export function removeClass(name) {
|
||||
// Handle if value is a function
|
||||
if (typeof name === 'function') {
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el)) {
|
||||
removeClass.call([el], name.call(el, i, el.attribs['class'] || ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
const classes = splitNames(name);
|
||||
const numClasses = classes.length;
|
||||
const removeAll = arguments.length === 0;
|
||||
return domEach(this, (el) => {
|
||||
if (!isTag(el))
|
||||
return;
|
||||
if (removeAll) {
|
||||
// Short circuit the remove all case as this is the nice one
|
||||
el.attribs['class'] = '';
|
||||
}
|
||||
else {
|
||||
const elClasses = splitNames(el.attribs['class']);
|
||||
let changed = false;
|
||||
for (let j = 0; j < numClasses; j++) {
|
||||
const index = elClasses.indexOf(classes[j]);
|
||||
if (index >= 0) {
|
||||
elClasses.splice(index, 1);
|
||||
changed = true;
|
||||
/*
|
||||
* We have to do another pass to ensure that there are not duplicate
|
||||
* classes listed
|
||||
*/
|
||||
j--;
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
el.attribs['class'] = elClasses.join(' ');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Add or remove class(es) from the matched elements, depending on either the
|
||||
* class's presence or the value of the switch argument. Also accepts a `function`.
|
||||
*
|
||||
* @category Attributes
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple.green').toggleClass('fruit green red').html();
|
||||
* //=> <li class="apple fruit red">Apple</li>
|
||||
*
|
||||
* $('.apple.green').toggleClass('fruit green red', true).html();
|
||||
* //=> <li class="apple green fruit red">Apple</li>
|
||||
* ```
|
||||
*
|
||||
* @param value - Name of the class. Can also be a function.
|
||||
* @param stateVal - If specified the state of the class.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/toggleClass/}
|
||||
*/
|
||||
export function toggleClass(value, stateVal) {
|
||||
// Support functions
|
||||
if (typeof value === 'function') {
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el)) {
|
||||
toggleClass.call([el], value.call(el, i, el.attribs['class'] || '', stateVal), stateVal);
|
||||
}
|
||||
});
|
||||
}
|
||||
// Return if no value or not a string or function
|
||||
if (!value || typeof value !== 'string')
|
||||
return this;
|
||||
const classNames = value.split(rspace);
|
||||
const numClasses = classNames.length;
|
||||
const state = typeof stateVal === 'boolean' ? (stateVal ? 1 : -1) : 0;
|
||||
const numElements = this.length;
|
||||
for (let i = 0; i < numElements; i++) {
|
||||
const el = this[i];
|
||||
// If selected element isn't a tag, move on
|
||||
if (!isTag(el))
|
||||
continue;
|
||||
const elementClasses = splitNames(el.attribs['class']);
|
||||
// Check if class already exists
|
||||
for (let j = 0; j < numClasses; j++) {
|
||||
// Check if the class name is currently defined
|
||||
const index = elementClasses.indexOf(classNames[j]);
|
||||
// Add if stateValue === true or we are toggling and there is no value
|
||||
if (state >= 0 && index < 0) {
|
||||
elementClasses.push(classNames[j]);
|
||||
}
|
||||
else if (state <= 0 && index >= 0) {
|
||||
// Otherwise remove but only if the item exists
|
||||
elementClasses.splice(index, 1);
|
||||
}
|
||||
}
|
||||
el.attribs['class'] = elementClasses.join(' ');
|
||||
}
|
||||
return this;
|
||||
}
|
||||
//# sourceMappingURL=attributes.js.map
|
||||
1
node_modules/cheerio/lib/esm/api/attributes.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/attributes.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
40
node_modules/cheerio/lib/esm/api/css.d.ts
generated
vendored
Normal file
40
node_modules/cheerio/lib/esm/api/css.d.ts
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
import type { Element, AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Get the value of a style property for the first element in the set of matched elements.
|
||||
*
|
||||
* @category CSS
|
||||
* @param names - Optionally the names of the properties of interest.
|
||||
* @returns A map of all of the style properties.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, names?: string[]): Record<string, string> | undefined;
|
||||
/**
|
||||
* Get the value of a style property for the first element in the set of matched elements.
|
||||
*
|
||||
* @category CSS
|
||||
* @param names - The name of the property.
|
||||
* @returns The property value for the given name.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, name: string): string | undefined;
|
||||
/**
|
||||
* Set one CSS property for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param prop - The name of the property.
|
||||
* @param val - The new value.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, prop: string, val: string | ((this: Element, i: number, style: string) => string | undefined)): Cheerio<T>;
|
||||
/**
|
||||
* Set multiple CSS properties for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param map - A map of property names and values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export declare function css<T extends AnyNode>(this: Cheerio<T>, map: Record<string, string>): Cheerio<T>;
|
||||
//# sourceMappingURL=css.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/api/css.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/css.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AACtC;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAAC;AACtB;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EACC,MAAM,GACN,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;GAOG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,OAAO,EACnC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
||||
113
node_modules/cheerio/lib/esm/api/css.js
generated
vendored
Normal file
113
node_modules/cheerio/lib/esm/api/css.js
generated
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
import { domEach, isTag } from '../utils.js';
|
||||
/**
|
||||
* Set multiple CSS properties for every matched element.
|
||||
*
|
||||
* @category CSS
|
||||
* @param prop - The names of the properties.
|
||||
* @param val - The new values.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/css/}
|
||||
*/
|
||||
export function css(prop, val) {
|
||||
if ((prop != null && val != null) ||
|
||||
// When `prop` is a "plain" object
|
||||
(typeof prop === 'object' && !Array.isArray(prop))) {
|
||||
return domEach(this, (el, i) => {
|
||||
if (isTag(el)) {
|
||||
// `prop` can't be an array here anymore.
|
||||
setCss(el, prop, val, i);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (this.length === 0) {
|
||||
return undefined;
|
||||
}
|
||||
return getCss(this[0], prop);
|
||||
}
|
||||
/**
|
||||
* Set styles of all elements.
|
||||
*
|
||||
* @private
|
||||
* @param el - Element to set style of.
|
||||
* @param prop - Name of property.
|
||||
* @param value - Value to set property to.
|
||||
* @param idx - Optional index within the selection.
|
||||
*/
|
||||
function setCss(el, prop, value, idx) {
|
||||
if (typeof prop === 'string') {
|
||||
const styles = getCss(el);
|
||||
const val = typeof value === 'function' ? value.call(el, idx, styles[prop]) : value;
|
||||
if (val === '') {
|
||||
delete styles[prop];
|
||||
}
|
||||
else if (val != null) {
|
||||
styles[prop] = val;
|
||||
}
|
||||
el.attribs['style'] = stringify(styles);
|
||||
}
|
||||
else if (typeof prop === 'object') {
|
||||
Object.keys(prop).forEach((k, i) => {
|
||||
setCss(el, k, prop[k], i);
|
||||
});
|
||||
}
|
||||
}
|
||||
function getCss(el, prop) {
|
||||
if (!el || !isTag(el))
|
||||
return;
|
||||
const styles = parse(el.attribs['style']);
|
||||
if (typeof prop === 'string') {
|
||||
return styles[prop];
|
||||
}
|
||||
if (Array.isArray(prop)) {
|
||||
const newStyles = {};
|
||||
prop.forEach((item) => {
|
||||
if (styles[item] != null) {
|
||||
newStyles[item] = styles[item];
|
||||
}
|
||||
});
|
||||
return newStyles;
|
||||
}
|
||||
return styles;
|
||||
}
|
||||
/**
|
||||
* Stringify `obj` to styles.
|
||||
*
|
||||
* @private
|
||||
* @category CSS
|
||||
* @param obj - Object to stringify.
|
||||
* @returns The serialized styles.
|
||||
*/
|
||||
function stringify(obj) {
|
||||
return Object.keys(obj).reduce((str, prop) => `${str}${str ? ' ' : ''}${prop}: ${obj[prop]};`, '');
|
||||
}
|
||||
/**
|
||||
* Parse `styles`.
|
||||
*
|
||||
* @private
|
||||
* @category CSS
|
||||
* @param styles - Styles to be parsed.
|
||||
* @returns The parsed styles.
|
||||
*/
|
||||
function parse(styles) {
|
||||
styles = (styles || '').trim();
|
||||
if (!styles)
|
||||
return {};
|
||||
const obj = {};
|
||||
let key;
|
||||
for (const str of styles.split(';')) {
|
||||
const n = str.indexOf(':');
|
||||
// If there is no :, or if it is the first/last character, add to the previous item's value
|
||||
if (n < 1 || n === str.length - 1) {
|
||||
const trimmed = str.trimEnd();
|
||||
if (trimmed.length > 0 && key !== undefined) {
|
||||
obj[key] += `;${trimmed}`;
|
||||
}
|
||||
}
|
||||
else {
|
||||
key = str.slice(0, n).trim();
|
||||
obj[key] = str.slice(n + 1).trim();
|
||||
}
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
//# sourceMappingURL=css.js.map
|
||||
1
node_modules/cheerio/lib/esm/api/css.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/css.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/css.ts"],"names":[],"mappings":"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"}
|
||||
38
node_modules/cheerio/lib/esm/api/forms.d.ts
generated
vendored
Normal file
38
node_modules/cheerio/lib/esm/api/forms.d.ts
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import type { AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
/**
|
||||
* Encode a set of form elements as a string for submission.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serialize();
|
||||
* //=> 'foo=bar'
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serialize/}
|
||||
*/
|
||||
export declare function serialize<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
interface SerializedField {
|
||||
name: string;
|
||||
value: string;
|
||||
}
|
||||
/**
|
||||
* Encode a set of form elements as an array of names and values.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serializeArray();
|
||||
* //=> [ { name: 'foo', value: 'bar' } ]
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serializeArray/}
|
||||
*/
|
||||
export declare function serializeArray<T extends AnyNode>(this: Cheerio<T>): SerializedField[];
|
||||
export {};
|
||||
//# sourceMappingURL=forms.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/api/forms.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/forms.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"forms.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/forms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAYrE;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAC9C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,eAAe,EAAE,CAsCnB"}
|
||||
83
node_modules/cheerio/lib/esm/api/forms.js
generated
vendored
Normal file
83
node_modules/cheerio/lib/esm/api/forms.js
generated
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
import { isTag } from '../utils.js';
|
||||
/*
|
||||
* https://github.com/jquery/jquery/blob/2.1.3/src/manipulation/var/rcheckableType.js
|
||||
* https://github.com/jquery/jquery/blob/2.1.3/src/serialize.js
|
||||
*/
|
||||
const submittableSelector = 'input,select,textarea,keygen';
|
||||
const r20 = /%20/g;
|
||||
const rCRLF = /\r?\n/g;
|
||||
/**
|
||||
* Encode a set of form elements as a string for submission.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serialize();
|
||||
* //=> 'foo=bar'
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serialize/}
|
||||
*/
|
||||
export function serialize() {
|
||||
// Convert form elements into name/value objects
|
||||
const arr = this.serializeArray();
|
||||
// Serialize each element into a key/value string
|
||||
const retArr = arr.map((data) => `${encodeURIComponent(data.name)}=${encodeURIComponent(data.value)}`);
|
||||
// Return the resulting serialization
|
||||
return retArr.join('&').replace(r20, '+');
|
||||
}
|
||||
/**
|
||||
* Encode a set of form elements as an array of names and values.
|
||||
*
|
||||
* @category Forms
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<form><input name="foo" value="bar" /></form>').serializeArray();
|
||||
* //=> [ { name: 'foo', value: 'bar' } ]
|
||||
* ```
|
||||
*
|
||||
* @returns The serialized form.
|
||||
* @see {@link https://api.jquery.com/serializeArray/}
|
||||
*/
|
||||
export function serializeArray() {
|
||||
// Resolve all form elements from either forms or collections of form elements
|
||||
return this.map((_, elem) => {
|
||||
const $elem = this._make(elem);
|
||||
if (isTag(elem) && elem.name === 'form') {
|
||||
return $elem.find(submittableSelector).toArray();
|
||||
}
|
||||
return $elem.filter(submittableSelector).toArray();
|
||||
})
|
||||
.filter(
|
||||
// Verify elements have a name (`attr.name`) and are not disabled (`:enabled`)
|
||||
'[name!=""]:enabled' +
|
||||
// And cannot be clicked (`[type=submit]`) or are used in `x-www-form-urlencoded` (`[type=file]`)
|
||||
':not(:submit, :button, :image, :reset, :file)' +
|
||||
// And are either checked/don't have a checkable state
|
||||
':matches([checked], :not(:checkbox, :radio))'
|
||||
// Convert each of the elements to its value(s)
|
||||
)
|
||||
.map((_, elem) => {
|
||||
var _a;
|
||||
const $elem = this._make(elem);
|
||||
const name = $elem.attr('name'); // We have filtered for elements with a name before.
|
||||
// If there is no value set (e.g. `undefined`, `null`), then default value to empty
|
||||
const value = (_a = $elem.val()) !== null && _a !== void 0 ? _a : '';
|
||||
// If we have an array of values (e.g. `<select multiple>`), return an array of key/value pairs
|
||||
if (Array.isArray(value)) {
|
||||
return value.map((val) =>
|
||||
/*
|
||||
* We trim replace any line endings (e.g. `\r` or `\r\n` with `\r\n`) to guarantee consistency across platforms
|
||||
* These can occur inside of `<textarea>'s`
|
||||
*/
|
||||
({ name, value: val.replace(rCRLF, '\r\n') }));
|
||||
}
|
||||
// Otherwise (e.g. `<input type="text">`, return only one key/value pair
|
||||
return { name, value: value.replace(rCRLF, '\r\n') };
|
||||
})
|
||||
.toArray();
|
||||
}
|
||||
//# sourceMappingURL=forms.js.map
|
||||
1
node_modules/cheerio/lib/esm/api/forms.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/forms.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"forms.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/forms.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;GAGG;AACH,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAC3D,MAAM,GAAG,GAAG,MAAM,CAAC;AACnB,MAAM,KAAK,GAAG,QAAQ,CAAC;AAEvB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS;IACvB,gDAAgD;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAElC,iDAAiD;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CACpB,CAAC,IAAI,EAAE,EAAE,CACP,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CACvE,CAAC;IAEF,qCAAqC;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAOD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc;IAG5B,8EAA8E;IAC9E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,OAAO,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;SAClD;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC,CAAC;SACC,MAAM;IACL,8EAA8E;IAC9E,oBAAoB;QAClB,iGAAiG;QACjG,+CAA+C;QAC/C,sDAAsD;QACtD,8CAA8C;IAChD,+CAA+C;KAChD;SACA,GAAG,CAA2B,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAW,CAAC,CAAC,oDAAoD;QAC/F,mFAAmF;QACnF,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,GAAG,EAAE,mCAAI,EAAE,CAAC;QAEhC,+FAA+F;QAC/F,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACvB;;;eAGG;YACH,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAC9C,CAAC;SACH;QACD,wEAAwE;QACxE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACvD,CAAC,CAAC;SACD,OAAO,EAAE,CAAC;AACf,CAAC"}
|
||||
522
node_modules/cheerio/lib/esm/api/manipulation.d.ts
generated
vendored
Normal file
522
node_modules/cheerio/lib/esm/api/manipulation.d.ts
generated
vendored
Normal file
@@ -0,0 +1,522 @@
|
||||
/**
|
||||
* Methods for modifying the DOM structure.
|
||||
*
|
||||
* @module cheerio/manipulation
|
||||
*/
|
||||
import { AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
import type { BasicAcceptedElems, AcceptedElems } from '../types.js';
|
||||
/**
|
||||
* Create an array of nodes, recursing into arrays and parsing strings if necessary.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param elem - Elements to make an array of.
|
||||
* @param clone - Optionally clone nodes.
|
||||
* @returns The array of nodes.
|
||||
*/
|
||||
export declare function _makeDomArray<T extends AnyNode>(this: Cheerio<T>, elem?: BasicAcceptedElems<AnyNode>, clone?: boolean): AnyNode[];
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the end of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').appendTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to append elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/appendTo/}
|
||||
*/
|
||||
export declare function appendTo<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the beginning of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').prependTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to prepend elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/prependTo/}
|
||||
*/
|
||||
export declare function prependTo<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Inserts content as the _last_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').append('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/append/}
|
||||
*/
|
||||
export declare const append: <T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]) => Cheerio<T>;
|
||||
/**
|
||||
* Inserts content as the _first_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').prepend('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/prepend/}
|
||||
*/
|
||||
export declare const prepend: <T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]) => Cheerio<T>;
|
||||
/**
|
||||
* The .wrap() function can take any string or object that could be passed to
|
||||
* the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. A
|
||||
* copy of this structure will be wrapped around each of the elements in the set
|
||||
* of matched elements. This method returns the original set of elements for
|
||||
* chaining purposes.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrap(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="red-fruit">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrap(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="healthy">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </div>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around each element in the selection.
|
||||
* @see {@link https://api.jquery.com/wrap/}
|
||||
*/
|
||||
export declare const wrap: <T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<AnyNode>) => Cheerio<T>;
|
||||
/**
|
||||
* The .wrapInner() function can take any string or object that could be passed
|
||||
* to the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around the content of each of the elements in the
|
||||
* set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrapInner(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="red-fruit">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrapInner(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="healthy">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">
|
||||
* // <div class="healthy">Orange</div>
|
||||
* // </li>
|
||||
* // <li class="pear">
|
||||
* // <div class="healthy">Pear</div>
|
||||
* // </li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around the content of each element
|
||||
* in the selection.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/wrapInner/}
|
||||
*/
|
||||
export declare const wrapInner: <T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<AnyNode>) => Cheerio<T>;
|
||||
/**
|
||||
* The .unwrap() function, removes the parents of the set of matched elements
|
||||
* from the DOM, leaving the matched elements in their place.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>without selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <div><p>Hello</p></div>\n <div><p>World</p></div>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap();
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>with selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <p>Hello</p>\n <b><p>World</p></b>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap('b');
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @param selector - A selector to check the parent element against. If an
|
||||
* element's parent does not match the selector, the element won't be unwrapped.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/unwrap/}
|
||||
*/
|
||||
export declare function unwrap<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<T>;
|
||||
/**
|
||||
* The .wrapAll() function can take any string or object that could be passed to
|
||||
* the $() function to specify a DOM structure. This structure may be nested
|
||||
* several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around all of the elements in the set of matched
|
||||
* elements, as a single group.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>With markup passed to `wrapAll`</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="container"><div class="inner">First</div><div class="inner">Second</div></div>'
|
||||
* );
|
||||
* $('.inner').wrapAll("<div class='new'></div>");
|
||||
*
|
||||
* //=> <div class="container">
|
||||
* // <div class='new'>
|
||||
* // <div class="inner">First</div>
|
||||
* // <div class="inner">Second</div>
|
||||
* // </div>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>With an existing cheerio instance</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<span>Span 1</span><strong>Strong</strong><span>Span 2</span>'
|
||||
* );
|
||||
* const wrap = $('<div><p><em><b></b></em></p></div>');
|
||||
* $('span').wrapAll(wrap);
|
||||
*
|
||||
* //=> <div>
|
||||
* // <p>
|
||||
* // <em>
|
||||
* // <b>
|
||||
* // <span>Span 1</span>
|
||||
* // <span>Span 2</span>
|
||||
* // </b>
|
||||
* // </em>
|
||||
* // </p>
|
||||
* // </div>
|
||||
* // <strong>Strong</strong>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around all matched elements in the
|
||||
* selection.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/wrapAll/}
|
||||
*/
|
||||
export declare function wrapAll<T extends AnyNode>(this: Cheerio<T>, wrapper: AcceptedElems<T>): Cheerio<T>;
|
||||
/**
|
||||
* Insert content next to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').after('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert after each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/after/}
|
||||
*/
|
||||
export declare function after<T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements after the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertAfter('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements after.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertAfter/}
|
||||
*/
|
||||
export declare function insertAfter<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Insert content previous to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').before('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert before each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/before/}
|
||||
*/
|
||||
export declare function before<T extends AnyNode>(this: Cheerio<T>, ...elems: [(this: AnyNode, i: number, html: string) => BasicAcceptedElems<AnyNode>] | BasicAcceptedElems<AnyNode>[]): Cheerio<T>;
|
||||
/**
|
||||
* Insert every element in the set of matched elements before the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertBefore('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements before.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertBefore/}
|
||||
*/
|
||||
export declare function insertBefore<T extends AnyNode>(this: Cheerio<T>, target: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Removes the set of matched elements from the DOM and all their children.
|
||||
* `selector` filters the set of matched elements to be removed.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').remove();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param selector - Optional selector for elements to remove.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/remove/}
|
||||
*/
|
||||
export declare function remove<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<T>;
|
||||
/**
|
||||
* Replaces matched elements with `content`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const plum = $('<li class="plum">Plum</li>');
|
||||
* $('.pear').replaceWith(plum);
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - Replacement for matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/replaceWith/}
|
||||
*/
|
||||
export declare function replaceWith<T extends AnyNode>(this: Cheerio<T>, content: AcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Empties an element, removing all its children.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').empty();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/empty/}
|
||||
*/
|
||||
export declare function empty<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Gets an HTML content string from the first selected element.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').html();
|
||||
* //=> Orange
|
||||
*
|
||||
* $('#fruits').html('<li class="mango">Mango</li>').html();
|
||||
* //=> <li class="mango">Mango</li>
|
||||
* ```
|
||||
*
|
||||
* @returns The HTML content string.
|
||||
* @see {@link https://api.jquery.com/html/}
|
||||
*/
|
||||
export declare function html<T extends AnyNode>(this: Cheerio<T>): string | null;
|
||||
/**
|
||||
* Replaces each selected element's content with the specified content.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').html('<li class="mango">Mango</li>').html();
|
||||
* //=> <li class="mango">Mango</li>
|
||||
* ```
|
||||
*
|
||||
* @param str - The content to replace selection's contents with.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/html/}
|
||||
*/
|
||||
export declare function html<T extends AnyNode>(this: Cheerio<T>, str: string | Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Turns the collection to a string. Alias for `.html()`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function toString<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
/**
|
||||
* Get the combined text contents of each element in the set of matched
|
||||
* elements, including their descendants.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').text();
|
||||
* //=> Orange
|
||||
*
|
||||
* $('ul').text();
|
||||
* //=> Apple
|
||||
* // Orange
|
||||
* // Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The text contents of the collection.
|
||||
* @see {@link https://api.jquery.com/text/}
|
||||
*/
|
||||
export declare function text<T extends AnyNode>(this: Cheerio<T>): string;
|
||||
/**
|
||||
* Set the content of each element in the set of matched elements to the specified text.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').text('Orange');
|
||||
* //=> <div class="orange">Orange</div>
|
||||
* ```
|
||||
*
|
||||
* @param str - The text to set as the content of each matched element.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/text/}
|
||||
*/
|
||||
export declare function text<T extends AnyNode>(this: Cheerio<T>, str: string | ((this: AnyNode, i: number, text: string) => string)): Cheerio<T>;
|
||||
/**
|
||||
* Clone the cheerio object.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const moreFruit = $('#fruits').clone();
|
||||
* ```
|
||||
*
|
||||
* @returns The cloned object.
|
||||
* @see {@link https://api.jquery.com/clone/}
|
||||
*/
|
||||
export declare function clone<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
//# sourceMappingURL=manipulation.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/api/manipulation.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/manipulation.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"manipulation.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["api/manipulation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,OAAO,EAA8B,MAAM,YAAY,CAAC;AAK7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAC7C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,EAAE,CAiBX;AA8GD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EACxC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EACzC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,MAAM,0DAnLD,OAAO,KACV,MAAM,QACH,MAAM,KACT,mBAAmB,OAAO,CAAC,gDAkLxC,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,0DA1MF,OAAO,KACV,MAAM,QACH,MAAM,KACT,mBAAmB,OAAO,CAAC,gDAyMxC,CAAC;AAuDH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,IAAI,iDAtFJ,cAAc,OAAO,CAAC,eAqGjC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,SAAS,iDAlJT,cAAc,OAAO,CAAC,eAsJjC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAOZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,EACvC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAiCZ;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EACrC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,KAAK,EACJ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,CAAC,GACzE,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAChC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA6BZ;AAID;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,KAAK,EACJ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,kBAAkB,CAAC,OAAO,CAAC,CAAC,GACzE,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAChC,OAAO,CAAC,CAAC,CAAC,CA0BZ;AAID;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,OAAO,EACtC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAC3C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;AACzE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EACpC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,CAAC,CAAC,CAAC;AAyBd;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAClE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,OAAO,EACpC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,GACjE,OAAO,CAAC,CAAC,CAAC,CAAC;AA6Bd;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAErE"}
|
||||
810
node_modules/cheerio/lib/esm/api/manipulation.js
generated
vendored
Normal file
810
node_modules/cheerio/lib/esm/api/manipulation.js
generated
vendored
Normal file
@@ -0,0 +1,810 @@
|
||||
/**
|
||||
* Methods for modifying the DOM structure.
|
||||
*
|
||||
* @module cheerio/manipulation
|
||||
*/
|
||||
import { Text, hasChildren } from 'domhandler';
|
||||
import { update as updateDOM } from '../parse.js';
|
||||
import { text as staticText } from '../static.js';
|
||||
import { domEach, cloneDom, isTag, isHtml, isCheerio } from '../utils.js';
|
||||
import { removeElement } from 'domutils';
|
||||
/**
|
||||
* Create an array of nodes, recursing into arrays and parsing strings if necessary.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param elem - Elements to make an array of.
|
||||
* @param clone - Optionally clone nodes.
|
||||
* @returns The array of nodes.
|
||||
*/
|
||||
export function _makeDomArray(elem, clone) {
|
||||
if (elem == null) {
|
||||
return [];
|
||||
}
|
||||
if (isCheerio(elem)) {
|
||||
return clone ? cloneDom(elem.get()) : elem.get();
|
||||
}
|
||||
if (Array.isArray(elem)) {
|
||||
return elem.reduce((newElems, el) => newElems.concat(this._makeDomArray(el, clone)), []);
|
||||
}
|
||||
if (typeof elem === 'string') {
|
||||
return this._parse(elem, this.options, false, null).children;
|
||||
}
|
||||
return clone ? cloneDom([elem]) : [elem];
|
||||
}
|
||||
function _insert(concatenator) {
|
||||
return function (...elems) {
|
||||
const lastIdx = this.length - 1;
|
||||
return domEach(this, (el, i) => {
|
||||
if (!hasChildren(el))
|
||||
return;
|
||||
const domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, this._render(el.children))
|
||||
: elems;
|
||||
const dom = this._makeDomArray(domSrc, i < lastIdx);
|
||||
concatenator(dom, el.children, el);
|
||||
});
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Modify an array in-place, removing some number of elements and adding new
|
||||
* elements directly following them.
|
||||
*
|
||||
* @private
|
||||
* @category Manipulation
|
||||
* @param array - Target array to splice.
|
||||
* @param spliceIdx - Index at which to begin changing the array.
|
||||
* @param spliceCount - Number of elements to remove from the array.
|
||||
* @param newElems - Elements to insert into the array.
|
||||
* @param parent - The parent of the node.
|
||||
* @returns The spliced array.
|
||||
*/
|
||||
function uniqueSplice(array, spliceIdx, spliceCount, newElems, parent) {
|
||||
var _a, _b;
|
||||
const spliceArgs = [
|
||||
spliceIdx,
|
||||
spliceCount,
|
||||
...newElems,
|
||||
];
|
||||
const prev = spliceIdx === 0 ? null : array[spliceIdx - 1];
|
||||
const next = spliceIdx + spliceCount >= array.length
|
||||
? null
|
||||
: array[spliceIdx + spliceCount];
|
||||
/*
|
||||
* Before splicing in new elements, ensure they do not already appear in the
|
||||
* current array.
|
||||
*/
|
||||
for (let idx = 0; idx < newElems.length; ++idx) {
|
||||
const node = newElems[idx];
|
||||
const oldParent = node.parent;
|
||||
if (oldParent) {
|
||||
const oldSiblings = oldParent.children;
|
||||
const prevIdx = oldSiblings.indexOf(node);
|
||||
if (prevIdx > -1) {
|
||||
oldParent.children.splice(prevIdx, 1);
|
||||
if (parent === oldParent && spliceIdx > prevIdx) {
|
||||
spliceArgs[0]--;
|
||||
}
|
||||
}
|
||||
}
|
||||
node.parent = parent;
|
||||
if (node.prev) {
|
||||
node.prev.next = (_a = node.next) !== null && _a !== void 0 ? _a : null;
|
||||
}
|
||||
if (node.next) {
|
||||
node.next.prev = (_b = node.prev) !== null && _b !== void 0 ? _b : null;
|
||||
}
|
||||
node.prev = idx === 0 ? prev : newElems[idx - 1];
|
||||
node.next = idx === newElems.length - 1 ? next : newElems[idx + 1];
|
||||
}
|
||||
if (prev) {
|
||||
prev.next = newElems[0];
|
||||
}
|
||||
if (next) {
|
||||
next.prev = newElems[newElems.length - 1];
|
||||
}
|
||||
return array.splice(...spliceArgs);
|
||||
}
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the end of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').appendTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to append elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/appendTo/}
|
||||
*/
|
||||
export function appendTo(target) {
|
||||
const appendTarget = isCheerio(target) ? target : this._make(target);
|
||||
appendTarget.append(this);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Insert every element in the set of matched elements to the beginning of the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').prependTo('#fruits');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to prepend elements to.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/prependTo/}
|
||||
*/
|
||||
export function prependTo(target) {
|
||||
const prependTarget = isCheerio(target) ? target : this._make(target);
|
||||
prependTarget.prepend(this);
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Inserts content as the _last_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').append('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/append/}
|
||||
*/
|
||||
export const append = _insert((dom, children, parent) => {
|
||||
uniqueSplice(children, children.length, 0, dom, parent);
|
||||
});
|
||||
/**
|
||||
* Inserts content as the _first_ child of each of the selected elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').prepend('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @see {@link https://api.jquery.com/prepend/}
|
||||
*/
|
||||
export const prepend = _insert((dom, children, parent) => {
|
||||
uniqueSplice(children, 0, 0, dom, parent);
|
||||
});
|
||||
function _wrap(insert) {
|
||||
return function (wrapper) {
|
||||
const lastIdx = this.length - 1;
|
||||
const lastParent = this.parents().last();
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
const el = this[i];
|
||||
const wrap = typeof wrapper === 'function'
|
||||
? wrapper.call(el, i, el)
|
||||
: typeof wrapper === 'string' && !isHtml(wrapper)
|
||||
? lastParent.find(wrapper).clone()
|
||||
: wrapper;
|
||||
const [wrapperDom] = this._makeDomArray(wrap, i < lastIdx);
|
||||
if (!wrapperDom || !hasChildren(wrapperDom))
|
||||
continue;
|
||||
let elInsertLocation = wrapperDom;
|
||||
/*
|
||||
* Find the deepest child. Only consider the first tag child of each node
|
||||
* (ignore text); stop if no children are found.
|
||||
*/
|
||||
let j = 0;
|
||||
while (j < elInsertLocation.children.length) {
|
||||
const child = elInsertLocation.children[j];
|
||||
if (isTag(child)) {
|
||||
elInsertLocation = child;
|
||||
j = 0;
|
||||
}
|
||||
else {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
insert(el, elInsertLocation, [wrapperDom]);
|
||||
}
|
||||
return this;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* The .wrap() function can take any string or object that could be passed to
|
||||
* the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. A
|
||||
* copy of this structure will be wrapped around each of the elements in the set
|
||||
* of matched elements. This method returns the original set of elements for
|
||||
* chaining purposes.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrap(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="red-fruit">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrap(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <div class="healthy">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </div>
|
||||
* // <div class="healthy">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </div>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around each element in the selection.
|
||||
* @see {@link https://api.jquery.com/wrap/}
|
||||
*/
|
||||
export const wrap = _wrap((el, elInsertLocation, wrapperDom) => {
|
||||
const { parent } = el;
|
||||
if (!parent)
|
||||
return;
|
||||
const siblings = parent.children;
|
||||
const index = siblings.indexOf(el);
|
||||
updateDOM([el], elInsertLocation);
|
||||
/*
|
||||
* The previous operation removed the current element from the `siblings`
|
||||
* array, so the `dom` array can be inserted without removing any
|
||||
* additional elements.
|
||||
*/
|
||||
uniqueSplice(siblings, index, 0, wrapperDom, parent);
|
||||
});
|
||||
/**
|
||||
* The .wrapInner() function can take any string or object that could be passed
|
||||
* to the $() factory function to specify a DOM structure. This structure may be
|
||||
* nested several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around the content of each of the elements in the
|
||||
* set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const redFruit = $('<div class="red-fruit"></div>');
|
||||
* $('.apple').wrapInner(redFruit);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="red-fruit">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
*
|
||||
* const healthy = $('<div class="healthy"></div>');
|
||||
* $('li').wrapInner(healthy);
|
||||
*
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">
|
||||
* // <div class="healthy">Apple</div>
|
||||
* // </li>
|
||||
* // <li class="orange">
|
||||
* // <div class="healthy">Orange</div>
|
||||
* // </li>
|
||||
* // <li class="pear">
|
||||
* // <div class="healthy">Pear</div>
|
||||
* // </li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around the content of each element
|
||||
* in the selection.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/wrapInner/}
|
||||
*/
|
||||
export const wrapInner = _wrap((el, elInsertLocation, wrapperDom) => {
|
||||
if (!hasChildren(el))
|
||||
return;
|
||||
updateDOM(el.children, elInsertLocation);
|
||||
updateDOM(wrapperDom, el);
|
||||
});
|
||||
/**
|
||||
* The .unwrap() function, removes the parents of the set of matched elements
|
||||
* from the DOM, leaving the matched elements in their place.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>without selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <div><p>Hello</p></div>\n <div><p>World</p></div>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap();
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>with selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div id=test>\n <p>Hello</p>\n <b><p>World</p></b>\n</div>'
|
||||
* );
|
||||
* $('#test p').unwrap('b');
|
||||
*
|
||||
* //=> <div id=test>
|
||||
* // <p>Hello</p>
|
||||
* // <p>World</p>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @param selector - A selector to check the parent element against. If an
|
||||
* element's parent does not match the selector, the element won't be unwrapped.
|
||||
* @returns The instance itself, for chaining.
|
||||
* @see {@link https://api.jquery.com/unwrap/}
|
||||
*/
|
||||
export function unwrap(selector) {
|
||||
this.parent(selector)
|
||||
.not('body')
|
||||
.each((_, el) => {
|
||||
this._make(el).replaceWith(el.children);
|
||||
});
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* The .wrapAll() function can take any string or object that could be passed to
|
||||
* the $() function to specify a DOM structure. This structure may be nested
|
||||
* several levels deep, but should contain only one inmost element. The
|
||||
* structure will be wrapped around all of the elements in the set of matched
|
||||
* elements, as a single group.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example <caption>With markup passed to `wrapAll`</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="container"><div class="inner">First</div><div class="inner">Second</div></div>'
|
||||
* );
|
||||
* $('.inner').wrapAll("<div class='new'></div>");
|
||||
*
|
||||
* //=> <div class="container">
|
||||
* // <div class='new'>
|
||||
* // <div class="inner">First</div>
|
||||
* // <div class="inner">Second</div>
|
||||
* // </div>
|
||||
* // </div>
|
||||
* ```
|
||||
*
|
||||
* @example <caption>With an existing cheerio instance</caption>
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<span>Span 1</span><strong>Strong</strong><span>Span 2</span>'
|
||||
* );
|
||||
* const wrap = $('<div><p><em><b></b></em></p></div>');
|
||||
* $('span').wrapAll(wrap);
|
||||
*
|
||||
* //=> <div>
|
||||
* // <p>
|
||||
* // <em>
|
||||
* // <b>
|
||||
* // <span>Span 1</span>
|
||||
* // <span>Span 2</span>
|
||||
* // </b>
|
||||
* // </em>
|
||||
* // </p>
|
||||
* // </div>
|
||||
* // <strong>Strong</strong>
|
||||
* ```
|
||||
*
|
||||
* @param wrapper - The DOM structure to wrap around all matched elements in the
|
||||
* selection.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/wrapAll/}
|
||||
*/
|
||||
export function wrapAll(wrapper) {
|
||||
const el = this[0];
|
||||
if (el) {
|
||||
const wrap = this._make(typeof wrapper === 'function' ? wrapper.call(el, 0, el) : wrapper).insertBefore(el);
|
||||
// If html is given as wrapper, wrap may contain text elements
|
||||
let elInsertLocation;
|
||||
for (let i = 0; i < wrap.length; i++) {
|
||||
if (wrap[i].type === 'tag')
|
||||
elInsertLocation = wrap[i];
|
||||
}
|
||||
let j = 0;
|
||||
/*
|
||||
* Find the deepest child. Only consider the first tag child of each node
|
||||
* (ignore text); stop if no children are found.
|
||||
*/
|
||||
while (elInsertLocation && j < elInsertLocation.children.length) {
|
||||
const child = elInsertLocation.children[j];
|
||||
if (child.type === 'tag') {
|
||||
elInsertLocation = child;
|
||||
j = 0;
|
||||
}
|
||||
else {
|
||||
j++;
|
||||
}
|
||||
}
|
||||
if (elInsertLocation)
|
||||
this._make(elInsertLocation).append(this);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
/* eslint-disable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert content next to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').after('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert after each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/after/}
|
||||
*/
|
||||
export function after(...elems) {
|
||||
const lastIdx = this.length - 1;
|
||||
return domEach(this, (el, i) => {
|
||||
const { parent } = el;
|
||||
if (!hasChildren(el) || !parent) {
|
||||
return;
|
||||
}
|
||||
const siblings = parent.children;
|
||||
const index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
const domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, this._render(el.children))
|
||||
: elems;
|
||||
const dom = this._makeDomArray(domSrc, i < lastIdx);
|
||||
// Add element after `this` element
|
||||
uniqueSplice(siblings, index + 1, 0, dom, parent);
|
||||
});
|
||||
}
|
||||
/* eslint-enable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert every element in the set of matched elements after the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertAfter('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements after.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertAfter/}
|
||||
*/
|
||||
export function insertAfter(target) {
|
||||
if (typeof target === 'string') {
|
||||
target = this._make(target);
|
||||
}
|
||||
this.remove();
|
||||
const clones = [];
|
||||
this._makeDomArray(target).forEach((el) => {
|
||||
const clonedSelf = this.clone().toArray();
|
||||
const { parent } = el;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
const siblings = parent.children;
|
||||
const index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
// Add cloned `this` element(s) after target element
|
||||
uniqueSplice(siblings, index + 1, 0, clonedSelf, parent);
|
||||
clones.push(...clonedSelf);
|
||||
});
|
||||
return this._make(clones);
|
||||
}
|
||||
/* eslint-disable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert content previous to each element in the set of matched elements.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').before('<li class="plum">Plum</li>');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - HTML string, DOM element, array of DOM elements or Cheerio
|
||||
* to insert before each element in the set of matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/before/}
|
||||
*/
|
||||
export function before(...elems) {
|
||||
const lastIdx = this.length - 1;
|
||||
return domEach(this, (el, i) => {
|
||||
const { parent } = el;
|
||||
if (!hasChildren(el) || !parent) {
|
||||
return;
|
||||
}
|
||||
const siblings = parent.children;
|
||||
const index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
const domSrc = typeof elems[0] === 'function'
|
||||
? elems[0].call(el, i, this._render(el.children))
|
||||
: elems;
|
||||
const dom = this._makeDomArray(domSrc, i < lastIdx);
|
||||
// Add element before `el` element
|
||||
uniqueSplice(siblings, index, 0, dom, parent);
|
||||
});
|
||||
}
|
||||
/* eslint-enable jsdoc/check-param-names*/
|
||||
/**
|
||||
* Insert every element in the set of matched elements before the target.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('<li class="plum">Plum</li>').insertBefore('.apple');
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="plum">Plum</li>
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="pear">Pear</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param target - Element to insert elements before.
|
||||
* @returns The set of newly inserted elements.
|
||||
* @see {@link https://api.jquery.com/insertBefore/}
|
||||
*/
|
||||
export function insertBefore(target) {
|
||||
const targetArr = this._make(target);
|
||||
this.remove();
|
||||
const clones = [];
|
||||
domEach(targetArr, (el) => {
|
||||
const clonedSelf = this.clone().toArray();
|
||||
const { parent } = el;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
const siblings = parent.children;
|
||||
const index = siblings.indexOf(el);
|
||||
// If not found, move on
|
||||
/* istanbul ignore next */
|
||||
if (index < 0)
|
||||
return;
|
||||
// Add cloned `this` element(s) after target element
|
||||
uniqueSplice(siblings, index, 0, clonedSelf, parent);
|
||||
clones.push(...clonedSelf);
|
||||
});
|
||||
return this._make(clones);
|
||||
}
|
||||
/**
|
||||
* Removes the set of matched elements from the DOM and all their children.
|
||||
* `selector` filters the set of matched elements to be removed.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').remove();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param selector - Optional selector for elements to remove.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/remove/}
|
||||
*/
|
||||
export function remove(selector) {
|
||||
// Filter if we have selector
|
||||
const elems = selector ? this.filter(selector) : this;
|
||||
domEach(elems, (el) => {
|
||||
removeElement(el);
|
||||
el.prev = el.next = el.parent = null;
|
||||
});
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Replaces matched elements with `content`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const plum = $('<li class="plum">Plum</li>');
|
||||
* $('.pear').replaceWith(plum);
|
||||
* $.html();
|
||||
* //=> <ul id="fruits">
|
||||
* // <li class="apple">Apple</li>
|
||||
* // <li class="orange">Orange</li>
|
||||
* // <li class="plum">Plum</li>
|
||||
* // </ul>
|
||||
* ```
|
||||
*
|
||||
* @param content - Replacement for matched elements.
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/replaceWith/}
|
||||
*/
|
||||
export function replaceWith(content) {
|
||||
return domEach(this, (el, i) => {
|
||||
const { parent } = el;
|
||||
if (!parent) {
|
||||
return;
|
||||
}
|
||||
const siblings = parent.children;
|
||||
const cont = typeof content === 'function' ? content.call(el, i, el) : content;
|
||||
const dom = this._makeDomArray(cont);
|
||||
/*
|
||||
* In the case that `dom` contains nodes that already exist in other
|
||||
* structures, ensure those nodes are properly removed.
|
||||
*/
|
||||
updateDOM(dom, null);
|
||||
const index = siblings.indexOf(el);
|
||||
// Completely remove old element
|
||||
uniqueSplice(siblings, index, 1, dom, parent);
|
||||
if (!dom.includes(el)) {
|
||||
el.parent = el.prev = el.next = null;
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Empties an element, removing all its children.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('ul').empty();
|
||||
* $.html();
|
||||
* //=> <ul id="fruits"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns The instance itself.
|
||||
* @see {@link https://api.jquery.com/empty/}
|
||||
*/
|
||||
export function empty() {
|
||||
return domEach(this, (el) => {
|
||||
if (!hasChildren(el))
|
||||
return;
|
||||
el.children.forEach((child) => {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
el.children.length = 0;
|
||||
});
|
||||
}
|
||||
export function html(str) {
|
||||
if (str === undefined) {
|
||||
const el = this[0];
|
||||
if (!el || !hasChildren(el))
|
||||
return null;
|
||||
return this._render(el.children);
|
||||
}
|
||||
return domEach(this, (el) => {
|
||||
if (!hasChildren(el))
|
||||
return;
|
||||
el.children.forEach((child) => {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
const content = isCheerio(str)
|
||||
? str.toArray()
|
||||
: this._parse(`${str}`, this.options, false, el).children;
|
||||
updateDOM(content, el);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Turns the collection to a string. Alias for `.html()`.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export function toString() {
|
||||
return this._render(this);
|
||||
}
|
||||
export function text(str) {
|
||||
// If `str` is undefined, act as a "getter"
|
||||
if (str === undefined) {
|
||||
return staticText(this);
|
||||
}
|
||||
if (typeof str === 'function') {
|
||||
// Function support
|
||||
return domEach(this, (el, i) => this._make(el).text(str.call(el, i, staticText([el]))));
|
||||
}
|
||||
// Append text node to each selected elements
|
||||
return domEach(this, (el) => {
|
||||
if (!hasChildren(el))
|
||||
return;
|
||||
el.children.forEach((child) => {
|
||||
child.next = child.prev = child.parent = null;
|
||||
});
|
||||
const textNode = new Text(`${str}`);
|
||||
updateDOM(textNode, el);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Clone the cheerio object.
|
||||
*
|
||||
* @category Manipulation
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const moreFruit = $('#fruits').clone();
|
||||
* ```
|
||||
*
|
||||
* @returns The cloned object.
|
||||
* @see {@link https://api.jquery.com/clone/}
|
||||
*/
|
||||
export function clone() {
|
||||
return this._make(cloneDom(this.get()));
|
||||
}
|
||||
//# sourceMappingURL=manipulation.js.map
|
||||
1
node_modules/cheerio/lib/esm/api/manipulation.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/manipulation.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
644
node_modules/cheerio/lib/esm/api/traversing.d.ts
generated
vendored
Normal file
644
node_modules/cheerio/lib/esm/api/traversing.d.ts
generated
vendored
Normal file
@@ -0,0 +1,644 @@
|
||||
/**
|
||||
* Methods for traversing the DOM structure.
|
||||
*
|
||||
* @module cheerio/traversing
|
||||
*/
|
||||
import { AnyNode, Element, Document } from 'domhandler';
|
||||
import type { Cheerio } from '../cheerio.js';
|
||||
import type { AcceptedFilters } from '../types.js';
|
||||
/**
|
||||
* Get the descendants of each element in the current set of matched elements,
|
||||
* filtered by a selector, jQuery object, or element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').find('li').length;
|
||||
* //=> 3
|
||||
* $('#fruits').find($('.apple')).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The found elements.
|
||||
* @see {@link https://api.jquery.com/find/}
|
||||
*/
|
||||
export declare function find<T extends AnyNode>(this: Cheerio<T>, selectorOrHaystack?: string | Cheerio<Element> | Element): Cheerio<Element>;
|
||||
/**
|
||||
* Get the parent of each element in the current set of matched elements,
|
||||
* optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').parent().attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parent.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parent/}
|
||||
*/
|
||||
export declare const parent: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get a set of parents filtered by `selector` of each element in the current
|
||||
* set of match elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parents().length;
|
||||
* //=> 2
|
||||
* $('.orange').parents('#fruits').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parents/}
|
||||
*/
|
||||
export declare const parents: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get the ancestors of each element in the current set of matched elements, up
|
||||
* to but not including the element matched by the selector, DOM node, or cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parentsUntil('#food').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - Optional filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parentsUntil/}
|
||||
*/
|
||||
export declare const parentsUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* For each element in the set, get the first element that matches the selector
|
||||
* by testing the element itself and traversing up through its ancestors in the DOM tree.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').closest();
|
||||
* //=> []
|
||||
*
|
||||
* $('.orange').closest('.apple');
|
||||
* // => []
|
||||
*
|
||||
* $('.orange').closest('li');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
*
|
||||
* $('.orange').closest('#fruits');
|
||||
* //=> [<ul id="fruits"> ... </ul>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the element to find.
|
||||
* @returns The closest nodes.
|
||||
* @see {@link https://api.jquery.com/closest/}
|
||||
*/
|
||||
export declare function closest<T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Gets the next sibling of the first selected element, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').next().hasClass('orange');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for sibling.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/next/}
|
||||
*/
|
||||
export declare const next: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the following siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="pear">Pear</li>]
|
||||
* $('.apple').nextAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextAll/}
|
||||
*/
|
||||
export declare const nextAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the following siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextUntil('.pear');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextUntil/}
|
||||
*/
|
||||
export declare const nextUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the previous sibling of the first selected element optionally filtered
|
||||
* by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').prev().hasClass('apple');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prev/}
|
||||
*/
|
||||
export declare const prev: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the preceding siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="apple">Apple</li>]
|
||||
*
|
||||
* $('.pear').prevAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevAll/}
|
||||
*/
|
||||
export declare const prevAll: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets all the preceding siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevUntil('.apple');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevUntil/}
|
||||
*/
|
||||
export declare const prevUntil: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element> | null, filterSelector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Get the siblings of each element (excluding the element) in the set of
|
||||
* matched elements, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').siblings().length;
|
||||
* //=> 2
|
||||
*
|
||||
* $('.pear').siblings('.orange').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The siblings.
|
||||
* @see {@link https://api.jquery.com/siblings/}
|
||||
*/
|
||||
export declare const siblings: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the element children of each element in the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().length;
|
||||
* //=> 3
|
||||
*
|
||||
* $('#fruits').children('.pear').text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for children.
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/children/}
|
||||
*/
|
||||
export declare const children: <T extends AnyNode>(this: Cheerio<T>, selector?: AcceptedFilters<Element>) => Cheerio<Element>;
|
||||
/**
|
||||
* Gets the children of each element in the set of matched elements, including
|
||||
* text and comment nodes.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').contents().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/contents/}
|
||||
*/
|
||||
export declare function contents<T extends AnyNode>(this: Cheerio<T>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Iterates over a cheerio object, executing a function for each matched
|
||||
* element. When the callback is fired, the function is fired in the context of
|
||||
* the DOM element, so `this` refers to the current element, which is equivalent
|
||||
* to the function parameter `element`. To break out of the `each` loop early,
|
||||
* return with `false`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const fruits = [];
|
||||
*
|
||||
* $('li').each(function (i, elem) {
|
||||
* fruits[i] = $(this).text();
|
||||
* });
|
||||
*
|
||||
* fruits.join(', ');
|
||||
* //=> Apple, Orange, Pear
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The instance itself, useful for chaining.
|
||||
* @see {@link https://api.jquery.com/each/}
|
||||
*/
|
||||
export declare function each<T>(this: Cheerio<T>, fn: (this: T, i: number, el: T) => void | boolean): Cheerio<T>;
|
||||
/**
|
||||
* Pass each element in the current matched set through a function, producing a
|
||||
* new Cheerio object containing the return values. The function can return an
|
||||
* individual data item or an array of data items to be inserted into the
|
||||
* resulting set. If an array is returned, the elements inside the array are
|
||||
* inserted into the set. If the function returns null or undefined, no element
|
||||
* will be inserted.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .map(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).text();
|
||||
* })
|
||||
* .toArray()
|
||||
* .join(' ');
|
||||
* //=> "apple orange pear"
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The mapped elements, wrapped in a Cheerio collection.
|
||||
* @see {@link https://api.jquery.com/map/}
|
||||
*/
|
||||
export declare function map<T, M>(this: Cheerio<T>, fn: (this: T, i: number, el: T) => M[] | M | null | undefined): Cheerio<M>;
|
||||
/**
|
||||
* Iterates over a cheerio object, reducing the set of selector elements to
|
||||
* those that match the selector or pass the function's test.
|
||||
*
|
||||
* This is the definition for using type guards; have a look below for other
|
||||
* ways to invoke this method. The function is executed in the context of the
|
||||
* selected element, so `this` refers to the current element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .filter(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* })
|
||||
* .attr('class'); //=> orange
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/filter/}
|
||||
*/
|
||||
export declare function filter<T, S extends T>(this: Cheerio<T>, match: (this: T, index: number, value: T) => value is S): Cheerio<S>;
|
||||
/**
|
||||
* Iterates over a cheerio object, reducing the set of selector elements to
|
||||
* those that match the selector or pass the function's test.
|
||||
*
|
||||
* - When a Cheerio selection is specified, return only the elements contained in
|
||||
* that selection.
|
||||
* - When an element is specified, return only that element (if it is contained in
|
||||
* the original selection).
|
||||
* - If using the function method, the function is executed in the context of the
|
||||
* selected element, so `this` refers to the current element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').filter('.orange').attr('class');
|
||||
* //=> orange
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .filter(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* })
|
||||
* .attr('class'); //=> orange
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above. See
|
||||
* {@link AcceptedFilters}.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/filter/}
|
||||
*/
|
||||
export declare function filter<T, S extends AcceptedFilters<T>>(this: Cheerio<T>, match: S): Cheerio<S extends string ? Element : T>;
|
||||
export declare function filterArray<T>(nodes: T[], match: AcceptedFilters<T>, xmlMode?: boolean, root?: Document): Element[] | T[];
|
||||
/**
|
||||
* Checks the current list of elements and returns `true` if _any_ of the
|
||||
* elements match the selector. If using an element or Cheerio selection,
|
||||
* returns `true` if _any_ of the elements match. If using a predicate function,
|
||||
* the function is executed in the context of the selected element, so `this`
|
||||
* refers to the current element.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param selector - Selector for the selection.
|
||||
* @returns Whether or not the selector matches an element of the instance.
|
||||
* @see {@link https://api.jquery.com/is/}
|
||||
*/
|
||||
export declare function is<T>(this: Cheerio<T>, selector?: AcceptedFilters<T>): boolean;
|
||||
/**
|
||||
* Remove elements from the set of matched elements. Given a Cheerio object that
|
||||
* represents a set of DOM elements, the `.not()` method constructs a new
|
||||
* Cheerio object from a subset of the matching elements. The supplied selector
|
||||
* is tested against each element; the elements that don't match the selector
|
||||
* will be included in the result.
|
||||
*
|
||||
* The `.not()` method can take a function as its argument in the same way that
|
||||
* `.filter()` does. Elements for which the function returns `true` are excluded
|
||||
* from the filtered set; all other elements are included.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not('.apple').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* }).length; //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @param container - Optional node to filter instead.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/not/}
|
||||
*/
|
||||
export declare function not<T extends AnyNode>(this: Cheerio<T>, match: AcceptedFilters<T>): Cheerio<T>;
|
||||
/**
|
||||
* Filters the set of matched elements to only those which have the given DOM
|
||||
* element as a descendant or which have a descendant that matches the given
|
||||
* selector. Equivalent to `.filter(':has(selector)')`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has('.pear').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Element</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has($('.pear')[0]).attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/has/}
|
||||
*/
|
||||
export declare function has(this: Cheerio<AnyNode | Element>, selectorOrHaystack: string | Cheerio<Element> | Element): Cheerio<AnyNode | Element>;
|
||||
/**
|
||||
* Will select the first element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().first().text();
|
||||
* //=> Apple
|
||||
* ```
|
||||
*
|
||||
* @returns The first element.
|
||||
* @see {@link https://api.jquery.com/first/}
|
||||
*/
|
||||
export declare function first<T extends AnyNode>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Will select the last element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().last().text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The last element.
|
||||
* @see {@link https://api.jquery.com/last/}
|
||||
*/
|
||||
export declare function last<T>(this: Cheerio<T>): Cheerio<T>;
|
||||
/**
|
||||
* Reduce the set of matched elements to the one at the specified index. Use
|
||||
* `.eq(-i)` to count backwards from the last selected element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('li').eq(-1).text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param i - Index of the element to select.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/eq/}
|
||||
*/
|
||||
export declare function eq<T>(this: Cheerio<T>, i: number): Cheerio<T>;
|
||||
/**
|
||||
* Retrieve one of the elements matched by the Cheerio object, at the `i`th position.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').get(0).tagName;
|
||||
* //=> li
|
||||
* ```
|
||||
*
|
||||
* @param i - Element to retrieve.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/get/}
|
||||
*/
|
||||
export declare function get<T>(this: Cheerio<T>, i: number): T | undefined;
|
||||
/**
|
||||
* Retrieve all elements matched by the Cheerio object, as an array.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').get().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns All elements matched by the Cheerio object.
|
||||
* @see {@link https://api.jquery.com/get/}
|
||||
*/
|
||||
export declare function get<T>(this: Cheerio<T>): T[];
|
||||
/**
|
||||
* Retrieve all the DOM elements contained in the jQuery set as an array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').toArray();
|
||||
* //=> [ {...}, {...}, {...} ]
|
||||
* ```
|
||||
*
|
||||
* @returns The contained items.
|
||||
*/
|
||||
export declare function toArray<T>(this: Cheerio<T>): T[];
|
||||
/**
|
||||
* Search for a given element from among the matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').index();
|
||||
* //=> 2 $('.orange').index('li');
|
||||
* //=> 1
|
||||
* $('.apple').index($('#fruit, li'));
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrNeedle - Element to look for.
|
||||
* @returns The index of the element.
|
||||
* @see {@link https://api.jquery.com/index/}
|
||||
*/
|
||||
export declare function index<T extends AnyNode>(this: Cheerio<T>, selectorOrNeedle?: string | Cheerio<AnyNode> | AnyNode): number;
|
||||
/**
|
||||
* Gets the elements matching the specified range (0-based position).
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').slice(1).eq(0).text();
|
||||
* //=> 'Orange'
|
||||
*
|
||||
* $('li').slice(1, 2).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @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 - A position at which the elements stop being selected. If
|
||||
* negative, it indicates an offset from the end of the set. If omitted, the
|
||||
* range continues until the end of the set.
|
||||
* @returns The elements matching the specified range.
|
||||
* @see {@link https://api.jquery.com/slice/}
|
||||
*/
|
||||
export declare function slice<T>(this: Cheerio<T>, start?: number, end?: number): Cheerio<T>;
|
||||
/**
|
||||
* End the most recent filtering operation in the current chain and return the
|
||||
* set of matched elements to its previous state.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).end().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The previous state of the set of matched elements.
|
||||
* @see {@link https://api.jquery.com/end/}
|
||||
*/
|
||||
export declare function end<T>(this: Cheerio<T>): Cheerio<AnyNode>;
|
||||
/**
|
||||
* Add elements to the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').add('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param other - Elements to add.
|
||||
* @param context - Optionally the context of the new selection.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/add/}
|
||||
*/
|
||||
export declare function add<S extends AnyNode, T extends AnyNode>(this: Cheerio<T>, other: string | Cheerio<S> | S | S[], context?: Cheerio<S> | string): Cheerio<S | T>;
|
||||
/**
|
||||
* Add the previous set of elements on the stack to the current set, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).addBack('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the elements to add.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/addBack/}
|
||||
*/
|
||||
export declare function addBack<T extends AnyNode>(this: Cheerio<T>, selector?: string): Cheerio<AnyNode>;
|
||||
//# sourceMappingURL=traversing.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/api/traversing.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/traversing.d.ts.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
831
node_modules/cheerio/lib/esm/api/traversing.js
generated
vendored
Normal file
831
node_modules/cheerio/lib/esm/api/traversing.js
generated
vendored
Normal file
@@ -0,0 +1,831 @@
|
||||
/**
|
||||
* Methods for traversing the DOM structure.
|
||||
*
|
||||
* @module cheerio/traversing
|
||||
*/
|
||||
import { hasChildren, isDocument, } from 'domhandler';
|
||||
import * as select from 'cheerio-select';
|
||||
import { domEach, isTag, isCheerio } from '../utils.js';
|
||||
import { contains } from '../static.js';
|
||||
import { getChildren, getSiblings, nextElementSibling, prevElementSibling, uniqueSort, } from 'domutils';
|
||||
const reSiblingSelector = /^\s*[~+]/;
|
||||
/**
|
||||
* Get the descendants of each element in the current set of matched elements,
|
||||
* filtered by a selector, jQuery object, or element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').find('li').length;
|
||||
* //=> 3
|
||||
* $('#fruits').find($('.apple')).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The found elements.
|
||||
* @see {@link https://api.jquery.com/find/}
|
||||
*/
|
||||
export function find(selectorOrHaystack) {
|
||||
var _a;
|
||||
if (!selectorOrHaystack) {
|
||||
return this._make([]);
|
||||
}
|
||||
const context = this.toArray();
|
||||
if (typeof selectorOrHaystack !== 'string') {
|
||||
const haystack = isCheerio(selectorOrHaystack)
|
||||
? selectorOrHaystack.toArray()
|
||||
: [selectorOrHaystack];
|
||||
return this._make(haystack.filter((elem) => context.some((node) => contains(node, elem))));
|
||||
}
|
||||
const elems = reSiblingSelector.test(selectorOrHaystack)
|
||||
? context
|
||||
: this.children().toArray();
|
||||
const options = {
|
||||
context,
|
||||
root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0],
|
||||
// Pass options that are recognized by `cheerio-select`
|
||||
xmlMode: this.options.xmlMode,
|
||||
lowerCaseTags: this.options.lowerCaseTags,
|
||||
lowerCaseAttributeNames: this.options.lowerCaseAttributeNames,
|
||||
pseudos: this.options.pseudos,
|
||||
quirksMode: this.options.quirksMode,
|
||||
};
|
||||
return this._make(select.select(selectorOrHaystack, elems, options));
|
||||
}
|
||||
/**
|
||||
* Creates a matcher, using a particular mapping function. Matchers provide a
|
||||
* function that finds elements using a generating function, supporting filtering.
|
||||
*
|
||||
* @private
|
||||
* @param matchMap - Mapping function.
|
||||
* @returns - Function for wrapping generating functions.
|
||||
*/
|
||||
function _getMatcher(matchMap) {
|
||||
return function (fn, ...postFns) {
|
||||
return function (selector) {
|
||||
var _a;
|
||||
let matched = matchMap(fn, this);
|
||||
if (selector) {
|
||||
matched = filterArray(matched, selector, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0]);
|
||||
}
|
||||
return this._make(
|
||||
// Post processing is only necessary if there is more than one element.
|
||||
this.length > 1 && matched.length > 1
|
||||
? postFns.reduce((elems, fn) => fn(elems), matched)
|
||||
: matched);
|
||||
};
|
||||
};
|
||||
}
|
||||
/** Matcher that adds multiple elements for each entry in the input. */
|
||||
const _matcher = _getMatcher((fn, elems) => {
|
||||
const ret = [];
|
||||
for (let i = 0; i < elems.length; i++) {
|
||||
const value = fn(elems[i]);
|
||||
ret.push(value);
|
||||
}
|
||||
return new Array().concat(...ret);
|
||||
});
|
||||
/** Matcher that adds at most one element for each entry in the input. */
|
||||
const _singleMatcher = _getMatcher((fn, elems) => {
|
||||
const ret = [];
|
||||
for (let i = 0; i < elems.length; i++) {
|
||||
const value = fn(elems[i]);
|
||||
if (value !== null) {
|
||||
ret.push(value);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
});
|
||||
/**
|
||||
* Matcher that supports traversing until a condition is met.
|
||||
*
|
||||
* @returns A function usable for `*Until` methods.
|
||||
*/
|
||||
function _matchUntil(nextElem, ...postFns) {
|
||||
// We use a variable here that is used from within the matcher.
|
||||
let matches = null;
|
||||
const innerMatcher = _getMatcher((nextElem, elems) => {
|
||||
const matched = [];
|
||||
domEach(elems, (elem) => {
|
||||
for (let next; (next = nextElem(elem)); elem = next) {
|
||||
// FIXME: `matched` might contain duplicates here and the index is too large.
|
||||
if (matches === null || matches === void 0 ? void 0 : matches(next, matched.length))
|
||||
break;
|
||||
matched.push(next);
|
||||
}
|
||||
});
|
||||
return matched;
|
||||
})(nextElem, ...postFns);
|
||||
return function (selector, filterSelector) {
|
||||
// Override `matches` variable with the new target.
|
||||
matches =
|
||||
typeof selector === 'string'
|
||||
? (elem) => select.is(elem, selector, this.options)
|
||||
: selector
|
||||
? getFilterFn(selector)
|
||||
: null;
|
||||
const ret = innerMatcher.call(this, filterSelector);
|
||||
// Set `matches` to `null`, so we don't waste memory.
|
||||
matches = null;
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
function _removeDuplicates(elems) {
|
||||
return Array.from(new Set(elems));
|
||||
}
|
||||
/**
|
||||
* Get the parent of each element in the current set of matched elements,
|
||||
* optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').parent().attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parent.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parent/}
|
||||
*/
|
||||
export const parent = _singleMatcher(({ parent }) => (parent && !isDocument(parent) ? parent : null), _removeDuplicates);
|
||||
/**
|
||||
* Get a set of parents filtered by `selector` of each element in the current
|
||||
* set of match elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parents().length;
|
||||
* //=> 2
|
||||
* $('.orange').parents('#fruits').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parents/}
|
||||
*/
|
||||
export const parents = _matcher((elem) => {
|
||||
const matched = [];
|
||||
while (elem.parent && !isDocument(elem.parent)) {
|
||||
matched.push(elem.parent);
|
||||
elem = elem.parent;
|
||||
}
|
||||
return matched;
|
||||
}, uniqueSort, (elems) => elems.reverse());
|
||||
/**
|
||||
* Get the ancestors of each element in the current set of matched elements, up
|
||||
* to but not including the element matched by the selector, DOM node, or cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').parentsUntil('#food').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - Optional filter for parents.
|
||||
* @returns The parents.
|
||||
* @see {@link https://api.jquery.com/parentsUntil/}
|
||||
*/
|
||||
export const parentsUntil = _matchUntil(({ parent }) => (parent && !isDocument(parent) ? parent : null), uniqueSort, (elems) => elems.reverse());
|
||||
/**
|
||||
* For each element in the set, get the first element that matches the selector
|
||||
* by testing the element itself and traversing up through its ancestors in the DOM tree.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').closest();
|
||||
* //=> []
|
||||
*
|
||||
* $('.orange').closest('.apple');
|
||||
* // => []
|
||||
*
|
||||
* $('.orange').closest('li');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
*
|
||||
* $('.orange').closest('#fruits');
|
||||
* //=> [<ul id="fruits"> ... </ul>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the element to find.
|
||||
* @returns The closest nodes.
|
||||
* @see {@link https://api.jquery.com/closest/}
|
||||
*/
|
||||
export function closest(selector) {
|
||||
var _a;
|
||||
const set = [];
|
||||
if (!selector) {
|
||||
return this._make(set);
|
||||
}
|
||||
const selectOpts = {
|
||||
xmlMode: this.options.xmlMode,
|
||||
root: (_a = this._root) === null || _a === void 0 ? void 0 : _a[0],
|
||||
};
|
||||
const selectFn = typeof selector === 'string'
|
||||
? (elem) => select.is(elem, selector, selectOpts)
|
||||
: getFilterFn(selector);
|
||||
domEach(this, (elem) => {
|
||||
while (elem && isTag(elem)) {
|
||||
if (selectFn(elem, 0)) {
|
||||
// Do not add duplicate elements to the set
|
||||
if (!set.includes(elem)) {
|
||||
set.push(elem);
|
||||
}
|
||||
break;
|
||||
}
|
||||
elem = elem.parent;
|
||||
}
|
||||
});
|
||||
return this._make(set);
|
||||
}
|
||||
/**
|
||||
* Gets the next sibling of the first selected element, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').next().hasClass('orange');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for sibling.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/next/}
|
||||
*/
|
||||
export const next = _singleMatcher((elem) => nextElementSibling(elem));
|
||||
/**
|
||||
* Gets all the following siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="pear">Pear</li>]
|
||||
* $('.apple').nextAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextAll/}
|
||||
*/
|
||||
export const nextAll = _matcher((elem) => {
|
||||
const matched = [];
|
||||
while (elem.next) {
|
||||
elem = elem.next;
|
||||
if (isTag(elem))
|
||||
matched.push(elem);
|
||||
}
|
||||
return matched;
|
||||
}, _removeDuplicates);
|
||||
/**
|
||||
* Gets all the following siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').nextUntil('.pear');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The next nodes.
|
||||
* @see {@link https://api.jquery.com/nextUntil/}
|
||||
*/
|
||||
export const nextUntil = _matchUntil((el) => nextElementSibling(el), _removeDuplicates);
|
||||
/**
|
||||
* Gets the previous sibling of the first selected element optionally filtered
|
||||
* by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.orange').prev().hasClass('apple');
|
||||
* //=> true
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prev/}
|
||||
*/
|
||||
export const prev = _singleMatcher((elem) => prevElementSibling(elem));
|
||||
/**
|
||||
* Gets all the preceding siblings of the first selected element, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevAll();
|
||||
* //=> [<li class="orange">Orange</li>, <li class="apple">Apple</li>]
|
||||
*
|
||||
* $('.pear').prevAll('.orange');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevAll/}
|
||||
*/
|
||||
export const prevAll = _matcher((elem) => {
|
||||
const matched = [];
|
||||
while (elem.prev) {
|
||||
elem = elem.prev;
|
||||
if (isTag(elem))
|
||||
matched.push(elem);
|
||||
}
|
||||
return matched;
|
||||
}, _removeDuplicates);
|
||||
/**
|
||||
* Gets all the preceding siblings up to but not including the element matched
|
||||
* by the selector, optionally filtered by another selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').prevUntil('.apple');
|
||||
* //=> [<li class="orange">Orange</li>]
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for element to stop at.
|
||||
* @param filterSelector - If specified filter for siblings.
|
||||
* @returns The previous nodes.
|
||||
* @see {@link https://api.jquery.com/prevUntil/}
|
||||
*/
|
||||
export const prevUntil = _matchUntil((el) => prevElementSibling(el), _removeDuplicates);
|
||||
/**
|
||||
* Get the siblings of each element (excluding the element) in the set of
|
||||
* matched elements, optionally filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').siblings().length;
|
||||
* //=> 2
|
||||
*
|
||||
* $('.pear').siblings('.orange').length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for siblings.
|
||||
* @returns The siblings.
|
||||
* @see {@link https://api.jquery.com/siblings/}
|
||||
*/
|
||||
export const siblings = _matcher((elem) => getSiblings(elem).filter((el) => isTag(el) && el !== elem), uniqueSort);
|
||||
/**
|
||||
* Gets the element children of each element in the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().length;
|
||||
* //=> 3
|
||||
*
|
||||
* $('#fruits').children('.pear').text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param selector - If specified filter for children.
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/children/}
|
||||
*/
|
||||
export const children = _matcher((elem) => getChildren(elem).filter(isTag), _removeDuplicates);
|
||||
/**
|
||||
* Gets the children of each element in the set of matched elements, including
|
||||
* text and comment nodes.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').contents().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The children.
|
||||
* @see {@link https://api.jquery.com/contents/}
|
||||
*/
|
||||
export function contents() {
|
||||
const elems = this.toArray().reduce((newElems, elem) => hasChildren(elem) ? newElems.concat(elem.children) : newElems, []);
|
||||
return this._make(elems);
|
||||
}
|
||||
/**
|
||||
* Iterates over a cheerio object, executing a function for each matched
|
||||
* element. When the callback is fired, the function is fired in the context of
|
||||
* the DOM element, so `this` refers to the current element, which is equivalent
|
||||
* to the function parameter `element`. To break out of the `each` loop early,
|
||||
* return with `false`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const fruits = [];
|
||||
*
|
||||
* $('li').each(function (i, elem) {
|
||||
* fruits[i] = $(this).text();
|
||||
* });
|
||||
*
|
||||
* fruits.join(', ');
|
||||
* //=> Apple, Orange, Pear
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The instance itself, useful for chaining.
|
||||
* @see {@link https://api.jquery.com/each/}
|
||||
*/
|
||||
export function each(fn) {
|
||||
let i = 0;
|
||||
const len = this.length;
|
||||
while (i < len && fn.call(this[i], i, this[i]) !== false)
|
||||
++i;
|
||||
return this;
|
||||
}
|
||||
/**
|
||||
* Pass each element in the current matched set through a function, producing a
|
||||
* new Cheerio object containing the return values. The function can return an
|
||||
* individual data item or an array of data items to be inserted into the
|
||||
* resulting set. If an array is returned, the elements inside the array are
|
||||
* inserted into the set. If the function returns null or undefined, no element
|
||||
* will be inserted.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li')
|
||||
* .map(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).text();
|
||||
* })
|
||||
* .toArray()
|
||||
* .join(' ');
|
||||
* //=> "apple orange pear"
|
||||
* ```
|
||||
*
|
||||
* @param fn - Function to execute.
|
||||
* @returns The mapped elements, wrapped in a Cheerio collection.
|
||||
* @see {@link https://api.jquery.com/map/}
|
||||
*/
|
||||
export function map(fn) {
|
||||
let elems = [];
|
||||
for (let i = 0; i < this.length; i++) {
|
||||
const el = this[i];
|
||||
const val = fn.call(el, i, el);
|
||||
if (val != null) {
|
||||
elems = elems.concat(val);
|
||||
}
|
||||
}
|
||||
return this._make(elems);
|
||||
}
|
||||
/**
|
||||
* Creates a function to test if a filter is matched.
|
||||
*
|
||||
* @param match - A filter.
|
||||
* @returns A function that determines if a filter has been matched.
|
||||
*/
|
||||
function getFilterFn(match) {
|
||||
if (typeof match === 'function') {
|
||||
return (el, i) => match.call(el, i, el);
|
||||
}
|
||||
if (isCheerio(match)) {
|
||||
return (el) => Array.prototype.includes.call(match, el);
|
||||
}
|
||||
return function (el) {
|
||||
return match === el;
|
||||
};
|
||||
}
|
||||
export function filter(match) {
|
||||
var _a;
|
||||
return this._make(filterArray(this.toArray(), match, this.options.xmlMode, (_a = this._root) === null || _a === void 0 ? void 0 : _a[0]));
|
||||
}
|
||||
export function filterArray(nodes, match, xmlMode, root) {
|
||||
return typeof match === 'string'
|
||||
? select.filter(match, nodes, { xmlMode, root })
|
||||
: nodes.filter(getFilterFn(match));
|
||||
}
|
||||
/**
|
||||
* Checks the current list of elements and returns `true` if _any_ of the
|
||||
* elements match the selector. If using an element or Cheerio selection,
|
||||
* returns `true` if _any_ of the elements match. If using a predicate function,
|
||||
* the function is executed in the context of the selected element, so `this`
|
||||
* refers to the current element.
|
||||
*
|
||||
* @category Attributes
|
||||
* @param selector - Selector for the selection.
|
||||
* @returns Whether or not the selector matches an element of the instance.
|
||||
* @see {@link https://api.jquery.com/is/}
|
||||
*/
|
||||
export function is(selector) {
|
||||
const nodes = this.toArray();
|
||||
return typeof selector === 'string'
|
||||
? select.some(nodes.filter(isTag), selector, this.options)
|
||||
: selector
|
||||
? nodes.some(getFilterFn(selector))
|
||||
: false;
|
||||
}
|
||||
/**
|
||||
* Remove elements from the set of matched elements. Given a Cheerio object that
|
||||
* represents a set of DOM elements, the `.not()` method constructs a new
|
||||
* Cheerio object from a subset of the matching elements. The supplied selector
|
||||
* is tested against each element; the elements that don't match the selector
|
||||
* will be included in the result.
|
||||
*
|
||||
* The `.not()` method can take a function as its argument in the same way that
|
||||
* `.filter()` does. Elements for which the function returns `true` are excluded
|
||||
* from the filtered set; all other elements are included.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not('.apple').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Function</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('li').not(function (i, el) {
|
||||
* // this === el
|
||||
* return $(this).attr('class') === 'orange';
|
||||
* }).length; //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param match - Value to look for, following the rules above.
|
||||
* @param container - Optional node to filter instead.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/not/}
|
||||
*/
|
||||
export function not(match) {
|
||||
let nodes = this.toArray();
|
||||
if (typeof match === 'string') {
|
||||
const matches = new Set(select.filter(match, nodes, this.options));
|
||||
nodes = nodes.filter((el) => !matches.has(el));
|
||||
}
|
||||
else {
|
||||
const filterFn = getFilterFn(match);
|
||||
nodes = nodes.filter((el, i) => !filterFn(el, i));
|
||||
}
|
||||
return this._make(nodes);
|
||||
}
|
||||
/**
|
||||
* Filters the set of matched elements to only those which have the given DOM
|
||||
* element as a descendant or which have a descendant that matches the given
|
||||
* selector. Equivalent to `.filter(':has(selector)')`.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example <caption>Selector</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has('.pear').attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @example <caption>Element</caption>
|
||||
*
|
||||
* ```js
|
||||
* $('ul').has($('.pear')[0]).attr('id');
|
||||
* //=> fruits
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrHaystack - Element to look for.
|
||||
* @returns The filtered collection.
|
||||
* @see {@link https://api.jquery.com/has/}
|
||||
*/
|
||||
export function has(selectorOrHaystack) {
|
||||
return this.filter(typeof selectorOrHaystack === 'string'
|
||||
? // Using the `:has` selector here short-circuits searches.
|
||||
`:has(${selectorOrHaystack})`
|
||||
: (_, el) => this._make(el).find(selectorOrHaystack).length > 0);
|
||||
}
|
||||
/**
|
||||
* Will select the first element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().first().text();
|
||||
* //=> Apple
|
||||
* ```
|
||||
*
|
||||
* @returns The first element.
|
||||
* @see {@link https://api.jquery.com/first/}
|
||||
*/
|
||||
export function first() {
|
||||
return this.length > 1 ? this._make(this[0]) : this;
|
||||
}
|
||||
/**
|
||||
* Will select the last element of a cheerio object.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('#fruits').children().last().text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @returns The last element.
|
||||
* @see {@link https://api.jquery.com/last/}
|
||||
*/
|
||||
export function last() {
|
||||
return this.length > 0 ? this._make(this[this.length - 1]) : this;
|
||||
}
|
||||
/**
|
||||
* Reduce the set of matched elements to the one at the specified index. Use
|
||||
* `.eq(-i)` to count backwards from the last selected element.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('li').eq(-1).text();
|
||||
* //=> Pear
|
||||
* ```
|
||||
*
|
||||
* @param i - Index of the element to select.
|
||||
* @returns The element at the `i`th position.
|
||||
* @see {@link https://api.jquery.com/eq/}
|
||||
*/
|
||||
export function eq(i) {
|
||||
var _a;
|
||||
i = +i;
|
||||
// Use the first identity optimization if possible
|
||||
if (i === 0 && this.length <= 1)
|
||||
return this;
|
||||
if (i < 0)
|
||||
i = this.length + i;
|
||||
return this._make((_a = this[i]) !== null && _a !== void 0 ? _a : []);
|
||||
}
|
||||
export function get(i) {
|
||||
if (i == null) {
|
||||
return this.toArray();
|
||||
}
|
||||
return this[i < 0 ? this.length + i : i];
|
||||
}
|
||||
/**
|
||||
* Retrieve all the DOM elements contained in the jQuery set as an array.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').toArray();
|
||||
* //=> [ {...}, {...}, {...} ]
|
||||
* ```
|
||||
*
|
||||
* @returns The contained items.
|
||||
*/
|
||||
export function toArray() {
|
||||
return Array.prototype.slice.call(this);
|
||||
}
|
||||
/**
|
||||
* Search for a given element from among the matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.pear').index();
|
||||
* //=> 2 $('.orange').index('li');
|
||||
* //=> 1
|
||||
* $('.apple').index($('#fruit, li'));
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @param selectorOrNeedle - Element to look for.
|
||||
* @returns The index of the element.
|
||||
* @see {@link https://api.jquery.com/index/}
|
||||
*/
|
||||
export function index(selectorOrNeedle) {
|
||||
let $haystack;
|
||||
let needle;
|
||||
if (selectorOrNeedle == null) {
|
||||
$haystack = this.parent().children();
|
||||
needle = this[0];
|
||||
}
|
||||
else if (typeof selectorOrNeedle === 'string') {
|
||||
$haystack = this._make(selectorOrNeedle);
|
||||
needle = this[0];
|
||||
}
|
||||
else {
|
||||
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
||||
$haystack = this;
|
||||
needle = isCheerio(selectorOrNeedle)
|
||||
? selectorOrNeedle[0]
|
||||
: selectorOrNeedle;
|
||||
}
|
||||
return Array.prototype.indexOf.call($haystack, needle);
|
||||
}
|
||||
/**
|
||||
* Gets the elements matching the specified range (0-based position).
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').slice(1).eq(0).text();
|
||||
* //=> 'Orange'
|
||||
*
|
||||
* $('li').slice(1, 2).length;
|
||||
* //=> 1
|
||||
* ```
|
||||
*
|
||||
* @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 - A position at which the elements stop being selected. If
|
||||
* negative, it indicates an offset from the end of the set. If omitted, the
|
||||
* range continues until the end of the set.
|
||||
* @returns The elements matching the specified range.
|
||||
* @see {@link https://api.jquery.com/slice/}
|
||||
*/
|
||||
export function slice(start, end) {
|
||||
return this._make(Array.prototype.slice.call(this, start, end));
|
||||
}
|
||||
/**
|
||||
* End the most recent filtering operation in the current chain and return the
|
||||
* set of matched elements to its previous state.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).end().length;
|
||||
* //=> 3
|
||||
* ```
|
||||
*
|
||||
* @returns The previous state of the set of matched elements.
|
||||
* @see {@link https://api.jquery.com/end/}
|
||||
*/
|
||||
export function end() {
|
||||
var _a;
|
||||
return (_a = this.prevObject) !== null && _a !== void 0 ? _a : this._make([]);
|
||||
}
|
||||
/**
|
||||
* Add elements to the set of matched elements.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple').add('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param other - Elements to add.
|
||||
* @param context - Optionally the context of the new selection.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/add/}
|
||||
*/
|
||||
export function add(other, context) {
|
||||
const selection = this._make(other, context);
|
||||
const contents = uniqueSort([...this.get(), ...selection.get()]);
|
||||
return this._make(contents);
|
||||
}
|
||||
/**
|
||||
* Add the previous set of elements on the stack to the current set, optionally
|
||||
* filtered by a selector.
|
||||
*
|
||||
* @category Traversing
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('li').eq(0).addBack('.orange').length;
|
||||
* //=> 2
|
||||
* ```
|
||||
*
|
||||
* @param selector - Selector for the elements to add.
|
||||
* @returns The combined set.
|
||||
* @see {@link https://api.jquery.com/addBack/}
|
||||
*/
|
||||
export function addBack(selector) {
|
||||
return this.prevObject
|
||||
? this.add(selector ? this.prevObject.filter(selector) : this.prevObject)
|
||||
: this;
|
||||
}
|
||||
//# sourceMappingURL=traversing.js.map
|
||||
1
node_modules/cheerio/lib/esm/api/traversing.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/api/traversing.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
69
node_modules/cheerio/lib/esm/cheerio.d.ts
generated
vendored
Normal file
69
node_modules/cheerio/lib/esm/cheerio.d.ts
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
/// <reference types="node" />
|
||||
import type { InternalOptions } from './options.js';
|
||||
import type { AnyNode, Document, ParentNode } from 'domhandler';
|
||||
import type { BasicAcceptedElems } from './types.js';
|
||||
import * as Attributes from './api/attributes.js';
|
||||
import * as Traversing from './api/traversing.js';
|
||||
import * as Manipulation from './api/manipulation.js';
|
||||
import * as Css from './api/css.js';
|
||||
import * as Forms from './api/forms.js';
|
||||
declare type AttributesType = typeof Attributes;
|
||||
declare type TraversingType = typeof Traversing;
|
||||
declare type ManipulationType = typeof Manipulation;
|
||||
declare type CssType = typeof Css;
|
||||
declare type FormsType = typeof Forms;
|
||||
export declare abstract class Cheerio<T> implements ArrayLike<T> {
|
||||
length: number;
|
||||
[index: number]: T;
|
||||
options: InternalOptions;
|
||||
/**
|
||||
* The root of the document. Can be set by using the `root` argument of the constructor.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_root: Cheerio<Document> | null;
|
||||
/**
|
||||
* Instance of cheerio. Methods are specified in the modules. Usage of this
|
||||
* constructor is not recommended. Please use `$.load` instead.
|
||||
*
|
||||
* @private
|
||||
* @param elements - The new selection.
|
||||
* @param root - Sets the root node.
|
||||
* @param options - Options for the instance.
|
||||
*/
|
||||
constructor(elements: ArrayLike<T> | undefined, root: Cheerio<Document> | null, options: InternalOptions);
|
||||
prevObject: Cheerio<any> | undefined;
|
||||
/**
|
||||
* Make a cheerio object.
|
||||
*
|
||||
* @private
|
||||
* @param dom - The contents of the new object.
|
||||
* @param context - The context of the new object.
|
||||
* @returns The new cheerio object.
|
||||
*/
|
||||
abstract _make<T>(dom: ArrayLike<T> | T | string, context?: BasicAcceptedElems<AnyNode>): Cheerio<T>;
|
||||
/**
|
||||
* Parses some content.
|
||||
*
|
||||
* @private
|
||||
* @param content - Content to parse.
|
||||
* @param options - Options for parsing.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns A document containing the `content`.
|
||||
*/
|
||||
abstract _parse(content: string | Document | AnyNode | AnyNode[] | Buffer, options: InternalOptions, isDocument: boolean, context: ParentNode | null): Document;
|
||||
/**
|
||||
* Render an element or a set of elements.
|
||||
*
|
||||
* @private
|
||||
* @param dom - DOM to render.
|
||||
* @returns The rendered DOM.
|
||||
*/
|
||||
abstract _render(dom: AnyNode | ArrayLike<AnyNode>): string;
|
||||
}
|
||||
export interface Cheerio<T> extends AttributesType, TraversingType, ManipulationType, CssType, FormsType, Iterable<T> {
|
||||
cheerio: '[cheerio object]';
|
||||
splice: typeof Array.prototype.slice;
|
||||
}
|
||||
export {};
|
||||
//# sourceMappingURL=cheerio.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/cheerio.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/cheerio.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cheerio.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["cheerio.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAExC,aAAK,cAAc,GAAG,OAAO,UAAU,CAAC;AACxC,aAAK,cAAc,GAAG,OAAO,UAAU,CAAC;AACxC,aAAK,gBAAgB,GAAG,OAAO,YAAY,CAAC;AAC5C,aAAK,OAAO,GAAG,OAAO,GAAG,CAAC;AAC1B,aAAK,SAAS,GAAG,OAAO,KAAK,CAAC;AAE9B,8BAAsB,OAAO,CAAC,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACtD,MAAM,SAAK;IACX,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;IAEnB,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAEhC;;;;;;;;OAQG;gBAED,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,EAClC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,EAC9B,OAAO,EAAE,eAAe;IAa1B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,CAAC,EACd,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,EAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GACpC,OAAO,CAAC,CAAC,CAAC;IAEb;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CACb,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,EACzD,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,QAAQ;IAEX;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM;CAC5D;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,CACxB,SAAQ,cAAc,EACpB,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,QAAQ,CAAC,CAAC,CAAC;IACb,OAAO,EAAE,kBAAkB,CAAC;IAE5B,MAAM,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;CACtC"}
|
||||
38
node_modules/cheerio/lib/esm/cheerio.js
generated
vendored
Normal file
38
node_modules/cheerio/lib/esm/cheerio.js
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import * as Attributes from './api/attributes.js';
|
||||
import * as Traversing from './api/traversing.js';
|
||||
import * as Manipulation from './api/manipulation.js';
|
||||
import * as Css from './api/css.js';
|
||||
import * as Forms from './api/forms.js';
|
||||
export class Cheerio {
|
||||
/**
|
||||
* Instance of cheerio. Methods are specified in the modules. Usage of this
|
||||
* constructor is not recommended. Please use `$.load` instead.
|
||||
*
|
||||
* @private
|
||||
* @param elements - The new selection.
|
||||
* @param root - Sets the root node.
|
||||
* @param options - Options for the instance.
|
||||
*/
|
||||
constructor(elements, root, options) {
|
||||
this.length = 0;
|
||||
this.options = options;
|
||||
this._root = root;
|
||||
if (elements) {
|
||||
for (let idx = 0; idx < elements.length; idx++) {
|
||||
this[idx] = elements[idx];
|
||||
}
|
||||
this.length = elements.length;
|
||||
}
|
||||
}
|
||||
}
|
||||
/** Set a signature of the object. */
|
||||
Cheerio.prototype.cheerio = '[cheerio object]';
|
||||
/*
|
||||
* Make cheerio an array-like object
|
||||
*/
|
||||
Cheerio.prototype.splice = Array.prototype.splice;
|
||||
// Support for (const element of $(...)) iteration:
|
||||
Cheerio.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator];
|
||||
// Plug in the API
|
||||
Object.assign(Cheerio.prototype, Attributes, Traversing, Manipulation, Css, Forms);
|
||||
//# sourceMappingURL=cheerio.js.map
|
||||
1
node_modules/cheerio/lib/esm/cheerio.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/cheerio.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cheerio.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["cheerio.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,YAAY,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAC;AAQxC,MAAM,OAAgB,OAAO;IAY3B;;;;;;;;OAQG;IACH,YACE,QAAkC,EAClC,IAA8B,EAC9B,OAAwB;QAvB1B,WAAM,GAAG,CAAC,CAAC;QAyBT,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,QAAQ,EAAE;YACZ,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aAC3B;YACD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;SAC/B;IACH,CAAC;CAwCF;AAcD,qCAAqC;AACrC,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,kBAAkB,CAAC;AAE/C;;GAEG;AACH,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;AAElD,mDAAmD;AACnD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEtE,kBAAkB;AAClB,MAAM,CAAC,MAAM,CACX,OAAO,CAAC,SAAS,EACjB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,GAAG,EACH,KAAK,CACN,CAAC"}
|
||||
107
node_modules/cheerio/lib/esm/index.d.ts
generated
vendored
Normal file
107
node_modules/cheerio/lib/esm/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
/// <reference types="node" />
|
||||
/**
|
||||
* The main types of Cheerio objects.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export type { Cheerio } from './cheerio.js';
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export * from './types.js';
|
||||
export type { CheerioOptions, HTMLParser2Options, Parse5Options, } from './options.js';
|
||||
/**
|
||||
* Re-exporting all of the node types.
|
||||
*
|
||||
* @category DOM Node
|
||||
*/
|
||||
export type { Node, AnyNode, ParentNode, Element, Document } from 'domhandler';
|
||||
export type { CheerioAPI } from './load.js';
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
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;
|
||||
/**
|
||||
* The default cheerio instance.
|
||||
*
|
||||
* @deprecated Use the function returned by `load` instead.
|
||||
*/
|
||||
declare const _default: import("./load.js").CheerioAPI;
|
||||
export default _default;
|
||||
export { html, xml, text } from './static.js';
|
||||
import * as staticMethods from './static.js';
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('<div><p></p></div>');
|
||||
*
|
||||
* $.contains($('div').get(0), $('p').get(0));
|
||||
* //=> true
|
||||
*
|
||||
* $.contains($('p').get(0), $('div').get(0));
|
||||
* //=> false
|
||||
* ```
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export declare const contains: typeof staticMethods.contains;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
*
|
||||
* $.merge([1, 2], [3, 4]);
|
||||
* //=> [1, 2, 3, 4]
|
||||
* ```
|
||||
*/
|
||||
export declare const merge: typeof staticMethods.merge;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name as it is defined on the
|
||||
* "loaded" Cheerio factory function.
|
||||
*
|
||||
* @deprecated See {@link static/parseHTML}.
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.parseHTML('<b>markup</b>');
|
||||
* ```
|
||||
*/
|
||||
export declare const parseHTML: typeof staticMethods.parseHTML;
|
||||
/**
|
||||
* Users seeking to access the top-level element of a parsed document should
|
||||
* instead use the `root` static method of a "loaded" Cheerio function.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.root();
|
||||
* ```
|
||||
*/
|
||||
export declare const root: typeof staticMethods.root;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/index.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/index.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB;;;;GAIG;AACH,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/E,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAc5C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,wNAIhB,CAAC;AAEF;;;;GAIG;;AACH,wBAAwB;AAExB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAQ,QAAQ,+BAAkB,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAQ,KAAK,4BAAkB,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAQ,SAAS,gCAAkB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAQ,IAAI,2BAAkB,CAAC"}
|
||||
102
node_modules/cheerio/lib/esm/index.js
generated
vendored
Normal file
102
node_modules/cheerio/lib/esm/index.js
generated
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export * from './types.js';
|
||||
import { getLoad } from './load.js';
|
||||
import { getParse } from './parse.js';
|
||||
import { renderWithParse5, parseWithParse5 } from './parsers/parse5-adapter.js';
|
||||
import renderWithHtmlparser2 from 'dom-serializer';
|
||||
import { parseDocument as parseWithHtmlparser2 } from 'htmlparser2';
|
||||
const parse = getParse((content, options, isDocument, context) => options.xmlMode || options._useHtmlParser2
|
||||
? parseWithHtmlparser2(content, options)
|
||||
: parseWithParse5(content, options, isDocument, context));
|
||||
// Duplicate docs due to https://github.com/TypeStrong/typedoc/issues/1616
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
export const load = getLoad(parse, (dom, options) => options.xmlMode || options._useHtmlParser2
|
||||
? renderWithHtmlparser2(dom, options)
|
||||
: renderWithParse5(dom));
|
||||
/**
|
||||
* The default cheerio instance.
|
||||
*
|
||||
* @deprecated Use the function returned by `load` instead.
|
||||
*/
|
||||
export default load([]);
|
||||
export { html, xml, text } from './static.js';
|
||||
import * as staticMethods from './static.js';
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('<div><p></p></div>');
|
||||
*
|
||||
* $.contains($('div').get(0), $('p').get(0));
|
||||
* //=> true
|
||||
*
|
||||
* $.contains($('p').get(0), $('div').get(0));
|
||||
* //=> false
|
||||
* ```
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export const { contains } = staticMethods;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
*
|
||||
* $.merge([1, 2], [3, 4]);
|
||||
* //=> [1, 2, 3, 4]
|
||||
* ```
|
||||
*/
|
||||
export const { merge } = staticMethods;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name as it is defined on the
|
||||
* "loaded" Cheerio factory function.
|
||||
*
|
||||
* @deprecated See {@link static/parseHTML}.
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.parseHTML('<b>markup</b>');
|
||||
* ```
|
||||
*/
|
||||
export const { parseHTML } = staticMethods;
|
||||
/**
|
||||
* Users seeking to access the top-level element of a parsed document should
|
||||
* instead use the `root` static method of a "loaded" Cheerio function.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.root();
|
||||
* ```
|
||||
*/
|
||||
export const { root } = staticMethods;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/cheerio/lib/esm/index.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["index.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,cAAc,YAAY,CAAC;AAc3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,qBAAqB,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEpE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAC/D,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe;IACxC,CAAC,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC;IACxC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAC3D,CAAC;AAEF,0EAA0E;AAC1E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAClD,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe;IACxC,CAAC,CAAC,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC;IACrC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAC1B,CAAC;AAEF;;;;GAIG;AACH,eAAe,IAAI,CAAC,EAAE,CAAC,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC"}
|
||||
60
node_modules/cheerio/lib/esm/load.d.ts
generated
vendored
Normal file
60
node_modules/cheerio/lib/esm/load.d.ts
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
/// <reference types="node" />
|
||||
import { CheerioOptions, InternalOptions } from './options.js';
|
||||
import * as staticMethods from './static.js';
|
||||
import { Cheerio } from './cheerio.js';
|
||||
import type { AnyNode, Document, Element } from 'domhandler';
|
||||
import type { SelectorType, BasicAcceptedElems } from './types.js';
|
||||
declare type StaticType = typeof staticMethods;
|
||||
/**
|
||||
* A querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Also provides several helper methods for dealing with the document as a whole.
|
||||
*/
|
||||
export interface CheerioAPI extends StaticType {
|
||||
/**
|
||||
* This selector method is the starting point for traversing and manipulating
|
||||
* the document. Like jQuery, it's the primary method for selecting elements
|
||||
* in the document.
|
||||
*
|
||||
* `selector` searches within the `context` scope which searches within the
|
||||
* `root` scope.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple', '#fruits').text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('ul .pear').attr('class');
|
||||
* //=> pear
|
||||
*
|
||||
* $('li[class=orange]').html();
|
||||
* //=> Orange
|
||||
* ```
|
||||
*
|
||||
* @param selector - Either a selector to look for within the document, or the
|
||||
* contents of a new Cheerio instance.
|
||||
* @param context - Either a selector to look for within the root, or the
|
||||
* contents of the document to query.
|
||||
* @param root - Optional HTML document string.
|
||||
*/
|
||||
<T extends AnyNode, S extends string>(selector?: S | BasicAcceptedElems<T>, context?: BasicAcceptedElems<AnyNode> | null, root?: BasicAcceptedElems<Document>, options?: CheerioOptions): Cheerio<S extends SelectorType ? Element : T>;
|
||||
/**
|
||||
* The root the document was originally loaded with.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_root: Document;
|
||||
/**
|
||||
* The options the document was originally loaded with.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_options: InternalOptions;
|
||||
/** Mimic jQuery's prototype alias for plugin authors. */
|
||||
fn: typeof Cheerio.prototype;
|
||||
load: ReturnType<typeof getLoad>;
|
||||
}
|
||||
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
|
||||
1
node_modules/cheerio/lib/esm/load.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/load.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"load.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["load.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,eAAe,EAGhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEnE,aAAK,UAAU,GAAG,OAAO,aAAa,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,EAClC,QAAQ,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EAC5C,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IAEjD;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B,yDAAyD;IACzD,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAE7B,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,EACtC,MAAM,EAAE,CACN,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EACjC,OAAO,EAAE,eAAe,KACrB,MAAM,aAgBA,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,YACpC,cAAc,GAAG,IAAI,2BAE9B,UAAU,CAyId"}
|
||||
122
node_modules/cheerio/lib/esm/load.js
generated
vendored
Normal file
122
node_modules/cheerio/lib/esm/load.js
generated
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
import { default as defaultOptions, flatten as flattenOptions, } from './options.js';
|
||||
import * as staticMethods from './static.js';
|
||||
import { Cheerio } from './cheerio.js';
|
||||
import { isHtml, isCheerio } from './utils.js';
|
||||
export function getLoad(parse, render) {
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
return function load(content, options, isDocument = true) {
|
||||
if (content == null) {
|
||||
throw new Error('cheerio.load() expects a string');
|
||||
}
|
||||
const internalOpts = { ...defaultOptions, ...flattenOptions(options) };
|
||||
const initialRoot = parse(content, internalOpts, isDocument, null);
|
||||
/** Create an extended class here, so that extensions only live on one instance. */
|
||||
class LoadedCheerio extends Cheerio {
|
||||
_make(selector, context) {
|
||||
const cheerio = initialize(selector, context);
|
||||
cheerio.prevObject = this;
|
||||
return cheerio;
|
||||
}
|
||||
_parse(content, options, isDocument, context) {
|
||||
return parse(content, options, isDocument, context);
|
||||
}
|
||||
_render(dom) {
|
||||
return render(dom, this.options);
|
||||
}
|
||||
}
|
||||
function initialize(selector, context, root = initialRoot, opts) {
|
||||
// $($)
|
||||
if (selector && isCheerio(selector))
|
||||
return selector;
|
||||
const options = {
|
||||
...internalOpts,
|
||||
...flattenOptions(opts),
|
||||
};
|
||||
const r = typeof root === 'string'
|
||||
? [parse(root, options, false, null)]
|
||||
: 'length' in root
|
||||
? root
|
||||
: [root];
|
||||
const rootInstance = isCheerio(r)
|
||||
? r
|
||||
: new LoadedCheerio(r, null, options);
|
||||
// Add a cyclic reference, so that calling methods on `_root` never fails.
|
||||
rootInstance._root = rootInstance;
|
||||
// $(), $(null), $(undefined), $(false)
|
||||
if (!selector) {
|
||||
return new LoadedCheerio(undefined, rootInstance, options);
|
||||
}
|
||||
const elements = typeof selector === 'string' && isHtml(selector)
|
||||
? // $(<html>)
|
||||
parse(selector, options, false, null).children
|
||||
: isNode(selector)
|
||||
? // $(dom)
|
||||
[selector]
|
||||
: Array.isArray(selector)
|
||||
? // $([dom])
|
||||
selector
|
||||
: undefined;
|
||||
const instance = new LoadedCheerio(elements, rootInstance, options);
|
||||
if (elements) {
|
||||
return instance;
|
||||
}
|
||||
if (typeof selector !== 'string') {
|
||||
throw new Error('Unexpected type of selector');
|
||||
}
|
||||
// We know that our selector is a string now.
|
||||
let search = selector;
|
||||
const searchContext = !context
|
||||
? // If we don't have a context, maybe we have a root, from loading
|
||||
rootInstance
|
||||
: typeof context === 'string'
|
||||
? isHtml(context)
|
||||
? // $('li', '<ul>...</ul>')
|
||||
new LoadedCheerio([parse(context, options, false, null)], rootInstance, options)
|
||||
: // $('li', 'ul')
|
||||
((search = `${context} ${search}`), rootInstance)
|
||||
: isCheerio(context)
|
||||
? // $('li', $)
|
||||
context
|
||||
: // $('li', node), $('li', [nodes])
|
||||
new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options);
|
||||
// If we still don't have a context, return
|
||||
if (!searchContext)
|
||||
return instance;
|
||||
/*
|
||||
* #id, .class, tag
|
||||
*/
|
||||
return searchContext.find(search);
|
||||
}
|
||||
// Add in static methods & properties
|
||||
Object.assign(initialize, staticMethods, {
|
||||
load,
|
||||
// `_root` and `_options` are used in static methods.
|
||||
_root: initialRoot,
|
||||
_options: internalOpts,
|
||||
// Add `fn` for plugins
|
||||
fn: LoadedCheerio.prototype,
|
||||
// Add the prototype here to maintain `instanceof` behavior.
|
||||
prototype: LoadedCheerio.prototype,
|
||||
});
|
||||
return initialize;
|
||||
};
|
||||
}
|
||||
function isNode(obj) {
|
||||
return (!!obj.name ||
|
||||
obj.type === 'root' ||
|
||||
obj.type === 'text' ||
|
||||
obj.type === 'comment');
|
||||
}
|
||||
//# sourceMappingURL=load.js.map
|
||||
1
node_modules/cheerio/lib/esm/load.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/load.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"load.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["load.ts"],"names":[],"mappings":"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"}
|
||||
90
node_modules/cheerio/lib/esm/options.d.ts
generated
vendored
Normal file
90
node_modules/cheerio/lib/esm/options.d.ts
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
/// <reference types="node" />
|
||||
import type { DomHandlerOptions } from 'domhandler';
|
||||
import type { ParserOptions } from 'htmlparser2';
|
||||
import type { Options as SelectOptions } from 'cheerio-select';
|
||||
/**
|
||||
* Options accepted by htmlparser2, the default parser for XML.
|
||||
*
|
||||
* @see https://github.com/fb55/htmlparser2/wiki/Parser-options
|
||||
*/
|
||||
export interface HTMLParser2Options extends DomHandlerOptions, ParserOptions {
|
||||
}
|
||||
/** Options for parse5, the default parser for HTML. */
|
||||
export interface Parse5Options {
|
||||
/** Disable scripting in parse5, so noscript tags would be parsed. */
|
||||
scriptingEnabled?: boolean;
|
||||
/** Enable location support for parse5. */
|
||||
sourceCodeLocationInfo?: boolean;
|
||||
}
|
||||
/**
|
||||
* Options accepted by Cheerio.
|
||||
*
|
||||
* Please note that parser-specific options are _only recognized_ if the
|
||||
* relevant parser is used.
|
||||
*/
|
||||
export interface CheerioOptions extends HTMLParser2Options, Parse5Options {
|
||||
/** Recommended way of configuring htmlparser2 when wanting to parse XML. */
|
||||
xml?: HTMLParser2Options | boolean;
|
||||
/** The base URI for the document. Used for the `href` and `src` props. */
|
||||
baseURI?: string | URL;
|
||||
/**
|
||||
* Is the document in quirks mode?
|
||||
*
|
||||
* This will lead to `.className` and `#id` being case-insensitive.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
quirksMode?: SelectOptions['quirksMode'];
|
||||
/**
|
||||
* Extension point for pseudo-classes.
|
||||
*
|
||||
* Maps from names to either strings of functions.
|
||||
*
|
||||
* - A string value is a selector that the element must match to be selected.
|
||||
* - A function is called with the element as its first argument, and optional
|
||||
* parameters second. If it returns true, the element is selected.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="foo"></div><div data-bar="boo"></div>',
|
||||
* {
|
||||
* pseudos: {
|
||||
* // `:foo` is an alias for `div.foo`
|
||||
* foo: 'div.foo',
|
||||
* // `:bar(val)` is equivalent to `[data-bar=val s]`
|
||||
* bar: (el, val) => el.attribs['data-bar'] === val,
|
||||
* },
|
||||
* }
|
||||
* );
|
||||
*
|
||||
* $(':foo').length; // 1
|
||||
* $('div:bar(boo)').length; // 1
|
||||
* $('div:bar(baz)').length; // 0
|
||||
* ```
|
||||
*/
|
||||
pseudos?: SelectOptions['pseudos'];
|
||||
}
|
||||
/** Internal options for Cheerio. */
|
||||
export interface InternalOptions extends Omit<CheerioOptions, 'xml'> {
|
||||
/**
|
||||
* Whether to use htmlparser2.
|
||||
*
|
||||
* This is set to true if `xml` is set to true.
|
||||
*/
|
||||
_useHtmlParser2?: boolean;
|
||||
}
|
||||
declare const defaultOpts: CheerioOptions;
|
||||
/** Cheerio default options. */
|
||||
export default defaultOpts;
|
||||
/**
|
||||
* Flatten the options for Cheerio.
|
||||
*
|
||||
* This will set `_useHtmlParser2` to true if `xml` is set to true.
|
||||
*
|
||||
* @param options - The options to flatten.
|
||||
* @returns The flattened options.
|
||||
*/
|
||||
export declare function flatten(options?: CheerioOptions | null): InternalOptions | undefined;
|
||||
//# sourceMappingURL=options.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/options.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/options.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"options.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["options.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB,EAAE,aAAa;CAAG;AAC/E,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,aAAa;IACvE,4EAA4E;IAC5E,GAAG,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAEnC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACpC;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IAClE;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,WAAW,EAAE,cAGlB,CAAC;AAEF,+BAA+B;AAC/B,eAAe,WAAW,CAAC;AAO3B;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,GAC9B,eAAe,GAAG,SAAS,CAM7B"}
|
||||
26
node_modules/cheerio/lib/esm/options.js
generated
vendored
Normal file
26
node_modules/cheerio/lib/esm/options.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
const defaultOpts = {
|
||||
xml: false,
|
||||
decodeEntities: true,
|
||||
};
|
||||
/** Cheerio default options. */
|
||||
export default defaultOpts;
|
||||
const xmlModeDefault = {
|
||||
_useHtmlParser2: true,
|
||||
xmlMode: true,
|
||||
};
|
||||
/**
|
||||
* Flatten the options for Cheerio.
|
||||
*
|
||||
* This will set `_useHtmlParser2` to true if `xml` is set to true.
|
||||
*
|
||||
* @param options - The options to flatten.
|
||||
* @returns The flattened options.
|
||||
*/
|
||||
export function flatten(options) {
|
||||
return (options === null || options === void 0 ? void 0 : options.xml)
|
||||
? typeof options.xml === 'boolean'
|
||||
? xmlModeDefault
|
||||
: { ...xmlModeDefault, ...options.xml }
|
||||
: options !== null && options !== void 0 ? options : undefined;
|
||||
}
|
||||
//# sourceMappingURL=options.js.map
|
||||
1
node_modules/cheerio/lib/esm/options.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/options.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"options.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["options.ts"],"names":[],"mappings":"AAiFA,MAAM,WAAW,GAAmB;IAClC,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,+BAA+B;AAC/B,eAAe,WAAW,CAAC;AAE3B,MAAM,cAAc,GAAoB;IACtC,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,OAA+B;IAE/B,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;QACjB,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS;YAChC,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,CAAC,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,SAAS,CAAC;AAC3B,CAAC"}
|
||||
1
node_modules/cheerio/lib/esm/package.json
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/package.json
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"type":"module"}
|
||||
19
node_modules/cheerio/lib/esm/parse.d.ts
generated
vendored
Normal file
19
node_modules/cheerio/lib/esm/parse.d.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/// <reference types="node" />
|
||||
import { AnyNode, Document, ParentNode } from 'domhandler';
|
||||
import type { InternalOptions } from './options.js';
|
||||
/**
|
||||
* Get the parse function with options.
|
||||
*
|
||||
* @param parser - The parser function.
|
||||
* @returns The parse function with options.
|
||||
*/
|
||||
export declare function getParse(parser: (content: string, options: InternalOptions, isDocument: boolean, context: ParentNode | null) => Document): (content: string | Document | AnyNode | AnyNode[] | Buffer, options: InternalOptions, isDocument: boolean, context: ParentNode | null) => Document;
|
||||
/**
|
||||
* Update the dom structure, for one changed layer.
|
||||
*
|
||||
* @param newChilds - The new children.
|
||||
* @param parent - The new parent.
|
||||
* @returns The parent node.
|
||||
*/
|
||||
export declare function update(newChilds: AnyNode[] | AnyNode, parent: ParentNode | null): ParentNode | null;
|
||||
//# sourceMappingURL=parse.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/parse.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/parse.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parse.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["parse.ts"],"names":[],"mappings":";AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EAEX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,CACN,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,UAAU,GAAG,IAAI,KACvB,QAAQ,aAYF,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,WAChD,eAAe,cACZ,OAAO,WACV,UAAU,GAAG,IAAI,KACzB,QAAQ,CAwBZ;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,EAC9B,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,UAAU,GAAG,IAAI,CA+BnB"}
|
||||
73
node_modules/cheerio/lib/esm/parse.js
generated
vendored
Normal file
73
node_modules/cheerio/lib/esm/parse.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
import { removeElement } from 'domutils';
|
||||
import { Document, isDocument as checkIsDocument, } from 'domhandler';
|
||||
/**
|
||||
* Get the parse function with options.
|
||||
*
|
||||
* @param parser - The parser function.
|
||||
* @returns The parse function with options.
|
||||
*/
|
||||
export function getParse(parser) {
|
||||
/**
|
||||
* Parse a HTML string or a node.
|
||||
*
|
||||
* @param content - The HTML string or node.
|
||||
* @param options - The parser options.
|
||||
* @param isDocument - If `content` is a document.
|
||||
* @param context - The context node in the DOM tree.
|
||||
* @returns The parsed document node.
|
||||
*/
|
||||
return function parse(content, options, isDocument, context) {
|
||||
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(content)) {
|
||||
content = content.toString();
|
||||
}
|
||||
if (typeof content === 'string') {
|
||||
return parser(content, options, isDocument, context);
|
||||
}
|
||||
const doc = content;
|
||||
if (!Array.isArray(doc) && checkIsDocument(doc)) {
|
||||
// If `doc` is already a root, just return it
|
||||
return doc;
|
||||
}
|
||||
// Add conent to new root element
|
||||
const root = new Document([]);
|
||||
// Update the DOM using the root
|
||||
update(doc, root);
|
||||
return root;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Update the dom structure, for one changed layer.
|
||||
*
|
||||
* @param newChilds - The new children.
|
||||
* @param parent - The new parent.
|
||||
* @returns The parent node.
|
||||
*/
|
||||
export function update(newChilds, parent) {
|
||||
// Normalize
|
||||
const arr = Array.isArray(newChilds) ? newChilds : [newChilds];
|
||||
// Update parent
|
||||
if (parent) {
|
||||
parent.children = arr;
|
||||
}
|
||||
else {
|
||||
parent = null;
|
||||
}
|
||||
// Update neighbors
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
const node = arr[i];
|
||||
// Cleanly remove existing nodes from their previous structures.
|
||||
if (node.parent && node.parent.children !== arr) {
|
||||
removeElement(node);
|
||||
}
|
||||
if (parent) {
|
||||
node.prev = arr[i - 1] || null;
|
||||
node.next = arr[i + 1] || null;
|
||||
}
|
||||
else {
|
||||
node.prev = node.next = null;
|
||||
}
|
||||
node.parent = parent;
|
||||
}
|
||||
return parent;
|
||||
}
|
||||
//# sourceMappingURL=parse.js.map
|
||||
1
node_modules/cheerio/lib/esm/parse.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/parse.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parse.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAEL,QAAQ,EAER,UAAU,IAAI,eAAe,GAC9B,MAAM,YAAY,CAAC;AAGpB;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CACtB,MAKa;IAEb;;;;;;;;OAQG;IACH,OAAO,SAAS,KAAK,CACnB,OAAyD,EACzD,OAAwB,EACxB,UAAmB,EACnB,OAA0B;QAE1B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC7D,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC9B;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;SACtD;QAED,MAAM,GAAG,GAAG,OAAyC,CAAC;QAEtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;YAC/C,6CAA6C;YAC7C,OAAO,GAAG,CAAC;SACZ;QAED,iCAAiC;QACjC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;QAE9B,gCAAgC;QAChC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAElB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CACpB,SAA8B,EAC9B,MAAyB;IAEzB,YAAY;IACZ,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/D,gBAAgB;IAChB,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;KACvB;SAAM;QACL,MAAM,GAAG,IAAI,CAAC;KACf;IAED,mBAAmB;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAEpB,gEAAgE;QAChE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE;YAC/C,aAAa,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;SAChC;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KACtB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
||||
20
node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts
generated
vendored
Normal file
20
node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
import { AnyNode, Document, ParentNode } from 'domhandler';
|
||||
import type { InternalOptions } from '../options.js';
|
||||
/**
|
||||
* Parse the content with `parse5` in the context of the given `ParentNode`.
|
||||
*
|
||||
* @param content - The content to parse.
|
||||
* @param options - A set of options to use to parse.
|
||||
* @param isDocument - Whether to parse the content as a full HTML document.
|
||||
* @param context - The context in which to parse the content.
|
||||
* @returns The parsed content.
|
||||
*/
|
||||
export declare function parseWithParse5(content: string, options: InternalOptions, isDocument: boolean, context: ParentNode | null): Document;
|
||||
/**
|
||||
* Renders the given DOM tree with `parse5` and returns the result as a string.
|
||||
*
|
||||
* @param dom - The DOM tree to render.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function renderWithParse5(dom: AnyNode | ArrayLike<AnyNode>): string;
|
||||
//# sourceMappingURL=parse5-adapter.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/parsers/parse5-adapter.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parse5-adapter.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["parsers/parse5-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAc,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,UAAU,GAAG,IAAI,GACzB,QAAQ,CAaV;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAqB1E"}
|
||||
52
node_modules/cheerio/lib/esm/parsers/parse5-adapter.js
generated
vendored
Normal file
52
node_modules/cheerio/lib/esm/parsers/parse5-adapter.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
import { isDocument } from 'domhandler';
|
||||
import { parse as parseDocument, parseFragment, serializeOuter } from 'parse5';
|
||||
import { adapter as htmlparser2Adapter } from 'parse5-htmlparser2-tree-adapter';
|
||||
/**
|
||||
* Parse the content with `parse5` in the context of the given `ParentNode`.
|
||||
*
|
||||
* @param content - The content to parse.
|
||||
* @param options - A set of options to use to parse.
|
||||
* @param isDocument - Whether to parse the content as a full HTML document.
|
||||
* @param context - The context in which to parse the content.
|
||||
* @returns The parsed content.
|
||||
*/
|
||||
export function parseWithParse5(content, options, isDocument, context) {
|
||||
const opts = {
|
||||
scriptingEnabled: typeof options.scriptingEnabled === 'boolean'
|
||||
? options.scriptingEnabled
|
||||
: true,
|
||||
treeAdapter: htmlparser2Adapter,
|
||||
sourceCodeLocationInfo: options.sourceCodeLocationInfo,
|
||||
};
|
||||
return isDocument
|
||||
? parseDocument(content, opts)
|
||||
: parseFragment(context, content, opts);
|
||||
}
|
||||
const renderOpts = { treeAdapter: htmlparser2Adapter };
|
||||
/**
|
||||
* Renders the given DOM tree with `parse5` and returns the result as a string.
|
||||
*
|
||||
* @param dom - The DOM tree to render.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export function renderWithParse5(dom) {
|
||||
/*
|
||||
* `dom-serializer` passes over the special "root" node and renders the
|
||||
* node's children in its place. To mimic this behavior with `parse5`, an
|
||||
* equivalent operation must be applied to the input array.
|
||||
*/
|
||||
const nodes = 'length' in dom ? dom : [dom];
|
||||
for (let index = 0; index < nodes.length; index += 1) {
|
||||
const node = nodes[index];
|
||||
if (isDocument(node)) {
|
||||
Array.prototype.splice.call(nodes, index, 1, ...node.children);
|
||||
}
|
||||
}
|
||||
let result = '';
|
||||
for (let index = 0; index < nodes.length; index += 1) {
|
||||
const node = nodes[index];
|
||||
result += serializeOuter(node, renderOpts);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
//# sourceMappingURL=parse5-adapter.js.map
|
||||
1
node_modules/cheerio/lib/esm/parsers/parse5-adapter.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/parsers/parse5-adapter.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parse5-adapter.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["parsers/parse5-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAc,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,KAAK,IAAI,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGhF;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,OAAwB,EACxB,UAAmB,EACnB,OAA0B;IAE1B,MAAM,IAAI,GAAG;QACX,gBAAgB,EACd,OAAO,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAC3C,CAAC,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,IAAI;QACV,WAAW,EAAE,kBAAkB;QAC/B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;KACvD,CAAC;IAEF,OAAO,UAAU;QACf,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;QAC9B,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAiC;IAChE;;;;OAIG;IACH,MAAM,KAAK,GAAG,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;YACpB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChE;KACF;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;KAC5C;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
||||
20
node_modules/cheerio/lib/esm/slim.d.ts
generated
vendored
Normal file
20
node_modules/cheerio/lib/esm/slim.d.ts
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
/** @file Alternative Entry point for Cheerio, excluding parse5. */
|
||||
/// <reference types="node" />
|
||||
export type { Cheerio, CheerioAPI, CheerioOptions, HTMLParser2Options, Node, AnyNode, ParentNode, Element, Document, } from '.';
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export * from './types.js';
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Always `false` here, as we are always using `htmlparser2`.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
export declare const load: (content: string | import("domhandler/lib/node").AnyNode | import("domhandler/lib/node").AnyNode[] | Buffer, options?: import("./options").CheerioOptions | null | undefined, isDocument?: boolean) => import("./load.js").CheerioAPI;
|
||||
//# sourceMappingURL=slim.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/slim.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/slim.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"slim.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["slim.ts"],"names":[],"mappings":"AAAA,mEAAmE;;AAEnE,YAAY,EACV,OAAO,EACP,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,OAAO,EACP,UAAU,EACV,OAAO,EACP,QAAQ,GACT,MAAM,GAAG,CAAC;AAEX;;;;GAIG;AACH,cAAc,YAAY,CAAC;AAO3B;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,uOAA2C,CAAC"}
|
||||
22
node_modules/cheerio/lib/esm/slim.js
generated
vendored
Normal file
22
node_modules/cheerio/lib/esm/slim.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
/** @file Alternative Entry point for Cheerio, excluding parse5. */
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export * from './types.js';
|
||||
import { getLoad } from './load.js';
|
||||
import { getParse } from './parse.js';
|
||||
import render from 'dom-serializer';
|
||||
import { parseDocument } from 'htmlparser2';
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Always `false` here, as we are always using `htmlparser2`.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
export const load = getLoad(getParse(parseDocument), render);
|
||||
//# sourceMappingURL=slim.js.map
|
||||
1
node_modules/cheerio/lib/esm/slim.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/slim.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"slim.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["slim.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAcnE;;;;GAIG;AACH,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,MAAM,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC"}
|
||||
93
node_modules/cheerio/lib/esm/static.d.ts
generated
vendored
Normal file
93
node_modules/cheerio/lib/esm/static.d.ts
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
import type { BasicAcceptedElems } from './types.js';
|
||||
import type { CheerioAPI, Cheerio } from '.';
|
||||
import type { AnyNode, Document } from 'domhandler';
|
||||
import { CheerioOptions } from './options.js';
|
||||
/**
|
||||
* Renders the document.
|
||||
*
|
||||
* @param options - Options for the renderer.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function html(this: CheerioAPI, options?: CheerioOptions): string;
|
||||
/**
|
||||
* Renders the document.
|
||||
*
|
||||
* @param dom - Element to render.
|
||||
* @param options - Options for the renderer.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function html(this: CheerioAPI, dom?: BasicAcceptedElems<AnyNode>, options?: CheerioOptions): string;
|
||||
/**
|
||||
* Render the document as XML.
|
||||
*
|
||||
* @param dom - Element to render.
|
||||
* @returns THe rendered document.
|
||||
*/
|
||||
export declare function xml(this: CheerioAPI, dom?: BasicAcceptedElems<AnyNode>): string;
|
||||
/**
|
||||
* Render the document as text.
|
||||
*
|
||||
* This returns the `textContent` of the passed elements. The result will
|
||||
* include the contents of `script` and `stype` elements. To avoid this, use
|
||||
* `.prop('innerText')` instead.
|
||||
*
|
||||
* @param elements - Elements to render.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export declare function text(this: CheerioAPI | void, elements?: ArrayLike<AnyNode>): string;
|
||||
/**
|
||||
* Parses a string into an array of DOM nodes. The `context` argument has no
|
||||
* meaning for Cheerio, but it is maintained for API compatibility with jQuery.
|
||||
*
|
||||
* @param data - Markup that will be parsed.
|
||||
* @param context - Will be ignored. If it is a boolean it will be used as the
|
||||
* value of `keepScripts`.
|
||||
* @param keepScripts - If false all scripts will be removed.
|
||||
* @returns The parsed DOM.
|
||||
* @alias Cheerio.parseHTML
|
||||
* @see {@link https://api.jquery.com/jQuery.parseHTML/}
|
||||
*/
|
||||
export declare function parseHTML(this: CheerioAPI, data: string, context?: unknown | boolean, keepScripts?: boolean): AnyNode[];
|
||||
export declare function parseHTML(this: CheerioAPI, data?: '' | null): null;
|
||||
/**
|
||||
* Sometimes you need to work with the top-level root element. To query it, you
|
||||
* can use `$.root()`.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $.root().append('<ul id="vegetables"></ul>').html();
|
||||
* //=> <ul id="fruits">...</ul><ul id="vegetables"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns Cheerio instance wrapping the root node.
|
||||
* @alias Cheerio.root
|
||||
*/
|
||||
export declare function root(this: CheerioAPI): Cheerio<Document>;
|
||||
/**
|
||||
* Checks to see if the `contained` DOM element is a descendant of the
|
||||
* `container` DOM element.
|
||||
*
|
||||
* @param container - Potential parent node.
|
||||
* @param contained - Potential child node.
|
||||
* @returns Indicates if the nodes contain one another.
|
||||
* @alias Cheerio.contains
|
||||
* @see {@link https://api.jquery.com/jQuery.contains/}
|
||||
*/
|
||||
export declare function contains(container: AnyNode, contained: AnyNode): boolean;
|
||||
interface WritableArrayLike<T> extends ArrayLike<T> {
|
||||
length: number;
|
||||
[n: number]: T;
|
||||
}
|
||||
/**
|
||||
* $.merge().
|
||||
*
|
||||
* @param arr1 - First array.
|
||||
* @param arr2 - Second array.
|
||||
* @returns `arr1`, with elements of `arr2` inserted.
|
||||
* @alias Cheerio.merge
|
||||
* @see {@link https://api.jquery.com/jQuery.merge/}
|
||||
*/
|
||||
export declare function merge<T>(arr1: WritableArrayLike<T>, arr2: ArrayLike<T>): ArrayLike<T> | undefined;
|
||||
export {};
|
||||
//# sourceMappingURL=static.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/static.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/static.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"static.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAEL,cAAc,EAGf,MAAM,cAAc,CAAC;AAuCtB;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;AACzE;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,MAAM,CAAC;AA2BV;;;;;GAKG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAChC,MAAM,CAIR;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAClB,IAAI,EAAE,UAAU,GAAG,IAAI,EACvB,QAAQ,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAC5B,MAAM,CAUR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAC3B,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,EAAE,CAAC;AACb,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AA8BpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAmBxE;AAED,UAAU,iBAAiB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GACjB,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAY1B"}
|
||||
185
node_modules/cheerio/lib/esm/static.js
generated
vendored
Normal file
185
node_modules/cheerio/lib/esm/static.js
generated
vendored
Normal file
@@ -0,0 +1,185 @@
|
||||
import { textContent } from 'domutils';
|
||||
import { default as defaultOptions, flatten as flattenOptions, } from './options.js';
|
||||
/**
|
||||
* Helper function to render a DOM.
|
||||
*
|
||||
* @param that - Cheerio instance to render.
|
||||
* @param dom - The DOM to render. Defaults to `that`'s root.
|
||||
* @param options - Options for rendering.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
function render(that, dom, options) {
|
||||
if (!that)
|
||||
return '';
|
||||
return that(dom !== null && dom !== void 0 ? dom : that._root.children, null, undefined, options).toString();
|
||||
}
|
||||
/**
|
||||
* Checks if a passed object is an options object.
|
||||
*
|
||||
* @param dom - Object to check if it is an options object.
|
||||
* @returns Whether the object is an options object.
|
||||
*/
|
||||
function isOptions(dom, options) {
|
||||
return (!options &&
|
||||
typeof dom === 'object' &&
|
||||
dom != null &&
|
||||
!('length' in dom) &&
|
||||
!('type' in dom));
|
||||
}
|
||||
export function html(dom, options) {
|
||||
/*
|
||||
* Be flexible about parameters, sometimes we call html(),
|
||||
* with options as only parameter
|
||||
* check dom argument for dom element specific properties
|
||||
* assume there is no 'length' or 'type' properties in the options object
|
||||
*/
|
||||
const toRender = isOptions(dom) ? ((options = dom), undefined) : dom;
|
||||
/*
|
||||
* Sometimes `$.html()` is used without preloading html,
|
||||
* so fallback non-existing options to the default ones.
|
||||
*/
|
||||
const opts = {
|
||||
...defaultOptions,
|
||||
...this === null || this === void 0 ? void 0 : this._options,
|
||||
...flattenOptions(options !== null && options !== void 0 ? options : {}),
|
||||
};
|
||||
return render(this, toRender, opts);
|
||||
}
|
||||
/**
|
||||
* Render the document as XML.
|
||||
*
|
||||
* @param dom - Element to render.
|
||||
* @returns THe rendered document.
|
||||
*/
|
||||
export function xml(dom) {
|
||||
const options = { ...this._options, xmlMode: true };
|
||||
return render(this, dom, options);
|
||||
}
|
||||
/**
|
||||
* Render the document as text.
|
||||
*
|
||||
* This returns the `textContent` of the passed elements. The result will
|
||||
* include the contents of `script` and `stype` elements. To avoid this, use
|
||||
* `.prop('innerText')` instead.
|
||||
*
|
||||
* @param elements - Elements to render.
|
||||
* @returns The rendered document.
|
||||
*/
|
||||
export function text(elements) {
|
||||
const elems = elements ? elements : this ? this.root() : [];
|
||||
let ret = '';
|
||||
for (let i = 0; i < elems.length; i++) {
|
||||
ret += textContent(elems[i]);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
export function parseHTML(data, context, keepScripts = typeof context === 'boolean' ? context : false) {
|
||||
if (!data || typeof data !== 'string') {
|
||||
return null;
|
||||
}
|
||||
if (typeof context === 'boolean') {
|
||||
keepScripts = context;
|
||||
}
|
||||
const parsed = this.load(data, defaultOptions, false);
|
||||
if (!keepScripts) {
|
||||
parsed('script').remove();
|
||||
}
|
||||
/*
|
||||
* The `children` array is used by Cheerio internally to group elements that
|
||||
* share the same parents. When nodes created through `parseHTML` are
|
||||
* inserted into previously-existing DOM structures, they will be removed
|
||||
* from the `children` array. The results of `parseHTML` should remain
|
||||
* constant across these operations, so a shallow copy should be returned.
|
||||
*/
|
||||
return parsed.root()[0].children.slice();
|
||||
}
|
||||
/**
|
||||
* Sometimes you need to work with the top-level root element. To query it, you
|
||||
* can use `$.root()`.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $.root().append('<ul id="vegetables"></ul>').html();
|
||||
* //=> <ul id="fruits">...</ul><ul id="vegetables"></ul>
|
||||
* ```
|
||||
*
|
||||
* @returns Cheerio instance wrapping the root node.
|
||||
* @alias Cheerio.root
|
||||
*/
|
||||
export function root() {
|
||||
return this(this._root);
|
||||
}
|
||||
/**
|
||||
* Checks to see if the `contained` DOM element is a descendant of the
|
||||
* `container` DOM element.
|
||||
*
|
||||
* @param container - Potential parent node.
|
||||
* @param contained - Potential child node.
|
||||
* @returns Indicates if the nodes contain one another.
|
||||
* @alias Cheerio.contains
|
||||
* @see {@link https://api.jquery.com/jQuery.contains/}
|
||||
*/
|
||||
export function contains(container, contained) {
|
||||
// According to the jQuery API, an element does not "contain" itself
|
||||
if (contained === container) {
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
* Step up the descendants, stopping when the root element is reached
|
||||
* (signaled by `.parent` returning a reference to the same object)
|
||||
*/
|
||||
let next = contained;
|
||||
while (next && next !== next.parent) {
|
||||
next = next.parent;
|
||||
if (next === container) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* $.merge().
|
||||
*
|
||||
* @param arr1 - First array.
|
||||
* @param arr2 - Second array.
|
||||
* @returns `arr1`, with elements of `arr2` inserted.
|
||||
* @alias Cheerio.merge
|
||||
* @see {@link https://api.jquery.com/jQuery.merge/}
|
||||
*/
|
||||
export function merge(arr1, arr2) {
|
||||
if (!isArrayLike(arr1) || !isArrayLike(arr2)) {
|
||||
return;
|
||||
}
|
||||
let newLength = arr1.length;
|
||||
const len = +arr2.length;
|
||||
for (let i = 0; i < len; i++) {
|
||||
arr1[newLength++] = arr2[i];
|
||||
}
|
||||
arr1.length = newLength;
|
||||
return arr1;
|
||||
}
|
||||
/**
|
||||
* Checks if an object is array-like.
|
||||
*
|
||||
* @param item - Item to check.
|
||||
* @returns Indicates if the item is array-like.
|
||||
*/
|
||||
function isArrayLike(item) {
|
||||
if (Array.isArray(item)) {
|
||||
return true;
|
||||
}
|
||||
if (typeof item !== 'object' ||
|
||||
!Object.prototype.hasOwnProperty.call(item, 'length') ||
|
||||
typeof item.length !== 'number' ||
|
||||
item.length < 0) {
|
||||
return false;
|
||||
}
|
||||
for (let i = 0; i < item.length; i++) {
|
||||
if (!(i in item)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
//# sourceMappingURL=static.js.map
|
||||
1
node_modules/cheerio/lib/esm/static.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/static.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"static.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["static.ts"],"names":[],"mappings":"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"}
|
||||
20
node_modules/cheerio/lib/esm/types.d.ts
generated
vendored
Normal file
20
node_modules/cheerio/lib/esm/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
declare type LowercaseLetters = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
|
||||
declare type AlphaNumeric = LowercaseLetters | Uppercase<LowercaseLetters> | `${number}`;
|
||||
declare type SelectorSpecial = '.' | '#' | ':' | '|' | '>' | '+' | '~' | '[';
|
||||
/**
|
||||
* Type for identifying selectors. Allows us to "upgrade" queries using
|
||||
* selectors to return `Element`s.
|
||||
*/
|
||||
export declare type SelectorType = `${SelectorSpecial}${AlphaNumeric}${string}` | `${AlphaNumeric}${string}`;
|
||||
import type { Cheerio } from './cheerio.js';
|
||||
import type { AnyNode } from 'domhandler';
|
||||
/** Elements that can be passed to manipulation methods. */
|
||||
export declare type BasicAcceptedElems<T extends AnyNode> = Cheerio<T> | T[] | T | string;
|
||||
/** Elements that can be passed to manipulation methods, including functions. */
|
||||
export declare type AcceptedElems<T extends AnyNode> = BasicAcceptedElems<T> | ((this: T, i: number, el: T) => BasicAcceptedElems<T>);
|
||||
/** Function signature, for traversal methods. */
|
||||
export declare type FilterFunction<T> = (this: T, i: number, el: T) => boolean;
|
||||
/** Supported filter types, for traversal methods. */
|
||||
export declare type AcceptedFilters<T> = string | FilterFunction<T> | T | Cheerio<T>;
|
||||
export {};
|
||||
//# sourceMappingURL=types.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/types.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/types.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["types.ts"],"names":[],"mappings":"AAAA,aAAK,gBAAgB,GACjB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER,aAAK,YAAY,GACb,gBAAgB,GAChB,SAAS,CAAC,gBAAgB,CAAC,GAC3B,GAAG,MAAM,EAAE,CAAC;AAEhB,aAAK,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACrE;;;GAGG;AACH,oBAAY,YAAY,GACpB,GAAG,eAAe,GAAG,YAAY,GAAG,MAAM,EAAE,GAC5C,GAAG,YAAY,GAAG,MAAM,EAAE,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,2DAA2D;AAC3D,oBAAY,kBAAkB,CAAC,CAAC,SAAS,OAAO,IAC5C,OAAO,CAAC,CAAC,CAAC,GACV,CAAC,EAAE,GACH,CAAC,GACD,MAAM,CAAC;AACX,gFAAgF;AAChF,oBAAY,aAAa,CAAC,CAAC,SAAS,OAAO,IACvC,kBAAkB,CAAC,CAAC,CAAC,GACrB,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3D,iDAAiD;AACjD,oBAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC;AACvE,qDAAqD;AACrD,oBAAY,eAAe,CAAC,CAAC,IAAI,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
||||
2
node_modules/cheerio/lib/esm/types.js
generated
vendored
Normal file
2
node_modules/cheerio/lib/esm/types.js
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export {};
|
||||
//# sourceMappingURL=types.js.map
|
||||
1
node_modules/cheerio/lib/esm/types.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/types.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["types.ts"],"names":[],"mappings":""}
|
||||
75
node_modules/cheerio/lib/esm/utils.d.ts
generated
vendored
Normal file
75
node_modules/cheerio/lib/esm/utils.d.ts
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
import { type AnyNode } from 'domhandler';
|
||||
import type { Cheerio } from './cheerio.js';
|
||||
/**
|
||||
* Check if the DOM element is a tag.
|
||||
*
|
||||
* `isTag(type)` includes `<script>` and `<style>` tags.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param type - The DOM node to check.
|
||||
* @returns Whether the node is a tag.
|
||||
*/
|
||||
export { isTag } from 'domhandler';
|
||||
/**
|
||||
* Checks if an object is a Cheerio instance.
|
||||
*
|
||||
* @category Utils
|
||||
* @param maybeCheerio - The object to check.
|
||||
* @returns Whether the object is a Cheerio instance.
|
||||
*/
|
||||
export declare function isCheerio<T>(maybeCheerio: any): maybeCheerio is Cheerio<T>;
|
||||
/**
|
||||
* Convert a string to camel case notation.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to be converted.
|
||||
* @returns String in camel case notation.
|
||||
*/
|
||||
export declare function camelCase(str: string): string;
|
||||
/**
|
||||
* Convert a string from camel case to "CSS case", where word boundaries are
|
||||
* described by hyphens ("-") and all characters are lower-case.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to be converted.
|
||||
* @returns String in "CSS case".
|
||||
*/
|
||||
export declare function cssCase(str: string): string;
|
||||
/**
|
||||
* Iterate over each DOM element without creating intermediary Cheerio instances.
|
||||
*
|
||||
* This is indented for use internally to avoid otherwise unnecessary memory
|
||||
* pressure introduced by _make.
|
||||
*
|
||||
* @category Utils
|
||||
* @param array - The array to iterate over.
|
||||
* @param fn - Function to call.
|
||||
* @returns The original instance.
|
||||
*/
|
||||
export declare function domEach<T extends AnyNode, Arr extends ArrayLike<T> = Cheerio<T>>(array: Arr, fn: (elem: T, index: number) => void): Arr;
|
||||
/**
|
||||
* Create a deep copy of the given DOM structure. Sets the parents of the copies
|
||||
* of the passed nodes to `null`.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param dom - The domhandler-compliant DOM structure.
|
||||
* @returns - The cloned DOM.
|
||||
*/
|
||||
export declare function cloneDom<T extends AnyNode>(dom: T | T[]): T[];
|
||||
/**
|
||||
* Check if string is HTML.
|
||||
*
|
||||
* Tests for a `<` within a string, immediate followed by a letter and
|
||||
* eventually followed by a `>`.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to check.
|
||||
* @returns Indicates if `str` is HTML.
|
||||
*/
|
||||
export declare function isHtml(str: string): boolean;
|
||||
//# sourceMappingURL=utils.d.ts.map
|
||||
1
node_modules/cheerio/lib/esm/utils.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/utils.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utils.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,GAAG,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC,CAE1E;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,CAAC,SAAS,OAAO,EACjB,GAAG,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACrC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,GAAG,CAIvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAa7D;AAUD;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAa3C"}
|
||||
112
node_modules/cheerio/lib/esm/utils.js
generated
vendored
Normal file
112
node_modules/cheerio/lib/esm/utils.js
generated
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
import { cloneNode, Document } from 'domhandler';
|
||||
/**
|
||||
* Check if the DOM element is a tag.
|
||||
*
|
||||
* `isTag(type)` includes `<script>` and `<style>` tags.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param type - The DOM node to check.
|
||||
* @returns Whether the node is a tag.
|
||||
*/
|
||||
export { isTag } from 'domhandler';
|
||||
/**
|
||||
* Checks if an object is a Cheerio instance.
|
||||
*
|
||||
* @category Utils
|
||||
* @param maybeCheerio - The object to check.
|
||||
* @returns Whether the object is a Cheerio instance.
|
||||
*/
|
||||
export function isCheerio(maybeCheerio) {
|
||||
return maybeCheerio.cheerio != null;
|
||||
}
|
||||
/**
|
||||
* Convert a string to camel case notation.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to be converted.
|
||||
* @returns String in camel case notation.
|
||||
*/
|
||||
export function camelCase(str) {
|
||||
return str.replace(/[_.-](\w|$)/g, (_, x) => x.toUpperCase());
|
||||
}
|
||||
/**
|
||||
* Convert a string from camel case to "CSS case", where word boundaries are
|
||||
* described by hyphens ("-") and all characters are lower-case.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to be converted.
|
||||
* @returns String in "CSS case".
|
||||
*/
|
||||
export function cssCase(str) {
|
||||
return str.replace(/[A-Z]/g, '-$&').toLowerCase();
|
||||
}
|
||||
/**
|
||||
* Iterate over each DOM element without creating intermediary Cheerio instances.
|
||||
*
|
||||
* This is indented for use internally to avoid otherwise unnecessary memory
|
||||
* pressure introduced by _make.
|
||||
*
|
||||
* @category Utils
|
||||
* @param array - The array to iterate over.
|
||||
* @param fn - Function to call.
|
||||
* @returns The original instance.
|
||||
*/
|
||||
export function domEach(array, fn) {
|
||||
const len = array.length;
|
||||
for (let i = 0; i < len; i++)
|
||||
fn(array[i], i);
|
||||
return array;
|
||||
}
|
||||
/**
|
||||
* Create a deep copy of the given DOM structure. Sets the parents of the copies
|
||||
* of the passed nodes to `null`.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param dom - The domhandler-compliant DOM structure.
|
||||
* @returns - The cloned DOM.
|
||||
*/
|
||||
export function cloneDom(dom) {
|
||||
const clone = 'length' in dom
|
||||
? Array.prototype.map.call(dom, (el) => cloneNode(el, true))
|
||||
: [cloneNode(dom, true)];
|
||||
// Add a root node around the cloned nodes
|
||||
const root = new Document(clone);
|
||||
clone.forEach((node) => {
|
||||
node.parent = root;
|
||||
});
|
||||
return clone;
|
||||
}
|
||||
var CharacterCodes;
|
||||
(function (CharacterCodes) {
|
||||
CharacterCodes[CharacterCodes["LowerA"] = 97] = "LowerA";
|
||||
CharacterCodes[CharacterCodes["LowerZ"] = 122] = "LowerZ";
|
||||
CharacterCodes[CharacterCodes["UpperA"] = 65] = "UpperA";
|
||||
CharacterCodes[CharacterCodes["UpperZ"] = 90] = "UpperZ";
|
||||
CharacterCodes[CharacterCodes["Exclamation"] = 33] = "Exclamation";
|
||||
})(CharacterCodes || (CharacterCodes = {}));
|
||||
/**
|
||||
* Check if string is HTML.
|
||||
*
|
||||
* Tests for a `<` within a string, immediate followed by a letter and
|
||||
* eventually followed by a `>`.
|
||||
*
|
||||
* @private
|
||||
* @category Utils
|
||||
* @param str - The string to check.
|
||||
* @returns Indicates if `str` is HTML.
|
||||
*/
|
||||
export function isHtml(str) {
|
||||
const tagStart = str.indexOf('<');
|
||||
if (tagStart < 0 || tagStart > str.length - 3)
|
||||
return false;
|
||||
const tagChar = str.charCodeAt(tagStart + 1);
|
||||
return (((tagChar >= CharacterCodes.LowerA && tagChar <= CharacterCodes.LowerZ) ||
|
||||
(tagChar >= CharacterCodes.UpperA && tagChar <= CharacterCodes.UpperZ) ||
|
||||
tagChar === CharacterCodes.Exclamation) &&
|
||||
str.includes('>', tagStart + 2));
|
||||
}
|
||||
//# sourceMappingURL=utils.js.map
|
||||
1
node_modules/cheerio/lib/esm/utils.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/esm/utils.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"utils.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG/D;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAI,YAAiB;IAC5C,OAAO,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACpD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO,CAGrB,KAAU,EAAE,EAAoC;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAoB,GAAY;IACtD,MAAM,KAAK,GACT,QAAQ,IAAI,GAAG;QACb,CAAC,CAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAS;QACrE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,0CAA0C;IAC1C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,IAAW,cAMV;AAND,WAAW,cAAc;IACvB,wDAAW,CAAA;IACX,yDAAY,CAAA;IACZ,wDAAW,CAAA;IACX,wDAAW,CAAA;IACX,kEAAgB,CAAA;AAClB,CAAC,EANU,cAAc,KAAd,cAAc,QAMxB;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5D,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAE7C,OAAO,CACL,CAAC,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,IAAI,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC;QACrE,CAAC,OAAO,IAAI,cAAc,CAAC,MAAM,IAAI,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC;QACtE,OAAO,KAAK,cAAc,CAAC,WAAW,CAAC;QACzC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,CAAC,CAAC,CAChC,CAAC;AACJ,CAAC"}
|
||||
107
node_modules/cheerio/lib/index.d.ts
generated
vendored
Normal file
107
node_modules/cheerio/lib/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
/// <reference types="node" />
|
||||
/**
|
||||
* The main types of Cheerio objects.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export type { Cheerio } from './cheerio.js';
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
export * from './types.js';
|
||||
export type { CheerioOptions, HTMLParser2Options, Parse5Options, } from './options.js';
|
||||
/**
|
||||
* Re-exporting all of the node types.
|
||||
*
|
||||
* @category DOM Node
|
||||
*/
|
||||
export type { Node, AnyNode, ParentNode, Element, Document } from 'domhandler';
|
||||
export type { CheerioAPI } from './load.js';
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
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;
|
||||
/**
|
||||
* The default cheerio instance.
|
||||
*
|
||||
* @deprecated Use the function returned by `load` instead.
|
||||
*/
|
||||
declare const _default: import("./load.js").CheerioAPI;
|
||||
export default _default;
|
||||
export { html, xml, text } from './static.js';
|
||||
import * as staticMethods from './static.js';
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('<div><p></p></div>');
|
||||
*
|
||||
* $.contains($('div').get(0), $('p').get(0));
|
||||
* //=> true
|
||||
*
|
||||
* $.contains($('p').get(0), $('div').get(0));
|
||||
* //=> false
|
||||
* ```
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export declare const contains: typeof staticMethods.contains;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
*
|
||||
* $.merge([1, 2], [3, 4]);
|
||||
* //=> [1, 2, 3, 4]
|
||||
* ```
|
||||
*/
|
||||
export declare const merge: typeof staticMethods.merge;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name as it is defined on the
|
||||
* "loaded" Cheerio factory function.
|
||||
*
|
||||
* @deprecated See {@link static/parseHTML}.
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.parseHTML('<b>markup</b>');
|
||||
* ```
|
||||
*/
|
||||
export declare const parseHTML: typeof staticMethods.parseHTML;
|
||||
/**
|
||||
* Users seeking to access the top-level element of a parsed document should
|
||||
* instead use the `root` static method of a "loaded" Cheerio function.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.root();
|
||||
* ```
|
||||
*/
|
||||
export declare const root: typeof staticMethods.root;
|
||||
//# sourceMappingURL=index.d.ts.map
|
||||
1
node_modules/cheerio/lib/index.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/index.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,cAAc,YAAY,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB;;;;GAIG;AACH,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/E,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAc5C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,IAAI,wNAIhB,CAAC;AAEF;;;;GAIG;;AACH,wBAAwB;AAExB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAQ,QAAQ,+BAAkB,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAQ,KAAK,4BAAkB,CAAC;AAEvC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAQ,SAAS,gCAAkB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,eAAO,MAAQ,IAAI,2BAAkB,CAAC"}
|
||||
141
node_modules/cheerio/lib/index.js
generated
vendored
Normal file
141
node_modules/cheerio/lib/index.js
generated
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
||||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.root = exports.parseHTML = exports.merge = exports.contains = exports.text = exports.xml = exports.html = exports.load = void 0;
|
||||
/**
|
||||
* Types used in signatures of Cheerio methods.
|
||||
*
|
||||
* @category Cheerio
|
||||
*/
|
||||
__exportStar(require("./types.js"), exports);
|
||||
var load_js_1 = require("./load.js");
|
||||
var parse_js_1 = require("./parse.js");
|
||||
var parse5_adapter_js_1 = require("./parsers/parse5-adapter.js");
|
||||
var dom_serializer_1 = __importDefault(require("dom-serializer"));
|
||||
var htmlparser2_1 = require("htmlparser2");
|
||||
var parse = (0, parse_js_1.getParse)(function (content, options, isDocument, context) {
|
||||
return options.xmlMode || options._useHtmlParser2
|
||||
? (0, htmlparser2_1.parseDocument)(content, options)
|
||||
: (0, parse5_adapter_js_1.parseWithParse5)(content, options, isDocument, context);
|
||||
});
|
||||
// Duplicate docs due to https://github.com/TypeStrong/typedoc/issues/1616
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
exports.load = (0, load_js_1.getLoad)(parse, function (dom, options) {
|
||||
return options.xmlMode || options._useHtmlParser2
|
||||
? (0, dom_serializer_1.default)(dom, options)
|
||||
: (0, parse5_adapter_js_1.renderWithParse5)(dom);
|
||||
});
|
||||
/**
|
||||
* The default cheerio instance.
|
||||
*
|
||||
* @deprecated Use the function returned by `load` instead.
|
||||
*/
|
||||
exports.default = (0, exports.load)([]);
|
||||
var static_js_1 = require("./static.js");
|
||||
Object.defineProperty(exports, "html", { enumerable: true, get: function () { return static_js_1.html; } });
|
||||
Object.defineProperty(exports, "xml", { enumerable: true, get: function () { return static_js_1.xml; } });
|
||||
Object.defineProperty(exports, "text", { enumerable: true, get: function () { return static_js_1.text; } });
|
||||
var staticMethods = __importStar(require("./static.js"));
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('<div><p></p></div>');
|
||||
*
|
||||
* $.contains($('div').get(0), $('p').get(0));
|
||||
* //=> true
|
||||
*
|
||||
* $.contains($('p').get(0), $('div').get(0));
|
||||
* //=> false
|
||||
* ```
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
exports.contains = staticMethods.contains;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
*
|
||||
* $.merge([1, 2], [3, 4]);
|
||||
* //=> [1, 2, 3, 4]
|
||||
* ```
|
||||
*/
|
||||
exports.merge = staticMethods.merge;
|
||||
/**
|
||||
* In order to promote consistency with the jQuery library, users are encouraged
|
||||
* to instead use the static method of the same name as it is defined on the
|
||||
* "loaded" Cheerio factory function.
|
||||
*
|
||||
* @deprecated See {@link static/parseHTML}.
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.parseHTML('<b>markup</b>');
|
||||
* ```
|
||||
*/
|
||||
exports.parseHTML = staticMethods.parseHTML;
|
||||
/**
|
||||
* Users seeking to access the top-level element of a parsed document should
|
||||
* instead use the `root` static method of a "loaded" Cheerio function.
|
||||
*
|
||||
* @deprecated
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load('');
|
||||
* $.root();
|
||||
* ```
|
||||
*/
|
||||
exports.root = staticMethods.root;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/cheerio/lib/index.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;GAIG;AACH,6CAA2B;AAc3B,qCAAoC;AACpC,uCAAsC;AACtC,iEAAgF;AAChF,kEAAmD;AACnD,2CAAoE;AAEpE,IAAM,KAAK,GAAG,IAAA,mBAAQ,EAAC,UAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAC3D,OAAA,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe;QACxC,CAAC,CAAC,IAAA,2BAAoB,EAAC,OAAO,EAAE,OAAO,CAAC;QACxC,CAAC,CAAC,IAAA,mCAAe,EAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;AAF1D,CAE0D,CAC3D,CAAC;AAEF,0EAA0E;AAC1E;;;;;;;;;;;;GAYG;AACU,QAAA,IAAI,GAAG,IAAA,iBAAO,EAAC,KAAK,EAAE,UAAC,GAAG,EAAE,OAAO;IAC9C,OAAA,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe;QACxC,CAAC,CAAC,IAAA,wBAAqB,EAAC,GAAG,EAAE,OAAO,CAAC;QACrC,CAAC,CAAC,IAAA,oCAAgB,EAAC,GAAG,CAAC;AAFzB,CAEyB,CAC1B,CAAC;AAEF;;;;GAIG;AACH,kBAAe,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC;AAExB,yCAA8C;AAArC,iGAAA,IAAI,OAAA;AAAE,gGAAA,GAAG,OAAA;AAAE,iGAAA,IAAI,OAAA;AAExB,yDAA6C;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACY,QAAA,QAAQ,GAAK,aAAa,UAAC;AAE1C;;;;;;;;;;;;;GAaG;AACY,QAAA,KAAK,GAAK,aAAa,OAAC;AAEvC;;;;;;;;;;;;GAYG;AACY,QAAA,SAAS,GAAK,aAAa,WAAC;AAE3C;;;;;;;;;;;GAWG;AACY,QAAA,IAAI,GAAK,aAAa,MAAC"}
|
||||
60
node_modules/cheerio/lib/load.d.ts
generated
vendored
Normal file
60
node_modules/cheerio/lib/load.d.ts
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
/// <reference types="node" />
|
||||
import { CheerioOptions, InternalOptions } from './options.js';
|
||||
import * as staticMethods from './static.js';
|
||||
import { Cheerio } from './cheerio.js';
|
||||
import type { AnyNode, Document, Element } from 'domhandler';
|
||||
import type { SelectorType, BasicAcceptedElems } from './types.js';
|
||||
declare type StaticType = typeof staticMethods;
|
||||
/**
|
||||
* A querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Also provides several helper methods for dealing with the document as a whole.
|
||||
*/
|
||||
export interface CheerioAPI extends StaticType {
|
||||
/**
|
||||
* This selector method is the starting point for traversing and manipulating
|
||||
* the document. Like jQuery, it's the primary method for selecting elements
|
||||
* in the document.
|
||||
*
|
||||
* `selector` searches within the `context` scope which searches within the
|
||||
* `root` scope.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* $('.apple', '#fruits').text();
|
||||
* //=> Apple
|
||||
*
|
||||
* $('ul .pear').attr('class');
|
||||
* //=> pear
|
||||
*
|
||||
* $('li[class=orange]').html();
|
||||
* //=> Orange
|
||||
* ```
|
||||
*
|
||||
* @param selector - Either a selector to look for within the document, or the
|
||||
* contents of a new Cheerio instance.
|
||||
* @param context - Either a selector to look for within the root, or the
|
||||
* contents of the document to query.
|
||||
* @param root - Optional HTML document string.
|
||||
*/
|
||||
<T extends AnyNode, S extends string>(selector?: S | BasicAcceptedElems<T>, context?: BasicAcceptedElems<AnyNode> | null, root?: BasicAcceptedElems<Document>, options?: CheerioOptions): Cheerio<S extends SelectorType ? Element : T>;
|
||||
/**
|
||||
* The root the document was originally loaded with.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_root: Document;
|
||||
/**
|
||||
* The options the document was originally loaded with.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_options: InternalOptions;
|
||||
/** Mimic jQuery's prototype alias for plugin authors. */
|
||||
fn: typeof Cheerio.prototype;
|
||||
load: ReturnType<typeof getLoad>;
|
||||
}
|
||||
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
|
||||
1
node_modules/cheerio/lib/load.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/load.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"load.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["load.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EACd,eAAe,EAGhB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAc,MAAM,YAAY,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEnE,aAAK,UAAU,GAAG,OAAO,aAAa,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,MAAM,EAClC,QAAQ,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,EAC5C,IAAI,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EACnC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,SAAS,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC;IAEjD;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,EAAE,eAAe,CAAC;IAE1B,yDAAyD;IACzD,EAAE,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC;IAE7B,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,EACtC,MAAM,EAAE,CACN,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EACjC,OAAO,EAAE,eAAe,KACrB,MAAM,aAgBA,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,YACpC,cAAc,GAAG,IAAI,2BAE9B,UAAU,CAyId"}
|
||||
179
node_modules/cheerio/lib/load.js
generated
vendored
Normal file
179
node_modules/cheerio/lib/load.js
generated
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
"use strict";
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = function (d, b) {
|
||||
extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
||||
return extendStatics(d, b);
|
||||
};
|
||||
return function (d, b) {
|
||||
if (typeof b !== "function" && b !== null)
|
||||
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getLoad = void 0;
|
||||
var options_js_1 = __importStar(require("./options.js"));
|
||||
var staticMethods = __importStar(require("./static.js"));
|
||||
var cheerio_js_1 = require("./cheerio.js");
|
||||
var utils_js_1 = require("./utils.js");
|
||||
function getLoad(parse, render) {
|
||||
/**
|
||||
* Create a querying function, bound to a document created from the provided markup.
|
||||
*
|
||||
* Note that similar to web browser contexts, this operation may introduce
|
||||
* `<html>`, `<head>`, and `<body>` elements; set `isDocument` to `false` to
|
||||
* switch to fragment mode and disable this.
|
||||
*
|
||||
* @param content - Markup to be loaded.
|
||||
* @param options - Options for the created instance.
|
||||
* @param isDocument - Allows parser to be switched to fragment mode.
|
||||
* @returns The loaded document.
|
||||
* @see {@link https://cheerio.js.org#loading} for additional usage information.
|
||||
*/
|
||||
return function load(content, options, isDocument) {
|
||||
if (isDocument === void 0) { isDocument = true; }
|
||||
if (content == null) {
|
||||
throw new Error('cheerio.load() expects a string');
|
||||
}
|
||||
var internalOpts = __assign(__assign({}, options_js_1.default), (0, options_js_1.flatten)(options));
|
||||
var initialRoot = parse(content, internalOpts, isDocument, null);
|
||||
/** Create an extended class here, so that extensions only live on one instance. */
|
||||
var LoadedCheerio = /** @class */ (function (_super) {
|
||||
__extends(LoadedCheerio, _super);
|
||||
function LoadedCheerio() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
LoadedCheerio.prototype._make = function (selector, context) {
|
||||
var cheerio = initialize(selector, context);
|
||||
cheerio.prevObject = this;
|
||||
return cheerio;
|
||||
};
|
||||
LoadedCheerio.prototype._parse = function (content, options, isDocument, context) {
|
||||
return parse(content, options, isDocument, context);
|
||||
};
|
||||
LoadedCheerio.prototype._render = function (dom) {
|
||||
return render(dom, this.options);
|
||||
};
|
||||
return LoadedCheerio;
|
||||
}(cheerio_js_1.Cheerio));
|
||||
function initialize(selector, context, root, opts) {
|
||||
if (root === void 0) { root = initialRoot; }
|
||||
// $($)
|
||||
if (selector && (0, utils_js_1.isCheerio)(selector))
|
||||
return selector;
|
||||
var options = __assign(__assign({}, internalOpts), (0, options_js_1.flatten)(opts));
|
||||
var r = typeof root === 'string'
|
||||
? [parse(root, options, false, null)]
|
||||
: 'length' in root
|
||||
? root
|
||||
: [root];
|
||||
var rootInstance = (0, utils_js_1.isCheerio)(r)
|
||||
? r
|
||||
: new LoadedCheerio(r, null, options);
|
||||
// Add a cyclic reference, so that calling methods on `_root` never fails.
|
||||
rootInstance._root = rootInstance;
|
||||
// $(), $(null), $(undefined), $(false)
|
||||
if (!selector) {
|
||||
return new LoadedCheerio(undefined, rootInstance, options);
|
||||
}
|
||||
var elements = typeof selector === 'string' && (0, utils_js_1.isHtml)(selector)
|
||||
? // $(<html>)
|
||||
parse(selector, options, false, null).children
|
||||
: isNode(selector)
|
||||
? // $(dom)
|
||||
[selector]
|
||||
: Array.isArray(selector)
|
||||
? // $([dom])
|
||||
selector
|
||||
: undefined;
|
||||
var instance = new LoadedCheerio(elements, rootInstance, options);
|
||||
if (elements) {
|
||||
return instance;
|
||||
}
|
||||
if (typeof selector !== 'string') {
|
||||
throw new Error('Unexpected type of selector');
|
||||
}
|
||||
// We know that our selector is a string now.
|
||||
var search = selector;
|
||||
var searchContext = !context
|
||||
? // If we don't have a context, maybe we have a root, from loading
|
||||
rootInstance
|
||||
: typeof context === 'string'
|
||||
? (0, utils_js_1.isHtml)(context)
|
||||
? // $('li', '<ul>...</ul>')
|
||||
new LoadedCheerio([parse(context, options, false, null)], rootInstance, options)
|
||||
: // $('li', 'ul')
|
||||
((search = "".concat(context, " ").concat(search)), rootInstance)
|
||||
: (0, utils_js_1.isCheerio)(context)
|
||||
? // $('li', $)
|
||||
context
|
||||
: // $('li', node), $('li', [nodes])
|
||||
new LoadedCheerio(Array.isArray(context) ? context : [context], rootInstance, options);
|
||||
// If we still don't have a context, return
|
||||
if (!searchContext)
|
||||
return instance;
|
||||
/*
|
||||
* #id, .class, tag
|
||||
*/
|
||||
return searchContext.find(search);
|
||||
}
|
||||
// Add in static methods & properties
|
||||
Object.assign(initialize, staticMethods, {
|
||||
load: load,
|
||||
// `_root` and `_options` are used in static methods.
|
||||
_root: initialRoot,
|
||||
_options: internalOpts,
|
||||
// Add `fn` for plugins
|
||||
fn: LoadedCheerio.prototype,
|
||||
// Add the prototype here to maintain `instanceof` behavior.
|
||||
prototype: LoadedCheerio.prototype,
|
||||
});
|
||||
return initialize;
|
||||
};
|
||||
}
|
||||
exports.getLoad = getLoad;
|
||||
function isNode(obj) {
|
||||
return (!!obj.name ||
|
||||
obj.type === 'root' ||
|
||||
obj.type === 'text' ||
|
||||
obj.type === 'comment');
|
||||
}
|
||||
//# sourceMappingURL=load.js.map
|
||||
1
node_modules/cheerio/lib/load.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/load.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"load.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["load.ts"],"names":[],"mappings":"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"}
|
||||
90
node_modules/cheerio/lib/options.d.ts
generated
vendored
Normal file
90
node_modules/cheerio/lib/options.d.ts
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
/// <reference types="node" />
|
||||
import type { DomHandlerOptions } from 'domhandler';
|
||||
import type { ParserOptions } from 'htmlparser2';
|
||||
import type { Options as SelectOptions } from 'cheerio-select';
|
||||
/**
|
||||
* Options accepted by htmlparser2, the default parser for XML.
|
||||
*
|
||||
* @see https://github.com/fb55/htmlparser2/wiki/Parser-options
|
||||
*/
|
||||
export interface HTMLParser2Options extends DomHandlerOptions, ParserOptions {
|
||||
}
|
||||
/** Options for parse5, the default parser for HTML. */
|
||||
export interface Parse5Options {
|
||||
/** Disable scripting in parse5, so noscript tags would be parsed. */
|
||||
scriptingEnabled?: boolean;
|
||||
/** Enable location support for parse5. */
|
||||
sourceCodeLocationInfo?: boolean;
|
||||
}
|
||||
/**
|
||||
* Options accepted by Cheerio.
|
||||
*
|
||||
* Please note that parser-specific options are _only recognized_ if the
|
||||
* relevant parser is used.
|
||||
*/
|
||||
export interface CheerioOptions extends HTMLParser2Options, Parse5Options {
|
||||
/** Recommended way of configuring htmlparser2 when wanting to parse XML. */
|
||||
xml?: HTMLParser2Options | boolean;
|
||||
/** The base URI for the document. Used for the `href` and `src` props. */
|
||||
baseURI?: string | URL;
|
||||
/**
|
||||
* Is the document in quirks mode?
|
||||
*
|
||||
* This will lead to `.className` and `#id` being case-insensitive.
|
||||
*
|
||||
* @default false
|
||||
*/
|
||||
quirksMode?: SelectOptions['quirksMode'];
|
||||
/**
|
||||
* Extension point for pseudo-classes.
|
||||
*
|
||||
* Maps from names to either strings of functions.
|
||||
*
|
||||
* - A string value is a selector that the element must match to be selected.
|
||||
* - A function is called with the element as its first argument, and optional
|
||||
* parameters second. If it returns true, the element is selected.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```js
|
||||
* const $ = cheerio.load(
|
||||
* '<div class="foo"></div><div data-bar="boo"></div>',
|
||||
* {
|
||||
* pseudos: {
|
||||
* // `:foo` is an alias for `div.foo`
|
||||
* foo: 'div.foo',
|
||||
* // `:bar(val)` is equivalent to `[data-bar=val s]`
|
||||
* bar: (el, val) => el.attribs['data-bar'] === val,
|
||||
* },
|
||||
* }
|
||||
* );
|
||||
*
|
||||
* $(':foo').length; // 1
|
||||
* $('div:bar(boo)').length; // 1
|
||||
* $('div:bar(baz)').length; // 0
|
||||
* ```
|
||||
*/
|
||||
pseudos?: SelectOptions['pseudos'];
|
||||
}
|
||||
/** Internal options for Cheerio. */
|
||||
export interface InternalOptions extends Omit<CheerioOptions, 'xml'> {
|
||||
/**
|
||||
* Whether to use htmlparser2.
|
||||
*
|
||||
* This is set to true if `xml` is set to true.
|
||||
*/
|
||||
_useHtmlParser2?: boolean;
|
||||
}
|
||||
declare const defaultOpts: CheerioOptions;
|
||||
/** Cheerio default options. */
|
||||
export default defaultOpts;
|
||||
/**
|
||||
* Flatten the options for Cheerio.
|
||||
*
|
||||
* This will set `_useHtmlParser2` to true if `xml` is set to true.
|
||||
*
|
||||
* @param options - The options to flatten.
|
||||
* @returns The flattened options.
|
||||
*/
|
||||
export declare function flatten(options?: CheerioOptions | null): InternalOptions | undefined;
|
||||
//# sourceMappingURL=options.d.ts.map
|
||||
1
node_modules/cheerio/lib/options.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/options.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"options.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["options.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB,EAAE,aAAa;CAAG;AAC/E,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,aAAa;IACvE,4EAA4E;IAC5E,GAAG,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAEnC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IAEvB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACpC;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;IAClE;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,QAAA,MAAM,WAAW,EAAE,cAGlB,CAAC;AAEF,+BAA+B;AAC/B,eAAe,WAAW,CAAC;AAO3B;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,GAC9B,eAAe,GAAG,SAAS,CAM7B"}
|
||||
41
node_modules/cheerio/lib/options.js
generated
vendored
Normal file
41
node_modules/cheerio/lib/options.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.flatten = void 0;
|
||||
var defaultOpts = {
|
||||
xml: false,
|
||||
decodeEntities: true,
|
||||
};
|
||||
/** Cheerio default options. */
|
||||
exports.default = defaultOpts;
|
||||
var xmlModeDefault = {
|
||||
_useHtmlParser2: true,
|
||||
xmlMode: true,
|
||||
};
|
||||
/**
|
||||
* Flatten the options for Cheerio.
|
||||
*
|
||||
* This will set `_useHtmlParser2` to true if `xml` is set to true.
|
||||
*
|
||||
* @param options - The options to flatten.
|
||||
* @returns The flattened options.
|
||||
*/
|
||||
function flatten(options) {
|
||||
return (options === null || options === void 0 ? void 0 : options.xml)
|
||||
? typeof options.xml === 'boolean'
|
||||
? xmlModeDefault
|
||||
: __assign(__assign({}, xmlModeDefault), options.xml)
|
||||
: options !== null && options !== void 0 ? options : undefined;
|
||||
}
|
||||
exports.flatten = flatten;
|
||||
//# sourceMappingURL=options.js.map
|
||||
1
node_modules/cheerio/lib/options.js.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/options.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"options.js","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAiFA,IAAM,WAAW,GAAmB;IAClC,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,+BAA+B;AAC/B,kBAAe,WAAW,CAAC;AAE3B,IAAM,cAAc,GAAoB;IACtC,eAAe,EAAE,IAAI;IACrB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,OAAO,CACrB,OAA+B;IAE/B,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG;QACjB,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,KAAK,SAAS;YAChC,CAAC,CAAC,cAAc;YAChB,CAAC,uBAAM,cAAc,GAAK,OAAO,CAAC,GAAG,CAAE;QACzC,CAAC,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,SAAS,CAAC;AAC3B,CAAC;AARD,0BAQC"}
|
||||
19
node_modules/cheerio/lib/parse.d.ts
generated
vendored
Normal file
19
node_modules/cheerio/lib/parse.d.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/// <reference types="node" />
|
||||
import { AnyNode, Document, ParentNode } from 'domhandler';
|
||||
import type { InternalOptions } from './options.js';
|
||||
/**
|
||||
* Get the parse function with options.
|
||||
*
|
||||
* @param parser - The parser function.
|
||||
* @returns The parse function with options.
|
||||
*/
|
||||
export declare function getParse(parser: (content: string, options: InternalOptions, isDocument: boolean, context: ParentNode | null) => Document): (content: string | Document | AnyNode | AnyNode[] | Buffer, options: InternalOptions, isDocument: boolean, context: ParentNode | null) => Document;
|
||||
/**
|
||||
* Update the dom structure, for one changed layer.
|
||||
*
|
||||
* @param newChilds - The new children.
|
||||
* @param parent - The new parent.
|
||||
* @returns The parent node.
|
||||
*/
|
||||
export declare function update(newChilds: AnyNode[] | AnyNode, parent: ParentNode | null): ParentNode | null;
|
||||
//# sourceMappingURL=parse.d.ts.map
|
||||
1
node_modules/cheerio/lib/parse.d.ts.map
generated
vendored
Normal file
1
node_modules/cheerio/lib/parse.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parse.d.ts","sourceRoot":"https://raw.githubusercontent.com/cheeriojs/cheerio/d1cbc66d53392ce8bf6cd0068f675836372d2bf3/src/","sources":["parse.ts"],"names":[],"mappings":";AACA,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EAEX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,CACN,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,UAAU,GAAG,IAAI,KACvB,QAAQ,aAYF,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,MAAM,WAChD,eAAe,cACZ,OAAO,WACV,UAAU,GAAG,IAAI,KACzB,QAAQ,CAwBZ;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,EAC9B,MAAM,EAAE,UAAU,GAAG,IAAI,GACxB,UAAU,GAAG,IAAI,CA+BnB"}
|
||||
78
node_modules/cheerio/lib/parse.js
generated
vendored
Normal file
78
node_modules/cheerio/lib/parse.js
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.update = exports.getParse = void 0;
|
||||
var domutils_1 = require("domutils");
|
||||
var domhandler_1 = require("domhandler");
|
||||
/**
|
||||
* Get the parse function with options.
|
||||
*
|
||||
* @param parser - The parser function.
|
||||
* @returns The parse function with options.
|
||||
*/
|
||||
function getParse(parser) {
|
||||
/**
|
||||
* Parse a HTML string or a node.
|
||||
*
|
||||
* @param content - The HTML string or node.
|
||||
* @param options - The parser options.
|
||||
* @param isDocument - If `content` is a document.
|
||||
* @param context - The context node in the DOM tree.
|
||||
* @returns The parsed document node.
|
||||
*/
|
||||
return function parse(content, options, isDocument, context) {
|
||||
if (typeof Buffer !== 'undefined' && Buffer.isBuffer(content)) {
|
||||
content = content.toString();
|
||||
}
|
||||
if (typeof content === 'string') {
|
||||
return parser(content, options, isDocument, context);
|
||||
}
|
||||
var doc = content;
|
||||
if (!Array.isArray(doc) && (0, domhandler_1.isDocument)(doc)) {
|
||||
// If `doc` is already a root, just return it
|
||||
return doc;
|
||||
}
|
||||
// Add conent to new root element
|
||||
var root = new domhandler_1.Document([]);
|
||||
// Update the DOM using the root
|
||||
update(doc, root);
|
||||
return root;
|
||||
};
|
||||
}
|
||||
exports.getParse = getParse;
|
||||
/**
|
||||
* Update the dom structure, for one changed layer.
|
||||
*
|
||||
* @param newChilds - The new children.
|
||||
* @param parent - The new parent.
|
||||
* @returns The parent node.
|
||||
*/
|
||||
function update(newChilds, parent) {
|
||||
// Normalize
|
||||
var arr = Array.isArray(newChilds) ? newChilds : [newChilds];
|
||||
// Update parent
|
||||
if (parent) {
|
||||
parent.children = arr;
|
||||
}
|
||||
else {
|
||||
parent = null;
|
||||
}
|
||||
// Update neighbors
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var node = arr[i];
|
||||
// Cleanly remove existing nodes from their previous structures.
|
||||
if (node.parent && node.parent.children !== arr) {
|
||||
(0, domutils_1.removeElement)(node);
|
||||
}
|
||||
if (parent) {
|
||||
node.prev = arr[i - 1] || null;
|
||||
node.next = arr[i + 1] || null;
|
||||
}
|
||||
else {
|
||||
node.prev = node.next = null;
|
||||
}
|
||||
node.parent = parent;
|
||||
}
|
||||
return parent;
|
||||
}
|
||||
exports.update = update;
|
||||
//# sourceMappingURL=parse.js.map
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user