npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cniot/mdd-editor

v0.3.14

Published

模型驱动编辑器

Downloads

1,217

Readme

0.3.12

  • feat: “同步其他 L4 页面”弹窗新增递归同步开关,开启后会继续扫描手动输入 L4 页面引用的子 L4 页面,直到没有新的子页面。
  • style: 优化“同步其他 L4 页面”弹窗视觉样式,补充输入卡片、递归开关、统计预览和 code 标签展示。
  • upgrade: 建议需要批量同步跨 L4 依赖链路的页面升级到 @cniot/mdd-editor >= 0.3.12

0.3.11

  • feat: 本地 AI 工作区新增“同步其他 L4 页面”入口,支持手动输入多个 L4 code 并批量同步到本地。
  • feat: 批量同步其他 L4 页面时会自动去重,并跳过本地已有未同步修改的页面,避免覆盖本地改动。
  • upgrade: 建议需要处理跨 L4 页面依赖、弹窗或跳转联动的页面升级到 @cniot/mdd-editor >= 0.3.11

0.3.10

  • chore: bump @cniot/mdd-editor to 0.3.10.

0.3.7

  • fix: 修复表格列等配置项标题区输入字段时,React key 随 name/dataIndex 变化导致面板重挂载、输入框打一字就失焦的问题;配置项面板改为使用内部稳定 key,不写入业务 schema。
  • upgrade: 建议存在表格列、筛选项、表单项等配置编辑场景的页面升级到 @cniot/mdd-editor >= 0.3.7

0.3.6

  • fix: 修复“同步本地更改”后,编辑器面板刷新时可能重复初始化 react-dnd-html5-backend,导致 Cannot have two HTML5 backends at the same time. 的问题。
  • fix: 统一编辑器内拖拽上下文,表格类配置组件复用共享 DnD Provider,避免多个可拖拽配置区同时渲染或重挂载时重复创建 HTML5 backend。
  • chore: 显式补充 dnd-core 依赖,保证共享 DragDropManager 在包发布和独立使用场景下依赖完整。
  • upgrade: 建议存在本地 AI 工作区同步能力的页面升级到 @cniot/mdd-editor >= 0.3.6,尤其是会只修改 mdd.style.less 后点击“同步本地更改”的场景。

0.3.5

  • feat: 本地修改 diff 支持左右对照查看,按文件展示“上次发送”和“本地修改”,滚动时两侧天然同步。
  • feat: diff 查看支持 JSON、JSX、LESS 轻量语法高亮,并保留旧 bridge 的文本 diff 回退。
  • chore: 推荐配套版本为 @cniot/mdd-editor >= 0.3.5 + @cniot/mdd-ai-bridge >= 0.1.7

0.3.4

  • feat: 优化“本地 AI 工作区”抽屉视觉层级,拆分 Bridge 状态、工作区操作、辅助操作区域,减少按钮拥挤。
  • feat: 新增“访问本地 AI 主页”按钮,可直接打开本地 bridge 控制台。
  • style: 状态、页面、目录信息改为分行展示,长页面 code 和目录路径更易阅读。

0.3.3

  • feat: 本地 AI 抽屉展示 bridge 版本,并提示本地 bridge 版本是否偏旧。
  • feat: 本地 AI 抽屉新增“复制启动命令 / 复制工作区路径 / 复制 AI 提示词”,降低后端同学接入成本。
  • feat: 线上 HTTP 页面访问本地 bridge 时复用 relay 窗口,减少反复弹窗。
  • feat: 同步本地修改后展示更清晰的本地修改摘要,并支持展开查看 schema 改动路径和文本 diff。
  • feat: 配合 @cniot/mdd-ai-bridge >= 0.1.6,支持本地控制台、增强版 Context Pack、PROMPT.md、JSON 错误行列号和 diff 摘要。
  • chore: 推荐配套版本为 @cniot/mdd-editor >= 0.3.3 + @cniot/mdd-ai-bridge >= 0.1.6

0.3.1

  • feat: 新增“本地 AI”工作区入口,支持把当前页面的 schema、script、style、页面摘要同步到本地目录,方便 Cursor、Qoder、Codex CLI 等本地 AI 工具直接修改。
  • feat: 支持通过 @cniot/mdd-ai-bridge 连接本地工作区,默认端口为 17678,本地目录默认为 ~/.mdd-ai-workspace
  • feat: 针对线上 HTTP 编辑页面访问 127.0.0.1 被 Chrome Private Network Access 拦截的问题,新增本地 relay 通道,线上页面会通过 postMessagehttp://127.0.0.1:17678/relay 通信。
  • feat: 同步本地 AI 修改后,会刷新编辑器面板和脚本/schema 编辑器内容,保证本地修改能及时回显。
  • fix: 优化 FTP 编辑面板 $updated 事件监听清理,减少重复监听。
  • chore: AI 能力为旁路增强,不改变原有保存链路;同步后仍需继续使用原页面保存按钮提交。

0.2.0-beta.56

  • feat: 批量输入框(batchInput)新增 valueType 配置属性,支持选择返回值类型为 string("a,b,c")或 list["a","b","c"]

0.2.0-beta.55

  • feat: 新增行详情是否能展示全部配置

0.2.0-beta.54

  • feat: form 的表单项支持左右自定义渲染

0.2.0-beta.53

  • feat: 可编辑表格支持 上传文件

0.2.0-beta.51 ~ 52

  • 可编辑表格地址选择器添加默认国家、是否先选择国家属性配置

0.2.0-beta.49

  • fix: upload 没有读取 multiple 属性

0.2.0-beta.47 ~ 0.2.0-beta.48

  • 可编辑表格操作按钮支持导入

0.2.0-beta.46

  • 支持请求 入参、出参 源码处理
  • 支持自定义排序配置

0.2.0-beta.45

  • 表单 卡片、子卡片 title 支持额外渲染自定义内容

0.2.0-beta.44

  • 从 localStorage 读取 配置
  • log 版本号

0.2.0-beta.43

  • feat: 筛选项支持条件渲染

0.2.0-beta.42

  • fix: 详情卡片 隐藏父级卡片 默认值逻辑调整

0.2.0-beta.41

  • feat: 支持 新版布局 filter 默认展开

0.2.0-beta.40

  • feat: 可编辑表格 列配置 从 localStorage 读取

0.2.0-beta.39

  • feat: 支持 onePage

0.2.0-beta.38

  • feat: 列表区块整体支持 条件渲染

0.2.0-beta.37

  • 可编辑表格支持列配置

0.2.0-beta.36

  • fix: delayLoadingMessageDuration 配置无法更新

0.2.0-beta.35

  • fix: delayLoadingMessageDuration 配置为 number

0.2.0-beta.34

  • 弹窗 抽屉 通过【关闭按钮 X】【点击 mask 区域】【键盘 esc 按键】关闭弹窗时 可以 刷新父级列表

0.2.0-beta.33

  • ajax 中 message 提示 最长 duration 支持配置,key:delayLoadingMessageDuration

0.2.0-beta.32

  • 优化 表格 编辑器,减少 重复渲染,提高性能

0.2.0-beta.31

  • 更改 分栏 组件 默认数据

0.2.0-beta.30

  • feat: 区块支持 表单 & 可编辑表格

0.2.0-beta.29

  • feat: table 支持级联勾选开关配置

0.2.0-beta.28

  • fix: 可编辑表格最大高度 回显

0.2.0-beta.27

  • ajax 请求支持自定义成功和失败文案

0.2.0-beta.26

  • fix: 表格最大高度 应是 数字

0.2.0-beta.25

  • feat: 全编辑 table 支持 序号、是否虚拟滚动和 自动列宽开关配置

0.2.0-beta.24

  • fix: 补齐上传组件配置

0.2.0-beta.23

  • fix: 是否禁用无法编辑的问题

0.2.0-beta.22

  • 文本框支持 行数

0.2.0-beta.21

  • 详情页面支持 配置每个 部分高度
  • 分栏 上下布局支持 配置 高度

0.2.0-beta.20

  • 分栏支持隐藏父级卡片和 当前分栏卡片

0.2.0-beta.19

  • 兼容 children 不为数组的情况
  • 处理 props key 冲突

0.2.0-beta.18

  • 详情卡片支持信息提示组件

0.2.0-beta.17

  • 支持信息提示组件

0.2.0-beta.16

  • feat: 时间选择格式 支持国际格式

0.2.0-beta.15

  • fix: 国际电话组件编辑属性优化

0.2.0-beta.14

  • 表单模板支持国际电话输入框

0.2.0-beta.13

  • 支持 双击 行空白区域 事件

0.2.0-beta.12

  • 重新发布

0.2.0-beta.11

  • 区块支持 筛选项

0.2.0-beta.10

  • 支持 操作列按钮最长字符数 配置

0.2.0-beta.9

  • 区块支持可编辑表格

0.2.0-beta.8

  • 支持列表区块的编辑

0.2.0-beta.7

  • detail 分栏支持上下布局

0.2.0-beta.6

  • detail 支持分栏多列配置

0.2.0-beta.5

  • FTP 表头支持分组配置

0.2.0-beta.4

  • 全编辑增加级联选择器

0.2.0-beta.3

  • 日期选择器 支持 mode 属性

0.2.0-beta.2

  • 详情和全编辑支持最大高度设置

0.2.0-beta.1

  • 支持 cn-ui 0.12.x

0.1.51

  • table 支持最大高度设置

0.1.49

  • 服务端数据处理

0.1.48

  • FTP 支持虚拟滚动和自动计算列开关。 地址组件支持国家选择配置

0.1.47

  • 增加服务端处理类型

0.1.46

  • 全编辑增加地址选择组件配置

0.1.45

  • 增加首次渲染不联动配置

0.1.44

  • 所有字段支持国际化 key 配置

0.1.43

  • 编辑器脚本 右上角支持自定义动作按钮,scriptTopButtons: [buttonProps,buttonProps]

0.1.41

  • 增加数值区间组件

0.1.40

  • swagger 获取支持接口返回 json 字符串格式

0.1.39

  • 全编辑批量添加支持 l4 页面选择

0.1.38

  • 导入轮训模块配置

0.1.37

  • fix 表单初始化报错问题

0.1.36

  • simpleFTP 模板 露出顶部操作区配置。 主要针对博西华和沪上的动态报表

0.1.35

  • 解析 swagger 递归层级优化

0.1.33

  • fix formily 多层级联动 bug

0.1.32

  • 支持数据源配置为 flow

0.1.31

  • fix 表单自定义模块不能选择 L4 模块的问题

0.1.30

  • fix

0.1.29

  • debug 模式下,开启 schema 编辑功能

0.1.28

  • bugfix

0.1.27

  • bugfix
  • cnNumber 小数点调整

0.1.26

  • 地址加上搜索功能

0.1.25

  • 编辑器兼容在线 L3 页面创建

0.1.24

  • 详情卡片支持 item 渲染到标题

0.1.23

  • action 动作增加快捷操作按钮,可以外部传入 moduleMap

0.1.22

  • 升级脚本模板

0.1.21

  • 操作 schema 默认值优化

0.1.20

  • fix

0.1.19

  • 返回字段是 date-time 类型需要格式化为时间

0.1.18

  • swagger 处理函数 export 优化
  • 操作咧动作默认开启刷新父级

0.1.14

  • 默认 id 字段禁用状态

0.1.13

  • 列操作动作加上默认参数&错误日志输出

0.1.12

  • 支持注册 全局模块下拉数据源

0.1.11

  • L4 格式兼容处理

0.1.10

  • fix ftp 编辑器样式问题

0.1.9

  • fix 脚本编辑器 bug

0.1.8

  • 所有模板支持 swagger 字段选择

0.1.5

  • 脚本&样式编辑器 逻辑优化

0.1.4

  • 上传组件去除图片 类型
  • 增加 脚本和样式编辑器, 通过事件接受 change script:update, style:update

0.1.3

  • 增加预览功能

模型驱动编辑器引擎

在线文档参考: https://yuque.antfin.com/docs/share/65a39ca0-f5a2-49aa-8c0f-3f3287597a67?# 《模型驱动引擎页面如何使用》

直接使用

  • pc
import { MddFtpEditor, MddFormEditor, MddDetailEditor, MddEditTableEditor } from '@cniot/mdd-editor'

const pageId = new URLSearchParams(location.search).get('pageId')

// render
return <MddFtpEditor pageId={pageId}/>  // 页面编辑

return <MddFtpEditor/> // 页面新增
  • 组件属性
props: {
  pageId: string | number, // 页面ID,页面唯一值
  url: string, // 前后端固定好基本不用变,除非是路径namespace有变动,需要额外设置
  aiBridge: boolean | string | { baseURL?: string, enabled?: boolean }, // 本地 AI 工作区同步配置,false 可关闭入口
  pageMeta: object, // 页面元信息,建议传 get-by-code 返回的 code/name/gmtModified/modifierAccount
}

本地 AI 工作区

编辑器内置“本地 AI”入口,不直接绑定 Cursor、Qoder 或 Codex CLI,而是把当前页面同步为本地普通文件:

npm run mdd:ai-bridge

没有 mdd 开发仓库权限的业务同学,推荐直接使用 bridge npm 包:

npm i -g @cniot/mdd-ai-bridge
mdd-ai-bridge

也可以不安装,直接运行:

npx @cniot/mdd-ai-bridge

如果团队更希望每个业务项目有固定脚本,可以安装到业务项目:

npm i -D @cniot/mdd-ai-bridge

然后在业务项目 package.json 中配置:

{
  "scripts": {
    "mdd:ai-bridge": "mdd-ai-bridge"
  }
}

这个包启动时默认会把随包发布的 MDD libs 源码复制到 ~/.mdd-ai-workspace/context/mdd-context/source/libs,业务同学不需要有 mdd 仓库权限。

如果希望 AI 能继续读取 MDD 核心源码上下文,可以启动高级模式:

npm run mdd:ai-bridge:source

这个模式会把 ~/.mdd-ai-workspace/context/mdd-context/source/libs 软链到当前仓库的 src/libs。如果 AI 工具不擅长读取软链,可以改用复制模式:

npm run mdd:ai-bridge:copy-source

默认工作区:

~/.mdd-ai-workspace/context/mdd-context/
  AGENTS.md
  api-cheatsheet.md
  engine-runtime.md
  schema-dsl.md
  hooks-cookbook.md
  types/mdd-runtime.d.ts
  examples/
  source/

~/.mdd-ai-workspace/pages/{code}/
  mdd.schema.json
  mdd.script.jsx
  mdd.style.less
  page.ir.json
  page.meta.json
  AGENTS.md
  README.md

推荐流程:

  1. 在浏览器编辑器点击“AI”。
  2. 点击“发送到本地 AI”。
  3. 用 Cursor、Qoder、Codex CLI 等工具打开工作区目录并修改文件。
  4. 回到浏览器点击“同步本地修改”。
  5. 预览确认后继续走原保存逻辑。

上下文说明:

  • 点击“发送到本地 AI”时会自动确保全局 Context Pack 存在。
  • 默认只生成精简文档和类型,轻量、稳定、AI 好读。
  • MDD_AI_CONTEXT_SOURCE=link 会建立源码软链。
  • MDD_AI_CONTEXT_SOURCE=copy 会复制核心 libs 源码,适合发布成 bridge npm 包或 AI 工具不跟随软链的场景。
  • 如需强制刷新上下文,启动时加 MDD_AI_CONTEXT_REFRESH=1

注意

  • externals
  external: [
    'react',
    'react-dom',
    'axios',
    'EventEmitter',
    '@cainiaofe/cn-ui',
    'ahooks',
    'classnames',
    'cn-address-select-pro',
    'lodash',
  ]