@wonseok-han/confluence-sync 1.8.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/README.md +44 -410
  2. package/dist/cli/args.js +1 -1
  3. package/dist/cli/help.js +214 -115
  4. package/dist/cli/init.js +44 -5
  5. package/dist/cli/main.js +42 -11
  6. package/dist/cli/status.js +83 -0
  7. package/dist/confluence/client.js +121 -57
  8. package/dist/confluence/config.js +12 -8
  9. package/dist/confluence/env-file.js +23 -0
  10. package/dist/confluence/links.js +18 -0
  11. package/dist/conversion/asset-paths.js +5 -0
  12. package/dist/conversion/attachments.js +29 -7
  13. package/dist/conversion/convert.js +10 -22
  14. package/dist/conversion/footnotes.js +114 -11
  15. package/dist/conversion/markdown.js +26 -0
  16. package/dist/conversion/pdf-pages.js +10 -8
  17. package/dist/documents/anchors.js +9 -0
  18. package/dist/documents/callout-roundtrip.js +75 -0
  19. package/dist/documents/callouts.js +74 -0
  20. package/dist/documents/catalog.js +2 -2
  21. package/dist/documents/footnote-roundtrip.js +96 -0
  22. package/dist/documents/format.js +116 -0
  23. package/dist/documents/html-tables.js +30 -0
  24. package/dist/documents/html-to-markdown.js +47 -13
  25. package/dist/documents/markdown.js +46 -4
  26. package/dist/documents/obsidian.js +6 -3
  27. package/dist/documents/tables.js +89 -0
  28. package/dist/runtime/network.js +4 -0
  29. package/dist/shared/colors.js +2 -2
  30. package/dist/shared/progress.js +164 -0
  31. package/dist/shared/version.js +12 -0
  32. package/dist/site/assets/Monaco-LICENSE.txt +21 -0
  33. package/dist/site/assets/Monaco-ThirdPartyNotices.txt +448 -0
  34. package/dist/site/assets/PDFJS-LICENSE.txt +177 -0
  35. package/dist/site/assets/app.css +1 -0
  36. package/dist/site/assets/app.js +4 -0
  37. package/dist/site/assets/chunks/chunk-TEW74QPN.js +35 -0
  38. package/dist/site/assets/chunks/markdown-S6623E66.js +1 -0
  39. package/dist/site/assets/chunks/monaco-36ZGUH4Y.js +897 -0
  40. package/dist/site/assets/chunks/monaco-HFLEBJTI.css +1 -0
  41. package/dist/site/assets/chunks/pdf-DDN7TXTP.js +55 -0
  42. package/dist/site/assets/confluence-env-example.txt +32 -0
  43. package/dist/site/assets/editor.worker.js +1 -0
  44. package/dist/site/assets/favicon.svg +3 -0
  45. package/dist/site/assets/guide/01-account-settings.png +0 -0
  46. package/dist/site/assets/guide/02-atlassian-security.png +0 -0
  47. package/dist/site/assets/guide/03-api-tokens.png +0 -0
  48. package/dist/site/assets/guide/04-scope-api-token-step1.png +0 -0
  49. package/dist/site/assets/guide/05-scope-api-token-step2.png +0 -0
  50. package/dist/site/assets/guide/06-scope-api-token-step3.png +0 -0
  51. package/dist/site/assets/guide/07-scope-api-token-step4.png +0 -0
  52. package/dist/site/assets/guide/web/document-preview.png +0 -0
  53. package/dist/site/assets/guide/web/remote-diff.png +0 -0
  54. package/dist/site/assets/guide/web/sync-workspace.png +0 -0
  55. package/dist/site/assets/pdf/cmaps/78-EUC-H.bcmap +0 -0
  56. package/dist/site/assets/pdf/cmaps/78-EUC-V.bcmap +0 -0
  57. package/dist/site/assets/pdf/cmaps/78-H.bcmap +0 -0
  58. package/dist/site/assets/pdf/cmaps/78-RKSJ-H.bcmap +0 -0
  59. package/dist/site/assets/pdf/cmaps/78-RKSJ-V.bcmap +0 -0
  60. package/dist/site/assets/pdf/cmaps/78-V.bcmap +0 -0
  61. package/dist/site/assets/pdf/cmaps/78ms-RKSJ-H.bcmap +0 -0
  62. package/dist/site/assets/pdf/cmaps/78ms-RKSJ-V.bcmap +0 -0
  63. package/dist/site/assets/pdf/cmaps/83pv-RKSJ-H.bcmap +0 -0
  64. package/dist/site/assets/pdf/cmaps/90ms-RKSJ-H.bcmap +0 -0
  65. package/dist/site/assets/pdf/cmaps/90ms-RKSJ-V.bcmap +0 -0
  66. package/dist/site/assets/pdf/cmaps/90msp-RKSJ-H.bcmap +0 -0
  67. package/dist/site/assets/pdf/cmaps/90msp-RKSJ-V.bcmap +0 -0
  68. package/dist/site/assets/pdf/cmaps/90pv-RKSJ-H.bcmap +0 -0
  69. package/dist/site/assets/pdf/cmaps/90pv-RKSJ-V.bcmap +0 -0
  70. package/dist/site/assets/pdf/cmaps/Add-H.bcmap +0 -0
  71. package/dist/site/assets/pdf/cmaps/Add-RKSJ-H.bcmap +0 -0
  72. package/dist/site/assets/pdf/cmaps/Add-RKSJ-V.bcmap +0 -0
  73. package/dist/site/assets/pdf/cmaps/Add-V.bcmap +0 -0
  74. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-0.bcmap +0 -0
  75. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-1.bcmap +0 -0
  76. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-2.bcmap +0 -0
  77. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-3.bcmap +0 -0
  78. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-4.bcmap +0 -0
  79. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-5.bcmap +0 -0
  80. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-6.bcmap +0 -0
  81. package/dist/site/assets/pdf/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  82. package/dist/site/assets/pdf/cmaps/Adobe-GB1-0.bcmap +0 -0
  83. package/dist/site/assets/pdf/cmaps/Adobe-GB1-1.bcmap +0 -0
  84. package/dist/site/assets/pdf/cmaps/Adobe-GB1-2.bcmap +0 -0
  85. package/dist/site/assets/pdf/cmaps/Adobe-GB1-3.bcmap +0 -0
  86. package/dist/site/assets/pdf/cmaps/Adobe-GB1-4.bcmap +0 -0
  87. package/dist/site/assets/pdf/cmaps/Adobe-GB1-5.bcmap +0 -0
  88. package/dist/site/assets/pdf/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  89. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-0.bcmap +0 -0
  90. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-1.bcmap +0 -0
  91. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-2.bcmap +0 -0
  92. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-3.bcmap +0 -0
  93. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-4.bcmap +0 -0
  94. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-5.bcmap +0 -0
  95. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-6.bcmap +0 -0
  96. package/dist/site/assets/pdf/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  97. package/dist/site/assets/pdf/cmaps/Adobe-Korea1-0.bcmap +0 -0
  98. package/dist/site/assets/pdf/cmaps/Adobe-Korea1-1.bcmap +0 -0
  99. package/dist/site/assets/pdf/cmaps/Adobe-Korea1-2.bcmap +0 -0
  100. package/dist/site/assets/pdf/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  101. package/dist/site/assets/pdf/cmaps/B5-H.bcmap +0 -0
  102. package/dist/site/assets/pdf/cmaps/B5-V.bcmap +0 -0
  103. package/dist/site/assets/pdf/cmaps/B5pc-H.bcmap +0 -0
  104. package/dist/site/assets/pdf/cmaps/B5pc-V.bcmap +0 -0
  105. package/dist/site/assets/pdf/cmaps/CNS-EUC-H.bcmap +0 -0
  106. package/dist/site/assets/pdf/cmaps/CNS-EUC-V.bcmap +0 -0
  107. package/dist/site/assets/pdf/cmaps/CNS1-H.bcmap +0 -0
  108. package/dist/site/assets/pdf/cmaps/CNS1-V.bcmap +0 -0
  109. package/dist/site/assets/pdf/cmaps/CNS2-H.bcmap +0 -0
  110. package/dist/site/assets/pdf/cmaps/CNS2-V.bcmap +3 -0
  111. package/dist/site/assets/pdf/cmaps/ETHK-B5-H.bcmap +0 -0
  112. package/dist/site/assets/pdf/cmaps/ETHK-B5-V.bcmap +0 -0
  113. package/dist/site/assets/pdf/cmaps/ETen-B5-H.bcmap +0 -0
  114. package/dist/site/assets/pdf/cmaps/ETen-B5-V.bcmap +0 -0
  115. package/dist/site/assets/pdf/cmaps/ETenms-B5-H.bcmap +3 -0
  116. package/dist/site/assets/pdf/cmaps/ETenms-B5-V.bcmap +0 -0
  117. package/dist/site/assets/pdf/cmaps/EUC-H.bcmap +0 -0
  118. package/dist/site/assets/pdf/cmaps/EUC-V.bcmap +0 -0
  119. package/dist/site/assets/pdf/cmaps/Ext-H.bcmap +0 -0
  120. package/dist/site/assets/pdf/cmaps/Ext-RKSJ-H.bcmap +0 -0
  121. package/dist/site/assets/pdf/cmaps/Ext-RKSJ-V.bcmap +0 -0
  122. package/dist/site/assets/pdf/cmaps/Ext-V.bcmap +0 -0
  123. package/dist/site/assets/pdf/cmaps/GB-EUC-H.bcmap +0 -0
  124. package/dist/site/assets/pdf/cmaps/GB-EUC-V.bcmap +0 -0
  125. package/dist/site/assets/pdf/cmaps/GB-H.bcmap +4 -0
  126. package/dist/site/assets/pdf/cmaps/GB-V.bcmap +0 -0
  127. package/dist/site/assets/pdf/cmaps/GBK-EUC-H.bcmap +0 -0
  128. package/dist/site/assets/pdf/cmaps/GBK-EUC-V.bcmap +0 -0
  129. package/dist/site/assets/pdf/cmaps/GBK2K-H.bcmap +0 -0
  130. package/dist/site/assets/pdf/cmaps/GBK2K-V.bcmap +0 -0
  131. package/dist/site/assets/pdf/cmaps/GBKp-EUC-H.bcmap +0 -0
  132. package/dist/site/assets/pdf/cmaps/GBKp-EUC-V.bcmap +0 -0
  133. package/dist/site/assets/pdf/cmaps/GBT-EUC-H.bcmap +0 -0
  134. package/dist/site/assets/pdf/cmaps/GBT-EUC-V.bcmap +0 -0
  135. package/dist/site/assets/pdf/cmaps/GBT-H.bcmap +0 -0
  136. package/dist/site/assets/pdf/cmaps/GBT-V.bcmap +0 -0
  137. package/dist/site/assets/pdf/cmaps/GBTpc-EUC-H.bcmap +0 -0
  138. package/dist/site/assets/pdf/cmaps/GBTpc-EUC-V.bcmap +0 -0
  139. package/dist/site/assets/pdf/cmaps/GBpc-EUC-H.bcmap +0 -0
  140. package/dist/site/assets/pdf/cmaps/GBpc-EUC-V.bcmap +0 -0
  141. package/dist/site/assets/pdf/cmaps/H.bcmap +0 -0
  142. package/dist/site/assets/pdf/cmaps/HKdla-B5-H.bcmap +0 -0
  143. package/dist/site/assets/pdf/cmaps/HKdla-B5-V.bcmap +0 -0
  144. package/dist/site/assets/pdf/cmaps/HKdlb-B5-H.bcmap +0 -0
  145. package/dist/site/assets/pdf/cmaps/HKdlb-B5-V.bcmap +0 -0
  146. package/dist/site/assets/pdf/cmaps/HKgccs-B5-H.bcmap +0 -0
  147. package/dist/site/assets/pdf/cmaps/HKgccs-B5-V.bcmap +0 -0
  148. package/dist/site/assets/pdf/cmaps/HKm314-B5-H.bcmap +0 -0
  149. package/dist/site/assets/pdf/cmaps/HKm314-B5-V.bcmap +0 -0
  150. package/dist/site/assets/pdf/cmaps/HKm471-B5-H.bcmap +0 -0
  151. package/dist/site/assets/pdf/cmaps/HKm471-B5-V.bcmap +0 -0
  152. package/dist/site/assets/pdf/cmaps/HKscs-B5-H.bcmap +0 -0
  153. package/dist/site/assets/pdf/cmaps/HKscs-B5-V.bcmap +0 -0
  154. package/dist/site/assets/pdf/cmaps/Hankaku.bcmap +0 -0
  155. package/dist/site/assets/pdf/cmaps/Hiragana.bcmap +0 -0
  156. package/dist/site/assets/pdf/cmaps/KSC-EUC-H.bcmap +0 -0
  157. package/dist/site/assets/pdf/cmaps/KSC-EUC-V.bcmap +0 -0
  158. package/dist/site/assets/pdf/cmaps/KSC-H.bcmap +0 -0
  159. package/dist/site/assets/pdf/cmaps/KSC-Johab-H.bcmap +0 -0
  160. package/dist/site/assets/pdf/cmaps/KSC-Johab-V.bcmap +0 -0
  161. package/dist/site/assets/pdf/cmaps/KSC-V.bcmap +0 -0
  162. package/dist/site/assets/pdf/cmaps/KSCms-UHC-H.bcmap +0 -0
  163. package/dist/site/assets/pdf/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  164. package/dist/site/assets/pdf/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  165. package/dist/site/assets/pdf/cmaps/KSCms-UHC-V.bcmap +0 -0
  166. package/dist/site/assets/pdf/cmaps/KSCpc-EUC-H.bcmap +0 -0
  167. package/dist/site/assets/pdf/cmaps/KSCpc-EUC-V.bcmap +0 -0
  168. package/dist/site/assets/pdf/cmaps/Katakana.bcmap +0 -0
  169. package/dist/site/assets/pdf/cmaps/LICENSE +36 -0
  170. package/dist/site/assets/pdf/cmaps/NWP-H.bcmap +0 -0
  171. package/dist/site/assets/pdf/cmaps/NWP-V.bcmap +0 -0
  172. package/dist/site/assets/pdf/cmaps/RKSJ-H.bcmap +0 -0
  173. package/dist/site/assets/pdf/cmaps/RKSJ-V.bcmap +0 -0
  174. package/dist/site/assets/pdf/cmaps/Roman.bcmap +0 -0
  175. package/dist/site/assets/pdf/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  176. package/dist/site/assets/pdf/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  177. package/dist/site/assets/pdf/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  178. package/dist/site/assets/pdf/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  179. package/dist/site/assets/pdf/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  180. package/dist/site/assets/pdf/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  181. package/dist/site/assets/pdf/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  182. package/dist/site/assets/pdf/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  183. package/dist/site/assets/pdf/cmaps/UniGB-UCS2-H.bcmap +0 -0
  184. package/dist/site/assets/pdf/cmaps/UniGB-UCS2-V.bcmap +0 -0
  185. package/dist/site/assets/pdf/cmaps/UniGB-UTF16-H.bcmap +0 -0
  186. package/dist/site/assets/pdf/cmaps/UniGB-UTF16-V.bcmap +0 -0
  187. package/dist/site/assets/pdf/cmaps/UniGB-UTF32-H.bcmap +0 -0
  188. package/dist/site/assets/pdf/cmaps/UniGB-UTF32-V.bcmap +0 -0
  189. package/dist/site/assets/pdf/cmaps/UniGB-UTF8-H.bcmap +0 -0
  190. package/dist/site/assets/pdf/cmaps/UniGB-UTF8-V.bcmap +0 -0
  191. package/dist/site/assets/pdf/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  192. package/dist/site/assets/pdf/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  193. package/dist/site/assets/pdf/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  194. package/dist/site/assets/pdf/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  195. package/dist/site/assets/pdf/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  196. package/dist/site/assets/pdf/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  197. package/dist/site/assets/pdf/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  198. package/dist/site/assets/pdf/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  199. package/dist/site/assets/pdf/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  200. package/dist/site/assets/pdf/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  201. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  202. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  203. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  204. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  205. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  206. package/dist/site/assets/pdf/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  207. package/dist/site/assets/pdf/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  208. package/dist/site/assets/pdf/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  209. package/dist/site/assets/pdf/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  210. package/dist/site/assets/pdf/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  211. package/dist/site/assets/pdf/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  212. package/dist/site/assets/pdf/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  213. package/dist/site/assets/pdf/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  214. package/dist/site/assets/pdf/cmaps/UniKS-UCS2-H.bcmap +0 -0
  215. package/dist/site/assets/pdf/cmaps/UniKS-UCS2-V.bcmap +0 -0
  216. package/dist/site/assets/pdf/cmaps/UniKS-UTF16-H.bcmap +0 -0
  217. package/dist/site/assets/pdf/cmaps/UniKS-UTF16-V.bcmap +0 -0
  218. package/dist/site/assets/pdf/cmaps/UniKS-UTF32-H.bcmap +0 -0
  219. package/dist/site/assets/pdf/cmaps/UniKS-UTF32-V.bcmap +0 -0
  220. package/dist/site/assets/pdf/cmaps/UniKS-UTF8-H.bcmap +0 -0
  221. package/dist/site/assets/pdf/cmaps/UniKS-UTF8-V.bcmap +0 -0
  222. package/dist/site/assets/pdf/cmaps/V.bcmap +0 -0
  223. package/dist/site/assets/pdf/cmaps/WP-Symbol.bcmap +0 -0
  224. package/dist/site/assets/pdf/standard_fonts/FoxitDingbats.pfb +0 -0
  225. package/dist/site/assets/pdf/standard_fonts/FoxitFixed.pfb +0 -0
  226. package/dist/site/assets/pdf/standard_fonts/FoxitFixedBold.pfb +0 -0
  227. package/dist/site/assets/pdf/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  228. package/dist/site/assets/pdf/standard_fonts/FoxitFixedItalic.pfb +0 -0
  229. package/dist/site/assets/pdf/standard_fonts/FoxitSerif.pfb +0 -0
  230. package/dist/site/assets/pdf/standard_fonts/FoxitSerifBold.pfb +0 -0
  231. package/dist/site/assets/pdf/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  232. package/dist/site/assets/pdf/standard_fonts/FoxitSerifItalic.pfb +0 -0
  233. package/dist/site/assets/pdf/standard_fonts/FoxitSymbol.pfb +0 -0
  234. package/dist/site/assets/pdf/standard_fonts/LICENSE_FOXIT +27 -0
  235. package/dist/site/assets/pdf/standard_fonts/LICENSE_LIBERATION +363 -0
  236. package/dist/site/assets/pdf/standard_fonts/LiberationSans-Bold.ttf +0 -0
  237. package/dist/site/assets/pdf/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  238. package/dist/site/assets/pdf/standard_fonts/LiberationSans-Italic.ttf +0 -0
  239. package/dist/site/assets/pdf/standard_fonts/LiberationSans-Regular.ttf +0 -0
  240. package/dist/site/assets/pdf/wasm/LICENSE_JBIG2 +196 -0
  241. package/dist/site/assets/pdf/wasm/LICENSE_OPENJPEG +39 -0
  242. package/dist/site/assets/pdf/wasm/LICENSE_PDFJS_JBIG2 +13 -0
  243. package/dist/site/assets/pdf/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  244. package/dist/site/assets/pdf/wasm/LICENSE_PDFJS_QCMS +19 -0
  245. package/dist/site/assets/pdf/wasm/LICENSE_QCMS +21 -0
  246. package/dist/site/assets/pdf/wasm/jbig2.wasm +0 -0
  247. package/dist/site/assets/pdf/wasm/jbig2_nowasm_fallback.js +15 -0
  248. package/dist/site/assets/pdf/wasm/openjpeg.wasm +0 -0
  249. package/dist/site/assets/pdf/wasm/openjpeg_nowasm_fallback.js +17 -0
  250. package/dist/site/assets/pdf/wasm/qcms_bg.wasm +0 -0
  251. package/dist/site/assets/pdf/wasm/quickjs-eval.js +16 -0
  252. package/dist/site/assets/pdf/wasm/quickjs-eval.wasm +0 -0
  253. package/dist/site/assets/pdf.worker.min.mjs +29 -0
  254. package/dist/site/assets/workspace.worker.js +409 -0
  255. package/dist/site/index.html +253 -0
  256. package/dist/sync/baseline.js +45 -0
  257. package/dist/sync/changes.js +51 -0
  258. package/dist/sync/diff.js +80 -0
  259. package/dist/sync/fetch.js +287 -0
  260. package/dist/sync/ignore.js +4 -4
  261. package/dist/sync/local-state.js +12 -0
  262. package/dist/sync/mapping.js +31 -8
  263. package/dist/sync/metadata.js +57 -0
  264. package/dist/sync/prepare.js +52 -0
  265. package/dist/sync/pull.js +618 -141
  266. package/dist/sync/push.js +260 -213
  267. package/dist/sync/reconcile.js +51 -0
  268. package/dist/sync/references.js +2 -2
  269. package/dist/sync/remap.js +17 -5
  270. package/dist/sync/render.js +3 -2
  271. package/dist/sync/restore.js +28 -0
  272. package/dist/sync/scope.js +47 -0
  273. package/dist/sync/staging.js +193 -0
  274. package/dist/sync/workspace.js +100 -0
  275. package/dist/web/assets/PDFJS-LICENSE.txt +177 -0
  276. package/dist/web/assets/app.css +1 -1
  277. package/dist/web/assets/app.js +3 -938
  278. package/dist/web/assets/chunks/chunk-TEW74QPN.js +35 -0
  279. package/dist/web/assets/chunks/markdown-S6623E66.js +1 -0
  280. package/dist/web/assets/chunks/monaco-36ZGUH4Y.js +897 -0
  281. package/dist/web/assets/chunks/monaco-HFLEBJTI.css +1 -0
  282. package/dist/web/assets/chunks/pdf-DDN7TXTP.js +55 -0
  283. package/dist/web/assets/confluence-env-example.txt +32 -0
  284. package/dist/web/assets/editor.worker.js +1 -30
  285. package/dist/web/assets/favicon.svg +3 -0
  286. package/dist/web/assets/guide/01-account-settings.png +0 -0
  287. package/dist/web/assets/guide/02-atlassian-security.png +0 -0
  288. package/dist/web/assets/guide/03-api-tokens.png +0 -0
  289. package/dist/web/assets/guide/04-scope-api-token-step1.png +0 -0
  290. package/dist/web/assets/guide/05-scope-api-token-step2.png +0 -0
  291. package/dist/web/assets/guide/06-scope-api-token-step3.png +0 -0
  292. package/dist/web/assets/guide/07-scope-api-token-step4.png +0 -0
  293. package/dist/web/assets/guide/web/document-preview.png +0 -0
  294. package/dist/web/assets/guide/web/remote-diff.png +0 -0
  295. package/dist/web/assets/guide/web/sync-workspace.png +0 -0
  296. package/dist/web/assets/pdf/cmaps/78-EUC-H.bcmap +0 -0
  297. package/dist/web/assets/pdf/cmaps/78-EUC-V.bcmap +0 -0
  298. package/dist/web/assets/pdf/cmaps/78-H.bcmap +0 -0
  299. package/dist/web/assets/pdf/cmaps/78-RKSJ-H.bcmap +0 -0
  300. package/dist/web/assets/pdf/cmaps/78-RKSJ-V.bcmap +0 -0
  301. package/dist/web/assets/pdf/cmaps/78-V.bcmap +0 -0
  302. package/dist/web/assets/pdf/cmaps/78ms-RKSJ-H.bcmap +0 -0
  303. package/dist/web/assets/pdf/cmaps/78ms-RKSJ-V.bcmap +0 -0
  304. package/dist/web/assets/pdf/cmaps/83pv-RKSJ-H.bcmap +0 -0
  305. package/dist/web/assets/pdf/cmaps/90ms-RKSJ-H.bcmap +0 -0
  306. package/dist/web/assets/pdf/cmaps/90ms-RKSJ-V.bcmap +0 -0
  307. package/dist/web/assets/pdf/cmaps/90msp-RKSJ-H.bcmap +0 -0
  308. package/dist/web/assets/pdf/cmaps/90msp-RKSJ-V.bcmap +0 -0
  309. package/dist/web/assets/pdf/cmaps/90pv-RKSJ-H.bcmap +0 -0
  310. package/dist/web/assets/pdf/cmaps/90pv-RKSJ-V.bcmap +0 -0
  311. package/dist/web/assets/pdf/cmaps/Add-H.bcmap +0 -0
  312. package/dist/web/assets/pdf/cmaps/Add-RKSJ-H.bcmap +0 -0
  313. package/dist/web/assets/pdf/cmaps/Add-RKSJ-V.bcmap +0 -0
  314. package/dist/web/assets/pdf/cmaps/Add-V.bcmap +0 -0
  315. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-0.bcmap +0 -0
  316. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-1.bcmap +0 -0
  317. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-2.bcmap +0 -0
  318. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-3.bcmap +0 -0
  319. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-4.bcmap +0 -0
  320. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-5.bcmap +0 -0
  321. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-6.bcmap +0 -0
  322. package/dist/web/assets/pdf/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
  323. package/dist/web/assets/pdf/cmaps/Adobe-GB1-0.bcmap +0 -0
  324. package/dist/web/assets/pdf/cmaps/Adobe-GB1-1.bcmap +0 -0
  325. package/dist/web/assets/pdf/cmaps/Adobe-GB1-2.bcmap +0 -0
  326. package/dist/web/assets/pdf/cmaps/Adobe-GB1-3.bcmap +0 -0
  327. package/dist/web/assets/pdf/cmaps/Adobe-GB1-4.bcmap +0 -0
  328. package/dist/web/assets/pdf/cmaps/Adobe-GB1-5.bcmap +0 -0
  329. package/dist/web/assets/pdf/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
  330. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-0.bcmap +0 -0
  331. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-1.bcmap +0 -0
  332. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-2.bcmap +0 -0
  333. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-3.bcmap +0 -0
  334. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-4.bcmap +0 -0
  335. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-5.bcmap +0 -0
  336. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-6.bcmap +0 -0
  337. package/dist/web/assets/pdf/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
  338. package/dist/web/assets/pdf/cmaps/Adobe-Korea1-0.bcmap +0 -0
  339. package/dist/web/assets/pdf/cmaps/Adobe-Korea1-1.bcmap +0 -0
  340. package/dist/web/assets/pdf/cmaps/Adobe-Korea1-2.bcmap +0 -0
  341. package/dist/web/assets/pdf/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
  342. package/dist/web/assets/pdf/cmaps/B5-H.bcmap +0 -0
  343. package/dist/web/assets/pdf/cmaps/B5-V.bcmap +0 -0
  344. package/dist/web/assets/pdf/cmaps/B5pc-H.bcmap +0 -0
  345. package/dist/web/assets/pdf/cmaps/B5pc-V.bcmap +0 -0
  346. package/dist/web/assets/pdf/cmaps/CNS-EUC-H.bcmap +0 -0
  347. package/dist/web/assets/pdf/cmaps/CNS-EUC-V.bcmap +0 -0
  348. package/dist/web/assets/pdf/cmaps/CNS1-H.bcmap +0 -0
  349. package/dist/web/assets/pdf/cmaps/CNS1-V.bcmap +0 -0
  350. package/dist/web/assets/pdf/cmaps/CNS2-H.bcmap +0 -0
  351. package/dist/web/assets/pdf/cmaps/CNS2-V.bcmap +3 -0
  352. package/dist/web/assets/pdf/cmaps/ETHK-B5-H.bcmap +0 -0
  353. package/dist/web/assets/pdf/cmaps/ETHK-B5-V.bcmap +0 -0
  354. package/dist/web/assets/pdf/cmaps/ETen-B5-H.bcmap +0 -0
  355. package/dist/web/assets/pdf/cmaps/ETen-B5-V.bcmap +0 -0
  356. package/dist/web/assets/pdf/cmaps/ETenms-B5-H.bcmap +3 -0
  357. package/dist/web/assets/pdf/cmaps/ETenms-B5-V.bcmap +0 -0
  358. package/dist/web/assets/pdf/cmaps/EUC-H.bcmap +0 -0
  359. package/dist/web/assets/pdf/cmaps/EUC-V.bcmap +0 -0
  360. package/dist/web/assets/pdf/cmaps/Ext-H.bcmap +0 -0
  361. package/dist/web/assets/pdf/cmaps/Ext-RKSJ-H.bcmap +0 -0
  362. package/dist/web/assets/pdf/cmaps/Ext-RKSJ-V.bcmap +0 -0
  363. package/dist/web/assets/pdf/cmaps/Ext-V.bcmap +0 -0
  364. package/dist/web/assets/pdf/cmaps/GB-EUC-H.bcmap +0 -0
  365. package/dist/web/assets/pdf/cmaps/GB-EUC-V.bcmap +0 -0
  366. package/dist/web/assets/pdf/cmaps/GB-H.bcmap +4 -0
  367. package/dist/web/assets/pdf/cmaps/GB-V.bcmap +0 -0
  368. package/dist/web/assets/pdf/cmaps/GBK-EUC-H.bcmap +0 -0
  369. package/dist/web/assets/pdf/cmaps/GBK-EUC-V.bcmap +0 -0
  370. package/dist/web/assets/pdf/cmaps/GBK2K-H.bcmap +0 -0
  371. package/dist/web/assets/pdf/cmaps/GBK2K-V.bcmap +0 -0
  372. package/dist/web/assets/pdf/cmaps/GBKp-EUC-H.bcmap +0 -0
  373. package/dist/web/assets/pdf/cmaps/GBKp-EUC-V.bcmap +0 -0
  374. package/dist/web/assets/pdf/cmaps/GBT-EUC-H.bcmap +0 -0
  375. package/dist/web/assets/pdf/cmaps/GBT-EUC-V.bcmap +0 -0
  376. package/dist/web/assets/pdf/cmaps/GBT-H.bcmap +0 -0
  377. package/dist/web/assets/pdf/cmaps/GBT-V.bcmap +0 -0
  378. package/dist/web/assets/pdf/cmaps/GBTpc-EUC-H.bcmap +0 -0
  379. package/dist/web/assets/pdf/cmaps/GBTpc-EUC-V.bcmap +0 -0
  380. package/dist/web/assets/pdf/cmaps/GBpc-EUC-H.bcmap +0 -0
  381. package/dist/web/assets/pdf/cmaps/GBpc-EUC-V.bcmap +0 -0
  382. package/dist/web/assets/pdf/cmaps/H.bcmap +0 -0
  383. package/dist/web/assets/pdf/cmaps/HKdla-B5-H.bcmap +0 -0
  384. package/dist/web/assets/pdf/cmaps/HKdla-B5-V.bcmap +0 -0
  385. package/dist/web/assets/pdf/cmaps/HKdlb-B5-H.bcmap +0 -0
  386. package/dist/web/assets/pdf/cmaps/HKdlb-B5-V.bcmap +0 -0
  387. package/dist/web/assets/pdf/cmaps/HKgccs-B5-H.bcmap +0 -0
  388. package/dist/web/assets/pdf/cmaps/HKgccs-B5-V.bcmap +0 -0
  389. package/dist/web/assets/pdf/cmaps/HKm314-B5-H.bcmap +0 -0
  390. package/dist/web/assets/pdf/cmaps/HKm314-B5-V.bcmap +0 -0
  391. package/dist/web/assets/pdf/cmaps/HKm471-B5-H.bcmap +0 -0
  392. package/dist/web/assets/pdf/cmaps/HKm471-B5-V.bcmap +0 -0
  393. package/dist/web/assets/pdf/cmaps/HKscs-B5-H.bcmap +0 -0
  394. package/dist/web/assets/pdf/cmaps/HKscs-B5-V.bcmap +0 -0
  395. package/dist/web/assets/pdf/cmaps/Hankaku.bcmap +0 -0
  396. package/dist/web/assets/pdf/cmaps/Hiragana.bcmap +0 -0
  397. package/dist/web/assets/pdf/cmaps/KSC-EUC-H.bcmap +0 -0
  398. package/dist/web/assets/pdf/cmaps/KSC-EUC-V.bcmap +0 -0
  399. package/dist/web/assets/pdf/cmaps/KSC-H.bcmap +0 -0
  400. package/dist/web/assets/pdf/cmaps/KSC-Johab-H.bcmap +0 -0
  401. package/dist/web/assets/pdf/cmaps/KSC-Johab-V.bcmap +0 -0
  402. package/dist/web/assets/pdf/cmaps/KSC-V.bcmap +0 -0
  403. package/dist/web/assets/pdf/cmaps/KSCms-UHC-H.bcmap +0 -0
  404. package/dist/web/assets/pdf/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
  405. package/dist/web/assets/pdf/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
  406. package/dist/web/assets/pdf/cmaps/KSCms-UHC-V.bcmap +0 -0
  407. package/dist/web/assets/pdf/cmaps/KSCpc-EUC-H.bcmap +0 -0
  408. package/dist/web/assets/pdf/cmaps/KSCpc-EUC-V.bcmap +0 -0
  409. package/dist/web/assets/pdf/cmaps/Katakana.bcmap +0 -0
  410. package/dist/web/assets/pdf/cmaps/LICENSE +36 -0
  411. package/dist/web/assets/pdf/cmaps/NWP-H.bcmap +0 -0
  412. package/dist/web/assets/pdf/cmaps/NWP-V.bcmap +0 -0
  413. package/dist/web/assets/pdf/cmaps/RKSJ-H.bcmap +0 -0
  414. package/dist/web/assets/pdf/cmaps/RKSJ-V.bcmap +0 -0
  415. package/dist/web/assets/pdf/cmaps/Roman.bcmap +0 -0
  416. package/dist/web/assets/pdf/cmaps/UniCNS-UCS2-H.bcmap +0 -0
  417. package/dist/web/assets/pdf/cmaps/UniCNS-UCS2-V.bcmap +0 -0
  418. package/dist/web/assets/pdf/cmaps/UniCNS-UTF16-H.bcmap +0 -0
  419. package/dist/web/assets/pdf/cmaps/UniCNS-UTF16-V.bcmap +0 -0
  420. package/dist/web/assets/pdf/cmaps/UniCNS-UTF32-H.bcmap +0 -0
  421. package/dist/web/assets/pdf/cmaps/UniCNS-UTF32-V.bcmap +0 -0
  422. package/dist/web/assets/pdf/cmaps/UniCNS-UTF8-H.bcmap +0 -0
  423. package/dist/web/assets/pdf/cmaps/UniCNS-UTF8-V.bcmap +0 -0
  424. package/dist/web/assets/pdf/cmaps/UniGB-UCS2-H.bcmap +0 -0
  425. package/dist/web/assets/pdf/cmaps/UniGB-UCS2-V.bcmap +0 -0
  426. package/dist/web/assets/pdf/cmaps/UniGB-UTF16-H.bcmap +0 -0
  427. package/dist/web/assets/pdf/cmaps/UniGB-UTF16-V.bcmap +0 -0
  428. package/dist/web/assets/pdf/cmaps/UniGB-UTF32-H.bcmap +0 -0
  429. package/dist/web/assets/pdf/cmaps/UniGB-UTF32-V.bcmap +0 -0
  430. package/dist/web/assets/pdf/cmaps/UniGB-UTF8-H.bcmap +0 -0
  431. package/dist/web/assets/pdf/cmaps/UniGB-UTF8-V.bcmap +0 -0
  432. package/dist/web/assets/pdf/cmaps/UniJIS-UCS2-H.bcmap +0 -0
  433. package/dist/web/assets/pdf/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
  434. package/dist/web/assets/pdf/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
  435. package/dist/web/assets/pdf/cmaps/UniJIS-UCS2-V.bcmap +0 -0
  436. package/dist/web/assets/pdf/cmaps/UniJIS-UTF16-H.bcmap +0 -0
  437. package/dist/web/assets/pdf/cmaps/UniJIS-UTF16-V.bcmap +0 -0
  438. package/dist/web/assets/pdf/cmaps/UniJIS-UTF32-H.bcmap +0 -0
  439. package/dist/web/assets/pdf/cmaps/UniJIS-UTF32-V.bcmap +0 -0
  440. package/dist/web/assets/pdf/cmaps/UniJIS-UTF8-H.bcmap +0 -0
  441. package/dist/web/assets/pdf/cmaps/UniJIS-UTF8-V.bcmap +0 -0
  442. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
  443. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
  444. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
  445. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
  446. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
  447. package/dist/web/assets/pdf/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
  448. package/dist/web/assets/pdf/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
  449. package/dist/web/assets/pdf/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
  450. package/dist/web/assets/pdf/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
  451. package/dist/web/assets/pdf/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
  452. package/dist/web/assets/pdf/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
  453. package/dist/web/assets/pdf/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
  454. package/dist/web/assets/pdf/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
  455. package/dist/web/assets/pdf/cmaps/UniKS-UCS2-H.bcmap +0 -0
  456. package/dist/web/assets/pdf/cmaps/UniKS-UCS2-V.bcmap +0 -0
  457. package/dist/web/assets/pdf/cmaps/UniKS-UTF16-H.bcmap +0 -0
  458. package/dist/web/assets/pdf/cmaps/UniKS-UTF16-V.bcmap +0 -0
  459. package/dist/web/assets/pdf/cmaps/UniKS-UTF32-H.bcmap +0 -0
  460. package/dist/web/assets/pdf/cmaps/UniKS-UTF32-V.bcmap +0 -0
  461. package/dist/web/assets/pdf/cmaps/UniKS-UTF8-H.bcmap +0 -0
  462. package/dist/web/assets/pdf/cmaps/UniKS-UTF8-V.bcmap +0 -0
  463. package/dist/web/assets/pdf/cmaps/V.bcmap +0 -0
  464. package/dist/web/assets/pdf/cmaps/WP-Symbol.bcmap +0 -0
  465. package/dist/web/assets/pdf/standard_fonts/FoxitDingbats.pfb +0 -0
  466. package/dist/web/assets/pdf/standard_fonts/FoxitFixed.pfb +0 -0
  467. package/dist/web/assets/pdf/standard_fonts/FoxitFixedBold.pfb +0 -0
  468. package/dist/web/assets/pdf/standard_fonts/FoxitFixedBoldItalic.pfb +0 -0
  469. package/dist/web/assets/pdf/standard_fonts/FoxitFixedItalic.pfb +0 -0
  470. package/dist/web/assets/pdf/standard_fonts/FoxitSerif.pfb +0 -0
  471. package/dist/web/assets/pdf/standard_fonts/FoxitSerifBold.pfb +0 -0
  472. package/dist/web/assets/pdf/standard_fonts/FoxitSerifBoldItalic.pfb +0 -0
  473. package/dist/web/assets/pdf/standard_fonts/FoxitSerifItalic.pfb +0 -0
  474. package/dist/web/assets/pdf/standard_fonts/FoxitSymbol.pfb +0 -0
  475. package/dist/web/assets/pdf/standard_fonts/LICENSE_FOXIT +27 -0
  476. package/dist/web/assets/pdf/standard_fonts/LICENSE_LIBERATION +363 -0
  477. package/dist/web/assets/pdf/standard_fonts/LiberationSans-Bold.ttf +0 -0
  478. package/dist/web/assets/pdf/standard_fonts/LiberationSans-BoldItalic.ttf +0 -0
  479. package/dist/web/assets/pdf/standard_fonts/LiberationSans-Italic.ttf +0 -0
  480. package/dist/web/assets/pdf/standard_fonts/LiberationSans-Regular.ttf +0 -0
  481. package/dist/web/assets/pdf/wasm/LICENSE_JBIG2 +196 -0
  482. package/dist/web/assets/pdf/wasm/LICENSE_OPENJPEG +39 -0
  483. package/dist/web/assets/pdf/wasm/LICENSE_PDFJS_JBIG2 +13 -0
  484. package/dist/web/assets/pdf/wasm/LICENSE_PDFJS_OPENJPEG +22 -0
  485. package/dist/web/assets/pdf/wasm/LICENSE_PDFJS_QCMS +19 -0
  486. package/dist/web/assets/pdf/wasm/LICENSE_QCMS +21 -0
  487. package/dist/web/assets/pdf/wasm/jbig2.wasm +0 -0
  488. package/dist/web/assets/pdf/wasm/jbig2_nowasm_fallback.js +15 -0
  489. package/dist/web/assets/pdf/wasm/openjpeg.wasm +0 -0
  490. package/dist/web/assets/pdf/wasm/openjpeg_nowasm_fallback.js +17 -0
  491. package/dist/web/assets/pdf/wasm/qcms_bg.wasm +0 -0
  492. package/dist/web/assets/pdf/wasm/quickjs-eval.js +16 -0
  493. package/dist/web/assets/pdf/wasm/quickjs-eval.wasm +0 -0
  494. package/dist/web/assets/pdf.worker.min.mjs +29 -0
  495. package/dist/web/assets/workspace.worker.js +409 -0
  496. package/dist/web/document-source.js +14 -0
  497. package/dist/web/hosted-files.js +189 -0
  498. package/dist/web/hosted.js +316 -0
  499. package/dist/web/node-runner.js +26 -0
  500. package/dist/web/preview.js +74 -0
  501. package/dist/web/server.js +85 -240
  502. package/dist/web/sync.js +364 -70
  503. package/dist/web/table-editor-script.js +99 -0
  504. package/dist/web/table-format.js +224 -0
  505. package/dist/web/views/help.js +15 -10
  506. package/dist/web/views/sync-panel.js +90 -19
  507. package/dist/web/views/token-guide.js +27 -0
  508. package/dist/web/views/usage-guide.js +12 -0
  509. package/dist/web/views/workspace.js +85 -15
  510. package/dist/web/workspace-api.js +371 -0
  511. package/docs/user/CLI.md +366 -0
  512. package/docs/user/CONFIGURATION.md +125 -0
  513. package/docs/user/OBSIDIAN.md +117 -0
  514. package/docs/user/WEB.md +90 -0
  515. package/docs/user/images/web/document-preview.png +0 -0
  516. package/docs/user/images/web/remote-diff.png +0 -0
  517. package/docs/user/images/web/sync-workspace.png +0 -0
  518. package/package.json +23 -6
@@ -0,0 +1,4 @@
1
+ function Ze(e,n,i={}){if(i.quiet||e==="/api/sync/job")return null;if(e==="/api/sync/staging")return{label:n?.action==="add"?"\uC5C5\uB85C\uB4DC \uBB38\uC11C\uC5D0 \uD3EC\uD568\uD558\uB294 \uC911":n?.action==="remove"?"\uC5C5\uB85C\uB4DC \uC120\uD0DD\uC744 \uD574\uC81C\uD558\uB294 \uC911":"\uB85C\uCEEC \uBCC0\uACBD\uC744 \uD655\uC778\uD558\uB294 \uC911",background:!!i.background,button:n?.action?n.paths?.length===1?null:n.action==="add"?"sync-stage-add":"sync-stage-remove":"sync-stage-scan",region:"sync-stage-list"};let c={"/api/sync/config":["\uC5F0\uACB0 \uC124\uC815\uC744 \uD655\uC778\uD558\uB294 \uC911","sync-load","sync-env-body"],"/api/sync/connect":["\uC2A4\uD398\uC774\uC2A4\uC5D0 \uC5F0\uACB0\uD558\uB294 \uC911","sync-connect","sync-env-body"],"/api/sync/env/import":[".env\uB97C \uC77D\uB294 \uC911","sync-env-choose","sync-env-body"],"/api/sync/env/save":[".env \uC800\uC7A5\uC744 \uD655\uC778\uD558\uB294 \uC911","sync-env-save","sync-env-body"],"/api/sync/fetch":["\uC6D0\uACA9 \uBCC0\uACBD\uC744 \uD655\uC778\uD558\uB294 \uC911","sync-fetch","sync-view"],"/api/sync/restore":["\uC6D0\uACA9 \uBCF5\uAD6C \uB300\uC0C1\uC744 \uD655\uC778\uD558\uB294 \uC911",void 0,"sync-view"],"/api/sync/pull":["Confluence\uC5D0\uC11C \uAC00\uC838\uC624\uB294 \uC911","sync-pull-remote","sync-view"],"/api/sync/preview":["\uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uACC4\uC0B0\uD558\uB294 \uC911","sync-preview","sync-view"],"/api/sync/push":["Confluence\uC5D0 \uC5C5\uB85C\uB4DC\uD558\uB294 \uC911","sync-push","sync-view"],"/api/sync/diff":[n?.remote?"\uC6D0\uACA9 \uBCF8\uBB38\uC744 \uBE44\uAD50\uD558\uB294 \uC911":"\uC800\uC7A5\uB41C \uAE30\uC900\uBCF8\uC744 \uBE44\uAD50\uD558\uB294 \uC911","sync-diff-remote","sync-diff-dialog"],"/api/document-preview":["\uBB38\uC11C \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uB9CC\uB4DC\uB294 \uC911","document-preview-refresh","document-preview-panel"],"/api/document-format/preview":["\uBB38\uC11C \uC11C\uC2DD\uC744 \uBE44\uAD50\uD558\uB294 \uC911",n?.basic?"document-format-basic":"document-format-review","document-preview-panel"],"/api/table-format/preview":["\uD45C \uC11C\uC2DD\uC744 \uBE44\uAD50\uD558\uB294 \uC911","document-format-review","document-preview-panel"],"/api/table-format/save":["\uBB38\uC11C \uC11C\uC2DD\uC744 \uC800\uC7A5\uD558\uB294 \uC911","table-save","table-review-dialog"],"/api/convert":[n?.preview?"\uBCC0\uD658 \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uB9CC\uB4DC\uB294 \uC911":"\uBB38\uC11C\uC640 \uCCA8\uBD80\uB97C \uBCC0\uD658\uD558\uB294 \uC911",n?.preview?"preview":"save","convert-view"],"/api/pick-folder":["\uC2DC\uC2A4\uD15C \uCC3D\uC5D0\uC11C \uD3F4\uB354\uB97C \uC120\uD0DD\uD574 \uC8FC\uC138\uC694",n?.kind==="reference"?"sync-add-reference":n?.kind==="out"?"choose-out":"choose-base",null],"/api/open":["\uACB0\uACFC \uD3F4\uB354\uB97C \uC5EC\uB294 \uC911","open",null]};if(e.startsWith("/api/search"))return{label:"\uBB38\uC11C\uB97C \uAC80\uC0C9\uD558\uB294 \uC911",region:"files"};let[d,l,t]=c[e]??["\uBB38\uC11C \uD3F4\uB354\uB97C \uBD88\uB7EC\uC624\uB294 \uC911",null,"files"];return{label:d,button:l,region:t}}function Qe({get:e=i=>document.getElementById(i),now:n=()=>Date.now()}={}){let i=new Map,c=new Map,d=0,l,t=e("activity-panel");function o(g,v){let x=g&&e(g);if(!x)return;let w=c.get(x);v>0?(w||(w={count:0,busy:x.getAttribute("aria-busy")},c.set(x,w)),w.count++,x.setAttribute("aria-busy","true"),x.classList.add("is-loading")):w&&--w.count===0&&(w.busy===null?x.removeAttribute("aria-busy"):x.setAttribute("aria-busy",w.busy),x.classList.remove("is-loading"),c.delete(x))}function u(g){let v=Math.max(0,Math.floor((n()-g.startedAt)/1e3));return v<60?`${v}\uCD08 \uACBD\uACFC`:`${Math.floor(v/60)}\uBD84 ${v%60}\uCD08 \uACBD\uACFC`}function s(){let g=[...i.values()].filter(v=>!v.background).at(-1);g&&t&&(e("activity-elapsed").textContent=u(g))}function m(){let g=[...i.values()].filter(x=>!x.background).at(-1);t&&(t.hidden=!g,g&&(e("activity-title").textContent=g.label,e("activity-detail").textContent=g.detail||"\uCC98\uB9AC\uAC00 \uB05D\uB098\uBA74 \uACB0\uACFC\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.",t.classList.toggle("is-uncertain",g.uncertain===!0),e("activity-link").hidden=!g.link,g.link&&e("activity-link").setAttribute("href",g.link)));let v=e("sync-stage-checking");if(v){let x=[...i.values()].some(w=>w.background&&w.visible);v.classList.toggle("is-checking",x),v.setAttribute("aria-hidden",String(!x))}g&&!l&&(l=setInterval(s,1e3)),!g&&l&&(clearInterval(l),l=void 0),s()}function y(g){let v=++d,x=Date.parse(g.startedAt),w={...g,startedAt:Number.isFinite(x)?x:n(),visible:!1};return i.set(v,w),w.background?w.delay=setTimeout(()=>{i.has(v)&&(w.visible=!0,m())},350):(o(w.button,1),o(w.region,1)),m(),{update(b){if(!i.has(v))return;let M=Date.parse(b.startedAt);Object.assign(w,b,{startedAt:Number.isFinite(M)?M:w.startedAt}),m()},end(){i.delete(v)&&(clearTimeout(w.delay),w.background||(o(w.button,-1),o(w.region,-1)),m())}}}return{begin:y}}var Ce=async e=>Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",e))).map(n=>n.toString(16).padStart(2,"0")).join(""),Ot=e=>!e.split("/").some((n,i)=>n==="node_modules"||n===".git"||n.startsWith(".")&&!(i===0&&[".csync",".env",".confluence-sync.json",".confluence-workspace.json",".confluence-syncignore"].includes(n)));function tt(e,n){let i=e.find(d=>n.startsWith(d.virtual+"/"));if(!i)throw Error("\uC120\uD0DD\uD55C \uD3F4\uB354 \uBC16\uC758 \uD30C\uC77C\uC785\uB2C8\uB2E4.");let c=n.slice(i.virtual.length+1).split("/");if(c.some(d=>!d||d==="."||d===".."||d.includes("\\")))throw Error("\uC798\uBABB\uB41C \uD30C\uC77C \uACBD\uB85C\uC785\uB2C8\uB2E4.");return{mount:i,parts:c}}async function We(e,n,i=!1){let{mount:c,parts:d}=tt(e,n),l=c.handle;for(let t of d.slice(0,-1))l=await l.getDirectoryHandle(t,{create:i});return{directory:l,name:d.at(-1),handle:await l.getFileHandle(d.at(-1),{create:i})}}var Pt=e=>e.name==="NotFoundError";async function Ue(e,n){try{return new Uint8Array(await(await(await We(e,n)).handle.getFile()).arrayBuffer())}catch(i){if(Pt(i))return null;throw i}}async function Ye(e,n,i){let{handle:c}=await We(e,n,!0),d=await c.createWritable();try{await d.write(i),await d.close()}catch(l){throw await d.abort().catch(()=>{}),l}}async function et(e,n){let{directory:i,name:c}=await We(e,n);await i.removeEntry(c)}async function Rt(e,n=new Map,i=!1){let c=[],d=0;async function l(t,o,u=[]){for await(let[s,m]of o.entries()){let y=[...u,s].join("/");if(t.readonly&&y===".env"||!Ot(y))continue;if(m.kind==="directory"){await l(t,m,[...u,s]);continue}let g=await m.getFile();if(d+=g.size,g.size>104857600||d>536870912||c.length>=2e4)throw Error("\uC791\uC5C5\uACF5\uAC04 \uD55C\uB3C4\uB97C \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4(\uD30C\uC77C 100MiB, \uC804\uCCB4 512MiB, 20,000\uAC1C).");let v=t.virtual+"/"+y,x=`${g.size}:${g.lastModified}`,w=n.get(v),b=!i&&w?.stamp===x?w.hash:await Ce(await g.arrayBuffer());n.set(v,{stamp:x,hash:b}),c.push({path:v,size:g.size,hash:b,file:g})}}for(let t of e)await l(t,t.handle);return c.sort((t,o)=>t.path<o.path?-1:t.path>o.path?1:0)}async function Nt(e,n,i,c){let d=new Map(n.map(o=>[o.path,o.hash])),l=[],t=[...i.files.map(o=>({...o,remove:!1})),...i.removed.map(o=>({path:o,remove:!0}))];t.sort((o,u)=>(o.path.includes("/.csync/")?3:o.path.endsWith(".md")?2:1)-(u.path.includes("/.csync/")?3:u.path.endsWith(".md")?2:1));for(let o of t){let{mount:u}=tt(e,o.path);if(u.readonly)throw Error("\uCC38\uC870 \uD3F4\uB354\uB294 \uC218\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.");let s=await Ue(e,o.path),m=s?await Ce(s):void 0;if(!o.remove&&m===o.hash||o.remove&&!s){o.skip=!0;continue}if(m!==d.get(o.path))throw Error(`\uC791\uC5C5 \uC911 \uB85C\uCEEC \uD30C\uC77C\uC774 \uBC14\uB00C\uC5C8\uC2B5\uB2C8\uB2E4: ${o.path}`);if(o.before=s,o.beforeHash=m,!o.remove&&(o.bytes=new Uint8Array(await c(o.path)),await Ce(o.bytes)!==o.hash))throw Error("\uACB0\uACFC \uD30C\uC77C\uC774 \uBC14\uB00C\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.")}try{for(let o of t){if(o.skip)continue;let u=await Ue(e,o.path);if((u?await Ce(u):void 0)!==o.beforeHash)throw Error(`\uC800\uC7A5 \uC9C1\uC804 \uB85C\uCEEC \uD30C\uC77C\uC774 \uBC14\uB00C\uC5C8\uC2B5\uB2C8\uB2E4: ${o.path}`);l.push(o),o.remove?u&&await et(e,o.path):await Ye(e,o.path,o.bytes)}}catch(o){let u=[];for(let s of l.reverse())try{let m=await Ue(e,s.path),y=m?await Ce(m):void 0;if(y===s.beforeHash)continue;if(y!==(s.remove?void 0:s.hash)){u.push(s.path);continue}s.before?await Ye(e,s.path,s.before):m&&await et(e,s.path)}catch{u.push(s.path)}throw u.length?Error(`${o.message} \uCD94\uAC00 \uD3B8\uC9D1 \uB610\uB294 \uBCF5\uC6D0 \uC2E4\uD328\uB85C \uD655\uC778\uC774 \uD544\uC694\uD55C \uD30C\uC77C: ${u.join(", ")}`):o}}function Ft(){return new Promise((e,n)=>{let i=indexedDB.open("csync.browser-folders",1);i.onupgradeneeded=()=>i.result.createObjectStore("workspace"),i.onsuccess=()=>e(i.result),i.onerror=()=>n(i.error)})}async function Bt(e,n="active"){let i=await Ft();try{return await new Promise((c,d)=>{let l=i.transaction("workspace",e===void 0?"readonly":"readwrite"),t=l.objectStore("workspace"),o=e===void 0?t.get(n):e===null?t.delete(n):t.put(e,n),u;o.onsuccess=()=>{u=o.result},l.oncomplete=()=>c(u),l.onerror=()=>d(l.error)})}finally{i.close()}}function Je({document:e=globalThis.document,window:n=globalThis.window,location:i=globalThis.location,storage:c=globalThis.sessionStorage,fetch:d=globalThis.fetch,remember:l=Bt,pickDirectory:t=o=>n.showDirectoryPicker(o)}={}){let o=a=>e.getElementById(a),u=o("browser-folder-dialog"),s=o("browser-folder-status"),m=o("browser-apply-dialog"),y,g=[],v=[],x=!1,w=Promise.resolve(),b=new Map,M,A=!1,I=new Promise(a=>{M=a}),O="csync.browser-session.v1",F=a=>{let h=w.catch(()=>{}).then(a);return w=h,h},L=async()=>{c.setItem(O,JSON.stringify(y)),await l({mounts:g,baseline:v},y.id)},W=async(a,h=!1)=>{let E=h?"read":"readwrite";if(await a.queryPermission({mode:E})!=="granted"&&await a.requestPermission({mode:E})!=="granted")throw Error("\uC120\uD0DD\uD55C \uD3F4\uB354\uC758 \uC77D\uAE30\xB7\uC4F0\uAE30 \uAD8C\uD55C\uC744 \uD5C8\uC6A9\uD558\uC138\uC694.")};async function T(a,h,E=h?"POST":"GET"){let f=await d(a,{method:E,credentials:"omit",headers:{...y?{"X-Csync-Session":y.id,"X-Csync-Token":y.token}:{},...h?{"Content-Type":"application/json"}:{}},...h?{body:JSON.stringify(h)}:{}}),S=await f.json();if(!f.ok)throw Object.assign(Error(S.error||"\uC791\uC5C5 \uC694\uCCAD\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4."),{code:S.code,status:f.status,conflicts:S.conflicts,inPlace:S.inPlace,output:S.output});return S}let H=()=>({"X-Csync-Session":y.id,"X-Csync-Token":y.token});async function V(){let a=await T("/api/browser/changes");if(!(!a.files.length&&!a.removed.length))try{A=!0,await Nt(g,v,a,async h=>{let E=await d("/api/browser/file?path="+encodeURIComponent(h),{headers:H(),credentials:"omit"});if(!E.ok)throw Error("\uACB0\uACFC \uD30C\uC77C\uC744 \uBC1B\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.");return E.arrayBuffer()}),await T("/api/browser/ack",{files:a.snapshot}),v=a.snapshot,b.clear(),await L(),A=!1,m.close()}catch(h){throw o("browser-apply-status").textContent=h.message,m.open||m.showModal(),h}}o("browser-apply-retry").onclick=async()=>{if(!x)try{for(let a of g)a.readonly||await W(a.handle);await F(V)}catch(a){o("browser-apply-status").textContent=a.message}},m.addEventListener("cancel",a=>a.preventDefault());async function $(a=!1){if(A)throw Error("\uBCF4\uB958 \uC911\uC778 \uB85C\uCEEC \uD30C\uC77C \uC801\uC6A9\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");await V();let h=await Rt(g,b,a),E=h.map(({path:S,size:P,hash:r})=>({path:S,size:P,hash:r}));if(JSON.stringify(E)===JSON.stringify(v))return;let f=await T("/api/browser/mirror",{files:E});for(let S of f.uploads){let P=h.find(z=>z.path===S.path),r=await d("/api/browser/file?path="+encodeURIComponent(S.path),{method:"PUT",headers:H(),credentials:"omit",body:P.file});if(!r.ok){let z=await r.json();throw Error(z.error||"\uD30C\uC77C \uC804\uC1A1\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.")}}await T("/api/browser/commit",{}),v=E,await L()}let j=()=>{o("workspace-interface").inert=!1,o("local-connection-status").textContent=g[0].handle.name+" \xB7 \uBE0C\uB77C\uC6B0\uC800 \uD3F4\uB354",u.close(),M()},oe=async()=>{await $(),j()},te=async()=>{x=(await T("/api/sync/job")).job?.state==="running",x?j():await oe()};async function Z(a){if(x||A)throw Error("\uC9C4\uD589 \uC911\uC778 \uC791\uC5C5\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");o("browser-folder-open").disabled=!0,s.textContent="\uC120\uD0DD\uD55C \uBB38\uC11C\xB7\uCCA8\uBD80\uB97C \uC784\uC2DC \uC791\uC5C5\uACF5\uAC04\uC5D0 \uC900\uBE44\uD558\uB294 \uC911\u2026";try{return y&&(await V(),await T("/api/browser/session",void 0,"DELETE"),await l(null,y.id)),y=await T("/api/browser/session",{name:a.name}),g=[{virtual:y.base,handle:a}],v=[],b.clear(),await L(),await oe(),{path:y.base}}finally{o("browser-folder-open").disabled=!1}}let de=async(a,h)=>{if(x||A)throw Error("\uC9C4\uD589 \uC911\uC778 \uC791\uC5C5\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");if(a==="out"&&await g[0].handle.isSameEntry(h))return{path:y.base};for(let f of g)if(!(a==="out"&&f.virtual===y.output)){if(a==="reference"&&f.readonly&&await f.handle.isSameEntry(h))return{path:f.virtual};if(await f.handle.isSameEntry(h)||await f.handle.resolve(h)!==null||await h.resolve(f.handle)!==null)throw Error("\uBB38\uC11C\xB7\uCD9C\uB825\xB7\uCC38\uC870 \uD3F4\uB354\uB294 \uC11C\uB85C \uACB9\uCE58\uC9C0 \uC54A\uB294 \uBCC4\uB3C4 \uD3F4\uB354\uB85C \uC120\uD0DD\uD558\uC138\uC694.")}let E=a==="out"?y.output:(await T("/api/browser/mount",{kind:"reference"})).path;return g=g.filter(f=>f.virtual!==E),g.push({virtual:E,handle:h,readonly:a==="reference"}),await L(),await $(),{path:E}},Q=async a=>{let h=await t({mode:a==="reference"?"read":"readwrite"});return await W(h,a==="reference"),F(()=>a==="base"?Z(h):de(a,h))};async function C(a,h){if(A)throw Error("\uBCF4\uB958 \uC911\uC778 \uB85C\uCEEC \uD30C\uC77C \uC801\uC6A9\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");let E=a.split("?")[0],f=h.body?JSON.parse(h.body):void 0;if(E==="/api/open")return{ok:!0,name:(f.path?.startsWith(y.base)?g[0]:g.find(P=>P.virtual===y.output))?.handle.name??"\uCD9C\uB825 \uD3F4\uB354"};if(E==="/api/convert"&&!f.preview&&f.out!==f.base&&!g.some(P=>P.virtual===y.output))throw Error("\uBCC0\uD658 \uACB0\uACFC\uB97C \uC800\uC7A5\uD560 \uCD9C\uB825 \uD3F4\uB354\uB97C \uBA3C\uC800 \uC120\uD0DD\uD558\uC138\uC694.");E!=="/api/sync/job"&&!x&&await $(E!=="/api/sync/staging");let S;try{S=await T(a,f,h.method??(f?"POST":"GET"))}catch(P){throw x||await V(),P}return S.job&&(x=S.job.state==="running"),x||await V(),S}let k=(a,h={})=>{if(a==="/api/pick-folder"){let{kind:f}=JSON.parse(h.body);return(async()=>{if(x||A)throw Error("\uC9C4\uD589 \uC911\uC778 \uC791\uC5C5\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");if(f==="base"){let S=await Q("base");return i.reload(),new Response(JSON.stringify(S))}return new Response(JSON.stringify(await Q(f)))})()}return F(()=>C(a,h)).then(f=>new Response(JSON.stringify(f))).catch(f=>new Response(JSON.stringify({error:f.message,code:f.code,conflicts:f.conflicts,inPlace:f.inPlace,output:f.output}),{status:f.status??400}))};o("local-disconnect").hidden=!1,o("local-disconnect").textContent="\uD3F4\uB354 \uC5F0\uACB0 \uD574\uC81C",o("local-disconnect").onclick=()=>F(async()=>{try{if(x||A)throw Error("\uC791\uC5C5\uACFC \uB85C\uCEEC \uD30C\uC77C \uC801\uC6A9\uC744 \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.");y&&(await T("/api/browser/session",void 0,"DELETE"),await l(null,y.id)),c.removeItem(O),i.reload()}catch(a){s.textContent=a.message,u.showModal()}});let R=o("out-mode-hint");return R&&(R.textContent="\uBCC4\uB3C4 \uD3F4\uB354 \uB610\uB294 \uC6D0\uBCF8 \uB36E\uC5B4\uC4F0\uAE30"),o("workspace-interface").inert=!0,u.addEventListener("cancel",a=>a.preventDefault()),o("root-path-editor").hidden=!0,o("out-input").readOnly=!0,o("out-input").placeholder="\uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uCD9C\uB825 \uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694",o("open").textContent="\uC800\uC7A5 \uC704\uCE58 \uD655\uC778",o("browser-folder-open").onclick=()=>Q("base").catch(a=>{a.name!=="AbortError"&&(s.textContent=a.message)}),o("browser-folder-resume").onclick=async()=>{try{for(let a of g)await W(a.handle,a.readonly);await F(te)}catch(a){s.textContent=a.message}},n.addEventListener("beforeunload",a=>{(x||A)&&(a.preventDefault(),a.returnValue="")}),!n.isSecureContext||!n.showDirectoryPicker?(s.textContent="\uD3F4\uB354 \uC77D\uAE30\xB7\uC4F0\uAE30\uB97C \uC9C0\uC6D0\uD558\uB294 \uB370\uC2A4\uD06C\uD1B1 Chrome \uB610\uB294 Edge\uC5D0\uC11C HTTPS \uC8FC\uC18C\uB85C \uC811\uC18D\uD558\uC138\uC694.",o("browser-folder-open").disabled=!0,u.showModal()):(o("local-connection-status").textContent="\uC800\uC7A5\uB41C \uD3F4\uB354 \uC5F0\uACB0\uC744 \uD655\uC778\uD558\uB294 \uC911\u2026",F(async()=>{let a;try{y=JSON.parse(c.getItem(O)),a=y?await l(void 0,y.id):void 0}catch{s.textContent="\uC800\uC7A5\uB41C \uD3F4\uB354 \uC5F0\uACB0 \uC815\uBCF4\uB97C \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD3F4\uB354\uB97C \uB2E4\uC2DC \uC120\uD0DD\uD558\uC138\uC694."}if(!y||!a?.mounts?.length){o("local-connection-status").textContent="\uBE0C\uB77C\uC6B0\uC800 \uD3F4\uB354 \uC120\uD0DD \uD544\uC694",u.showModal();return}g=a.mounts,v=a.baseline??[];let h=!0;for(let E of g)await E.handle.queryPermission({mode:E.readonly?"read":"readwrite"})!=="granted"&&(h=!1);if(!h){o("local-connection-status").textContent="\uD3F4\uB354 \uC811\uADFC \uAD8C\uD55C \uD655\uC778 \uD544\uC694",o("browser-folder-resume").hidden=!1,s.textContent="\uC774\uC804\uC5D0 \uC120\uD0DD\uD55C \uD3F4\uB354\uAC00 \uC800\uC7A5\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC120\uD0DD\uD560 \uD544\uC694 \uC5C6\uC774 \uC811\uADFC \uAD8C\uD55C\uC744 \uD5C8\uC6A9\uD558\uC138\uC694.",u.showModal();return}o("local-connection-status").textContent=g[0].handle.name+" \xB7 \uC5F0\uACB0\uC744 \uBCF5\uC6D0\uD558\uB294 \uC911\u2026";try{await te()}catch(E){[401,410].includes(E.status)?(await l(null,y.id),y=void 0,v=[],c.removeItem(O),s.textContent="\uC791\uC5C5\uACF5\uAC04\uC744 \uB2E4\uC2DC \uC5F0\uACB0\uD574\uC57C \uD569\uB2C8\uB2E4. \uD3F4\uB354\uB97C \uB2E4\uC2DC \uC120\uD0DD\uD558\uC138\uC694."):s.textContent="\uC774\uC804 \uD3F4\uB354 \uC5F0\uACB0\uC744 \uBCF5\uC6D0\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4: "+E.message,o("local-connection-status").textContent="\uD3F4\uB354 \uC5F0\uACB0 \uD655\uC778 \uD544\uC694",u.showModal()}}).catch(a=>{s.textContent=a.message,o("local-connection-status").textContent="\uD3F4\uB354 \uC5F0\uACB0 \uD655\uC778 \uD544\uC694",u.showModal()})),{ready:I,request:k,browser:!0,remote:!1}}async function nt({bytes:e,pages:n,dryRun:i}){let{getDocument:c,GlobalWorkerOptions:d,VerbosityLevel:l}=await import("./chunks/pdf-DDN7TXTP.js");d.workerSrc="/assets/pdf.worker.min.mjs";let t=c({data:e,cMapUrl:"/assets/pdf/cmaps/",cMapPacked:!0,standardFontDataUrl:"/assets/pdf/standard_fonts/",wasmUrl:"/assets/pdf/wasm/",useSystemFonts:!1,verbosity:l.ERRORS});try{let o=await t.promise;for(let s of n)if(!Number.isInteger(s)||s<1||s>o.numPages)throw Error(`PDF \uCABD \uBC94\uC704 \uCD08\uACFC: ${s} (\uCD1D ${o.numPages}\uCABD)`);if(i)return[];let u=[];for(let s of n){let m=await o.getPage(s),y=m.getViewport({scale:160/72}),g=document.createElement("canvas");g.width=Math.ceil(y.width),g.height=Math.ceil(y.height);try{await m.render({canvas:g,canvasContext:g.getContext("2d"),viewport:y}).promise;let v=await new Promise((x,w)=>g.toBlob(b=>b?x(b):w(Error("PDF \uC774\uBBF8\uC9C0\uB97C \uC800\uC7A5\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),"image/png"));u.push(await v.arrayBuffer())}finally{m.cleanup(),g.width=g.height=1}}return u}finally{await t.destroy()}}function ot({worker:e=new Worker("/assets/workspace.worker.js",{type:"module"}),timeoutMs:n=18e4}={}){let i=0,c=!1,d=new Map,l=t=>{c=!0;for(let o of d.values())clearTimeout(o.timer),o.reject(Error(t));d.clear()};return e.addEventListener("error",()=>l("\uBE0C\uB77C\uC6B0\uC800 \uC2E4\uD589\uAE30\uB97C \uC2DC\uC791\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD398\uC774\uC9C0\uB97C \uC0C8\uB85C\uACE0\uCE68\uD558\uC138\uC694.")),e.addEventListener("message",async({data:t})=>{if(t.kind==="pdf"){try{let u=await nt(t.request);e.postMessage({kind:"pdf-result",id:t.id,pages:u},u)}catch(u){e.postMessage({kind:"pdf-result",id:t.id,error:u.message})}return}let o=d.get(t.id);o&&(d.delete(t.id),clearTimeout(o.timer),t.error?o.reject(Error(t.error)):o.resolve(new Response(t.body,{status:t.status,headers:t.headers})))}),async(t,o={})=>{if(c)throw Error("\uBE0C\uB77C\uC6B0\uC800 \uC2E4\uD589\uAE30\uAC00 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uD398\uC774\uC9C0\uB97C \uC0C8\uB85C\uACE0\uCE68\uD558\uC138\uC694.");let u=new URL(t,"https://local.invalid");if(u.origin!=="https://local.invalid"||!u.pathname.startsWith("/api/"))throw Error("\uC798\uBABB\uB41C \uBE0C\uB77C\uC6B0\uC800 \uC694\uCCAD\uC785\uB2C8\uB2E4.");let s=o.body;s instanceof Blob&&(s=await s.arrayBuffer());let m=++i;return new Promise((y,g)=>{let v=setTimeout(()=>{d.delete(m),g(Error("\uBE0C\uB77C\uC6B0\uC800 \uC694\uCCAD\uC774 \uC9C0\uC5F0\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uC791\uC5C5 \uB0B4\uC5ED\uC744 \uD655\uC778\uD55C \uD6C4 \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694."))},n);d.set(m,{resolve:y,reject:g,timer:v}),e.postMessage({id:m,path:t,method:o.method??"GET",headers:Object.fromEntries(new Headers(o.headers)),body:s},s instanceof ArrayBuffer?[s]:[])})}}function Dt(e){let n=new URL(e);if(n.protocol!=="http:"||!["127.0.0.1","localhost","[::1]"].includes(n.hostname)||n.username||n.password||n.pathname!=="/"||n.search||n.hash)throw new Error("\uB85C\uCEEC \uC2E4\uD589\uAE30 \uC8FC\uC18C\uB294 http://127.0.0.1:\uD3EC\uD2B8 \uD615\uC2DD\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.");return n.origin}function at({document:e=globalThis.document,location:n=globalThis.location,history:i=globalThis.history,storage:c=globalThis.sessionStorage,fetch:d=globalThis.fetch}={}){let l=new URLSearchParams(n.hash?.slice(1)).has("csyncEndpoint")||c?.getItem("csync.connector.v1");if(e.querySelector('meta[name="csync-runtime"]')?.content==="standalone"&&!l)return{...Je({fetch:ot()}),standalone:!0};if(e.querySelector('meta[name="csync-runtime"]')?.content==="browser")return Je();let t=L=>e.getElementById(L),o=e.querySelector('meta[name="csync-token"]').content,u=o?{endpoint:"",token:o}:null,s,m=u?Promise.resolve():new Promise(L=>{s=L}),y="csync.connector.v1",g=(L,W={})=>{if(!u)throw new Error("\uBA3C\uC800 \uB85C\uCEEC \uC2E4\uD589\uAE30\uB97C \uC5F0\uACB0\uD558\uC138\uC694.");if(!L.startsWith("/api/")||L.startsWith("//"))throw new Error("\uB85C\uCEEC API \uACBD\uB85C\uB97C \uD655\uC778\uD558\uC138\uC694.");return d(u.endpoint+L,{...W,headers:{...W.headers,"X-Csync-Token":u.token},credentials:"omit",redirect:"error",...u.endpoint?{targetAddressSpace:"loopback"}:{}})},v=()=>{try{c.removeItem(y)}catch{}u=null,n.reload()};if(t("local-disconnect").onclick=v,u)return{ready:m,request:g,remote:!1};t("local-disconnect").hidden=!1;let x=t("local-connect-dialog"),w=t("local-connect-form"),b=t("local-connect-note");t("local-connect-command").textContent=`csync web --ui ${JSON.stringify(n.origin+n.pathname)} --base "/\uBB38\uC11C\uD3F4\uB354"`;let M=!1;async function A(L,W){if(!M){M=!0,t("local-connect-submit").disabled=!0,b.textContent="\uB85C\uCEEC \uC2E4\uD589\uAE30\uC5D0 \uC5F0\uACB0\uD558\uB294 \uC911\u2026";try{if(L=Dt(L),!/^[a-f0-9]{64}$/.test(W))throw new Error("csync\uAC00 \uCD9C\uB825\uD55C \uC5F0\uACB0 \uB9C1\uD06C\uB97C \uC0AC\uC6A9\uD558\uAC70\uB098 \uC5F0\uACB0 \uD0A4\uB97C \uC785\uB825\uD558\uC138\uC694.");let T=await d(L+"/api/connection",{headers:{"X-Csync-Token":W},credentials:"omit",redirect:"error",targetAddressSpace:"loopback",signal:AbortSignal.timeout(15e3)}),H=await T.json();if(!T.ok)throw new Error(H.error||"\uC5F0\uACB0 \uAD8C\uD55C\uC744 \uD655\uC778\uD558\uC138\uC694.");if(H.mode!=="connector")throw new Error("csync web --ui\uB85C \uC2E4\uD589\uD55C \uB85C\uCEEC \uC2E4\uD589\uAE30\uC5D0 \uC5F0\uACB0\uD558\uC138\uC694.");let V=e.querySelector('meta[name="csync-version"]').content;if(H.version!==V)throw new Error(`\uC6F9(v${V})\uACFC \uB85C\uCEEC \uC2E4\uD589\uAE30(v${H.version}) \uBC84\uC804\uC774 \uB2E4\uB985\uB2C8\uB2E4. \uAC19\uC740 \uBC84\uC804\uC73C\uB85C \uC2E4\uD589\uD558\uC138\uC694.`);u={endpoint:L,token:W};try{c.setItem(y,JSON.stringify(u))}catch{}t("local-connection-status").textContent="\uB0B4 \uCEF4\uD4E8\uD130\uC5D0 \uC5F0\uACB0\uB428",x.close(),t("workspace-interface").inert=!1,s()}catch(T){u=null;try{c.removeItem(y)}catch{}b.textContent=T.name==="TypeError"||T.name==="TimeoutError"?"\uC5F0\uACB0\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB85C\uCEEC csync \uC2E4\uD589 \uC5EC\uBD80\uC640 \uBE0C\uB77C\uC6B0\uC800\uC758 \uB85C\uCEEC \uB124\uD2B8\uC6CC\uD06C \uC811\uADFC \uAD8C\uD55C\uC744 \uD655\uC778\uD558\uC138\uC694.":T.message,x.showModal()}finally{M=!1,t("local-connect-submit").disabled=!1}}}x.addEventListener("cancel",L=>L.preventDefault()),w.onsubmit=L=>(L.preventDefault(),A(t("local-connect-endpoint").value.trim(),t("local-connect-token").value.trim())),t("workspace-interface").inert=!0;let I=new URLSearchParams(n.hash.slice(1)),O=I.get("csyncEndpoint"),F=I.get("csyncToken");if(O!==null||F!==null)i.replaceState(null,"",n.pathname+n.search),t("local-connect-endpoint").value=O??"",t("local-connect-token").value=F??"",x.showModal();else{let L;try{L=JSON.parse(c.getItem(y))}catch{}L?.endpoint&&L?.token?A(L.endpoint,L.token):x.showModal()}return{ready:m,request:g,remote:!0}}function rt(e=globalThis.document){let n=l=>e.getElementById(l),i=n("overwrite-dialog"),c,d=l=>{let t=c;c=void 0,i.close(),t?.(l)};return n("overwrite-cancel").onclick=()=>d(!1),n("overwrite-confirm").onclick=()=>d(!0),i.addEventListener("cancel",l=>{l.preventDefault(),d(!1)}),i.addEventListener("close",()=>{let l=c;c=void 0,l?.(!1)}),({conflicts:l,inPlace:t,output:o})=>{if(c)throw Error("\uB36E\uC5B4\uC4F0\uAE30 \uD655\uC778\uC774 \uC774\uBBF8 \uC9C4\uD589 \uC911\uC785\uB2C8\uB2E4.");return n("overwrite-title").textContent=`${t?"\uC6D0\uBCF8":"\uAE30\uC874"} \uD30C\uC77C ${l.length}\uAC1C \uB36E\uC5B4\uC4F0\uAE30`,n("overwrite-path").textContent=o,n("overwrite-warning").textContent=`${t?"\uC120\uD0DD\uD55C \uC6D0\uBCF8":"\uCD9C\uB825 \uD3F4\uB354\uC758 \uAE30\uC874"} \uB0B4\uC6A9\uC774 \uBCC0\uD658 \uACB0\uACFC\uB85C \uAD50\uCCB4\uB429\uB2C8\uB2E4.${t?" \uD655\uC778 \uC774\uD6C4 \uC6D0\uBCF8\uC774 \uBC14\uB00C\uBA74 \uC800\uC7A5\uC744 \uC911\uB2E8\uD569\uB2C8\uB2E4.":""} \uCDE8\uC18C\uD558\uBA74 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.`,n("overwrite-files").replaceChildren(...l.map(({path:u})=>{let s=e.createElement("li");return s.textContent=u,s})),new Promise(u=>{c=u,i.showModal(),n("overwrite-cancel").focus()})}}function it(){let e=document.getElementById("snackbars"),n=new Map;return function(c,d="info"){let l=d+":"+c;if(!c||n.has(l))return;let t={error:["\uC791\uC5C5\uC744 \uC644\uB8CC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4","!","\uC624\uB958"],success:["\uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4","\u2713","\uC131\uACF5"],warning:["\uD655\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4","!","\uC8FC\uC758"],info:["\uC548\uB0B4","i","\uC548\uB0B4"]}[d],o=document.createElement("div");o.className="snackbar snackbar-"+d,o.setAttribute("role",d==="error"||d==="warning"?"alert":"status");let u=document.createElement("span");u.className="snackbar-icon",u.textContent=t[1],u.setAttribute("aria-hidden","true");let s=document.createElement("div");s.className="snackbar-content";let m=document.createElement("strong");m.textContent=t[0];let y=document.createElement("p");y.textContent=c,s.append(m,y);let g=document.createElement("button");g.type="button",g.className="snackbar-close",g.textContent="\xD7",g.setAttribute("aria-label",t[2]+" \uC54C\uB9BC \uB2EB\uAE30"),g.onclick=()=>{o.remove(),n.delete(l)},o.append(u,s,g),n.set(l,o),e.append(o)}}function st(e){let n=document.getElementById("help-dialog");document.getElementById("open-help").addEventListener("click",()=>{n.showModal(),document.getElementById("help-"+e()).scrollIntoView({block:"start"})}),document.getElementById("open-token-guide").addEventListener("click",()=>{n.showModal(),document.getElementById("help-token").scrollIntoView({block:"start"})}),n.querySelectorAll(".help-nav a").forEach(i=>{i.addEventListener("click",c=>{c.preventDefault(),document.querySelector(i.getAttribute("href")).scrollIntoView({block:"start"})})})}var He;function Pe(){return He??=import("./chunks/monaco-36ZGUH4Y.js").catch(e=>{throw He=void 0,Error("\uBCF8\uBB38 \uBE44\uAD50 \uB3C4\uAD6C\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694. "+e.message)}),He}function lt(e,n){let i=URL.createObjectURL(new Blob([n],{type:"text/plain;charset=utf-8"})),c=document.createElement("a");try{c.href=i,c.download=e,document.body.append(c),c.click()}finally{c.remove(),setTimeout(()=>URL.revokeObjectURL(i),1e3)}}var dt={preview:"\uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30",fetch:"\uC6D0\uACA9 \uBCC0\uACBD \uD655\uC778",pull:"\uAC00\uC838\uC624\uAE30",push:"\uC5C5\uB85C\uB4DC",restore:"\uBCF5\uAD6C\xB7\uC6D0\uBCF5"},qt={running:"\uC9C4\uD589 \uC911",succeeded:"\uC644\uB8CC",failed:"\uC2E4\uD328"},ct=e=>e?new Date(e).toLocaleString("ko-KR",{timeZone:"Asia/Seoul"}):"-";function pt(e){return["confluence-sync \uC2E4\uD589 \uB85C\uADF8",`\uC791\uC5C5: ${dt[e.kind]??e.kind}`,`\uC0C1\uD0DC: ${qt[e.state]??e.state}`,`\uC791\uC5C5 ID: ${e.id}`,`\uC2DC\uC791 (Asia/Seoul): ${ct(e.startedAt)}`,`\uC885\uB8CC (Asia/Seoul): ${ct(e.finishedAt)}`,"",e.log??""].join(`
2
+ `)+`
3
+ `}function ft(e){let n=Object.hasOwn(dt,e.kind)?e.kind:"job",i=String(e.id??"").replace(/[^a-zA-Z0-9-]/g,"").slice(0,36)||"current";return`csync-${n}-${i}.log`}function ut({api:e,selection:n,setBusy:i,isBusy:c,status:d,start:l}){let t=g=>document.getElementById(g),o=t("sync-restore-dialog"),u,s=()=>JSON.stringify(n());function m(){u=void 0,o.close()}async function y(g,v){if(c())return;let x=s(),w=n();i(!0);try{let b=await e("/api/sync/restore",{...w,path:g,overwrite:v});if(x!==s())return;u={request:w,confirmationId:b.confirmationId,identity:x},t("sync-restore-title").textContent=v?"\uB85C\uCEEC \uC218\uC815\uC744 \uBC84\uB9AC\uACE0 \uC6D0\uACA9 \uCD5C\uC2E0\uC73C\uB85C \uB418\uB3CC\uB9B4\uAE4C\uC694?":"\uB204\uB77D\uB41C \uBB38\uC11C\uB97C \uC6D0\uACA9\uC5D0\uC11C \uB2E4\uC2DC \uBC1B\uC744\uAE4C\uC694?",t("sync-restore-path").textContent=b.path,t("sync-restore-warning").textContent=v?"\uC774 \uBB38\uC11C\uC640 \uC6D0\uACA9\uC5D0\uC11C \uCC38\uC870\uD558\uB294 \uCCA8\uBD80\uC758 \uB85C\uCEEC \uC218\uC815\uC774 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4. \uC6D0\uACA9 \uCD5C\uC2E0 \uB0B4\uC6A9\uC73C\uB85C \uAD50\uCCB4\uD558\uBA70 \uB2E4\uB978 \uBB38\uC11C\uB294 \uC720\uC9C0\uD569\uB2C8\uB2E4.":"\uC9C0\uC815\uD55C \uBB38\uC11C\uC640 \uCC38\uC870 \uCCA8\uBD80\uB9CC \uB2E4\uC2DC \uBC1B\uC2B5\uB2C8\uB2E4. \uAE30\uC874 \uD30C\uC77C\uACFC \uB0B4\uC6A9\uC774 \uB2E4\uB978 \uAE30\uC874 \uCCA8\uBD80\uB294 \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",t("sync-restore-warning").textContent+=` \uAC00\uC838\uC624\uAE30 \uD615\uC2DD: ${w.format==="obsidian"?"Obsidian":"Markdown"}.`,t("sync-restore-confirm").textContent=v?"\uB85C\uCEEC \uC218\uC815 \uBC84\uB9AC\uACE0 \uC6D0\uBCF5":"\uC6D0\uACA9\uC5D0\uC11C \uBCF5\uAD6C",o.showModal(),t("sync-restore-cancel").focus()}catch(b){d(b.message,!0)}finally{i(!1)}}return t("sync-restore-cancel").onclick=m,o.addEventListener("cancel",m),t("sync-restore-confirm").onclick=async()=>{if(!u||c())return;if(u.identity!==s()){m(),d("\uB300\uC0C1\uC774\uB098 \uC5F0\uACB0 \uC124\uC815\uC774 \uBC14\uB00C\uC5C8\uC2B5\uB2C8\uB2E4. \uBCF5\uAD6C \uB300\uC0C1\uC744 \uB2E4\uC2DC \uC120\uD0DD\uD558\uC138\uC694.",!0);return}let g=u;m(),await l("restore",{...g.request,confirmationId:g.confirmationId})},{open:y}}function gt({api:e,selection:n,monaco:i,loadMonaco:c=async()=>i,notify:d}){let l=v=>document.getElementById(v),t="",o=0,u,s,m;function y(){o++,l("sync-diff-dialog").close()}l("sync-diff-close").onclick=y,l("sync-diff-dialog").addEventListener("cancel",()=>{o++});async function g(v=!1){let x=++o,w={...n(),path:t,remote:v};l("sync-diff-note").textContent=v?"\uC120\uD0DD\uD55C \uD398\uC774\uC9C0 \uBCF8\uBB38\uB9CC \uC870\uD68C\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":"\uC800\uC7A5\uB41C \uB85C\uCEEC \uBE44\uAD50 \uAE30\uC900\uC744 \uD655\uC778\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026",v&&(l("sync-diff-remote").textContent="\uC6D0\uACA9 \uBE44\uAD50 \uB2E4\uC2DC \uC2DC\uB3C4"),l("sync-diff-remote").disabled=!0,l("sync-diff-editor").hidden=!0,l("sync-diff-labels").hidden=!0;try{let b=await e("/api/sync/diff",w);if(x!==o||!l("sync-diff-dialog").open||!v&&b.before===null&&b.canRemote&&(l("sync-diff-note").textContent="\uC800\uC7A5\uB41C \uAE30\uC900\uBCF8\uC774 \uC5C6\uC5B4 \uC120\uD0DD\uD55C \uC6D0\uACA9 \uD398\uC774\uC9C0 \uBCF8\uBB38\uC744 \uC870\uD68C\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026",l("sync-diff-remote").hidden=!1,l("sync-diff-remote").textContent="\uC6D0\uACA9 \uBE44\uAD50 \uB2E4\uC2DC \uC2DC\uB3C4",b=await e("/api/sync/diff",{...w,remote:!0}),x!==o||!l("sync-diff-dialog").open)||(l("sync-diff-note").textContent=b.note,l("sync-diff-before-label").textContent=b.source==="remote"?"\uD604\uC7AC \uC6D0\uACA9 \uBCF8\uBB38 (\uADFC\uC0AC \uBCC0\uD658)":b.source==="new"?"\uC0C8 \uBB38\uC11C (\uC6D0\uACA9 \uC5C6\uC74C)":"\uB9C8\uC9C0\uB9C9 \uB3D9\uAE30\uD654 \uAE30\uC900",l("sync-diff-remote").hidden=!b.canRemote,l("sync-diff-remote").textContent=b.source==="remote"?"\uC6D0\uACA9 \uC0C8\uB85C\uACE0\uCE68":"\uC6D0\uACA9\uACFC \uBE44\uAD50 \xB7 \uBCF8\uBB38 1\uD68C \uC870\uD68C",b.before===null))return;if(l("sync-diff-editor").hidden=!1,l("sync-diff-labels").hidden=!1,!u){let M=await c();if(x!==o||!l("sync-diff-dialog").open)return;s=M.editor.createModel("","markdown"),m=M.editor.createModel("","markdown"),u=M.editor.createDiffEditor(l("sync-diff-editor"),{automaticLayout:!0,readOnly:!0,originalEditable:!1,ignoreTrimWhitespace:!1,renderSideBySide:!0,useInlineViewWhenSpaceIsLimited:!0,renderSideBySideInlineBreakpoint:700,minimap:{enabled:!1},wordWrap:"on",scrollBeyondLastLine:!1,fontSize:12}),u.setModel({original:s,modified:m}),u.getOriginalEditor().updateOptions({ariaLabel:"\uAE30\uC900 Markdown"}),u.getModifiedEditor().updateOptions({ariaLabel:"\uD604\uC7AC \uB85C\uCEEC Markdown"})}s.setValue(b.before),m.setValue(b.after),u.layout()}catch(b){x===o&&(l("sync-diff-note").textContent=b.message,d(b.message,"error"))}finally{x===o&&(l("sync-diff-remote").disabled=!1)}}return l("sync-diff-remote").onclick=()=>g(!0),{open:async(v,x=!0)=>{t=v,l("sync-diff-path").textContent=t,l("sync-diff-remote").hidden=!x,l("sync-diff-dialog").showModal(),await g(x)}}}function mt({api:e,selection:n,changed:i,busy:c,status:d,update:l,compare:t,restore:o=()=>{},canRestore:u=()=>!1,scopeKey:s=()=>""}){let m=a=>document.getElementById(a),y="csync.staging.views.v1",g=new Set(["same","new","changed","moved","unavailable"]),v=[],x="",w="",b=null,M=!1,A="",I="",O,F=!0,L=null,W=()=>{let{verify:a,...h}=n();return JSON.stringify([h,s()])},T=()=>JSON.stringify([n().base,n().referenceRoots]),H=()=>v.filter(a=>!a.unmapped&&a.remoteState!=="new"&&a.status!=="unavailable"&&(a.staged?a.stale:a.status!=="same")).map(a=>a.path),V=()=>v.filter(a=>a.staged).map(a=>a.path),$=()=>!!x&&x===W();function j(){try{let a=JSON.parse(localStorage.getItem(y));return Array.isArray(a)?a:[]}catch{return[]}}function oe(){try{let a=j().filter(h=>h?.key!==w);a.push({key:w,scannedAt:b,localCheckFailed:!!I,rows:v.map(({path:h,status:E,staged:f,stale:S,pageId:P,renamed:r,unmapped:z,recoverable:X,localUnverified:K,remoteState:Y,remoteVersion:ne,baselineVersion:xe})=>({path:h,status:E,staged:f,stale:S,pageId:P,renamed:r,unmapped:z,recoverable:X,localUnverified:K,remoteState:Y,remoteVersion:ne,baselineVersion:xe}))}),localStorage.setItem(y,JSON.stringify(a.slice(-5)))}catch{}}function te(){let a=M&&!$();if(m("sync-stage-note").classList.toggle("stale",a||!!I),I){m("sync-stage-note").textContent=(a?"\uC774\uC804 \uC870\uD68C \uACB0\uACFC\uC785\uB2C8\uB2E4. ":"")+"\uB85C\uCEEC \uBCC0\uACBD \uD655\uC778 \uC2E4\uD328: "+I+" \uC6D0\uACA9 \uC870\uD68C \uACB0\uACFC\uB294 \uC544\uB798\uC5D0 \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uC5C5\uB85C\uB4DC\uD558\uB824\uBA74 \uB85C\uCEEC \uC624\uB958\uB97C \uD574\uACB0\uD55C \uB4A4 \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694.";return}if(a){let h=new Date(b).toLocaleString("ko-KR",{timeZone:"Asia/Seoul"});m("sync-stage-note").textContent=`\uC774\uC804 \uC870\uD68C \uACB0\uACFC\uC785\uB2C8\uB2E4 (${h}). \uD30C\uC77C\uC774\uB098 \uC5C5\uB85C\uB4DC \uC120\uD0DD\uC774 \uBC14\uB00C\uC5C8\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB85C\uCEEC \uBCC0\uACBD\uC744 \uC790\uB3D9\uC73C\uB85C \uB2E4\uC2DC \uD655\uC778\uD55C \uB4A4 \uC5C5\uB85C\uB4DC\uD560 \uBB38\uC11C\uB97C \uCCB4\uD06C\uD558\uACE0 \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC9C4\uD589\uD558\uC138\uC694.`}else m("sync-stage-note").textContent=M?v.some(h=>h.status!=="same"||h.staged||h.remoteState&&h.remoteState!=="unchanged")?v.some(h=>h.unmapped)?"\uBC1B\uAE30 \uBBF8\uC644\uB8CC \uBB38\uC11C\uAC00 \uC788\uC2B5\uB2C8\uB2E4. Fetch \uD6C4 \uB2E4\uC2DC \uAC00\uC838\uC624\uBA74 \uC6D0\uACA9\uACFC \uC77C\uCE58\uD558\uB294 \uBB38\uC11C\uB9CC \uC5F0\uACB0\uD558\uBA70 \uB85C\uCEEC \uC218\uC815\uC740 \uBCF4\uC874\uD569\uB2C8\uB2E4.":v.some(h=>h.staged&&h.stale)?"\uC218\uC815\uB418\uAC70\uB098 \uBC94\uC704\uB97C \uBC97\uC5B4\uB09C \uB300\uC0C1\uC774 \uC788\uC2B5\uB2C8\uB2E4. \uCD5C\uC2E0 \uB0B4\uC6A9 \uBC18\uC601\uC744 \uB204\uB974\uAC70\uB098 \uCCB4\uD06C\uB97C \uD574\uC81C\uD574 \uC5C5\uB85C\uB4DC\uC5D0\uC11C \uC81C\uC678\uD558\uC138\uC694.":v.some(h=>h.remoteState==="new"||h.status==="same"&&h.remoteState==="changed")?"\uC6D0\uACA9 \uC2E0\uADDC\xB7\uBCC0\uACBD \uBB38\uC11C\uB294 \uC704\uC758 \uAC00\uC838\uC624\uAE30\uB85C \uBC1B\uC73C\uC138\uC694. \uC5C5\uB85C\uB4DC \uCCB4\uD06C\uB294 \uB85C\uCEEC \uBB38\uC11C\uB97C \uBCF4\uB0BC \uB54C\uB9CC \uC0AC\uC6A9\uD569\uB2C8\uB2E4.":"\uCCB4\uD06C\uD558\uBA74 \uC5C5\uB85C\uB4DC\uC5D0 \uBC14\uB85C \uD3EC\uD568\uB429\uB2C8\uB2E4. \uCCB4\uD06C\uB97C \uD574\uC81C\uD558\uBA74 \uC81C\uC678\uB418\uBA70 \uC6D0\uBCF8 \uD30C\uC77C\uC740 \uC720\uC9C0\uB429\uB2C8\uB2E4. \uC120\uD0DD \uD6C4 \uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uC9C4\uD589\uD558\uC138\uC694.":"\uB85C\uCEEC\uC5D0 \uBCC0\uACBD\uB41C \uBB38\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC6D0\uACA9 \uC2E0\uADDC\xB7\uBCC0\uACBD\uC740 Fetch\uB85C \uD655\uC778\uD558\uC138\uC694.":"\uB85C\uCEEC \uBCC0\uACBD\uC744 \uC790\uB3D9\uC73C\uB85C \uD655\uC778\uD569\uB2C8\uB2E4. \uC6D0\uACA9 \uC0C1\uD0DC\uB294 Fetch\uB97C \uB20C\uB7EC \uD655\uC778\uD558\uC138\uC694."}function Z(){m("sync-stage-list").replaceChildren();let a=f=>f.localUnverified||f.unmapped&&f.remoteState!=="new"?"attention":f.remoteState==="new"?f.recoverable||f.status==="unavailable"?"receive":"conflict":f.status==="same"&&f.remoteState==="changed"?"receive":f.remoteState==="changed"&&["changed","moved","new"].includes(f.status)?"conflict":"send",h={receive:0,conflict:1,attention:2,send:3},E;for(let f of v.filter(S=>S.status!=="same"||S.staged||S.remoteState&&S.remoteState!=="unchanged").sort((S,P)=>h[a(S)]-h[a(P)])){let S=a(f);if(E!==S){let J=document.createElement("h3");J.className="stage-group-heading",J.textContent={receive:"\u2193 \uBC1B\uC744 \uBB38\uC11C \xB7 \uC6D0\uACA9 \uC2E0\uADDC\xB7\uBCC0\uACBD",conflict:"! \uC591\uCABD \uBCC0\uACBD \xB7 \uBE44\uAD50 \uD544\uC694",attention:"! \uC5F0\uACB0 \uD655\uC778 \uD544\uC694",send:"\u2191 \uBCF4\uB0BC \uBCC0\uACBD \xB7 \uB85C\uCEEC \uC791\uC5C5"}[S],m("sync-stage-list").append(J),E=S}let P=document.createElement("div"),r=document.createElement("label"),z=document.createElement("input"),X=document.createElement("span"),K=document.createElement("small");z.type="checkbox",z.value=f.path,z.checked=f.staged,z.setAttribute("aria-label",f.path+" \uC5C5\uB85C\uB4DC\uC5D0 \uD3EC\uD568"),X.textContent=f.path;let Y=f.renamed?"\uB85C\uCEEC \uACBD\uB85C \uBCC0\uACBD":{new:"\uB85C\uCEEC \uC2E0\uADDC",changed:"\uB85C\uCEEC \uC218\uC815",moved:"\uB85C\uCEEC \uC774\uB3D9",same:"\uBCC0\uACBD \uC5C6\uC74C",unavailable:"\uD30C\uC77C \uD655\uC778"}[f.status],ne=document.createElement("span"),xe=document.createElement("span"),Te=f.remoteState==="new"&&!f.unmapped&&f.status!=="unavailable"||f.remoteState==="changed"&&["changed","moved","new"].includes(f.status),Ke=f.localUnverified||f.unmapped||f.stale||Te||["unknown","unavailable"].includes(f.remoteState),Xe=f.remoteState==="new"&&!Te?"incoming":Ke?"attention":f.staged?"included":f.remoteState==="changed"?"moved":f.status,_e={incoming:'<path d="M12 3v12m-5-5 5 5 5-5M4 17v4h16v-4"/>',included:'<circle cx="12" cy="12" r="9"/><path d="m8 12 3 3 5-6"/>',new:'<path d="M12 5v14M5 12h14"/>',changed:'<circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/>',moved:'<path d="M4 8h15m-4-4 4 4-4 4M20 16H5m4-4-4 4 4 4"/>',same:'<path d="m5 12 4 4L19 6"/>',attention:'<path d="m12 3 10 18H2L12 3ZM12 9v5m0 3v.1"/>'};if(ne.className="stage-state-icon",ne.setAttribute("aria-hidden","true"),ne.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">'+(_e[Xe]||_e.attention)+"</svg>",xe.textContent=f.localUnverified?{changed:"\uC6D0\uACA9 \uBCC0\uACBD",new:"\uC6D0\uACA9 \uC2E0\uADDC",unknown:"\uC6D0\uACA9 \uD655\uC778 \uD544\uC694",unavailable:"\uC6D0\uACA9 \uC870\uD68C \uBD88\uAC00"}[f.remoteState]+" \xB7 \uB85C\uCEEC \uBBF8\uD655\uC778":f.unmapped?"\uBC1B\uAE30 \uBBF8\uC644\uB8CC \xB7 \uC6D0\uACA9 \uB300\uC870 \uD544\uC694":f.remoteState==="new"?Te?"\uC6D0\uACA9 \uC2E0\uADDC \xB7 \uB85C\uCEEC \uACBD\uB85C \uD655\uC778":"\uC6D0\uACA9 \uC2E0\uADDC":Te?f.stale?"\uC591\uCABD \uC218\uC815 \xB7 \uCD5C\uC2E0 \uB0B4\uC6A9 \uD655\uC778 \uD544\uC694":"\uC591\uCABD \uC218\uC815 \xB7 \uCDA9\uB3CC \uC8FC\uC758":f.stale?"\uCD5C\uC2E0 \uB0B4\uC6A9 \uD655\uC778 \uD544\uC694":f.remoteState==="changed"?f.remoteReasons?.some(J=>J.includes("\uBD80\uBAA8 \uC704\uCE58 \uBCC0\uACBD"))?"\uC6D0\uACA9 \uC704\uCE58 \uBCC0\uACBD":"\uC6D0\uACA9 \uC218\uC815":f.remoteState==="unavailable"?"\uC6D0\uACA9 \uC870\uD68C \uBD88\uAC00":f.remoteState==="unknown"?"\uC6D0\uACA9 \uD655\uC778 \uD544\uC694":Y+(f.staged?" \xB7 \uC5C5\uB85C\uB4DC \uD3EC\uD568":""),z.remoteOnly=f.unmapped&&!f.staged||f.remoteState==="new"&&!f.staged||f.status==="same"&&f.remoteState==="changed"&&!f.staged,z.localUnverified=!!f.localUnverified,z.remoteOnly&&(z.title=f.remoteState==="new"?"\uC544\uC9C1 \uBC1B\uC9C0 \uC54A\uC740 \uC6D0\uACA9 \uBB38\uC11C\uC785\uB2C8\uB2E4. Pull\uB85C \uAC00\uC838\uC624\uC138\uC694.":"\uC6D0\uACA9\uC5D0\uC11C\uB9CC \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4. diff\uB97C \uD655\uC778\uD558\uACE0 Pull\uB85C \uAC00\uC838\uC624\uC138\uC694."),K.append(ne,xe),P.className="sync-stage-row"+(Ke?" needs-attention":f.staged?" is-included":a(f)==="receive"?" is-incoming":""),r.className="sync-stage-choice",K.className="stage-status stage-status-"+Xe,z.onchange=()=>k(z.checked?"add":"remove",[f.path]),r.append(z,X),P.append(r,K),!f.unmapped&&f.staged&&f.stale&&f.status!=="unavailable"){let J=document.createElement("button");J.type="button",J.textContent="\u21BB \uCD5C\uC2E0 \uB0B4\uC6A9 \uBC18\uC601",J.setAttribute("aria-label",f.path+" \uCD5C\uC2E0 \uB0B4\uC6A9 \uBC18\uC601"),J.onclick=()=>k("add",[f.path]),P.append(J)}if(!f.unmapped&&f.status!=="unavailable"&&f.remoteState!=="new"){let J=document.createElement("button");J.type="button",J.textContent="\u2194 diff \uBCF4\uAE30",J.setAttribute("aria-label",f.path+" \uBCC0\uACBD \uBE44\uAD50"),J.onclick=()=>t(f.path),P.append(J)}if(!f.localUnverified&&f.remoteState!=="new"&&f.pageId&&f.status!=="new"&&f.status!=="moved"){let J=document.createElement("button");J.type="button",J.className="stage-restore",J.isRestore=!0;let Oe=document.createElement("span"),Ge=document.createElement("span");Oe.className="stage-action-icon",Oe.setAttribute("aria-hidden","true"),Oe.innerHTML='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="'+(f.status==="unavailable"?"M12 3v12m-5-5 5 5 5-5M4 17v4h16v-4":"M3 11a9 9 0 1 1 2.64 6.36M3 3v8h8")+'"/></svg>',Ge.textContent=f.status==="unavailable"?"\uC6D0\uACA9\uC5D0\uC11C \uBCF5\uAD6C":"\uC6D0\uACA9\uC73C\uB85C \uC6D0\uBCF5",J.append(Oe,Ge),J.setAttribute("aria-label",f.path+" \uC6D0\uACA9 \uCD5C\uC2E0\uC73C\uB85C \uBCF5\uAD6C"),J.onclick=()=>{$()&&u()&&o(f.path,f.status!=="unavailable")},P.append(J)}m("sync-stage-list").append(P)}te()}function de(){let a=T();if(w===a)return;w=a,x="",v=[],b=null,M=!1,A="",I="";let h=j().find(E=>E?.key===a);h&&Number.isFinite(Date.parse(h.scannedAt))&&Array.isArray(h.rows)&&h.rows.every(E=>E&&typeof E.path=="string"&&g.has(E.status)&&typeof E.staged=="boolean"&&typeof E.stale=="boolean")&&(I=h.localCheckFailed?"\uC774\uC804 \uB85C\uCEEC \uBCC0\uACBD \uD655\uC778\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694.":"",v=h.rows,b=h.scannedAt,M=!0),Z()}function Q(a){de(),x&&x!==W()&&(x="",te()),m("sync-stage-scan").disabled=a||!n().base,m("sync-stage-add").disabled=a||!$()||!H().length,m("sync-stage-remove").disabled=a||!$()||!V().length,m("sync-stage-count").textContent=`${M&&!$()?"\uC774\uC804 \uC870\uD68C \xB7 ":""}${v.filter(h=>h.staged).length}\uAC1C \uC5C5\uB85C\uB4DC \uC608\uC815`;for(let h of m("sync-stage-list").querySelectorAll("input"))h.disabled=a||!$()||h.remoteOnly||h.localUnverified;for(let h of m("sync-stage-list").querySelectorAll("button"))h.disabled=a||h.isRestore&&(!$()||!u())}async function C(a,h,E=!1){if(a&&(!$()||!h?.length))return;let f=W(),S=n(),P=!1;E||c(!0),E||(m("sync-stage-note").textContent=a==="remove"?"\uC5C5\uB85C\uB4DC \uB300\uC0C1\uC5D0\uC11C \uC81C\uC678\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":a==="add"?"\uC120\uD0DD\uD55C \uBB38\uC11C\uB97C \uD655\uC778\uD574 \uC5C5\uB85C\uB4DC\uC5D0 \uD3EC\uD568\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":"\uB85C\uCEEC \uBB38\uC11C\uC758 \uBCC0\uACBD\uC744 \uAC80\uC0AC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026");try{let r,z="";try{r=await e("/api/sync/staging",{...S,...a?{action:a,paths:h}:{}},void 0,{background:E})}catch(K){if(a||f!==W())throw K;z=K.message,r=await e("/api/sync/staging",{...S,remoteOnly:!0},void 0,{background:E})}if(f!==W())return;if(!Array.isArray(r.rows))throw new Error("\uBCC0\uACBD \uBAA9\uB85D \uC751\uB2F5\uC744 \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uBD88\uB7EC\uC624\uC138\uC694.");let X=m("sync-stage-remote-note");if(X&&(X.textContent=r.remoteCheckedAt?`\uC6D0\uACA9 \uD655\uC778: ${new Date(r.remoteCheckedAt).toLocaleString("ko-KR",{timeZone:"Asia/Seoul"})}${r.remoteExpired?" \xB7 \uC774\uC804 \uC870\uD68C \uACB0\uACFC\uC785\uB2C8\uB2E4. Fetch\uB85C \uAC31\uC2E0\uD558\uC138\uC694.":""}`:"\uC6D0\uACA9 \uC0C1\uD0DC \uBBF8\uD655\uC778 \xB7 Fetch\uB97C \uB204\uB974\uBA74 \uBC84\uC804\uACFC \uC704\uCE58\uB97C \uBB36\uC5B4\uC11C \uC870\uD68C\uD569\uB2C8\uB2E4."),E&&$()&&r.revision&&r.revision===A&&I===z)return;I=z,A=r.revision||"",P=!0,i(),v=r.rows,x=f,M=!0,(!a||!b)&&(b=new Date().toISOString()),oe(),Z(),m("sync-stage-scan").hidden=!0,a&&d(a==="add"?"\uC5C5\uB85C\uB4DC\uC5D0 \uD3EC\uD568\uD588\uC2B5\uB2C8\uB2E4. \uBBF8\uB9AC\uBCF4\uAE30 \uD6C4 \uC5C5\uB85C\uB4DC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.":"\uC5C5\uB85C\uB4DC\uC5D0\uC11C \uC81C\uC678\uD588\uC2B5\uB2C8\uB2E4. \uC6D0\uBCF8 \uD30C\uC77C\uC740 \uC720\uC9C0\uB429\uB2C8\uB2E4.",!1,"success")}catch(r){if(f!==W())return;P=!0,i(),x="",Z(),E?(m("sync-stage-note").textContent="\uB85C\uCEEC \uC790\uB3D9 \uD655\uC778 \uC2E4\uD328: "+r.message+" \uC774\uC804 \uBAA9\uB85D\uC740 \uC720\uC9C0\uB429\uB2C8\uB2E4.",m("sync-stage-scan").hidden=!1):d(r.message,!0)}finally{E?P&&l():(c(!1),l())}}async function k(a,h,E=!1){if(E&&L)return;let f=W(),S=(L??Promise.resolve()).catch(()=>{}).then(()=>f===W()?C(a,h,E):void 0);L=S;try{await S}finally{L===S&&(L=null)}}m("sync-stage-scan").onclick=()=>k(),m("sync-stage-add").onclick=()=>k("add",H()),m("sync-stage-remove").onclick=()=>k("remove",V());function R(a){F=!1;let h=async()=>{try{!F&&await a()&&await k(void 0,void 0,!0)}finally{F||(O=setTimeout(h,5e3))}};return clearTimeout(O),O=setTimeout(h,100),()=>{F=!0,clearTimeout(O)}}return{idle:()=>L??Promise.resolve(),remoteOnlyCount:()=>$()?v.filter(a=>a.status==="same"&&a.remoteState==="changed"||(a.recoverable||a.status==="unavailable")&&a.remoteState==="new").length:0,startWatching:R,update:Q,ready:()=>$()&&!I&&v.some(a=>a.staged)&&!v.some(a=>a.staged&&(a.stale||a.unmapped)),reload:(a=!1)=>k(void 0,void 0,a)}}function ht({api:e,context:n,setBusy:i,changed:c,renderConfig:d,status:l}){let t=A=>document.getElementById(A),o=n().base,u="",s="",m=!1,y=null;t("sync-env-toggle").onclick=()=>{let A=t("sync-env-toggle").getAttribute("aria-expanded")!=="true";t("sync-env-toggle").setAttribute("aria-expanded",String(A)),t("sync-env-body").hidden=!A,t("sync-env-chevron").textContent=A?"\u25BE":"\u25B8",t("sync-env-toggle-label").textContent=A?"\uC811\uAE30":"\uD3BC\uCE58\uAE30"};let g=()=>t("sync-env-import-mode").checked,v=()=>`${g()?"import":"base"}:${u}`,x=()=>({base:n().base,envId:g()?u||"not-imported":""});function w(){y=null,t("sync-env-confirm").open&&t("sync-env-confirm").close()}function b(A){m=A,o!==n().base&&(o=n().base,u="",s="",t("sync-env-file").value="",t("sync-env-base-mode").checked=!0,t("sync-env-import-mode").checked=!1,w());for(let I of["sync-env-base-mode","sync-env-import-mode"])t(I).disabled=m;t("sync-env-import-controls").hidden=!g(),t("sync-env-file-name").textContent=s||"\uC120\uD0DD\uD55C \uD30C\uC77C \uC5C6\uC74C",t("sync-env-choose").disabled=m||!o,t("sync-env-save").disabled=m||!u||!g(),t("sync-env-source-note").textContent=g()?"\uAC00\uC838\uC628 \uC124\uC815\uC740 \uD604\uC7AC \uC6F9 \uC791\uC5C5\uC5D0\uB9CC \uC801\uC6A9\uB429\uB2C8\uB2E4. \uC0C8\uB85C\uACE0\uCE68\uD558\uBA74 \uB2E4\uC2DC \uAC00\uC838\uC640\uC57C \uD569\uB2C8\uB2E4.":"\uB85C\uCEEC \uBB38\uC11C\uC5D0\uC11C \uC120\uD0DD\uD55C \uAE30\uC900 \uD3F4\uB354\uC758 .env\uB9CC \uC77D\uC2B5\uB2C8\uB2E4. \uD30C\uC77C\uC774 \uC5C6\uC73C\uBA74 .env\uB97C \uAC00\uC838\uC624\uC138\uC694."}for(let A of["sync-env-base-mode","sync-env-import-mode"])t(A).onchange=()=>{w(),c(),b(m)};t("sync-env-choose").onclick=()=>{m||t("sync-env-file").click()},t("sync-env-file").onchange=async()=>{let A=t("sync-env-file").files?.[0];if(!A||m)return;if(A.size>12e3){l(".env \uD30C\uC77C\uC740 12KB \uC774\uD558 \uD14D\uC2A4\uD2B8\uC5EC\uC57C \uD569\uB2C8\uB2E4.",!0),t("sync-env-file").value="";return}let I=n().base;i(!0),w();try{let O=await A.text(),F=await e("/api/sync/env/import",{base:I,text:O,name:A.name});if(I!==n().base)return;u=F.envId,s=A.name,c(),d(F.config),l(".env\uB97C \uAC00\uC838\uC654\uC2B5\uB2C8\uB2E4. \uAE30\uC900 \uD3F4\uB354\uC758 \uD30C\uC77C\uC740 \uBCC0\uACBD\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.",!1,"success")}catch(O){l(O.message,!0)}finally{t("sync-env-file").value="",i(!1)}};async function M(A){i(!0);try{let I=await e("/api/sync/env/save",A);t("sync-env-base-mode").checked=!0,t("sync-env-import-mode").checked=!1,c(),d(I.config),l("\uAE30\uC900 \uD3F4\uB354\uC5D0 .env\uB97C \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4. CLI\uC5D0\uC11C\uB3C4 \uAC19\uC740 \uC124\uC815\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",!1,"success")}catch(I){l(I.message,!0)}finally{w(),i(!1)}}return t("sync-env-save").onclick=async()=>{if(m||!u||!g())return;let A=x();i(!0);try{let I=await e("/api/sync/env/save",A),O={...A,expectedHash:I.expectedHash};I.needsConfirmation?(y=O,t("sync-env-confirm-path").textContent=I.path,t("sync-env-confirm").showModal()):await M(O)}catch(I){l(I.message,!0)}finally{i(!1)}},t("sync-env-confirm-save").onclick=()=>{if(y&&!m)return M(y)},t("sync-env-confirm-cancel").onclick=w,t("sync-env-confirm").addEventListener("cancel",w),{update:b,identity:v,request:x}}var Ut=[["error",/^(?:✗|(?:\w*Error|오류|실패)\s*[::]|일부 작업이 실패)/],["warning",/^(?:⚠|\[경고\])/],["success",/^(?:\[(?:신규|폴더\+)\]|+\s*생성|완료(?:\s|$))/],["change",/^(?:\[변경\]|↻\s*갱신)/],["reference",/^(?:참조 링크:|\[연결\]|🔗|♻)/],["muted",/^(?:\[(?:동일|상위|폴더)\]|=\s*변경없음|·\s*상위|--dry-run:)/],["info",/^(?:base:|대상:|📁)/]];function xt(e,n){if(e.textContent===n)return;let i=document.createDocumentFragment();for(let c of n.match(/[^\n]*\n|[^\n]+$/g)??[]){let d=document.createElement("span"),l=Ut.find(([,t])=>t.test(c.trimStart()))?.[0]??"default";d.className="sync-log-line sync-log-"+l,d.textContent=c,i.append(d)}e.replaceChildren(i)}function bt({api:e,monaco:n,loadMonaco:i,context:c,setBusy:d,showSync:l,refresh:t=async()=>{},notify:o=()=>{},activity:u}){let s=r=>document.getElementById(r),m=!1,y=null,g=null,v="",x="",w,b=!1,M=!1,A="",I="\uC2A4\uD398\uC774\uC2A4 \uC804\uCCB4",O,F,L={restore:"\uC120\uD0DD\uD55C \uBB38\uC11C\uB97C \uC6D0\uACA9 \uCD5C\uC2E0\uC73C\uB85C \uBCF5\uAD6C\uD558\uB294 \uC911",preview:"\uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uACC4\uC0B0\uD558\uB294 \uC911",fetch:"\uC6D0\uACA9 \uBCC0\uACBD\uC744 \uD655\uC778\uD558\uB294 \uC911",pull:"Confluence\uC5D0\uC11C \uAC00\uC838\uC624\uB294 \uC911",push:"Confluence\uC5D0 \uC5C5\uB85C\uB4DC\uD558\uB294 \uC911"},W={restore:"sync-restore-confirm",preview:"sync-preview",fetch:"sync-fetch",pull:"sync-pull-remote",push:"sync-push"};function T(r,z){O?.end(),O=u?.begin({label:L[r],detail:"\uC791\uC5C5\uC744 \uC900\uBE44\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.",button:z||W[r],region:"sync-results",link:"#sync-results"})}function H(){O?.end(),O=void 0}let V=new Set,$=(r,z=!1,X=z?"error":"info")=>{s("sync-status").textContent=r,s("sync-status").classList.toggle("error",z),X&&o(r,X)};function j(){return{base:c().base||"",target:"",envId:P.request().envId,verify:s("sync-verify").checked,referenceRoots:s("sync-references").value.split(/\r?\n/).map(z=>z.trim()).filter(Boolean)}}let oe=()=>s("sync-pull-format").value==="obsidian"?"obsidian":"markdown",te=()=>JSON.stringify(j()),Z=()=>JSON.stringify([c().base,P.identity()]),de=()=>!!c().base;function Q(){y=null,g=null,v=""}function C(r,z=!1){m=r,!z&&v&&v!==te()&&(Q(),$("\uB300\uC0C1\uC774\uB098 \uC635\uC158\uC774 \uBC14\uB00C\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uBBF8\uB9AC\uBCF4\uAE30\uD574 \uC8FC\uC138\uC694.")),!z&&x&&x!==Z()&&(x="",b=!1,M=!1,A="",s("sync-config").replaceChildren(),s("sync-config-status").textContent="\uC124\uC815 \uD655\uC778 \uB610\uB294 .env \uAC00\uC838\uC624\uAE30\uB85C \uC5F0\uACB0 \uC815\uBCF4\uB97C \uBD88\uB7EC\uC624\uC138\uC694."),s("sync-log-download").disabled=!F?.log?.trim(),s("sync-job-state").hidden=!F,P.update(m),s("sync-connect").disabled=m||!c().base||!M||b,s("sync-connect").textContent=b?"\uC2A4\uD398\uC774\uC2A4 \uC5F0\uACB0\uB428":"\uC2A4\uD398\uC774\uC2A4 \uC5F0\uACB0",S.update(m);for(let Y of["sync-pull-format","sync-load","sync-verify","sync-references","sync-add-reference"])s(Y).disabled=m;s("sync-pull-format-help").textContent=oe()==="obsidian"?"\uC704\uD0A4\uB9C1\uD06C([[\uBB38\uC11C|\uC774\uB984]])\xB7\uCF5C\uC544\uC6C3\xB7\uAC01\uC8FC \uBB38\uBC95\uC73C\uB85C \uBCF5\uC6D0\uD569\uB2C8\uB2E4. \uD30C\uC77C\uBA85\uC774 \uACB9\uCE58\uAC70\uB098 HTML \uD45C \uC548\uC758 \uB9C1\uD06C\uB294 \uD638\uD658\uB418\uB294 \uC0C1\uB300 \uACBD\uB85C \uB9C1\uD06C\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4. \uC0C8\uB85C \uBC1B\uB294 \uBB38\uC11C\uC640 \uBCF5\uAD6C\xB7\uC6D0\uBCF5\uC5D0 \uC801\uC6A9\uD569\uB2C8\uB2E4.":"Markdown \uB9C1\uD06C([\uC774\uB984](\uBB38\uC11C.md))\xB7\uC81C\uBAA9\uC774 \uC788\uB294 \uC778\uC6A9\uBB38\xB7\uC704\uCCA8\uC790 \uAC01\uC8FC \uBAA9\uB85D\uC73C\uB85C \uBC1B\uC2B5\uB2C8\uB2E4. \uC0C8\uB85C \uBC1B\uB294 \uBB38\uC11C\uC640 \uBCF5\uAD6C\xB7\uC6D0\uBCF5\uC5D0 \uC801\uC6A9\uD558\uBA70 \uAE30\uC874 \uD30C\uC77C\uC744 \uC77C\uAD04 \uBCC0\uD658\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.";let X=s("sync-pull-remote");if(X){let Y=S.remoteOnlyCount();X.disabled=m||!b||!M||!Y,X.textContent=`\u2193 \uC6D0\uACA9 \uBB38\uC11C ${Y}\uAC1C \uAC00\uC838\uC624\uAE30 (Pull)`}s("sync-fetch").disabled=m||!c().base||!b||!M,s("sync-log-empty").textContent="\uBBF8\uB9AC\uBCF4\uAE30 \uB610\uB294 Fetch\xB7Pull\xB7\uBCF5\uAD6C\uB97C \uC2E4\uD589\uD558\uBA74 \uBB38\uC11C\uBCC4 \uCC98\uB9AC \uB0B4\uC5ED\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",s("sync-load").disabled=m||!c().base,s("sync-preview").disabled=m||!de()||!b||!S.ready(),s("sync-push").disabled=m||!b||!M||!y||!g||v!==te(),s("sync-push").title=y?"\uBBF8\uB9AC\uBCF4\uAE30\uD55C \uBC94\uC704\uB97C \uC5C5\uB85C\uB4DC\uD569\uB2C8\uB2E4.":"\uD604\uC7AC \uC120\uD0DD\uACFC \uC124\uC815\uC73C\uB85C \uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30\uB97C \uBA3C\uC800 \uC644\uB8CC\uD558\uC138\uC694.";let K=j();s("sync-target").textContent=de()?`\uAE30\uC900 \uD3F4\uB354 ${K.base} \u2194 ${I} \xB7 Push\uB294 \uCCB4\uD06C\uD55C \uBB38\uC11C\uB9CC`:"\uB85C\uCEEC \uBB38\uC11C\uC5D0\uC11C \uAE30\uC900 \uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694."}function k(r){x=Z(),b=!!r.connected,M=!r.missing.length,I=r.rootPath&&r.rootPath!=="/"?`\uAE30\uC874 \uC6D0\uACA9 \uB8E8\uD2B8 ${r.rootPath}`:"\uC2A4\uD398\uC774\uC2A4 \uC804\uCCB4",A=b?`${r.baseUrl}/${r.spaceKey}/${r.rootPath||"/"}`:"",s("sync-config").replaceChildren();for(let[z,X]of[["\uC124\uC815 \uCD9C\uCC98",r.source],["\uC11C\uBC84",r.baseUrl||"\uBBF8\uC124\uC815"],["\uACC4\uC815",r.email||"\uBBF8\uC124\uC815"],["\uC2A4\uD398\uC774\uC2A4",r.spaceKey||"\uBBF8\uC124\uC815"],["\uC791\uC5C5\uACF5\uAC04",b?`\uAE30\uC900 \uD3F4\uB354 \u2194 ${I}`:"\uBBF8\uC5F0\uACB0"],["API \uD1A0\uD070",r.hasToken?"\uC124\uC815\uB428":"\uBBF8\uC124\uC815"]]){let K=document.createElement("dt"),Y=document.createElement("dd");K.textContent=z,Y.textContent=X,s("sync-config").append(K,Y)}s("sync-config-status").textContent=r.missing.length?`\uC124\uC815 \uD544\uC694: ${r.missing.join(", ")}. \uBBF8\uB9AC\uBCF4\uAE30\uB294 \uC778\uC99D \uC5C6\uC774 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`:b?"\uC811\uC18D \uC124\uC815\uACFC \uC2A4\uD398\uC774\uC2A4 \uC5F0\uACB0\uC744 \uBD88\uB7EC\uC654\uC2B5\uB2C8\uB2E4.":"\uC2A4\uD398\uC774\uC2A4 \uC5F0\uACB0\uC744 \uB20C\uB7EC \uAE30\uC900 \uD3F4\uB354\uC640 \uC5F0\uACB0\uD558\uC138\uC694."}function R(r){if(F=r,s("sync-log-download").disabled=!r.log?.trim(),r.state==="running"&&!O&&T(r.kind),O){let Y=(r.log||"").split(/\r?\n/).filter(ne=>ne.trim()&&!/^\s*(?:✓|완료|진행 ·)/.test(ne)).at(-1);O.update({label:r.state==="running"?r.phase==="fetch"?"\uC644\uB8CC \uD6C4 \uC6D0\uACA9 \uC0C1\uD0DC\uB97C \uB2E4\uC2DC \uD655\uC778\uD558\uB294 \uC911":L[r.kind]:"\uC2E4\uD589 \uACB0\uACFC\uB97C \uBC18\uC601\uD558\uB294 \uC911",detail:r.state==="running"?Y||"\uCC98\uB9AC \uC911\uC785\uB2C8\uB2E4. \uC2E4\uD589 \uB0B4\uC5ED\uC5D0\uC11C \uC138\uBD80 \uB0B4\uC6A9\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.":"\uBCC0\uACBD \uBAA9\uB85D\uACFC \uB85C\uCEEC \uD3F4\uB354\uB97C \uAC31\uC2E0\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.",startedAt:r.startedAt,uncertain:!1})}s("sync-job-summary").hidden=!1,s("sync-job-summary").textContent=`${r.kind==="restore"?"\uBB38\uC11C \uBCF5\uAD6C":r.kind==="preview"?"\uC5C5\uB85C\uB4DC \uBBF8\uB9AC\uBCF4\uAE30":r.kind==="fetch"?"\uC6D0\uACA9 \uBCC0\uACBD \uD655\uC778":r.kind==="pull"?"\uAC00\uC838\uC624\uAE30":"\uC5C5\uB85C\uB4DC"} \xB7 ${["pull","fetch","restore"].includes(r.kind)?`${r.config.spaceKey||"\uC2A4\uD398\uC774\uC2A4 \uBBF8\uC124\uC815"} \u2192 ${r.selection.base}`:`${r.selection.target||r.selection.base} \u2192 ${r.config.spaceKey||"\uC2A4\uD398\uC774\uC2A4 \uBBF8\uC124\uC815"}`} (${r.config.baseUrl||"\uC11C\uBC84 \uBBF8\uC124\uC815"})`,["pull","restore"].includes(r.kind)&&(s("sync-job-summary").textContent+=` \xB7 \uAC00\uC838\uC624\uAE30 \uD615\uC2DD: ${r.selection.format==="obsidian"?"Obsidian":"Markdown"}`),s("sync-log-empty").hidden=!0,s("sync-log").hidden=!1;let z=s("sync-log"),X=z.scrollHeight-z.scrollTop-z.clientHeight<40;xt(z,r.log||"\uC791\uC5C5\uC744 \uC900\uBE44\uD558\uB294 \uC911\uC785\uB2C8\uB2E4\u2026"),X&&(z.scrollTop=z.scrollHeight),s("sync-job-state").hidden=!1,s("sync-job-state").setAttribute("data-state",r.state==="succeeded"&&(r.warningCount||r.refreshFailed)?"warning":r.state),s("sync-job-state").textContent=r.state==="succeeded"&&(r.warningCount||r.refreshFailed)?"\uC644\uB8CC (\uACBD\uACE0)":{running:"\uC9C4\uD589 \uC911",succeeded:"\uC644\uB8CC",failed:"\uC2E4\uD328"}[r.state];let K=!V.has(r.id);r.state!=="running"&&V.add(r.id),r.state==="running"&&r.phase==="fetch"?$("Push\xB7Pull\uC744 \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4. \uCD5C\uC2E0 \uC6D0\uACA9 \uC0C1\uD0DC\uB97C \uB2E4\uC2DC \uD655\uC778\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026",!1,null):r.state==="running"?$(r.kind==="restore"?"\uC120\uD0DD\uD55C \uBB38\uC11C\uB97C \uC6D0\uACA9 \uCD5C\uC2E0\uC73C\uB85C \uBCF5\uAD6C\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":r.kind==="preview"?"\uB85C\uCEEC \uBB38\uC11C\uC640 \uB9E4\uD551\uC744 \uBE44\uAD50\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":r.kind==="fetch"?"\uC6D0\uACA9 \uD398\uC774\uC9C0 \uBA54\uD0C0\uB370\uC774\uD130\uB97C \uD655\uC778\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":r.kind==="pull"?"Confluence\uC5D0\uC11C \uBB38\uC11C\uB97C \uAC00\uC838\uC624\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":"Confluence\uC5D0 \uC5C5\uB85C\uB4DC\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4. \uC9C4\uD589 \uB0B4\uC5ED\uC744 \uD655\uC778\uD558\uC138\uC694.",!1,null):r.state==="failed"?$(r.kind==="restore"?"\uBB38\uC11C \uBCF5\uAD6C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC2E4\uD589 \uB0B4\uC5ED\uC744 \uD655\uC778\uD558\uC138\uC694.":r.kind==="fetch"?"\uC6D0\uACA9 \uBCC0\uACBD \uD655\uC778\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uC2E4\uD589 \uB0B4\uC5ED\uC744 \uD655\uC778\uD558\uC138\uC694. \uC774\uC804 \uCE90\uC2DC\uB294 \uC720\uC9C0\uB429\uB2C8\uB2E4.":r.kind==="pull"?"\uAC00\uC838\uC624\uAE30\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uB85C\uCEEC \uBCC0\uACBD\uC774\uB098 \uC624\uB958 \uB0B4\uC5ED\uC744 \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC138\uC694.":"\uC5C5\uB85C\uB4DC\uAC00 \uC2E4\uD328\uD588\uAC70\uB098 \uC77C\uBD80 \uBB38\uC11C\uAC00 \uCC98\uB9AC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB0B4\uC5ED\uC744 \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uBBF8\uB9AC\uBCF4\uAE30\uD574 \uC8FC\uC138\uC694.",!0,K?"error":null):r.kind==="preview"?(r.id===g&&v===te()&&!r.config.missing.length&&r.config.connected&&(y=r.planId),$(r.config.missing.length?"\uBBF8\uB9AC\uBCF4\uAE30 \uC644\uB8CC. \uC811\uC18D \uC124\uC815\uC744 \uCC44\uC6B4 \uB4A4 \uB2E4\uC2DC \uBBF8\uB9AC\uBCF4\uAE30\uD574 \uC8FC\uC138\uC694.":y?"\uBBF8\uB9AC\uBCF4\uAE30 \uC644\uB8CC. \uB300\uC0C1\uACFC \uC5C5\uB85C\uB4DC \uC704\uCE58\uB97C \uD655\uC778\uD558\uACE0 Confluence\uC5D0 \uC5C5\uB85C\uB4DC\uB97C \uB204\uB974\uC138\uC694.":"\uBBF8\uB9AC\uBCF4\uAE30 \uB0B4\uC5ED\uC744 \uBD88\uB7EC\uC654\uC2B5\uB2C8\uB2E4. \uD604\uC7AC \uC120\uD0DD\uC73C\uB85C \uB2E4\uC2DC \uBBF8\uB9AC\uBCF4\uAE30\uD574 \uC8FC\uC138\uC694.",!1,K?r.config.missing.length?"warning":"success":null)):r.kind==="fetch"?$("Fetch\uB97C \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4. \uBCC0\uACBD \uBB38\uC11C \uBAA9\uB85D\uC5D0 \uC6D0\uACA9 \uC0C1\uD0DC\uB97C \uBC18\uC601\uD569\uB2C8\uB2E4. \uC0C1\uC138 \uC870\uD68C \uB0B4\uC5ED\uC740 \uB300\uC0C1 \uBC0F \uC2E4\uD589 \uB0B4\uC5ED\uC5D0\uC11C \uD655\uC778\uD560 \uC218 \uC788\uC73C\uBA70 \uBB38\uC11C\uC640 \uB3D9\uAE30\uD654 \uAE30\uC900\uC740 \uC720\uC9C0\uB429\uB2C8\uB2E4.",!1,K?"success":null):r.refreshFailed?$(`${r.kind==="push"?"\uC5C5\uB85C\uB4DC":"\uAC00\uC838\uC624\uAE30"}\uB294 \uC644\uB8CC\uD588\uC9C0\uB9CC \uD6C4\uC18D Fetch\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. ${r.warningCount?`\uCCA8\uBD80 ${r.warningCount}\uAC1C\uB294 \uC6D0\uACA9 \uCC38\uC870\uB97C \uC720\uC9C0\uD588\uC2B5\uB2C8\uB2E4. `:""}\uBCC0\uACBD \uBAA9\uB85D\uC774 \uCD5C\uC2E0\uC774 \uC544\uB2D0 \uC218 \uC788\uC73C\uB2C8 Fetch\uB97C \uB2E4\uC2DC \uC2E4\uD589\uD558\uC138\uC694.`,!1,K?"warning":null):r.warningCount?$(`\uAC00\uC838\uC624\uAE30\uB97C \uC644\uB8CC\uD588\uC2B5\uB2C8\uB2E4. \uCCA8\uBD80 ${r.warningCount}\uAC1C\uB97C \uC800\uC7A5\uD558\uC9C0 \uBABB\uD574 \uC6D0\uACA9 \uCC38\uC870\uB97C \uC720\uC9C0\uD588\uC2B5\uB2C8\uB2E4. \uC2E4\uD589 \uB0B4\uC5ED\uC744 \uD655\uC778\uD558\uC138\uC694.`,!1,K?"warning":null):$(r.kind==="restore"?"\uC6D0\uACA9 \uCD5C\uC2E0\uC73C\uB85C \uBCF5\uAD6C\uD588\uC2B5\uB2C8\uB2E4. \uBCF5\uAD6C \uBB38\uC11C\uB294 \uC5C5\uB85C\uB4DC \uC120\uD0DD\uC5D0\uC11C \uC81C\uC678\uD588\uC2B5\uB2C8\uB2E4.":r.kind==="pull"?"\uAC00\uC838\uC624\uAE30\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uAE30\uC900 \uD3F4\uB354\uC5D0\uC11C \uBB38\uC11C\uB97C \uD655\uC778\uD558\uC138\uC694.":"\uC5C5\uB85C\uB4DC\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uB978 \uB300\uC0C1\uC744 \uC120\uD0DD\uD574 \uACC4\uC18D \uC791\uC5C5\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",!1,K?"success":null)}async function a(){clearTimeout(w);try{let{job:r}=await e("/api/sync/job");if(!r){H(),d(!1);return}R(r),s("sync-reconnect").hidden=!0,r.state==="running"?w=setTimeout(a,800):(["push","pull","fetch","restore"].includes(r.kind)&&r.state==="succeeded"&&await S.reload(!0),["pull","restore"].includes(r.kind)&&r.state==="succeeded"&&await t(),H(),d(!1))}catch(r){$(`\uC9C4\uD589 \uC0C1\uD0DC\uB97C \uD655\uC778\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uC791\uC5C5\uC740 \uC11C\uBC84\uC5D0\uC11C \uACC4\uC18D\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. ${r.message}`,!0),O?.update({label:"\uC9C4\uD589 \uC0C1\uD0DC \uD655\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4",detail:"\uC11C\uBC84 \uC791\uC5C5\uC774 \uACC4\uC18D\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC9C4\uD589 \uC0C1\uD0DC \uB2E4\uC2DC \uD655\uC778\uC73C\uB85C \uC5F0\uACB0\uD558\uC138\uC694.",uncertain:!0}),s("sync-reconnect").hidden=!1}}async function h(r,z){let X=r==="pull-remote";if(X&&(r="pull"),m||!b)return;let K=j(),Y=y;if(!(r==="push"&&(!Y||!g||v!==te()||!M))){Q(),r==="preview"&&(v=te()),T(r,X?"sync-pull-remote":void 0),d(!0),$(r==="restore"?"\uC120\uD0DD\uD55C \uBB38\uC11C\uB97C \uBCF5\uAD6C\uD569\uB2C8\uB2E4\u2026":r==="preview"?"\uB3D9\uAE30\uD654 \uB300\uC0C1\uC744 \uD655\uC778\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026":r==="fetch"?"\uC6D0\uACA9 \uBCC0\uACBD \uD655\uC778\uC744 \uC2DC\uC791\uD569\uB2C8\uB2E4\u2026":r==="pull"?"Confluence\uC5D0\uC11C \uAC00\uC838\uC624\uAE30\uB97C \uC2DC\uC791\uD569\uB2C8\uB2E4\u2026":"\uC5C5\uB85C\uB4DC\uB97C \uC2DC\uC791\uD569\uB2C8\uB2E4\u2026",!1,null);try{let{job:ne}=await e("/api/sync/"+r,r==="restore"?z:r==="preview"?K:r==="pull"?{...P.request(),remoteOnly:!0,format:oe()}:r==="fetch"?P.request():{planId:Y});r==="preview"&&(g=ne.id),k(ne.config),R(ne),r==="fetch"&&s("sync-stage-heading").scrollIntoView({block:"start"}),await a()}catch(ne){$(ne.message,!0);try{let{job:xe}=await e("/api/sync/job");if(xe?.state==="running"){await a();return}H(),d(!1)}catch{O?.update({label:"\uC9C4\uD589 \uC0C1\uD0DC \uD655\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4",detail:"\uC694\uCCAD \uACB0\uACFC\uB97C \uD655\uC778\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uC791\uC5C5\uC774 \uACC4\uC18D\uB420 \uC218 \uC788\uC73C\uB2C8 \uC9C4\uD589 \uC0C1\uD0DC\uB97C \uB2E4\uC2DC \uD655\uC778\uD558\uC138\uC694.",uncertain:!0}),s("sync-reconnect").hidden=!1}}}}s("sync-add-reference").onclick=async()=>{if(!m){d(!0);try{let r=await e("/api/pick-folder",{kind:"reference",start:c().base});if(r.path){let z=j().referenceRoots;s("sync-references").value=[...new Set([...z,r.path])].join(`
4
+ `),s("sync-references").dispatchEvent(new Event("input",{bubbles:!0}))}}catch(r){$(r.message,!0)}finally{d(!1)}}};let E=gt({api:e,selection:j,monaco:n,loadMonaco:i,notify:o}),f=ut({api:e,selection:()=>({...j(),format:oe()}),setBusy:d,isBusy:()=>m,status:$,start:h}),S=mt({restore:f.open,canRestore:()=>b&&M,scopeKey:()=>A,compare:E.open,api:e,selection:j,changed:Q,busy:d,status:$,update:()=>C(m)}),P=ht({api:e,context:c,setBusy:d,changed:()=>{Q(),C(m)},renderConfig:r=>{Q(),k(r)},status:$});s("sync-connect").onclick=async()=>{if(m||b||!M)return;let r=Z();Q(),d(!0);try{let z=await e("/api/sync/connect",P.request());if(r!==Z())return;k(z),$("\uAE30\uC900 \uD3F4\uB354\uB97C \uC2A4\uD398\uC774\uC2A4\uC5D0 \uC5F0\uACB0\uD588\uC2B5\uB2C8\uB2E4. Fetch\uB85C \uBC1B\uC744 \uBB38\uC11C\uB97C \uD655\uC778\uD55C \uB4A4 \uAC00\uC838\uC624\uC138\uC694.",!1,"success")}catch(z){$(z.message,!0)}finally{d(!1)}},s("sync-pull-format").onchange=()=>C(m),s("sync-fetch").onclick=()=>h("fetch"),s("sync-pull-remote")&&(s("sync-pull-remote").onclick=()=>h("pull-remote")),s("sync-preview").onclick=()=>h("preview"),s("sync-push").onclick=()=>h("push"),s("sync-reconnect").onclick=a,s("sync-log-download").onclick=()=>{if(F?.log?.trim())try{lt(ft(F),pt(F)),o("\uB85C\uADF8 \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC2DC\uC791\uD588\uC2B5\uB2C8\uB2E4.","success")}catch(r){$("\uB85C\uADF8 \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC2DC\uC791\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. "+r.message,!0)}},s("sync-load").onclick=async()=>{if(m)return;Q(),d(!0);let r=Z();try{let z=await e("/api/sync/config",P.request());r===Z()&&(k(z),$(s("sync-config-status").textContent,!1,z.missing.length||!z.connected?"warning":"success"))}catch(z){$(z.message,!0)}finally{d(!1)}};for(let r of["sync-verify","sync-references"])s(r).addEventListener("input",()=>C(m));return{waitForLocalCheck:()=>S.idle(),watch:()=>S.startWatching(async()=>{if(m||document.hidden||s("sync-view").hidden||!c().base)return!1;if(!b||x!==Z())try{let r=Z(),z=await e("/api/sync/config",P.request(),void 0,{quiet:!0});if(r!==Z()||m)return!1;k(z),C(m)}catch{return!1}return b}),update:C,resume:async()=>{try{let{job:r}=await e("/api/sync/job");if(!r)return;R(r),r.state==="running"&&(await l(),d(!0),await a())}catch(r){$("\uC791\uC5C5 \uC0C1\uD0DC\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. "+r.message,!0)}}}}function yt({api:e,selection:n,formatting:i,notify:c=()=>{}}){let d=document.getElementById("document-preview-frame"),l=document.getElementById("document-preview-status"),t=document.getElementById("document-preview-refresh"),o=document.getElementById("document-preview-toggle"),u,s,m=0,y=!1,g=!1;function v(){m++,s?.abort(),i?.clear(),d.hidden=!0,d.removeAttribute("srcdoc"),u=void 0,g=!1}async function x(w=!1){let{base:b,file:M,folder:A}=n(),I=b&&M&&!A?JSON.stringify([b,M]):"";if(!y){u!==void 0&&(I!==u||g)&&v(),t.disabled=!0;return}if(t.disabled=!I,!w&&I===u)return;v(),u=I;let O=m;if(t.disabled=!I,l.textContent=I?"\uBB38\uC11C\uB97C \uBD88\uB7EC\uC624\uB294 \uC911\u2026":"Markdown \uD30C\uC77C\uC744 \uC120\uD0DD\uD558\uBA74 \uBCF8\uBB38\uC774 \uD45C\uC2DC\uB429\uB2C8\uB2E4.",!!I){s=new AbortController,g=!0;try{let F=await e("/api/document-preview",{base:b,file:M},s.signal);if(O!==m)return;d.srcdoc=F.html,d.hidden=!1,i?.load(F,{base:b,file:M}),l.textContent=M.split(/[\\/]/).pop()+" \xB7 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD574 \uBCF5\uC0AC\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."}catch(F){if(O!==m||F.name==="AbortError")return;l.textContent="\uBB38\uC11C\uB97C \uD45C\uC2DC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4: "+F.message,c(l.textContent,"error")}finally{O===m&&(g=!1)}}}return o.onclick=()=>(y=!y,o.setAttribute("aria-expanded",String(y)),document.getElementById("document-preview-body").hidden=!y,document.getElementById("document-preview-actions").hidden=!y,document.getElementById("document-preview-chevron").textContent=y?"\u25BE":"\u25B8",document.getElementById("document-preview-toggle-label").textContent=y?"\uC811\uAE30":"\uD3BC\uCE58\uAE30",x()),t.onclick=()=>x(!0),{update:x}}function wt(e,n){let i=e-n.length*40,c=n.reduce((u,s)=>u+s,0),d=n.map(u=>u/c*i),l=d.map(u=>40+Math.floor(u)),t=d.map((u,s)=>({i:s,remainder:u-Math.floor(u)})).sort((u,s)=>s.remainder-u.remainder),o=e-l.reduce((u,s)=>u+s,0);for(let u=0;u<o;u++)l[t[u].i]++;return l}function vt({api:e,monaco:n,loadMonaco:i=async()=>n,refresh:c,setBusy:d,notify:l=()=>{}}){let t=C=>document.getElementById(C),o=t("document-preview-frame"),u=t("table-edit-toggle"),s=t("table-format-controls"),m=t("table-review-dialog"),y=t("table-format-status"),g,v,x=!1,w=-1,b=[],M=new Map,A,I,O,F,L=0,W=0,T=C=>o.contentWindow?.postMessage({...C,channel:g?.channel},"*"),H=C=>{y.textContent=C},V=()=>{W++,A=null,t("table-save").disabled=!0};function $(){o.onload=null,L++,g=null,v=null,x=!1,w=-1,b=[],M.clear(),V(),t("document-format-toggle").disabled=!0,t("document-format-controls").hidden=!0,t("document-format-toggle").setAttribute("aria-expanded","false"),t("document-format-tables").value="keep",u.disabled=!0,u.lastChild.textContent="\uD45C \uC9C1\uC811 \uD3B8\uC9D1",u.setAttribute("aria-pressed","false"),s.hidden=!0,m.open&&m.close(),j()}function j(){let C=w>=0;for(let k of["table-total-width","table-equal","table-revert"])t(k).disabled=!C;if(t("document-format-basic").disabled=!g,t("document-format-review").disabled=!g||!M.size,t("format-summary").textContent=M.size?`\uD45C ${M.size}\uAC1C \uC870\uC808\uB428 \xB7 \uBCC0\uACBD \uBE44\uAD50 \uD6C4 \uC800\uC7A5\uD569\uB2C8\uB2E4.`:"\uBCC0\uACBD \uBE44\uAD50 \uD6C4 \uC6D0\uBCF8 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4.",t("table-revert-all").disabled=!M.size,t("document-format-tables").disabled=!g?.tables.some(k=>k.editable),t("table-fit").disabled=!C||!g?.tables.find(k=>k.index===w)?.contentWeights,C){let k=b.reduce((R,a)=>R+a,0);t("table-total-width").min=String(Math.max(320,b.length*40)),t("table-total-width").max=String(Math.max(1200,k)),t("table-total-width").value=k,t("table-total-label").textContent=k+"px"}else t("table-total-label").textContent=""}function oe(C){b=C.slice(),M.set(w,b.slice()),V(),T({type:"csync-table-widths",index:w,widths:b}),j(),H("\uD45C "+(w+1)+" \xB7 \uC544\uC9C1 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.")}u.onclick=()=>{if(x=!x,s.hidden=!x,u.lastChild.textContent=x?"\uD45C \uC9C1\uC811 \uD3B8\uC9D1 \uC911":"\uD45C \uC9C1\uC811 \uD3B8\uC9D1",u.setAttribute("aria-pressed",String(x)),T({type:"csync-table-edit",enabled:x}),x){for(let[C,k]of M)T({type:"csync-table-widths",index:C,widths:k});w>=0&&T({type:"csync-table-widths",index:w,widths:b})}x&&w<0&&H("\uBBF8\uB9AC\uBCF4\uAE30\uC5D0\uC11C \uD3B8\uC9D1\uD560 \uD45C\uB97C \uD074\uB9AD\uD558\uC138\uC694.")},window.addEventListener("message",C=>{let k=C.data;if(!g||!x||C.source!==o.contentWindow||k?.channel!==g.channel)return;let R=g.tables.find(a=>a.index===k.index&&a.editable);R&&(k.type==="csync-table-select"&&(w=R.index,b=(M.get(w)??R.widths).slice(),V(),T({type:"csync-table-widths",index:w,widths:b}),j(),H("\uD45C "+(w+1)+" \uC120\uD0DD \xB7 \uB0B4\uC6A9\uC5D0 \uB9DE\uCDA4\uC73C\uB85C \uC790\uB3D9 \uBC30\uBD84\uD558\uAC70\uB098 \uC5F4 \uACBD\uACC4\uB97C \uB4DC\uB798\uADF8\uD558\uC138\uC694.")),k.type==="csync-table-change"&&k.index===w&&Array.isArray(k.widths)&&k.widths.length===R.widths.length&&k.widths.every(a=>Number.isInteger(a)&&a>=40)&&k.widths.reduce((a,h)=>a+h,0)<=3e3&&(b=k.widths.slice(),M.set(w,b.slice()),V(),j(),H("\uD45C "+(w+1)+" \xB7 \uC544\uC9C1 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.")))});let te=(C,k)=>Array.from({length:k},(R,a)=>Math.floor(C/k)+(a<C%k?1:0));t("table-equal").onclick=()=>oe(te(b.reduce((C,k)=>C+k,0),b.length)),t("table-fit").onclick=()=>{let C=g.tables.find(k=>k.index===w);oe(wt(b.reduce((k,R)=>k+R,0),C.contentWeights)),H("\uD45C "+(w+1)+" \xB7 \uAE00\uC790 \uAE38\uC774\uC5D0 \uB9DE\uCDB0 \uBC30\uBD84\uD588\uC2B5\uB2C8\uB2E4. \uC544\uC9C1 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.")};function Z(C){let k=g.tables.filter(R=>R.editable);if(k.length){T({type:"csync-table-edit",enabled:!0});for(let R of k){let a=M.get(R.index)??R.widths,h=a.reduce((f,S)=>f+S,0),E=C==="fit"?wt(h,R.contentWeights):te(h,a.length);M.set(R.index,E),T({type:"csync-table-widths",index:R.index,widths:E})}w<0&&(w=k[0].index),b=M.get(w).slice(),T({type:"csync-table-widths",index:w,widths:b}),V(),j(),T({type:"csync-table-edit",enabled:x}),H(`\uD45C ${k.length}\uAC1C\uC5D0 ${C==="fit"?"\uB0B4\uC6A9\uC5D0 \uB9DE\uCDA4":"\uADE0\uB4F1 \uBC30\uBD84"}\uC744 \uC801\uC6A9\uD588\uC2B5\uB2C8\uB2E4. \uBCC0\uACBD \uBE44\uAD50 \uD6C4 \uC800\uC7A5\uD558\uC138\uC694.`)}}t("document-format-tables").onchange=()=>{t("document-format-tables").value==="keep"?t("table-revert-all").onclick():Z(t("document-format-tables").value)},t("table-revert-all").onclick=()=>{T({type:"csync-table-edit",enabled:!0});for(let C of g.tables.filter(k=>k.editable))T({type:"csync-table-widths",index:C.index,widths:C.widths});M.clear(),t("document-format-tables").value="keep",w>=0&&(b=g.tables.find(C=>C.index===w).widths.slice(),T({type:"csync-table-widths",index:w,widths:b})),T({type:"csync-table-edit",enabled:x}),V(),j(),H("\uBAA8\uB4E0 \uD45C\uC758 \uB108\uBE44 \uBCC0\uACBD\uC744 \uCDE8\uC18C\uD588\uC2B5\uB2C8\uB2E4.")},t("document-format-toggle").onclick=()=>{let C=!t("document-format-controls").hidden;t("document-format-controls").hidden=C,t("document-format-toggle").setAttribute("aria-expanded",String(!C)),C&&x&&u.onclick()};function de(C,k,R){A=C.planId,t("table-save-status").textContent="",t("table-review-title").textContent="\uBB38\uC11C \uC11C\uC2DD \uBCC0\uACBD \uD655\uC778",t("format-review-note").textContent=k?"\uAE30\uBCF8 \uC11C\uC2DD \uC815\uB9AC\uC640 \uD45C \uC870\uC808 \uACB0\uACFC\uB97C \uD655\uC778\uD558\uC138\uC694. \uC800\uC7A5\uC744 \uB20C\uB7EC\uC57C \uD30C\uC77C\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.":"\uD45C \uC870\uC808 \uACB0\uACFC\uB97C \uD655\uC778\uD558\uC138\uC694. \uBCF8\uBB38 \uAE30\uBCF8 \uC11C\uC2DD\uC740 \uBCC0\uACBD\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uC800\uC7A5\uC744 \uB20C\uB7EC\uC57C \uD30C\uC77C\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.",m.open||m.showModal(),I||(O=R.editor.createModel("","markdown"),F=R.editor.createModel("","markdown"),I=R.editor.createDiffEditor(t("table-review-diff"),{automaticLayout:!0,readOnly:!0,originalEditable:!1,minimap:{enabled:!1},wordWrap:"on",scrollBeyondLastLine:!1}),I.setModel({original:O,modified:F})),O.setValue(C.before),F.setValue(C.after),I.layout(),t("table-save").disabled=C.before===C.after,C.before===C.after&&(t("table-save-status").textContent="\uC815\uB9AC\uD560 \uC11C\uC2DD \uBCC0\uACBD\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.")}async function Q(C){if(!g)return;let k=L,R=W;t("document-format-basic").disabled=t("document-format-review").disabled=!0;try{let a=await e("/api/document-format/preview",{...v,hash:g.hash,basic:C,tables:"keep",changes:Array.from(M,([E,f])=>({index:E,widths:f.slice()}))}),h=await i();if(k!==L||R!==W)return;de(a,C,h)}catch(a){l(a.message,"error")}finally{j()}}return t("document-format-basic").onclick=()=>Q(!0),t("document-format-review").onclick=()=>Q(!1),t("table-total-width").oninput=C=>{let k=Number(C.target.value),R=k-b.length*40,a=b.map(S=>S-40),h=a.reduce((S,P)=>S+P,0),E=h?a.map(S=>40+Math.floor(S/h*R)):te(k,b.length),f=k-E.reduce((S,P)=>S+P,0);for(let S=0;f>0;S++,f--)E[S%E.length]++;oe(E)},t("table-revert").onclick=()=>{M.delete(w),b=g.tables.find(C=>C.index===w).widths.slice(),T({type:"csync-table-widths",index:w,widths:b}),V(),j(),H("\uC120\uD0DD\uD55C \uD45C\uC758 \uBCC0\uACBD\uC744 \uCDE8\uC18C\uD588\uC2B5\uB2C8\uB2E4.")},t("table-save").onclick=async()=>{if(!A)return;let C=A;t("table-save").disabled=!0,t("table-review-close").disabled=!0,d(!0);try{await e("/api/table-format/save",{planId:C}),m.close(),l("\uBB38\uC11C \uC11C\uC2DD\uC744 \uC6D0\uBCF8 \uD30C\uC77C\uC5D0 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.","success"),await c()}catch(k){t("table-save-status").textContent=k.message,l(k.message,"error")}finally{t("table-review-close").disabled=!1,d(!1)}},t("table-review-close").onclick=()=>m.close(),{clear:$,load(C,k){$(),g=C,v=k,o.onload=()=>{g===C&&(t("document-format-toggle").disabled=!1,u.disabled=!C.tables?.some(R=>R.editable),j(),T({type:"csync-table-edit",enabled:x}))}}}}var p=e=>document.getElementById(e),Ie=it(),kt=Qe(),ge=at(),Wt=rt(),N,ye,Re=[],B=null,D=null,Se=null,q=!1,le=0,pe=null,ze=null,Ne=!1,be="",Ct,je,Ee=0,ae,Le,Me=[],ue="file",me=!1,se=new Set,we=new Map,Ae=new Set,U="convert",Jt=vt({api:re,loadMonaco:Pe,notify:Ie,refresh:()=>Et.update(!0),setBusy:e=>{q=e,ee(),G()}}),Et=yt({notify:Ie,api:re,formatting:Jt,selection:()=>({base:B||N,file:D,folder:U==="convert"?ue==="folder":me})});st(()=>U);var ve=!0,ke={convert:{},sync:{}},St=()=>({base:B,folder:N,file:D,selectedDirectory:me,baseInput:p("base-input").value,expanded:[...se]}),zt="csync.workspace.v1";function $e(){if(!ve){ke[U]=St();try{localStorage.setItem(zt,JSON.stringify({workspaces:ke,mode:U,referenceRoots:p("sync-references").value,out:p("out-input").value,convertScope:ue,direction:p("direction").value,fix:p("fix").checked,verify:p("sync-verify").checked,pullFormat:p("sync-pull-format").value,sideBySide:p("side-by-side").checked}))}catch{}}}function Ht(){try{let e=JSON.parse(localStorage.getItem(zt));return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return{}}}function Mt(e){U=e,p(e+"-view").prepend(p("document-preview-panel"));for(let n of["convert","sync"])p("tab-"+n).setAttribute("aria-selected",String(n===U)),p("tab-"+n).tabIndex=n===U?0:-1,p(n+"-view").hidden=n!==U;p("choose-base").lastChild.textContent="\uAE30\uC900 \uD3F4\uB354 \uBCC0\uACBD\u2026",p("base-input").setAttribute("aria-label",U==="sync"?"Confluence \uC791\uC5C5 \uAE30\uC900 \uD3F4\uB354 \uACBD\uB85C":"\uBCC0\uD658 \uAE30\uC900 \uD3F4\uB354 \uACBD\uB85C"),p("workspace-note").textContent=ge.standalone?"\uD30C\uC77C\uACFC \uBCC0\uD658\uC740 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uCC98\uB9AC\uD558\uBA70, Confluence \uC694\uCCAD\uB9CC \uC911\uACC4 API\uB85C \uC804\uB2EC\uD569\uB2C8\uB2E4.":ge.browser?"\uD30C\uC77C\uC740 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C \uC77D\uACE0 \uC800\uC7A5\uD558\uBA70, \uBCC0\uD658\xB7Confluence \uC791\uC5C5\uC740 \uC11C\uBC84\uC758 \uC784\uC2DC \uACF5\uAC04\uC5D0\uC11C \uCC98\uB9AC\uD569\uB2C8\uB2E4.":U==="sync"?"\uC6D0\uACA9 \uBCC0\uACBD\uC740 \uC704\uC5D0\uC11C \uAC00\uC838\uC624\uACE0, \uC5C5\uB85C\uB4DC\uD560 \uBB38\uC11C\uB294 \uCCB4\uD06C \uD6C4 \uBBF8\uB9AC\uBCF4\uAE30\uD558\uC138\uC694.":"\uBCC0\uD658\uC740 \uC774 \uCEF4\uD4E8\uD130\uC5D0\uC11C \uCC98\uB9AC\uB429\uB2C8\uB2E4.",U==="convert"&&ae?.layout()}async function Ve(e){if(e===U||q)return;$e(),ve=!0,q=!0,Mt(e);let n;try{n=await Tt(ke[e])}finally{ve=!1,q=!1,ee(),G()}n&&_(n,!0)}for(let e of["convert","sync"])p("tab-"+e).onclick=()=>Ve(e),p("tab-"+e).onkeydown=n=>{if(["ArrowLeft","ArrowRight","Home","End"].includes(n.key)){n.preventDefault();let i=n.key==="Home"?"convert":n.key==="End"||e==="convert"?"sync":"convert";p("tab-"+i).disabled||(Ve(i),p("tab-"+i).focus())}};var Fe,Be;async function jt(){if(!ae)try{let e=await Pe();Fe=e.editor.createModel("","markdown"),Be=e.editor.createModel("","markdown"),ae=e.editor.createDiffEditor(p("diff"),{automaticLayout:!0,readOnly:!0,originalEditable:!1,renderSideBySide:p("side-by-side").checked,useInlineViewWhenSpaceIsLimited:!0,renderSideBySideInlineBreakpoint:700,ignoreTrimWhitespace:!1,minimap:{enabled:!1},scrollBeyondLastLine:!1,wordWrap:"on",renderOverviewRuler:!0,accessibilityVerbose:!0,padding:{top:12,bottom:12},lineHeight:22,fontSize:12}),ae.setModel({original:Fe,modified:Be}),ae.getOriginalEditor().updateOptions({ariaLabel:"\uC6D0\uBCF8 Markdown"}),ae.getModifiedEditor().updateOptions({ariaLabel:"\uBCC0\uD658 \uACB0\uACFC Markdown"}),ae.onDidUpdateDiff(()=>{let i=!!ae.getLineChanges()?.length;p("previous-change").disabled=p("next-change").disabled=!i})}catch(e){throw p("editor-error").hidden=!1,p("editor-error").textContent="\uBCF8\uBB38 \uBE44\uAD50 \uD654\uBA74\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uC0C8\uB85C\uACE0\uCE68\uD574 \uC8FC\uC138\uC694. "+e.message,e}}p("previous-change").onclick=()=>ae?.goToDiff("previous");p("next-change").onclick=()=>ae?.goToDiff("next");p("side-by-side").onchange=()=>ae?.updateOptions({renderSideBySide:p("side-by-side").checked});async function re(e,n,i,c){let d=Ze(e,n,c),l=d&&kt.begin(d);try{e!=="/api/sync/staging"&&!(ge.browser&&e==="/api/pick-folder")&&await Le?.waitForLocalCheck();let t=await ge.request(e,{signal:i,method:n?"POST":"GET",headers:{...n?{"Content-Type":"application/json"}:{}},...n?{body:JSON.stringify(n)}:{}}),o=await t.json();if(!t.ok)throw Object.assign(new Error(o.error||"\uC694\uCCAD\uC744 \uCC98\uB9AC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."),{code:o.code,conflicts:o.conflicts,inPlace:o.inPlace,output:o.output});return o}finally{l?.end()}}function _(e,n=!1,i=n?"error":"info"){let c=p(U==="sync"?"sync-status":"status");c.textContent=e,c.classList.toggle("error",n),i&&Ie(e,i)}function ce(){if(U==="sync"){_("");return}Me=[],p("preview-documents").hidden=!0,Se=null,p("result").hidden=!0,p("details").hidden=!0,Fe?.setValue(""),Be?.setValue(""),p("comparison-empty").hidden=!1,p("previous-change").disabled=p("next-change").disabled=!0,p("preview-label").textContent="\uBBF8\uB9AC\uBCF4\uAE30 \uB300\uAE30",_("")}var fe=(e,n)=>n===e||n.startsWith(e.endsWith("/")?e:e+"/")||n.startsWith(e.endsWith("\\")?e:e+"\\");function ee(){p("local-disconnect").disabled=q,Et.update();for(let l of["preview","save","next-document"])p(l).disabled=q||!D;for(let l of["preview-document","tab-convert","tab-sync","choose-base","apply-base","base-input","base-home","up","choose-out","out-input","direction","fix","search"])p(l).disabled=q;q||(p("up").disabled=N===ye||B&&!fe(B,ye));let e=B||N,n=!!e&&p("out-input").value===e;p("convert-save-mode").textContent=n?"\uC6D0\uBCF8 \uB36E\uC5B4\uC4F0\uAE30":"\uBCC4\uB3C4 \uD3F4\uB354 \uC800\uC7A5",p("out-mode-hint").textContent=n?"\uC6D0\uBCF8 \uB36E\uC5B4\uC4F0\uAE30 \xB7 \uD655\uC778 \uD6C4 \uC800\uC7A5":ge.browser?"\uBCC4\uB3C4 \uD3F4\uB354 \uB610\uB294 \uC6D0\uBCF8 \uB36E\uC5B4\uC4F0\uAE30":"\uC120\uD0DD \uC0AC\uD56D",p("root-name").textContent=e?e.split(/[\\/]/).filter(Boolean).pop()||e:"\uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694",p("root-path").textContent=e||"\uC544\uC9C1 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.",p("root-purpose").textContent=U==="sync"?"Push \xB7 Pull \uAE30\uC900":"\uBCC0\uD658 \uAE30\uC900",p("root-hint").textContent=U==="sync"?"\uC2A4\uD398\uC774\uC2A4 \uBB38\uC11C\uB97C \uBCF4\uAD00\uD558\uB294 \uC791\uC5C5\uACF5\uAC04\uC785\uB2C8\uB2E4. \uC5C5\uB85C\uB4DC \uB300\uC0C1\uC740 \uC624\uB978\uCABD \uBCC0\uACBD\uC0AC\uD56D\uC5D0\uC11C \uCCB4\uD06C\uD558\uC138\uC694.":"\uBB38\uC11C\uC640 \uCC38\uC870 \uB9C1\uD06C\uB97C \uCC3E\uB294 \uAE30\uC900\uC785\uB2C8\uB2E4. \uC544\uB798\uC5D0\uC11C \uBCC0\uD658\uD560 \uD30C\uC77C\xB7\uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694.",p("base-home").disabled=q||!e||e===N;let i=e&&N&&fe(e,N)?N.slice(e.length).replace(/\\/g,"/"):N||"";p("path").textContent=N?N===e?"\uAE30\uC900 \uD3F4\uB354 /":`\uAE30\uC900 \uD3F4\uB354 ${i}`:"\uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694",p("path").title=N||"",p("explorer-note").textContent=U==="sync"?"\uD30C\uC77C\uC744 \uC120\uD0DD\uD574 \uB0B4\uC6A9\uC744 \uBBF8\uB9AC\uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4":"\uD30C\uC77C\xB7\uD3F4\uB354\uB97C \uC120\uD0DD\uD574 \uBCC0\uD658\uD558\uC138\uC694",p("fix").disabled=q||p("direction").value==="repair",p("selected").textContent=D?D.split(/[\\/]/).pop():"\uBCC0\uD658\uD560 \uBB38\uC11C\uB97C \uC120\uD0DD\uD558\uC138\uC694";let c=ue==="folder",d=c&&!!B&&D===B;p("convert-select-all").disabled=q||!B||d,p("convert-select-all").textContent=d?"\uAE30\uC900 \uD3F4\uB354 \uC804\uCCB4 \uC120\uD0DD\uB428":"\uAE30\uC900 \uD3F4\uB354 \uC804\uCCB4 \uC120\uD0DD",p("convert-target-note").textContent=d?"\uAE30\uC900 \uD3F4\uB354\uC640 \uBAA8\uB4E0 \uD558\uC704 \uD3F4\uB354\uC758 Markdown \uBB38\uC11C\uB97C \uBCC0\uD658\uD569\uB2C8\uB2E4.":"\uD30C\uC77C\xB7\uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uAC70\uB098 \uAE30\uC900 \uD3F4\uB354 \uC804\uCCB4\uB97C \uC120\uD0DD\uD558\uC138\uC694.",p("selected").textContent=D?(c&&U==="convert"?d?"\uC804\uCCB4 \xB7 ":"\uD3F4\uB354 \xB7 ":"")+D.split(/[\\/]/).pop():c?"\uBCC0\uD658\uD560 \uD3F4\uB354\uB97C \uC120\uD0DD\uD558\uC138\uC694":"\uBCC0\uD658\uD560 \uBB38\uC11C\uB97C \uC120\uD0DD\uD558\uC138\uC694",p("base").textContent=D||"\uC67C\uCABD\uC5D0\uC11C \uB300\uC0C1\uC744 \uC120\uD0DD\uD558\uC138\uC694.",p("convert-output-hint").textContent=n?"\uC120\uD0DD\uD55C \uBB38\uC11C\xB7\uCCA8\uBD80\uB9CC \uC6D0\uB798 \uC704\uCE58\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4. \uBCC0\uACBD \uD30C\uC77C \uD655\uC778 \uD6C4 \uB36E\uC5B4\uC501\uB2C8\uB2E4.":c?"\uC120\uD0DD \uD3F4\uB354 \uC548\uC758 \uBAA8\uB4E0 Markdown\uC744 \uBCC0\uD658\uD569\uB2C8\uB2E4. \uCD9C\uB825 \uD3F4\uB354 \uC544\uB798\uC5D0 \uC120\uD0DD \uD3F4\uB354 \uB0B4\uBD80 \uAD6C\uC870\uB9CC \uC720\uC9C0\uD569\uB2C8\uB2E4.":"\uC120\uD0DD\uD55C Markdown\uC744 \uCD9C\uB825 \uD3F4\uB354 \uBC14\uB85C \uC544\uB798\uC5D0 \uC800\uC7A5\uD569\uB2C8\uB2E4. \uB9C1\uD06C\uB294 \uD574\uB2F9 \uD30C\uC77C\uC774 \uC788\uB294 \uD3F4\uB354\uB97C \uAE30\uC900\uC73C\uB85C \uD574\uC11D\uD569\uB2C8\uB2E4.",p("base").title=B||"",p("selected").title=D||"",Le?.update(q,ve),$e()}function G(){let e=p("files").scrollTop;p("files").replaceChildren();let n=pe??Re;if(p("count").textContent=Ne?"\uAC80\uC0C9 \uC911\u2026":n.length+(pe?"\uAC1C \uACB0\uACFC":"\uAC1C \uD56D\uBAA9"),be||pe&&!n.length){let c=document.createElement("div");c.className="empty",c.textContent=be||(pe?"\uC77C\uCE58\uD558\uB294 .md \uBB38\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.":"\uD45C\uC2DC\uD560 \uD3F4\uB354\uB098 .md \uBB38\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."),p("files").append(c)}let i=(c,d=0)=>{let l=document.createElement("div");l.className="tree-row",l.style.paddingLeft=d*16+"px";let t=document.createElement(c.directory?"button":"span");t.className="tree-toggle",c.directory&&(t.textContent=se.has(c.path)?"\u25BE":"\u25B8",t.disabled=q,t.dataset.path=c.path,t.setAttribute("aria-expanded",String(se.has(c.path))),t.setAttribute("aria-label",c.name+(se.has(c.path)?" \uC811\uAE30":" \uD3BC\uCE58\uAE30")),t.onclick=()=>Vt(c.path)),l.append(t);let o=document.createElement("button");o.className="file"+(c.path===D?" selected":""),o.disabled=q;let u=document.createElement("span");u.className=c.directory?"icon folder-icon":"icon",c.directory?u.innerHTML='<svg viewBox="0 0 24 24" fill="none"><path d="M3 6a2 2 0 0 1 2-2h5l2 3h7a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z" fill="#f7d783" stroke="#bf9132" stroke-width="1.5"/><path d="M3 9h18" stroke="#bf9132" stroke-width="1.5"/></svg>':u.textContent="MD",u.setAttribute("aria-hidden","true");let s=document.createElement("span");s.textContent=c.name;let m=document.createElement("span");if(m.className="file-label",m.append(s),c.relativePath){let y=document.createElement("small");y.className="file-location",y.textContent=c.relativePath,m.append(y),o.title=c.path}if(o.append(u,m),o.title=c.path,o.setAttribute("aria-pressed",String(c.path===D)),o.onclick=()=>{me=c.directory,U==="convert"&&(ue=c.directory?"folder":"file"),D=c.path,(!B||!fe(B,D))&&(B=ze||N),ce(),ee(),G()},l.append(o),p("files").append(l),c.directory&&se.has(c.path)){let y=we.get(c.path);if(y?.length)y.forEach(g=>i(g,d+1));else{let g=document.createElement("div");g.className="tree-note",g.style.paddingLeft=(d+1)*16+24+"px",g.textContent=Ae.has(c.path)?"\uBD88\uB7EC\uC624\uB294 \uC911\u2026":y?"\uD45C\uC2DC\uD560 \uBB38\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.":"\uD3BC\uCE58\uAE30\uB97C \uB2E4\uC2DC \uB20C\uB7EC \uC8FC\uC138\uC694.",p("files").append(g)}}};pe?n.forEach(c=>i(c)):N&&i({name:N.split(/[\\/]/).pop()||N,path:N,directory:!0}),p("files").scrollTop=e}async function Vt(e){if(q)return;let n=le;if(se.has(e))se.delete(e);else if(se.add(e),!we.has(e)&&!Ae.has(e)){Ae.add(e),G();try{let i=await re("/api/browse?path="+encodeURIComponent(e));if(n!==le)return;we.set(e,i.entries)}catch(i){n===le&&(se.delete(e),_("\uD3F4\uB354\uB97C \uD3BC\uCE60 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: "+i.message,!0))}finally{n===le&&Ae.delete(e)}}n===le&&(G(),$e(),[...p("files").querySelectorAll(".tree-toggle")].find(i=>i.dataset.path===e)?.focus())}async function ie(e,n=!1){De(),p("search").value="";let i=++le;try{let c=await re("/api/browse"+(e?"?path="+encodeURIComponent(e):""));return i!==le?void 0:(N=c.path,ye=c.parent,Re=c.entries,we=new Map([[N,Re]]),se=new Set([N]),Ae=new Set,(n||!B)&&(B=N,D=null,me=!1,ve||ce()),n&&(p("root-path-editor").open=!1),p("base-input").value=B||N,p("path").textContent=N,p("path").title=N,p("base-input").title=B||N,p("search").value="",G(),ee(),!0)}catch(c){i===le&&_("\uD3F4\uB354\uB97C \uC5F4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4: "+c.message,!0)}}async function At(e){q=!0,ee(),G(),_("\uC2DC\uC2A4\uD15C \uD3F4\uB354 \uB2E4\uC774\uC5BC\uB85C\uADF8\uC5D0\uC11C \uD3F4\uB354\uB97C \uC120\uD0DD\uD574 \uC8FC\uC138\uC694.",!1,null);try{let n=await re("/api/pick-folder",{kind:e,start:e==="base"?B||N:p("out-input").value||ye});n.path?e==="base"?await ie(n.path,!0):(p("out-input").value=n.path,ce()):_("\uD3F4\uB354 \uC120\uD0DD\uC744 \uCDE8\uC18C\uD588\uC2B5\uB2C8\uB2E4.")}catch(n){_(n.message,!0)}finally{q=!1,ee(),G()}}p("choose-base").onclick=()=>At("base");p("choose-out").onclick=()=>At("out");p("apply-base").onclick=()=>ie(p("base-input").value,!0);p("base-input").onkeydown=e=>{e.key==="Enter"&&ie(p("base-input").value,!0)};p("up").onclick=()=>ie(ye);p("base-home").onclick=()=>{!q&&B&&ie(B)};p("convert-select-all").onclick=()=>{q||!B||U!=="convert"||(ue="folder",me=!0,D=B,ce(),ee(),G())};function De(){clearTimeout(Ct),je?.abort(),Ee++,pe=null,ze=null,Ne=!1,be=""}p("search").oninput=()=>{De();let e=p("search").value.trim();if(!e||!N){G();return}let n=Ee;ze=B||N,pe=[],Ne=!0,be="\uAE30\uC900 \uD3F4\uB354\uC758 \uBAA8\uB4E0 \uD558\uC704 \uD3F4\uB354\uB97C \uAC80\uC0C9\uD569\uB2C8\uB2E4\u2026",G(),Ct=setTimeout(async()=>{je=new AbortController;try{let i=await re("/api/search?"+new URLSearchParams({path:ze,q:e}),void 0,je.signal);if(n!==Ee)return;ze=i.root,pe=i.entries,be=i.skipped?"\uC77D\uC744 \uC218 \uC5C6\uB294 \uD558\uC704 \uD3F4\uB354 "+i.skipped+"\uAC1C\uB97C \uAC74\uB108\uB6F0\uC5C8\uC2B5\uB2C8\uB2E4.":""}catch(i){if(n!==Ee)return;be="\uAC80\uC0C9\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4: "+i.message}finally{n===Ee&&(Ne=!1,G())}},250)};p("direction").onchange=()=>{ce(),ee(),p("direction-hint").textContent={markdown:"\uC704\uD0A4\uB9C1\uD06C\uB97C \uC0C1\uB300 \uB9C1\uD06C\uB85C, PDF \uD398\uC774\uC9C0 \uCC38\uC870\uB97C \uC774\uBBF8\uC9C0\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4.",obsidian:"\uC0C1\uB300 \uBB38\uC11C \uB9C1\uD06C\uB97C \uC704\uD0A4\uB9C1\uD06C\uB85C \uBC14\uAFB8\uACE0 \uAC01\uC8FC\xB7PDF \uCC38\uC870\uB97C \uBCF5\uC6D0\uD569\uB2C8\uB2E4.",repair:"\uB9C1\uD06C \uD615\uC2DD\uC740 \uC720\uC9C0\uD558\uACE0 \uCF54\uB4DC\uBE14\uB85D \uC5B8\uC5B4\xB7CSS \uC794\uD574\xB7\uC774\uC2A4\uCF00\uC774\uD504 \uB4F1\uC744 \uBCF4\uC815\uD569\uB2C8\uB2E4."}[p("direction").value]};var he=p("repair-help-button"),qe=p("repair-tooltip"),It=()=>{qe.hidden=!1};he.onfocus=he.onclick=It;he.parentElement.onmouseenter=It;he.parentElement.onmouseleave=()=>{document.activeElement!==he&&(qe.hidden=!0)};he.onblur=()=>{qe.hidden=!0};he.onkeydown=e=>{e.key==="Escape"&&(qe.hidden=!0,e.stopPropagation())};function Lt(e){let n=Me[e];n&&(Fe.setValue(n.before),Be.setValue(n.after),p("comparison-empty").hidden=!0,p("preview-label").textContent=n.before===n.after?"\uBCF8\uBB38 \uBCC0\uACBD \uC5C6\uC74C":"\uBCC0\uACBD\uB41C \uBD80\uBD84 \uD45C\uC2DC")}p("preview-document").onchange=()=>Lt(Number(p("preview-document").value));p("fix").onchange=ce;p("out-input").oninput=()=>{ce(),ee()};async function $t(e){if(!(q||!D)){q=!0;try{ce(),ee(),G(),_(e?"\uBBF8\uB9AC\uBCF4\uAE30\uB97C \uB9CC\uB4DC\uB294 \uC911\uC785\uB2C8\uB2E4\u2026":"\uBB38\uC11C\uC640 \uCCA8\uBD80\uD30C\uC77C\uC744 \uBCC0\uD658\uD558\uB294 \uC911\uC785\uB2C8\uB2E4\u2026",!1,null),await jt();let n={base:B,file:D,scope:ue,out:p("out-input").value,to:p("direction").value,fix:p("fix").checked,preview:e},i,c={};for(;!i;)try{i=await re("/api/convert",{...n,approvedOverwrites:c})}catch(d){if(e||d.code!=="OVERWRITE_REQUIRED")throw d;if(!await Wt({conflicts:d.conflicts,inPlace:d.inPlace,output:d.output||n.out})){_("\uB36E\uC5B4\uC4F0\uAE30\uB97C \uCDE8\uC18C\uD588\uC2B5\uB2C8\uB2E4. \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.");return}for(let l of d.conflicts)c[l.path]=l.hash;_("\uAE30\uC874 \uD30C\uC77C\uC744 \uB36E\uC5B4\uC4F0\uB294 \uC911\uC785\uB2C8\uB2E4\u2026",!1,null)}if(Me=i.previews,p("preview-document").replaceChildren(...Me.map((d,l)=>{let t=document.createElement("option");return t.value=l,t.textContent=d.path,t})),p("preview-documents").hidden=i.documentCount<=1,p("preview-count").textContent=`\uC804\uCCB4 ${i.documentCount}\uAC1C \uBCC0\uD658 \xB7 ${Me.length}\uAC1C \uBCF8\uBB38 \uBE44\uAD50`,Lt(0),p("log").textContent=i.log,p("details").hidden=!1,Se=i.output,Se&&(p("output").textContent=Se,p("result").hidden=!1),e)_("\uBBF8\uB9AC\uBCF4\uAE30 \uC644\uB8CC. \uCD9C\uB825 \uC704\uCE58\uB97C \uD655\uC778\uD558\uACE0 \uC800\uC7A5\uD558\uC138\uC694.",!1,"success");else if(i.saved&&i.saved.created===0&&i.saved.overwritten===0)_(`\uAE30\uC874 \uCD9C\uB825\uACFC \uB0B4\uC6A9\uC774 \uAC19\uC544 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uD30C\uC77C ${i.saved.reused}\uAC1C\uB97C \uADF8\uB300\uB85C \uC7AC\uC0AC\uC6A9\uD588\uC2B5\uB2C8\uB2E4.`,!1,"success");else{let d=i.saved;_(d?`\uC800\uC7A5 \uC644\uB8CC \xB7 \uC0C8 \uD30C\uC77C ${d.created}\uAC1C \xB7 \uB36E\uC5B4\uC4F4 \uD30C\uC77C ${d.overwritten}\uAC1C \xB7 \uB3D9\uC77C \uB0B4\uC6A9 \uC7AC\uC0AC\uC6A9 ${d.reused}\uAC1C (\uBB38\uC11C\xB7\uCCA8\uBD80 \uD3EC\uD568)`:`\uBB38\uC11C ${i.documentCount}\uAC1C \uC800\uC7A5 \uC644\uB8CC.`,!1,"success")}}catch(n){_(n.message,!0)}finally{q=!1,ee(),G()}}}p("next-document").onclick=()=>{q||(D=null,ce(),De(),p("search").value="",ee(),G(),p("search").focus(),p("search").scrollIntoView({block:"center",behavior:"auto"}),_("\uB2E4\uC74C \uBB38\uC11C\uB97C \uC120\uD0DD\uD558\uC138\uC694. \uAE30\uC900 \uD3F4\uB354\uC640 \uBCC0\uD658 \uC124\uC815\uC740 \uC720\uC9C0\uB429\uB2C8\uB2E4."))};p("preview").onclick=()=>$t(!0);p("save").onclick=()=>$t(!1);p("open").onclick=async()=>{try{let e=await re("/api/open",{path:Se});ge.browser&&_(`\uC120\uD0DD\uD55C \uCD9C\uB825 \uD3F4\uB354 (${e.name})\uC5D0 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.`)}catch(e){_("\uD3F4\uB354\uB97C \uC5F4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC704 \uC800\uC7A5 \uACBD\uB85C\uB97C \uC774\uC6A9\uD574 \uC8FC\uC138\uC694. "+e.message,!0)}};Le=bt({activity:kt,api:re,loadMonaco:Pe,notify:Ie,context:()=>{let e=U==="sync"?St():ke.sync;return{base:e.base||e.folder,folder:e.folder,file:e.file,directory:e.selectedDirectory}},setBusy:e=>{q=e,ee(),G()},showSync:()=>Ve("sync"),refresh:async()=>{U==="sync"&&await ie(B||N)}});document.querySelector(".app-main").addEventListener("input",$e);document.querySelector(".app-main").addEventListener("change",$e);async function Tt(e){let n=o=>typeof e[o]=="string"?e[o]:"";le++,De(),B=null,D=null,me=!1,N=void 0,ye=void 0,Re=[],p("base-input").value="",ee(),G();let i="",c=n("base"),d=n("folder");c?await ie(c,!0)?d&&fe(B,d)&&d!==B&&(await ie(d)||(i="\uC774\uC804 \uD0D0\uC0C9 \uD3F4\uB354\uB97C \uC5F4 \uC218 \uC5C6\uC5B4 \uAE30\uC900 \uD3F4\uB354\uB97C \uC5F4\uC5C8\uC2B5\uB2C8\uB2E4.")):(i="\uC800\uC7A5\uB41C \uAE30\uC900 \uD3F4\uB354\uB97C \uC5F4 \uC218 \uC5C6\uC5B4 \uC2DC\uC791 \uD3F4\uB354\uB97C \uC5F4\uC5C8\uC2B5\uB2C8\uB2E4. \uACBD\uB85C\uB97C \uB2E4\uC2DC \uC120\uD0DD\uD574 \uC8FC\uC138\uC694.",await ie()):await ie(d||void 0)||(i="\uC774\uC804 \uD3F4\uB354\uB97C \uC5F4 \uC218 \uC5C6\uC5B4 \uC2DC\uC791 \uD3F4\uB354\uB97C \uC5F4\uC5C8\uC2B5\uB2C8\uB2E4.",await ie());let l=n("file");if(l&&B&&fe(B,l))try{if(U==="convert"&&ue==="folder"||U==="sync"&&e.selectedDirectory===!0)D=(await re("/api/browse?path="+encodeURIComponent(l))).path,me=!0;else{let o=l.slice(0,Math.max(l.lastIndexOf("/"),l.lastIndexOf("\\")));(await re("/api/browse?path="+encodeURIComponent(o))).entries.some(s=>!s.directory&&s.path===l)?D=l:i="\uC774\uC804\uC5D0 \uC120\uD0DD\uD55C \uBB38\uC11C\uAC00 \uC5C6\uC5B4 \uC120\uD0DD\uC744 \uD574\uC81C\uD588\uC2B5\uB2C8\uB2E4."}}catch{i="\uC774\uC804\uC5D0 \uC120\uD0DD\uD55C \uBB38\uC11C\uB97C \uC5F4 \uC218 \uC5C6\uC5B4 \uC120\uD0DD\uC744 \uD574\uC81C\uD588\uC2B5\uB2C8\uB2E4."}let t=new Set(Array.isArray(e.expanded)?e.expanded.filter(o=>typeof o=="string"&&N&&fe(N,o)):[]);if(!Array.isArray(e.expanded)&&D&&N&&fe(N,D)){let o=D.slice(0,Math.max(D.lastIndexOf("/"),D.lastIndexOf("\\")));for(;o&&fe(N,o)&&(t.add(o),o!==N);)o=o.slice(0,Math.max(o.lastIndexOf("/"),o.lastIndexOf("\\")))}for(let o of t)try{we.has(o)||we.set(o,(await re("/api/browse?path="+encodeURIComponent(o))).entries),se.add(o)}catch{}return!i&&n("baseInput")&&(p("base-input").value=n("baseInput")),i&&U==="convert"&&ce(),i}async function Kt(){let e=Ht(),n=d=>typeof e[d]=="string"?e[d]:"";q=!0,ee(),p("sync-references").value=n("referenceRoots"),p("out-input").value=n("out"),["file","folder"].includes(e.convertScope)&&(ue=e.convertScope),["markdown","obsidian","repair"].includes(e.direction)&&(p("direction").value=e.direction),typeof e.fix=="boolean"&&(p("fix").checked=e.fix),["markdown","obsidian"].includes(e.pullFormat)&&(p("sync-pull-format").value=e.pullFormat),typeof e.verify=="boolean"&&(p("sync-verify").checked=e.verify),typeof e.sideBySide=="boolean"&&(p("side-by-side").checked=e.sideBySide,ae?.updateOptions({renderSideBySide:e.sideBySide}));let i=d=>d&&typeof d=="object"&&!Array.isArray(d);ke=i(e.workspaces)?{convert:i(e.workspaces.convert)?e.workspaces.convert:{},sync:i(e.workspaces.sync)?e.workspaces.sync:{}}:{convert:{base:e.base,folder:e.folder,file:e.file,baseInput:e.baseInput},sync:{base:e.base,folder:e.folder,file:e.file,baseInput:e.baseInput}},p("direction").onchange(),Mt(e.mode==="sync"?"sync":"convert");let c;try{c=await Tt(ke[U])}finally{ve=!1,q=!1,ee(),G()}await Le.resume(),c&&_(c,!0)}ge.ready.then(Kt).then(()=>{let e=Le.watch();window.addEventListener("pagehide",e,{once:!0})}).catch(e=>Ie(e.message,"error"));