feishu-docs-cli 0.1.0-beta.15 → 0.1.0-beta.17

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.
package/README.md CHANGED
@@ -78,6 +78,7 @@ Requires Node.js >= 18.3.
78
78
  | `sheets:spreadsheet:readonly` | Embedded spreadsheet read (read command) |
79
79
  | `board:whiteboard:node:read` | Whiteboard export as image (read command) |
80
80
  | `bitable:app:readonly` | Embedded bitable/table read (read command) |
81
+ | `docs:document.media:download` | Download images and attachments from documents |
81
82
 
82
83
  **Additional scopes** are requested reactively — when an API call needs a scope you haven't authorized, the CLI detects this from the API error response and prompts you. Common ones:
83
84
 
package/README.zh.md CHANGED
@@ -77,6 +77,7 @@ npm install -g github:cliff-byte/feishu-docs-cli
77
77
  | `sheets:spreadsheet:readonly` | 嵌入式电子表格只读(read 命令) |
78
78
  | `board:whiteboard:node:read` | 画板导出为图片(read 命令) |
79
79
  | `bitable:app:readonly` | 嵌入式多维表格只读(read 命令) |
80
+ | `docs:document.media:download` | 下载云文档中的图片和附件 |
80
81
 
81
82
  **额外权限**会按需自动提示 — 当 API 调用需要你未授权的权限时,CLI 会从 API 错误响应中检测并提示你授权。常见权限:
82
83
 
@@ -9,6 +9,7 @@ import { blocksToMarkdown } from "../parser/blocks-to-md.js";
9
9
  import { BlockType } from "../parser/block-types.js";
10
10
  import { CliError } from "../utils/errors.js";
11
11
  import { withScopeRecovery } from "../utils/scope-prompt.js";
12
+ import { downloadImages } from "../services/image-download.js";
12
13
  import { fetchAllBlocks } from "../services/doc-blocks.js";
13
14
  import { getDocumentInfo } from "../services/block-writer.js";
14
15
  import { resolveDocument } from "../utils/document-resolver.js";
@@ -21,16 +22,22 @@ async function fetchRawContent(authInfo, documentId) {
21
22
  }
22
23
  /**
23
24
  * Batch get temporary download URLs for file tokens (images, files).
25
+ * The API accepts at most 5 file_tokens per request, so larger sets
26
+ * are split into chunks automatically.
24
27
  */
28
+ const TMP_URL_BATCH_SIZE = 5;
25
29
  async function batchGetTmpUrls(authInfo, fileTokens) {
26
30
  if (fileTokens.length === 0)
27
31
  return new Map();
28
- const res = await fetchWithAuth(authInfo, "/open-apis/drive/v1/medias/batch_get_tmp_download_url", { params: { file_tokens: fileTokens } });
29
32
  const urlMap = new Map();
30
- const data = res?.data;
31
- const items = (data?.tmp_download_urls || []);
32
- for (const item of items) {
33
- urlMap.set(item.file_token, item.tmp_download_url);
33
+ for (let i = 0; i < fileTokens.length; i += TMP_URL_BATCH_SIZE) {
34
+ const chunk = fileTokens.slice(i, i + TMP_URL_BATCH_SIZE);
35
+ const res = await fetchWithAuth(authInfo, "/open-apis/drive/v1/medias/batch_get_tmp_download_url", { params: { file_tokens: chunk } });
36
+ const data = res?.data;
37
+ const items = (data?.tmp_download_urls || []);
38
+ for (const item of items) {
39
+ urlMap.set(item.file_token, item.tmp_download_url);
40
+ }
34
41
  }
35
42
  return urlMap;
36
43
  }
@@ -319,16 +326,17 @@ export async function read(args, globalOpts) {
319
326
  return;
320
327
  }
321
328
  // Default: convert to Markdown
322
- // Batch resolve image/file URLs (needs drive:drive scope)
329
+ // Batch resolve image/file URLs download to local files for persistent access
323
330
  // Uses withScopeRecovery for interactive auth recovery; falls back gracefully on failure
324
331
  const fileTokens = extractFileTokens(blocks);
325
332
  let imageUrlMap = new Map();
326
333
  if (fileTokens.length > 0) {
327
334
  try {
328
- imageUrlMap = await withScopeRecovery(async () => {
335
+ const tmpUrlMap = await withScopeRecovery(async () => {
329
336
  const { authInfo: freshAuth } = await createClient(globalOpts);
330
337
  return batchGetTmpUrls(freshAuth, fileTokens);
331
338
  }, globalOpts, ["drive:drive"]);
339
+ imageUrlMap = await downloadImages(tmpUrlMap);
332
340
  }
333
341
  catch {
334
342
  process.stderr.write("feishu-docs: warning: 获取图片/文件链接失败,链接将为空\n");
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAShE;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,gCAAgC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAC7E,CAAC;IACF,OAAS,GAAG,EAAE,IAAgC,EAAE,OAAkB,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE9C,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,uDAAuD,EACvD,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CACxC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,EAAE,IAA2C,CAAC;IAC9D,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAE3C,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAe;IACxC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAe;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IACE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK;YACnC,KAAK,CAAC,KAAiC,EAAE,KAAK,EAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,KAAgC,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAcD;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAkB,EAClB,SAAiB;IAEjB,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,SAAS,IAAI,CAC1D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAEzC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,aAAa,CACX,QAAQ,EACR,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,SAAS,EACzG,EAAE,CACH;QACD,aAAa,CACX,QAAQ,EACR,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAC1G,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAC/B;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,SAAS,CAAC,IAA2C,CAAC;IACzE,MAAM,WAAW,GAAG,UAAU,CAAC,IAA2C,CAAC;IAC3E,MAAM,MAAM,GACV,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CACzB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,OAAO,GACX,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAC1B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,GAAG,GAAI,CAAC,CAAC,MAAkC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,QAAkB,EAClB,UAAkB;IAElB,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,gBAAgB,GACpB,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,MAAM,eAAe,GACnB,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,QAAQ,EACR,qCAAqC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EACpF,EAAE,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAA2C,CAAC;IACrE,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAkC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,yDAAyD;IACzD,2EAA2E;IAC3E,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,oEAAoE;IACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,QAAQ,EACR,qCAAqC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACjH,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAC9C,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,IAA2C,CAAC;IACzE,MAAM,IAAI,GAAG,CAAE,UAAU,EAAE,UAAsC,EAAE,MAAM;QACvE,EAAE,CAAgB,CAAC;IACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,qCAAqC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,MAAM,GAAI,WAAW,CAAC,CAAC,CAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,WAAW;SACxB,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAE,GAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,QAAQ,EACR,mCAAmC,kBAAkB,CAAC,UAAU,CAAC,oBAAoB,CACtF,CAAC;IACF,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,UAAU,MAAM,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAe;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG;YACrB,KAAK,CAAC,IAAI,EAAE,QAAQ;YACpB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,MAAM,EAAE,QAAQ;YACtB,KAAK,CAAC,OAAO,EAAE,QAAQ;YACvB,KAAK,CAAC,IAAI,EAAE,QAAQ;YACpB,KAAK,CAAC,KAAK,EAAE,QAAQ;SACtB,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAkB,EAClB,OAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,2FAA2F;IAC3F,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,QAAQ,EACR,gCAAgC,EAChC,EAAE,CACH,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,EAAE,IAA2C,CAAC;YACnE,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAiB,EAAE,QAAQ,CAAC,IAAc,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2CAA2C;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAsC;gBAChD,YAAY,EAAE,SAAS;gBACvB,QAAQ,EAAE,KAAK;aAChB,CAAC;YACF,MAAM,cAAc,GAAa;gBAC/B,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAiB;gBACvB,WAAW;aACZ,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,cAAc,EACd,mCAAmC,EACnC,EAAE,MAAM,EAAE,CACX,CAAC;YACF,MAAM,KAAK,GAAG,CAAE,GAAG,EAAE,IAAgC,EAAE,SAAS;gBAC9D,EAAE,CAAkC,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QACxC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KACjD;IACD,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAiB,EACjB,UAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAChB,cAAc,EACd,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1B,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;IAEzB,IACE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QAC7D,OAAO,KAAK,MAAM;QAClB,GAAG,CAAC,KAAK,KAAK,SAAS,EACvB,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,IAAI,OAAO,KAAK,QAAQ,KAAK,UAAU,IAAI;YAC7C,CAAC,CAAC,IAAI,OAAO,KAAK,UAAU,GAAG,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAChB,cAAc,EACd,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IACE,GAAG,YAAY,QAAQ;YACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;gBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;YACD,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,oBAAoB;gBAClB,2EAA2E;gBAC3E,qCAAqC;gBACrC,6DAA6D,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,0DAA0D;IAC1D,yFAAyF;IACzF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,iBAAiB,CACnC,KAAK,IAAI,EAAE;gBACT,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC/D,OAAO,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,CAAC,EACD,UAAU,EACV,CAAC,aAAa,CAAC,CAChB,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2CAA2C,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,IAAI;gBAAE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uCAAuC,KAAK,IAAI;oBAC9C,2EAA2E,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,IAAI,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,QAAQ;gBAAE,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,IAAI;oBAC5C,iFAAiF,CACpF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,KAAK,IAAI,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uCAAuC,KAAK,IAAI;oBAC9C,kFAAkF,CACrF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,KAAK,GAAG,KAAK,CACxD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,UAAU,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;QAC3E,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,aAAa,IAAI,CAAC,UAAU,IAAI,CAAC;QAChE,MAAM,IAAI,UAAU,UAAU,IAAI,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE;QACjC,WAAW;QACX,WAAW;QACX,cAAc;QACd,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/commands/read.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAShE;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,gCAAgC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAC7E,CAAC;IACF,OAAS,GAAG,EAAE,IAAgC,EAAE,OAAkB,IAAI,EAAE,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAoB;IAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,uDAAuD,EACvD,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CACnC,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,EAAE,IAA2C,CAAC;QAC9D,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,iBAAiB,IAAI,EAAE,CAE3C,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,MAAe;IACxC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAe;IAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IACE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,KAAK;YACnC,KAAK,CAAC,KAAiC,EAAE,KAAK,EAC/C,CAAC;YACD,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,KAAgC,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAcD;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAkB,EAClB,SAAiB;IAEjB,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,SAAS,IAAI,CAC1D,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAEzC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,aAAa,CACX,QAAQ,EACR,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,SAAS,EACzG,EAAE,CACH;QACD,aAAa,CACX,QAAQ,EACR,8BAA8B,kBAAkB,CAAC,QAAQ,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAC1G,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAC/B;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,SAAS,CAAC,IAA2C,CAAC;IACzE,MAAM,WAAW,GAAG,UAAU,CAAC,IAA2C,CAAC;IAC3E,MAAM,MAAM,GACV,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CACzB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,OAAO,GACX,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAC1B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzB,MAAM,GAAG,GAAI,CAAC,CAAC,MAAkC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YACjD,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,QAAkB,EAClB,UAAkB;IAElB,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,gBAAgB,GACpB,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACtE,MAAM,eAAe,GACnB,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtE,MAAM,OAAO,GAAG,MAAM,aAAa,CACjC,QAAQ,EACR,qCAAqC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,EACpF,EAAE,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,IAA2C,CAAC;IACrE,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAkC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,yDAAyD;IACzD,2EAA2E;IAC3E,MAAM,WAAW,GAAG,eAAe;QACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,oEAAoE;IACpE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEnD,MAAM,SAAS,GAAG,MAAM,aAAa,CACnC,QAAQ,EACR,qCAAqC,kBAAkB,CAAC,gBAAgB,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,EACjH,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAC9C,CAAC;IACF,MAAM,UAAU,GAAG,SAAS,CAAC,IAA2C,CAAC;IACzE,MAAM,IAAI,GAAG,CAAE,UAAU,EAAE,UAAsC,EAAE,MAAM;QACvE,EAAE,CAAgB,CAAC;IACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,qCAAqC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,MAAM,GAAI,WAAW,CAAC,CAAC,CAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,WAAW;SACxB,KAAK,CAAC,CAAC,CAAC;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAE,GAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,UAAkB;IAElB,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,QAAQ,EACR,mCAAmC,kBAAkB,CAAC,UAAU,CAAC,oBAAoB,CACtF,CAAC;IACF,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,UAAU,MAAM,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAAe;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG;YACrB,KAAK,CAAC,IAAI,EAAE,QAAQ;YACpB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,QAAQ,EAAE,QAAQ;YACxB,KAAK,CAAC,MAAM,EAAE,QAAQ;YACtB,KAAK,CAAC,OAAO,EAAE,QAAQ;YACvB,KAAK,CAAC,IAAI,EAAE,QAAQ;YACpB,KAAK,CAAC,KAAK,EAAE,QAAQ;SACtB,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;oBAC7B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,QAAkB,EAClB,OAAiB;IAEjB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,2FAA2F;IAC3F,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,4DAA4D;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,aAAa,CAC9B,QAAQ,EACR,gCAAgC,EAChC,EAAE,CACH,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,EAAE,IAA2C,CAAC;YACnE,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAiB,EAAE,QAAQ,CAAC,IAAc,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2CAA2C;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAsC;gBAChD,YAAY,EAAE,SAAS;gBACvB,QAAQ,EAAE,KAAK;aAChB,CAAC;YACF,MAAM,cAAc,GAAa;gBAC/B,GAAG,QAAQ;gBACX,IAAI,EAAE,QAAiB;gBACvB,WAAW;aACZ,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,cAAc,EACd,mCAAmC,EACnC,EAAE,MAAM,EAAE,CACX,CAAC;YACF,MAAM,KAAK,GAAG,CAAE,GAAG,EAAE,IAAgC,EAAE,SAAS;gBAC9D,EAAE,CAAkC,CAAC;YACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAgB;IAC/B,OAAO,EAAE;QACP,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QACxC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;KACjD;IACD,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAiB,EACjB,UAAsB;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAY,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAChB,cAAc,EACd,mDAAmD,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1B,IAAI,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC;IAEzB,IACE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;QAC7D,OAAO,KAAK,MAAM;QAClB,GAAG,CAAC,KAAK,KAAK,SAAS,EACvB,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ;YAClB,CAAC,CAAC,IAAI,OAAO,KAAK,QAAQ,KAAK,UAAU,IAAI;YAC7C,CAAC,CAAC,IAAI,OAAO,KAAK,UAAU,GAAG,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAChB,cAAc,EACd,4BAA4B,CAC7B,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,kCAAkC;IAClC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IACE,GAAG,YAAY,QAAQ;YACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;gBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;YACD,MAAM,IAAI,QAAQ,CAChB,mBAAmB,EACnB,oBAAoB;gBAClB,2EAA2E;gBAC3E,qCAAqC;gBACrC,6DAA6D,CAChE,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,iCAAiC;IACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,gFAAgF;IAChF,yFAAyF;IACzF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,CACvC,KAAK,IAAI,EAAE;gBACT,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC/D,OAAO,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAChD,CAAC,EACD,UAAU,EACV,CAAC,aAAa,CAAC,CAChB,CAAC;YACF,WAAW,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2CAA2C,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,IAAI,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,IAAI;gBAAE,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uCAAuC,KAAK,IAAI;oBAC9C,2EAA2E,CAC9E,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,IAAI,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACxD,IAAI,QAAQ;gBAAE,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,IAAI;oBAC5C,iFAAiF,CACpF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,KAAK,IAAI,CAC7C,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;IAClD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,IAAI;gBAAE,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IACE,GAAG,YAAY,QAAQ;gBACvB,CAAC,GAAG,CAAC,SAAS,KAAK,mBAAmB;oBACpC,GAAG,CAAC,SAAS,KAAK,eAAe,CAAC,EACpC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uCAAuC,KAAK,IAAI;oBAC9C,kFAAkF,CACrF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,KAAK,GAAG,KAAK,CACxD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,IAAI,GAA4B,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;QACD,MAAM,IAAI,OAAO,CAAC;QAClB,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,UAAU,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;QAC3E,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,aAAa,IAAI,CAAC,UAAU,IAAI,CAAC;QAChE,MAAM,IAAI,UAAU,UAAU,IAAI,CAAC;QACnC,MAAM,IAAI,SAAS,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,gBAAgB,CAAC,MAAM,EAAE;QACjC,WAAW;QACX,WAAW;QACX,cAAc;QACd,aAAa;QACb,YAAY;KACb,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -4,15 +4,14 @@
4
4
  * Uses Convert + Descendant API for writing new content.
5
5
  * Restore uses the old children API (backup data is raw blocks, not markdown).
6
6
  */
7
- import { readFile, unlink } from "node:fs/promises";
7
+ import { readFile } from "node:fs/promises";
8
8
  import { existsSync } from "node:fs";
9
9
  import { resolve, normalize, sep } from "node:path";
10
- import { randomUUID } from "node:crypto";
11
10
  import { createClient, fetchWithAuth } from "../client.js";
12
11
  import { CliError } from "../utils/errors.js";
13
- import { convertAndWrite, extractMarkdownTitle, } from "../services/markdown-convert.js";
12
+ import { convertAndWrite, extractMarkdownTitle, sanitizeBlocks, writeDescendant, } from "../services/markdown-convert.js";
14
13
  import { resolveDocument } from "../utils/document-resolver.js";
15
- import { readBody, getDocumentInfo, clearDocument, backupDocument, sleep, BATCH_SIZE, QPS_DELAY, BACKUPS_DIR, } from "../services/block-writer.js";
14
+ import { readBody, getDocumentInfo, clearDocument, backupDocument, BACKUPS_DIR, } from "../services/block-writer.js";
16
15
  export const meta = {
17
16
  options: {
18
17
  body: { type: "string" },
@@ -46,7 +45,7 @@ export async function update(args, globalOpts) {
46
45
  if (args.append) {
47
46
  return appendToDocument(authInfo, documentId, bodyContent, globalOpts);
48
47
  }
49
- return overwriteDocument(authInfo, documentId, bodyContent, globalOpts);
48
+ return overwriteDocument(authInfo, documentId, bodyContent, globalOpts, doc.spaceId, doc.nodeToken);
50
49
  }
51
50
  async function appendToDocument(authInfo, documentId, bodyContent, globalOpts) {
52
51
  const docInfo = await getDocumentInfo(authInfo, documentId);
@@ -62,7 +61,7 @@ async function appendToDocument(authInfo, documentId, bodyContent, globalOpts) {
62
61
  process.stdout.write(`已追加内容到文档 ${documentId}\n`);
63
62
  }
64
63
  }
65
- async function overwriteDocument(authInfo, documentId, bodyContent, globalOpts) {
64
+ async function overwriteDocument(authInfo, documentId, bodyContent, globalOpts, spaceId, nodeToken) {
66
65
  // Extract first H1 heading as document title, strip from body
67
66
  const { title: extractedTitle, body: strippedBody } = extractMarkdownTitle(bodyContent);
68
67
  const contentToWrite = strippedBody.trim() || undefined;
@@ -106,22 +105,26 @@ async function overwriteDocument(authInfo, documentId, bodyContent, globalOpts)
106
105
  // Update document title after successful content write
107
106
  if (extractedTitle) {
108
107
  try {
109
- await fetchWithAuth(authInfo, `/open-apis/docx/v1/documents/${encodeURIComponent(documentId)}`, {
110
- method: "PATCH",
111
- body: { title: extractedTitle },
112
- });
108
+ if (spaceId && nodeToken) {
109
+ // Wiki documents use the wiki node rename API
110
+ await fetchWithAuth(authInfo, `/open-apis/wiki/v2/spaces/${encodeURIComponent(spaceId)}/nodes/${encodeURIComponent(nodeToken)}/update_title`, {
111
+ method: "POST",
112
+ body: { title: extractedTitle },
113
+ });
114
+ }
115
+ else {
116
+ // Drive documents use the docx PATCH API
117
+ await fetchWithAuth(authInfo, `/open-apis/docx/v1/documents/${encodeURIComponent(documentId)}`, {
118
+ method: "PATCH",
119
+ body: { title: extractedTitle },
120
+ });
121
+ }
113
122
  }
114
123
  catch {
115
124
  process.stderr.write(`feishu-docs: warning: 更新文档标题失败,标题可能未同步\n`);
116
125
  }
117
126
  }
118
- // Write succeededclean up backup file
119
- try {
120
- await unlink(backupPath);
121
- }
122
- catch {
123
- // Non-critical: backup file cleanup failure is silent
124
- }
127
+ // Backup kept for undo rotateBackups() in backupDocument handles cleanup
125
128
  if (globalOpts.json) {
126
129
  process.stdout.write(JSON.stringify({
127
130
  success: true,
@@ -133,50 +136,6 @@ async function overwriteDocument(authInfo, documentId, bodyContent, globalOpts)
133
136
  process.stdout.write(`已覆盖更新文档 ${documentId}\n`);
134
137
  }
135
138
  }
136
- /**
137
- * Recursively restore blocks and their descendants from a backup block map.
138
- * Uses the old children API (backup data is raw blocks, not markdown).
139
- */
140
- const MAX_RESTORE_DEPTH = 20;
141
- async function restoreChildren(authInfo, documentId, parentBlockId, childIds, blockMap, revisionId, depth = 0) {
142
- let rev = revisionId;
143
- if (!childIds || childIds.length === 0)
144
- return rev;
145
- if (depth >= MAX_RESTORE_DEPTH) {
146
- process.stderr.write(`feishu-docs: warning: 恢复深度超过 ${MAX_RESTORE_DEPTH} 层,跳过更深层级\n`);
147
- return rev;
148
- }
149
- for (let i = 0; i < childIds.length; i += BATCH_SIZE) {
150
- const batchIds = childIds.slice(i, i + BATCH_SIZE);
151
- const batch = batchIds
152
- .map((id) => blockMap.get(id))
153
- .filter(Boolean)
154
- .map((b) => {
155
- const { block_id, parent_id, children, ...rest } = b;
156
- return rest;
157
- });
158
- if (batch.length === 0)
159
- continue;
160
- if (i > 0)
161
- await sleep(QPS_DELAY);
162
- const res = await fetchWithAuth(authInfo, `/open-apis/docx/v1/documents/${encodeURIComponent(documentId)}/blocks/${encodeURIComponent(parentBlockId)}/children`, {
163
- method: "POST",
164
- body: { children: batch, index: i },
165
- params: { document_revision_id: rev, client_token: randomUUID() },
166
- });
167
- const resData = res?.data;
168
- rev = resData?.document_revision_id ?? rev;
169
- const createdIds = (resData?.children ?? []).map((c) => c.block_id);
170
- for (let j = 0; j < createdIds.length && j < batchIds.length; j++) {
171
- const original = blockMap.get(batchIds[j]);
172
- if (original?.children?.length && original.children.length > 0) {
173
- await sleep(QPS_DELAY);
174
- rev = await restoreChildren(authInfo, documentId, createdIds[j], original.children, blockMap, rev, depth + 1);
175
- }
176
- }
177
- }
178
- return rev;
179
- }
180
139
  async function restoreFromBackup(authInfo, documentId, backupPath, globalOpts) {
181
140
  const resolvedPath = resolve(normalize(backupPath));
182
141
  const resolvedBackups = resolve(BACKUPS_DIR);
@@ -209,11 +168,17 @@ async function restoreFromBackup(authInfo, documentId, backupPath, globalOpts) {
209
168
  process.stderr.write("feishu-docs: warning: 备份文件中没有可恢复的内容\n");
210
169
  return;
211
170
  }
212
- const blockMap = new Map(blocks.map((b) => [b.block_id, b]));
171
+ // Build ConvertedBlocks for Descendant API (supports all block types)
172
+ const allBlocks = sanitizeBlocks(blocks.filter((b) => b.block_type !== 1));
173
+ const converted = {
174
+ blocks: allBlocks,
175
+ firstLevelBlockIds: topLevelIds,
176
+ blockIdToImageUrls: {},
177
+ };
213
178
  const docInfo = await getDocumentInfo(authInfo, documentId);
214
179
  let rev = await clearDocument(authInfo, documentId, docInfo.revisionId);
215
180
  try {
216
- rev = await restoreChildren(authInfo, documentId, documentId, topLevelIds, blockMap, rev);
181
+ rev = await writeDescendant(authInfo, documentId, documentId, converted, rev);
217
182
  }
218
183
  catch (restoreErr) {
219
184
  process.stderr.write(`feishu-docs: error: 恢复过程中出错: ${restoreErr.message}\n` +
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
package/dist/scopes.js CHANGED
@@ -22,6 +22,8 @@ export const BASE_SCOPES = [
22
22
  "board:whiteboard:node:read",
23
23
  // Embedded bitable / multi-dimensional tables (read command, bitable/v1 API)
24
24
  "bitable:app:readonly",
25
+ // Document media download (images/attachments temp URLs, drive/v1/medias API)
26
+ "docs:document.media:download",
25
27
  ];
26
28
  /**
27
29
  * Merge `extra` scopes into `current`, deduplicating across both arrays,
@@ -1 +1 @@
1
- {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,2DAA2D;IAC3D,gBAAgB;IAChB,mBAAmB;IACnB,WAAW;IACX,eAAe;IACf,6BAA6B;IAC7B,sDAAsD;IACtD,6BAA6B;IAC7B,oDAAoD;IACpD,4BAA4B;IAC5B,6EAA6E;IAC7E,sBAAsB;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,KAAe;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAuB;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,CACL,kBAAkB,QAAQ,IAAI;QAC9B,8BAA8B;QAC9B,oCAAoC,QAAQ,GAAG,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,2DAA2D;IAC3D,gBAAgB;IAChB,mBAAmB;IACnB,WAAW;IACX,eAAe;IACf,6BAA6B;IAC7B,sDAAsD;IACtD,6BAA6B;IAC7B,oDAAoD;IACpD,4BAA4B;IAC5B,6EAA6E;IAC7E,sBAAsB;IACtB,8EAA8E;IAC9E,8BAA8B;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,KAAe;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,aAAuB;IACpD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,OAAO,CACL,kBAAkB,QAAQ,IAAI;QAC9B,8BAA8B;QAC9B,oCAAoC,QAAQ,GAAG,CAChD,CAAC;AACJ,CAAC"}
@@ -113,14 +113,27 @@ export async function backupDocument(authInfo, documentId) {
113
113
  await rotateBackups();
114
114
  return { filepath, blocks };
115
115
  }
116
+ const MAX_BACKUPS_PER_DOC = 10;
116
117
  async function rotateBackups() {
117
118
  try {
118
119
  const files = await readdir(BACKUPS_DIR);
119
120
  const jsonFiles = files.filter((f) => f.endsWith(".json")).sort();
120
- if (jsonFiles.length > 10) {
121
- const toDelete = jsonFiles.slice(0, jsonFiles.length - 10);
122
- for (const f of toDelete) {
123
- await unlink(join(BACKUPS_DIR, f));
121
+ // Group by documentId (filename format: {documentId}-{timestamp}.json)
122
+ const byDoc = new Map();
123
+ for (const f of jsonFiles) {
124
+ const lastDash = f.lastIndexOf("-");
125
+ const docId = lastDash > 0 ? f.slice(0, lastDash) : f;
126
+ const group = byDoc.get(docId) || [];
127
+ group.push(f);
128
+ byDoc.set(docId, group);
129
+ }
130
+ // Keep only the most recent N per document
131
+ for (const [, group] of byDoc) {
132
+ if (group.length > MAX_BACKUPS_PER_DOC) {
133
+ const toDelete = group.slice(0, group.length - MAX_BACKUPS_PER_DOC);
134
+ for (const f of toDelete) {
135
+ await unlink(join(BACKUPS_DIR, f));
136
+ }
124
137
  }
125
138
  }
126
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block-writer.js","sourceRoot":"","sources":["../../src/services/block-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block-writer.js","sourceRoot":"","sources":["../../src/services/block-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Download document images to local persistent storage.
3
+ *
4
+ * Images are saved to ~/.feishu-docs/images/{fileToken}.{ext} and served
5
+ * via local file paths in Markdown output. Already-downloaded images are
6
+ * skipped (disk cache by file_token).
7
+ */
8
+ export declare const IMAGES_DIR: string;
9
+ export declare const CONTENT_TYPE_EXT: Record<string, string>;
10
+ /**
11
+ * Resolve content-type to file extension. Defaults to ".png".
12
+ */
13
+ export declare function resolveExtension(contentType: string): string;
14
+ /**
15
+ * Find a cached image file for the given token (any known extension).
16
+ * Returns the file path if found, or null.
17
+ */
18
+ export declare function findCachedImage(fileToken: string, dir?: string): Promise<string | null>;
19
+ /**
20
+ * Download images from temporary URLs and save to local directory.
21
+ * Returns a map of file_token → local file path. Already-downloaded images
22
+ * are skipped (simple disk cache by file_token).
23
+ */
24
+ export declare function downloadImages(tmpUrlMap: Map<string, string>, dir?: string): Promise<Map<string, string>>;
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Download document images to local persistent storage.
3
+ *
4
+ * Images are saved to ~/.feishu-docs/images/{fileToken}.{ext} and served
5
+ * via local file paths in Markdown output. Already-downloaded images are
6
+ * skipped (disk cache by file_token).
7
+ */
8
+ import { writeFile, mkdir, stat } from "node:fs/promises";
9
+ import { homedir } from "node:os";
10
+ import { join } from "node:path";
11
+ import { validateToken } from "../utils/validate.js";
12
+ export const IMAGES_DIR = join(homedir(), ".feishu-docs", "images");
13
+ export const CONTENT_TYPE_EXT = {
14
+ "image/png": ".png",
15
+ "image/jpeg": ".jpg",
16
+ "image/gif": ".gif",
17
+ "image/webp": ".webp",
18
+ "image/svg+xml": ".svg",
19
+ };
20
+ const KNOWN_EXTENSIONS = Object.values(CONTENT_TYPE_EXT);
21
+ /**
22
+ * Check if a file already exists.
23
+ */
24
+ async function fileExists(path) {
25
+ try {
26
+ await stat(path);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ /**
34
+ * Resolve content-type to file extension. Defaults to ".png".
35
+ */
36
+ export function resolveExtension(contentType) {
37
+ return CONTENT_TYPE_EXT[contentType.split(";")[0].trim()] || ".png";
38
+ }
39
+ /**
40
+ * Find a cached image file for the given token (any known extension).
41
+ * Returns the file path if found, or null.
42
+ */
43
+ export async function findCachedImage(fileToken, dir = IMAGES_DIR) {
44
+ for (const ext of KNOWN_EXTENSIONS) {
45
+ const p = join(dir, `${fileToken}${ext}`);
46
+ if (await fileExists(p))
47
+ return p;
48
+ }
49
+ return null;
50
+ }
51
+ /**
52
+ * Download images from temporary URLs and save to local directory.
53
+ * Returns a map of file_token → local file path. Already-downloaded images
54
+ * are skipped (simple disk cache by file_token).
55
+ */
56
+ export async function downloadImages(tmpUrlMap, dir = IMAGES_DIR) {
57
+ if (tmpUrlMap.size === 0)
58
+ return new Map();
59
+ await mkdir(dir, { recursive: true });
60
+ const localMap = new Map();
61
+ for (const [fileToken, tmpUrl] of tmpUrlMap) {
62
+ // Validate token before using as filename to prevent path traversal
63
+ try {
64
+ validateToken(fileToken, "file_token");
65
+ }
66
+ catch {
67
+ continue;
68
+ }
69
+ // Check disk cache (any known extension)
70
+ const cached = await findCachedImage(fileToken, dir);
71
+ if (cached) {
72
+ localMap.set(fileToken, cached);
73
+ continue;
74
+ }
75
+ try {
76
+ const res = await fetch(tmpUrl);
77
+ if (!res.ok)
78
+ continue;
79
+ const contentType = res.headers.get("content-type") || "";
80
+ const ext = resolveExtension(contentType);
81
+ const filePath = join(dir, `${fileToken}${ext}`);
82
+ const buf = await res.arrayBuffer();
83
+ if (buf.byteLength === 0)
84
+ continue;
85
+ await writeFile(filePath, Buffer.from(buf));
86
+ localMap.set(fileToken, filePath);
87
+ }
88
+ catch {
89
+ // Download failed for this image — skip it
90
+ }
91
+ }
92
+ return localMap;
93
+ }
94
+ //# sourceMappingURL=image-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-download.js","sourceRoot":"","sources":["../../src/services/image-download.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,MAAM;CACxB,CAAC;AAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEzD;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,MAAc,UAAU;IAExB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAA8B,EAC9B,MAAc,UAAU;IAExB,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE3C,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,oEAAoE;QACpE,IAAI,CAAC;YACH,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,SAAS;YAEtB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;YAEjD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC;gBAAE,SAAS;YAEnC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -31,6 +31,14 @@ export declare function extractMarkdownTitle(markdown: string): {
31
31
  title: string | null;
32
32
  body: string;
33
33
  };
34
+ /**
35
+ * Replace literal `\n` with `<br>` inside mermaid code blocks.
36
+ *
37
+ * Claude and other AI tools generate mermaid node labels with `\n` for
38
+ * line breaks (e.g. `A[Line 1\nLine 2]`), but standard mermaid syntax
39
+ * requires `<br>` (e.g. `A[Line 1<br>Line 2]`).
40
+ */
41
+ export declare function normalizeMermaidLineBreaks(markdown: string): string;
34
42
  /**
35
43
  * Convert markdown string to Feishu block array via Convert API.
36
44
  * Requires scope: docx:document.block:convert
@@ -73,6 +73,19 @@ export function extractMarkdownTitle(markdown) {
73
73
  const body = remaining.slice(startIdx).join("\n");
74
74
  return { title, body };
75
75
  }
76
+ /**
77
+ * Replace literal `\n` with `<br>` inside mermaid code blocks.
78
+ *
79
+ * Claude and other AI tools generate mermaid node labels with `\n` for
80
+ * line breaks (e.g. `A[Line 1\nLine 2]`), but standard mermaid syntax
81
+ * requires `<br>` (e.g. `A[Line 1<br>Line 2]`).
82
+ */
83
+ export function normalizeMermaidLineBreaks(markdown) {
84
+ return markdown.replace(/^```mermaid\s*\n([\s\S]*?)^```/gm, (_match, block) => {
85
+ const fixed = block.replace(/\\n/g, "<br>");
86
+ return "```mermaid\n" + fixed + "```";
87
+ });
88
+ }
76
89
  /**
77
90
  * Convert markdown string to Feishu block array via Convert API.
78
91
  * Requires scope: docx:document.block:convert
@@ -82,7 +95,10 @@ export function extractMarkdownTitle(markdown) {
82
95
  export async function convertMarkdown(authInfo, markdown) {
83
96
  const res = await fetchWithAuth(authInfo, "/open-apis/docx/v1/documents/blocks/convert", {
84
97
  method: "POST",
85
- body: { content: normalizeLangNames(markdown), content_type: "markdown" },
98
+ body: {
99
+ content: normalizeMermaidLineBreaks(normalizeLangNames(markdown)),
100
+ content_type: "markdown",
101
+ },
86
102
  });
87
103
  const data = res?.data;
88
104
  if (!data?.blocks || !data?.first_level_block_ids) {
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-convert.js","sourceRoot":"","sources":["../../src/services/markdown-convert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,0DAA0D;AAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC;;;GAGG;AACH,MAAM,YAAY,GAA2B;IAC3C,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IAInD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,OAAO,KAAK,EAAE;YAAE,SAAS;QAC7B,0DAA0D;QAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,CAAC,sCAAsC;IAC/C,CAAC;IAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG;QAChB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;QAC/B,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;KACjC,CAAC;IAEF,yDAAyD;IACzD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,OAAO,QAAQ,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxE,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAElD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,QAAgB;IAEhB,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,6CAA6C,EAC7C;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE;KAC1E,CACF,CAAC;IAEF,MAAM,IAAI,GAAG,GAAG,EAAE,IAA2C,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,CAAC;QAClD,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAiB;QAC9B,kBAAkB,EAAE,IAAI,CAAC,qBAAiC;QAC1D,kBAAkB,EACf,IAAI,CAAC,sBAAiD,IAAI,EAAE;KAChE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,aAAa,CAAU,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAU,KAAK,CAAC;QAE3B,mCAAmC;QACnC,KAAK,MAAM,KAAK,IAAI,sBAAsB,EAAE,CAAC;YAC3C,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;gBACrB,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;gBACxC,OAAO,GAAG,IAAa,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;YACxC,MAAM,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC/D,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE;aACpD,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,WAAqB,EACrB,QAA4B;IAE5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QACxB,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC1B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CACjB,MAAgB,EAChB,QAAqB,EACrB,SAAkB,EAClB,MAAuB;IAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAClC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACxD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CACjB,CACF,CAAC;IACF,OAAO;QACL,kBAAkB,EAAE,MAAM;QAC1B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACzD,kBAAkB,EAAE,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAA0B;IAE1B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;QAC5C,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC;QAEvC,4EAA4E;QAC5E,IAAI,WAAW,GAAG,mBAAmB,EAAE,CAAC;YACtC,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,eAAe,WAAW,2BAA2B,mBAAmB,QAAQ,CACjF,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,IACE,eAAe,GAAG,CAAC;YACnB,eAAe,GAAG,WAAW,GAAG,mBAAmB,EACnD,CAAC;YACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;YACtE,WAAW,GAAG,EAAE,CAAC;YACjB,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,eAAe,IAAI,WAAW,CAAC;IACjC,CAAC;IAED,kBAAkB;IAClB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,UAAkB,EAClB,aAAqB,EACrB,SAA0B,EAC1B,UAAkB,EAClB,QAAgB,CAAC;IAEjB,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAE5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,SAAS,CAAC,MAAM,CAAC,MAAM,cAAc,OAAO,CAAC,MAAM,QAAQ,CACxF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,GAAG,UAAU,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,qEAAqE;QACrE,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAExC,MAAM,GAAG,GAAG,MAAM,aAAa,CAC7B,QAAQ,EACR,gCAAgC,kBAAkB,CAAC,UAAU,CAAC,WAAW,kBAAkB,CAAC,aAAa,CAAC,aAAa,EACvH;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACJ,WAAW,EAAE,KAAK,CAAC,kBAAkB;gBACrC,WAAW,EAAE,KAAK,CAAC,MAAM;gBACzB,KAAK,EAAE,UAAU;aAClB;YACD,MAAM,EAAE;gBACN,oBAAoB,EAAE,GAAG;aAC1B;SACF,CACF,CAAC;QAEF,GAAG;YACC,GAAG,EAAE,IAAgC;gBACrC,EAAE,oBAA+B,IAAI,GAAG,CAAC;IAC/C,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,UAAkB,EAClB,QAAgB,EAChB,UAAkB,EAClB,QAAgB,CAAC;IAEjB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO,eAAe,CACpB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,CACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"markdown-convert.js","sourceRoot":"","sources":["../../src/services/markdown-convert.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feishu-docs-cli",
3
- "version": "0.1.0-beta.15",
3
+ "version": "0.1.0-beta.17",
4
4
  "description": "CLI tool for AI Agents to read/write Feishu docs via shell commands",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,7 +9,23 @@ description: Read, write, search, and manage Feishu (Lark) cloud documents and k
9
9
 
10
10
  ## Prerequisites
11
11
 
12
- Before using any command, verify the environment is ready:
12
+ Before using any command, check that the CLI is installed and authenticated. Run these two checks in order:
13
+
14
+ ### Step 1: Check installation
15
+
16
+ ```bash
17
+ command -v feishu-docs >/dev/null 2>&1 && feishu-docs --version || echo "NOT_INSTALLED"
18
+ ```
19
+
20
+ If the output is `NOT_INSTALLED`, install the CLI first:
21
+
22
+ ```bash
23
+ npm install -g feishu-docs-cli
24
+ ```
25
+
26
+ This installs the `feishu-docs` command globally. Requires Node.js 18+. After installation, verify with `feishu-docs --version`.
27
+
28
+ ### Step 2: Check authentication
13
29
 
14
30
  ```bash
15
31
  feishu-docs whoami
@@ -90,7 +106,7 @@ feishu-docs update <url> --body ./extra.md --append
90
106
  echo "## New Section" | feishu-docs update <url> --body - --append
91
107
  ```
92
108
 
93
- Overwrite mode automatically backs up the current document to `~/.feishu-docs/backups/` before writing. If the write fails, it auto-recovers from the backup.
109
+ Overwrite mode automatically backs up the current document to `~/.feishu-docs/backups/` before writing. If the write fails, it auto-recovers from the backup. Backups are kept for undo; old backups are rotated automatically (max 10 per document).
94
110
 
95
111
  To restore a previous version:
96
112
  ```bash
@@ -170,6 +186,7 @@ Every command accepts these flags:
170
186
  | `--auth tenant` | Force app token (CI/CD, shared docs) |
171
187
  | `--json` | Output structured JSON instead of text |
172
188
  | `--lark` | Use Lark (international) domain |
189
+ | `-v, --version` | Show version number |
173
190
 
174
191
  Default auth mode is `auto` — tries user token first, falls back to tenant.
175
192
 
@@ -189,6 +206,9 @@ Default auth mode is `auto` — tries user token first, falls back to tenant.
189
206
 
190
207
  - Only `docx` (new document format) is fully supported for read/write
191
208
  - Legacy `doc` format is not supported
209
+ - Embedded `sheet` and `bitable` are rendered as tables (lossy)
210
+ - Embedded `board`/`whiteboard` are exported as local PNG images (temporary file paths)
211
+ - `mindnote` renders as a link only
192
212
  - Images cannot be written; read returns temporary URLs valid ~24 hours
193
213
  - Markdown conversion is lossy — use `--blocks` for lossless JSON when precision matters
194
214
  - Search requires user-level auth (run `feishu-docs login` first)