chore(deps): update dependency cheerio to v1.1.2
This MR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| cheerio (source) | =1.0.0-rc.3 -> =1.1.2 |
Release Notes
cheeriojs/cheerio (cheerio)
v1.1.2
What's Changed
Full Changelog: https://github.com/cheeriojs/cheerio/compare/v1.1.1...v1.1.2
v1.1.1
v1.1.0
What's Changed
- fix(attributes): support
.propon document nodes by @fb55 in #4320 - fix(types): fix ExtractedValue type by @ben-tilden in #4334
- Add a field
browsertopackage.jsonroot by @UNIDY2002 in #4033 - Upgraded dependencies
Doc Improvements
- docs(blog): fix loading documents url by @TonyRL in #4002
- docs: fix function load() link by @ya-luotao in #4013
- docs: correct loadBuffer() name in example by @arichardsmith in #4270
- Update attr setter jsdoc by @thyming in #4469
- docs: use code block for install, mention yarn and bun by @Electroid in #4454
- docs: Replace
.htmlwith.propfor outerHTML by @fb55 in #4321
New Contributors
- @TonyRL made their first contribution in #4002
- @ya-luotao made their first contribution in #4013
- @arichardsmith made their first contribution in #4270
- @UNIDY2002 made their first contribution in #4033
- @AzeemSup made their first contribution in #4189
- @ben-tilden made their first contribution in #4334
- @Electroid made their first contribution in #4454
- @thyming made their first contribution in #4469
Full Changelog: https://github.com/cheeriojs/cheerio/compare/v1.0.0...v1.1.0
v1.0.0
Cheerio 1.0 is here!
Announcement Blog Post
Breaking Changes
-
The minimum NodeJS version is now 18.17 or higher #3959
-
Import paths were simplified. For example, use
cheerio/sliminstead ofcheerio/lib/slim. #3970 -
The deprecated default Cheerio instance and static methods were removed. #3974
Before, it was possible to write code like this:
import cheerio, { html } from 'cheerio'; html(cheerio('<test></test>')); // ~ '<test></test>' -- NO LONGER WORKSMake sure to always load documents first:
import * as cheerio from 'cheerio'; cheerio.load('<test></test>').html(); -
Node types previously re-exported by Cheerio must now be imported directly from (
domhandler)(https://github.com/fb55/domhandler). #3969 -
htmlparser2 options now reside exclusively under the
xmlkey (#2916):const $ = cheerio.load('<html>', { xml: { withStartIndices: true, }, });
New Features
- Add functions to load buffers, streams & URLs in NodeJS by @fb55 in #2857
- Add extract method by @fb55 in #2750
Fixes
- Allow imports of
cheerio/utilsby @blixt in #2601 - Allow empty string in
data, and simplify by @fb55 in #2818 - Make
closestbe able to start from text nodes by @Qualtagh in #2811 - Fix potential github action smells by @ceddy4395 in #3826
Other
- Cheerio has a new website, featuring updated API docs and guides! #2950
Full Changelog: https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.12...v1.0.0
v1.0.0-rc.12
Bugfix release. Fixed issues:
- Align
propundefined handling with jQuery by @fb55 in #2557 - Allow deep imports of
cheerio/lib/utilsby @blixt in #2601
New Contributors
Full Changelog: https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.11...v1.0.0-rc.12
v1.0.0-rc.11
cheerio@1.0.0-rc.11 is hopefully the last RC before the 1.0.0 release of Cheerio. There are two APIs that will be added for the next major release: An exract method (#2523) and NodeJS specific loader methods (#2051). These are still in flux and I'd appreciate feedback on the proposals.
A big thank you to everyone that contributed to this release! This includes code contributors, as well as the amazing financial support on GitHub Sponsors!
Under the hood, a lot of work for this release went into updating parse5, cheerio's default HTML parser. Have a look at parse5's release notes to see what has changed there.
Breaking
- Cheerio is now a dual CommonJS and ESM module. That means that deep imports will now fail in newer versions of Node. #2508
-
scriptandstylecontents are added again in.text()#2509- To keep the old behavior, switch
.text()to.prop('innerText')
- To keep the old behavior, switch
- The TypeScript types inherited from upstream dependencies have changed. #2503
- Node types are now using tagged unions, which will make consumption a bit easier.
Features
- Relevant options are now forwarded to
cheerio-select#2511- Custom pseudo classes can now be specified using the
pseudosoption.
- Custom pseudo classes can now be specified using the
- For the
.prop()method: - Added a
slimexport, which will always use htmlparser2 #1960
Fixes
- Have
textturn passed values to strings #2047 - Include
undefinedin the return type ofgetby @glen-84 in #2392 - Recognise comments as HTML #2504
- Add missing
undefinedreturn value #2505 - Export missing static methods #2506
- Have style parsing add malformed fields to previous field #2521
Refactor
- Use
domutilsmodule directly #1928 - Hand-roll
isHTML#1935 - Move initialization logic to
load#1951 - Only return elements in
closest#2057 - Remove unnecessary code, be more explicit #2279
- Use stricter TS, ESLint configs #2507
- Update exported values #2512
Development Experience
- Migrate husky to v6 by @DavideViolante in #1934
- Update CI by @XhmikosR in #2149
- Set permissions for GitHub actions by @neilnaveen in #2453
Docs
- Update README "is not a web browser" section by @mxschmitt in #2127
New Contributors
- @DavideViolante made their first contribution in #1934
- @mxschmitt made their first contribution in #2127
- @glen-84 made their first contribution in #2392
- @neilnaveen made their first contribution in #2453
Full Changelog: https://github.com/cheeriojs/cheerio/compare/v1.0.0-rc.10...v1.0.0-rc.11
v1.0.0-rc.10
Fixes:
-
.html(node)now moves passed nodes (#1923, fixes #940)258b26b - Boolean attributes are no longer special in xmlMode (#1903, fixes #1805)
b393e4a - Rename parser adapter files (#1873, fixes #1847)
8f55dd8 - Make
filterwork on all collections (#1870, fixes #1867)fb8d31e - Bump cheerio-select (#1922, fixes https://www.npmjs.com/advisories/1754)
5cd2b9c
Documentation:
- Document how to define TS types for Plug-Ins (#1915, fixes #1778)
880fd2c - Remove obsolete Testing section
e0c7cbb - Remove now-invalid
require5dfbd35
Refactors:
- Wrap shared behavior in
traversing(#1909)58e090a - Move
istotraversing, optimize (#1908)1c6fa3e - Change order of arguments of internal
domEach(#1892)feda230 - Have
loadexport a function (#1869)c370f4e
v1.0.0-rc.9
Port to TypeScript
Cheerio has been ported entirely to TypeScript (in #1816)! This eliminates a lot of edge-cases within Cheerio and will allow you to use Cheerio with confidence. This release also features a new documentation website based on TypeDoc, allowing you to quickly navigate all available methods: https://cheerio.js.org
Breaking change: If you were using the function exported by Cheerio directly instead of first load()ing a document, you will now have to update the require to use the default export.
- const cheerio = require("cheerio");
+ const cheerio = require("cheerio").default;
cheerio('div', dom)
Please note that this way of using Cheerio is deprecated and might be removed in a future version. Please consider updating your code to:
const cheerio = require("cheerio");
const $ = cheerio.load(dom)
$('div')
Note: Cheerio uses template literal types to determine return types. These are available starting with TypeScript 4.1, so you might have to bump your TypeScript version.
For TypeScript types, Cheerio now implements the ArrayLike<T> interface. That means that Cheerio instances can contain objects of arbitrary types, but not all methods can be called on them.
The TypeScript compiler will figure out what structures you are operating on:
- When calling a loaded Cheerio instance with an HTML string like
$('<div>'), it will product aCheerio<Node>type.-
Nodeis the base class for DOM elements and includes eg. comment and text nodes.
-
- When calling Cheerio with a selector like
$('.foo'), it will produce aCheerio<Element>, as onlyElements can be part of the result set.-
Elementis the class representing tags.
-
- You can still use
$('...').map()to map to arbitrary values, and will get a compiler error when trying to call method that are not supported.- Eg.
$('.foo').map((i, el) => $(el).text()).attr('test')will no longer be possible, as.attris not allowed to be called on aCheerio<string>.
- Eg.
This release does not contain other changes to functionality. Feedback is greatly appreciated; if you encounter a problem, please file an issue!
v1.0.0-rc.8
Second botched release. Please use v1.0.0-rc.9 instead.
v1.0.0-rc.7
Published without a lib directory — please ignore.
v1.0.0-rc.6
Breaking:
- Fixed the ordering of the output of several methods, including
prevAll,prevUntilandparentsUntil. The new order matches jQuery.
This release contains three breaking changes inherited from dependencies.
- Selectors (see css-select@4.0.0):
- Several pseudo selectors are now stricter, in line with the HTML spec.
- Some attributes are now case-insensitive based on the HTML spec.
- DOM:
- In XML mode, all elements will have
type: 'tag'.
- In XML mode, all elements will have
New features:
- Add
.unwrap(#1651 by @5saviahv)2037d83 - Add
.wrapAll(#1590 by @5saviahv)cd4a4d9 - Support
prop('innerHTML')(#1578 by @fb55)c58258f - Expose the
scriptingEnabledparse5 option (#1707 by @5saviahv)7eb4cc4- By setting
scriptingEnabledtofalse, it is now possible to parse the contents of<noscript>tags.
- By setting
Types:
- Improve
.loadtype (#1584 by @f0x52)6a90bda - Improve type for
.get(#1759 by @karlhorky)d706976 - Add
.wrapAll(#1740 by @5saviahv)b360762 - Allow
for ofloops (#1704 by @mcpiroman)8fef5aa - Rename exported variable (#1682 by @dominik-korsa)
897b37f - Fix
AttrFunctionarguments (#1669 by @maxma241)5f2e9c3
Bug fixes:
- Fix handling of
undefinedas value in.attr()(#1757 by @5saviahv)98186e8 - Fix filter for
{prev,next}Until(#1728 by @fb55)f2615d2 - Fix parentsUntil filtering (#1708 by @5saviahv)
bf899d5 - Remove module caching dependency (#1691 by @5saviahv)
a9d6a43 - Filter text nodes in
findfunction (#1680 by @5saviahv)9b28b49 - Fix
.addmodifying previous selections (#1656 by @5saviahv)9f9b493 - Stop parent() from throwing an error in some cases (#1637 by @5saviahv)
43592d6 - Make it possible to
.findsiblings (#1583 by @fb55)1062a6c - Fix
replaceWithreplacing element with itself (#1581 by @fb55)88ae636 - Fix
attrhandling ofundefinedas value (#1582 by @fb55)3b35ae4 - Support passing a single element to
load(#1580 by @fb55)0855be6 - Update attribute value when setting prop in
.prop(#1579 by @fb55)db3fce7 - Add length instance property to all Cheerio instances (#1681 by @5saviahv)
b3010d7 - Enforce LF (#1602 by @XhmikosR)
0bbad23 - .html() send context to parse5 (#1627 by @5saviahv)
bf04330
Documentation updates:
- Switch website to clean-jsdoc-theme (#1648 by @XhmikosR)
a336301 - Switch to shields.io for badges (#1611 by @XhmikosR)
290aa9f - Minor typo fixes (#1606 by @XhmikosR)
f5d6ac3 - Fix a few redirects (#1603 by @XhmikosR)
2ae9b14 - Use https when possible. (#1597 by @XhmikosR)
c6679ae - Add JSDoc docs, standardize (#1593 by @fb55)
8273e4c - Document
after,before,slicearguments, improve handling (#1721 by @5saviahv)732d539 - Make link explicit (#1616 by @XhmikosR)
d7c3817 - Fix readme link (#1618 by @XhmikosR)
bdd6018 - Fix parameter types (#1615 by @fb55)
15e39cf - Enable Markdown IDs in JSDoc (#1610 by @XhmikosR)
f3e1a4c - Add bugs and homepage properties to
package.json(#1609 by @XhmikosR)ad3e30b - Explicitly set type for wrap(Inner) (#1668 by @5saviahv)
5b8dd60
Refactors:
- Use cheerio-select@1.0.0 (#1594 by @fb55)
e8f5e98- Fixes a deprecation warning.
- Simplify
quickExpr(#1716 by @fb55)4aa3d39 - Enable strict mode for all files (#1650 by @fb55)
208bce1 - Simplify
wrapAll, add some tests (#1640 by @5saviahv)b6d3840 - Remove unneeded escapes (#1635 by @XhmikosR)
bfa114e - Move parsers to their own files (#1589 by @fb55)
63e4616 - Declare vars when used, streamline code (#1588 by @fb55)
69ae308 - Enable several eslint rules (#1617 by @XhmikosR)
21de2c5 - Enable
eqeqeqeslint rule except for null (#1638 by @XhmikosR)52f37a1 - Enable
block-scoped-vareslint rule (#1631 by @XhmikosR)b072df8 - Enable
no-unused-expressionseslunt rule (#1630 by @XhmikosR)fc2c7d5 - Remove eslint
--ignore-path(#1612 by @XhmikosR)17f0d08 - Merge .gitattributes (#1646 by @XhmikosR)
2fb25aa - Remove Makefile, .prettierignore (#1614 by @fb55)
36c4c77 - Add a "bench" alias script (#1629 by @XhmikosR)
bb6cb38 - Add jest & node eslint plugins (#1642 by @fb55)
075cc5d - Remove the now unused xyz devDependency (#1628 by @XhmikosR)
b93931a - Remove the now unused entities package (#1613 by @XhmikosR)
18c0038 - Remove the now unused scripts (#1647 by @XhmikosR)
a3f6846
CI:
- Switch to GitHub Actions CI (#1600 by @XhmikosR)
b9453ea - Update CI config (#1673 by @XhmikosR)
8ace785 - Fix benchmark skip check (#1634 by @XhmikosR)
703ec16 - Use
actions-gh-pages(#1626 by @fb55)9ee60cc - Update GitHub Actions too (#1605 by @XhmikosR)
05a4757 - Add
versioning-strategy: increasefor dependabot, format71d2aaf
Test changes:
- Nesting level of some deeply nested tests decreased (#1734 by @5saviahv)
9743030 - Add tests for mixed elements and text (#1747 by @5saviahv)
ca7cd9b - test(cheerio): Fix typos in test names (#1748 by @atimidguy)
fafae51 - Add test for #1092 (#1733 by @5saviahv)
1a86118 - test(tsc): Add expectType test (#1726 by @5saviahv)
6f35a39 -
.maptest was actually calling.each(#1711 by @Pustur)456fbe5 - Prefer using
.toBeUndefined()(#1659 by @XhmikosR)5aa4272 - Prefer Jest's toBe true/false matcher. (#1639 by @XhmikosR)
4859684 - Add some tests (#1653 by @5saviahv)
1ebe05a - Migrate to Jest (#1596 by @fb55)
d60bac9 - Add CodeCQL Action (#1601 by @XhmikosR)
990e963
Commit Range:
v1.0.0-rc.5
Hotfix release
- fix(package): Use
cheerio-select-tmpuntil naming issue is resolved3751929
v1.0.0-rc.4
Welcome to cheerio@1.0.0-rc.4! This is the last pre-release before a full 1.0.0 release — please make sure to test this release and report any issues you might find.
This release was made possible by our supporters on Open Collective. If you want to support this project going forward, have a look at sponsorship options!
Breaking:
- After upgrading
parse5, cheerio temporarily has a minimum Node version of Node 6. See #1585 for details. - Use the parser's DOM without modifications (#1559 by @fb55)
- Nodes no longer have a
rootreference. The root node is now referenced by theparentproperty.
- Nodes no longer have a
- Use parse5 to serialize the DOM (
04091a4by @fb55)- We will no longer encode non-ASCII characters by default. Please make sure that you pass on the appropriate content encoding.
New Features:
- Support for jQuery's positional selectors (:eq, :last, :odd, etc.) (#1565 by @fb55)
- Add Typescript typings (#1491 by @paulmelnikow)
- Introduces a new documentation website (#1571 by @fb55, based on work by @jugglinmike)
- Implement
for...ofiterator viaSymbol.iterator(#1197 by @papandreou) - Add
wrapInner(9ffc557by @fb55, based on work by @tomjw64 and @warrengm) - Have
removeAttraccept a list of attributes to remove (#1561 by @fb55) - Add
prop(‘outerHTML’)implementation (#945 by @bill-bishop)
Bug Fixes:
- Prevent stale data on
.prev()afterreplaceWith()(#1254 by @Gei0r) - Fix
.xmlcalls on HTML documents (#1572 by @fb55) - Correct rendering of root node (#1307 by @jugglinmike)
- Throw a useful error on invalid input to
cheerio.load()(#1087 by @zeke) - Fix data attribute shadowing issue (#1139 by @tai2)
- Pass
locationInfooption to parse5 (#1155 by @trevorhreed)
Other notable changes:
- Dropped Lodash as a dependency
- Avoid lodash where possible (#1500 by @TrySound)
- Use
domhandlernodes directly (#1564 by @fb55)
- Formally test deprecated APIs (#1184 by @jugglinmike)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.