diff --git a/refactor/baselines/danmuku-contract-validation.json b/refactor/baselines/danmuku-contract-validation.json
new file mode 100644
index 000000000..69741edb5
--- /dev/null
+++ b/refactor/baselines/danmuku-contract-validation.json
@@ -0,0 +1,112 @@
+{
+ "schemaVersion": 1,
+ "task": "PKG-DANMUKU-01",
+ "capturedAt": "2026-09-13T09:35:02.032Z",
+ "sourceCommit": "b0cfbfe3a09a84a295a257e45e4577847588d1cb",
+ "environment": {
+ "node": "v24.21.0",
+ "platform": "win32",
+ "architecture": "x64",
+ "executable": "refactor/.cache/toolchains/node-v24.21.0-win-x64/node.exe",
+ "yarnPolicy": "1.22.22; no install or lockfile changes"
+ },
+ "inputs": {
+ "refactor/baselines/danmuku-release.json": {
+ "sha256LF": "82a0ab2e87f108cbb1d09ce1b6647cfefc896d974da1cb60b2668fded18a4b2f"
+ },
+ "refactor/scripts/danmuku-contract.mjs": {
+ "sha256LF": "8ca0996605cfbcd732030708bd67ecedff5018d2b7436fa7247de7bbb39d7573"
+ },
+ "refactor/scripts/danmuku-contract.test.mjs": {
+ "sha256LF": "37836083e849cd8b7d5d47a4e9d952949d3b28bd885225e3197fb6715febf44e"
+ },
+ "refactor/baselines/danmuku-contract.md": {
+ "sha256LF": "ff51611322cfbb5ad744a37eebc555b74e4d9853b59c91bf13547889fa976bb0"
+ },
+ "refactor/changes/2026-09-13-PKG-DANMUKU-01-contracts.md": {
+ "sha256LF": "fb7355058ee1b13688c2e8c713118f6b802aa086209cb8a6e236694f2764abd9"
+ }
+ },
+ "registry": {
+ "url": "https://registry.npmjs.org/artplayer-plugin-danmuku",
+ "status": 200,
+ "catalogStable": 81,
+ "archivedReleases": 15,
+ "unverifiedCatalogArchives": 66,
+ "bodySha256": "6fccd0198b2322827b3271a807b60f73a3e4d6f46aeb5494a86aade409caf1d6"
+ },
+ "evidence": [
+ {
+ "command": "node refactor/scripts/danmuku-contract.mjs",
+ "log": "refactor/.cache/danmuku01/verify.log",
+ "exitCode": 0,
+ "logSha256": "655d90ee59df53dd2136c79f14886bd5b281ea142bc0032e4b7e52b13ee7f5bd"
+ },
+ {
+ "command": "node --test refactor/scripts/danmuku-contract.test.mjs",
+ "log": "refactor/.cache/danmuku01/contract-test.log",
+ "exitCode": 0,
+ "passed": 44,
+ "failed": 0,
+ "skipped": 0,
+ "logSha256": "492c7313c98f197a8241e370854860a0980ada771d1c86b26e5e2303920fb6a0"
+ },
+ {
+ "command": "node node_modules/eslint/bin/eslint.js refactor/scripts/danmuku-contract.mjs refactor/scripts/danmuku-contract.test.mjs",
+ "log": "refactor/.cache/danmuku01/lint.log",
+ "exitCode": 0,
+ "logSha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
+ }
+ ],
+ "coverage": {
+ "immutableSourceFiles": 28,
+ "commonJsModulesExecuted": 28,
+ "manifestEsmModulesExecuted": 3,
+ "esmMethod": "Dynamic data URL imports of the actual archive bytes, not package-resolution tests",
+ "runtimeFixtures": [
+ "frozen-Git-source with controlled Worker/CSS loader",
+ "real npm 5.3.0 main",
+ "real npm 5.3.0 legacy"
+ ],
+ "runtimeCasesPerFixture": 4,
+ "parser": "Frozen actual Bilibili parser exercised through URL adapter with controlled fetch and absent-Worker fallback",
+ "validator": {
+ "name": "artplayer",
+ "version": "5.4.0",
+ "tarballSha256": "42b269a66b9658d53f9a92572bb36d656ea9af56254a387b3a69c7ddea43979e",
+ "source": "Actual frozen published core bundle static validator, not a replacement validator"
+ }
+ },
+ "reproduced": [
+ "Actual CJS namespace.default/direct function changes and 12 enumerable writable static icons from 5.1.0.",
+ "Latest and frozen source registration synchronous; enumerable facade/getter keys and defaults stable.",
+ "emit returns Promise; chain methods and load resolve the internal Danmuku rather than the facade described by Result.",
+ "Initial Promise danmuku is rejected by published core validator; load(Promise) works in the same realm.",
+ "time:0 becomes currentTime+0.5 and input fields are mutated; public emit bypasses beforeEmit.",
+ "load() replacement, load(target) append, filter this and loaded queue reference identity.",
+ "Function-only filter config updates are ignored by JSON comparison; load rejection emits and rejects the same error.",
+ "Empty-array synchronous show/config/reset/loaded ordering and video play/pause state hooks.",
+ "Settings beforeEmit callback receives trimmed input and option this; border/time reset and lock timer observed.",
+ "destroy leaves registered resize handlers and a started settings lock timer.",
+ "Bilibili fallback parser mode/entity/metadata behavior and unpadded hexadecimal color."
+ ],
+ "observedNotReproduced": [
+ "id/icons declaration omissions; Slider value/hide and heatmap points declaration drift",
+ "Bilibili async Promise executor/fetch rejection and unrevoked URL",
+ "worker onmessage replacement and Date.now ids; late callback/duplicate-start cases",
+ "heatmap zero sampling, option.points not consumed, repeated SVG ids",
+ "12 SVG source authorization not separately established"
+ ],
+ "limitations": [
+ "No browser playback/layout/Worker/CSP/device validation",
+ "No actual Bilibili request, media fetch, load/performance/long-running memory validation",
+ "No package-installed NodeNext/Node10/TypeScript or AMD/global matrix",
+ "Older selected archives have module-shape coverage, not full old-major runtime compatibility",
+ "Historical defect assertions are observations and must not become candidate normal expectations",
+ "Registry signatures and publisher authorization not independently verified"
+ ],
+ "sourceChanged": false,
+ "browserValidated": false,
+ "installedConsumerValidated": false,
+ "releaseReady": false
+}
diff --git a/refactor/baselines/danmuku-contract.md b/refactor/baselines/danmuku-contract.md
new file mode 100644
index 000000000..095916f1a
--- /dev/null
+++ b/refactor/baselines/danmuku-contract.md
@@ -0,0 +1,196 @@
+# Danmuku 公共契约基线
+
+PKG-DANMUKU-01;冻结提交 `b0cfbfe3a09a84a295a257e45e4577847588d1cb`。
+实际输入及逐文件 SHA 见 [danmuku-release.json](danmuku-release.json),执行结果见
+[danmuku-contract-validation.json](danmuku-contract-validation.json)。本次不改生产代码。
+
+## 发布依据与覆盖范围
+
+2026-09-13 直接读取 [npm registry](https://registry.npmjs.org/artplayer-plugin-danmuku),
+HTTP 200,目录有 81 个稳定版,latest 为 5.3.0。冻结全部版本的发布时间、tarball、
+integrity、gitHead;实际下载并校验全部 13 个 5.x 版,另加前两代末版 4.4.11、3.5.31,
+共 15 个归档。其余 66 个版本只有目录证据,不能说其运行时已验证或全部兼容。
+这是代表性历史覆盖,不是新最低支持版本,也不把旧 major 的产品行为自动带入候选。
+
+当前包全部跟踪文件、12 个 SVG、三个 dist、声明、README、可运行 demo 和 VitePress
+弹幕文档共 28 个输入冻结。最新归档中的 README、manifest、声明及三个 dist 与冻结
+Git 文件逐字节相同;源码行为另通过冻结 Git 模块受控执行对照,不把可读源码等同于
+历史打包过程已可重复构建。
+
+| 归档版本 | registry gitHead 的插件版本 | 同提交核心版本 | 说明 |
+| --- | --- | --- | --- |
+| 3.5.31 | 3.5.31 | 3.5.31 | 历史 major 对照 |
+| 4.4.11 | 4.4.10 | 4.5.8 | manifest 版本不一致 |
+| 5.0.0 / 5.0.1 | 5.0.0 / 5.0.1 | 5.0.0 / 5.0.5 | 分别冻结 |
+| 5.1.0 / 5.1.1 | 5.1.0 / 5.1.0 | 5.1.2 / 5.1.5 | 5.1.1 版本不一致 |
+| 5.1.2 / 5.1.3 / 5.1.4 | 同归档版本 | 5.1.6 | 分别冻结 |
+| 5.1.5 / 5.1.6 | 5.1.4 / 5.1.6 | 5.2.2 | 5.1.5 版本不一致 |
+| 5.1.7 | 缺 gitHead | 未知 | 不推测来源提交 |
+| 5.1.8 | 5.1.7 | 5.2.4 | manifest 版本不一致 |
+| 5.2.0 | 5.1.9 | 5.3.0-beta.3 | 核心是提交关联预发布号 |
+| 5.3.0 | 5.2.1 | 5.3.1 | 不宣称核心 5.3.1 是 npm 稳定版 |
+
+真实 manifest 是归档身份依据;提交关联不是最低核心支持声明。归档与关联 Git 路径
+各成员的匹配/不匹配均在 JSON 中保存。registry 缺失的提交信息保持缺失。
+未独立验证 npm 签名及发布者授权。5.1.7 归档的目录头没有尾随斜线;专属 verifier
+用 tar 条目类型区分目录与普通文件,拒绝重复、越界和非普通文件,不改共享解包函数。
+
+## 分发与静态属性
+
+| 版本 | 实际 CommonJS | manifest 分发入口 | 静态 icons |
+| --- | --- | --- | --- |
+| 3.5.31 | 直接函数 | main;未声明 types/module/legacy | 无 |
+| 4.4.11 | 对象.default | main/types | 无 |
+| 5.0.0–5.0.1 | 对象.default | main/types/legacy | 无 |
+| 5.1.0–5.1.6、5.1.8 | 对象.default | main/types/legacy;无 module/exports | 12 项 |
+| 5.1.7 | 对象.default | module 是 `.esm.js`;平铺 import/require/default exports | 12 项 |
+| 5.2.0 | 对象.default | `.mjs`、root/legacy 条件 exports;types 条件在后 | 12 项 |
+| 5.3.0 | 直接函数 | `.mjs`、root/legacy 条件 exports;types 条件在前 | 12 项 |
+
+main/legacy 共 28 个实际模块已在 Node VM 执行;三个 manifest ESM 的实际字节通过
+data URL 动态 import 执行。此项只证明模块代码能求值,不等于在消费者目录通过
+Node 包解析;真实安装、NodeNext/Node10、AMD/global/script、编辑器仍由 06/09 验证。
+
+`artplayerPluginDanmuku.icons` 是可写、可配置、可枚举的对象值,顺序为:
+`$on/$off/$config/$style/$mode_0_off/$mode_0_on/$mode_1_off/$mode_1_on/`
+`$mode_2_off/$mode_2_on/$check_on/$check_off`。静态 icons 不是 getter;设置模板使用
+模块内 SVG 字符串,没有读取工厂 icons 的后续改写。这一读码事实尚未验证热替换用法。
+
+## 最新版工厂与方法
+
+`factory(option)(art)` 同步返回门面;字段按 `name/emit/load/config/hide/show/reset/`
+`mount/option/isHide/isStop` 顺序枚举,name 为 `artplayerPluginDanmuku`。
+后三项是可枚举、可配置、没有 setter 的 getter,读取内部当前值。方法已 bind,可抽取调用。
+工厂 option 没有默认对象;`{ danmuku: [] }` 是基准合法调用。初始化不等待异步载入完成。
+
+| API | 最新真实行为 | 声明/兼容注意 |
+| --- | --- | --- |
+| `emit(danmu)` | async;验证并修改传入对象,filter 通过后同步入队;Promise 最终返回内部 Danmuku | 旧声明错误写同步 Result;不自动改旧根类型 |
+| `load()` | 读当前 option.danmuku,reset 后清空队列再逐条 emit | Promise 返回内部对象;不是门面 |
+| `load(target)` | 追加到现有队列,不自动改 option.danmuku | 包括数组、函数、同 realm Promise、XML URL |
+| `config(partial)` | 合并默认值、当前值与 partial,验证、钳位;变化比较用 JSON.stringify,单独更换函数会被忽略 | 旧类型要求完整 Option,实际 partial 有效 |
+| `hide/show` | 更新 isHide、层 opacity、option.visible,并发事件 | 返回内部对象;重复调用也发事件 |
+| `reset()` | 全队列回到 wait,回收已分配 DOM,再发 reset | 返回内部对象,不清空队列 |
+| `mount(target)` | selector 或元素;移动设置输入框并 reset 设置 UI | 返回 undefined;声明允许省略,但运行时无目标会抛错 |
+| `option` | 当前合并后的对象;config 可能更换其引用 | 声明可写,实际仅 getter |
+| `isHide/isStop` | 初始 false;show/hide 与 video start/stop 更新 | 不应解释为 video.paused 或 layer DOM 是否存在 |
+
+内部 Danmuku 没有公开门面的 `name/mount`,但历史链式返回会将其暴露给调用方。
+后续整理必须先评估返回身份,不能为了匹配旧错误声明静默返回门面。
+`load(undefined)` 清空;其他显式 falsy 值通过 `target = argument || option.danmuku`
+回退但不走清空分支;这只是读码事实,不把未声明参数纳入必须支持的接口。
+
+## 全部配置与弹幕项
+
+| 配置 | 默认值/范围 |
+| --- | --- |
+| danmuku | `[]`;声明含数组、URL、返回 Promise 的函数、Promise;初始 Promise 被实际 validator 拒绝,load(Promise) 可用 |
+| speed / margin / opacity | `5`,钳位 1–10;`[10,'25%']`;`1`,钳位 0–1 |
+| color / mode / modes | `#FFFFFF`;`0`,钳位 0–2;`[0,1,2]`,显示模式由 dataset/CSS 控制 |
+| fontSize | `25`;数值或百分比,使用时钳位 12 到播放器高度 |
+| antiOverlap / synchronousPlayback | `true` / `false` |
+| mount / heatmap / width / points | controlsCenter / false / 512 / [] |
+| filter / beforeEmit / beforeVisible | 默认均返回 true;filter 同步,另外两个支持异步 |
+| visible / emitter | true / true |
+| maxLength / lockTime / theme | 200(1–1000)/ 5(1–60)/ dark |
+| OPACITY / FONT_SIZE / MARGIN / SPEED / COLOR | `{}` / `{}` / `{}` / `{}` / `[]`,设置组件再补默认滑块与颜色 |
+
+Danmu 声明成员为 `text/mode/color/time/border/style`;runtime 还验证可选 string `id`,
+并传播额外字段。mode 只入队 0/1/2,空白 text 与 filter 拒绝项忽略。time 不存在或为 0
+时写为 currentTime + 0.5;负数钳到 0。入队时额外生成 `$state/$index/$ref/$restTime/`
+`$lastStartTime`,loaded/visible 事件会暴露这些字段和对象引用。
+
+直接 emit/load 调用 filter,以当前 option 为 this,不经过 beforeEmit。设置 UI 的
+发送按钮/Enter 先 trim 输入,防锁定/重复提交,await beforeEmit;只有严格 true 继续,
+加 border、删除 time、再调用 emit,清输入并锁定。beforeVisible 在准备显示前调用,
+也以 option 为 this。三者不能合并成一个全局异步过滤器。
+
+最新声明有六个命名类型 `Mode/Danmuku/Slider/Danmu/Option/Result`。
+4.4.11/5.0.x 旧声明中 Danmuku 表示结果,而 5.1.x 起表示输入,旧配置还出现
+useWorker/minWidth/maxWidth;不能将较早声明与最新声明拼成未经评估的根类型。
+06 按已批准的 [统一类型规则](../type-compatibility-policy.md) 处理:最新 npm 根声明的
+合法完整工厂赋值、Parameters/ReturnType、NodeNext 历史模块形态都需安装消费者证据;
+准确异步类型可用独立 runtime 入口,较早冲突写迁移说明。本次没有改类型或声称编译矩阵通过。
+
+## 事件、DOM、设置与热力图
+
+| 事件 | 参数/时机 |
+| --- | --- |
+| artplayerPluginDanmuku:config | 当前 option 引用;show/hide 在它之前发生 |
+| artplayerPluginDanmuku:loaded | 完成当前 load 后的实际 queue 引用;空数组初始化可在工厂返回前同步发生 |
+| artplayerPluginDanmuku:error | load 捕获的原错误,然后再次抛出;直接 emit 不自动发这个事件 |
+| artplayerPluginDanmuku:visible | worker 返回位置且允许显示后,实际内部 danmu |
+| artplayerPluginDanmuku:start / stop | 无参数,video:play/playing / pause/waiting 对应触发 |
+| artplayerPluginDanmuku:show / hide / reset | 无参数,对应方法更新状态之后 |
+| artplayerPluginDanmuku:destroy | stop、worker terminate 和解除部分监听之后 |
+| artplayerPluginDanmuku:points | 消费方发入的热力图数据事件,插件不主动 emit |
+
+这些是十个输出事件和一个输入事件;不新增虚构的 `:emit` 事件。
+[] 初始化的已复现顺序为 show → config → reset → loaded;非空/异步输入顺序和错误
+重入仍需 02 扩展。Setting 还订阅 resize/fullscreen/fullscreenWeb/document:pointermove/
+document:pointerup/show/hide。热力图订阅 ready/resize/loaded/timeupdate/setBar/points。
+
+设置入口是 `new Setting` 创建的独立 `.artplayer-plugin-danmuku` 输入框和弹出面板,
+不是核心 setting registry 的单个项目。内部使用 `.apd-*` 类、mode/color/state/id 数据,
+外部挂载可在 fullscreen/fullscreenWeb 时移回控制栏;默认挂载在宽度低于 width 时移到
+播放器底部。默认不透明度 0–100、字号 12–120;MARGIN 四档 `[10,'75%']/[10,'50%']/`
+`[10,'25%']/[10,10]`;SPEED 五档 10/7.5/5/2.5/1。滑块读取 step.hide,而声明写 show;
+MARGIN step.value 是数组,声明只有 number|string。
+
+设置 style 在模块求值时插入 id=`artplayer-plugin-danmuku` 的全局 style;完整类名、
+选择器、SVG 和样式源码已整体哈希冻结。视觉、CSS 覆盖、重复 style 与外部节点回收
+未在本次 mock 中模拟,交 02/05/08 的真实页面验证。
+
+heatmap=true/object 创建 name=`heatmap`、position=`top` 的控件。源码按 `[x,y]` 二元组
+使用 points 事件数据;`option.points` 当前只存储,未被 heatmap update 消费,声明却为
+`{time,value}[]`。初始化开启 heatmap 后 config 开关不会自动新增/移除控件。上面两项为
+读码事实,尚未浏览器复现。窄尺寸下默认 sampling=floor(width/100) 可为 0;需 02 用
+独立超时保护测试确认循环风险,不在 UI 主线程盲跑。
+
+## Bilibili XML 与 worker
+
+string 输入调用 fetch(url) → response.text(),没有显式 HTTP 状态判断。XML 用正则读
+`...`,要求至少八个逗号分隔字段;模式 1/2/3→0、4→2、5→1,其他→0;
+trim 后按 quot/apos/lt/gt/amp 顺序解实体。输出 text/time/mode/fontSize/color/timestamp/
+pool/userID/rowID;color 用十六进制字符串,不补齐六位,数字异常也不额外过滤。
+
+优先生成 Blob worker,message 含 `{xml,id}`,结果 `{danmus,id}`,成功后 terminate;
+Worker 构建同步失败时 console.error 并退回相同 parser。正则和 fallback 已执行;真实
+网络、Worker 消息和 CSP/Blob 能力未验证。源码用 async Promise executor,fetch/text
+拒绝发生在 try 之外,且未 revokeObjectURL;空 XML/worker error/销毁竞态是待 02 复现项。
+调度 worker 接口 `{type:'getDanmuTop',id,target,visibles,antiOverlap,clientWidth,clientHeight,marginBottom,marginTop}`
+→ `{result,id}`,当前 Date.now 作为 id 并覆盖 onmessage;并发/旧回复仍待测试。
+
+## 已复现差异与后续责任
+
+| 编号 | 证据级别 | 内容 | 后续任务 |
+| --- | --- | --- | --- |
+| DANMUKU-TYPE-01 | 运行时复现 + 逐字声明 | emit Promise、内部返回身份、getter、mount 省略、初始 Promise 和声明不一致 | 03/06 |
+| DANMUKU-INPUT-01 | 冻结源码和真实 5.3 main/legacy 复现 | time:0 被改为 current+0.5;输入对象被修改 | 02/03,分别评估修正和保留 |
+| DANMUKU-CONFIG-01 | 同上 | 单独 config({filter:新函数}) 被 JSON.stringify 比较判为未变化 | 02/03 |
+| DANMUKU-CLEANUP-01 | 同上 | resize 注册 this.resize,销毁 off(this.reset);设置锁定 timer 未清 | 02/05 |
+| DANMUKU-TYPE-02 | 读码/声明观察 | id/icons 缺失、Slider value/hide、points 类型与使用漂移、config partial | 05/06 |
+| DANMUKU-ASYNC-01 | 待复现 | Bilibili fetch/text/worker 错误、load 乱序、beforeVisible/worker 晚回调、重复 start | 02/03/04/05 |
+| DANMUKU-HEATMAP-01 | 待复现 | 小于 100px 时 sampling=0、事件 tuple/option.points、重复实例 SVG id | 02/05 |
+| DANMUKU-SOURCE-01 | 归档与 Git 核验 | gitHead 版本错位、5.1.7 无 gitHead、12 SVG 无单独来源授权证据 | 09 |
+
+历史缺陷断言仅冻结观察,不要求候选保留。修复必须有独立候选正常断言与明确迁移影响。
+包 README 只有简介/demo/license,主要公开说明来自冻结 VitePress 文档和 demo。
+demo 使用本地 video.mp4/danmuku.xml,适合作为后续 8082/Monaco/Run 的本地输入。
+本次不证明实际播放、密集弹幕碰撞/时钟、mask/全屏/PiP、真实 WebKit/设备或 npm 发布可行。
+
+## 重放
+
+在固定 Node 24.21.0 / Yarn 1.22.22 与已安装根依赖下运行:
+
+```text
+node refactor/scripts/danmuku-contract.mjs
+node --test refactor/scripts/danmuku-contract.test.mjs
+node node_modules/eslint/bin/eslint.js refactor/scripts/danmuku-contract.mjs refactor/scripts/danmuku-contract.test.mjs
+```
+
+缺缓存时 verifier 仅从冻结 npm URL 下载并验证 SHA512/SHA256;不执行 registry 包脚本。
+完整目录可再次读取 `https://registry.npmjs.org/artplayer-plugin-danmuku`,但返回的新目录
+不应覆盖本次不可变基线。原始 registry body 的 SHA 保存在 JSON,原始响应在专属 cache。
+测试使用真实发布核心 5.4.0 的 validator、受控 DOM/计时器/Worker,仅源码编译在内存中
+完成,不生成或修改 dist/docs。仅访问 npm 元数据及归档,未请求媒体或 Bilibili 资源。
diff --git a/refactor/baselines/danmuku-release.json b/refactor/baselines/danmuku-release.json
new file mode 100644
index 000000000..0fde13bdd
--- /dev/null
+++ b/refactor/baselines/danmuku-release.json
@@ -0,0 +1,3265 @@
+{
+ "schemaVersion": 1,
+ "registry": "https://registry.npmjs.org/artplayer-plugin-danmuku",
+ "capturedAt": "2026-09-13T09:19:29.434Z",
+ "sourceCommit": "b0cfbfe3a09a84a295a257e45e4577847588d1cb",
+ "sourceNormalization": "Git text normalized to LF; archive members hashed as bytes.",
+ "source": {
+ "docs/assets/example/danmuku.js": "3f91461e2466f13ed4e72e6bd69986461192d8c6a9ca866fa347599f6958e021",
+ "packages/artplayer-plugin-danmuku/.npmignore": "46063058e98be55dba5cf5f33d379e73eca048f4126e7af75f8011bab7f09145",
+ "packages/artplayer-plugin-danmuku/README.md": "5a7bff740434fdb92d97d11b7a9f45fc1265a475112b898b50567937765a21f1",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js": "7c8749288711ef97e80b6f9f00981170aa73f62a8ae25d6d663749a4aef62a8f",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js": "62db96685c48b8573f0480cead6ac934b1d0382b9fdd0046d17d15d2549c56dc",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs": "083d7de2f9a0314955dc83cdeedbc46c36728f7c9a0943ada8c3229edf9264ce",
+ "packages/artplayer-plugin-danmuku/package.json": "6e9b642cda22728631f71b3121b9dcae9f979c6eebb4b6d555d723b71cde9a50",
+ "packages/artplayer-plugin-danmuku/src/bilibili.js": "3235b1e7be09d55971a5fd70b7b87b7d7ff9e2b2c84452a64f095d326d5af897",
+ "packages/artplayer-plugin-danmuku/src/danmuku.js": "1723094f73adb7f8d358c244c52972510d845de03d41263d12a45edecc054df1",
+ "packages/artplayer-plugin-danmuku/src/heatmap.js": "3cf77ff82f62958728445eaf9c044bc4cbcf04a4ea82e753e7c44e59128c16f4",
+ "packages/artplayer-plugin-danmuku/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "packages/artplayer-plugin-danmuku/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "packages/artplayer-plugin-danmuku/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "packages/artplayer-plugin-danmuku/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "packages/artplayer-plugin-danmuku/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "packages/artplayer-plugin-danmuku/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "packages/artplayer-plugin-danmuku/src/index.js": "c457bb11e68a4ebb393f7dbf47ed3872166b72cf12498fc03187ead6f60ce234",
+ "packages/artplayer-plugin-danmuku/src/setting.js": "ffbaa808551410dc015a5f3ffe4e091f5e1b1bb45eee2d9790cf15cbf82eace2",
+ "packages/artplayer-plugin-danmuku/src/style.less": "7148a1bd32f5d3d743db4a4ae8d39dc0e1406d2bff18df42cbb20e6705d5fed9",
+ "packages/artplayer-plugin-danmuku/src/worker.js": "05995a16cd728dd5ca513587a777b4be9012b8cc4b77e3a46fed1826e6769c53",
+ "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts": "006c3e2d22425b936d6d09bf5138b0ae13c4cfffd0a571d03722c17137dbe99c",
+ "packages/artplayer-vitepress/docs/plugin/danmuku.md": "a019e334d22628f1697a2a0be15e9c3f01e36b2c8da825f32ea86b4135b91c2b"
+ },
+ "registrySnapshot": {
+ "status": 200,
+ "bodySha256": "6fccd0198b2322827b3271a807b60f73a3e4d6f46aeb5494a86aade409caf1d6",
+ "distTags": {
+ "latest": "5.3.0"
+ },
+ "stableVersions": [
+ "3.1.8",
+ "3.1.9",
+ "3.1.10",
+ "3.1.12",
+ "3.1.13",
+ "3.1.14",
+ "3.1.15",
+ "3.1.16",
+ "3.1.17",
+ "3.1.18",
+ "3.1.19",
+ "3.2.3",
+ "3.2.4",
+ "3.2.5",
+ "3.2.6",
+ "3.3.1",
+ "3.3.2",
+ "3.3.3",
+ "3.4.1",
+ "3.4.2",
+ "3.5.1",
+ "3.5.2",
+ "3.5.4",
+ "3.5.5",
+ "3.5.8",
+ "3.5.9",
+ "3.5.10",
+ "3.5.11",
+ "3.5.12",
+ "3.5.13",
+ "3.5.14",
+ "3.5.15",
+ "3.5.17",
+ "3.5.18",
+ "3.5.19",
+ "3.5.20",
+ "3.5.21",
+ "3.5.22",
+ "3.5.23",
+ "3.5.24",
+ "3.5.26",
+ "3.5.27",
+ "3.5.28",
+ "3.5.29",
+ "3.5.30",
+ "3.5.31",
+ "4.1.0",
+ "4.3.0",
+ "4.3.12",
+ "4.3.13",
+ "4.3.14",
+ "4.3.15",
+ "4.3.16",
+ "4.3.17",
+ "4.3.18",
+ "4.3.19",
+ "4.3.21",
+ "4.3.22",
+ "4.3.23",
+ "4.4.0",
+ "4.4.1",
+ "4.4.2",
+ "4.4.3",
+ "4.4.6",
+ "4.4.7",
+ "4.4.8",
+ "4.4.10",
+ "4.4.11",
+ "5.0.0",
+ "5.0.1",
+ "5.1.0",
+ "5.1.1",
+ "5.1.2",
+ "5.1.3",
+ "5.1.4",
+ "5.1.5",
+ "5.1.6",
+ "5.1.7",
+ "5.1.8",
+ "5.2.0",
+ "5.3.0"
+ ],
+ "prereleaseVersions": [],
+ "selectedVersions": [
+ "3.5.31",
+ "4.4.11",
+ "5.0.0",
+ "5.0.1",
+ "5.1.0",
+ "5.1.1",
+ "5.1.2",
+ "5.1.3",
+ "5.1.4",
+ "5.1.5",
+ "5.1.6",
+ "5.1.7",
+ "5.1.8",
+ "5.2.0",
+ "5.3.0"
+ ],
+ "selection": "All 5.x stable releases plus the last listed stable release of each older major (3.5.31 and 4.4.11). Remaining catalog versions are inventoried but their archives and behavior are not verified; this is not a minimum support declaration.",
+ "catalog": [
+ {
+ "version": "3.1.8",
+ "publishedAt": "2019-05-03T14:22:48.140Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.8.tgz",
+ "integrity": "sha512-ddy+wYz2kRyd+putUI9wtaWjzCr/w6rycY9jSPJ4NDrd33+9fTQEBuJ7U8HKmRI2rX/YNOmWoS+YMqv0Elenpg==",
+ "gitHead": "296a8122d842802bfe5fc500c360ef7e6b0f205d"
+ },
+ {
+ "version": "3.1.9",
+ "publishedAt": "2019-05-12T22:09:41.882Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.9.tgz",
+ "integrity": "sha512-J+vtZcPBhLZIw+Esr61kEZu/CnAlQI/heE4cxHjxfHmsx2tbIeSRIfdn9OEEyqnAajUKMiXjRx3xz8J9OktPfA==",
+ "gitHead": "af2f30442d8aabda79e331317f1bc1a9213b2e6c"
+ },
+ {
+ "version": "3.1.10",
+ "publishedAt": "2019-07-19T09:55:39.319Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.10.tgz",
+ "integrity": "sha512-WiNHRVJpzlyqlVfzI/Cxxyf81pRfkf7LaQvp6JGHG7JuM+envrBkatAw7uhjD4zWJXr4BgGOm0ptEdEprTwmhg==",
+ "gitHead": "8b16c0fc29eb0de7aecc7d2be8b9c7bb86aab77e"
+ },
+ {
+ "version": "3.1.12",
+ "publishedAt": "2019-07-19T10:25:42.257Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.12.tgz",
+ "integrity": "sha512-s/KEwedhfR+y+J+0MxVdA+OGysBJtuvQ/LQ8fWqqTCO+WMafrAiEcRrdjWYj9wDj7hsyMz1qhTPFKZe2foHNow==",
+ "gitHead": "1a5cf941a1ef24ce4faf6fe533c3ed7d3ba38549"
+ },
+ {
+ "version": "3.1.13",
+ "publishedAt": "2019-08-15T00:37:19.777Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.13.tgz",
+ "integrity": "sha512-9uDpxIpSikG/AZqNy+oX8odzDJrDXtEvtb73IKHvvT2sxg9M1z/mNwHO0lPTDn9/1RdyUPgsbltOxPcz3fFCPA==",
+ "gitHead": "2560cee9373492701f83e6a4d038f9b4da477101"
+ },
+ {
+ "version": "3.1.14",
+ "publishedAt": "2019-08-21T03:16:15.992Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.14.tgz",
+ "integrity": "sha512-Ko1EW14CtVcvFpsBmi72rHFXf08AW5oF/btPAKMocKNM2PRC9EVON/P6pjmcwbY+VukuGyH3Up/3W1orh2LwrQ==",
+ "gitHead": "71d56e0a6382132b9f95683bf2f072120d2de4eb"
+ },
+ {
+ "version": "3.1.15",
+ "publishedAt": "2019-09-15T08:17:18.296Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.15.tgz",
+ "integrity": "sha512-yC9cjRuIhOAJ1Q1N2Uc4iDmff2B62lQ9T/vaUXl39nPgXPilzfhQ5ZgkeKit/Z6aC20YRZ+zQS1fnseYBSGktA==",
+ "gitHead": "902fe2089541f2bb4b63ad25791649baed2c76c8"
+ },
+ {
+ "version": "3.1.16",
+ "publishedAt": "2019-09-25T04:44:32.335Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.16.tgz",
+ "integrity": "sha512-jrwHUwe6kuKYB64MlLsImmT4hDdCYDjospsY2wmW15xQ6ZEuoUHBAHa26kjLgF+rF4+sexSxw61hI8Gl/vxnOg==",
+ "gitHead": "1644a7530f9805ca2308c16019cecc33f1c0f87d"
+ },
+ {
+ "version": "3.1.17",
+ "publishedAt": "2019-11-10T07:53:32.675Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.17.tgz",
+ "integrity": "sha512-2unA1OvxijZHxmcs3ECGC4ogfG+GfBkS0/AiC1TF8zoPhFFvZrVhvG0q7bCP3z7lVg7WYlRSopS5ZROexGLHqQ==",
+ "gitHead": "2b83fc1b26fc0c971f9d66a01008c6a2961055f6"
+ },
+ {
+ "version": "3.1.18",
+ "publishedAt": "2019-11-11T01:22:42.369Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.18.tgz",
+ "integrity": "sha512-WxXPJa0f3Xn8hRpWXbduiZZmIwotyZYpcqwt/BeQDYnyEar9MfhIseQE0nefa6FuM2ZyM2h4X5/+bAoIgNmpBw==",
+ "gitHead": "48ade9904721f9227f66ca92725eb01750cc3bd7"
+ },
+ {
+ "version": "3.1.19",
+ "publishedAt": "2019-11-20T01:50:01.893Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.1.19.tgz",
+ "integrity": "sha512-QS4VIk1uFiNDeo2cwbY4lKbrOV2qiH2ZlviQDAW6F1CI1b4/9dST0ALz2n8e0Pw7KC7XO7tOnEEwrt+atpIzHg==",
+ "gitHead": "339ec6a1633c88d703dfd98ad7daaf111c0bf883"
+ },
+ {
+ "version": "3.2.3",
+ "publishedAt": "2019-11-22T13:39:14.290Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.2.3.tgz",
+ "integrity": "sha512-KswLXHixkNsl5Dg2pDFMciuBIj6Kd3b5DZey8LyEX4RGKMlrraq0snVl6TakH5cnyNDPW0lhUM0j88LjWV8Tug==",
+ "gitHead": "247d626c3d6f0608e4a6b9d8e6e7dd282dd3b9cd"
+ },
+ {
+ "version": "3.2.4",
+ "publishedAt": "2019-11-22T13:41:42.685Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.2.4.tgz",
+ "integrity": "sha512-O5Gf+xnF2eA9g97M5F2KhTDhW0s6LYLl8bZZJNYUMgy7HGX0qicQeTVK4N9ln1ufWQ+pAYOkY0iFX15LajDepg==",
+ "gitHead": "0a3a20568e37f99972eefb01d4b1dcf4036a46db"
+ },
+ {
+ "version": "3.2.5",
+ "publishedAt": "2019-11-28T03:55:24.221Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.2.5.tgz",
+ "integrity": "sha512-H31lSaoR451PWkFssRC6G1/hNx1Be7bJXmseq3twcZMv2Au3huDws4G5zSMSk5l9r0BVSqhp5Lqlx6RojwMMDQ==",
+ "gitHead": "a6e4575b842c2ef23e0f335340ab72722beca675"
+ },
+ {
+ "version": "3.2.6",
+ "publishedAt": "2019-12-02T00:40:47.603Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.2.6.tgz",
+ "integrity": "sha512-hvBTeD0XnRFsuZaR+5COnK7G8QvmAFSAZ4quni0W5c5iQ46+jDSs21vQH7Ymcz9pUW8hxoNaVAB4LKXPVvuGOQ==",
+ "gitHead": "a8cbb56d931e2b59c96f7c91cdd5e18bafd9ecfc"
+ },
+ {
+ "version": "3.3.1",
+ "publishedAt": "2019-12-09T09:38:34.638Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.3.1.tgz",
+ "integrity": "sha512-hSxw0BMJLYY22YyDkzXBnC1p+1KbOWCwvDiPiHwj5ixJu8RT/IBtXWWye+KP44dL4PuMbaAeHphMhHF+4KeBCw==",
+ "gitHead": "124240255c09691aefb873edc9a775ae642a8198"
+ },
+ {
+ "version": "3.3.2",
+ "publishedAt": "2019-12-11T09:11:22.399Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.3.2.tgz",
+ "integrity": "sha512-LrZNgg+gEo+Spm3JmLCWEtIIWriVhI/8uHHs+8R47AbJNAKZ0XOFdGGHz1dxmHMnes6Z/yunxRyTVkV7psHt9g==",
+ "gitHead": "8ca17bf0ae26778c6f56460d9cf4ac62d7c131b9"
+ },
+ {
+ "version": "3.3.3",
+ "publishedAt": "2020-02-24T03:20:43.336Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.3.3.tgz",
+ "integrity": "sha512-A+rqMg5sF0T81diEo5WSNRqtVmchglQ2GLwjGmwso51ljeXgSXoZvmECDbzGfNufAoSgDMcGEzYciYtFwpkZRA==",
+ "gitHead": "13cc7ec64a0522b5aaa64aefd136746f5e539794"
+ },
+ {
+ "version": "3.4.1",
+ "publishedAt": "2020-02-27T09:05:17.871Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.4.1.tgz",
+ "integrity": "sha512-pi1GseRL/stC15fe+Y92wGtfehdSSjvm5LyZY9PfdIASJArSiE1HjnJgq52sL+YfzawA27SYPiSdxSwKCB/X2g==",
+ "gitHead": "cefbade4a0598ae8720b12f574ff21f72f6ab725"
+ },
+ {
+ "version": "3.4.2",
+ "publishedAt": "2020-02-28T01:17:46.475Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.4.2.tgz",
+ "integrity": "sha512-3zweihWJu3rvu6fmTkEaImb1zjm8pQ4tOzkfjHgW8MZ9Y5yCTSe8sfoyVFsQGodH8ggcy9AlLw2Uxj9Mb2GQbA==",
+ "gitHead": "3128e233da9ccb9efd3b0de19d318d4bc4ef9dfe"
+ },
+ {
+ "version": "3.5.1",
+ "publishedAt": "2020-03-21T23:37:20.195Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.1.tgz",
+ "integrity": "sha512-O5P+3T01oDBaZ8gwN0smGEiMchtJv4aRLkcaxwpUsuvb6Z/27jkDU4te2WpqxgY719SaPx65cF2QHzVSSX2yFA==",
+ "gitHead": "70002b7fb5d44fa8a039c515a7914918cd270b20"
+ },
+ {
+ "version": "3.5.2",
+ "publishedAt": "2020-04-14T04:59:52.878Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.2.tgz",
+ "integrity": "sha512-ekg+pmyHBqKSRpoOpccH8+/Y4y4zSr2eWGWPZPpINwanZ/dBEvXSj66nWc59V9XGEShsxVKihRQXa/C8m6LGAA==",
+ "gitHead": "687df9fd5eb3b273cb119f6eab96f8955b52c0a1"
+ },
+ {
+ "version": "3.5.4",
+ "publishedAt": "2020-04-27T03:45:40.254Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.4.tgz",
+ "integrity": "sha512-POWM8Rs7dx/7UI5FBG/pGjRmOGOx0wZ8n+nGOeMyEy09+mDXuLtJe7NqCESl1xMg0/nbJIars3DZaDR0DA+ofg==",
+ "gitHead": "824bd20e94167ff799ab79a7f71ecd2345e5873f"
+ },
+ {
+ "version": "3.5.5",
+ "publishedAt": "2020-05-20T09:15:57.873Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.5.tgz",
+ "integrity": "sha512-iZll/2WoshbWdKKfyGGntjMjGIODme10L4r4tb4p2mCtTp/qy4Vro91VHztsyVyiPjcqwAtwFKTB6/PgWWLQug==",
+ "gitHead": "22fa8d5379247dcb172874f1c314fe0cde5283ab"
+ },
+ {
+ "version": "3.5.8",
+ "publishedAt": "2020-05-21T02:21:47.534Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.8.tgz",
+ "integrity": "sha512-bFHNZUq0Cx93KU150eP/RLcNES+DOpJFl1Gtq1lBk7u+LZb1QAT+iOO/0ggwELc38+b3MT3+LQkJ5c4AKb0TWQ==",
+ "gitHead": "938b90f3a7e5ba91a94df43544fba05f431ee662"
+ },
+ {
+ "version": "3.5.9",
+ "publishedAt": "2020-05-29T14:06:45.883Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.9.tgz",
+ "integrity": "sha512-xw7WyBkgCDzh+2yjtWx9dwWIyoH6Yccvs1Efuj3HVT5/uI458BzyoTrL0naW5n1DwdqwWPjYUxsC4oyfbrB1cg==",
+ "gitHead": "65fd3fb9e62f88622d0519fd5c485df9275b5a09"
+ },
+ {
+ "version": "3.5.10",
+ "publishedAt": "2020-08-27T08:28:53.197Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.10.tgz",
+ "integrity": "sha512-gAxkhtBUiR/ws33SgoYp5u9oZYQyM2a6DhonzQypHN9w7BjC+l7niTys+ie+rtxe2itY+SYNLB/2VVqwcPLQLA==",
+ "gitHead": "a50c519896a75e9fc692931ff6add46660e7514a"
+ },
+ {
+ "version": "3.5.11",
+ "publishedAt": "2020-09-02T14:10:58.110Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.11.tgz",
+ "integrity": "sha512-OazyRA7tBiJeKl+0/ZmGUvVkQVjiu9jY4PQTiQnqSEnzv3xVezBozhQ+QsMAHSaGiLZRWvjqBoz1Gc/Q+fcAow==",
+ "gitHead": "35cb0398cfba9cbe69314f4d3adf0c5a02a3f0ad"
+ },
+ {
+ "version": "3.5.12",
+ "publishedAt": "2020-09-04T00:57:32.658Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.12.tgz",
+ "integrity": "sha512-WChxX6H/Z5XdnDJg3qG24ypInF0gbwjxZyWBGGpxRekSC7B9FI1/fOv/FEYIHm6VRI380Uract1Zfhpz1BMH0g==",
+ "gitHead": "0c841eca50f617a1b6f82b8ca40246a4335aad7b"
+ },
+ {
+ "version": "3.5.13",
+ "publishedAt": "2020-09-04T01:05:26.235Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.13.tgz",
+ "integrity": "sha512-3A8LejMEiPB21Ykip4Dp9w3k14kguVXMMYElFWi+88wi+LwHSeIYrcrz7X7EWvFHOi4F2NUHm5aCUMhfsXp7EA==",
+ "gitHead": "9ed4febf4cd09dee2f1db5b890018ef757335247"
+ },
+ {
+ "version": "3.5.14",
+ "publishedAt": "2020-09-04T14:41:01.237Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.14.tgz",
+ "integrity": "sha512-3uJ+aQrNcTmq5wHejVpr0J8aPNHLP574F1a9Pz8Lg76CmgIrZ4tv34q5ZfBwNjEwDQ2z/XHNjW6DsocdTGpP/Q==",
+ "gitHead": "53324bc43376613b845e5e69e03d3b137073e55f"
+ },
+ {
+ "version": "3.5.15",
+ "publishedAt": "2020-09-23T07:02:32.416Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.15.tgz",
+ "integrity": "sha512-WWksFSwNn1fV/aH1GSQNfzswZJ5DPezyzMenM94MG9ART0I24Rp07orWgNNyaELvv9OAT0EAqcPU82rfF0NVPQ==",
+ "gitHead": "6b9e0b3c42b4797287a930764a206a98803ed592"
+ },
+ {
+ "version": "3.5.17",
+ "publishedAt": "2020-10-18T06:50:21.219Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.17.tgz",
+ "integrity": "sha512-AP2j5bhq4jHt3nh755UU5LbPLIYZBDijF3lb99mMEbVtbOD2eHEDa5/hE+MXagpXawk8yZPayBRRY6fiIcagKQ==",
+ "gitHead": "debec4e4abfd9b270504422833a8f40875c3f09b"
+ },
+ {
+ "version": "3.5.18",
+ "publishedAt": "2020-11-07T14:19:31.901Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.18.tgz",
+ "integrity": "sha512-D7RM0PfanBKPdHS9mOb9ou5GMpm+hO3T4OiLywpv/CVk7bvOJj8ainrGOmDVYUge69dwujb8E+aV27Iy8eEIHg==",
+ "gitHead": "4c9b3b966c9c9b71f393fc8af4a0d0b62f764bf8"
+ },
+ {
+ "version": "3.5.19",
+ "publishedAt": "2020-11-09T13:32:17.049Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.19.tgz",
+ "integrity": "sha512-aKXutmjc+OyxDl6riDCDEpVAqYtAupiVLf86BnuE+hb9KmuYWWHUhtdgbvt00O1Ty6DWlwcHVp1vEbk4ZW1Kcg==",
+ "gitHead": "803cd862f5431949aa9db0d7f239a20efce0408e"
+ },
+ {
+ "version": "3.5.20",
+ "publishedAt": "2020-11-21T00:43:09.828Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.20.tgz",
+ "integrity": "sha512-Ar4WNFW8OZ4A/uE1P9vEPEbcDALLLf83+mDTWHtig5ozAD8xvLLRjAgSF5tagF5lttU1mVJhcZ0Ymi2mcuHkhA==",
+ "gitHead": "7dbe1ae929dd6318a57a25de153f9cc6453a7997"
+ },
+ {
+ "version": "3.5.21",
+ "publishedAt": "2020-11-22T13:22:03.454Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.21.tgz",
+ "integrity": "sha512-cIat8z9rWduZBSLr+Xo0OqDC3+I/Sy1t1fvVVTM8d9CaVhT7Som8eFGakJgnRIt91mO46176SCP1d+/tudUnTw==",
+ "gitHead": "360c3179aea73295efdb4bd1b266f9243b36d865"
+ },
+ {
+ "version": "3.5.22",
+ "publishedAt": "2020-11-23T12:29:08.531Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.22.tgz",
+ "integrity": "sha512-YoDStxZyUk5FvUNzjgGn/bIspfpnVZ/zsQkzIgPRRSEuCfZ3oEXBX/5kR0rRH6ywWE07AOwYHzuzt2fDW8PUgw==",
+ "gitHead": "39819c5b46592c32cb327ae8c20b03bcc929703a"
+ },
+ {
+ "version": "3.5.23",
+ "publishedAt": "2020-11-24T00:03:13.815Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.23.tgz",
+ "integrity": "sha512-iU2l4R+7rjC1c+rZhVV6DEq2fHYviskb9YwIyLI++y9iSPoSQk1LSZpQava56dFSRTs/lel8caXhc2diOz9mcg==",
+ "gitHead": "ed03008bc96b6f30a0dfe09fd96130d2c97bfc39"
+ },
+ {
+ "version": "3.5.24",
+ "publishedAt": "2020-11-24T06:11:19.002Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.24.tgz",
+ "integrity": "sha512-x4WBWQwweXZhzlE6hgYWj1gYoAtX/Hyixg96Zt7YJW/lXeCi8DQ64lnI1prDsj4Emv6OoghFplP5aHIHPySgUA==",
+ "gitHead": "f414b9d9a4ea81adf784746afec90951220520d0"
+ },
+ {
+ "version": "3.5.26",
+ "publishedAt": "2020-12-01T04:01:15.607Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.26.tgz",
+ "integrity": "sha512-GN4WVGdYN4k2goxe3QE16M7nDsN1ownXnNEZIEu+bQc2ch2NBpOxnHhOGHFKXQZgdXmCLgIgVybCG6qc0pfQyg==",
+ "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee"
+ },
+ {
+ "version": "3.5.27",
+ "publishedAt": "2020-12-17T07:34:56.593Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.27.tgz",
+ "integrity": "sha512-dfUCw0AwXlDY3ZBxf8ONoUbinTn8p3CZxEviqJphoNDf2uXQSqbQjbDA/q7iJzz3RX/uxmle9yPvAzpFXCPHqw==",
+ "gitHead": "36d6bf942276d86e104c6eea490613be4090f955"
+ },
+ {
+ "version": "3.5.28",
+ "publishedAt": "2021-05-06T05:10:51.204Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.28.tgz",
+ "integrity": "sha512-99YgGuS780zS2xUs8FdGf9bQhpKxufsJDBzAbSg6U5M87/4U3z2FarVVnvirkBDy4lBI4ugplCuzQkN51pDy4A==",
+ "gitHead": "8550cabe48f292ff369f37f1f7c24090b9b8a3bf"
+ },
+ {
+ "version": "3.5.29",
+ "publishedAt": "2021-05-11T02:37:33.712Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.29.tgz",
+ "integrity": "sha512-6TIyvNR655ZPf4niq20cHlysBLk+EZ7I2CaeGcQQ4cECNkjphORPU1HVx5iPnwJBpeb3A4hHbSKc/w7Q9bpVyw==",
+ "gitHead": "20a5fff0f61582d6262b2540036e295168a991fb"
+ },
+ {
+ "version": "3.5.30",
+ "publishedAt": "2021-05-20T01:39:20.867Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.30.tgz",
+ "integrity": "sha512-N1WaGGGNRAJX7Gk6ZqZSDDvPVSR7SrK6xqNYJMkdXIsw81mOszTm//Bj8ehHOJOvksCjM2Mp5jyWr/CXwrSGXA==",
+ "gitHead": "5d9de9eea9c63654e0c30701739984fc97e96150"
+ },
+ {
+ "version": "3.5.31",
+ "publishedAt": "2021-11-01T01:38:02.660Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.31.tgz",
+ "integrity": "sha512-rOdX2ujuCi/IX3lmsnXob1eAdd2x3UyemcC2uAUUD83St0nwcQvt27Kvme6M5/zQsEo3LzE7iesIsx3LeMvWpA==",
+ "gitHead": "af1a116a31b088efdd77afa81c4b6565d12bd162"
+ },
+ {
+ "version": "4.1.0",
+ "publishedAt": "2022-01-07T15:40:41.904Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.1.0.tgz",
+ "integrity": "sha512-01x6RoHTDKhN0BcXoHX6AkTN2KA57EipHljEfcuQSQGmo43v3J7PeWLUyArmSVMz8B3beLpPp3ATt4ytobudHw==",
+ "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee"
+ },
+ {
+ "version": "4.3.0",
+ "publishedAt": "2022-02-12T01:35:20.007Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.0.tgz",
+ "integrity": "sha512-rWFx5I7IJYKaggcWVG/u0K6T1/C1qTNiO4DKMOIvSJNYzn11wLtp9vknyP3GVkbJ2M9PTcPfpZElcsbDxbuXcA==",
+ "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee"
+ },
+ {
+ "version": "4.3.12",
+ "publishedAt": "2022-04-30T01:15:52.090Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.12.tgz",
+ "integrity": "sha512-vrzTfoqOrA3GmtOezNT+Ssd3/l6zDoKKTGz+VEhK++sPzARycDJHvAySuBt3dV918obzf3cEhOWVznR72iwI9g==",
+ "gitHead": "2979fc49bcb793462227c8b1421f3f4161efb42d"
+ },
+ {
+ "version": "4.3.13",
+ "publishedAt": "2022-04-30T09:57:51.833Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.13.tgz",
+ "integrity": "sha512-UggG9cZ6oErJ7fVUkmalW3XEmogDssjBQfy5km1GCxWidQo0Y1vpa61j/qyq7qNWOliaDPZyT0e4YWOpEKBoWA==",
+ "gitHead": "def8c6df464a79bba813c5a0d16110a8cdf106de"
+ },
+ {
+ "version": "4.3.14",
+ "publishedAt": "2022-05-01T07:20:28.804Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.14.tgz",
+ "integrity": "sha512-zzfAXq/MpqrG32h3yWluhB8vPzj5bj0PX3oMW5sBC9gZ2m0lbTaG0pqQB8FOu4AFkKYlNXGzEgRH2BsCQZjXww==",
+ "gitHead": "9b153ff0dd286a6e8237be3cfeff7f09b8b9ee17"
+ },
+ {
+ "version": "4.3.15",
+ "publishedAt": "2022-05-01T08:52:01.580Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.15.tgz",
+ "integrity": "sha512-ze3l9HMtUVGAYC5+nviClrr01YMYc51R6CQK7WYpxeSBmm5DLyu6jBYn+R0le1ME8ba+xkiRbjpCJZyaCDtL9Q==",
+ "gitHead": "de8d7ec999a059e14e8dde21d8237b141f36d5d1"
+ },
+ {
+ "version": "4.3.16",
+ "publishedAt": "2022-05-01T09:59:57.504Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.16.tgz",
+ "integrity": "sha512-0pQlKG91/94h+Q9VSEp2SoDLjmMk9mQ2r5klXVUCYb/mAh+0l1WGEpRHYqYxzVL8wMsiE8mA4P3g6X+yunIvTg==",
+ "gitHead": "49337a3e3fd6f3ca1facd2e427814edea3f6f9b4"
+ },
+ {
+ "version": "4.3.17",
+ "publishedAt": "2022-05-01T16:22:48.948Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.17.tgz",
+ "integrity": "sha512-GITm0XR5sPUTh7Idhkd6CdD+C+YDvwhLf/zr71NXEV54cYVzYqDM+Iqc5oqtIWQcdHXyUAY/s66MVcaon1U96A==",
+ "gitHead": "7bcc296fc29679d0d17ae6e36917eed4360e1b21"
+ },
+ {
+ "version": "4.3.18",
+ "publishedAt": "2022-05-01T16:52:12.821Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.18.tgz",
+ "integrity": "sha512-dWpjiwFVgiWkxsj8eM5OnkmihAoN82cIeNzSfLgfNtsY4fxkSuA7WdPoHC5CRjh16d4xiMXEM4gDdxRhDjrTKw==",
+ "gitHead": "992803e10c9082132c8b67dd29477b1e23d8395e"
+ },
+ {
+ "version": "4.3.19",
+ "publishedAt": "2022-05-01T23:03:05.740Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.19.tgz",
+ "integrity": "sha512-saszt5l+p2gDe6itoiVt6jWola9vUp3ugTkR4xjr7RCwxKRa3QlO4nbhWBJPcJavMwX7dFNzJc+V7CGFeZVsrA==",
+ "gitHead": "526096bef38df1d761fd0176633e9041fe7b6abe"
+ },
+ {
+ "version": "4.3.21",
+ "publishedAt": "2022-05-03T03:51:47.202Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.21.tgz",
+ "integrity": "sha512-IG/NKaHxtJuKqWXTZS8CiOTRJxAWHhXwdOdmTTjPtA1IoqBsSDnpnYQ9ivDje24Oza5zJJZFnNJoci5RDRgArg==",
+ "gitHead": "c3e5afe4d31f493ec1db96b919bef5199445abc3"
+ },
+ {
+ "version": "4.3.22",
+ "publishedAt": "2022-05-03T04:03:30.082Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.22.tgz",
+ "integrity": "sha512-ug6tNecs5vSFNHB4EasPGFBAsAWZEVirzt3ZOc1GSILtIc4DJu2l3TDY3vKjHm65BFKBVtFMIDn+ORGwo5kgew==",
+ "gitHead": "21d4a50c543f6423aba3fb02fe8f50f4cf258292"
+ },
+ {
+ "version": "4.3.23",
+ "publishedAt": "2022-05-03T04:11:20.812Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.3.23.tgz",
+ "integrity": "sha512-l9pkQKZZ9az2vWgBuc0dM2wRSSve8JOnV1RinOOO1LNhLdK9xubSP15ILBjDZgSGozTrBvRxWaiD4Z3hBhNORw==",
+ "gitHead": "9d31e8d6e053f2187469ac0ff402f8b3b7bfb8bd"
+ },
+ {
+ "version": "4.4.0",
+ "publishedAt": "2022-05-14T15:24:01.249Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.0.tgz",
+ "integrity": "sha512-oIUMHOJYsTjUlGwniVE3CmnwlpXr1uvy5SkdGjXVIhEbZq6k2wF7KDzRURrfteb0b7AHb3yn9ilfNtO6o8G/Yg==",
+ "gitHead": "9c623b7fd751b9c49d63345e93d64c2f8d26c1ad"
+ },
+ {
+ "version": "4.4.1",
+ "publishedAt": "2022-05-17T07:50:24.214Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.1.tgz",
+ "integrity": "sha512-Il50h+KF8Aw+APEh3wF8WTgvZMBj8QYYfcuFy67FiS1qxp6SSQqyaCUpgT8mZO3jvjvd1krjpqpREqYredv3ew==",
+ "gitHead": "0eb07c22f2166587f475eafcb29e58ee4d8a3079"
+ },
+ {
+ "version": "4.4.2",
+ "publishedAt": "2022-05-20T10:13:30.337Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.2.tgz",
+ "integrity": "sha512-h0QZCNs8QgKIMi/gItv9kMPsZOki4Cevmlv1h36eQWBnlvBRUNYYJICHRBLKYZDEC+YC0KTB7vjBoFvhpNR/Ww==",
+ "gitHead": "6d638b398329033f7ed56a9bc0cf40e5c8479dfb"
+ },
+ {
+ "version": "4.4.3",
+ "publishedAt": "2022-05-26T05:37:27.450Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.3.tgz",
+ "integrity": "sha512-jo0KSqLGHZSglUKqwwqqSXeQvVCRgD6mKDtduKcqN+F34O96+hsQ/4UpI5r1udQuHq8DxTKfiLfj9It/2n4noQ==",
+ "gitHead": "d716c31af53f07536d4910ab69146603804d06cf"
+ },
+ {
+ "version": "4.4.6",
+ "publishedAt": "2022-06-11T06:18:33.153Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.6.tgz",
+ "integrity": "sha512-Q5LWMwzdtFF/SmRQzjD8itMG6v/VghOmHiUe0WM3mnuKRZCS6H4wWsE3dCp95UTPY9GxaRmq0t5T2miVc6/1oQ==",
+ "gitHead": "064841f5558e4dbe6445cf11c15e597d274db364"
+ },
+ {
+ "version": "4.4.7",
+ "publishedAt": "2022-06-12T12:15:21.352Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.7.tgz",
+ "integrity": "sha512-XBrU6grfOQThdo+Sj6luupPasHq194yWHOSqj6uva5vr7ZVDbe/q6lHpFAs8zSZ//SEHo+xo33i6yAVCLPo/jQ==",
+ "gitHead": "1a638c490a28e514d628259734d0694071923c6e"
+ },
+ {
+ "version": "4.4.8",
+ "publishedAt": "2022-06-13T05:27:30.402Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.8.tgz",
+ "integrity": "sha512-l7a20i19emzHP//R1UQ4lbkmCbVBEbBazCtHSxUq3H7Pj32Rfft9Tc5afrG5uJEvtkxDKDSBdBavrmwh5aM64w==",
+ "gitHead": "dce698a64896c21bdd4cce5e6057ee023725d741"
+ },
+ {
+ "version": "4.4.10",
+ "publishedAt": "2022-09-19T02:02:57.531Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.10.tgz",
+ "integrity": "sha512-NMfpkwsp4kxDKd4VuEMGnpkavllJZysyReIF09LEnRCr3D72R1f22byG5y7tcdSNRr/9I/bRCyfXioTn326cPw==",
+ "gitHead": "0b0aad78a56c024f00924c95f259bd545c29f196"
+ },
+ {
+ "version": "4.4.11",
+ "publishedAt": "2022-10-11T02:48:34.632Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.11.tgz",
+ "integrity": "sha512-/4F8IyB29Bdr1LV1RM3FM7CdiAMsVNOOJ/HY4jaJCXnMAKThQiGa++0PhCJ07nhyGvDcZGRL2/UWJRz9zZJFNw==",
+ "gitHead": "e0351a7b930033307d4efd77e9b07a1d5be3e665"
+ },
+ {
+ "version": "5.0.0",
+ "publishedAt": "2023-04-23T10:14:05.436Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.0.0.tgz",
+ "integrity": "sha512-swnnTIHnwyAft4Pbh7uQtzjNNhqoiMffuEvZ3eUkMfFGWOEjoZ23TQ7rqXXY08iGJTIWt4Rn7iqUS5DdKsHy9g==",
+ "gitHead": "08ff3dd19d24fbbc62b900f19a91aba08e1bf9f6"
+ },
+ {
+ "version": "5.0.1",
+ "publishedAt": "2023-05-03T03:59:57.685Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.0.1.tgz",
+ "integrity": "sha512-b6/Y4/+X0rNmnqS5+zzQgow+WW4iVT8eFv4LAUzJgIyORIcf5Gn00Dy0PZ+kwGb1VJy0CUCRK6gVVvh0tWsRAg==",
+ "gitHead": "8ff35b5f6f74e607e4d22d085252e837cfd9cd98"
+ },
+ {
+ "version": "5.1.0",
+ "publishedAt": "2024-05-31T23:18:54.995Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.0.tgz",
+ "integrity": "sha512-F2dGt8nmSrAkGGNoKErrPipNqW8OueTYsE/Yh8Cze8oSWSHpXnaZbhqkg5ZFtLCNp85/MHrU0OUv3+D4wKmYGA==",
+ "gitHead": "d86840749b12718d6ce016848e691dbde33db477"
+ },
+ {
+ "version": "5.1.1",
+ "publishedAt": "2024-06-02T11:51:28.874Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.1.tgz",
+ "integrity": "sha512-5A0j9pjKZI5hy5q2zk94shty4LoKdQgdUjlAfgiK9AgcfBv6EZE0itYNwoYzTMYJhSWmZ4CTDxpePXGMV261wQ==",
+ "gitHead": "41cdde4b7901b0d63bb9c28b6d8d1a042250705b"
+ },
+ {
+ "version": "5.1.2",
+ "publishedAt": "2024-06-05T01:17:30.526Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.2.tgz",
+ "integrity": "sha512-r1+CTzKQlKsMEKglORMKkZWKYBKN2PDZnvurZKH52n6un5Zkgw2ibQnbCvWzsgJ8IdIt2jrufiMq020BXXPwMQ==",
+ "gitHead": "403be5dc6b1d88291353413b37e5927808449a9e"
+ },
+ {
+ "version": "5.1.3",
+ "publishedAt": "2024-06-12T13:48:43.333Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.3.tgz",
+ "integrity": "sha512-jHj1hRPKHGvB/Vh0m96O80Cq9UGp5WjGw6PZwnEafrcc3CqTbJhewWS5jqb7qRWkTgfJXWBty/u1lMagUeoIrA==",
+ "gitHead": "665348ad5575d9422aa886ce07358159601163ac"
+ },
+ {
+ "version": "5.1.4",
+ "publishedAt": "2024-06-13T03:13:28.713Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.4.tgz",
+ "integrity": "sha512-f2gJ9HsvSmOwg6UdNcWCUkSI6WmfkTiQKVDWr+pRJF9jQ2wK8c4YjNJ11SY63H5OGlaJBSvWWyNVdFHOX7pUbg==",
+ "gitHead": "b4e31219173e0e045cdfdec2295b13c870505ff0"
+ },
+ {
+ "version": "5.1.5",
+ "publishedAt": "2025-01-19T09:34:27.588Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.5.tgz",
+ "integrity": "sha512-iFjdXVbkw5FbkB98SOwMPQEFJp7k6Io4nHfehpSdCc7Eo1gkmjNShOT6dAtAH1kLMHjh38vRnf/oYwCvTKkVOw==",
+ "gitHead": "fae71811db4a1f6999690d527aa1c715266cb32c"
+ },
+ {
+ "version": "5.1.6",
+ "publishedAt": "2025-04-20T01:35:48.740Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.6.tgz",
+ "integrity": "sha512-3JufaEvxI0bTR74vxLU7K9F9OLmR3yrDFqeflV0T0QWedabassX5hsl0AyNNcjVkfdm3A5s1YC0icdtiFZA1Ig==",
+ "gitHead": "2aaef7db45e04d11e886f9bb59cb22c5a458b2f3"
+ },
+ {
+ "version": "5.1.7",
+ "publishedAt": "2025-08-01T01:37:35.518Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.7.tgz",
+ "integrity": "sha512-lnfPQlzRzG16/UOLr4OjYVHTwka2SeEbmAHANxAR02rwSTBVfmqTi/OATccvuXtXwaCCF+Oik9XKQAvkhsAUXQ==",
+ "gitHead": null
+ },
+ {
+ "version": "5.1.8",
+ "publishedAt": "2025-08-01T07:32:20.976Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.8.tgz",
+ "integrity": "sha512-J9kUtU46/07ZckvmfFDwfJRJDLD7UIfrWVutc7EqDCkUModArOISifXkD27/R2ruIpfAJk6HxOfB0cQfvjbZCQ==",
+ "gitHead": "ea392e0d60bcdbbde498080be12e7f4f93944b0a"
+ },
+ {
+ "version": "5.2.0",
+ "publishedAt": "2025-09-06T05:34:27.583Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.2.0.tgz",
+ "integrity": "sha512-iHHSGEc0J+gl7imX4nmLqqC7LXmv8xeGf2lUevhhyUCoiCRZplecpKQICHjErVb1Yqyp1xCy6Sp8eYN+EpFWFw==",
+ "gitHead": "18475f08fd7ad22f4dca3e2167a670d27bfdff09"
+ },
+ {
+ "version": "5.3.0",
+ "publishedAt": "2026-03-12T14:19:00.425Z",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.3.0.tgz",
+ "integrity": "sha512-a76bU1cWEZr53hD1X8IHfOzS4QawGHn8dQ3fIYyJ5TsyhTSnznhi2WzkS8M7LL3H02ekXRZTUFan9+9EERk12g==",
+ "gitHead": "daf133b22630b4a0eecfa3336bbddab0e9119d96"
+ }
+ ],
+ "scope": "Live npm metadata plus downloaded archive hashes; registry signatures and publisher authorization were not independently verified."
+ },
+ "release": {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.3.0",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.3.0.tgz",
+ "integrity": "sha512-a76bU1cWEZr53hD1X8IHfOzS4QawGHn8dQ3fIYyJ5TsyhTSnznhi2WzkS8M7LL3H02ekXRZTUFan9+9EERk12g==",
+ "sha256": "1abb76460790d85a26590b8b911eb1301fd720885f96c73432060416a38dcb0e",
+ "publishedAt": "2026-03-12T14:19:00.425Z",
+ "registryGitHead": "daf133b22630b4a0eecfa3336bbddab0e9119d96",
+ "files": {
+ "package/README.md": "5a7bff740434fdb92d97d11b7a9f45fc1265a475112b898b50567937765a21f1",
+ "package/dist/artplayer-plugin-danmuku.js": "7c8749288711ef97e80b6f9f00981170aa73f62a8ae25d6d663749a4aef62a8f",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "62db96685c48b8573f0480cead6ac934b1d0382b9fdd0046d17d15d2549c56dc",
+ "package/dist/artplayer-plugin-danmuku.mjs": "083d7de2f9a0314955dc83cdeedbc46c36728f7c9a0943ada8c3229edf9264ce",
+ "package/package.json": "6e9b642cda22728631f71b3121b9dcae9f979c6eebb4b6d555d723b71cde9a50",
+ "package/types/artplayer-plugin-danmuku.d.ts": "006c3e2d22425b936d6d09bf5138b0ae13c4cfffd0a571d03722c17137dbe99c"
+ },
+ "manifest": {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.3.0",
+ "description": "Danmuku plugin for ArtPlayer",
+ "author": "Harvey Zhao ",
+ "license": "MIT",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ],
+ "exports": {
+ ".": {
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "import": "./dist/artplayer-plugin-danmuku.mjs",
+ "require": "./dist/artplayer-plugin-danmuku.js"
+ },
+ "./legacy": {
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "import": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "require": "./dist/artplayer-plugin-danmuku.legacy.js"
+ }
+ },
+ "main": "./dist/artplayer-plugin-danmuku.js",
+ "module": "./dist/artplayer-plugin-danmuku.mjs",
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "browserslist": "last 1 Chrome version"
+ },
+ "entrypoints": {
+ "main": "./dist/artplayer-plugin-danmuku.js",
+ "module": "./dist/artplayer-plugin-danmuku.mjs",
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": {
+ ".": {
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "import": "./dist/artplayer-plugin-danmuku.mjs",
+ "require": "./dist/artplayer-plugin-danmuku.js"
+ },
+ "./legacy": {
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "import": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "require": "./dist/artplayer-plugin-danmuku.legacy.js"
+ }
+ }
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "daf133b22630b4a0eecfa3336bbddab0e9119d96",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "86c62cc56b7d634aa90b161f15d0a3a0002b33a5cf2afe316040922edc81576d",
+ "version": "5.2.1"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "daf133b22630b4a0eecfa3336bbddab0e9119d96",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "862f3697876fe915dd0ada178da766ce823aae7563ed30b3e5b11b811202929c",
+ "version": "5.3.1"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "5a7bff740434fdb92d97d11b7a9f45fc1265a475112b898b50567937765a21f1",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "5c43532cf909238e0614e3eeee13146c6e1b117443e8bce54207636590b8fc74",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "0bffd5d99a55025f707683487059e3be06a60a9cb55915e69907fce24eb0de55",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs",
+ "sha256LF": "1ca59efa03a01e9fc7d16325a4563bc884839181f9c5bf1a68a7085c742d5cbd",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "86c62cc56b7d634aa90b161f15d0a3a0002b33a5cf2afe316040922edc81576d",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "006c3e2d22425b936d6d09bf5138b0ae13c4cfffd0a571d03722c17137dbe99c",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ "previous": [
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.2.0",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.2.0.tgz",
+ "integrity": "sha512-iHHSGEc0J+gl7imX4nmLqqC7LXmv8xeGf2lUevhhyUCoiCRZplecpKQICHjErVb1Yqyp1xCy6Sp8eYN+EpFWFw==",
+ "sha256": "8fe9e7b088eff985a269fe03f60a97f40b6bfec89fbf1fa9cdacbff9cd5ca07f",
+ "publishedAt": "2025-09-06T05:34:27.583Z",
+ "registryGitHead": "18475f08fd7ad22f4dca3e2167a670d27bfdff09",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "c4b7c1631ec78047d421da409ca10201fe11491d0f7c180eca8ed3c27dc14a6a",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "8685fcb120ee9d908f48cb7949b4ce8cf4e301b175a774b29ad3539cf9feacd1",
+ "package/dist/artplayer-plugin-danmuku.mjs": "9deda143957412832cfec7766049f244a75edab2085027337da5f43ed2c3665e",
+ "package/package.json": "497bcdf4c1eea225ce82d3afb7e21e0468a5a94fa6efe9bb654d063ae2910ceb",
+ "package/types/artplayer-plugin-danmuku.d.ts": "006c3e2d22425b936d6d09bf5138b0ae13c4cfffd0a571d03722c17137dbe99c"
+ },
+ "manifest": {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.2.0",
+ "description": "Danmuku plugin for ArtPlayer",
+ "author": "Harvey Zack ",
+ "license": "MIT",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ],
+ "exports": {
+ ".": {
+ "import": "./dist/artplayer-plugin-danmuku.mjs",
+ "require": "./dist/artplayer-plugin-danmuku.js",
+ "types": "./types/artplayer-plugin-danmuku.d.ts"
+ },
+ "./legacy": {
+ "import": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "require": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "types": "./types/artplayer-plugin-danmuku.d.ts"
+ }
+ },
+ "main": "./dist/artplayer-plugin-danmuku.js",
+ "module": "./dist/artplayer-plugin-danmuku.mjs",
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "browserslist": "last 1 Chrome version"
+ },
+ "entrypoints": {
+ "main": "./dist/artplayer-plugin-danmuku.js",
+ "module": "./dist/artplayer-plugin-danmuku.mjs",
+ "types": "./types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": {
+ ".": {
+ "import": "./dist/artplayer-plugin-danmuku.mjs",
+ "require": "./dist/artplayer-plugin-danmuku.js",
+ "types": "./types/artplayer-plugin-danmuku.d.ts"
+ },
+ "./legacy": {
+ "import": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "require": "./dist/artplayer-plugin-danmuku.legacy.js",
+ "types": "./types/artplayer-plugin-danmuku.d.ts"
+ }
+ }
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "18475f08fd7ad22f4dca3e2167a670d27bfdff09",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "db3f07f3ea12d5a48ea0aea076341205b709218c1f3342806cafef9e903ff2e5",
+ "version": "5.1.9"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "18475f08fd7ad22f4dca3e2167a670d27bfdff09",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "fbadd47595d282efdfddfb3fe0b8470c2fe12319a7737a6abd77fd7155ba4f7a",
+ "version": "5.3.0-beta.3"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "7c2e12c65ea70d81255b179766d8066a2020699aee5278686fa422700b610604",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "64759f088e0932d5641212f1e3ea9f4e432481ccfb79ccf0056c3aa8fd1ec815",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs",
+ "sha256LF": "f75730e9cfb8351d97141159da9aa2f58943b3524b81f95800ccf5e016c956f9",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "db3f07f3ea12d5a48ea0aea076341205b709218c1f3342806cafef9e903ff2e5",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "006c3e2d22425b936d6d09bf5138b0ae13c4cfffd0a571d03722c17137dbe99c",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.8",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.8.tgz",
+ "integrity": "sha512-J9kUtU46/07ZckvmfFDwfJRJDLD7UIfrWVutc7EqDCkUModArOISifXkD27/R2ruIpfAJk6HxOfB0cQfvjbZCQ==",
+ "sha256": "c9250da97d6037b8aab573f66fc688457fa5b7a18dfcd1e0e5435e7db60d8a4f",
+ "publishedAt": "2025-08-01T07:32:20.976Z",
+ "registryGitHead": "ea392e0d60bcdbbde498080be12e7f4f93944b0a",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.esm.js": "9a73ecf33dbcd79c7e46d568bdc4b23906644b24e94217b04ce8bf7937e262c1",
+ "package/dist/artplayer-plugin-danmuku.esm.js.map": "7fc1be26f9189cca9021979e4d5b2de925542bc845e802fa37ecf4da2b9fca90",
+ "package/dist/artplayer-plugin-danmuku.js": "0b9464ba631abca9e28c21ba1183bb2a8b23d77c18200648cb82ec512ab100a2",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "b736df345b4ed5690a52932a97d577421ca7898aa3b69d9763179c2cdbf654cd",
+ "package/package.json": "03d67e975e41f9b2818cac2fc5ac82c95b4f49982d2ad42b11ca28c364b0d8d0",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "877b5c2ddee26c26cdc8f328f12e69db15c2f4ff4165960a4b8c61867acdcca0",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "f05eb5cbdbb8cadd0fe05ea68218ed5c57a5381a069018e71ac4282acdcf7e80",
+ "package/src/style.less": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.8",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "ea392e0d60bcdbbde498080be12e7f4f93944b0a",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "dcebd3c41191b94ac20aaf5445a694eec4417a48a8252f86c3d80a818340e5ef",
+ "version": "5.1.7"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "ea392e0d60bcdbbde498080be12e7f4f93944b0a",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "6952d6e7d603106d6fe66cf7fdf119cd4fa77361144bb62a20a6e11ef89fb75d",
+ "version": "5.2.4"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js",
+ "sha256LF": "0162bf80b8d1e6eb4350a5d9d5fecf7ce93ab73af2acc3929d76387eadab9e67",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.esm.js.map",
+ "sha256LF": "7fc1be26f9189cca9021979e4d5b2de925542bc845e802fa37ecf4da2b9fca90",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "9d796ce67e7e30c4be7ad2c8d879511b4fcde5436723b6b93f8d27593a8ec554",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "16eb50bba4d20b53fe9fe71c2daf1dff93409f43bc67862aa49c4a80757800b1",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "dcebd3c41191b94ac20aaf5445a694eec4417a48a8252f86c3d80a818340e5ef",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "877b5c2ddee26c26cdc8f328f12e69db15c2f4ff4165960a4b8c61867acdcca0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "f05eb5cbdbb8cadd0fe05ea68218ed5c57a5381a069018e71ac4282acdcf7e80",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.7",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.7.tgz",
+ "integrity": "sha512-lnfPQlzRzG16/UOLr4OjYVHTwka2SeEbmAHANxAR02rwSTBVfmqTi/OATccvuXtXwaCCF+Oik9XKQAvkhsAUXQ==",
+ "sha256": "cfe47e5aab9d20422a4216b4dc153c3a6e32e17b2bdd9c06d7c9419a68581a6c",
+ "publishedAt": "2025-08-01T01:37:35.518Z",
+ "registryGitHead": null,
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.esm.js": "0162bf80b8d1e6eb4350a5d9d5fecf7ce93ab73af2acc3929d76387eadab9e67",
+ "package/dist/artplayer-plugin-danmuku.esm.js.map": "7fc1be26f9189cca9021979e4d5b2de925542bc845e802fa37ecf4da2b9fca90",
+ "package/dist/artplayer-plugin-danmuku.js": "9d796ce67e7e30c4be7ad2c8d879511b4fcde5436723b6b93f8d27593a8ec554",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "16eb50bba4d20b53fe9fe71c2daf1dff93409f43bc67862aa49c4a80757800b1",
+ "package/package.json": "dcebd3c41191b94ac20aaf5445a694eec4417a48a8252f86c3d80a818340e5ef",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "877b5c2ddee26c26cdc8f328f12e69db15c2f4ff4165960a4b8c61867acdcca0",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "f05eb5cbdbb8cadd0fe05ea68218ed5c57a5381a069018e71ac4282acdcf7e80",
+ "package/src/style.less": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.7",
+ "name": "artplayer-plugin-danmuku",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "module": "dist/artplayer-plugin-danmuku.esm.js",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "exports": {
+ "import": "./dist/artplayer-plugin-danmuku.esm.js",
+ "require": "./dist/artplayer-plugin-danmuku.js",
+ "default": "./dist/artplayer-plugin-danmuku.js"
+ },
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": "dist/artplayer-plugin-danmuku.esm.js",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": {
+ "import": "./dist/artplayer-plugin-danmuku.esm.js",
+ "require": "./dist/artplayer-plugin-danmuku.js",
+ "default": "./dist/artplayer-plugin-danmuku.js"
+ }
+ },
+ "registrySourceManifest": {
+ "status": "registry-gitHead-absent",
+ "file": "packages/artplayer-plugin-danmuku/package.json"
+ },
+ "historicalCore": {
+ "status": "registry-gitHead-absent",
+ "file": "packages/artplayer/package.json"
+ },
+ "registrySourceComparison": []
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.6",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.6.tgz",
+ "integrity": "sha512-3JufaEvxI0bTR74vxLU7K9F9OLmR3yrDFqeflV0T0QWedabassX5hsl0AyNNcjVkfdm3A5s1YC0icdtiFZA1Ig==",
+ "sha256": "8e2f7b135e01ba4af022ba098e6584fc2c33e8629627641285fda8674e90fb9b",
+ "publishedAt": "2025-04-20T01:35:48.740Z",
+ "registryGitHead": "2aaef7db45e04d11e886f9bb59cb22c5a458b2f3",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "5e57041111c11b7378a40453d2aa3c64cfbc7dcbaa809917eb1b3e523a15ac24",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "c6c384adb53d31b5fa88ac0badfec5a145cddf6b8af494aa3add1ce1b0164ce9",
+ "package/package.json": "8fc534301cd843ea767b546d45c0329e8539d42c708379052494b62bb0f3dc4c",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "66bd17ac9dee79e192a2bcc2c0e5f7247dbf676b7a96929f0abde0944d40bd8c",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "f05eb5cbdbb8cadd0fe05ea68218ed5c57a5381a069018e71ac4282acdcf7e80",
+ "package/src/style.less": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.6",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "2aaef7db45e04d11e886f9bb59cb22c5a458b2f3",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "8fc534301cd843ea767b546d45c0329e8539d42c708379052494b62bb0f3dc4c",
+ "version": "5.1.6"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "2aaef7db45e04d11e886f9bb59cb22c5a458b2f3",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "59b29c249778ee2ab4fc603a35e5de1509bad5104565315fcfdcb7a5e30944a9",
+ "version": "5.2.2"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "5e57041111c11b7378a40453d2aa3c64cfbc7dcbaa809917eb1b3e523a15ac24",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "c6c384adb53d31b5fa88ac0badfec5a145cddf6b8af494aa3add1ce1b0164ce9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "8fc534301cd843ea767b546d45c0329e8539d42c708379052494b62bb0f3dc4c",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "66bd17ac9dee79e192a2bcc2c0e5f7247dbf676b7a96929f0abde0944d40bd8c",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "f05eb5cbdbb8cadd0fe05ea68218ed5c57a5381a069018e71ac4282acdcf7e80",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.5",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.5.tgz",
+ "integrity": "sha512-iFjdXVbkw5FbkB98SOwMPQEFJp7k6Io4nHfehpSdCc7Eo1gkmjNShOT6dAtAH1kLMHjh38vRnf/oYwCvTKkVOw==",
+ "sha256": "6140f7edbe16a8bae0bff1c287bf8e1db01a4942075222a6d8a9150021f6ec86",
+ "publishedAt": "2025-01-19T09:34:27.588Z",
+ "registryGitHead": "fae71811db4a1f6999690d527aa1c715266cb32c",
+ "files": {
+ "package/README.md": "16f81e764780afe2b56f572f35af5705da11688a156107cc941cb83d70ab4bcb",
+ "package/dist/artplayer-plugin-danmuku.js": "5e57041111c11b7378a40453d2aa3c64cfbc7dcbaa809917eb1b3e523a15ac24",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "c6c384adb53d31b5fa88ac0badfec5a145cddf6b8af494aa3add1ce1b0164ce9",
+ "package/package.json": "e63d42147f3f0bf7f0eb82288f91e396e55314a20b969d60329af991dc2238fd",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "66bd17ac9dee79e192a2bcc2c0e5f7247dbf676b7a96929f0abde0944d40bd8c",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "1333aec4721c93d5ee022162063158955affc7bc55fafbb4a83498364cc4ad65",
+ "package/src/style.less": "867954f11d9661b0ed141e47546a82ae952cbcbf2110e388130b5c85f0a8f111",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "16bd5670878c49cacd2e8e1a9424536b91f7931778fa08e8aa72f0d20ff9ca0b"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.5",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "fae71811db4a1f6999690d527aa1c715266cb32c",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "7088172d44d87f4fcbbd3fdda82045e78b9ae8bbdee5e6c59dd55fff82418651",
+ "version": "5.1.4"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "fae71811db4a1f6999690d527aa1c715266cb32c",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "59b29c249778ee2ab4fc603a35e5de1509bad5104565315fcfdcb7a5e30944a9",
+ "version": "5.2.2"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "9d374ca46076e31f5563c73d1232036a1d4f059676a256f3e1c13c6a384e5d4e",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "0311f36467c7ab4c5d8997ee7870c2dde007f5aa508579d433863ed5f2fc4c0e",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "7088172d44d87f4fcbbd3fdda82045e78b9ae8bbdee5e6c59dd55fff82418651",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "66bd17ac9dee79e192a2bcc2c0e5f7247dbf676b7a96929f0abde0944d40bd8c",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "1333aec4721c93d5ee022162063158955affc7bc55fafbb4a83498364cc4ad65",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "efa48e17618fe15051269d4790dabc39c345ea1a86c143645667d764e0633d73",
+ "matchesArchiveBytes": false
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.4",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.4.tgz",
+ "integrity": "sha512-f2gJ9HsvSmOwg6UdNcWCUkSI6WmfkTiQKVDWr+pRJF9jQ2wK8c4YjNJ11SY63H5OGlaJBSvWWyNVdFHOX7pUbg==",
+ "sha256": "6dcf90ac29d19aa957de6405174a593acb5b48d461ec0836a433a6cd9435f305",
+ "publishedAt": "2024-06-13T03:13:28.713Z",
+ "registryGitHead": "b4e31219173e0e045cdfdec2295b13c870505ff0",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "9d374ca46076e31f5563c73d1232036a1d4f059676a256f3e1c13c6a384e5d4e",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "0311f36467c7ab4c5d8997ee7870c2dde007f5aa508579d433863ed5f2fc4c0e",
+ "package/package.json": "7088172d44d87f4fcbbd3fdda82045e78b9ae8bbdee5e6c59dd55fff82418651",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "4f0b443d90c1525b9af8e620971e55673c231a9159f91ac31de12a7d4f104105",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "17275c53a227e4479d5ed224d9b09ded0507b25e3ab76c53274527527d8af206",
+ "package/src/style.less": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "056fb7ad80769718577b0a23ab75684a67e50315c07f5e17d64ee626acb228a1"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.4",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "b4e31219173e0e045cdfdec2295b13c870505ff0",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "7088172d44d87f4fcbbd3fdda82045e78b9ae8bbdee5e6c59dd55fff82418651",
+ "version": "5.1.4"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "b4e31219173e0e045cdfdec2295b13c870505ff0",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "412253a67616ed94c058a4eefdb5f0e7b863f696a92e5ac9e3e82c87ce5aec0d",
+ "version": "5.1.6"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "13719de1bbb28fd12bc26b77eedb62453a21fb51988e7fa8f5e11ba0afa63399",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "a957b6f157201d5b66cee7dcd8f4231e7c6f0961a702825c19086fc505376a8f",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "7088172d44d87f4fcbbd3fdda82045e78b9ae8bbdee5e6c59dd55fff82418651",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "4f0b443d90c1525b9af8e620971e55673c231a9159f91ac31de12a7d4f104105",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "17275c53a227e4479d5ed224d9b09ded0507b25e3ab76c53274527527d8af206",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "056fb7ad80769718577b0a23ab75684a67e50315c07f5e17d64ee626acb228a1",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.3",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.3.tgz",
+ "integrity": "sha512-jHj1hRPKHGvB/Vh0m96O80Cq9UGp5WjGw6PZwnEafrcc3CqTbJhewWS5jqb7qRWkTgfJXWBty/u1lMagUeoIrA==",
+ "sha256": "1c0f18c2c14058bf7ee8f91868431a445e04d0817cfd825fb7fa1a34fcb7a286",
+ "publishedAt": "2024-06-12T13:48:43.333Z",
+ "registryGitHead": "665348ad5575d9422aa886ce07358159601163ac",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "13719de1bbb28fd12bc26b77eedb62453a21fb51988e7fa8f5e11ba0afa63399",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "a957b6f157201d5b66cee7dcd8f4231e7c6f0961a702825c19086fc505376a8f",
+ "package/package.json": "deffa72215517145ffbc9075dca0044100b038933a1a0b482bb55e0df5eab4b8",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "4f0b443d90c1525b9af8e620971e55673c231a9159f91ac31de12a7d4f104105",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "4ef11da455914c4996220f66a331c2a2b28c62f2e1864552d3c1b960367dc853",
+ "package/src/style.less": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "056fb7ad80769718577b0a23ab75684a67e50315c07f5e17d64ee626acb228a1"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.3",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "665348ad5575d9422aa886ce07358159601163ac",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "deffa72215517145ffbc9075dca0044100b038933a1a0b482bb55e0df5eab4b8",
+ "version": "5.1.3"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "665348ad5575d9422aa886ce07358159601163ac",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "412253a67616ed94c058a4eefdb5f0e7b863f696a92e5ac9e3e82c87ce5aec0d",
+ "version": "5.1.6"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "944581149436a8ddb8892177798193979ef5e9a8d545f1d883e69a27ac5cce71",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "04a82e795078902bdedc613f18e2f7bc33a1997a553612b81e82716cff6e1501",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "deffa72215517145ffbc9075dca0044100b038933a1a0b482bb55e0df5eab4b8",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "4f0b443d90c1525b9af8e620971e55673c231a9159f91ac31de12a7d4f104105",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "4ef11da455914c4996220f66a331c2a2b28c62f2e1864552d3c1b960367dc853",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "60140d423361eeb5fbee5723b7b7b28cc5ff20ca588ba433f9dd6bfd22ea7e5e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "056fb7ad80769718577b0a23ab75684a67e50315c07f5e17d64ee626acb228a1",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.2",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.2.tgz",
+ "integrity": "sha512-r1+CTzKQlKsMEKglORMKkZWKYBKN2PDZnvurZKH52n6un5Zkgw2ibQnbCvWzsgJ8IdIt2jrufiMq020BXXPwMQ==",
+ "sha256": "3da17ec92f33df87828094b1f711b9baff3ae16577c7786f1005c79504e6e063",
+ "publishedAt": "2024-06-05T01:17:30.526Z",
+ "registryGitHead": "403be5dc6b1d88291353413b37e5927808449a9e",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "944581149436a8ddb8892177798193979ef5e9a8d545f1d883e69a27ac5cce71",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "04a82e795078902bdedc613f18e2f7bc33a1997a553612b81e82716cff6e1501",
+ "package/package.json": "3cd290ef72b391419442cf190b32ffe75f8c55e7dc91edd9587294e9ca48e8b7",
+ "package/src/bilibili.js": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "package/src/danmuku.js": "00d15aa81a2fe8f2a2914bd9f65276b7b9f69bbed3aa77a0b76340b4aaa0bc2f",
+ "package/src/heatmap.js": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "113ce4fcef3bf143d3517e5f5e9f0425926e76d70bd875a75fddc0bf24bfc9cc",
+ "package/src/style.less": "84e928468dc411b111c264c7a028bc01966a93baa1e2c4de59b63abeda4e8e59",
+ "package/src/worker.js": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "package/types/artplayer-plugin-danmuku.d.ts": "bc2f2ba1c0a3e5567ca13d84fa42b6526c3aaf03d146936d89dc519de0e035eb"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.2",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "403be5dc6b1d88291353413b37e5927808449a9e",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "3cd290ef72b391419442cf190b32ffe75f8c55e7dc91edd9587294e9ca48e8b7",
+ "version": "5.1.2"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "403be5dc6b1d88291353413b37e5927808449a9e",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "a9a02df04041e6578b84b0caeb7ae2dad49c9996acf7bd6296d6ebe8adcb3910",
+ "version": "5.1.6"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "f1ea6697c60dab8a80230e968ca4b87258e001ca45997ba600ee87aba6a1b31f",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "c3a319158898b2c3307e28ea2a417f85668c433a06d111142319e6b70cd3a7d9",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "3cd290ef72b391419442cf190b32ffe75f8c55e7dc91edd9587294e9ca48e8b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "e01f39d0d6d34aa2d546d77ca121a757cb5ea555d63b48836a95f695cdf11fe0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "00d15aa81a2fe8f2a2914bd9f65276b7b9f69bbed3aa77a0b76340b4aaa0bc2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "1db9f92d508d9bed84389e3fb1f24331ad4fe0c9493de443e492c4a43488bc63",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "113ce4fcef3bf143d3517e5f5e9f0425926e76d70bd875a75fddc0bf24bfc9cc",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "84e928468dc411b111c264c7a028bc01966a93baa1e2c4de59b63abeda4e8e59",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "987338e575647552f9065b1867867a21d812216e9d190f1adc03464b0fc459f9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "bc2f2ba1c0a3e5567ca13d84fa42b6526c3aaf03d146936d89dc519de0e035eb",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.1",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.1.tgz",
+ "integrity": "sha512-5A0j9pjKZI5hy5q2zk94shty4LoKdQgdUjlAfgiK9AgcfBv6EZE0itYNwoYzTMYJhSWmZ4CTDxpePXGMV261wQ==",
+ "sha256": "565a2e2587a85067f9fa9a0a67edbd0f21a09dd830f359b263cb33954677ca3a",
+ "publishedAt": "2024-06-02T11:51:28.874Z",
+ "registryGitHead": "41cdde4b7901b0d63bb9c28b6d8d1a042250705b",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "0623c1beebed8f51792c21967ecf1bdf141faa4f6c26d996001573100e850d57",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "4156c63e406b2c5b026232eb37af4566e1ffccba8b427e6d413c20f5dcb940a6",
+ "package/package.json": "341f9d88239a3ff7db1062da833f9905008ae23276cf1ff38862d705c2b6016e",
+ "package/src/bilibili.js": "c2cf47b2fdb22addaa5fb17bc4b719d29a3fb036a3dcddf980d8c43d7a2cdc36",
+ "package/src/danmuku.js": "dfa1d201cbe95a7ac036cc97731b9033fe7c651f0cba0d7b36c49e5b6e9a6e65",
+ "package/src/heatmap.js": "e93714dc046402ccce7fc736f8755b51b5c2d6bf74efbb77cf3e00f2b91d857f",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "e271bced7c29bba0f2d5c3024bfba81c7edb0e150f370aa347c8ec3750afb33d",
+ "package/src/style.less": "bccb1fb17fad5e40c2b4c86719c5aab4fe0d0e685421a8a6a07bddd050857d68",
+ "package/src/worker.js": "5c90f383abb41873a6de5f178f2ebf6cada2d200dd8aa3f78318705180d3d745",
+ "package/types/artplayer-plugin-danmuku.d.ts": "b36293053bfd7787ddb0365f4705b626ff9f7e3e5b90f0c36f212b6f82df5875"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.1",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "41cdde4b7901b0d63bb9c28b6d8d1a042250705b",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "a54c64b4f5297b03a776775678612b90e994ee5d187662579a15634d665da25f",
+ "version": "5.1.0"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "41cdde4b7901b0d63bb9c28b6d8d1a042250705b",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "814b784a8880ebbef321f0776b7cc1e5480ea3abee403f507af9d850df7f6c3a",
+ "version": "5.1.5"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "61e05ae1cb000696e123f78be770519e74f5b702032e4c09a28ca194e67dbb10",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "0119dad66b911663dea0d856b8a61f54204417708582a3a53807fe370f806b76",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "a54c64b4f5297b03a776775678612b90e994ee5d187662579a15634d665da25f",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "c2cf47b2fdb22addaa5fb17bc4b719d29a3fb036a3dcddf980d8c43d7a2cdc36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "52c5422bf3f1b95f01283ed0f7b50bfa0093757b58928f10e3d94bf419421f4e",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "e93714dc046402ccce7fc736f8755b51b5c2d6bf74efbb77cf3e00f2b91d857f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "e271bced7c29bba0f2d5c3024bfba81c7edb0e150f370aa347c8ec3750afb33d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "bccb1fb17fad5e40c2b4c86719c5aab4fe0d0e685421a8a6a07bddd050857d68",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "5c90f383abb41873a6de5f178f2ebf6cada2d200dd8aa3f78318705180d3d745",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "b36293053bfd7787ddb0365f4705b626ff9f7e3e5b90f0c36f212b6f82df5875",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.1.0",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.1.0.tgz",
+ "integrity": "sha512-F2dGt8nmSrAkGGNoKErrPipNqW8OueTYsE/Yh8Cze8oSWSHpXnaZbhqkg5ZFtLCNp85/MHrU0OUv3+D4wKmYGA==",
+ "sha256": "827214779335f56039cdc0e2d5fb1f8e072ae30f883d74d38b94752d6d6ba1bb",
+ "publishedAt": "2024-05-31T23:18:54.995Z",
+ "registryGitHead": "d86840749b12718d6ce016848e691dbde33db477",
+ "files": {
+ "package/README.md": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "package/dist/artplayer-plugin-danmuku.js": "61e05ae1cb000696e123f78be770519e74f5b702032e4c09a28ca194e67dbb10",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "0119dad66b911663dea0d856b8a61f54204417708582a3a53807fe370f806b76",
+ "package/package.json": "a54c64b4f5297b03a776775678612b90e994ee5d187662579a15634d665da25f",
+ "package/src/bilibili.js": "c2cf47b2fdb22addaa5fb17bc4b719d29a3fb036a3dcddf980d8c43d7a2cdc36",
+ "package/src/danmuku.js": "52c5422bf3f1b95f01283ed0f7b50bfa0093757b58928f10e3d94bf419421f4e",
+ "package/src/heatmap.js": "e93714dc046402ccce7fc736f8755b51b5c2d6bf74efbb77cf3e00f2b91d857f",
+ "package/src/img/check_off.svg": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "package/src/img/check_on.svg": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "package/src/img/config.svg": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "package/src/img/mode_0_off.svg": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "package/src/img/mode_0_on.svg": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "package/src/img/mode_1_off.svg": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "package/src/img/mode_1_on.svg": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "package/src/img/mode_2_off.svg": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "package/src/img/mode_2_on.svg": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "package/src/img/off.svg": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "package/src/img/on.svg": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "package/src/img/style.svg": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "package/src/index.js": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "package/src/setting.js": "e271bced7c29bba0f2d5c3024bfba81c7edb0e150f370aa347c8ec3750afb33d",
+ "package/src/style.less": "bccb1fb17fad5e40c2b4c86719c5aab4fe0d0e685421a8a6a07bddd050857d68",
+ "package/src/worker.js": "5c90f383abb41873a6de5f178f2ebf6cada2d200dd8aa3f78318705180d3d745",
+ "package/types/artplayer-plugin-danmuku.d.ts": "b36293053bfd7787ddb0365f4705b626ff9f7e3e5b90f0c36f212b6f82df5875"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.1.0",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "last 1 Chrome version",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "d86840749b12718d6ce016848e691dbde33db477",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "a54c64b4f5297b03a776775678612b90e994ee5d187662579a15634d665da25f",
+ "version": "5.1.0"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "d86840749b12718d6ce016848e691dbde33db477",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "aaf3ba9c7beaaea31170cc50e3958c0bb5d779ab4f90b6a213994ce8c9aace36",
+ "version": "5.1.2"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "46decce71f6c59b7970b81c035fd5336329fcf879709ac7a2bbe06905bd86c27",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "61e05ae1cb000696e123f78be770519e74f5b702032e4c09a28ca194e67dbb10",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "0119dad66b911663dea0d856b8a61f54204417708582a3a53807fe370f806b76",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "a54c64b4f5297b03a776775678612b90e994ee5d187662579a15634d665da25f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "c2cf47b2fdb22addaa5fb17bc4b719d29a3fb036a3dcddf980d8c43d7a2cdc36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "52c5422bf3f1b95f01283ed0f7b50bfa0093757b58928f10e3d94bf419421f4e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "e93714dc046402ccce7fc736f8755b51b5c2d6bf74efbb77cf3e00f2b91d857f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_off.svg",
+ "sha256LF": "8cb8e31da1bf7b5be8f4065920b46e1988755910218fb121dd3d9649c50156cf",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/check_on.svg",
+ "sha256LF": "c5a34f56c56b0f696b4e3740c73e803076b5bfdfdee89714793118fc4c6baa84",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/config.svg",
+ "sha256LF": "bbd7c2952740ac8220f396477eaca3b01f6c249866d880ece38c565cc77c5e36",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_off.svg",
+ "sha256LF": "fe9e5e1745e8206a4eda0d0ac30815f301c37acccec2564bbda51c1fa4bd1e1e",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_0_on.svg",
+ "sha256LF": "96720a81f0315caf6c70664de934e49d22e6dd070a9f6ca1fec2a9a96af4d138",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_off.svg",
+ "sha256LF": "3ccd22bf3648dc260cd1d0b6a60a9226a853764ae20efb8fe9c940cd856c81b2",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_1_on.svg",
+ "sha256LF": "2238ca27e3c7c4c687d10de13b794d8be70ae1c5ba9225ebad27f251cfe5f12a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_off.svg",
+ "sha256LF": "31423e3d67c00839adc77dd871dc1da55f77c8b83b5a37b445e4b4c3f46c6d6d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/mode_2_on.svg",
+ "sha256LF": "96b4c9db8d5055c8777fda74cb5e0f32b3e12e62a1e0bacbf75d2088f4505e2f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/off.svg",
+ "sha256LF": "4e6743ee28002e16117caf47ea3bffb34ca75bcc4118744b4ee720829ae3b563",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/on.svg",
+ "sha256LF": "cc0fb7048bff6dc3f14a17ed549209c67e9bc34368cb1571e0abd8035c7b59b7",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/style.svg",
+ "sha256LF": "9034ea7b9a214a6d4c086c02cf85f42b1c4487cec0906e919fc91e99dfff529a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "096eeb016ae1323434029a4bc88d060a5c1bf4f77c1269e6fbd4b09c5746b4dd",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "e271bced7c29bba0f2d5c3024bfba81c7edb0e150f370aa347c8ec3750afb33d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "bccb1fb17fad5e40c2b4c86719c5aab4fe0d0e685421a8a6a07bddd050857d68",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "5c90f383abb41873a6de5f178f2ebf6cada2d200dd8aa3f78318705180d3d745",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "b36293053bfd7787ddb0365f4705b626ff9f7e3e5b90f0c36f212b6f82df5875",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.0.1",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.0.1.tgz",
+ "integrity": "sha512-b6/Y4/+X0rNmnqS5+zzQgow+WW4iVT8eFv4LAUzJgIyORIcf5Gn00Dy0PZ+kwGb1VJy0CUCRK6gVVvh0tWsRAg==",
+ "sha256": "6ecf4ff8a2289e85d0ad7c8ba97e32a0d432a4fd45dce438fff4371a90122846",
+ "publishedAt": "2023-05-03T03:59:57.685Z",
+ "registryGitHead": "8ff35b5f6f74e607e4d22d085252e837cfd9cd98",
+ "files": {
+ "package/README.md": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "package/dist/artplayer-plugin-danmuku.js": "4e520c267f1612b9d59ef9cbbbf13509b021027a262a9031e02931924643cc57",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "40db9f9d5c738122d8510256d7541a244c42c9000c1519f28e7639fead3d7699",
+ "package/package.json": "8f1966e020cdaf3d43f311e49eff283c182bafaa5a5c1f3a31cfef8d9e21b0c0",
+ "package/src/bilibili.js": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "package/src/danmuku.js": "ccecc9fb501fcd7c0f023d400b1e25b89655b7d718d09c632027260c6e20c8db",
+ "package/src/getDanmuTop.js": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "package/src/heatmap.js": "9dba62558d64f78c26a2bb8f8d080c5acb361af1c84630a53d658a845891d0df",
+ "package/src/img/danmu-config.svg": "4663b0250341a69286683e93644c9fa193ed3d8862612dba659a54834b0b112d",
+ "package/src/img/danmu-off.svg": "a9423b1fa20bad51102c08d226bdd7bda7c68f94270d06746fb0a752a4b8ab79",
+ "package/src/img/danmu-on.svg": "c71a36ea24c4cb28ba29e0a9f14fbf6677178226c7d551bddbe49f8110800fd6",
+ "package/src/img/danmu-style.svg": "f5b0ef602172a668210a037aae4d0406792292b3e76cb6613e173606eb3633de",
+ "package/src/index.js": "a905cf9753c4ce0a9aec10232719cd735b5e81461cdf77134294d4ce2110fcd4",
+ "package/src/setting.js": "bcfb8f6c0d3b27e43b0ab11d62cd32b4eaf49b264fc50494c7279a6a3730e55b",
+ "package/src/style.less": "cd687d5c65d2efca9fd32353797868dff4f9344a166703c76ee44c1e6da4d89f",
+ "package/src/worker.js": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "package/types/artplayer-plugin-danmuku.d.ts": "d75afb1079d421c71d583f21b24e0f7e9c06b66916e4480f9fbb330043cf40c3"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.0.1",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "> 0.5%, last 2 versions, not dead",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "8ff35b5f6f74e607e4d22d085252e837cfd9cd98",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "8f1966e020cdaf3d43f311e49eff283c182bafaa5a5c1f3a31cfef8d9e21b0c0",
+ "version": "5.0.1"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "8ff35b5f6f74e607e4d22d085252e837cfd9cd98",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "3a721574b7dd3eb5a02bda3eaebfa402dd6d9fd362c9cf36d2f12a349561d5cc",
+ "version": "5.0.5"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "d2c3aeddbda83befa243f2c1178bce044fdbfca3e849854b3223e0388831144b",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "6d76d4c69450358a409ad4dd3f27ddc2e9d2050384b739a3fcae7fb0566bea8a",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "8f1966e020cdaf3d43f311e49eff283c182bafaa5a5c1f3a31cfef8d9e21b0c0",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "ccecc9fb501fcd7c0f023d400b1e25b89655b7d718d09c632027260c6e20c8db",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/getDanmuTop.js",
+ "sha256LF": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/heatmap.js",
+ "sha256LF": "9dba62558d64f78c26a2bb8f8d080c5acb361af1c84630a53d658a845891d0df",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-config.svg",
+ "sha256LF": "246138f284193761078a7668990557629e7966c1ba834154ad9f9daf8ee5d9e9",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-off.svg",
+ "sha256LF": "743c5c8b96dd7fc1361abe1a7e7139c41647487c9a877e1a623ca50629d4b2b8",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-on.svg",
+ "sha256LF": "560cf3c7eed0bdc2def9fad152f71f4daeb842102696311aeb12d1b1d0eab1ee",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-style.svg",
+ "sha256LF": "bac5c41208eb5e7b79cdc0c7fb3b117dd01b1d3c44d62765f329da911511bfef",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "a905cf9753c4ce0a9aec10232719cd735b5e81461cdf77134294d4ce2110fcd4",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "bcfb8f6c0d3b27e43b0ab11d62cd32b4eaf49b264fc50494c7279a6a3730e55b",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "cd687d5c65d2efca9fd32353797868dff4f9344a166703c76ee44c1e6da4d89f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "8ffd5f5b87f915c3925b5ee0249d4de1e29ec48825ae3ff2c7ae1c24756b5c56",
+ "matchesArchiveBytes": false
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "5.0.0",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-5.0.0.tgz",
+ "integrity": "sha512-swnnTIHnwyAft4Pbh7uQtzjNNhqoiMffuEvZ3eUkMfFGWOEjoZ23TQ7rqXXY08iGJTIWt4Rn7iqUS5DdKsHy9g==",
+ "sha256": "6ee366f60f2bbc8d813ca419edaa32f4d2484dac58d4843a25cc0b8021f0c44c",
+ "publishedAt": "2023-04-23T10:14:05.436Z",
+ "registryGitHead": "08ff3dd19d24fbbc62b900f19a91aba08e1bf9f6",
+ "files": {
+ "package/README.md": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "package/dist/artplayer-plugin-danmuku.js": "46510684dac35241dfbd354cdfd514d498fbecef2d92e3cc8e52313a9f712bbd",
+ "package/dist/artplayer-plugin-danmuku.legacy.js": "b438a902954eaed93a9ea1ecaa7b58ace67806aa0b3ecc4e07bed87f4aab1af1",
+ "package/package.json": "2f9c39b9b05567c429ee54ef2910e559ceb85a3343183e466795998c52928b80",
+ "package/src/bilibili.js": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "package/src/danmuku.js": "7d017868c909bc3a94d4038e1c55b07c3b0e39e628f91b74257ad60b6e3108ce",
+ "package/src/getDanmuTop.js": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "package/src/img/danmu-config.svg": "246138f284193761078a7668990557629e7966c1ba834154ad9f9daf8ee5d9e9",
+ "package/src/img/danmu-off.svg": "743c5c8b96dd7fc1361abe1a7e7139c41647487c9a877e1a623ca50629d4b2b8",
+ "package/src/img/danmu-on.svg": "560cf3c7eed0bdc2def9fad152f71f4daeb842102696311aeb12d1b1d0eab1ee",
+ "package/src/img/danmu-style.svg": "bac5c41208eb5e7b79cdc0c7fb3b117dd01b1d3c44d62765f329da911511bfef",
+ "package/src/index.js": "700dd27cfaf87a7609de6a84d389e2d175c246f835bdef2ab9cf378a50cc91f6",
+ "package/src/setting.js": "23d1d4c815f0871505fc652dbefb3fa88732441c21eaa29e54e2fd457256ba81",
+ "package/src/style.less": "4a7c500edd90ecdf71f785890415b278cfdaa9e10f0f95b05d78f313c0622b37",
+ "package/src/worker.js": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "package/types/artplayer-plugin-danmuku.d.ts": "982746483054da0b43211218b4433f32fe77131d49bb5b7f9b9af819bb82d2e3"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "5.0.0",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "author": "Harvey Zack ",
+ "browserslist": "> 0.5%, last 2 versions, not dead",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": "dist/artplayer-plugin-danmuku.legacy.js",
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "08ff3dd19d24fbbc62b900f19a91aba08e1bf9f6",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "2f9c39b9b05567c429ee54ef2910e559ceb85a3343183e466795998c52928b80",
+ "version": "5.0.0"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "08ff3dd19d24fbbc62b900f19a91aba08e1bf9f6",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "54a304a95596c172aa2aca667682c4ae920a1d62730bb614baa538dc6d29f5db",
+ "version": "5.0.0"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "2de375819fa0fa8e0f1dd16decb42f3ac23ed78c19f4c869759a200e3ab4996d",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "sha256LF": "e6ddde26dbfc5b26d75b85a210ce75e97fe6b84689542ad510971ecef8d850e1",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "2f9c39b9b05567c429ee54ef2910e559ceb85a3343183e466795998c52928b80",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "7d017868c909bc3a94d4038e1c55b07c3b0e39e628f91b74257ad60b6e3108ce",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/getDanmuTop.js",
+ "sha256LF": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-config.svg",
+ "sha256LF": "246138f284193761078a7668990557629e7966c1ba834154ad9f9daf8ee5d9e9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-off.svg",
+ "sha256LF": "743c5c8b96dd7fc1361abe1a7e7139c41647487c9a877e1a623ca50629d4b2b8",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-on.svg",
+ "sha256LF": "560cf3c7eed0bdc2def9fad152f71f4daeb842102696311aeb12d1b1d0eab1ee",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-style.svg",
+ "sha256LF": "bac5c41208eb5e7b79cdc0c7fb3b117dd01b1d3c44d62765f329da911511bfef",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "700dd27cfaf87a7609de6a84d389e2d175c246f835bdef2ab9cf378a50cc91f6",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "23d1d4c815f0871505fc652dbefb3fa88732441c21eaa29e54e2fd457256ba81",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "4a7c500edd90ecdf71f785890415b278cfdaa9e10f0f95b05d78f313c0622b37",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "982746483054da0b43211218b4433f32fe77131d49bb5b7f9b9af819bb82d2e3",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "4.4.11",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-4.4.11.tgz",
+ "integrity": "sha512-/4F8IyB29Bdr1LV1RM3FM7CdiAMsVNOOJ/HY4jaJCXnMAKThQiGa++0PhCJ07nhyGvDcZGRL2/UWJRz9zZJFNw==",
+ "sha256": "11da9a9a69e096dce7dada4ea12d9ef715f8fedc5479e88d3a8e364f8cfad926",
+ "publishedAt": "2022-10-11T02:48:34.632Z",
+ "registryGitHead": "e0351a7b930033307d4efd77e9b07a1d5be3e665",
+ "files": {
+ "package/README.md": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "package/dist/artplayer-plugin-danmuku.js": "ea5b69bcfc8175c63e942eb17e353f6d9acd1ccc3fd8e6aba49772f706bbeaa8",
+ "package/package.json": "aa2f35ef193e65200cda26ee619c28e20f7edd6edbfad89c08f401de891478a3",
+ "package/src/bilibili.js": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "package/src/danmuku.js": "ebcf164638f92e275478f16d6b76af0a30cc6a388f65dfda8234cff1608a71c5",
+ "package/src/getDanmuTop.js": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "package/src/img/danmu-config.svg": "246138f284193761078a7668990557629e7966c1ba834154ad9f9daf8ee5d9e9",
+ "package/src/img/danmu-off.svg": "743c5c8b96dd7fc1361abe1a7e7139c41647487c9a877e1a623ca50629d4b2b8",
+ "package/src/img/danmu-on.svg": "560cf3c7eed0bdc2def9fad152f71f4daeb842102696311aeb12d1b1d0eab1ee",
+ "package/src/img/danmu-style.svg": "bac5c41208eb5e7b79cdc0c7fb3b117dd01b1d3c44d62765f329da911511bfef",
+ "package/src/index.js": "552fab0a432b349417caeb5c8b898cf8c4ebfd372e156e0a0bcbce65416d4909",
+ "package/src/setting.js": "1b1c4ce4d52ff202c072693e9d96563c69c2ce7067e6931433983adb6d8da0e2",
+ "package/src/style.less": "1ba61cd4744f7248a1fb9548aced06efd4c2e9494bde92474e48c4472b1878c1",
+ "package/src/worker.js": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "package/types/artplayer-plugin-danmuku.d.ts": "982746483054da0b43211218b4433f32fe77131d49bb5b7f9b9af819bb82d2e3"
+ },
+ "manifest": {
+ "license": "MIT",
+ "version": "4.4.11",
+ "name": "artplayer-plugin-danmuku",
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "author": "Harvey Zack ",
+ "browserslist": "> 0.5%, last 2 versions, not dead",
+ "homepage": "https://artplayer.org",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "keywords": [
+ "html5",
+ "video",
+ "player"
+ ]
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": "types/artplayer-plugin-danmuku.d.ts",
+ "legacy": null,
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "e0351a7b930033307d4efd77e9b07a1d5be3e665",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "2b3d07e39ba302df5e804c9c480460470e8aacbab731573f838705a9a9efd391",
+ "version": "4.4.10"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "e0351a7b930033307d4efd77e9b07a1d5be3e665",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "232695f1ed9c44e2187b017379be852c6da51d3dbe812fff8c9eb44e43702217",
+ "version": "4.5.8"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "3c4259d1bf03fd5059b058b476f4dbe4ca140f149630fc49fed5df6d67a97436",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "e42c7eab9ddf2a7ff376a5c6ef8e455ca522441b88a6eef9550ee60c8156a6b4",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "2b3d07e39ba302df5e804c9c480460470e8aacbab731573f838705a9a9efd391",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "154c94e979e31cc2bd4f51736b8a0f164b4b93b86da8f4005162a240ffbb6d2a",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "ebcf164638f92e275478f16d6b76af0a30cc6a388f65dfda8234cff1608a71c5",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/getDanmuTop.js",
+ "sha256LF": "33895709bdf4e1412c98cac43fddc670cde2d0d867940c6e0be4e04318cbbc85",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-config.svg",
+ "sha256LF": "246138f284193761078a7668990557629e7966c1ba834154ad9f9daf8ee5d9e9",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-off.svg",
+ "sha256LF": "743c5c8b96dd7fc1361abe1a7e7139c41647487c9a877e1a623ca50629d4b2b8",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-on.svg",
+ "sha256LF": "560cf3c7eed0bdc2def9fad152f71f4daeb842102696311aeb12d1b1d0eab1ee",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/img/danmu-style.svg",
+ "sha256LF": "bac5c41208eb5e7b79cdc0c7fb3b117dd01b1d3c44d62765f329da911511bfef",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "552fab0a432b349417caeb5c8b898cf8c4ebfd372e156e0a0bcbce65416d4909",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "a9535a41ad79771d960aefa48612f1fddb0811a16ba64cc0e22deb89194ac4f4",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/style.less",
+ "sha256LF": "1ba61cd4744f7248a1fb9548aced06efd4c2e9494bde92474e48c4472b1878c1",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/worker.js",
+ "sha256LF": "fcb69bf2af7349b1320d6f7a0987c6580c8c2c54c08be2f0cabfe5b6547da23f",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts",
+ "sha256LF": "982746483054da0b43211218b4433f32fe77131d49bb5b7f9b9af819bb82d2e3",
+ "matchesArchiveBytes": true
+ }
+ ]
+ },
+ {
+ "name": "artplayer-plugin-danmuku",
+ "version": "3.5.31",
+ "tarball": "https://registry.npmjs.org/artplayer-plugin-danmuku/-/artplayer-plugin-danmuku-3.5.31.tgz",
+ "integrity": "sha512-rOdX2ujuCi/IX3lmsnXob1eAdd2x3UyemcC2uAUUD83St0nwcQvt27Kvme6M5/zQsEo3LzE7iesIsx3LeMvWpA==",
+ "sha256": "08e997e0dcd07a46866ddb83c19142a0781666fc430998bcd8cb7e9486ba09dc",
+ "publishedAt": "2021-11-01T01:38:02.660Z",
+ "registryGitHead": "af1a116a31b088efdd77afa81c4b6565d12bd162",
+ "files": {
+ "package/LICENSE": "e10af0b158a3cd8d923fd524b234cc2ee7219f08746ec3851e71e59d5061f2c2",
+ "package/README.md": "6096f1be46f3352cebd2f37449a93e5e0cb776432cfe35852d651d840490c30d",
+ "package/dist/artplayer-plugin-danmuku.js": "9fde8d3cb39ecc783403230a0f055d9de46b258c896b47f2c63467b45122e035",
+ "package/package.json": "10bce323ab5a2089333676f834f4d1ea9e8f6032960ace4e4f3de4c70b55452f",
+ "package/src/bilibili.js": "62315c81744cb561b788daf1ba7d5fda8b6bfefd7ebdb86345fd8ba531976b35",
+ "package/src/danmuku.js": "2be900a7cea2aaee1a8cc8a659c00e945288bc823eb8b2e5555727d18f4119ef",
+ "package/src/getDanmuTop.js": "9ea8053493152e3a2bf06dc0763b071cdc78602a7306a0180aaaa702596583a6",
+ "package/src/i18n.js": "d75ca22db63443987621ba14524f3c26ab406b6c8c037e14af5fcb926ff8d52b",
+ "package/src/index.js": "32da330e150972281f78ea4806bb0b85b75d714e1140c4612817dfd3e5c02a32",
+ "package/src/setting.js": "ea8a28e3995d804a6eb8339d076bd8f68ea71fce827fd7725b22b8c670e5b465",
+ "package/src/utils.js": "609fce77b0fb027e76f56b540c4caee0e911a4104a0067ad9adf3ebd79b460d0"
+ },
+ "manifest": {
+ "name": "artplayer-plugin-danmuku",
+ "version": "3.5.31",
+ "expose": "artplayerPluginDanmuku",
+ "description": "Danmuku plugin for ArtPlayer",
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zhw2590582/ArtPlayer.git"
+ },
+ "keywords": [
+ "video",
+ "player"
+ ],
+ "author": "Harvey Zack ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/zhw2590582/ArtPlayer/issues"
+ },
+ "homepage": "https://github.com/zhw2590582/ArtPlayer#readme",
+ "gitHead": "af1a116a31b088efdd77afa81c4b6565d12bd162"
+ },
+ "entrypoints": {
+ "main": "dist/artplayer-plugin-danmuku.js",
+ "module": null,
+ "types": null,
+ "legacy": null,
+ "exports": null
+ },
+ "registrySourceManifest": {
+ "status": "verified-local-git-object",
+ "commit": "af1a116a31b088efdd77afa81c4b6565d12bd162",
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "c62c3c122fa3238d451c74fa579f1d0abdafa035e6214a8819ee7dceffcb178b",
+ "version": "3.5.31"
+ },
+ "historicalCore": {
+ "status": "verified-local-git-object",
+ "commit": "af1a116a31b088efdd77afa81c4b6565d12bd162",
+ "file": "packages/artplayer/package.json",
+ "sha256LF": "8b67bd5fcd17a5e481dd477cc0e2b8327160a7b5699dab7b22c884c109a494eb",
+ "version": "3.5.31"
+ },
+ "registrySourceComparison": [
+ {
+ "file": "packages/artplayer-plugin-danmuku/LICENSE",
+ "status": "git-object-or-path-unavailable"
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/README.md",
+ "sha256LF": "6096f1be46f3352cebd2f37449a93e5e0cb776432cfe35852d651d840490c30d",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "sha256LF": "9fde8d3cb39ecc783403230a0f055d9de46b258c896b47f2c63467b45122e035",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/package.json",
+ "sha256LF": "c62c3c122fa3238d451c74fa579f1d0abdafa035e6214a8819ee7dceffcb178b",
+ "matchesArchiveBytes": false
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/bilibili.js",
+ "sha256LF": "62315c81744cb561b788daf1ba7d5fda8b6bfefd7ebdb86345fd8ba531976b35",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/danmuku.js",
+ "sha256LF": "2be900a7cea2aaee1a8cc8a659c00e945288bc823eb8b2e5555727d18f4119ef",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/getDanmuTop.js",
+ "sha256LF": "9ea8053493152e3a2bf06dc0763b071cdc78602a7306a0180aaaa702596583a6",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/i18n.js",
+ "sha256LF": "d75ca22db63443987621ba14524f3c26ab406b6c8c037e14af5fcb926ff8d52b",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/index.js",
+ "sha256LF": "32da330e150972281f78ea4806bb0b85b75d714e1140c4612817dfd3e5c02a32",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/setting.js",
+ "sha256LF": "ea8a28e3995d804a6eb8339d076bd8f68ea71fce827fd7725b22b8c670e5b465",
+ "matchesArchiveBytes": true
+ },
+ {
+ "file": "packages/artplayer-plugin-danmuku/src/utils.js",
+ "sha256LF": "609fce77b0fb027e76f56b540c4caee0e911a4104a0067ad9adf3ebd79b460d0",
+ "matchesArchiveBytes": true
+ }
+ ]
+ }
+ ],
+ "observations": {
+ "latestArchiveMatchesFrozenSourceFiles": [
+ "packages/artplayer-plugin-danmuku/README.md",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.legacy.js",
+ "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.mjs",
+ "packages/artplayer-plugin-danmuku/package.json",
+ "packages/artplayer-plugin-danmuku/types/artplayer-plugin-danmuku.d.ts"
+ ],
+ "sourceAssociationScope": "Registry gitHead manifests are source associations only. Missing gitHead or unavailable Git paths are retained as gaps; core version does not establish published availability or minimum support."
+ }
+}
diff --git a/refactor/changes/2026-09-13-PKG-DANMUKU-01-contracts.md b/refactor/changes/2026-09-13-PKG-DANMUKU-01-contracts.md
new file mode 100644
index 000000000..1635ddd53
--- /dev/null
+++ b/refactor/changes/2026-09-13-PKG-DANMUKU-01-contracts.md
@@ -0,0 +1,52 @@
+# PKG-DANMUKU-01 弹幕公共契约与发布来源
+
+冻结起点:`b0cfbfe3a09a84a295a257e45e4577847588d1cb`。
+
+本任务只增加不可变基线、校验器和契约测试。未改生产源码、公开声明、构建产物、
+共享脚本或发布版本;整合代理维护任务状态并完成单独本地提交,不推送或发布。
+
+## 交付与兼容范围
+
+- [发布来源](../baselines/danmuku-release.json):81 个真实稳定版目录,15 个实际 tarball,
+ SHA512/SHA256、全部成员、manifest 入口、可用 Git 关联及 28 个冻结工作区输入。
+- [契约](../baselines/danmuku-contract.md):emit/load/config/hide/show/reset/mount、三个
+ getter、icons、27 配置、事件、设置 UI、热力图、Bilibili 与 Worker 协议。
+- [校验器](../scripts/danmuku-contract.mjs):返回 `{baseline,archives,sources}` 供后续
+ 行为测试重用;下载只用冻结 npm URL,Git 内容只读取冻结完整 SHA。
+- [44 项测试](../scripts/danmuku-contract.test.mjs) 与
+ [实际验证记录](../baselines/danmuku-contract-validation.json):运行真实历史模块字节;
+ 最新 main/legacy 和冻结源码比对方法、返回身份、事件、输入和 settings 发送路径。
+
+API-02/03/04/06/08/09/11/12 都有明确契约记录;其中 UI/Worker 的视觉与浏览器行为
+仍是待验收内容。3.5.31/4.4.11 是前代对照,不是自动承诺任意历史 major 的所有行为。
+
+## 发现与处置
+
+真实模块形态在 3.5.31、4.4.11–5.2.0、5.3.0 之间变化;后续保留已有合法 JS 入口。
+多数关联 Git manifest 与发布号不同,5.1.7 无 gitHead,不据此推测最低核心版本。
+5.1.7 的合法 tar 目录头使共享 archiveFiles 的旧假设不适用,专属读取器依据条目类型
+识别目录,同时保留路径/重复/非普通成员检查,没有扩大共享脚本影响。
+
+已复现 emit 异步却声明同步、链式返回内部对象、初始 Promise validator 拒绝、
+mount 省略时报错、time:0 被替换、resize 解绑错误及设置 timer 未清。源码读码还观察到
+id/icons、Slider 和 heatmap points 类型漂移。根类型后续遵循已经批准的统一类型政策,
+不因修正异步描述破坏最新 npm 合法双向工厂赋值。缺陷正常/候选断言必须分离。
+
+完整风险分类、责任任务与重放命令见契约,未验证问题没有伪装成已修复或已通过。
+测试使用已存在 esbuild/Node runner,不安装依赖、不改 Yarn 锁文件。
+
+## 实际验证与限制
+
+44 tests passed / 0 failed / 0 skipped;专属 lint 和归档 verifier 通过。
+Node 24.21.0,Windows;日志/命令/输入 SHA 见 validation JSON。
+没有运行真实浏览器、网络 Bilibili 请求、设备、负载/内存或安装消费者矩阵。
+编译测试只把冻结源码及受控依赖在内存打包,不能当作正式生产构建或重构完成。
+
+## 下一步与回退
+
+PKG-DANMUKU-02 从真实归档/冻结源码扩展浏览器、时钟、轨道、乱序/拒绝和销毁基线,
+优先为已观察的异步输入、重复 start、Worker 相关问题建立受控复现。03/04/05 分别处理
+输入、调度、渲染/设置/Worker,06 处理 TS 与旧根类型,07/08/09 做能力/组合/分发验收。
+
+本批无消费者行为变更;如需回退,回退专属契约任务提交即可,保留旧 tarball 与日志
+用于后续对照。缓存可重新下载,冻结 SHA 与元数据不能随当前源码变动而更新。
diff --git a/refactor/plan.md b/refactor/plan.md
index 2d5e70935..6dba667db 100644
--- a/refactor/plan.md
+++ b/refactor/plan.md
@@ -4,7 +4,7 @@
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 228 项,范围 22 个包及工作区/示例。
-状态:todo 74 / doing 16 / blocked 0 / done 138 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
+状态:todo 73 / doing 16 / blocked 0 / done 139 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
@@ -309,8 +309,8 @@
| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 |
| --- | --- | --- | --- | --- | --- | --- |
-| PKG-DANMUKU-01 | artplayer-plugin-danmuku
核对弹幕全部公开契约 | BASE-05 | emit/load/config/hide/show/reset/mount、option/isHide/isStop/icons 与事件清单 | 源码、声明、发布包、Bilibili 输入和设置入口对照 | H | doing |
-| PKG-DANMUKU-02 | artplayer-plugin-danmuku
建立弹幕算法与浏览器基线 | PKG-DANMUKU-01, ENG-05, ENG-08 | 密集/稀疏弹幕、过滤/异步输入、seek/倍率/重载测试 | 轨道选择、发射顺序、事件、内存和可视结果可重跑 | H | todo |
+| PKG-DANMUKU-01 | artplayer-plugin-danmuku
核对弹幕全部公开契约 | BASE-05 | emit/load/config/hide/show/reset/mount、option/isHide/isStop/icons 与事件清单 | 源码、声明、发布包、Bilibili 输入和设置入口对照 | H | done |
+| PKG-DANMUKU-02 | artplayer-plugin-danmuku
建立弹幕算法与浏览器基线 | PKG-DANMUKU-01, ENG-05, ENG-08 | 密集/稀疏弹幕、过滤/异步输入、seek/倍率/重载测试 | 轨道选择、发射顺序、事件、内存和可视结果可重跑 | H | doing |
| PKG-DANMUKU-03 | artplayer-plugin-danmuku
整理加载、解析与配置 | PKG-DANMUKU-02, CORE-08 | bilibili/input/parser/config 的分层与取消 | 旧格式、回调、过滤、追加/替换语义保持 | M | todo |
| PKG-DANMUKU-04 | artplayer-plugin-danmuku
整理时钟、队列与轨道调度 | PKG-DANMUKU-03, CORE-10 | danmuku 调度器和确定性时钟测试 | seek/暂停/倍率/长时间运行无顺序和碰撞回归 | H | todo |
| PKG-DANMUKU-05 | artplayer-plugin-danmuku
整理 DOM 渲染、设置、热力图与 worker | PKG-DANMUKU-04, CORE-14, CORE-18 | renderer/setting/heatmap/worker 职责及资源归属 | mount/icons/设置和 worker 协议保持,销毁无后台工作 | H | todo |
@@ -552,6 +552,7 @@
- PKG-DPIP-03: [记录](changes/2026-09-12-PKG-DPIP-03-lifecycle.md) [记录](baselines/dpip-lifecycle-validation.json) [记录](dpip-validation.md)
- PKG-DPIP-04: [记录](changes/2026-09-12-PKG-DPIP-04-types.md) [记录](baselines/dpip-types-validation.json) [记录](dpip-validation.md)
- PKG-DPIP-05: [记录](changes/2026-09-12-PKG-DPIP-05-native-checkpoint.md) [记录](baselines/dpip-native-validation.json)
+- PKG-DANMUKU-01: [记录](baselines/danmuku-release.json) [记录](baselines/danmuku-contract.md) [记录](baselines/danmuku-contract-validation.json) [记录](changes/2026-09-13-PKG-DANMUKU-01-contracts.md)
- PKG-CANVAS-01: [记录](changes/2026-09-12-PKG-CANVAS-01-contract.md) [记录](baselines/canvas-contract.md) [记录](baselines/canvas-release.json) [记录](canvas-validation.md) [记录](baselines/canvas-contract-validation.json)
- PKG-CANVAS-02: [记录](changes/2026-09-12-PKG-CANVAS-02-tests.md) [记录](baselines/canvas-behavior-validation.json) [记录](canvas-validation.md)
- PKG-CANVAS-03: [记录](changes/2026-09-12-PKG-CANVAS-03-lifecycle.md) [记录](baselines/canvas-lifecycle-validation.json) [记录](canvas-validation.md)
diff --git a/refactor/progress.md b/refactor/progress.md
index 7ac0f6cd0..f7dbc70be 100644
--- a/refactor/progress.md
+++ b/refactor/progress.md
@@ -1,5 +1,15 @@
# 进度与证据
+## PKG-DANMUKU-01 弹幕契约与归档完成
+
+冻结81稳定版目录、15真实归档和28源码/文档/图标输入。44项测试及父代理复核通过;
+实际模块、完整方法与配置、设置、Bilibili/worker接口、返回身份和旧缺陷已登记。
+其他66版只有目录证据,没有扩张支持承诺。
+见[契约](baselines/danmuku-contract.md)和[变更](changes/2026-09-13-PKG-DANMUKU-01-contracts.md)。
+228项:139 done、16 doing、73 todo。02开始独立受控异步失败
+与真实浏览器基线;03至09的源码迁移、性能和最终分发仍待实施。无推送或发布。
+
+
## PKG-MASK-01 弹幕遮罩契约完成
冻结全部两个真实稳定发布版、Git关联和导出差异;核对六个Yarn/SDK版本与12个已有
diff --git a/refactor/risk-table.md b/refactor/risk-table.md
index 154a7444a..8c0f36606 100644
--- a/refactor/risk-table.md
+++ b/refactor/risk-table.md
@@ -227,3 +227,11 @@
| MASK-BACKEND-01 | open / 源码/产物事实 | Mask TensorFlow backend fallback does not establish MediaPipe fallback and failed initialization keeps scheduling | PKG-MASK-02, PKG-MASK-03, PKG-MASK-05 |
| MASK-DOM-01 | open / 源码/产物事实 | Mask registration and frame processing assume Danmuku DOM, readable frames and a 2D context | PKG-MASK-02, PKG-MASK-03, PKG-MASK-05 |
| MASK-NOTICE-01 | open / 源码/产物事实 | Published Mask bundles lack a separate third-party notice despite bundled SDK code | PKG-MASK-06 |
+| DANMUKU-TYPE-01 | open / 已复现 | Danmuku historical declared results, optional mount and initial Promise input disagree with runtime | PKG-DANMUKU-03, PKG-DANMUKU-06 |
+| DANMUKU-INPUT-01 | open / 已复现 | Danmuku replaces time zero with current time plus 0.5 and mutates supplied input objects | PKG-DANMUKU-02, PKG-DANMUKU-03 |
+| DANMUKU-CONFIG-01 | open / 已复现 | Danmuku JSON configuration comparison ignores a replacement filter function | PKG-DANMUKU-02, PKG-DANMUKU-03 |
+| DANMUKU-CLEANUP-01 | open / 已复现 | Danmuku removes a different resize callback and retains the settings lock timer on destroy | PKG-DANMUKU-02, PKG-DANMUKU-05 |
+| DANMUKU-TYPE-02 | open / 源码/产物事实 | Danmuku id, icons, Slider steps, heatmap points and partial configuration drift from declarations | PKG-DANMUKU-05, PKG-DANMUKU-06 |
+| DANMUKU-ASYNC-01 | open / 源码/产物事实 | Danmuku asynchronous input, worker replies and pending visibility have unverified failure and cancellation paths | PKG-DANMUKU-02, PKG-DANMUKU-03, PKG-DANMUKU-04, PKG-DANMUKU-05 |
+| DANMUKU-HEATMAP-01 | open / 源码/产物事实 | Danmuku heatmap sampling can become zero and points/instance ownership need browser validation | PKG-DANMUKU-02, PKG-DANMUKU-05 |
+| DANMUKU-SOURCE-01 | open / 已复现 | Danmuku registry Git associations differ from releases and static icon provenance remains incomplete | PKG-DANMUKU-09 |
diff --git a/refactor/risks.json b/refactor/risks.json
index e284f0c20..e52598747 100644
--- a/refactor/risks.json
+++ b/refactor/risks.json
@@ -5006,6 +5006,143 @@
],
"compatibleResolution": "Trace included SDK assets and license notices against actual bundle sources; preserve required notices in candidate packages.",
"closureCriteria": "Document incorporated SDK provenance and applicable notices; inspect built and packed artifacts, without treating manifest license claims as full clearance."
+ },
+ {
+ "id": "DANMUKU-TYPE-01",
+ "title": "Danmuku historical declared results, optional mount and initial Promise input disagree with runtime",
+ "confirmation": "reproduced",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-03",
+ "PKG-DANMUKU-06"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Preserve latest published complete root type contracts and actual legal JS return identities; expose accurate types separately.",
+ "closureCriteria": "Installed consumers verify latest root assignments and precise async/getter/mount contracts; initial Promise mismatch has an explicit tested resolution."
+ },
+ {
+ "id": "DANMUKU-INPUT-01",
+ "title": "Danmuku replaces time zero with current time plus 0.5 and mutates supplied input objects",
+ "confirmation": "reproduced",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-02",
+ "PKG-DANMUKU-03"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Separate the time-zero defect from observable input object identity/mutation before changing parsing or queue ownership.",
+ "closureCriteria": "Zero, absent, negative and explicit times plus object identity are covered with candidate expectations and compatibility decisions."
+ },
+ {
+ "id": "DANMUKU-CONFIG-01",
+ "title": "Danmuku JSON configuration comparison ignores a replacement filter function",
+ "confirmation": "reproduced",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-02",
+ "PKG-DANMUKU-03"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Compare relevant configuration values without dropping callable properties; retain callback receivers and config event ordering.",
+ "closureCriteria": "Function-only changes take effect, unchanged options remain stable and partial configuration/callback reentry has regression evidence."
+ },
+ {
+ "id": "DANMUKU-CLEANUP-01",
+ "title": "Danmuku removes a different resize callback and retains the settings lock timer on destroy",
+ "confirmation": "reproduced",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-02",
+ "PKG-DANMUKU-05"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Track and release exact subscription and timer ownership across settings, renderer and instances.",
+ "closureCriteria": "Repeated lifecycle and pending settings actions leave no owned subscriptions, timers or late DOM writes."
+ },
+ {
+ "id": "DANMUKU-TYPE-02",
+ "title": "Danmuku id, icons, Slider steps, heatmap points and partial configuration drift from declarations",
+ "confirmation": "source-observed",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-05",
+ "PKG-DANMUKU-06"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Validate actual accepted data and static properties, retain root compatibility and document effective fields.",
+ "closureCriteria": "Positive and negative installed consumers and source behavior tests cover these fields without widening away old factory contracts."
+ },
+ {
+ "id": "DANMUKU-ASYNC-01",
+ "title": "Danmuku asynchronous input, worker replies and pending visibility have unverified failure and cancellation paths",
+ "confirmation": "source-observed",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-02",
+ "PKG-DANMUKU-03",
+ "PKG-DANMUKU-04",
+ "PKG-DANMUKU-05"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Reproduce load ordering, Bilibili rejection and late worker/visibility paths before defining operation ownership.",
+ "closureCriteria": "Failures settle, obsolete results cannot alter new queues or destroyed instances, and worker resources are released with browser evidence."
+ },
+ {
+ "id": "DANMUKU-HEATMAP-01",
+ "title": "Danmuku heatmap sampling can become zero and points/instance ownership need browser validation",
+ "confirmation": "source-observed",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-02",
+ "PKG-DANMUKU-05"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Use isolated timeout-protected reproduction for narrow dimensions, then define finite sampling and per-instance rendering.",
+ "closureCriteria": "Narrow widths terminate, points/config behavior is explicit and multiple SVG/control instances remain independent."
+ },
+ {
+ "id": "DANMUKU-SOURCE-01",
+ "title": "Danmuku registry Git associations differ from releases and static icon provenance remains incomplete",
+ "confirmation": "reproduced",
+ "status": "open",
+ "owners": [
+ "PKG-DANMUKU-09"
+ ],
+ "evidence": [
+ "refactor/baselines/danmuku-contract.md",
+ "refactor/baselines/danmuku-contract-validation.json",
+ "refactor/baselines/danmuku-release.json"
+ ],
+ "compatibleResolution": "Use actual archive identity, preserve missing historical Git information and audit icon source/notice obligations.",
+ "closureCriteria": "Candidate tarball paths, complete module forms and icon/source provenance are explicitly reviewed; unresolved history is not invented."
}
]
}
diff --git a/refactor/scripts/danmuku-contract.mjs b/refactor/scripts/danmuku-contract.mjs
new file mode 100644
index 000000000..c66068095
--- /dev/null
+++ b/refactor/scripts/danmuku-contract.mjs
@@ -0,0 +1,103 @@
+import assert from 'node:assert/strict'
+import { execFileSync } from 'node:child_process'
+import fs from 'node:fs'
+import path from 'node:path'
+import process from 'node:process'
+import { fileURLToPath } from 'node:url'
+import { ensureArchive, hash, readMember, refactorDir } from './releases.mjs'
+
+const workspace = path.dirname(refactorDir.replace(/[\\/]$/u, ''))
+const prefix = 'packages/artplayer-plugin-danmuku/'
+
+export function danmukuArchiveFiles(archive) {
+ const names = execFileSync('tar', ['-tzf', archive], { encoding: 'utf8' }).trim().split(/\r?\n/u)
+ const descriptions = execFileSync('tar', ['-tvzf', archive], { encoding: 'utf8' }).trim().split(/\r?\n/u)
+ assert.equal(names.length, descriptions.length)
+ assert.equal(new Set(names).size, names.length, 'Duplicate archive entries')
+ return names.filter((name, index) => {
+ const kind = descriptions[index][0]
+ assert(kind === 'd' || kind === '-', `Unsupported archive entry: ${name}`)
+ // npm 5.1.7 contains directory headers without a trailing slash, including package.
+ assert((name.startsWith('package/') || (name === 'package' && kind === 'd'))
+ && !name.includes('\\') && !name.split('/').includes('..'), `Invalid archive path: ${name}`)
+ return kind === '-'
+ }).sort()
+}
+
+function gitText(commit, file) {
+ return execFileSync('git', ['show', `${commit}:${file}`], { cwd: workspace, encoding: 'utf8', maxBuffer: 16 * 1024 * 1024 }).replaceAll('\r\n', '\n')
+}
+
+export async function verifyDanmukuContract() {
+ const baseline = JSON.parse(fs.readFileSync(path.join(refactorDir, 'baselines/danmuku-release.json'), 'utf8'))
+ const releases = [baseline.release, ...baseline.previous]
+ assert.deepEqual(releases.map(release => release.version).sort(), [...baseline.registrySnapshot.selectedVersions].sort())
+ assert.deepEqual(baseline.registrySnapshot.catalog.map(item => item.version), baseline.registrySnapshot.stableVersions)
+ const archives = new Map()
+ for (const release of releases) {
+ const metadata = baseline.registrySnapshot.catalog.find(item => item.version === release.version)
+ for (const field of ['tarball', 'integrity', 'publishedAt'])
+ assert.equal(release[field], metadata[field], `${release.version}/${field}`)
+ assert.equal(release.registryGitHead, metadata.gitHead)
+ const archive = await ensureArchive(release)
+ assert.deepEqual(danmukuArchiveFiles(archive), Object.keys(release.files).sort())
+ for (const [file, expected] of Object.entries(release.files))
+ assert.equal(hash(readMember(archive, file)), expected, `${release.version}/${file}`)
+ const manifest = JSON.parse(readMember(archive, 'package/package.json'))
+ assert.deepEqual(manifest, release.manifest)
+ assert.equal(manifest.name, release.name)
+ assert.equal(manifest.version, release.version)
+ const memberExists = target => assert(Object.hasOwn(release.files, `package/${target.replace(/^\.\//u, '')}`), `${release.version}/${target}`)
+ for (const field of ['main', 'module', 'types', 'legacy']) {
+ assert.equal(manifest[field] ?? null, release.entrypoints[field])
+ if (manifest[field])
+ memberExists(manifest[field])
+ }
+ assert.deepEqual(manifest.exports ?? null, release.entrypoints.exports)
+ function checkExports(value) {
+ if (typeof value === 'string')
+ memberExists(value)
+ else if (value && typeof value === 'object')
+ Object.values(value).forEach(checkExports)
+ }
+ checkExports(manifest.exports)
+ for (const association of [release.registrySourceManifest, release.historicalCore]) {
+ if (association.status === 'verified-local-git-object') {
+ assert.equal(association.commit, release.registryGitHead)
+ const text = gitText(association.commit, association.file)
+ assert.equal(hash(text), association.sha256LF)
+ assert.equal(JSON.parse(text).version, association.version)
+ }
+ else {
+ assert(['registry-gitHead-absent', 'git-object-or-path-unavailable'].includes(association.status))
+ if (association.status === 'registry-gitHead-absent')
+ assert.equal(release.registryGitHead, null)
+ }
+ }
+ for (const comparison of release.registrySourceComparison) {
+ if (comparison.sha256LF) {
+ const digest = hash(gitText(release.registryGitHead, comparison.file))
+ assert.equal(digest, comparison.sha256LF)
+ assert.equal(comparison.matchesArchiveBytes, digest === release.files[`package/${comparison.file.slice(prefix.length)}`])
+ }
+ else {
+ assert.equal(comparison.status, 'git-object-or-path-unavailable')
+ }
+ }
+ archives.set(release.version, archive)
+ }
+ const sources = new Map()
+ for (const [file, expected] of Object.entries(baseline.source)) {
+ const source = gitText(baseline.sourceCommit, file)
+ assert.equal(hash(source), expected, file)
+ sources.set(file, source)
+ }
+ for (const file of baseline.observations.latestArchiveMatchesFrozenSourceFiles)
+ assert.equal(hash(sources.get(file)), baseline.release.files[`package/${file.slice(prefix.length)}`])
+ return { baseline, archives, sources }
+}
+
+if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
+ const { baseline, archives, sources } = await verifyDanmukuContract()
+ console.log(JSON.stringify({ sourceCommit: baseline.sourceCommit, sourceFiles: sources.size, catalogStableVersions: baseline.registrySnapshot.stableVersions.length, releases: [...archives.keys()], validation: 'SHA512/SHA256, actual archive members and entrypoints, frozen Git source and available registry Git associations; no playback or publishing claim' }, null, 2))
+}
diff --git a/refactor/scripts/danmuku-contract.test.mjs b/refactor/scripts/danmuku-contract.test.mjs
new file mode 100644
index 000000000..07eba91ed
--- /dev/null
+++ b/refactor/scripts/danmuku-contract.test.mjs
@@ -0,0 +1,334 @@
+import assert from 'node:assert/strict'
+import { Buffer } from 'node:buffer'
+import fs from 'node:fs'
+import path from 'node:path'
+// eslint-disable-next-line test/no-import-node-test -- Immutable Node contract runner.
+import { test } from 'node:test'
+import vm from 'node:vm'
+import { build } from 'esbuild'
+import { verifyDanmukuContract } from './danmuku-contract.mjs'
+import { ensureArchive, readMember, refactorDir } from './releases.mjs'
+
+const { baseline, archives, sources } = await verifyDanmukuContract()
+const prefix = 'packages/artplayer-plugin-danmuku/'
+const icons = ['$on', '$off', '$config', '$style', '$mode_0_off', '$mode_0_on', '$mode_1_off', '$mode_1_on', '$mode_2_off', '$mode_2_on', '$check_on', '$check_off']
+const publicKeys = ['name', 'emit', 'load', 'config', 'hide', 'show', 'reset', 'mount', 'option', 'isHide', 'isStop']
+const optionKeys = ['danmuku', 'speed', 'margin', 'opacity', 'color', 'mode', 'modes', 'fontSize', 'antiOverlap', 'synchronousPlayback', 'mount', 'heatmap', 'width', 'points', 'filter', 'beforeEmit', 'beforeVisible', 'visible', 'emitter', 'maxLength', 'lockTime', 'theme', 'OPACITY', 'FONT_SIZE', 'MARGIN', 'SPEED', 'COLOR']
+const coreRelease = JSON.parse(fs.readFileSync(path.join(refactorDir, 'baselines/releases.json'), 'utf8')).releases.find(item => item.name === 'artplayer')
+const coreModule = { exports: {} }
+vm.runInNewContext(readMember(await ensureArchive(coreRelease), 'package/dist/artplayer.js').toString(), { module: coreModule, exports: coreModule.exports }, { timeout: 1000 })
+const core = coreModule.exports
+
+function exported(code, globals = {}) {
+ const module = { exports: {} }
+ const context = vm.createContext({ console, ...globals, module, exports: module.exports })
+ vm.runInContext(code, context, { timeout: 1000 })
+ const factory = typeof module.exports === 'function' ? module.exports : module.exports.default
+ return { module: module.exports, factory, context }
+}
+
+for (const release of [baseline.release, ...baseline.previous]) {
+ for (const field of ['main', 'legacy']) {
+ if (!release.manifest[field])
+ continue
+ test(`danmuku published ${release.version} ${field}: actual CommonJS shape and static icons`, () => {
+ const code = readMember(archives.get(release.version), `package/${release.manifest[field].replace(/^\.\//u, '')}`).toString()
+ const result = exported(code)
+ const direct = ['3.5.31', '5.3.0'].includes(release.version)
+ assert.equal(typeof result.module, direct ? 'function' : 'object')
+ assert.equal(typeof result.factory, 'function')
+ const hasIcons = release.version.startsWith('5.') && !release.version.startsWith('5.0.')
+ assert.deepEqual(Object.keys(result.factory.icons || {}), hasIcons ? icons : [])
+ if (hasIcons) {
+ const descriptor = Object.getOwnPropertyDescriptor(result.factory, 'icons')
+ assert.equal(descriptor.writable, true)
+ assert.equal(descriptor.enumerable, true)
+ assert.equal(descriptor.configurable, true)
+ }
+ })
+ }
+ if (release.manifest.module) {
+ test(`danmuku published ${release.version}: manifest ESM bytes expose a default factory`, async () => {
+ const code = readMember(archives.get(release.version), `package/${release.manifest.module.replace(/^\.\//u, '')}`)
+ const module = await import(`data:text/javascript;base64,${code.toString('base64')}`)
+ assert.equal(typeof module.default, 'function')
+ assert.deepEqual(Object.keys(module.default.icons), icons)
+ })
+ }
+}
+
+// Build only immutable Git modules in memory. Inline worker transport and CSS are
+// controlled dependencies here; real Worker/layout/visual behavior belongs to 02.
+const frozenSource = await build({ entryPoints: [`${prefix}src/index.js`], bundle: true, write: false, format: 'cjs', platform: 'browser', plugins: [{ name: 'frozen-danmuku', setup(build) {
+ build.onResolve({ filter: /.*/ }, args => ({ path: path.posix.normalize(args.importer ? path.posix.join(path.posix.dirname(args.importer), args.path) : args.path), namespace: 'frozen' }))
+ build.onLoad({ filter: /.*/, namespace: 'frozen' }, (args) => {
+ if (args.path.includes('?worker'))
+ return { contents: 'export default Worker', loader: 'js' }
+ const file = args.path.split('?')[0]
+ const found = sources.get(file) ?? sources.get(`${file}.js`)
+ assert.notEqual(found, undefined, file)
+ if (args.path.includes('?'))
+ return { contents: `export default ${JSON.stringify(found)}`, loader: 'js' }
+ return { contents: found, loader: 'js' }
+ })
+} }] })
+
+class Element {
+ constructor() {
+ this.style = {}
+ this.dataset = {}
+ this.children = []
+ this.nodes = new Map()
+ this.clientWidth = 640
+ this.clientHeight = 360
+ this.className = ''
+ this.textContent = ''
+ this.value = ''
+ }
+
+ get [Symbol.toStringTag]() { return 'HTMLDivElement' }
+ appendChild(child) {
+ child.parentElement = this
+ this.children.push(child)
+ return child
+ }
+
+ querySelector(selector) {
+ if (!this.nodes.has(selector))
+ this.nodes.set(selector, new Element())
+ return this.nodes.get(selector)
+ }
+
+ getBoundingClientRect() { return { top: 0, left: 0, right: 640, bottom: 360, width: 640, height: 360 } }
+ setAttribute(key, value) { this[key] = value }
+ addEventListener() {}
+}
+
+function environment(code) {
+ const events = []
+ const listeners = new Map()
+ const workers = []
+ const frames = new Map()
+ const timers = new Map()
+ const proxies = []
+ const host = {
+ requestAnimationFrame(callback) {
+ frames.set(frames.size + 1, callback)
+ return frames.size
+ },
+ cancelAnimationFrame(id) { frames.delete(id) },
+ }
+ class Worker {
+ constructor() { workers.push(this) }
+ terminate() { this.terminated = true }
+ postMessage() {}
+ addEventListener() {}
+ }
+ const loaded = exported(code, {
+ window: host,
+ Worker,
+ Blob,
+ URL: { createObjectURL: () => 'blob:controlled-worker', revokeObjectURL() {} },
+ atob: value => Buffer.from(value, 'base64').toString('binary'),
+ setTimeout(callback) {
+ timers.set(timers.size + 1, callback)
+ return timers.size
+ },
+ clearTimeout(id) { timers.delete(id) },
+ })
+ const body = new Element()
+ loaded.context.document = { querySelector: selector => selector === '#external' ? body : null, createElement: () => new Element() }
+ const utils = {
+ clamp: (value, min, max) => Math.min(Math.max(value, min), max),
+ setStyle: (element, key, value) => element.style[key] = value,
+ setStyles: (element, style) => Object.assign(element.style, style),
+ errorHandle: (value, message) => {
+ if (!value)
+ throw new Error(message)
+ return value
+ },
+ createElement: () => new Element(),
+ query: (selector, element) => element.querySelector(selector),
+ append: (element, child) => element.appendChild(child),
+ tooltip() {},
+ inverseClass() {},
+ addClass() {},
+ removeClass() {},
+ }
+ const art = {
+ constructor: { utils, validator: core.validator },
+ template: { $danmuku: new Element(), $player: new Element(), $controlsCenter: new Element() },
+ currentTime: 10,
+ width: 640,
+ playbackRate: 1,
+ playing: false,
+ plugins: {},
+ on(name, callback) { listeners.set(name, [...listeners.get(name) || [], callback]) },
+ off(name, callback) { listeners.set(name, (listeners.get(name) || []).filter(item => item !== callback)) },
+ emit(name, ...args) {
+ events.push({ name, args })
+ for (const callback of listeners.get(name) || [])
+ callback(...args)
+ },
+ proxy(target, name, callback) { proxies.push({ target, name, callback }) },
+ }
+ return { ...loaded, art, workers, events, listeners, frames, timers, proxies, external: body }
+}
+
+const implementations = [
+ { name: 'frozen-source', code: frozenSource.outputFiles[0].text },
+ ...['main', 'legacy'].map(field => ({ name: `published-5.3.0-${field}`, code: readMember(archives.get('5.3.0'), `package/${baseline.release.manifest[field].replace(/^\.\//u, '')}`).toString() })),
+]
+
+for (const implementation of implementations) {
+ test(`danmuku ${implementation.name}: synchronous facade, defaults, descriptors and actual method return identity`, async () => {
+ const env = environment(implementation.code)
+ const factory = env.factory({ danmuku: [] })
+ const result = factory(env.art)
+ assert.equal(typeof result.then, 'undefined')
+ assert.deepEqual(Object.keys(result), publicKeys)
+ assert.deepEqual(Object.keys(result.option), optionKeys)
+ for (const key of ['option', 'isHide', 'isStop']) {
+ const descriptor = Object.getOwnPropertyDescriptor(result, key)
+ assert.equal(typeof descriptor.get, 'function')
+ assert.equal(descriptor.set, undefined)
+ assert.equal(descriptor.enumerable, true)
+ }
+ assert.equal(result.option.speed, 5)
+ assert.deepEqual(Array.from(result.option.margin), [10, '25%'])
+ assert.equal(result.option.mount, env.art.template.$controlsCenter)
+ assert.equal(result.isStop, false)
+ const internal = result.hide()
+ assert.notEqual(internal, result, 'Historical methods return the internal Danmuku, not the public facade')
+ assert.equal(internal.name, undefined)
+ assert.equal(result.isHide, true)
+ assert.equal(result.show(), internal)
+ assert.equal(result.reset(), internal)
+ assert.equal(result.config({ opacity: 0.6 }), internal)
+ assert.equal(result.option.opacity, 0.6)
+ const emitted = result.emit({ id: 'row', text: 'hello', time: 15 })
+ assert.equal(typeof emitted.then, 'function', 'The old declaration incorrectly promises a synchronous Result')
+ assert.equal(await emitted, internal)
+ assert.equal(await result.load([{ text: 'appended', time: 16 }]), internal)
+ assert.equal(internal.queue.length, 2)
+ assert.equal(internal.queue[0].id, 'row')
+ assert.equal(result.mount('#external'), undefined)
+ assert.equal(env.external.children.length, 1)
+ assert.throws(() => result.mount(), /Can not find the mount point/u)
+ env.art.emit('destroy')
+ assert(env.workers.every(worker => worker.terminated))
+ })
+
+ test(`danmuku ${implementation.name}: load replacement/append, filters, input mutation and event argument identity`, async () => {
+ const env = environment(implementation.code)
+ let beforeEmit = 0
+ let filterReceiver
+ const result = env.factory({
+ danmuku: [],
+ beforeEmit() {
+ beforeEmit++
+ return true
+ },
+ filter(danmu) {
+ filterReceiver = this
+ return danmu.text !== 'filtered'
+ },
+ })(env.art)
+ const initial = await result.load()
+ const input = { text: 'zero', time: 0 }
+ await result.emit(input)
+ assert.equal(input.time, 10.5, 'Historical time:0 uses currentTime + 0.5')
+ assert.equal(input.mode, 0)
+ assert.equal(input.color, '#FFFFFF')
+ assert.equal(filterReceiver, result.option)
+ assert.equal(beforeEmit, 0, 'Public emit bypasses the setting beforeEmit callback')
+ const originalFilter = result.option.filter
+ result.config({ filter: () => false })
+ assert.equal(result.option.filter, originalFilter, 'Historical JSON comparison ignores a function-only config change')
+ await result.load([{ text: 'filtered' }, { text: 'two', time: 12 }])
+ assert.equal(initial.queue.length, 2)
+ const loaded = env.events.filter(event => event.name === 'artplayerPluginDanmuku:loaded').at(-1)
+ assert.equal(loaded.args[0], initial.queue)
+ await result.load()
+ assert.equal(initial.queue.length, 0)
+ await result.load(() => Promise.resolve([{ text: 'function' }]))
+ assert.equal(initial.queue.length, 1)
+ const promisedInput = vm.runInContext('Promise.resolve([{text:"promise"}])', env.context)
+ await result.load(promisedInput)
+ assert.equal(initial.queue.length, 2)
+ const failure = new Error('controlled input failure')
+ await assert.rejects(result.load(() => Promise.reject(failure)), error => error === failure)
+ assert.equal(env.events.at(-1).name, 'artplayerPluginDanmuku:error')
+ assert.equal(env.events.at(-1).args[0], failure)
+ env.art.emit('destroy')
+ })
+
+ test(`danmuku ${implementation.name}: initial Promise validation and resize cleanup historical discrepancies`, async () => {
+ const env = environment(implementation.code)
+ const promise = vm.runInContext('Promise.resolve([])', env.context)
+ assert.throws(() => env.factory({ danmuku: promise })(env.art), /danmuku/iu)
+ const result = env.factory({ danmuku: [] })(env.art)
+ await result.load()
+ const before = env.listeners.get('resize').length
+ env.art.emit('destroy')
+ assert.equal(env.listeners.get('resize').length, before, 'Historical destroy removes this.reset instead of registered this.resize; Setting listener also remains')
+ })
+
+ test(`danmuku ${implementation.name}: synchronous initial events, video hooks and settings beforeEmit path`, async () => {
+ const env = environment(implementation.code)
+ const seen = []
+ const result = env.factory({
+ danmuku: [],
+ beforeEmit(danmu) {
+ seen.push({ danmu: { ...danmu }, receiver: this })
+ return Promise.resolve(true)
+ },
+ })(env.art)
+ assert.deepEqual(env.events.map(event => event.name), ['artplayerPluginDanmuku:show', 'artplayerPluginDanmuku:config', 'artplayerPluginDanmuku:reset', 'artplayerPluginDanmuku:loaded'])
+ env.art.emit('video:play')
+ assert.equal(result.isStop, false)
+ env.art.emit('video:pause')
+ assert.equal(result.isStop, true)
+ const root = env.art.template.$controlsCenter.children[0]
+ const input = root.querySelector('.apd-input')
+ const send = root.querySelector('.apd-send')
+ input.value = ' via settings '
+ await env.proxies.find(proxy => proxy.target === send && proxy.name === 'click').callback()
+ assert.equal(seen.length, 1)
+ assert.equal(seen[0].receiver, result.option)
+ assert.equal(seen[0].danmu.text, 'via settings')
+ assert.equal(seen[0].danmu.time, 10)
+ const internal = result.show()
+ assert.equal(internal.queue[0].border, true)
+ assert.equal(internal.queue[0].time, 10.5)
+ assert.equal(input.value, '')
+ assert.equal(env.timers.size, 1)
+ env.art.emit('destroy')
+ assert.equal(env.events.at(-1).name, 'artplayerPluginDanmuku:destroy')
+ assert.equal(env.timers.size, 1, 'Historical settings lock timer is not cleared by destroy')
+ })
+}
+
+test('danmuku frozen Bilibili parser: mapped modes, entities, malformed attributes and URL fallback', async () => {
+ const source = sources.get(`${prefix}src/bilibili.js`).replace('export function bilibiliDanmuParseFromUrl', 'function bilibiliDanmuParseFromUrl')
+ const requests = []
+ const errors = []
+ const xml = ' <hi> & "x" bottomtopspecialinvalid'
+ const context = vm.createContext({
+ fetch: async (url) => {
+ requests.push(url)
+ return { text: async () => xml }
+ },
+ console: { error: (...args) => errors.push(args) },
+ })
+ vm.runInContext(`${source}\nglobalThis.parse=bilibiliDanmuParseFromXml;globalThis.load=bilibiliDanmuParseFromUrl`, context)
+ const data = await context.load('/fixture.xml')
+ assert.deepEqual(requests, ['/fixture.xml'])
+ assert.deepEqual(Array.from(data, item => item.mode), [0, 2, 1, 0])
+ assert.equal(data[0].text, ' & "x"')
+ assert.equal(data[0].color, '#ff', 'Historical parser does not left-pad RGB')
+ assert.deepEqual(Object.keys(data[0]), ['text', 'time', 'mode', 'fontSize', 'color', 'timestamp', 'pool', 'userID', 'rowID'])
+ assert.equal(context.parse(null).length, 0)
+ assert.equal(context.parse('x').length, 0)
+ assert.equal(errors.length, 1, 'Unavailable Worker falls back to the real parser')
+})
diff --git a/refactor/tasks.json b/refactor/tasks.json
index 35151b3a8..95a9fb384 100644
--- a/refactor/tasks.json
+++ b/refactor/tasks.json
@@ -3252,11 +3252,16 @@
"dependsOn": [
"BASE-05"
],
- "status": "doing",
+ "status": "done",
"risk": "H",
"deliverable": "emit/load/config/hide/show/reset/mount、option/isHide/isStop/icons 与事件清单",
"acceptance": "源码、声明、发布包、Bilibili 输入和设置入口对照",
- "evidence": []
+ "evidence": [
+ "baselines/danmuku-release.json",
+ "baselines/danmuku-contract.md",
+ "baselines/danmuku-contract-validation.json",
+ "changes/2026-09-13-PKG-DANMUKU-01-contracts.md"
+ ]
},
{
"id": "PKG-DANMUKU-02",
@@ -3270,7 +3275,7 @@
"ENG-05",
"ENG-08"
],
- "status": "todo",
+ "status": "doing",
"risk": "H",
"deliverable": "密集/稀疏弹幕、过滤/异步输入、seek/倍率/重载测试",
"acceptance": "轨道选择、发射顺序、事件、内存和可视结果可重跑",