[{"data":1,"prerenderedAt":1845},["ShallowReactive",2],{"msfe-doc:\u002Fguide\u002Fsaving":3,"msfe-source:recipes\u002Fautosave.ts":652,"mdc--y55g71-key":653},{"id":4,"title":5,"body":6,"description":640,"extension":641,"keywords":642,"locale":645,"meta":646,"navigation":158,"order":155,"path":647,"section":648,"seo":649,"stem":650,"__hash__":651},"docs\u002Fguide\u002Fsaving.zh-CN.md","读取与保存",{"type":7,"value":8,"toc":631},"minimark",[9,13,22,65,68,72,75,99,174,177,180,186,287,294,297,304,308,566,575,578,584,587,590,601,614,617,627],[10,11,12],"h2",{"id":12},"读取完整源码",[14,15,16,17,21],"p",{},"保存按钮、导出或提交时调用 ",[18,19,20],"code",{},"getMarkdown()","。读取结果是 Markdown 文本，保留编辑器支持的原始文件格式策略。",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-ts shiki shiki-themes github-light github-light github-dark","const markdown = editor.getMarkdown()\n\u002F\u002F 将 markdown 交给应用自己的持久化接口。\n","ts","",[18,30,31,58],{"__ignoreMap":28},[32,33,36,40,44,47,51,55],"span",{"class":34,"line":35},"line",1,[32,37,39],{"class":38},"sDD9d","const",[32,41,43],{"class":42},"sUNQB"," markdown",[32,45,46],{"class":38}," =",[32,48,50],{"class":49},"sVPnS"," editor.",[32,52,54],{"class":53},"sgQzM","getMarkdown",[32,56,57],{"class":49},"()\n",[32,59,61],{"class":34,"line":60},2,[32,62,64],{"class":63},"sqmzS","\u002F\u002F 将 markdown 交给应用自己的持久化接口。\n",[14,66,67],{},"示例中的「读取 Markdown」只生成当前快照。之后继续编辑时，需要再次读取才能得到最新文本。",[69,70],"msfe-demo",{"name":71},"basic\u002Feditor",[10,73,74],{"id":74},"订阅增量",[14,76,77,80,81,84,85,84,88,84,91,94,95,98],{},[18,78,79],{},"onChange"," 提供 ",[18,82,83],{},"documentId","、",[18,86,87],{},"revision",[18,89,90],{},"changes",[18,92,93],{},"selection"," 和 ",[18,96,97],{},"origin","。可以标记未保存状态，或交给支持增量的宿主存储；无需为渲染工具栏而在每次输入时读取全文。",[23,100,102],{"className":25,"code":101,"language":27,"meta":28,"style":28},"const unsubscribe = editor.onChange(event => {\n  console.log('文档版本', event.documentId, event.revision)\n})\n\n\u002F\u002F 观察者结束生命周期时取消订阅。\nunsubscribe()\n",[18,103,104,130,147,153,160,166],{"__ignoreMap":28},[32,105,106,108,111,113,115,117,120,124,127],{"class":34,"line":35},[32,107,39],{"class":38},[32,109,110],{"class":42}," unsubscribe",[32,112,46],{"class":38},[32,114,50],{"class":49},[32,116,79],{"class":53},[32,118,119],{"class":49},"(",[32,121,123],{"class":122},"sde8i","event",[32,125,126],{"class":38}," =>",[32,128,129],{"class":49}," {\n",[32,131,132,135,138,140,144],{"class":34,"line":60},[32,133,134],{"class":49},"  console.",[32,136,137],{"class":53},"log",[32,139,119],{"class":49},[32,141,143],{"class":142},"s-HEn","'文档版本'",[32,145,146],{"class":49},", event.documentId, event.revision)\n",[32,148,150],{"class":34,"line":149},3,[32,151,152],{"class":49},"})\n",[32,154,156],{"class":34,"line":155},4,[32,157,159],{"emptyLinePlaceholder":158},true,"\n",[32,161,163],{"class":34,"line":162},5,[32,164,165],{"class":63},"\u002F\u002F 观察者结束生命周期时取消订阅。\n",[32,167,169,172],{"class":34,"line":168},6,[32,170,171],{"class":53},"unsubscribe",[32,173,57],{"class":49},[14,175,176],{},"自动保存时，由应用安排保存频率并处理失败、重试和提交顺序。不要把服务端保存响应直接当成需要再次替换全文的输入。",[10,178,179],{"id":179},"外部更新",[14,181,182,185],{},[18,183,184],{},"applyChanges()"," 接收预期的文档身份与基础版本。偏移必须属于该版本，旧版本会被拒绝；失败后重新取得最新状态并处理冲突。",[23,187,189],{"className":25,"code":188,"language":27,"meta":28,"style":28},"const result = editor.applyChanges({\n  documentId: editor.documentId,\n  baseRevision: editor.revision,\n  changes: { from: 0, to: 0, insert: '新增说明。\\n\\n' },\n  origin: 'host',\n})\n\nif (!result.ok) console.warn(result.reason)\n",[18,190,191,208,213,218,246,257,261,266],{"__ignoreMap":28},[32,192,193,195,198,200,202,205],{"class":34,"line":35},[32,194,39],{"class":38},[32,196,197],{"class":42}," result",[32,199,46],{"class":38},[32,201,50],{"class":49},[32,203,204],{"class":53},"applyChanges",[32,206,207],{"class":49},"({\n",[32,209,210],{"class":34,"line":60},[32,211,212],{"class":49},"  documentId: editor.documentId,\n",[32,214,215],{"class":34,"line":149},[32,216,217],{"class":49},"  baseRevision: editor.revision,\n",[32,219,220,223,226,229,231,234,237,240,243],{"class":34,"line":155},[32,221,222],{"class":49},"  changes: { from: ",[32,224,225],{"class":42},"0",[32,227,228],{"class":49},", to: ",[32,230,225],{"class":42},[32,232,233],{"class":49},", insert: ",[32,235,236],{"class":142},"'新增说明。",[32,238,239],{"class":42},"\\n\\n",[32,241,242],{"class":142},"'",[32,244,245],{"class":49}," },\n",[32,247,248,251,254],{"class":34,"line":162},[32,249,250],{"class":49},"  origin: ",[32,252,253],{"class":142},"'host'",[32,255,256],{"class":49},",\n",[32,258,259],{"class":34,"line":168},[32,260,152],{"class":49},[32,262,264],{"class":34,"line":263},7,[32,265,159],{"emptyLinePlaceholder":158},[32,267,269,272,275,278,281,284],{"class":34,"line":268},8,[32,270,271],{"class":38},"if",[32,273,274],{"class":49}," (",[32,276,277],{"class":38},"!",[32,279,280],{"class":49},"result.ok) console.",[32,282,283],{"class":53},"warn",[32,285,286],{"class":49},"(result.reason)\n",[14,288,289,290,293],{},"版本化修改接口本身不构成多人协同协议。切换到另一份文档时，使用 ",[18,291,292],{},"replaceDocument(markdown, documentId)","。",[10,295,296],{"id":296},"可直接接入的顺序自动保存",[14,298,299,300,303],{},"下面的 TypeScript 模块把同一份文档的保存请求串行化，延迟读取快照；源码继续变化时，当前请求完成后再保存新版本。错误后保留 dirty 状态，下一次编辑或显式 ",[18,301,302],{},"flush()"," 重试。它不把响应写回编辑器。",[305,306],"msfe-recipe",{"name":307},"recipes\u002Fautosave",[23,309,311],{"className":25,"code":310,"language":27,"meta":28,"style":28},"import { attachAutosave } from '.\u002Frecipes\u002Fautosave'\nconst saving = attachAutosave({\n  editor,\n  save: async (snapshot, signal) => {\n    const response = await fetch(`\u002Fapi\u002Fdocuments\u002F${encodeURIComponent(snapshot.documentId)}`, {\n      method: 'PUT', signal, headers: { 'Content-Type': 'text\u002Fmarkdown; charset=utf-8' },\n      body: snapshot.markdown,\n    })\n    if (!response.ok) throw new Error(`save-http-${response.status}`)\n  },\n  status: value => { console.log('保存状态', value) },\n  error: error => { console.error(error) },\n})\n\u002F\u002F 页面离开前先等待 flush，并由应用根据保存状态决定是否允许离开。\nawait saving.flush()\n",[18,312,313,327,341,346,376,418,439,444,449,489,495,521,541,546,552],{"__ignoreMap":28},[32,314,315,318,321,324],{"class":34,"line":35},[32,316,317],{"class":38},"import",[32,319,320],{"class":49}," { attachAutosave } ",[32,322,323],{"class":38},"from",[32,325,326],{"class":142}," '.\u002Frecipes\u002Fautosave'\n",[32,328,329,331,334,336,339],{"class":34,"line":60},[32,330,39],{"class":38},[32,332,333],{"class":42}," saving",[32,335,46],{"class":38},[32,337,338],{"class":53}," attachAutosave",[32,340,207],{"class":49},[32,342,343],{"class":34,"line":149},[32,344,345],{"class":49},"  editor,\n",[32,347,348,351,354,357,359,362,365,368,371,374],{"class":34,"line":155},[32,349,350],{"class":53},"  save",[32,352,353],{"class":49},": ",[32,355,356],{"class":38},"async",[32,358,274],{"class":49},[32,360,361],{"class":122},"snapshot",[32,363,364],{"class":49},", ",[32,366,367],{"class":122},"signal",[32,369,370],{"class":49},") ",[32,372,373],{"class":38},"=>",[32,375,129],{"class":49},[32,377,378,381,384,386,389,392,394,397,400,402,404,407,409,412,415],{"class":34,"line":162},[32,379,380],{"class":38},"    const",[32,382,383],{"class":42}," response",[32,385,46],{"class":38},[32,387,388],{"class":38}," await",[32,390,391],{"class":53}," fetch",[32,393,119],{"class":49},[32,395,396],{"class":142},"`\u002Fapi\u002Fdocuments\u002F${",[32,398,399],{"class":53},"encodeURIComponent",[32,401,119],{"class":142},[32,403,361],{"class":49},[32,405,406],{"class":142},".",[32,408,83],{"class":49},[32,410,411],{"class":142},")",[32,413,414],{"class":142},"}`",[32,416,417],{"class":49},", {\n",[32,419,420,423,426,429,432,434,437],{"class":34,"line":168},[32,421,422],{"class":49},"      method: ",[32,424,425],{"class":142},"'PUT'",[32,427,428],{"class":49},", signal, headers: { ",[32,430,431],{"class":142},"'Content-Type'",[32,433,353],{"class":49},[32,435,436],{"class":142},"'text\u002Fmarkdown; charset=utf-8'",[32,438,245],{"class":49},[32,440,441],{"class":34,"line":263},[32,442,443],{"class":49},"      body: snapshot.markdown,\n",[32,445,446],{"class":34,"line":268},[32,447,448],{"class":49},"    })\n",[32,450,452,455,457,459,462,465,468,471,473,476,479,481,484,486],{"class":34,"line":451},9,[32,453,454],{"class":38},"    if",[32,456,274],{"class":49},[32,458,277],{"class":38},[32,460,461],{"class":49},"response.ok) ",[32,463,464],{"class":38},"throw",[32,466,467],{"class":38}," new",[32,469,470],{"class":53}," Error",[32,472,119],{"class":49},[32,474,475],{"class":142},"`save-http-${",[32,477,478],{"class":49},"response",[32,480,406],{"class":142},[32,482,483],{"class":49},"status",[32,485,414],{"class":142},[32,487,488],{"class":49},")\n",[32,490,492],{"class":34,"line":491},10,[32,493,494],{"class":49},"  },\n",[32,496,498,501,503,506,508,511,513,515,518],{"class":34,"line":497},11,[32,499,500],{"class":53},"  status",[32,502,353],{"class":49},[32,504,505],{"class":122},"value",[32,507,126],{"class":38},[32,509,510],{"class":49}," { console.",[32,512,137],{"class":53},[32,514,119],{"class":49},[32,516,517],{"class":142},"'保存状态'",[32,519,520],{"class":49},", value) },\n",[32,522,524,527,529,532,534,536,538],{"class":34,"line":523},12,[32,525,526],{"class":53},"  error",[32,528,353],{"class":49},[32,530,531],{"class":122},"error",[32,533,126],{"class":38},[32,535,510],{"class":49},[32,537,531],{"class":53},[32,539,540],{"class":49},"(error) },\n",[32,542,544],{"class":34,"line":543},13,[32,545,152],{"class":49},[32,547,549],{"class":34,"line":548},14,[32,550,551],{"class":63},"\u002F\u002F 页面离开前先等待 flush，并由应用根据保存状态决定是否允许离开。\n",[32,553,555,558,561,564],{"class":34,"line":554},15,[32,556,557],{"class":38},"await",[32,559,560],{"class":49}," saving.",[32,562,563],{"class":53},"flush",[32,565,57],{"class":49},[14,567,568,571,572,574],{},[18,569,570],{},"\u002Fapi\u002Fdocuments\u002F:id"," 需要应用提供。这个 adapter 从首次源码变化开始保存，不会自动把刚加载的文档标为 dirty。",[18,573,302],{}," 结束不代表一定成功：失败由 status\u002Ferror 报告，应用必须保留错误状态和重试入口。",[10,576,577],{"id":577},"服务器并发和离线",[14,579,580,581,583],{},"本地 ",[18,582,87],{}," 是编辑器内计数，不是服务器版本。多客户端写入时，服务端还需要 ETag、版本号或协同协议；遇到 409\u002F412 由应用进行合并或冲突选择，不能无限重试覆盖他人的保存。",[14,585,586],{},"离线缓存属于宿主存储层，可缓存精确 Markdown 和服务端版本。没有 durable acknowledgement 前，不应显示“已保存到服务器”。不要在 beforeunload 中假设可以完成一个任意异步请求。",[10,588,589],{"id":589},"换文档与外部回声",[14,591,592,593,596,597,600],{},"顺序是：处理当前未保存状态、结束旧保存 session、",[18,594,595],{},"replaceDocument()","、给新文档创建新 session。旧 ",[18,598,599],{},"documentScope"," 会取消仍在处理的资源。",[14,602,603,604,606,607,610,611,613],{},"同文档外部修改用 ",[18,605,184],{},"，偏移属于 ",[18,608,609],{},"baseRevision"," 的逻辑文本。成功时得到新的 revision；",[18,612,97],{}," 可标记外部来源，宿主可在 onChange 里抑制同源回声。发生 stale-target 时，不要只把 baseRevision 改成最新值后重复旧 changes，必须重新映射或合并。",[10,615,616],{"id":616},"格式和存储职责",[14,618,619,620,622,623,626],{},"编辑器接收解码后的字符串。文件编码、BOM 的文件字节处理、文件名、权限、附件存储和下载都由应用负责。需要纯文本快照时用 ",[18,621,20],{},"；需要编辑偏移时用逻辑 ",[18,624,625],{},"state.doc","。不要把渲染 HTML 或组件状态当作可恢复的 Markdown 存档。",[628,629,630],"style",{},"html pre.shiki code .sDD9d, html code.shiki .sDD9d{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sqmzS, html code.shiki .sqmzS{--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sde8i, html code.shiki .sde8i{--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}",{"title":28,"searchDepth":60,"depth":60,"links":632},[633,634,635,636,637,638,639],{"id":12,"depth":60,"text":12},{"id":74,"depth":60,"text":74},{"id":179,"depth":60,"text":179},{"id":296,"depth":60,"text":296},{"id":577,"depth":60,"text":577},{"id":589,"depth":60,"text":589},{"id":616,"depth":60,"text":616},"按需读取 Markdown，通过增量事件连接存储与外部更新。","md",[643,79,204,644,87],"保存","replaceDocument","zh-CN",{},"\u002Fguide\u002Fsaving","接入指南",{"title":5,"description":640},"guide\u002Fsaving.zh-CN","9lYFNKRid6yEtcGzNSZZj4hjq8fEkV-JIk_v_NnDjuY","import type { AutosaveOptions, AutosaveSession, SaveSnapshot } from \".\u002Ftypes\";\n\u002F** @param options - Host persistence policy and one current document. @returns Serial save ownership for that document only. *\u002F\nexport function attachAutosave(options: AutosaveOptions): AutosaveSession {\n  const { editor } = options;\n  const scope = editor.documentScope.fork();\n  let dirty = false;\n  let timer: ReturnType\u003Ctypeof setTimeout> | undefined;\n  let running: Promise\u003Cvoid> | undefined;\n  \u002F** Writes successive immutable snapshots; slow responses never replace the open source. *\u002F\n  async function drain(): Promise\u003Cvoid> {\n    while (dirty && !scope.disposed) {\n      dirty = false;\n      const snapshot: SaveSnapshot = { documentId: editor.documentId, revision: editor.revision, markdown: editor.getMarkdown() };\n      options.status(\"saving\");\n      try {\n        await options.save(snapshot, scope.signal);\n        if (scope.disposed) return;\n        if (!dirty && editor.revision === snapshot.revision) options.status(\"saved\");\n      } catch (error) {\n        if (!scope.disposed) { dirty = true; options.status(\"error\"); options.error(error); }\n        return; \u002F\u002F An explicit flush or the next source edit retries; no busy retry loop.\n      }\n    }\n  }\n  \u002F** @returns Completion of prior work and any source dirty when this flush can acquire the writer. *\u002F\n  async function flush(): Promise\u003Cvoid> {\n    clearTimeout(timer);\n    \u002F\u002F Recheck after awaiting: another flush may have acquired the single writer.\n    while (running) await running;\n    if (scope.disposed || !dirty) return;\n    running = drain().finally(() => { running = undefined; });\n    await running;\n  }\n  scope.own(editor.onChange(() => {\n    dirty = true;\n    options.status(\"dirty\");\n    clearTimeout(timer);\n    timer = setTimeout(() => { void flush(); }, options.delay ?? 600);\n  }));\n  scope.own(() => clearTimeout(timer));\n  return { flush, dispose: () => scope.dispose() };\n}\n",{"data":654,"body":655},{},{"type":656,"children":657},"root",[658,1840],{"type":659,"tag":23,"props":660,"children":662},"element",{"className":25,"code":661,"language":27,"meta":28,"style":28},"import type { AutosaveOptions, AutosaveSession, SaveSnapshot } from \".\u002Ftypes\";\n\u002F** @param options - Host persistence policy and one current document. @returns Serial save ownership for that document only. *\u002F\nexport function attachAutosave(options: AutosaveOptions): AutosaveSession {\n  const { editor } = options;\n  const scope = editor.documentScope.fork();\n  let dirty = false;\n  let timer: ReturnType\u003Ctypeof setTimeout> | undefined;\n  let running: Promise\u003Cvoid> | undefined;\n  \u002F** Writes successive immutable snapshots; slow responses never replace the open source. *\u002F\n  async function drain(): Promise\u003Cvoid> {\n    while (dirty && !scope.disposed) {\n      dirty = false;\n      const snapshot: SaveSnapshot = { documentId: editor.documentId, revision: editor.revision, markdown: editor.getMarkdown() };\n      options.status(\"saving\");\n      try {\n        await options.save(snapshot, scope.signal);\n        if (scope.disposed) return;\n        if (!dirty && editor.revision === snapshot.revision) options.status(\"saved\");\n      } catch (error) {\n        if (!scope.disposed) { dirty = true; options.status(\"error\"); options.error(error); }\n        return; \u002F\u002F An explicit flush or the next source edit retries; no busy retry loop.\n      }\n    }\n  }\n  \u002F** @returns Completion of prior work and any source dirty when this flush can acquire the writer. *\u002F\n  async function flush(): Promise\u003Cvoid> {\n    clearTimeout(timer);\n    \u002F\u002F Recheck after awaiting: another flush may have acquired the single writer.\n    while (running) await running;\n    if (scope.disposed || !dirty) return;\n    running = drain().finally(() => { running = undefined; });\n    await running;\n  }\n  scope.own(editor.onChange(() => {\n    dirty = true;\n    options.status(\"dirty\");\n    clearTimeout(timer);\n    timer = setTimeout(() => { void flush(); }, options.delay ?? 600);\n  }));\n  scope.own(() => clearTimeout(timer));\n  return { flush, dispose: () => scope.dispose() };\n}\n\n",[663],{"type":659,"tag":18,"props":664,"children":665},{"__ignoreMap":28},[666,701,735,790,824,855,881,931,978,986,1029,1057,1077,1117,1143,1155,1179,1202,1259,1278,1340,1359,1368,1377,1386,1404,1445,1459,1468,1490,1525,1579,1592,1600,1635,1656,1682,1694,1751,1760,1790,1831],{"type":659,"tag":32,"props":667,"children":668},{"class":34,"line":35},[669,675,680,686,690,696],{"type":659,"tag":32,"props":670,"children":672},{"style":671},"--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583",[673],{"type":674,"value":317},"text",{"type":659,"tag":32,"props":676,"children":677},{"style":671},[678],{"type":674,"value":679}," type",{"type":659,"tag":32,"props":681,"children":683},{"style":682},"--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8",[684],{"type":674,"value":685}," { AutosaveOptions, AutosaveSession, SaveSnapshot } ",{"type":659,"tag":32,"props":687,"children":688},{"style":671},[689],{"type":674,"value":323},{"type":659,"tag":32,"props":691,"children":693},{"style":692},"--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF",[694],{"type":674,"value":695}," \".\u002Ftypes\"",{"type":659,"tag":32,"props":697,"children":698},{"style":682},[699],{"type":674,"value":700},";\n",{"type":659,"tag":32,"props":702,"children":703},{"class":34,"line":60},[704,710,715,720,725,730],{"type":659,"tag":32,"props":705,"children":707},{"style":706},"--shiki-default:#6A737D;--shiki-light:#6A737D;--shiki-dark:#6A737D",[708],{"type":674,"value":709},"\u002F** ",{"type":659,"tag":32,"props":711,"children":712},{"style":671},[713],{"type":674,"value":714},"@param",{"type":659,"tag":32,"props":716,"children":717},{"style":682},[718],{"type":674,"value":719}," options",{"type":659,"tag":32,"props":721,"children":722},{"style":706},[723],{"type":674,"value":724}," - Host persistence policy and one current document. ",{"type":659,"tag":32,"props":726,"children":727},{"style":671},[728],{"type":674,"value":729},"@returns",{"type":659,"tag":32,"props":731,"children":732},{"style":706},[733],{"type":674,"value":734}," Serial save ownership for that document only. *\u002F\n",{"type":659,"tag":32,"props":736,"children":737},{"class":34,"line":149},[738,743,748,753,757,763,768,773,777,781,786],{"type":659,"tag":32,"props":739,"children":740},{"style":671},[741],{"type":674,"value":742},"export",{"type":659,"tag":32,"props":744,"children":745},{"style":671},[746],{"type":674,"value":747}," function",{"type":659,"tag":32,"props":749,"children":751},{"style":750},"--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0",[752],{"type":674,"value":338},{"type":659,"tag":32,"props":754,"children":755},{"style":682},[756],{"type":674,"value":119},{"type":659,"tag":32,"props":758,"children":760},{"style":759},"--shiki-default:#E36209;--shiki-light:#E36209;--shiki-dark:#FFAB70",[761],{"type":674,"value":762},"options",{"type":659,"tag":32,"props":764,"children":765},{"style":671},[766],{"type":674,"value":767},":",{"type":659,"tag":32,"props":769,"children":770},{"style":750},[771],{"type":674,"value":772}," AutosaveOptions",{"type":659,"tag":32,"props":774,"children":775},{"style":682},[776],{"type":674,"value":411},{"type":659,"tag":32,"props":778,"children":779},{"style":671},[780],{"type":674,"value":767},{"type":659,"tag":32,"props":782,"children":783},{"style":750},[784],{"type":674,"value":785}," AutosaveSession",{"type":659,"tag":32,"props":787,"children":788},{"style":682},[789],{"type":674,"value":129},{"type":659,"tag":32,"props":791,"children":792},{"class":34,"line":155},[793,798,803,809,814,819],{"type":659,"tag":32,"props":794,"children":795},{"style":671},[796],{"type":674,"value":797},"  const",{"type":659,"tag":32,"props":799,"children":800},{"style":682},[801],{"type":674,"value":802}," { ",{"type":659,"tag":32,"props":804,"children":806},{"style":805},"--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF",[807],{"type":674,"value":808},"editor",{"type":659,"tag":32,"props":810,"children":811},{"style":682},[812],{"type":674,"value":813}," } ",{"type":659,"tag":32,"props":815,"children":816},{"style":671},[817],{"type":674,"value":818},"=",{"type":659,"tag":32,"props":820,"children":821},{"style":682},[822],{"type":674,"value":823}," options;\n",{"type":659,"tag":32,"props":825,"children":826},{"class":34,"line":162},[827,831,836,840,845,850],{"type":659,"tag":32,"props":828,"children":829},{"style":671},[830],{"type":674,"value":797},{"type":659,"tag":32,"props":832,"children":833},{"style":805},[834],{"type":674,"value":835}," scope",{"type":659,"tag":32,"props":837,"children":838},{"style":671},[839],{"type":674,"value":46},{"type":659,"tag":32,"props":841,"children":842},{"style":682},[843],{"type":674,"value":844}," editor.documentScope.",{"type":659,"tag":32,"props":846,"children":847},{"style":750},[848],{"type":674,"value":849},"fork",{"type":659,"tag":32,"props":851,"children":852},{"style":682},[853],{"type":674,"value":854},"();\n",{"type":659,"tag":32,"props":856,"children":857},{"class":34,"line":168},[858,863,868,872,877],{"type":659,"tag":32,"props":859,"children":860},{"style":671},[861],{"type":674,"value":862},"  let",{"type":659,"tag":32,"props":864,"children":865},{"style":682},[866],{"type":674,"value":867}," dirty ",{"type":659,"tag":32,"props":869,"children":870},{"style":671},[871],{"type":674,"value":818},{"type":659,"tag":32,"props":873,"children":874},{"style":805},[875],{"type":674,"value":876}," false",{"type":659,"tag":32,"props":878,"children":879},{"style":682},[880],{"type":674,"value":700},{"type":659,"tag":32,"props":882,"children":883},{"class":34,"line":263},[884,888,893,897,902,907,912,917,922,927],{"type":659,"tag":32,"props":885,"children":886},{"style":671},[887],{"type":674,"value":862},{"type":659,"tag":32,"props":889,"children":890},{"style":682},[891],{"type":674,"value":892}," timer",{"type":659,"tag":32,"props":894,"children":895},{"style":671},[896],{"type":674,"value":767},{"type":659,"tag":32,"props":898,"children":899},{"style":750},[900],{"type":674,"value":901}," ReturnType",{"type":659,"tag":32,"props":903,"children":904},{"style":682},[905],{"type":674,"value":906},"\u003C",{"type":659,"tag":32,"props":908,"children":909},{"style":671},[910],{"type":674,"value":911},"typeof",{"type":659,"tag":32,"props":913,"children":914},{"style":682},[915],{"type":674,"value":916}," setTimeout> ",{"type":659,"tag":32,"props":918,"children":919},{"style":671},[920],{"type":674,"value":921},"|",{"type":659,"tag":32,"props":923,"children":924},{"style":805},[925],{"type":674,"value":926}," undefined",{"type":659,"tag":32,"props":928,"children":929},{"style":682},[930],{"type":674,"value":700},{"type":659,"tag":32,"props":932,"children":933},{"class":34,"line":268},[934,938,943,947,952,956,961,966,970,974],{"type":659,"tag":32,"props":935,"children":936},{"style":671},[937],{"type":674,"value":862},{"type":659,"tag":32,"props":939,"children":940},{"style":682},[941],{"type":674,"value":942}," running",{"type":659,"tag":32,"props":944,"children":945},{"style":671},[946],{"type":674,"value":767},{"type":659,"tag":32,"props":948,"children":949},{"style":750},[950],{"type":674,"value":951}," Promise",{"type":659,"tag":32,"props":953,"children":954},{"style":682},[955],{"type":674,"value":906},{"type":659,"tag":32,"props":957,"children":958},{"style":805},[959],{"type":674,"value":960},"void",{"type":659,"tag":32,"props":962,"children":963},{"style":682},[964],{"type":674,"value":965},"> ",{"type":659,"tag":32,"props":967,"children":968},{"style":671},[969],{"type":674,"value":921},{"type":659,"tag":32,"props":971,"children":972},{"style":805},[973],{"type":674,"value":926},{"type":659,"tag":32,"props":975,"children":976},{"style":682},[977],{"type":674,"value":700},{"type":659,"tag":32,"props":979,"children":980},{"class":34,"line":451},[981],{"type":659,"tag":32,"props":982,"children":983},{"style":706},[984],{"type":674,"value":985},"  \u002F** Writes successive immutable snapshots; slow responses never replace the open source. *\u002F\n",{"type":659,"tag":32,"props":987,"children":988},{"class":34,"line":491},[989,994,998,1003,1008,1012,1016,1020,1024],{"type":659,"tag":32,"props":990,"children":991},{"style":671},[992],{"type":674,"value":993},"  async",{"type":659,"tag":32,"props":995,"children":996},{"style":671},[997],{"type":674,"value":747},{"type":659,"tag":32,"props":999,"children":1000},{"style":750},[1001],{"type":674,"value":1002}," drain",{"type":659,"tag":32,"props":1004,"children":1005},{"style":682},[1006],{"type":674,"value":1007},"()",{"type":659,"tag":32,"props":1009,"children":1010},{"style":671},[1011],{"type":674,"value":767},{"type":659,"tag":32,"props":1013,"children":1014},{"style":750},[1015],{"type":674,"value":951},{"type":659,"tag":32,"props":1017,"children":1018},{"style":682},[1019],{"type":674,"value":906},{"type":659,"tag":32,"props":1021,"children":1022},{"style":805},[1023],{"type":674,"value":960},{"type":659,"tag":32,"props":1025,"children":1026},{"style":682},[1027],{"type":674,"value":1028},"> {\n",{"type":659,"tag":32,"props":1030,"children":1031},{"class":34,"line":497},[1032,1037,1042,1047,1052],{"type":659,"tag":32,"props":1033,"children":1034},{"style":671},[1035],{"type":674,"value":1036},"    while",{"type":659,"tag":32,"props":1038,"children":1039},{"style":682},[1040],{"type":674,"value":1041}," (dirty ",{"type":659,"tag":32,"props":1043,"children":1044},{"style":671},[1045],{"type":674,"value":1046},"&&",{"type":659,"tag":32,"props":1048,"children":1049},{"style":671},[1050],{"type":674,"value":1051}," !",{"type":659,"tag":32,"props":1053,"children":1054},{"style":682},[1055],{"type":674,"value":1056},"scope.disposed) {\n",{"type":659,"tag":32,"props":1058,"children":1059},{"class":34,"line":523},[1060,1065,1069,1073],{"type":659,"tag":32,"props":1061,"children":1062},{"style":682},[1063],{"type":674,"value":1064},"      dirty ",{"type":659,"tag":32,"props":1066,"children":1067},{"style":671},[1068],{"type":674,"value":818},{"type":659,"tag":32,"props":1070,"children":1071},{"style":805},[1072],{"type":674,"value":876},{"type":659,"tag":32,"props":1074,"children":1075},{"style":682},[1076],{"type":674,"value":700},{"type":659,"tag":32,"props":1078,"children":1079},{"class":34,"line":543},[1080,1085,1090,1094,1099,1103,1108,1112],{"type":659,"tag":32,"props":1081,"children":1082},{"style":671},[1083],{"type":674,"value":1084},"      const",{"type":659,"tag":32,"props":1086,"children":1087},{"style":805},[1088],{"type":674,"value":1089}," snapshot",{"type":659,"tag":32,"props":1091,"children":1092},{"style":671},[1093],{"type":674,"value":767},{"type":659,"tag":32,"props":1095,"children":1096},{"style":750},[1097],{"type":674,"value":1098}," SaveSnapshot",{"type":659,"tag":32,"props":1100,"children":1101},{"style":671},[1102],{"type":674,"value":46},{"type":659,"tag":32,"props":1104,"children":1105},{"style":682},[1106],{"type":674,"value":1107}," { documentId: editor.documentId, revision: editor.revision, markdown: editor.",{"type":659,"tag":32,"props":1109,"children":1110},{"style":750},[1111],{"type":674,"value":54},{"type":659,"tag":32,"props":1113,"children":1114},{"style":682},[1115],{"type":674,"value":1116},"() };\n",{"type":659,"tag":32,"props":1118,"children":1119},{"class":34,"line":548},[1120,1125,1129,1133,1138],{"type":659,"tag":32,"props":1121,"children":1122},{"style":682},[1123],{"type":674,"value":1124},"      options.",{"type":659,"tag":32,"props":1126,"children":1127},{"style":750},[1128],{"type":674,"value":483},{"type":659,"tag":32,"props":1130,"children":1131},{"style":682},[1132],{"type":674,"value":119},{"type":659,"tag":32,"props":1134,"children":1135},{"style":692},[1136],{"type":674,"value":1137},"\"saving\"",{"type":659,"tag":32,"props":1139,"children":1140},{"style":682},[1141],{"type":674,"value":1142},");\n",{"type":659,"tag":32,"props":1144,"children":1145},{"class":34,"line":554},[1146,1151],{"type":659,"tag":32,"props":1147,"children":1148},{"style":671},[1149],{"type":674,"value":1150},"      try",{"type":659,"tag":32,"props":1152,"children":1153},{"style":682},[1154],{"type":674,"value":129},{"type":659,"tag":32,"props":1156,"children":1158},{"class":34,"line":1157},16,[1159,1164,1169,1174],{"type":659,"tag":32,"props":1160,"children":1161},{"style":671},[1162],{"type":674,"value":1163},"        await",{"type":659,"tag":32,"props":1165,"children":1166},{"style":682},[1167],{"type":674,"value":1168}," options.",{"type":659,"tag":32,"props":1170,"children":1171},{"style":750},[1172],{"type":674,"value":1173},"save",{"type":659,"tag":32,"props":1175,"children":1176},{"style":682},[1177],{"type":674,"value":1178},"(snapshot, scope.signal);\n",{"type":659,"tag":32,"props":1180,"children":1182},{"class":34,"line":1181},17,[1183,1188,1193,1198],{"type":659,"tag":32,"props":1184,"children":1185},{"style":671},[1186],{"type":674,"value":1187},"        if",{"type":659,"tag":32,"props":1189,"children":1190},{"style":682},[1191],{"type":674,"value":1192}," (scope.disposed) ",{"type":659,"tag":32,"props":1194,"children":1195},{"style":671},[1196],{"type":674,"value":1197},"return",{"type":659,"tag":32,"props":1199,"children":1200},{"style":682},[1201],{"type":674,"value":700},{"type":659,"tag":32,"props":1203,"children":1205},{"class":34,"line":1204},18,[1206,1210,1214,1218,1223,1227,1232,1237,1242,1246,1250,1255],{"type":659,"tag":32,"props":1207,"children":1208},{"style":671},[1209],{"type":674,"value":1187},{"type":659,"tag":32,"props":1211,"children":1212},{"style":682},[1213],{"type":674,"value":274},{"type":659,"tag":32,"props":1215,"children":1216},{"style":671},[1217],{"type":674,"value":277},{"type":659,"tag":32,"props":1219,"children":1220},{"style":682},[1221],{"type":674,"value":1222},"dirty ",{"type":659,"tag":32,"props":1224,"children":1225},{"style":671},[1226],{"type":674,"value":1046},{"type":659,"tag":32,"props":1228,"children":1229},{"style":682},[1230],{"type":674,"value":1231}," editor.revision ",{"type":659,"tag":32,"props":1233,"children":1234},{"style":671},[1235],{"type":674,"value":1236},"===",{"type":659,"tag":32,"props":1238,"children":1239},{"style":682},[1240],{"type":674,"value":1241}," snapshot.revision) options.",{"type":659,"tag":32,"props":1243,"children":1244},{"style":750},[1245],{"type":674,"value":483},{"type":659,"tag":32,"props":1247,"children":1248},{"style":682},[1249],{"type":674,"value":119},{"type":659,"tag":32,"props":1251,"children":1252},{"style":692},[1253],{"type":674,"value":1254},"\"saved\"",{"type":659,"tag":32,"props":1256,"children":1257},{"style":682},[1258],{"type":674,"value":1142},{"type":659,"tag":32,"props":1260,"children":1262},{"class":34,"line":1261},19,[1263,1268,1273],{"type":659,"tag":32,"props":1264,"children":1265},{"style":682},[1266],{"type":674,"value":1267},"      } ",{"type":659,"tag":32,"props":1269,"children":1270},{"style":671},[1271],{"type":674,"value":1272},"catch",{"type":659,"tag":32,"props":1274,"children":1275},{"style":682},[1276],{"type":674,"value":1277}," (error) {\n",{"type":659,"tag":32,"props":1279,"children":1281},{"class":34,"line":1280},20,[1282,1286,1290,1294,1299,1303,1308,1313,1317,1321,1326,1331,1335],{"type":659,"tag":32,"props":1283,"children":1284},{"style":671},[1285],{"type":674,"value":1187},{"type":659,"tag":32,"props":1287,"children":1288},{"style":682},[1289],{"type":674,"value":274},{"type":659,"tag":32,"props":1291,"children":1292},{"style":671},[1293],{"type":674,"value":277},{"type":659,"tag":32,"props":1295,"children":1296},{"style":682},[1297],{"type":674,"value":1298},"scope.disposed) { dirty ",{"type":659,"tag":32,"props":1300,"children":1301},{"style":671},[1302],{"type":674,"value":818},{"type":659,"tag":32,"props":1304,"children":1305},{"style":805},[1306],{"type":674,"value":1307}," true",{"type":659,"tag":32,"props":1309,"children":1310},{"style":682},[1311],{"type":674,"value":1312},"; options.",{"type":659,"tag":32,"props":1314,"children":1315},{"style":750},[1316],{"type":674,"value":483},{"type":659,"tag":32,"props":1318,"children":1319},{"style":682},[1320],{"type":674,"value":119},{"type":659,"tag":32,"props":1322,"children":1323},{"style":692},[1324],{"type":674,"value":1325},"\"error\"",{"type":659,"tag":32,"props":1327,"children":1328},{"style":682},[1329],{"type":674,"value":1330},"); options.",{"type":659,"tag":32,"props":1332,"children":1333},{"style":750},[1334],{"type":674,"value":531},{"type":659,"tag":32,"props":1336,"children":1337},{"style":682},[1338],{"type":674,"value":1339},"(error); }\n",{"type":659,"tag":32,"props":1341,"children":1343},{"class":34,"line":1342},21,[1344,1349,1354],{"type":659,"tag":32,"props":1345,"children":1346},{"style":671},[1347],{"type":674,"value":1348},"        return",{"type":659,"tag":32,"props":1350,"children":1351},{"style":682},[1352],{"type":674,"value":1353},"; ",{"type":659,"tag":32,"props":1355,"children":1356},{"style":706},[1357],{"type":674,"value":1358},"\u002F\u002F An explicit flush or the next source edit retries; no busy retry loop.\n",{"type":659,"tag":32,"props":1360,"children":1362},{"class":34,"line":1361},22,[1363],{"type":659,"tag":32,"props":1364,"children":1365},{"style":682},[1366],{"type":674,"value":1367},"      }\n",{"type":659,"tag":32,"props":1369,"children":1371},{"class":34,"line":1370},23,[1372],{"type":659,"tag":32,"props":1373,"children":1374},{"style":682},[1375],{"type":674,"value":1376},"    }\n",{"type":659,"tag":32,"props":1378,"children":1380},{"class":34,"line":1379},24,[1381],{"type":659,"tag":32,"props":1382,"children":1383},{"style":682},[1384],{"type":674,"value":1385},"  }\n",{"type":659,"tag":32,"props":1387,"children":1389},{"class":34,"line":1388},25,[1390,1395,1399],{"type":659,"tag":32,"props":1391,"children":1392},{"style":706},[1393],{"type":674,"value":1394},"  \u002F** ",{"type":659,"tag":32,"props":1396,"children":1397},{"style":671},[1398],{"type":674,"value":729},{"type":659,"tag":32,"props":1400,"children":1401},{"style":706},[1402],{"type":674,"value":1403}," Completion of prior work and any source dirty when this flush can acquire the writer. *\u002F\n",{"type":659,"tag":32,"props":1405,"children":1407},{"class":34,"line":1406},26,[1408,1412,1416,1421,1425,1429,1433,1437,1441],{"type":659,"tag":32,"props":1409,"children":1410},{"style":671},[1411],{"type":674,"value":993},{"type":659,"tag":32,"props":1413,"children":1414},{"style":671},[1415],{"type":674,"value":747},{"type":659,"tag":32,"props":1417,"children":1418},{"style":750},[1419],{"type":674,"value":1420}," flush",{"type":659,"tag":32,"props":1422,"children":1423},{"style":682},[1424],{"type":674,"value":1007},{"type":659,"tag":32,"props":1426,"children":1427},{"style":671},[1428],{"type":674,"value":767},{"type":659,"tag":32,"props":1430,"children":1431},{"style":750},[1432],{"type":674,"value":951},{"type":659,"tag":32,"props":1434,"children":1435},{"style":682},[1436],{"type":674,"value":906},{"type":659,"tag":32,"props":1438,"children":1439},{"style":805},[1440],{"type":674,"value":960},{"type":659,"tag":32,"props":1442,"children":1443},{"style":682},[1444],{"type":674,"value":1028},{"type":659,"tag":32,"props":1446,"children":1448},{"class":34,"line":1447},27,[1449,1454],{"type":659,"tag":32,"props":1450,"children":1451},{"style":750},[1452],{"type":674,"value":1453},"    clearTimeout",{"type":659,"tag":32,"props":1455,"children":1456},{"style":682},[1457],{"type":674,"value":1458},"(timer);\n",{"type":659,"tag":32,"props":1460,"children":1462},{"class":34,"line":1461},28,[1463],{"type":659,"tag":32,"props":1464,"children":1465},{"style":706},[1466],{"type":674,"value":1467},"    \u002F\u002F Recheck after awaiting: another flush may have acquired the single writer.\n",{"type":659,"tag":32,"props":1469,"children":1471},{"class":34,"line":1470},29,[1472,1476,1481,1485],{"type":659,"tag":32,"props":1473,"children":1474},{"style":671},[1475],{"type":674,"value":1036},{"type":659,"tag":32,"props":1477,"children":1478},{"style":682},[1479],{"type":674,"value":1480}," (running) ",{"type":659,"tag":32,"props":1482,"children":1483},{"style":671},[1484],{"type":674,"value":557},{"type":659,"tag":32,"props":1486,"children":1487},{"style":682},[1488],{"type":674,"value":1489}," running;\n",{"type":659,"tag":32,"props":1491,"children":1493},{"class":34,"line":1492},30,[1494,1498,1503,1508,1512,1517,1521],{"type":659,"tag":32,"props":1495,"children":1496},{"style":671},[1497],{"type":674,"value":454},{"type":659,"tag":32,"props":1499,"children":1500},{"style":682},[1501],{"type":674,"value":1502}," (scope.disposed ",{"type":659,"tag":32,"props":1504,"children":1505},{"style":671},[1506],{"type":674,"value":1507},"||",{"type":659,"tag":32,"props":1509,"children":1510},{"style":671},[1511],{"type":674,"value":1051},{"type":659,"tag":32,"props":1513,"children":1514},{"style":682},[1515],{"type":674,"value":1516},"dirty) ",{"type":659,"tag":32,"props":1518,"children":1519},{"style":671},[1520],{"type":674,"value":1197},{"type":659,"tag":32,"props":1522,"children":1523},{"style":682},[1524],{"type":674,"value":700},{"type":659,"tag":32,"props":1526,"children":1528},{"class":34,"line":1527},31,[1529,1534,1538,1542,1547,1552,1557,1561,1566,1570,1574],{"type":659,"tag":32,"props":1530,"children":1531},{"style":682},[1532],{"type":674,"value":1533},"    running ",{"type":659,"tag":32,"props":1535,"children":1536},{"style":671},[1537],{"type":674,"value":818},{"type":659,"tag":32,"props":1539,"children":1540},{"style":750},[1541],{"type":674,"value":1002},{"type":659,"tag":32,"props":1543,"children":1544},{"style":682},[1545],{"type":674,"value":1546},"().",{"type":659,"tag":32,"props":1548,"children":1549},{"style":750},[1550],{"type":674,"value":1551},"finally",{"type":659,"tag":32,"props":1553,"children":1554},{"style":682},[1555],{"type":674,"value":1556},"(() ",{"type":659,"tag":32,"props":1558,"children":1559},{"style":671},[1560],{"type":674,"value":373},{"type":659,"tag":32,"props":1562,"children":1563},{"style":682},[1564],{"type":674,"value":1565}," { running ",{"type":659,"tag":32,"props":1567,"children":1568},{"style":671},[1569],{"type":674,"value":818},{"type":659,"tag":32,"props":1571,"children":1572},{"style":805},[1573],{"type":674,"value":926},{"type":659,"tag":32,"props":1575,"children":1576},{"style":682},[1577],{"type":674,"value":1578},"; });\n",{"type":659,"tag":32,"props":1580,"children":1582},{"class":34,"line":1581},32,[1583,1588],{"type":659,"tag":32,"props":1584,"children":1585},{"style":671},[1586],{"type":674,"value":1587},"    await",{"type":659,"tag":32,"props":1589,"children":1590},{"style":682},[1591],{"type":674,"value":1489},{"type":659,"tag":32,"props":1593,"children":1595},{"class":34,"line":1594},33,[1596],{"type":659,"tag":32,"props":1597,"children":1598},{"style":682},[1599],{"type":674,"value":1385},{"type":659,"tag":32,"props":1601,"children":1603},{"class":34,"line":1602},34,[1604,1609,1614,1619,1623,1627,1631],{"type":659,"tag":32,"props":1605,"children":1606},{"style":682},[1607],{"type":674,"value":1608},"  scope.",{"type":659,"tag":32,"props":1610,"children":1611},{"style":750},[1612],{"type":674,"value":1613},"own",{"type":659,"tag":32,"props":1615,"children":1616},{"style":682},[1617],{"type":674,"value":1618},"(editor.",{"type":659,"tag":32,"props":1620,"children":1621},{"style":750},[1622],{"type":674,"value":79},{"type":659,"tag":32,"props":1624,"children":1625},{"style":682},[1626],{"type":674,"value":1556},{"type":659,"tag":32,"props":1628,"children":1629},{"style":671},[1630],{"type":674,"value":373},{"type":659,"tag":32,"props":1632,"children":1633},{"style":682},[1634],{"type":674,"value":129},{"type":659,"tag":32,"props":1636,"children":1638},{"class":34,"line":1637},35,[1639,1644,1648,1652],{"type":659,"tag":32,"props":1640,"children":1641},{"style":682},[1642],{"type":674,"value":1643},"    dirty ",{"type":659,"tag":32,"props":1645,"children":1646},{"style":671},[1647],{"type":674,"value":818},{"type":659,"tag":32,"props":1649,"children":1650},{"style":805},[1651],{"type":674,"value":1307},{"type":659,"tag":32,"props":1653,"children":1654},{"style":682},[1655],{"type":674,"value":700},{"type":659,"tag":32,"props":1657,"children":1659},{"class":34,"line":1658},36,[1660,1665,1669,1673,1678],{"type":659,"tag":32,"props":1661,"children":1662},{"style":682},[1663],{"type":674,"value":1664},"    options.",{"type":659,"tag":32,"props":1666,"children":1667},{"style":750},[1668],{"type":674,"value":483},{"type":659,"tag":32,"props":1670,"children":1671},{"style":682},[1672],{"type":674,"value":119},{"type":659,"tag":32,"props":1674,"children":1675},{"style":692},[1676],{"type":674,"value":1677},"\"dirty\"",{"type":659,"tag":32,"props":1679,"children":1680},{"style":682},[1681],{"type":674,"value":1142},{"type":659,"tag":32,"props":1683,"children":1685},{"class":34,"line":1684},37,[1686,1690],{"type":659,"tag":32,"props":1687,"children":1688},{"style":750},[1689],{"type":674,"value":1453},{"type":659,"tag":32,"props":1691,"children":1692},{"style":682},[1693],{"type":674,"value":1458},{"type":659,"tag":32,"props":1695,"children":1697},{"class":34,"line":1696},38,[1698,1703,1707,1712,1716,1720,1724,1728,1732,1737,1742,1747],{"type":659,"tag":32,"props":1699,"children":1700},{"style":682},[1701],{"type":674,"value":1702},"    timer ",{"type":659,"tag":32,"props":1704,"children":1705},{"style":671},[1706],{"type":674,"value":818},{"type":659,"tag":32,"props":1708,"children":1709},{"style":750},[1710],{"type":674,"value":1711}," setTimeout",{"type":659,"tag":32,"props":1713,"children":1714},{"style":682},[1715],{"type":674,"value":1556},{"type":659,"tag":32,"props":1717,"children":1718},{"style":671},[1719],{"type":674,"value":373},{"type":659,"tag":32,"props":1721,"children":1722},{"style":682},[1723],{"type":674,"value":802},{"type":659,"tag":32,"props":1725,"children":1726},{"style":671},[1727],{"type":674,"value":960},{"type":659,"tag":32,"props":1729,"children":1730},{"style":750},[1731],{"type":674,"value":1420},{"type":659,"tag":32,"props":1733,"children":1734},{"style":682},[1735],{"type":674,"value":1736},"(); }, options.delay ",{"type":659,"tag":32,"props":1738,"children":1739},{"style":671},[1740],{"type":674,"value":1741},"??",{"type":659,"tag":32,"props":1743,"children":1744},{"style":805},[1745],{"type":674,"value":1746}," 600",{"type":659,"tag":32,"props":1748,"children":1749},{"style":682},[1750],{"type":674,"value":1142},{"type":659,"tag":32,"props":1752,"children":1754},{"class":34,"line":1753},39,[1755],{"type":659,"tag":32,"props":1756,"children":1757},{"style":682},[1758],{"type":674,"value":1759},"  }));\n",{"type":659,"tag":32,"props":1761,"children":1763},{"class":34,"line":1762},40,[1764,1768,1772,1776,1780,1785],{"type":659,"tag":32,"props":1765,"children":1766},{"style":682},[1767],{"type":674,"value":1608},{"type":659,"tag":32,"props":1769,"children":1770},{"style":750},[1771],{"type":674,"value":1613},{"type":659,"tag":32,"props":1773,"children":1774},{"style":682},[1775],{"type":674,"value":1556},{"type":659,"tag":32,"props":1777,"children":1778},{"style":671},[1779],{"type":674,"value":373},{"type":659,"tag":32,"props":1781,"children":1782},{"style":750},[1783],{"type":674,"value":1784}," clearTimeout",{"type":659,"tag":32,"props":1786,"children":1787},{"style":682},[1788],{"type":674,"value":1789},"(timer));\n",{"type":659,"tag":32,"props":1791,"children":1793},{"class":34,"line":1792},41,[1794,1799,1804,1809,1814,1818,1823,1827],{"type":659,"tag":32,"props":1795,"children":1796},{"style":671},[1797],{"type":674,"value":1798},"  return",{"type":659,"tag":32,"props":1800,"children":1801},{"style":682},[1802],{"type":674,"value":1803}," { flush, ",{"type":659,"tag":32,"props":1805,"children":1806},{"style":750},[1807],{"type":674,"value":1808},"dispose",{"type":659,"tag":32,"props":1810,"children":1811},{"style":682},[1812],{"type":674,"value":1813},": () ",{"type":659,"tag":32,"props":1815,"children":1816},{"style":671},[1817],{"type":674,"value":373},{"type":659,"tag":32,"props":1819,"children":1820},{"style":682},[1821],{"type":674,"value":1822}," scope.",{"type":659,"tag":32,"props":1824,"children":1825},{"style":750},[1826],{"type":674,"value":1808},{"type":659,"tag":32,"props":1828,"children":1829},{"style":682},[1830],{"type":674,"value":1116},{"type":659,"tag":32,"props":1832,"children":1834},{"class":34,"line":1833},42,[1835],{"type":659,"tag":32,"props":1836,"children":1837},{"style":682},[1838],{"type":674,"value":1839},"}\n",{"type":659,"tag":628,"props":1841,"children":1842},{},[1843],{"type":674,"value":1844},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",1793046311418]