dsh-convert-core 0.1.0-alpha.3 → 0.1.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +45 -13
  2. package/lib/adapters/anydoc.d.ts.map +1 -1
  3. package/lib/adapters/anydoc.js +4 -3
  4. package/lib/adapters/anydoc.js.map +1 -1
  5. package/lib/adapters/index.d.ts +36 -2
  6. package/lib/adapters/index.d.ts.map +1 -1
  7. package/lib/adapters/index.js +62 -7
  8. package/lib/adapters/index.js.map +1 -1
  9. package/lib/adapters/types.d.ts +21 -1
  10. package/lib/adapters/types.d.ts.map +1 -1
  11. package/lib/adapters/types.js.map +1 -1
  12. package/lib/adapters/web.d.ts +29 -0
  13. package/lib/adapters/web.d.ts.map +1 -0
  14. package/lib/adapters/web.js +166 -0
  15. package/lib/adapters/web.js.map +1 -0
  16. package/lib/contract.d.ts +55 -3
  17. package/lib/contract.d.ts.map +1 -1
  18. package/lib/contract.js +11 -3
  19. package/lib/contract.js.map +1 -1
  20. package/lib/delivery.d.ts +6 -1
  21. package/lib/delivery.d.ts.map +1 -1
  22. package/lib/delivery.js +5 -0
  23. package/lib/delivery.js.map +1 -1
  24. package/lib/http.d.ts.map +1 -1
  25. package/lib/http.js +10 -0
  26. package/lib/http.js.map +1 -1
  27. package/lib/service.d.ts.map +1 -1
  28. package/lib/service.js +79 -5
  29. package/lib/service.js.map +1 -1
  30. package/lib/web/convert.d.ts +39 -0
  31. package/lib/web/convert.d.ts.map +1 -0
  32. package/lib/web/convert.js +368 -0
  33. package/lib/web/convert.js.map +1 -0
  34. package/lib/web/extract.d.ts +37 -0
  35. package/lib/web/extract.d.ts.map +1 -0
  36. package/lib/web/extract.js +210 -0
  37. package/lib/web/extract.js.map +1 -0
  38. package/lib/web/fetch.d.ts +37 -0
  39. package/lib/web/fetch.d.ts.map +1 -0
  40. package/lib/web/fetch.js +119 -0
  41. package/lib/web/fetch.js.map +1 -0
  42. package/lib/web/index.d.ts +15 -0
  43. package/lib/web/index.d.ts.map +1 -0
  44. package/lib/web/index.js +14 -0
  45. package/lib/web/index.js.map +1 -0
  46. package/lib/web/markdown.d.ts +46 -0
  47. package/lib/web/markdown.d.ts.map +1 -0
  48. package/lib/web/markdown.js +198 -0
  49. package/lib/web/markdown.js.map +1 -0
  50. package/lib/web/types.d.ts +96 -0
  51. package/lib/web/types.d.ts.map +1 -0
  52. package/lib/web/types.js +20 -0
  53. package/lib/web/types.js.map +1 -0
  54. package/lib/web/url.d.ts +21 -0
  55. package/lib/web/url.d.ts.map +1 -0
  56. package/lib/web/url.js +75 -0
  57. package/lib/web/url.js.map +1 -0
  58. package/package.json +8 -3
  59. package/src/adapters/anydoc.ts +4 -3
  60. package/src/adapters/index.ts +68 -7
  61. package/src/adapters/types.ts +17 -1
  62. package/src/adapters/web.ts +174 -0
  63. package/src/contract.ts +64 -3
  64. package/src/delivery.ts +11 -0
  65. package/src/http.ts +7 -0
  66. package/src/service.ts +78 -7
  67. package/src/types/turndown-plugin-gfm.d.ts +9 -0
  68. package/src/web/convert.ts +417 -0
  69. package/src/web/extract.ts +238 -0
  70. package/src/web/fetch.ts +144 -0
  71. package/src/web/index.ts +15 -0
  72. package/src/web/markdown.ts +222 -0
  73. package/src/web/types.ts +102 -0
  74. package/src/web/url.ts +75 -0
  75. package/web/app.js +12 -2
  76. package/web/index.html +8 -1
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # dsh-convert-core
2
2
 
3
- 文档转换**内核**:把 Office / OpenDocument / RTF / EPUB / CSV / 文本层 PDF 转成
4
- **知识就绪 Markdown + 本地图片**,自带 HTTP API 和一个 Vue 3(Options API)可视化控制台。
3
+ 转换**内核**:把 Office / OpenDocument / RTF / EPUB / CSV / 文本层 PDF、音视频与图片、
4
+ 扫描件、**网页链接(含微信公众号文章)** 转成 **知识就绪 Markdown + 本地图片**,
5
+ 自带 HTTP API 和一个 Vue 3(Options API)可视化控制台。
5
6
  它可以**独立运行**,不依赖 DSH。
6
7
 
7
8
  ```bash
@@ -61,9 +62,21 @@ const handler = createRequestHandler({ service, basePath: '/convert' })
61
62
  convert-out/<taskId>/
62
63
  index.md front matter + 正文,图片引用为 assets/img-<sha1_12>.<ext>
63
64
  assets/ 内容寻址的本地图片
65
+ source/ 原始输入(0048):抓下来的 HTML、上传的那份文件
64
66
  manifest.json 来源、引擎与格式、warnings、content_hash、ingest 负载
65
67
  ```
66
68
 
69
+ **`source/` 是底稿,不是资产**(0048)。抽取是有损的(正文外的元素、内嵌音视频都不在
70
+ 产物里),而工作目录在交付成功那一刻就被删掉 —— 不留底稿,事后想换个抽取规则重来一遍就
71
+ 没有素材了。网页那档由适配器交出**真正被解析的那份 HTML**(`kind=url` 是抓下来的页面,
72
+ `kind=file` 是读进来的文件);其他档由内核把暂存输入复制过来。`manifest.original` 记它的
73
+ `rel` / `bytes` / `sha256`,`manifest.ingest.original` 让知识层也能记住它。内联文本没有独立
74
+ 底稿(`index.md` 就是它),所以不写这个键,而不是造一个空的。
75
+
76
+ `manifest.document` 记**文档自身的元数据**(作者、发布时间、站点、描述)—— 适配器能拿到
77
+ 多少写多少,拿不到就不写。它一路走到 SourceRaw 的 front matter(OKF v0.2 的
78
+ `description` 与 `sources[]`)。
79
+
67
80
  front matter 与知识录入契约对齐:`title / created_at / updated_at` 必填,
68
81
  `external_id / source_format / content_hash / parser / source_path /
69
82
  source_type_source / source_type_candidates` 由内核如实填写。
@@ -73,29 +86,44 @@ source_type_source / source_type_candidates` 由内核如实填写。
73
86
 
74
87
  ## 范围
75
88
 
76
- 文档类**只做文件类**:网页链接不在范围内。
77
- **本地音视频与图片(`iddoc`)、扫描件轻量 OCR(`scanned`)已落地**;版面/表格/公式级的
78
- 高质量扫描档(docling / MinerU)还没做。
89
+ 文件类:14 种文档格式(含文本层 PDF)、本地音视频与图片、扫描件轻量 OCR、另存的页面(`.html/.htm`)。
90
+ **网页(`kind=url` 链接)已落地**:静态抓取 + 正文抽取,公众号文章有专用路径。
91
+ 还没做:内核内的浏览器档(Playwright / CDP)、在线视频字幕/转写、版面/表格/公式级的高质量扫描档
92
+ (docling / MinerU)。
93
+
94
+ **风控墙怎么办**:静态抓取会被「需要真浏览器」的墙挡下(公众号重复访问会跳验证码页,
95
+ `WECHAT_RATE_LIMITED`)。这时**不要**去骗验证码,而是换一条路:在浏览器里正常打开这一页
96
+ (验证由用户自己的浏览器完成),另存为 HTML 后按 `.html` 提交 —— 本档会从 `og:url` 把原始
97
+ 地址读回来,产物与直抓完全一致。
79
98
 
80
- `needsOcr` 是文档线划在哪里的地方:扫描版 PDF 在默认路径上会**明确失败**,并把错误建议指向
81
- `scanned` 档(或 `SCANNED_OCR=1`),而不是悄悄改成云端 OCR。特别地,**不使用 anydoc 的
82
- `ocr: 'hosted'`** —— 它会把整份文档发往 Firecrawl Parse 云端,与本包「本地优先」的取舍冲突。
99
+ Agent 侧的同一件事已经写成 skill:**`browser-page-to-markdown`** —— 用 Kimi WebBridge 驱动
100
+ 用户的真实浏览器读一次页面、把渲染后的 HTML 落到本地,再交给本档(`kind=file` 的 `.html`)。
101
+ 一个实测过的细节:把浏览器拿回来的 `poc_token` 拼回裸 `fetch` **没有用**(仍 302),
102
+ 凭证是绑会话的 —— 所以路线是「浏览器读、本档转」,不是「让直抓借用浏览器的凭证」。
103
+
104
+ `needsOcr` 不再是一条死路:`.pdf` 先走 `anydoc`(文本层质量最好、零依赖),它报 `needsOcr`
105
+ 时**自动**改走 `scanned` 档,任务消息与 `manifest.warnings` 里写明换了什么(`ADAPTER_FALLBACK`),
106
+ 产物里另有 `SCANNED_TIER` 说明这一档不做版面还原。判据在 `resolveFallbackAdapter()`
107
+ (`src/adapters/index.ts`),换档只发生一次。特别地,**不使用 anydoc 的 `ocr: 'hosted'`**
108
+ —— 它会把整份文档发往 Firecrawl Parse 云端,与本包「本地优先」的取舍冲突。
83
109
 
84
110
  ## 适配器
85
111
 
86
112
  | 输入 | 适配器 | 说明 |
87
113
  | --- | --- | --- |
88
114
  | 14 种文档格式(含文本层 PDF) | `anydoc` | 见上;内嵌图片落地到 `assets/` |
115
+ | 网页 / 微信公众号文章(`kind=url` 的链接,或 `kind=file` 的 `.html/.htm`) | `web` | 能力来自内核自带的网页管线 `src/web/`:抓取(或直接读一份已在手上的 HTML)→ 正文抽取(公众号走 `#js_content`,其他站点走 Readability)→ 图片按内容 sha1 落地 `assets/` → turndown 出 GFM Markdown。**只抓用户给的这一个地址、不跟进页面里的链接**;正文图片引用一律改成 `assets/…`,远程地址不会留在产物里。另存的 HTML 会从页面自带的 `og:url` / `canonical` 里把原始地址读回来(相对地址、`source_url`、幂等身份都靠它) |
89
116
  | 音视频(`.mp4 .mov .mkv .webm …`、`.mp3 .m4a .wav …`)与图片(`.png .jpg .webp …`) | `iddoc` | 能力来自内核自带的本地媒体管线 [`src/media/`](docs/media-to-md.md):**字幕优先**,无字幕时才本地转写(默认**不**下载模型,`IDDOC_ASR=1` 才允许);图片默认只收录不做 OCR;视频关键帧(均匀采样 + 场景变化 + 内容去重)落地到 `assets/` |
90
- | 扫描件 / 纯图片页 PDF | `scanned` | 同一包的 `convertScannedDocument()`:`pypdfium2` 逐页渲染 + 本地 `RapidOCR` 识别,`page-0001.png …` 落地为 assets。**显式 opt-in**:默认 `.pdf` 仍走 `anydoc`,只有 `adapter: "scanned"` 或 `SCANNED_OCR=1` 才走本档;不做版面还原 |
91
- | `.md .markdown .txt .json .tsv .yml .log .adoc .rst .org .tex` | `text` | 直通 + 契约归一化(重写 front matter) |
117
+ | 扫描件 / 纯图片页 PDF | `scanned` | 同一包的 `convertScannedDocument()`:`pypdfium2` 逐页渲染 + 本地 `RapidOCR` 识别,`page-0001.png …` 落地为 assets。默认作为 `anydoc` 报 `needsOcr` 时的**自动兜底**;`SCANNED_OCR=1` 是「跳过 anydoc 直接走 OCR」的显式出口。不做版面还原 |
118
+ | `.md .markdown .txt .json .tsv .yml .log .adoc .rst .org .tex` | `text` | 直通 + 契约归一化(重写 front matter)|
92
119
 
93
120
  未登记扩展名只有在**字节确实是文本**(无 NUL、UTF-8 可解码)时才走 `text`,
94
121
  否则返回 `FORMAT_UNSUPPORTED` 并列出支持的格式。
95
122
 
96
123
  `iddoc` 与 `scanned` 是**需要外部依赖**的两个适配器:`iddoc` 要 `ffmpeg`/`ffprobe`
97
- (转写/OCR 档还要 `uvx`),`scanned` 只要 `uvx`。缺依赖时按既有约定返回
98
- `DEPENDENCY_MISSING` + 安装命令,能力上报里如实写 `available: false`,不静默降级。
124
+ (转写/OCR 档还要 `uvx`),`scanned` 只要 `uvx`。`web` 不需要外部二进制,但需要网络。
125
+ 缺依赖时按既有约定返回 `DEPENDENCY_MISSING` + 安装命令,能力上报里如实写
126
+ `available: false`,不静默降级。
99
127
 
100
128
  ## API
101
129
 
@@ -103,7 +131,7 @@ source_type_source / source_type_candidates` 由内核如实填写。
103
131
  | --- | --- | --- |
104
132
  | `GET` | `/api/health` | 服务与交付根目录 |
105
133
  | `GET` | `/api/capabilities` | 适配器可用性、引擎版本、支持的扩展名 |
106
- | `POST` | `/api/tasks` | 受理任务:JSON(`text` / `local_path`)、原始字节、或 `multipart/form-data` |
134
+ | `POST` | `/api/tasks` | 受理任务:JSON(`text` / `url` / `local_path`)、原始字节、或 `multipart/form-data` |
107
135
  | `GET` | `/api/tasks` | 任务列表 |
108
136
  | `GET` | `/api/tasks/:id` | 任务详情(含 `ingest` 负载) |
109
137
  | `POST` | `/api/tasks/:id/cancel` | 取消(删除半成品交付) |
@@ -121,6 +149,10 @@ curl -X POST localhost:8787/api/tasks -H 'content-type: application/json' \
121
149
  curl -X POST localhost:8787/api/tasks -H 'content-type: application/json' \
122
150
  -d '{"kind":"file","local_path":"/abs/path/spec.docx"}'
123
151
 
152
+ # 网页 / 微信公众号文章(只抓这一个地址)
153
+ curl -X POST localhost:8787/api/tasks -H 'content-type: application/json' \
154
+ -d '{"kind":"url","url":"https://mp.weixin.qq.com/s?__biz=..."}'
155
+
124
156
  # 上传
125
157
  curl -X POST "localhost:8787/api/tasks?kind=file" -F "file=@spec.docx"
126
158
  ```
@@ -1 +1 @@
1
- {"version":3,"file":"anydoc.d.ts","sourceRoot":"","sources":["../../src/adapters/anydoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAA+D,MAAM,YAAY,CAAA;AAE9I,eAAO,MAAM,iBAAiB,UAW7B,CAAA;AAED,UAAU,WAAW;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,UAAU,YAAY;IACpB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5E,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpE,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAA;IACjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAC5C;AAmBD,kFAAkF;AAClF,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,CAqBxD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAWvE;AA0BD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAiClH;AAwJD,eAAO,MAAM,aAAa,EAAE,OAQ3B,CAAA"}
1
+ {"version":3,"file":"anydoc.d.ts","sourceRoot":"","sources":["../../src/adapters/anydoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAA+D,MAAM,YAAY,CAAA;AAE9I,eAAO,MAAM,iBAAiB,UAW7B,CAAA;AAED,UAAU,WAAW;IACnB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,UAAU,YAAY;IACpB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5E,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpE,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAAA;IACjD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAC5C;AAmBD,kFAAkF;AAClF,wBAAsB,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,CAqBxD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAWvE;AA0BD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,cAAc,CAiClH;AAyJD,eAAO,MAAM,aAAa,EAAE,OAQ3B,CAAA"}
@@ -159,9 +159,10 @@ function sourceFormatFor(anydocFormat, filename) {
159
159
  }
160
160
  /** anydoc's error codes are already precise; keep them instead of flattening. */
161
161
  const ANYDOC_SUGGESTIONS = {
162
- needsOcr: '该 PDF 是扫描件/纯图片页,anydoc 本地不做 OCR(它只覆盖文本层 PDF)。走扫描档:把 adapter 指定为 "scanned",' +
163
- '或设环境变量 SCANNED_OCR=1 让 .pdf 直接走它 —— 扫描档用 pypdfium2 渲染页图 + 本地 RapidOCR 识别文字,不出网,' +
164
- '但不做版面还原;需要版面/表格/公式时见 issues/0017 的可选高质量档。' +
162
+ needsOcr: '该 PDF 是扫描件/纯图片页,anydoc 本地不做 OCR(它只覆盖文本层 PDF)。内核会**自动**改走扫描档再试一次' +
163
+ '(`resolveFallbackAdapter`):扫描档用 pypdfium2 渲染页图 + 本地 RapidOCR 识别文字,不出网,但不做版面还原。' +
164
+ '这里还能看到这条错误,说明自动换档没发生或没成功:本机缺 uvx(扫描档的运行时),或输入不是 `.pdf`。' +
165
+ '要**跳过** anydoc 直接走扫描档,设环境变量 SCANNED_OCR=1。' +
165
166
  '不要使用 anydoc 的 ocr:"hosted":它会把整份文档发往 Firecrawl Parse 云端,与 0015 的本地优先原则冲突。',
166
167
  encrypted: '文档有密码保护,请先去掉密码再转换。',
167
168
  unsupported: '该格式不在本版范围内(doc/docx/ppt/pptx/xls/xlsx/odt/ods/odp/rtf/epub/csv/文本层 PDF)。',
@@ -1 +1 @@
1
- {"version":3,"file":"anydoc.js","sourceRoot":"","sources":["../../src/adapters/anydoc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAuG,MAAM,YAAY,CAAA;AAE9I,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,OAAO;IACP,MAAM,EAAE,OAAO,EAAE,OAAO;IACxB,aAAa;IACb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAC1D,QAAQ;IACR,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IACjC,eAAe;IACf,MAAM,EAAE,MAAM,EAAE,MAAM;IACtB,gCAAgC;IAChC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;CAChC,CAAA;AAmCD,MAAM,gBAAgB,GAA2B;IAC/C,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;CACrB,CAAA;AAED,IAAI,aAAgD,CAAA;AACpD,IAAI,aAAiC,CAAA;AACrC,IAAI,WAA+B,CAAA;AAEnC,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAyD,CAAA;YAC1G,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAA;YACnF,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;YAClG,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAA;gBACzH,aAAa,GAAG,GAAG,CAAC,OAAO,CAAA;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YACjB,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpE,aAAa,GAAG,SAAS,CAAA;YACzB,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,aAAa,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,IAAI,CAAC;QACH,MAAM,UAAU,EAAE,CAAA;QAClB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IAC5G,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,0BAA0B,WAAW,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAC3G,UAAU,EAAE,6HAA6H;SAC1I,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAkB;IACtC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACtE,IAAI,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC;QAAE,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAChF,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IAClH,IAAI,QAAQ,IAAI,QAAQ,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAA;IACnD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8EAA8E;AAC9E,SAAS,qBAAqB,CAAC,QAAwB;IACrD,MAAM,KAAK,GAAgE,EAAE,CAAA;IAC7E,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,SAAQ;YACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YAC5B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBAAE,SAAQ;YACtF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC/C,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAChF,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,MAA2C;IAChG,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,SAAS,GAAwC,EAAE,CAAA;IACzD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;QACd,IAAI,GAAG,EAAE,CAAC;YACR,kEAAkE;YAClE,MAAM,UAAU,GAAG,KAAK;iBACrB,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzF,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YACpC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAA;QACrD,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACnB,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,CAAA;YACxC,SAAQ;QACV,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3G,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,gBAAgB,OAAO,IAAI,CAAA;QACvD,QAAQ,CAAC,IAAI,CACX,GAAG,SAAS,CAAC,MAAM,qDAAqD,CACzE,CAAA;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7G,CAAC;AAED,SAAS,eAAe,CAAC,YAA2B,EAAE,QAAgB;IACpE,MAAM,MAAM,GAAG,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/E,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,MAAM,CAAA;IACnC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,iFAAiF;AACjF,MAAM,kBAAkB,GAA2B;IACjD,QAAQ,EACN,4EAA4E;QAC5E,iFAAiF;QACjF,2CAA2C;QAC3C,2EAA2E;IAC7E,SAAS,EAAE,oBAAoB;IAC/B,WAAW,EAAE,0EAA0E;IACvF,SAAS,EAAE,oBAAoB;IAC/B,aAAa,EAAE,uCAAuC;IACtD,WAAW,EAAE,8BAA8B;CAC5C,CAAA;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,KAAK,GAAG,KAAoD,CAAA;IAClE,MAAM,IAAI,GAAG,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACrE,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACvH,OAAO,IAAI,YAAY,CACrB,UAAU,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,EAClE,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,KAAK,EAAE,EAClC,kBAAkB,CAAC,IAAI,CAAC,CACzB,CAAA;IACH,CAAC;IACD,OAAO,IAAI,YAAY,CAAC,eAAe,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAA;AAChI,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,OAAuB;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAA;IACpC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,YAAY,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAEzE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAC9C,MAAM,IAAI,YAAY,CACpB,oBAAoB,EACpB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAClF,gDAAgD,CACjD,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAExC,IAAI,QAAQ,GAAkB,IAAI,CAAA;IAClC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtE,IAAI,QAAgB,CAAA;IACpB,IAAI,QAAQ,GAAmB,EAAE,CAAA;IACjC,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IACD,8EAA8E;IAC9E,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAAkC,CAAA;YAChD,sEAAsE;YACtE,SAAS,CAAC,IAAI,CACZ,YAAY,KAAK,EAAE,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAClG,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAA;IACxE,CAAC;IAED,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAChD,MAAM,MAAM,GAAwC,EAAE,CAAA;IACtD,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,MAAM,QAAQ,GAAqB,EAAE,CAAA;IACrC,IAAI,cAAc,GAAG,CAAC,CAAA;IAEtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACzE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,cAAc,IAAI,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,+EAA+E;YAC/E,cAAc,IAAI,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,cAAc,IAAI,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,GAAG,GAAG,cAAc,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAA;QAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;QACpC,MAAM,CAAC,IAAI,CAAC;YACV,GAAG;YACH,IAAI;YACJ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxD,KAAK,MAAM,IAAI,IAAI,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAChG,IAAI,SAAS,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,CAAA;IAC7E,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,QAAQ,cAAc,8CAA8C;SAC9E,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,QAAQ,QAAQ,CAAC,MAAM,4BAA4B,SAAS,CAAC,MAAM,QAAQ,SAAS,CAAC,QAAQ,QAAQ;SAC/G,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAA;IACxE,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QACxG,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE;QACnC,YAAY,EAAE,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACjD,MAAM,EAAE,UAAU,aAAa,IAAI,SAAS,IAAI,QAAQ,IAAI,SAAS,EAAE;QACvE,UAAU;QACV,QAAQ;QACR,kBAAkB,EAAE,EAAE,mBAAmB,EAAE,aAAa,IAAI,SAAS,EAAE;QACvE,UAAU,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE;QACrC,MAAM;KACP,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,gHAAgH;IAC7H,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB;IAC7B,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACzH,KAAK,EAAE,kBAAkB;IACzB,GAAG;CACJ,CAAA"}
1
+ {"version":3,"file":"anydoc.js","sourceRoot":"","sources":["../../src/adapters/anydoc.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,51 @@
6
6
  * pass-through. Unknown extensions are only treated as text when the bytes are
7
7
  * actually textual — guessing there is how "converted successfully" becomes a lie.
8
8
  *
9
- * `.pdf` 默认仍走 anydoc(文本层最好、零依赖);只有显式 `SCANNED_OCR=1` 才改走
10
- * `scanned`(纯图片页的轻量 OCR 档)。
9
+ * `.pdf` 默认仍走 anydoc(文本层最好、零依赖);它报 `needsOcr` 时由
10
+ * {@link resolveFallbackAdapter} 当场改走 `scanned`(见那里的理由)。
11
11
  */
12
12
  import type { ConvertRequest } from '../contract.js';
13
13
  import { type Adapter, type AdapterAvailability } from './types.js';
14
14
  export declare const ADAPTERS: Adapter[];
15
+ /** `file` 档认扩展名;`url` 档只有 web 一家,不按扩展名分。 */
16
+ export declare const URL_ADAPTER_ID = "web";
15
17
  export declare function findAdapter(id: string): Adapter | undefined;
16
18
  /** Cheap binary sniff: NUL bytes or invalid UTF-8 in the head means "not text". */
17
19
  export declare function looksTextual(path: string): Promise<boolean>;
20
+ /**
21
+ * 客户端文件选择框的 `accept` 列表就是它。
22
+ *
23
+ * 因此这里必须**列全适配器真正认的扩展名**:只写文档那 21 个的话,选择框会把 `.mp4`
24
+ * 与另存下来的 `.html` 一并挡在门外 —— 内核收得了,界面却不让选。
25
+ */
18
26
  export declare const SUPPORTED_EXTENSIONS: string[];
19
27
  export declare function resolveAdapter(request: ConvertRequest, filename: string, inputPath: string | undefined): Promise<Adapter>;
28
+ export interface FallbackDecision {
29
+ adapter: Adapter;
30
+ /** 写进任务消息与 warnings 的一句话,说明为什么换了档。 */
31
+ reason: string;
32
+ }
33
+ /**
34
+ * 失败了要不要**当场换一个档再试一次**。
35
+ *
36
+ * 今天只有一条:anydoc 报 `needsOcr` 且输入是 `.pdf` → 改走 `scanned`(本地 OCR 档)。
37
+ *
38
+ * 为什么是自动的、而不是像 0017 原来写的那样要求用户显式指定 adapter:
39
+ *
40
+ * 1. **用户没有别的选择信息。** 「这份 PDF 有没有文本层」是字节层面的事实,用户在点击
41
+ * 「上传」之前无从判断;让他为一个自己看不见的属性去选适配器,等于把内核的判断工作推给用户。
42
+ * 实跑踩到过:面板上一条 `ANYDOC_NEEDS_OCR`,建议里写着「把 adapter 指定为 scanned」,
43
+ * 而面板当时的 adapter 下拉框只有 anydoc 一项 —— 建议本身就不可执行。
44
+ * 2. **它不改变「不静默降级」这条底线。** 换档会写进任务消息(面板上看得到)与
45
+ * `manifest.warnings`(`ADAPTER_FALLBACK`),并且产物里带 `SCANNED_TIER` 警告说明
46
+ * 这一档不做版面还原。用户看到的是「换了什么、为什么换、代价是什么」,不是「假装成功」。
47
+ * 3. **代价可控。** 扫描档全程本地(pypdfium2 + RapidOCR,不出网),只在 uvx 存在时才走;
48
+ * uvx 不在就原样抛出 anydoc 的错误。
49
+ *
50
+ * 仍然保留 `SCANNED_OCR=1` 那条显式出口:它管的是「跳过 anydoc 直接走 OCR」,
51
+ * 与这里「anydoc 试过、失败、再换」是两件事。
52
+ */
53
+ export declare function resolveFallbackAdapter(cause: unknown, request: ConvertRequest, filename: string, inputPath: string | undefined): Promise<FallbackDecision | undefined>;
20
54
  export interface AdapterCapability {
21
55
  id: string;
22
56
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEjF,eAAO,MAAM,QAAQ,EAAE,OAAO,EAA+D,CAAA;AAE7F,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE3D;AAED,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBjE;AAED,eAAO,MAAM,oBAAoB,UAAkE,CAAA;AAEnG,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,OAAO,CAAC,CAgClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,YAAY,EAAE,mBAAmB,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAyClE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,OAAO,EAAgB,KAAK,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAEjF,eAAO,MAAM,QAAQ,EAAE,OAAO,EAA2E,CAAA;AAEzG,4CAA4C;AAC5C,eAAO,MAAM,cAAc,QAAQ,CAAA;AAEnC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE3D;AAED,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBjE;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,UAEhC,CAAA;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,OAAO,CAAC,CAmClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAYvC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,YAAY,EAAE,mBAAmB,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAA;IAC7B,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACjF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA0ClE"}
@@ -6,8 +6,8 @@
6
6
  * pass-through. Unknown extensions are only treated as text when the bytes are
7
7
  * actually textual — guessing there is how "converted successfully" becomes a lie.
8
8
  *
9
- * `.pdf` 默认仍走 anydoc(文本层最好、零依赖);只有显式 `SCANNED_OCR=1` 才改走
10
- * `scanned`(纯图片页的轻量 OCR 档)。
9
+ * `.pdf` 默认仍走 anydoc(文本层最好、零依赖);它报 `needsOcr` 时由
10
+ * {@link resolveFallbackAdapter} 当场改走 `scanned`(见那里的理由)。
11
11
  */
12
12
  import { open } from 'node:fs/promises';
13
13
  import { extname } from 'node:path';
@@ -15,8 +15,11 @@ import { ANYDOC_EXTENSIONS, anydocAdapter, anydocAvailability } from './anydoc.j
15
15
  import { IDDOC_EXTENSIONS, iddocAdapter } from './iddoc.js';
16
16
  import { SCANNED_EXTENSIONS, scannedAdapter, scannedPreferred } from './scanned.js';
17
17
  import { textAdapter, TEXT_EXTENSIONS } from './text.js';
18
+ import { WEB_FILE_EXTENSIONS, webAdapter } from './web.js';
18
19
  import { AdapterError } from './types.js';
19
- export const ADAPTERS = [anydocAdapter, iddocAdapter, scannedAdapter, textAdapter];
20
+ export const ADAPTERS = [anydocAdapter, iddocAdapter, scannedAdapter, webAdapter, textAdapter];
21
+ /** `file` 档认扩展名;`url` 档只有 web 一家,不按扩展名分。 */
22
+ export const URL_ADAPTER_ID = 'web';
20
23
  export function findAdapter(id) {
21
24
  return ADAPTERS.find(adapter => adapter.id === id);
22
25
  }
@@ -43,7 +46,15 @@ export async function looksTextual(path) {
43
46
  await handle.close().catch(() => undefined);
44
47
  }
45
48
  }
46
- export const SUPPORTED_EXTENSIONS = [...ANYDOC_EXTENSIONS, ...IDDOC_EXTENSIONS, ...TEXT_EXTENSIONS];
49
+ /**
50
+ * 客户端文件选择框的 `accept` 列表就是它。
51
+ *
52
+ * 因此这里必须**列全适配器真正认的扩展名**:只写文档那 21 个的话,选择框会把 `.mp4`
53
+ * 与另存下来的 `.html` 一并挡在门外 —— 内核收得了,界面却不让选。
54
+ */
55
+ export const SUPPORTED_EXTENSIONS = [
56
+ ...new Set([...ANYDOC_EXTENSIONS, ...SCANNED_EXTENSIONS, ...IDDOC_EXTENSIONS, ...WEB_FILE_EXTENSIONS, ...TEXT_EXTENSIONS]),
57
+ ];
47
58
  export async function resolveAdapter(request, filename, inputPath) {
48
59
  if (request.adapter) {
49
60
  const explicit = findAdapter(request.adapter);
@@ -58,8 +69,13 @@ export async function resolveAdapter(request, filename, inputPath) {
58
69
  }
59
70
  if (request.kind === 'text')
60
71
  return textAdapter;
72
+ if (request.kind === 'url')
73
+ return webAdapter;
61
74
  const extension = extname(filename).toLowerCase();
62
- // 扫描档是显式 opt-in:默认仍让 anydoc 试文本层,失败了错误建议再指向 scanned。
75
+ // 另存下来的页面按「网页」处理,而不是当纯文本直通 —— 否则 `.html` 会以源码形态入库。
76
+ if (WEB_FILE_EXTENSIONS.includes(extension))
77
+ return webAdapter;
78
+ // 显式 opt-in:跳过 anydoc 的文本层尝试,直接走 OCR 档。
63
79
  if (SCANNED_EXTENSIONS.includes(extension) && scannedPreferred())
64
80
  return scannedAdapter;
65
81
  if (ANYDOC_EXTENSIONS.includes(extension))
@@ -70,7 +86,45 @@ export async function resolveAdapter(request, filename, inputPath) {
70
86
  return textAdapter;
71
87
  if (inputPath && (await looksTextual(inputPath)))
72
88
  return textAdapter;
73
- throw new AdapterError('FORMAT_UNSUPPORTED', `不支持的输入格式:${extension || '(无扩展名)'}`, `本版做文件类:${ANYDOC_EXTENSIONS.join(' ')}(文档)、${SCANNED_EXTENSIONS.join(' ')}(扫描件 OCR 档)、${IDDOC_EXTENSIONS.join(' ')}(音视频/图片)以及 ${TEXT_EXTENSIONS.join(' ')}(直通);网页链接仍在 issues/0017。`);
89
+ throw new AdapterError('FORMAT_UNSUPPORTED', `不支持的输入格式:${extension || '(无扩展名)'}`, `本版做文件类:${ANYDOC_EXTENSIONS.join(' ')}(文档)、${SCANNED_EXTENSIONS.join(' ')}(扫描件 OCR 档)、${IDDOC_EXTENSIONS.join(' ')}(音视频/图片)、${WEB_FILE_EXTENSIONS.join(' ')}(另存的页面)以及 ${TEXT_EXTENSIONS.join(' ')}(直通);网页链接走 kind=url。`);
90
+ }
91
+ /**
92
+ * 失败了要不要**当场换一个档再试一次**。
93
+ *
94
+ * 今天只有一条:anydoc 报 `needsOcr` 且输入是 `.pdf` → 改走 `scanned`(本地 OCR 档)。
95
+ *
96
+ * 为什么是自动的、而不是像 0017 原来写的那样要求用户显式指定 adapter:
97
+ *
98
+ * 1. **用户没有别的选择信息。** 「这份 PDF 有没有文本层」是字节层面的事实,用户在点击
99
+ * 「上传」之前无从判断;让他为一个自己看不见的属性去选适配器,等于把内核的判断工作推给用户。
100
+ * 实跑踩到过:面板上一条 `ANYDOC_NEEDS_OCR`,建议里写着「把 adapter 指定为 scanned」,
101
+ * 而面板当时的 adapter 下拉框只有 anydoc 一项 —— 建议本身就不可执行。
102
+ * 2. **它不改变「不静默降级」这条底线。** 换档会写进任务消息(面板上看得到)与
103
+ * `manifest.warnings`(`ADAPTER_FALLBACK`),并且产物里带 `SCANNED_TIER` 警告说明
104
+ * 这一档不做版面还原。用户看到的是「换了什么、为什么换、代价是什么」,不是「假装成功」。
105
+ * 3. **代价可控。** 扫描档全程本地(pypdfium2 + RapidOCR,不出网),只在 uvx 存在时才走;
106
+ * uvx 不在就原样抛出 anydoc 的错误。
107
+ *
108
+ * 仍然保留 `SCANNED_OCR=1` 那条显式出口:它管的是「跳过 anydoc 直接走 OCR」,
109
+ * 与这里「anydoc 试过、失败、再换」是两件事。
110
+ */
111
+ export async function resolveFallbackAdapter(cause, request, filename, inputPath) {
112
+ if (request.adapter === scannedAdapter.id)
113
+ return undefined;
114
+ const code = cause?.code;
115
+ if (code !== 'ANYDOC_NEEDS_OCR')
116
+ return undefined;
117
+ if (extname(filename).toLowerCase() !== '.pdf')
118
+ return undefined;
119
+ if (!inputPath)
120
+ return undefined;
121
+ const availability = await (scannedAdapter.probe?.() ?? Promise.resolve(scannedAdapter.availability()));
122
+ if (!availability.available)
123
+ return undefined;
124
+ return {
125
+ adapter: scannedAdapter,
126
+ reason: '这份 PDF 没有文本层(纯图片页),anydoc 不做 OCR,已改用本地扫描档(逐页 OCR,不做版面还原)',
127
+ };
74
128
  }
75
129
  /** Everything the console and the DSH settings panel need to tell the truth. */
76
130
  export async function capabilityReport() {
@@ -104,12 +158,13 @@ export async function capabilityReport() {
104
158
  defaults: {
105
159
  document: anydoc.available ? 'anydoc' : '(不可用)',
106
160
  text: 'text',
161
+ url: 'web',
107
162
  video: 'iddoc',
108
163
  audio: 'iddoc',
109
164
  image: 'iddoc',
110
165
  scannedPdf: 'scanned',
111
166
  },
112
- extensions: ANYDOC_EXTENSIONS,
167
+ extensions: SUPPORTED_EXTENSIONS,
113
168
  };
114
169
  }
115
170
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ConvertRequest, ConvertWarning, SourceFormat } from '../contract.js';
1
+ import type { ConvertDocumentMetadata, ConvertRequest, ConvertWarning, SourceFormat } from '../contract.js';
2
2
  /**
3
3
  * An asset an adapter hands to the service as bytes. The service owns the
4
4
  * delivery directory, so it computes the path, size and hash.
@@ -25,11 +25,31 @@ export interface AdapterOutput {
25
25
  sourceFormat: SourceFormat;
26
26
  parser: string;
27
27
  sourcePath?: string;
28
+ /** `kind=url` 的产物带上身份地址,写进 front matter 的 `source_url`。 */
29
+ sourceUrl?: string;
28
30
  warnings: ConvertWarning[];
29
31
  dependencyVersions: Record<string, string>;
30
32
  /** Stable identity for idempotency (file hash). */
31
33
  externalId?: string;
32
34
  assets?: PreparedAsset[];
35
+ /**
36
+ * 这次转换的**原始输入字节**,交给内核写进交付目录的 `source/`。
37
+ *
38
+ * 网页这一档必须给:抓下来的 HTML(或用户另存的那份)就是底稿,交付成功后暂存
39
+ * 目录会被删,不留它就没有第二次抽取的素材。适配器自己最清楚「我到底解析了什么」,
40
+ * 所以由它给,而不是让内核去猜暂存文件。
41
+ */
42
+ original?: {
43
+ filename: string;
44
+ data: Buffer;
45
+ contentType?: string;
46
+ };
47
+ /**
48
+ * 文档自身的元数据。**能拿到多少写多少**,不要填猜出来的值。
49
+ * 这些键会一路走到 SourceRaw 的 front matter(OKF v0.2 的 `description` /
50
+ * `sources[]`),所以用 {@link ConvertDocumentMetadata} 里的固定键名。
51
+ */
52
+ document?: ConvertDocumentMetadata;
33
53
  }
34
54
  export interface AdapterAvailability {
35
55
  available: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,CAAA;IACvB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3E;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAA;IACnB,yCAAyC;IACzC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,mBAAmB,CAAA;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1C,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CACzD;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAM/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE3G;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,cAAc,CAAA;IACvB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3E;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC1C,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAA;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE;;;;OAIG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAA;IACnB,yCAAyC;IACzC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAA;IAC/B,iEAAiE;IACjE,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,mBAAmB,CAAA;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC1C,GAAG,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CACzD;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAM/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAiEA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAQ;IACZ,UAAU,CAAS;IAE5B,YAAY,IAAY,EAAE,OAAe,EAAE,UAAmB;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAiFA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAQ;IACZ,UAAU,CAAS;IAE5B,YAAY,IAAY,EAAE,OAAe,EAAE,UAAmB;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * web —— 网页 / 微信公众号文章 adapter(issue 0017 的 web 档)。
3
+ *
4
+ * 与 `iddoc` / `scanned` 一样,这个文件**只做契约映射**:能力全在同包的 `src/web/`
5
+ * (静态抓取 → 正文抽取 → 图片落地 → Markdown)。内核的交付契约、图片写盘、front matter
6
+ * 都不在这里重新实现一遍。
7
+ *
8
+ * 两种输入,同一个引擎:
9
+ *
10
+ * - `kind=url`:内核自己去抓。快、零依赖,但遇到「风控/验证码」这类需要**真浏览器**的墙
11
+ * 就只能如实报错(见 `WECHAT_RATE_LIMITED` 的三条出路)。
12
+ * - `kind=file` + `.html/.htm`:**已经在手上的 HTML**(用户在浏览器里「另存为」下来的,
13
+ * 或浏览器自动化读出来交给本档的)。这条路的正文由页内脚本渲染过,验证码墙也绕过去了
14
+ * —— 不是绕过验证码,而是**用户自己的浏览器**把验证做完了。原始地址从页面自带的
15
+ * `og:url` / `canonical` 里读回来,所以相对地址、`source_url`、幂等身份都还在。
16
+ *
17
+ * 环境变量(全部是显式开关):
18
+ * WEB_TIMEOUT_MS 单次抓取超时(默认 30000)
19
+ * WEB_MAX_HTML_BYTES HTML 体积上限(默认 8 MiB)
20
+ * WEB_MAX_IMAGES 单篇最多下载几张图(默认 120)
21
+ * WEB_MAX_IMAGE_BYTES 单张图片体积上限(默认 12 MiB)
22
+ * WEB_SKIP_IMAGES=1 只要文字,不下载图片
23
+ * WEB_RESPECT_ROBOTS=1 命中 robots.txt Disallow 时直接拒绝(默认只记警告)
24
+ */
25
+ import { type Adapter } from './types.js';
26
+ /** 本档能当「文件」处理的扩展名:另存下来的页面。 */
27
+ export declare const WEB_FILE_EXTENSIONS: string[];
28
+ export declare const webAdapter: Adapter;
29
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/adapters/web.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAgB,KAAK,OAAO,EAAyF,MAAM,YAAY,CAAA;AAI9I,8BAA8B;AAC9B,eAAO,MAAM,mBAAmB,UAAoB,CAAA;AAsIpD,eAAO,MAAM,UAAU,EAAE,OAOxB,CAAA"}