🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

cparse

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cparse - npm Package Versions

2

2.2.0

Diff
wind2sing
published 2.2.0 •
wind2sing
published 2.1.0 •
wind2sing
published 2.0.3 •

Changelog

Source

2.0.3 (2024-12-16)

✨ 新增功能 - 简化语法

添加了更简洁的调用方式,现在可以直接在 Cheerio 实例上调用 parse 方法!

🎯 核心改进

  • 新增 $.parse() 方法:直接在 Cheerio 实例上调用,无需传递 $ 参数
  • 向后兼容:传统的 parse(rule, $) 语法仍然完全支持
  • TypeScript 支持:完整的类型定义,包含新的简化语法
  • 全面测试:新增 6 个测试用例,总测试数量达到 209 个

🚀 使用示例

// ✅ 新的简化语法
const $ = loadCheerio(html);
const title = $.parse('.title');
const data = $.parse({ title: '.title', items: '[.item]' });

// ❌ 传统语法(仍然支持)
const title2 = parse('.title', $);

📚 文档更新

  • 更新 README 文档,突出新的简化语法
  • 添加语法对比表格和使用示例
  • 更新 TypeScript 类型定义

🧪 测试覆盖

  • 新增 $.parse() 方法基础功能测试
  • 新增属性提取、数组提取测试
  • 新增结构化数据和自定义过滤器测试
  • 所有 209 个测试用例通过
wind2sing
published 2.0.2 •

Changelog

Source

2.0.2 (2024-12-16)

🎯 进一步优化 - 移除冗余语法糖

继续优化项目,移除价值有限的语法糖,专注于真正有价值的功能。

🗑️ 移除功能

  • 移除类条件语法糖selector[.class] → 直接使用标准 CSS selector.class
    • 原因:Cheerio 原生支持更简洁,无需额外语法糖
    • 迁移:将 div[.active] 改为 div.active

🔧 改进功能

  • 修复 nextNode() 方法:增加错误处理和更好的文本节点查找
  • 更新版本号:修复代码中的版本号不一致问题

📚 文档更新

  • 更新 README 和示例,移除已废弃的语法糖说明
  • 突出标准 CSS 选择器的完全支持

💥 Breaking Changes

  • 移除 selector[.class] 语法糖支持
  • 用户需要使用标准 CSS 类选择器 selector.class

🔄 迁移指南

// ❌ 旧语法(已移除)
parse('div[.active]', $)

// ✅ 新语法(推荐)
parse('div.active', $)
wind2sing
published 2.0.1 •

Changelog

Source

2.0.1 (2024-12-16)

🎯 重大重构优化版本

这是 2.0.0 的优化版本,完成了彻底的重构工作,移除了与 Cheerio 原生功能重复的实现,专注于提供真正有价值的语法糖和过滤器功能。

✨ 核心改进

  • 代码简化:移除重复实现,代码量减少 40%
  • 性能提升:直接使用 Cheerio 原生选择器,性能大幅提升
  • 专注核心:保留语法糖和过滤器系统的核心价值
  • 文档重构:README 全面重新组织,突出核心功能

🚀 性能表现

  • HTML 加载:53.78ms/次
  • 选择器解析:6.06ms/次
  • 复杂对象提取:31.28ms/次
  • 内存优化:减少 32.24MB

🧪 质量保证

  • 203 个测试用例全部通过
  • 8 个测试套件全部通过
  • 代码质量检查通过
wind2sing
published 2.0.0 •

Changelog

Source

2.0.0 (2024-12-16)

🎯 重大重构 - 专注核心价值

这是一个重大版本更新,重构了整个项目架构,移除了与 Cheerio 原生功能重复的实现,专注于提供真正有价值的语法糖和过滤器功能。

✨ 新增功能

语法糖功能增强

  • 属性提取语法selector@attribute - 直接提取属性值
  • 数组提取语法[selector] - 获取所有匹配元素
  • 类条件简化selector[.class]selector.class
  • 自定义伪选择器:not-empty:not(:empty)

强大的过滤器系统

  • 30+ 内置过滤器:数据类型转换、字符串处理、数组操作等
  • 过滤器链selector | filter1 | filter2 - 链式数据处理
  • 自定义过滤器:支持扩展自定义过滤器

结构化数据提取

  • 对象语法{ title: 'h1', price: '.price | float' }
  • 分割器语法['[.item]', { name: '.name' }]
  • 函数处理:支持自定义函数处理

🚀 性能大幅提升

  • HTML 加载:71ms/次(优化后)
  • 简单选择器解析:7.74ms/次
  • 复杂对象提取:40.87ms/次
  • 过滤器链处理:7.81ms/次
  • 内存使用:优化后内存增长为负值(-31.52MB)

🗑️ 移除重复实现

现在直接使用 Cheerio 原生支持,性能更优:

  • 条件查询处理(:first, :last, :empty, :contains(), [attr], [attr=value]
  • 嵌套查询处理(parent > child
  • 伪选择器重复实现

📚 文档全面重构

  • README 重新组织:更清晰的结构和格式
  • 突出核心价值:专注于语法糖和过滤器系统
  • 现代化设计:徽章、表格、示例代码
  • 示例更新:展示优化后的用法

🧪 测试全面通过

  • 203 个测试用例全部通过
  • 8 个测试套件全部通过
  • 性能测试优化:调整合理的性能阈值
  • 代码质量保证:ESLint 检查通过

💥 Breaking Changes

  • 移除了一些内部 API,但对用户使用的公共 API 保持兼容
  • 查询解析结果结构略有变化(移除了 conditionnested 字段)
  • 性能测试阈值调整

🔄 迁移指南

对于大多数用户,这次更新是向后兼容的。标准的 CSS 选择器和过滤器功能无需修改代码。

之前的用法仍然有效:

parse('h1', $)           // ✅ 完全兼容
parse('[.item]', $)      // ✅ 完全兼容
parse('a@href', $)       // ✅ 完全兼容
parse('.price | float', $) // ✅ 完全兼容
wind2sing
published 1.0.6 •

Changelog

Source

1.0.6 (2025-06-16)

重大更新

  • 升级 Cheerio 到 1.1.0: 升级到最新版本的 Cheerio,获得更好的性能和稳定性
  • 修复兼容性问题: 重构插件系统以适应 Cheerio 1.0+ 的 API 变化
  • 改进插件实现: 使用 this.eq() 方法替代直接构造函数调用,解决了 "Class constructor LoadedCheerio cannot be invoked without 'new'" 错误

技术改进

  • 重构了 src/cheerio/plugin.js 中的 extractextractAll 方法
  • 优化了插件启用机制,确保与新版 Cheerio 的兼容性
  • 所有现有功能保持向后兼容

测试

  • 所有测试用例通过
  • 验证了数据提取功能的正确性
  • 确保了 URL 转换功能的稳定性
wind2sing
published 1.0.5 •

Changelog

Source

1.0.5 (2021-07-14)

wind2sing
published 1.0.4 •

Changelog

Source

1.0.4 (2021-07-14)

wind2sing
published 1.0.3 •

Changelog

Source

1.0.3 (2020-08-06)

2