@musnows/scriverse 0.3.11 → 0.4.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 (560) hide show
  1. package/README.en.md +2 -0
  2. package/README.md +2 -0
  3. package/dist/ai.js +292 -19
  4. package/dist/ai.js.map +1 -1
  5. package/dist/app.js +45 -4
  6. package/dist/app.js.map +1 -1
  7. package/dist/database.js +47 -0
  8. package/dist/database.js.map +1 -1
  9. package/dist/public/app.js +826 -173
  10. package/dist/public/character-markdown.js +12 -0
  11. package/dist/public/index.html +57 -26
  12. package/dist/public/model-config.d.ts +1 -0
  13. package/dist/public/model-config.js +12 -3
  14. package/dist/public/module-layout.d.ts +17 -0
  15. package/dist/public/module-layout.js +28 -0
  16. package/dist/public/page-route.js +1 -1
  17. package/dist/public/styles.css +183 -60
  18. package/dist/public/vendor/vditor/dist/css/content-theme/ant-design.css +210 -0
  19. package/dist/public/vendor/vditor/dist/css/content-theme/dark.css +123 -0
  20. package/dist/public/vendor/vditor/dist/css/content-theme/light.css +101 -0
  21. package/dist/public/vendor/vditor/dist/css/content-theme/wechat.css +94 -0
  22. package/dist/public/vendor/vditor/dist/images/emoji/b3log.png +0 -0
  23. package/dist/public/vendor/vditor/dist/images/emoji/chainbook.png +0 -0
  24. package/dist/public/vendor/vditor/dist/images/emoji/doge.png +0 -0
  25. package/dist/public/vendor/vditor/dist/images/emoji/hacpai.png +0 -0
  26. package/dist/public/vendor/vditor/dist/images/emoji/huaji.gif +0 -0
  27. package/dist/public/vendor/vditor/dist/images/emoji/latke.png +0 -0
  28. package/dist/public/vendor/vditor/dist/images/emoji/liandi.png +0 -0
  29. package/dist/public/vendor/vditor/dist/images/emoji/lute.png +0 -0
  30. package/dist/public/vendor/vditor/dist/images/emoji/octocat.png +0 -0
  31. package/dist/public/vendor/vditor/dist/images/emoji/pipe.png +0 -0
  32. package/dist/public/vendor/vditor/dist/images/emoji/siyuan.png +0 -0
  33. package/dist/public/vendor/vditor/dist/images/emoji/solo.png +0 -0
  34. package/dist/public/vendor/vditor/dist/images/emoji/sym.png +0 -0
  35. package/dist/public/vendor/vditor/dist/images/emoji/trollface.png +0 -0
  36. package/dist/public/vendor/vditor/dist/images/emoji/vditor.png +0 -0
  37. package/dist/public/vendor/vditor/dist/images/emoji/wide.png +0 -0
  38. package/dist/public/vendor/vditor/dist/images/emoji/wulian.png +0 -0
  39. package/dist/public/vendor/vditor/dist/images/img-loading.svg +1 -0
  40. package/dist/public/vendor/vditor/dist/images/logo.png +0 -0
  41. package/dist/public/vendor/vditor/dist/index.css +1823 -0
  42. package/dist/public/vendor/vditor/dist/index.d.ts +82 -0
  43. package/dist/public/vendor/vditor/dist/index.js +15995 -0
  44. package/dist/public/vendor/vditor/dist/index.min.js +1 -0
  45. package/dist/public/vendor/vditor/dist/js/abcjs/abcjs_basic.min.js +3 -0
  46. package/dist/public/vendor/vditor/dist/js/echarts/echarts.min.js +45 -0
  47. package/dist/public/vendor/vditor/dist/js/flowchart.js/flowchart.min.js +8 -0
  48. package/dist/public/vendor/vditor/dist/js/graphviz/full.render.js +90 -0
  49. package/dist/public/vendor/vditor/dist/js/graphviz/viz.js +333 -0
  50. package/dist/public/vendor/vditor/dist/js/highlight.js/LICENSE +29 -0
  51. package/dist/public/vendor/vditor/dist/js/highlight.js/highlight.min.js +3835 -0
  52. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/a11y-dark.min.css +7 -0
  53. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/a11y-light.min.css +7 -0
  54. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/agate.min.css +20 -0
  55. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/an-old-hope.min.css +9 -0
  56. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/androidstudio.min.css +1 -0
  57. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ant-design.min.css +84 -0
  58. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/arduino-light.min.css +1 -0
  59. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/arta.min.css +1 -0
  60. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ascetic.min.css +1 -0
  61. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-dark-reasonable.min.css +1 -0
  62. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-dark.min.css +1 -0
  63. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/atom-one-light.min.css +1 -0
  64. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/3024.min.css +7 -0
  65. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/apathy.min.css +7 -0
  66. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/apprentice.min.css +7 -0
  67. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ashes.min.css +7 -0
  68. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-cave-light.min.css +7 -0
  69. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-cave.min.css +7 -0
  70. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-dune-light.min.css +7 -0
  71. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-dune.min.css +7 -0
  72. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-estuary-light.min.css +7 -0
  73. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-estuary.min.css +7 -0
  74. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-forest-light.min.css +7 -0
  75. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-forest.min.css +7 -0
  76. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-heath-light.min.css +7 -0
  77. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-heath.min.css +7 -0
  78. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-lakeside-light.min.css +7 -0
  79. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-lakeside.min.css +7 -0
  80. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-plateau-light.min.css +7 -0
  81. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-plateau.min.css +7 -0
  82. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-savanna-light.min.css +7 -0
  83. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-savanna.min.css +7 -0
  84. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-seaside-light.min.css +7 -0
  85. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-seaside.min.css +7 -0
  86. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-sulphurpool-light.min.css +7 -0
  87. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atelier-sulphurpool.min.css +7 -0
  88. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/atlas.min.css +7 -0
  89. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/bespin.min.css +7 -0
  90. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-bathory.min.css +7 -0
  91. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-burzum.min.css +7 -0
  92. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-dark-funeral.min.css +7 -0
  93. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-gorgoroth.min.css +7 -0
  94. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-immortal.min.css +7 -0
  95. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-khold.min.css +7 -0
  96. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-marduk.min.css +7 -0
  97. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-mayhem.min.css +7 -0
  98. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-nile.min.css +7 -0
  99. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal-venom.min.css +7 -0
  100. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/black-metal.min.css +7 -0
  101. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brewer.min.css +7 -0
  102. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/bright.min.css +7 -0
  103. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brogrammer.min.css +7 -0
  104. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brush-trees-dark.min.css +7 -0
  105. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/brush-trees.min.css +7 -0
  106. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/chalk.min.css +7 -0
  107. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/circus.min.css +7 -0
  108. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/classic-dark.min.css +7 -0
  109. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/classic-light.min.css +7 -0
  110. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/codeschool.min.css +7 -0
  111. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/colors.min.css +7 -0
  112. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/cupcake.min.css +7 -0
  113. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/cupertino.min.css +7 -0
  114. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/danqing.min.css +7 -0
  115. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darcula.min.css +7 -0
  116. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dark-violet.min.css +7 -0
  117. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darkmoss.min.css +7 -0
  118. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/darktooth.min.css +7 -0
  119. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/decaf.min.css +7 -0
  120. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/default-dark.min.css +7 -0
  121. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/default-light.min.css +7 -0
  122. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dirtysea.min.css +7 -0
  123. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/dracula.min.css +7 -0
  124. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/edge-dark.min.css +7 -0
  125. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/edge-light.min.css +7 -0
  126. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eighties.min.css +7 -0
  127. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/embers.min.css +7 -0
  128. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-dark.min.css +7 -0
  129. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-gray-dark.min.css +7 -0
  130. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-gray-light.min.css +7 -0
  131. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/equilibrium-light.min.css +7 -0
  132. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/espresso.min.css +7 -0
  133. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eva-dim.min.css +7 -0
  134. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/eva.min.css +7 -0
  135. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/flat.min.css +7 -0
  136. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/framer.min.css +7 -0
  137. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/fruit-soda.min.css +7 -0
  138. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gigavolt.min.css +7 -0
  139. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/github.min.css +7 -0
  140. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/google-dark.min.css +7 -0
  141. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/google-light.min.css +7 -0
  142. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/grayscale-dark.min.css +7 -0
  143. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/grayscale-light.min.css +7 -0
  144. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/green-screen.min.css +7 -0
  145. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-hard.min.css +7 -0
  146. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-medium.min.css +7 -0
  147. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-pale.min.css +7 -0
  148. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-dark-soft.min.css +7 -0
  149. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-hard.min.css +7 -0
  150. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-medium.min.css +7 -0
  151. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/gruvbox-light-soft.min.css +7 -0
  152. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/hardcore.min.css +7 -0
  153. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/harmonic16-dark.min.css +7 -0
  154. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/harmonic16-light.min.css +7 -0
  155. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/heetch-dark.min.css +7 -0
  156. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/heetch-light.min.css +7 -0
  157. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/helios.min.css +7 -0
  158. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/hopscotch.min.css +7 -0
  159. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/horizon-dark.min.css +7 -0
  160. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/horizon-light.min.css +7 -0
  161. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/humanoid-dark.min.css +7 -0
  162. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/humanoid-light.min.css +7 -0
  163. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ia-dark.min.css +7 -0
  164. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ia-light.min.css +7 -0
  165. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/icy-dark.min.css +7 -0
  166. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ir-black.min.css +7 -0
  167. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/isotope.min.css +7 -0
  168. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/kimber.min.css +7 -0
  169. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/london-tube.min.css +7 -0
  170. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/macintosh.min.css +7 -0
  171. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/marrakesh.min.css +7 -0
  172. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/materia.min.css +7 -0
  173. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-darker.min.css +7 -0
  174. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-lighter.min.css +7 -0
  175. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-palenight.min.css +7 -0
  176. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material-vivid.min.css +7 -0
  177. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/material.min.css +7 -0
  178. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mellow-purple.min.css +7 -0
  179. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mexico-light.min.css +7 -0
  180. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/mocha.min.css +7 -0
  181. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/monokai.min.css +7 -0
  182. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nebula.min.css +7 -0
  183. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nord.min.css +7 -0
  184. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/nova.min.css +7 -0
  185. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ocean.min.css +7 -0
  186. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/oceanicnext.min.css +7 -0
  187. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/one-light.min.css +7 -0
  188. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/onedark.min.css +7 -0
  189. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/outrun-dark.min.css +7 -0
  190. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/papercolor-dark.min.css +7 -0
  191. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/papercolor-light.min.css +7 -0
  192. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/paraiso.min.css +7 -0
  193. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pasque.min.css +7 -0
  194. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/phd.min.css +7 -0
  195. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pico.min.css +7 -0
  196. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/pop.min.css +7 -0
  197. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/porple.min.css +7 -0
  198. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/qualia.min.css +7 -0
  199. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/railscasts.min.css +7 -0
  200. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/rebecca.min.css +7 -0
  201. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine-dawn.min.css +7 -0
  202. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine-moon.min.css +7 -0
  203. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/ros-pine.min.css +7 -0
  204. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/sagelight.min.css +7 -0
  205. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/sandcastle.min.css +7 -0
  206. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/seti-ui.min.css +7 -0
  207. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/shapeshifter.min.css +7 -0
  208. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/silk-dark.min.css +7 -0
  209. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/silk-light.min.css +7 -0
  210. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/snazzy.min.css +7 -0
  211. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solar-flare-light.min.css +7 -0
  212. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solar-flare.min.css +7 -0
  213. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solarized-dark.min.css +7 -0
  214. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/solarized-light.min.css +7 -0
  215. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/spacemacs.min.css +7 -0
  216. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summercamp.min.css +7 -0
  217. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summerfruit-dark.min.css +7 -0
  218. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/summerfruit-light.min.css +7 -0
  219. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/synth-midnight-terminal-dark.min.css +7 -0
  220. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/synth-midnight-terminal-light.min.css +7 -0
  221. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tango.min.css +7 -0
  222. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tender.min.css +7 -0
  223. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tomorrow-night.min.css +7 -0
  224. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/tomorrow.min.css +7 -0
  225. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/twilight.min.css +7 -0
  226. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/unikitty-dark.min.css +7 -0
  227. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/unikitty-light.min.css +7 -0
  228. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/vulcan.min.css +7 -0
  229. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-10-light.min.css +7 -0
  230. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-10.min.css +7 -0
  231. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-95-light.min.css +7 -0
  232. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-95.min.css +7 -0
  233. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-high-contrast-light.min.css +7 -0
  234. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-high-contrast.min.css +7 -0
  235. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-nt-light.min.css +7 -0
  236. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/windows-nt.min.css +7 -0
  237. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/woodland.min.css +7 -0
  238. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/xcode-dusk.min.css +7 -0
  239. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/base16/zenburn.min.css +7 -0
  240. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/brown-paper.min.css +1 -0
  241. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/brown-papersq.png +0 -0
  242. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/codepen-embed.min.css +1 -0
  243. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/color-brewer.min.css +1 -0
  244. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/dark.min.css +1 -0
  245. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/default.min.css +9 -0
  246. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/devibeans.min.css +7 -0
  247. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/docco.min.css +1 -0
  248. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/far.min.css +1 -0
  249. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/felipec.min.css +7 -0
  250. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/foundation.min.css +1 -0
  251. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github-dark-dimmed.min.css +9 -0
  252. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github-dark.min.css +10 -0
  253. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/github.min.css +10 -0
  254. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gml.min.css +1 -0
  255. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/googlecode.min.css +1 -0
  256. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gradient-dark.min.css +1 -0
  257. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/gradient-light.min.css +1 -0
  258. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/grayscale.min.css +1 -0
  259. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/hybrid.min.css +1 -0
  260. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/idea.min.css +1 -0
  261. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/intellij-light.min.css +1 -0
  262. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/ir-black.min.css +1 -0
  263. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/isbl-editor-dark.min.css +1 -0
  264. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/isbl-editor-light.min.css +1 -0
  265. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/kimbie-dark.min.css +1 -0
  266. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/kimbie-light.min.css +1 -0
  267. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/lightfair.min.css +1 -0
  268. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/lioshi.min.css +1 -0
  269. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/magula.min.css +1 -0
  270. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/mono-blue.min.css +1 -0
  271. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/monokai-sublime.min.css +1 -0
  272. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/monokai.min.css +1 -0
  273. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/night-owl.min.css +1 -0
  274. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nnfx-dark.min.css +10 -0
  275. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nnfx-light.min.css +10 -0
  276. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/nord.min.css +1 -0
  277. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/obsidian.min.css +1 -0
  278. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/panda-syntax-dark.min.css +1 -0
  279. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/panda-syntax-light.min.css +1 -0
  280. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/paraiso-dark.min.css +1 -0
  281. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/paraiso-light.min.css +1 -0
  282. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/pojoaque.jpg +0 -0
  283. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/pojoaque.min.css +1 -0
  284. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/purebasic.min.css +1 -0
  285. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/qtcreator-dark.min.css +1 -0
  286. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/qtcreator-light.min.css +1 -0
  287. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/rainbow.min.css +1 -0
  288. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/routeros.min.css +1 -0
  289. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/school-book.min.css +1 -0
  290. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/shades-of-purple.min.css +1 -0
  291. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/srcery.min.css +1 -0
  292. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/stackoverflow-dark.min.css +13 -0
  293. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/stackoverflow-light.min.css +13 -0
  294. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/sunburst.min.css +1 -0
  295. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tokyo-night-dark.min.css +8 -0
  296. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tokyo-night-light.min.css +8 -0
  297. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tomorrow-night-blue.min.css +1 -0
  298. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/tomorrow-night-bright.min.css +1 -0
  299. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/vs.min.css +1 -0
  300. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/vs2015.min.css +1 -0
  301. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/xcode.min.css +1 -0
  302. package/dist/public/vendor/vditor/dist/js/highlight.js/styles/xt256.min.css +1 -0
  303. package/dist/public/vendor/vditor/dist/js/highlight.js/third-languages.js +135 -0
  304. package/dist/public/vendor/vditor/dist/js/i18n/de_DE.js +86 -0
  305. package/dist/public/vendor/vditor/dist/js/i18n/en_US.js +86 -0
  306. package/dist/public/vendor/vditor/dist/js/i18n/es_ES.js +86 -0
  307. package/dist/public/vendor/vditor/dist/js/i18n/fr_FR.js +86 -0
  308. package/dist/public/vendor/vditor/dist/js/i18n/ja_JP.js +86 -0
  309. package/dist/public/vendor/vditor/dist/js/i18n/ko_KR.js +86 -0
  310. package/dist/public/vendor/vditor/dist/js/i18n/pt_BR.js +86 -0
  311. package/dist/public/vendor/vditor/dist/js/i18n/ru_RU.js +86 -0
  312. package/dist/public/vendor/vditor/dist/js/i18n/sv_SE.js +86 -0
  313. package/dist/public/vendor/vditor/dist/js/i18n/vi_VN.js +86 -0
  314. package/dist/public/vendor/vditor/dist/js/i18n/zh_CN.js +86 -0
  315. package/dist/public/vendor/vditor/dist/js/i18n/zh_TW.js +86 -0
  316. package/dist/public/vendor/vditor/dist/js/icons/ant.js +174 -0
  317. package/dist/public/vendor/vditor/dist/js/icons/material.js +195 -0
  318. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  319. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  320. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  321. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  322. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  323. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  324. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  325. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  326. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  327. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  328. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  329. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  330. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  331. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  332. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  333. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  334. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  335. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  336. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  337. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  338. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  339. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  340. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  341. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  342. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  343. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  344. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  345. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  346. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  347. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  348. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  349. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  350. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  351. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  352. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  353. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  354. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  355. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  356. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  357. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  358. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  359. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  360. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  361. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  362. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  363. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  364. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  365. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  366. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  367. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  368. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  369. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  370. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  371. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  372. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  373. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  374. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  375. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  376. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  377. package/dist/public/vendor/vditor/dist/js/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  378. package/dist/public/vendor/vditor/dist/js/katex/katex.min.css +1 -0
  379. package/dist/public/vendor/vditor/dist/js/katex/katex.min.js +1 -0
  380. package/dist/public/vendor/vditor/dist/js/katex/mhchem.min.js +1 -0
  381. package/dist/public/vendor/vditor/dist/js/lute/lute.min.js +72 -0
  382. package/dist/public/vendor/vditor/dist/js/markmap/katex.min.css +1 -0
  383. package/dist/public/vendor/vditor/dist/js/markmap/markmap.min.js +8251 -0
  384. package/dist/public/vendor/vditor/dist/js/markmap/prism.css +140 -0
  385. package/dist/public/vendor/vditor/dist/js/mathjax/LICENSE +202 -0
  386. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/assistive-mml.js +1 -0
  387. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/complexity.js +1 -0
  388. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/explorer.js +1 -0
  389. package/dist/public/vendor/vditor/dist/js/mathjax/a11y/semantic-enrich.js +1 -0
  390. package/dist/public/vendor/vditor/dist/js/mathjax/input/asciimath.js +1 -0
  391. package/dist/public/vendor/vditor/dist/js/mathjax/input/mml/entities.js +1 -0
  392. package/dist/public/vendor/vditor/dist/js/mathjax/input/mml.js +1 -0
  393. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/action.js +1 -0
  394. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/all-packages.js +1 -0
  395. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/ams.js +1 -0
  396. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/amscd.js +1 -0
  397. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/autoload.js +1 -0
  398. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/bbox.js +1 -0
  399. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/boldsymbol.js +1 -0
  400. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/braket.js +1 -0
  401. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/bussproofs.js +1 -0
  402. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/cancel.js +1 -0
  403. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/color.js +1 -0
  404. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/colorV2.js +1 -0
  405. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/configMacros.js +1 -0
  406. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/enclose.js +1 -0
  407. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/extpfeil.js +1 -0
  408. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/html.js +1 -0
  409. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/mhchem.js +1 -0
  410. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/newcommand.js +1 -0
  411. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/noerrors.js +1 -0
  412. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/noundefined.js +1 -0
  413. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/physics.js +1 -0
  414. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/require.js +1 -0
  415. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/tagFormat.js +1 -0
  416. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/textmacros.js +1 -0
  417. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/unicode.js +1 -0
  418. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex/extensions/verb.js +1 -0
  419. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex-base.js +1 -0
  420. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex-full.js +1 -0
  421. package/dist/public/vendor/vditor/dist/js/mathjax/input/tex.js +1 -0
  422. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/de.js +104 -0
  423. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/en.js +110 -0
  424. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/es.js +104 -0
  425. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/fr.js +104 -0
  426. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/mathmaps_ie.js +518 -0
  427. package/dist/public/vendor/vditor/dist/js/mathjax/sre/mathmaps/nemeth.js +104 -0
  428. package/dist/public/vendor/vditor/dist/js/mathjax/sre/sre-node.js +11 -0
  429. package/dist/public/vendor/vditor/dist/js/mathjax/sre/sre_browser.js +1633 -0
  430. package/dist/public/vendor/vditor/dist/js/mathjax/tex-svg-full.js +1 -0
  431. package/dist/public/vendor/vditor/dist/js/mermaid/mermaid.min.js +2607 -0
  432. package/dist/public/vendor/vditor/dist/js/plantuml/plantuml-encoder.min.js +1 -0
  433. package/dist/public/vendor/vditor/dist/js/smiles-drawer/smiles-drawer.min.js +71 -0
  434. package/dist/public/vendor/vditor/dist/method.d.ts +51 -0
  435. package/dist/public/vendor/vditor/dist/method.js +2673 -0
  436. package/dist/public/vendor/vditor/dist/method.min.js +1 -0
  437. package/dist/public/vendor/vditor/dist/ts/constants.d.ts +45 -0
  438. package/dist/public/vendor/vditor/dist/ts/devtools/index.d.ts +7 -0
  439. package/dist/public/vendor/vditor/dist/ts/export/index.d.ts +4 -0
  440. package/dist/public/vendor/vditor/dist/ts/hint/index.d.ts +14 -0
  441. package/dist/public/vendor/vditor/dist/ts/ir/expandMarker.d.ts +1 -0
  442. package/dist/public/vendor/vditor/dist/ts/ir/highlightToolbarIR.d.ts +1 -0
  443. package/dist/public/vendor/vditor/dist/ts/ir/index.d.ts +13 -0
  444. package/dist/public/vendor/vditor/dist/ts/ir/input.d.ts +1 -0
  445. package/dist/public/vendor/vditor/dist/ts/ir/process.d.ts +8 -0
  446. package/dist/public/vendor/vditor/dist/ts/ir/processKeydown.d.ts +1 -0
  447. package/dist/public/vendor/vditor/dist/ts/markdown/SMILESRender.d.ts +1 -0
  448. package/dist/public/vendor/vditor/dist/ts/markdown/abcRender.d.ts +1 -0
  449. package/dist/public/vendor/vditor/dist/ts/markdown/adapterRender.d.ts +41 -0
  450. package/dist/public/vendor/vditor/dist/ts/markdown/anchorRender.d.ts +1 -0
  451. package/dist/public/vendor/vditor/dist/ts/markdown/chartRender.d.ts +1 -0
  452. package/dist/public/vendor/vditor/dist/ts/markdown/codeRender.d.ts +1 -0
  453. package/dist/public/vendor/vditor/dist/ts/markdown/flowchartRender.d.ts +1 -0
  454. package/dist/public/vendor/vditor/dist/ts/markdown/getHTML.d.ts +1 -0
  455. package/dist/public/vendor/vditor/dist/ts/markdown/getMarkdown.d.ts +1 -0
  456. package/dist/public/vendor/vditor/dist/ts/markdown/graphvizRender.d.ts +1 -0
  457. package/dist/public/vendor/vditor/dist/ts/markdown/highlightRender.d.ts +1 -0
  458. package/dist/public/vendor/vditor/dist/ts/markdown/lazyLoadImageRender.d.ts +6 -0
  459. package/dist/public/vendor/vditor/dist/ts/markdown/markmapRender.d.ts +1 -0
  460. package/dist/public/vendor/vditor/dist/ts/markdown/mathRender.d.ts +9 -0
  461. package/dist/public/vendor/vditor/dist/ts/markdown/mediaRender.d.ts +1 -0
  462. package/dist/public/vendor/vditor/dist/ts/markdown/mermaidRender.d.ts +1 -0
  463. package/dist/public/vendor/vditor/dist/ts/markdown/mindmapRender.d.ts +1 -0
  464. package/dist/public/vendor/vditor/dist/ts/markdown/outlineRender.d.ts +1 -0
  465. package/dist/public/vendor/vditor/dist/ts/markdown/plantumlRender.d.ts +1 -0
  466. package/dist/public/vendor/vditor/dist/ts/markdown/previewRender.d.ts +2 -0
  467. package/dist/public/vendor/vditor/dist/ts/markdown/setLute.d.ts +1 -0
  468. package/dist/public/vendor/vditor/dist/ts/markdown/speechRender.d.ts +6 -0
  469. package/dist/public/vendor/vditor/dist/ts/outline/index.d.ts +7 -0
  470. package/dist/public/vendor/vditor/dist/ts/preview/image.d.ts +1 -0
  471. package/dist/public/vendor/vditor/dist/ts/preview/index.d.ts +10 -0
  472. package/dist/public/vendor/vditor/dist/ts/resize/index.d.ts +6 -0
  473. package/dist/public/vendor/vditor/dist/ts/sv/combineFootnote.d.ts +6 -0
  474. package/dist/public/vendor/vditor/dist/ts/sv/index.d.ts +13 -0
  475. package/dist/public/vendor/vditor/dist/ts/sv/inputEvent.d.ts +1 -0
  476. package/dist/public/vendor/vditor/dist/ts/sv/process.d.ts +11 -0
  477. package/dist/public/vendor/vditor/dist/ts/sv/processKeydown.d.ts +1 -0
  478. package/dist/public/vendor/vditor/dist/ts/tip/index.d.ts +6 -0
  479. package/dist/public/vendor/vditor/dist/ts/toolbar/Both.d.ts +5 -0
  480. package/dist/public/vendor/vditor/dist/ts/toolbar/Br.d.ts +4 -0
  481. package/dist/public/vendor/vditor/dist/ts/toolbar/CodeTheme.d.ts +6 -0
  482. package/dist/public/vendor/vditor/dist/ts/toolbar/ContentTheme.d.ts +6 -0
  483. package/dist/public/vendor/vditor/dist/ts/toolbar/Counter.d.ts +6 -0
  484. package/dist/public/vendor/vditor/dist/ts/toolbar/Custom.d.ts +5 -0
  485. package/dist/public/vendor/vditor/dist/ts/toolbar/Devtools.d.ts +5 -0
  486. package/dist/public/vendor/vditor/dist/ts/toolbar/Divider.d.ts +4 -0
  487. package/dist/public/vendor/vditor/dist/ts/toolbar/EditMode.d.ts +8 -0
  488. package/dist/public/vendor/vditor/dist/ts/toolbar/Emoji.d.ts +7 -0
  489. package/dist/public/vendor/vditor/dist/ts/toolbar/Export.d.ts +6 -0
  490. package/dist/public/vendor/vditor/dist/ts/toolbar/Fullscreen.d.ts +6 -0
  491. package/dist/public/vendor/vditor/dist/ts/toolbar/Headings.d.ts +7 -0
  492. package/dist/public/vendor/vditor/dist/ts/toolbar/Help.d.ts +5 -0
  493. package/dist/public/vendor/vditor/dist/ts/toolbar/Indent.d.ts +5 -0
  494. package/dist/public/vendor/vditor/dist/ts/toolbar/Info.d.ts +5 -0
  495. package/dist/public/vendor/vditor/dist/ts/toolbar/InsertAfter.d.ts +5 -0
  496. package/dist/public/vendor/vditor/dist/ts/toolbar/InsertBefore.d.ts +5 -0
  497. package/dist/public/vendor/vditor/dist/ts/toolbar/MenuItem.d.ts +5 -0
  498. package/dist/public/vendor/vditor/dist/ts/toolbar/Outdent.d.ts +5 -0
  499. package/dist/public/vendor/vditor/dist/ts/toolbar/Outline.d.ts +5 -0
  500. package/dist/public/vendor/vditor/dist/ts/toolbar/Preview.d.ts +6 -0
  501. package/dist/public/vendor/vditor/dist/ts/toolbar/Record.d.ts +6 -0
  502. package/dist/public/vendor/vditor/dist/ts/toolbar/Redo.d.ts +5 -0
  503. package/dist/public/vendor/vditor/dist/ts/toolbar/Undo.d.ts +5 -0
  504. package/dist/public/vendor/vditor/dist/ts/toolbar/Upload.d.ts +6 -0
  505. package/dist/public/vendor/vditor/dist/ts/toolbar/index.d.ts +10 -0
  506. package/dist/public/vendor/vditor/dist/ts/toolbar/setToolbar.d.ts +20 -0
  507. package/dist/public/vendor/vditor/dist/ts/ui/initUI.d.ts +4 -0
  508. package/dist/public/vendor/vditor/dist/ts/ui/setCodeTheme.d.ts +1 -0
  509. package/dist/public/vendor/vditor/dist/ts/ui/setContentTheme.d.ts +1 -0
  510. package/dist/public/vendor/vditor/dist/ts/ui/setPreviewMode.d.ts +1 -0
  511. package/dist/public/vendor/vditor/dist/ts/ui/setTheme.d.ts +1 -0
  512. package/dist/public/vendor/vditor/dist/ts/undo/index.d.ts +19 -0
  513. package/dist/public/vendor/vditor/dist/ts/upload/getElement.d.ts +1 -0
  514. package/dist/public/vendor/vditor/dist/ts/upload/index.d.ts +8 -0
  515. package/dist/public/vendor/vditor/dist/ts/upload/setHeaders.d.ts +1 -0
  516. package/dist/public/vendor/vditor/dist/ts/util/Options.d.ts +8 -0
  517. package/dist/public/vendor/vditor/dist/ts/util/RecordMedia.d.ts +18 -0
  518. package/dist/public/vendor/vditor/dist/ts/util/addScript.d.ts +2 -0
  519. package/dist/public/vendor/vditor/dist/ts/util/addStyle.d.ts +1 -0
  520. package/dist/public/vendor/vditor/dist/ts/util/code160to32.d.ts +1 -0
  521. package/dist/public/vendor/vditor/dist/ts/util/compatibility.d.ts +7 -0
  522. package/dist/public/vendor/vditor/dist/ts/util/editorCommonEvent.d.ts +9 -0
  523. package/dist/public/vendor/vditor/dist/ts/util/fixBrowserBehavior.d.ts +39 -0
  524. package/dist/public/vendor/vditor/dist/ts/util/function.d.ts +3 -0
  525. package/dist/public/vendor/vditor/dist/ts/util/getSelectText.d.ts +1 -0
  526. package/dist/public/vendor/vditor/dist/ts/util/hasClosest.d.ts +9 -0
  527. package/dist/public/vendor/vditor/dist/ts/util/hasClosestByHeadings.d.ts +2 -0
  528. package/dist/public/vendor/vditor/dist/ts/util/highlightToolbar.d.ts +1 -0
  529. package/dist/public/vendor/vditor/dist/ts/util/hotKey.d.ts +1 -0
  530. package/dist/public/vendor/vditor/dist/ts/util/log.d.ts +1 -0
  531. package/dist/public/vendor/vditor/dist/ts/util/merge.d.ts +1 -0
  532. package/dist/public/vendor/vditor/dist/ts/util/processCode.d.ts +2 -0
  533. package/dist/public/vendor/vditor/dist/ts/util/selection.d.ts +14 -0
  534. package/dist/public/vendor/vditor/dist/ts/util/toc.d.ts +5 -0
  535. package/dist/public/vendor/vditor/dist/ts/wysiwyg/afterRenderEvent.d.ts +5 -0
  536. package/dist/public/vendor/vditor/dist/ts/wysiwyg/highlightToolbarWYSIWYG.d.ts +4 -0
  537. package/dist/public/vendor/vditor/dist/ts/wysiwyg/index.d.ts +22 -0
  538. package/dist/public/vendor/vditor/dist/ts/wysiwyg/inlineTag.d.ts +10 -0
  539. package/dist/public/vendor/vditor/dist/ts/wysiwyg/input.d.ts +1 -0
  540. package/dist/public/vendor/vditor/dist/ts/wysiwyg/processKeydown.d.ts +2 -0
  541. package/dist/public/vendor/vditor/dist/ts/wysiwyg/renderDomByMd.d.ts +5 -0
  542. package/dist/public/vendor/vditor/dist/ts/wysiwyg/setHeading.d.ts +2 -0
  543. package/dist/public/vendor/vditor/dist/ts/wysiwyg/showCode.d.ts +1 -0
  544. package/dist/public/vendor/vditor/dist/ts/wysiwyg/toolbarEvent.d.ts +1 -0
  545. package/dist/public/vendor/vditor/dist/types/index.d.ts +921 -0
  546. package/dist/public/work-permissions.d.ts +5 -2
  547. package/dist/public/work-permissions.js +40 -13
  548. package/dist/security.js +11 -0
  549. package/dist/security.js.map +1 -1
  550. package/dist/server-runtime.js +5 -2
  551. package/dist/server-runtime.js.map +1 -1
  552. package/dist/store.js +182 -27
  553. package/dist/store.js.map +1 -1
  554. package/dist/user-auth.js +36 -7
  555. package/dist/user-auth.js.map +1 -1
  556. package/dist/version.js +1 -1
  557. package/dist/version.js.map +1 -1
  558. package/dist/work-permissions.js +29 -6
  559. package/dist/work-permissions.js.map +1 -1
  560. package/package.json +2 -1
package/dist/store.js CHANGED
@@ -6,6 +6,72 @@ import { paginated, paginationSql } from "./pagination.js";
6
6
  import { currentRequestActor } from "./request-context.js";
7
7
  import { classifyWorkModulePermissions, emptyWorkModulePermissions, fullWorkModulePermissions, storedWorkModulePermissions } from "./work-permissions.js";
8
8
  import { countWords, documentShortSearchTerms, id, json, normalizeDocumentSearchText, normalizeParagraphSpacing, now, splitDocumentParagraphs } from "./utils.js";
9
+ function settingsFromInput(settingsMarkdown, settings, fallback = []) {
10
+ if (settingsMarkdown !== undefined)
11
+ return settingsMarkdown.trim() ? [settingsMarkdown] : [];
12
+ return settings ?? fallback;
13
+ }
14
+ function settingsMarkdownFromList(settings) {
15
+ return Array.isArray(settings) ? settings.map(String).filter(Boolean).join("\n\n") : "";
16
+ }
17
+ function knowledgeSectionTitle(contentMarkdown, index) {
18
+ const heading = contentMarkdown.match(/^\s{0,3}#{1,6}\s+(.+?)\s*#*\s*$/mu)?.[1]?.trim();
19
+ return heading || `设定 ${index + 1}`;
20
+ }
21
+ function normalizeKnowledgeSections(sections) {
22
+ return sections.map((section, index) => {
23
+ const contentMarkdown = section.contentMarkdown ?? "";
24
+ return {
25
+ title: section.title.trim() || knowledgeSectionTitle(contentMarkdown, index),
26
+ contentMarkdown,
27
+ summary: section.summary?.trim() ?? "",
28
+ sortOrder: Number.isFinite(section.sortOrder) ? Math.max(0, Math.trunc(section.sortOrder)) : index
29
+ };
30
+ });
31
+ }
32
+ function knowledgeSectionInput(value, index) {
33
+ if (!isRecord(value))
34
+ return null;
35
+ const contentMarkdown = typeof value.contentMarkdown === "string"
36
+ ? value.contentMarkdown
37
+ : typeof value.content === "string" ? value.content : "";
38
+ const title = typeof value.title === "string" ? value.title : "";
39
+ return {
40
+ title: title || knowledgeSectionTitle(contentMarkdown, index),
41
+ contentMarkdown,
42
+ summary: typeof value.summary === "string" ? value.summary : "",
43
+ sortOrder: typeof value.sortOrder === "number" ? value.sortOrder : index
44
+ };
45
+ }
46
+ function knowledgeSectionsFromStored(value, fallback = []) {
47
+ const parsed = typeof value === "string" ? json(value, []) : value;
48
+ if (Array.isArray(parsed)) {
49
+ const sections = parsed.map((item, index) => knowledgeSectionInput(item, index)).filter((item) => item !== null);
50
+ if (sections.length > 0 || fallback.length === 0)
51
+ return normalizeKnowledgeSections(sections);
52
+ }
53
+ return normalizeKnowledgeSections(fallback.map((contentMarkdown, index) => ({
54
+ title: knowledgeSectionTitle(contentMarkdown, index),
55
+ contentMarkdown,
56
+ sortOrder: index
57
+ })));
58
+ }
59
+ function knowledgeSectionsFromInput(sections, settingsMarkdown, settings, fallbackSections = []) {
60
+ if (sections !== undefined)
61
+ return normalizeKnowledgeSections(sections);
62
+ if (settingsMarkdown !== undefined || settings !== undefined) {
63
+ const legacySettings = settingsFromInput(settingsMarkdown, settings);
64
+ return knowledgeSectionsFromStored(legacySettings.map((contentMarkdown, index) => ({
65
+ title: knowledgeSectionTitle(contentMarkdown, index),
66
+ contentMarkdown,
67
+ sortOrder: index
68
+ })));
69
+ }
70
+ return fallbackSections;
71
+ }
72
+ function settingsFromKnowledgeSections(sections) {
73
+ return sections.map((section) => section.contentMarkdown).filter((content) => content.trim());
74
+ }
9
75
  export const versionedEntityTypes = [
10
76
  "work",
11
77
  "volume",
@@ -204,6 +270,7 @@ export class Store {
204
270
  parentRaceId: entity.parentRaceId,
205
271
  description: entity.description,
206
272
  settings: entity.settings,
273
+ settingsSections: entity.settingsSections,
207
274
  memberIds: entity.memberIds
208
275
  };
209
276
  if (type === "organization")
@@ -211,6 +278,7 @@ export class Store {
211
278
  name: entity.name,
212
279
  description: entity.description,
213
280
  settings: entity.settings,
281
+ settingsSections: entity.settingsSections,
214
282
  memberIds: entity.memberIds
215
283
  };
216
284
  if (type === "timeline-track")
@@ -1620,9 +1688,11 @@ export class Store {
1620
1688
  }
1621
1689
  insertSettingWithId(workId, settingId, input, source = "create", sourceRef = null, changeNote = "") {
1622
1690
  const timestamp = now();
1691
+ const content = input.content;
1623
1692
  this.db.transaction(() => {
1624
1693
  this.db.run(`INSERT INTO settings (id, work_id, title, category, content, tags_json, status, locked, evidence_json, scope_json, author_note, created_at, updated_at)
1625
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, settingId, workId, input.title, input.category, input.content, JSON.stringify(input.tags ?? []), input.status ?? "draft", input.locked ? 1 : 0, JSON.stringify(input.evidence ?? []), JSON.stringify(input.scope ?? {}), input.authorNote ?? "", timestamp, timestamp);
1694
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, settingId, workId, input.title, input.category, content, JSON.stringify(input.tags ?? []), input.status ?? "draft", input.locked ? 1 : 0, JSON.stringify(input.evidence ?? []), JSON.stringify(input.scope ?? {}), input.authorNote ?? "", timestamp, timestamp);
1695
+ this.syncMarkdownAttachmentReferences(workId, "setting", settingId, content);
1626
1696
  this.recordEntityVersion("setting", settingId, source, sourceRef, changeNote || "建立世界观设定", timestamp);
1627
1697
  this.audit(workId, source === "restore" ? "setting.restored" : "setting.created", "setting", settingId, {
1628
1698
  locked: input.locked ?? false,
@@ -1650,10 +1720,12 @@ export class Store {
1650
1720
  }
1651
1721
  updateSetting(settingId, input, source = "manual", sourceRef = null, changeNote = "", expectedVersionNo) {
1652
1722
  const current = this.getSetting(settingId);
1723
+ const content = input.content ?? String(current.content);
1653
1724
  this.db.transaction(() => {
1654
1725
  this.assertExpectedVersion("setting", settingId, expectedVersionNo, "设定");
1655
1726
  this.db.run(`UPDATE settings SET title = ?, category = ?, content = ?, tags_json = ?, status = ?, locked = ?,
1656
- evidence_json = ?, scope_json = ?, author_note = ?, updated_at = ? WHERE id = ?`, input.title ?? String(current.title), input.category ?? String(current.category), input.content ?? String(current.content), JSON.stringify(input.tags ?? current.tags), input.status ?? String(current.status), (input.locked ?? Boolean(current.locked)) ? 1 : 0, JSON.stringify(input.evidence ?? current.evidence), JSON.stringify(input.scope ?? current.scope), input.authorNote ?? String(current.authorNote), now(), settingId);
1727
+ evidence_json = ?, scope_json = ?, author_note = ?, updated_at = ? WHERE id = ?`, input.title ?? String(current.title), input.category ?? String(current.category), content, JSON.stringify(input.tags ?? current.tags), input.status ?? String(current.status), (input.locked ?? Boolean(current.locked)) ? 1 : 0, JSON.stringify(input.evidence ?? current.evidence), JSON.stringify(input.scope ?? current.scope), input.authorNote ?? String(current.authorNote), now(), settingId);
1728
+ this.syncMarkdownAttachmentReferences(String(current.workId), "setting", settingId, content);
1657
1729
  this.recordEntityVersion("setting", settingId, source, sourceRef, changeNote || "更新世界观设定");
1658
1730
  this.audit(String(current.workId), "setting.updated", "setting", settingId, { fields: Object.keys(input), source, sourceRef });
1659
1731
  });
@@ -1664,6 +1736,7 @@ export class Store {
1664
1736
  this.db.transaction(() => {
1665
1737
  this.assertExpectedVersion("setting", settingId, expectedVersionNo, "设定");
1666
1738
  this.recordEntityVersion("setting", settingId, "delete", null, "删除世界观设定");
1739
+ this.clearMarkdownAttachmentReferences("setting", settingId);
1667
1740
  this.db.run("DELETE FROM settings WHERE id = ?", settingId);
1668
1741
  this.audit(String(current.workId), "setting.deleted", "setting", settingId);
1669
1742
  });
@@ -1701,10 +1774,13 @@ export class Store {
1701
1774
  const memberIds = [...new Set(input.memberIds ?? [])];
1702
1775
  this.assertCharactersInWork(workId, memberIds);
1703
1776
  const memberSnapshots = this.captureCharacterSnapshots(memberIds);
1777
+ const settingsSections = knowledgeSectionsFromInput(input.settingsSections, input.settingsMarkdown, input.settings);
1778
+ const settings = settingsFromKnowledgeSections(settingsSections);
1704
1779
  const timestamp = now();
1705
1780
  this.db.transaction(() => {
1706
- this.db.run(`INSERT INTO races (id, work_id, parent_race_id, name, normalized_name, description, settings_json, created_at, updated_at)
1707
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, raceId, workId, parentRaceId, name, normalizedName, input.description ?? "", JSON.stringify(input.settings ?? []), timestamp, timestamp);
1781
+ this.db.run(`INSERT INTO races (id, work_id, parent_race_id, name, normalized_name, description, settings_json, settings_sections_json, created_at, updated_at)
1782
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, raceId, workId, parentRaceId, name, normalizedName, input.description ?? "", JSON.stringify(settings), JSON.stringify(settingsSections), timestamp, timestamp);
1783
+ this.syncMarkdownAttachmentReferences(workId, "race", raceId, settingsMarkdownFromList(settings));
1708
1784
  this.replaceRaceMembers(raceId, name, memberIds);
1709
1785
  this.recordMembershipVersions(memberSnapshots, "race", raceId, `设为种族“${name}”`);
1710
1786
  this.recordEntityVersion("race", raceId, source, sourceRef, changeNote || "建立种族档案", timestamp);
@@ -1750,9 +1826,13 @@ export class Store {
1750
1826
  ? [...new Set([...current.memberIds, ...(memberIds ?? [])])]
1751
1827
  : [];
1752
1828
  const memberSnapshots = this.captureCharacterSnapshots(touchedMemberIds);
1829
+ const currentSections = knowledgeSectionsFromStored(current.settingsSections, current.settings);
1830
+ const settingsSections = knowledgeSectionsFromInput(input.settingsSections, input.settingsMarkdown, input.settings, currentSections);
1831
+ const settings = settingsFromKnowledgeSections(settingsSections);
1753
1832
  this.db.transaction(() => {
1754
1833
  this.assertExpectedVersion("race", raceId, expectedVersionNo, "种族");
1755
- this.db.run(`UPDATE races SET parent_race_id = ?, name = ?, normalized_name = ?, description = ?, settings_json = ?, updated_at = ? WHERE id = ?`, parentRaceId, name, normalizedName, input.description ?? String(current.description), JSON.stringify(input.settings ?? current.settings), now(), raceId);
1834
+ this.db.run(`UPDATE races SET parent_race_id = ?, name = ?, normalized_name = ?, description = ?, settings_json = ?, settings_sections_json = ?, updated_at = ? WHERE id = ?`, parentRaceId, name, normalizedName, input.description ?? String(current.description), JSON.stringify(settings), JSON.stringify(settingsSections), now(), raceId);
1835
+ this.syncMarkdownAttachmentReferences(workId, "race", raceId, settingsMarkdownFromList(settings));
1756
1836
  if (nameChanged)
1757
1837
  this.db.run("UPDATE characters SET species = ?, updated_at = ? WHERE race_id = ?", name, now(), raceId);
1758
1838
  if (memberIds)
@@ -1774,6 +1854,7 @@ export class Store {
1774
1854
  this.assertExpectedVersion("race", raceId, expectedVersionNo, "种族");
1775
1855
  this.recordEntityVersion("race", raceId, "delete", null, "删除种族档案");
1776
1856
  this.db.run("UPDATE characters SET race_id = NULL, species = '', updated_at = ? WHERE race_id = ?", now(), raceId);
1857
+ this.clearMarkdownAttachmentReferences("race", raceId);
1777
1858
  this.db.run("DELETE FROM races WHERE id = ?", raceId);
1778
1859
  this.recordMembershipVersions(memberSnapshots, "race", raceId, `种族“${String(current.name)}”已删除`);
1779
1860
  this.audit(String(current.workId), "race.deleted", "race", raceId);
@@ -1800,15 +1881,19 @@ export class Store {
1800
1881
  : target.parentRaceId;
1801
1882
  const descriptionParts = [String(target.description).trim(), String(source.description).trim()].filter(Boolean);
1802
1883
  const description = [...new Set(descriptionParts)].join("\n\n");
1803
- const settings = [...new Set([...target.settings, ...source.settings])];
1884
+ const settingsSections = [...knowledgeSectionsFromStored(target.settingsSections, target.settings), ...knowledgeSectionsFromStored(source.settingsSections, source.settings)]
1885
+ .map((section, index) => ({ ...section, sortOrder: index }));
1886
+ const settings = settingsFromKnowledgeSections(settingsSections);
1804
1887
  this.db.transaction(() => {
1805
1888
  this.recordEntityVersion("race", sourceRaceId, "delete", mergeId, `合并至种族“${String(target.name)}”`, timestamp);
1806
- this.db.run("UPDATE races SET parent_race_id = ?, description = ?, settings_json = ?, updated_at = ? WHERE id = ?", targetParentRaceId, description, JSON.stringify(settings), timestamp, targetRaceId);
1889
+ this.db.run("UPDATE races SET parent_race_id = ?, description = ?, settings_json = ?, settings_sections_json = ?, updated_at = ? WHERE id = ?", targetParentRaceId, description, JSON.stringify(settings), JSON.stringify(settingsSections), timestamp, targetRaceId);
1890
+ this.syncMarkdownAttachmentReferences(workId, "race", targetRaceId, settingsMarkdownFromList(settings));
1807
1891
  this.db.run("UPDATE characters SET race_id = ?, species = ?, updated_at = ? WHERE race_id = ?", targetRaceId, String(target.name), timestamp, sourceRaceId);
1808
1892
  for (const childRaceId of sourceChildren) {
1809
1893
  this.db.run("UPDATE races SET parent_race_id = ?, updated_at = ? WHERE id = ?", targetRaceId, timestamp, childRaceId);
1810
1894
  this.recordEntityVersion("race", childRaceId, "merge", mergeId, `因种族“${String(source.name)}”合并而迁移父种族`, timestamp);
1811
1895
  }
1896
+ this.clearMarkdownAttachmentReferences("race", sourceRaceId);
1812
1897
  this.db.run("DELETE FROM races WHERE id = ?", sourceRaceId);
1813
1898
  this.recordMembershipVersions(memberSnapshots, "race", targetRaceId, `合并种族“${String(source.name)}”`);
1814
1899
  this.recordEntityVersion("race", targetRaceId, "merge", mergeId, `合并种族“${String(source.name)}”`, timestamp);
@@ -1826,6 +1911,8 @@ export class Store {
1826
1911
  mapRace(row) {
1827
1912
  const raceId = requiredString(row, "id");
1828
1913
  const lineage = this.raceLineage(raceId);
1914
+ const settingsSections = knowledgeSectionsFromStored(row.settings_sections_json, json(requiredString(row, "settings_json"), []));
1915
+ const settings = settingsFromKnowledgeSections(settingsSections);
1829
1916
  const members = this.db.all("SELECT id, name FROM characters WHERE race_id = ? ORDER BY name", requiredString(row, "id")).map((member) => ({
1830
1917
  characterId: requiredString(member, "id"),
1831
1918
  name: requiredString(member, "name")
@@ -1836,10 +1923,15 @@ export class Store {
1836
1923
  parentRaceId: optionalString(row, "parent_race_id"),
1837
1924
  name: requiredString(row, "name"),
1838
1925
  description: requiredString(row, "description"),
1839
- settings: json(requiredString(row, "settings_json"), []),
1926
+ settings,
1927
+ settingsMarkdown: settingsMarkdownFromList(settings),
1928
+ settingsSections,
1840
1929
  lineage: lineage.map((item) => ({ id: item.id, name: item.name })),
1841
- effectiveSettings: lineage.flatMap((item, index) => item.settings.map((value) => ({
1842
- value,
1930
+ effectiveSettings: lineage.flatMap((item, index) => item.settingsSections.map((section) => ({
1931
+ title: section.title,
1932
+ summary: section.summary,
1933
+ sortOrder: section.sortOrder,
1934
+ value: section.contentMarkdown,
1843
1935
  sourceRaceId: item.id,
1844
1936
  sourceRaceName: item.name,
1845
1937
  inherited: index < lineage.length - 1
@@ -1889,13 +1981,15 @@ export class Store {
1889
1981
  if (seen.has(currentId))
1890
1982
  throw new AppError(500, "RACE_HIERARCHY_INVALID", "种族层级存在循环");
1891
1983
  seen.add(currentId);
1892
- const row = this.db.get("SELECT id, name, settings_json, parent_race_id FROM races WHERE id = ?", currentId);
1984
+ const row = this.db.get("SELECT id, name, settings_json, settings_sections_json, parent_race_id FROM races WHERE id = ?", currentId);
1893
1985
  if (!row)
1894
1986
  throw new AppError(500, "RACE_HIERARCHY_INVALID", "种族层级引用了不存在的父种族");
1987
+ const settingsSections = knowledgeSectionsFromStored(row.settings_sections_json, json(requiredString(row, "settings_json"), []));
1895
1988
  lineage.push({
1896
1989
  id: requiredString(row, "id"),
1897
1990
  name: requiredString(row, "name"),
1898
- settings: json(requiredString(row, "settings_json"), [])
1991
+ settings: settingsFromKnowledgeSections(settingsSections),
1992
+ settingsSections
1899
1993
  });
1900
1994
  currentId = optionalString(row, "parent_race_id");
1901
1995
  }
@@ -1921,10 +2015,13 @@ export class Store {
1921
2015
  const memberIds = [...new Set(input.memberIds ?? [])];
1922
2016
  this.assertCharactersInWork(workId, memberIds);
1923
2017
  const memberSnapshots = this.captureCharacterSnapshots(memberIds);
2018
+ const settingsSections = knowledgeSectionsFromInput(input.settingsSections, input.settingsMarkdown, input.settings);
2019
+ const settings = settingsFromKnowledgeSections(settingsSections);
1924
2020
  const timestamp = now();
1925
2021
  this.db.transaction(() => {
1926
- this.db.run(`INSERT INTO organizations (id, work_id, name, normalized_name, description, settings_json, created_at, updated_at)
1927
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, organizationId, workId, name, normalizedName, input.description ?? "", JSON.stringify(input.settings ?? []), timestamp, timestamp);
2022
+ this.db.run(`INSERT INTO organizations (id, work_id, name, normalized_name, description, settings_json, settings_sections_json, created_at, updated_at)
2023
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`, organizationId, workId, name, normalizedName, input.description ?? "", JSON.stringify(settings), JSON.stringify(settingsSections), timestamp, timestamp);
2024
+ this.syncMarkdownAttachmentReferences(workId, "organization", organizationId, settingsMarkdownFromList(settings));
1928
2025
  this.replaceOrganizationMembers(organizationId, memberIds);
1929
2026
  this.recordMembershipVersions(memberSnapshots, "organization", organizationId, `加入组织“${name}”`);
1930
2027
  this.recordEntityVersion("organization", organizationId, source, sourceRef, changeNote || "建立组织档案", timestamp);
@@ -1963,9 +2060,13 @@ export class Store {
1963
2060
  this.assertCharactersInWork(workId, memberIds);
1964
2061
  const touchedMemberIds = memberIds ? [...new Set([...current.memberIds, ...memberIds])] : [];
1965
2062
  const memberSnapshots = this.captureCharacterSnapshots(touchedMemberIds);
2063
+ const currentSections = knowledgeSectionsFromStored(current.settingsSections, current.settings);
2064
+ const settingsSections = knowledgeSectionsFromInput(input.settingsSections, input.settingsMarkdown, input.settings, currentSections);
2065
+ const settings = settingsFromKnowledgeSections(settingsSections);
1966
2066
  this.db.transaction(() => {
1967
2067
  this.assertExpectedVersion("organization", organizationId, expectedVersionNo, "组织");
1968
- this.db.run(`UPDATE organizations SET name = ?, normalized_name = ?, description = ?, settings_json = ?, updated_at = ? WHERE id = ?`, name, normalizedName, input.description ?? String(current.description), JSON.stringify(input.settings ?? current.settings), now(), organizationId);
2068
+ this.db.run(`UPDATE organizations SET name = ?, normalized_name = ?, description = ?, settings_json = ?, settings_sections_json = ?, updated_at = ? WHERE id = ?`, name, normalizedName, input.description ?? String(current.description), JSON.stringify(settings), JSON.stringify(settingsSections), now(), organizationId);
2069
+ this.syncMarkdownAttachmentReferences(workId, "organization", organizationId, settingsMarkdownFromList(settings));
1969
2070
  if (memberIds) {
1970
2071
  this.replaceOrganizationMembers(organizationId, memberIds);
1971
2072
  this.recordMembershipVersions(memberSnapshots, "organization", organizationId, `组织“${name}”成员关系变更`);
@@ -1981,6 +2082,7 @@ export class Store {
1981
2082
  this.db.transaction(() => {
1982
2083
  this.assertExpectedVersion("organization", organizationId, expectedVersionNo, "组织");
1983
2084
  this.recordEntityVersion("organization", organizationId, "delete", null, "删除组织档案");
2085
+ this.clearMarkdownAttachmentReferences("organization", organizationId);
1984
2086
  this.db.run("DELETE FROM organizations WHERE id = ?", organizationId);
1985
2087
  this.recordMembershipVersions(memberSnapshots, "organization", organizationId, `组织“${String(current.name)}”已删除`);
1986
2088
  this.audit(String(current.workId), "organization.deleted", "organization", organizationId);
@@ -2002,15 +2104,19 @@ export class Store {
2002
2104
  const memberSnapshots = this.captureCharacterSnapshots(memberIds);
2003
2105
  const descriptionParts = [String(target.description).trim(), String(source.description).trim()].filter(Boolean);
2004
2106
  const description = [...new Set(descriptionParts)].join("\n\n");
2005
- const settings = [...new Set([...target.settings, ...source.settings])];
2107
+ const settingsSections = [...knowledgeSectionsFromStored(target.settingsSections, target.settings), ...knowledgeSectionsFromStored(source.settingsSections, source.settings)]
2108
+ .map((section, index) => ({ ...section, sortOrder: index }));
2109
+ const settings = settingsFromKnowledgeSections(settingsSections);
2006
2110
  const sourceMemberships = this.db.all("SELECT character_id, role, note, created_at FROM character_organization_memberships WHERE organization_id = ?", sourceOrganizationId);
2007
2111
  this.db.transaction(() => {
2008
2112
  this.recordEntityVersion("organization", sourceOrganizationId, "delete", mergeId, `合并至组织“${String(target.name)}”`, timestamp);
2009
- this.db.run("UPDATE organizations SET description = ?, settings_json = ?, updated_at = ? WHERE id = ?", description, JSON.stringify(settings), timestamp, targetOrganizationId);
2113
+ this.db.run("UPDATE organizations SET description = ?, settings_json = ?, settings_sections_json = ?, updated_at = ? WHERE id = ?", description, JSON.stringify(settings), JSON.stringify(settingsSections), timestamp, targetOrganizationId);
2114
+ this.syncMarkdownAttachmentReferences(workId, "organization", targetOrganizationId, settingsMarkdownFromList(settings));
2010
2115
  for (const membership of sourceMemberships) {
2011
2116
  this.db.run(`INSERT INTO character_organization_memberships (character_id, organization_id, role, note, created_at, updated_at)
2012
2117
  VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT(character_id, organization_id) DO NOTHING`, requiredString(membership, "character_id"), targetOrganizationId, requiredString(membership, "role"), requiredString(membership, "note"), requiredString(membership, "created_at"), timestamp);
2013
2118
  }
2119
+ this.clearMarkdownAttachmentReferences("organization", sourceOrganizationId);
2014
2120
  this.db.run("DELETE FROM organizations WHERE id = ?", sourceOrganizationId);
2015
2121
  this.recordMembershipVersions(memberSnapshots, "organization", targetOrganizationId, `合并组织“${String(source.name)}”`);
2016
2122
  this.recordEntityVersion("organization", targetOrganizationId, "merge", mergeId, `合并组织“${String(source.name)}”`, timestamp);
@@ -2019,6 +2125,8 @@ export class Store {
2019
2125
  return { mergeId, target: this.getOrganization(targetOrganizationId), source };
2020
2126
  }
2021
2127
  mapOrganization(row) {
2128
+ const settingsSections = knowledgeSectionsFromStored(row.settings_sections_json, json(requiredString(row, "settings_json"), []));
2129
+ const settings = settingsFromKnowledgeSections(settingsSections);
2022
2130
  const members = this.db.all(`SELECT c.id, c.name, m.role, m.note
2023
2131
  FROM character_organization_memberships m
2024
2132
  JOIN characters c ON c.id = m.character_id
@@ -2033,7 +2141,9 @@ export class Store {
2033
2141
  workId: requiredString(row, "work_id"),
2034
2142
  name: requiredString(row, "name"),
2035
2143
  description: requiredString(row, "description"),
2036
- settings: json(requiredString(row, "settings_json"), []),
2144
+ settings,
2145
+ settingsMarkdown: settingsMarkdownFromList(settings),
2146
+ settingsSections,
2037
2147
  memberIds: members.map((member) => member.characterId),
2038
2148
  members,
2039
2149
  versionNo: this.currentEntityVersionNo("organization", requiredString(row, "id")),
@@ -2232,21 +2342,27 @@ export class Store {
2232
2342
  attachmentIdsInMarkdown(contentMarkdown) {
2233
2343
  return [...new Set([...contentMarkdown.matchAll(/attachment:\/\/([A-Za-z0-9_-]{1,300})/gu)].map((match) => String(match[1])))];
2234
2344
  }
2235
- syncCharacterProfileSectionAttachments(section) {
2236
- const sectionId = String(section.id);
2237
- const workId = String(section.workId);
2238
- const attachmentIds = this.attachmentIdsInMarkdown(String(section.contentMarkdown));
2345
+ syncMarkdownAttachmentReferences(workId, entityType, entityId, contentMarkdown) {
2346
+ const attachmentIds = this.attachmentIdsInMarkdown(contentMarkdown);
2239
2347
  for (const attachmentId of attachmentIds) {
2240
2348
  const attachment = this.getAttachment(attachmentId);
2241
2349
  if (attachment.workId !== workId)
2242
2350
  throw new AppError(400, "ATTACHMENT_WORK_MISMATCH", "附件不属于当前作品");
2243
2351
  }
2244
- this.db.run("DELETE FROM attachment_references WHERE entity_type = 'character-section' AND entity_id = ?", sectionId);
2352
+ this.db.run("DELETE FROM attachment_references WHERE entity_type = ? AND entity_id = ?", entityType, entityId);
2245
2353
  for (const attachmentId of attachmentIds) {
2246
2354
  this.db.run(`INSERT INTO attachment_references (attachment_id, work_id, entity_type, entity_id, created_at)
2247
- VALUES (?, ?, 'character-section', ?, ?)`, attachmentId, workId, sectionId, now());
2355
+ VALUES (?, ?, ?, ?, ?)`, attachmentId, workId, entityType, entityId, now());
2248
2356
  }
2249
2357
  }
2358
+ clearMarkdownAttachmentReferences(entityType, entityId) {
2359
+ this.db.run("DELETE FROM attachment_references WHERE entity_type = ? AND entity_id = ?", entityType, entityId);
2360
+ }
2361
+ syncCharacterProfileSectionAttachments(section) {
2362
+ const sectionId = String(section.id);
2363
+ const workId = String(section.workId);
2364
+ this.syncMarkdownAttachmentReferences(workId, "character-section", sectionId, String(section.contentMarkdown));
2365
+ }
2250
2366
  createCharacterProfileSection(characterId, input, source = "create", sourceRef = null) {
2251
2367
  const character = this.getCharacter(characterId);
2252
2368
  const sectionId = id("characterSection");
@@ -2440,7 +2556,7 @@ export class Store {
2440
2556
  const attachment = this.getAttachment(attachmentId);
2441
2557
  const references = Number(this.db.get("SELECT COUNT(*) AS count FROM attachment_references WHERE attachment_id = ?", attachmentId)?.count ?? 0);
2442
2558
  if (references > 0)
2443
- throw new AppError(409, "ATTACHMENT_IN_USE", "附件仍被人物档案章节引用,无法删除");
2559
+ throw new AppError(409, "ATTACHMENT_IN_USE", "附件仍被资料引用,无法删除");
2444
2560
  const storageKey = String(attachment.storageKey);
2445
2561
  this.db.transaction(() => {
2446
2562
  this.db.run("DELETE FROM attachments WHERE id = ?", attachmentId);
@@ -3492,14 +3608,28 @@ export class Store {
3492
3608
  }
3493
3609
  listTasks(workId) {
3494
3610
  this.getWork(workId);
3495
- return this.db.all("SELECT * FROM analysis_tasks WHERE work_id = ? ORDER BY created_at DESC", workId).map((row) => this.mapTask(row));
3611
+ return this.db.all("SELECT * FROM analysis_tasks WHERE work_id = ? ORDER BY created_at DESC, id DESC", workId).map((row) => this.mapTask(row));
3496
3612
  }
3497
3613
  listTasksPage(workId, pagination) {
3498
3614
  this.getWork(workId);
3499
3615
  const page = paginationSql(pagination);
3500
- const rows = this.db.all(`SELECT * FROM analysis_tasks WHERE work_id = ? ORDER BY created_at DESC${page.sql}`, workId, ...page.params);
3616
+ const rows = this.db.all(`SELECT * FROM analysis_tasks WHERE work_id = ? ORDER BY created_at DESC, id DESC${page.sql}`, workId, ...page.params);
3501
3617
  return paginated(rows.map((row) => this.mapTask(row)), pagination);
3502
3618
  }
3619
+ listTaskSummariesPage(workId, pagination) {
3620
+ this.getWork(workId);
3621
+ const page = paginationSql(pagination);
3622
+ const rows = this.db.all(`SELECT id, work_id, task_type, scope_json, status, progress, created_at, updated_at
3623
+ FROM analysis_tasks WHERE work_id = ? ORDER BY created_at DESC, id DESC${page.sql}`, workId, ...page.params);
3624
+ const chapterSummaries = new Map(this.db.all(`SELECT chapter.id, chapter.title, volume.title AS volume_title
3625
+ FROM chapters chapter JOIN volumes volume ON volume.id = chapter.volume_id
3626
+ WHERE chapter.work_id = ?`, workId).map((row) => [
3627
+ requiredString(row, "id"),
3628
+ `${requiredString(row, "volume_title")} · ${requiredString(row, "title")}`
3629
+ ]));
3630
+ const volumeTitles = new Map(this.db.all("SELECT id, title FROM volumes WHERE work_id = ?", workId).map((row) => [requiredString(row, "id"), requiredString(row, "title")]));
3631
+ return paginated(rows.map((row) => this.mapTaskSummary(row, chapterSummaries, volumeTitles)), pagination);
3632
+ }
3503
3633
  getTask(taskId) {
3504
3634
  const row = this.db.get("SELECT * FROM analysis_tasks WHERE id = ?", taskId);
3505
3635
  if (!row)
@@ -3589,6 +3719,31 @@ export class Store {
3589
3719
  updatedAt: requiredString(row, "updated_at")
3590
3720
  };
3591
3721
  }
3722
+ mapTaskSummary(row, chapterSummaries, volumeTitles) {
3723
+ const scope = json(requiredString(row, "scope_json"), {});
3724
+ return {
3725
+ id: requiredString(row, "id"),
3726
+ workId: requiredString(row, "work_id"),
3727
+ taskType: requiredString(row, "task_type"),
3728
+ scope,
3729
+ scopeSummary: this.taskScopeSummaryFromMaps(scope, chapterSummaries, volumeTitles),
3730
+ status: requiredString(row, "status"),
3731
+ progress: numberValue(row, "progress"),
3732
+ createdAt: requiredString(row, "created_at"),
3733
+ updatedAt: requiredString(row, "updated_at")
3734
+ };
3735
+ }
3736
+ taskScopeSummaryFromMaps(scope, chapterSummaries, volumeTitles) {
3737
+ if (typeof scope.chapterId === "string")
3738
+ return chapterSummaries.get(scope.chapterId) ?? "章节已删除";
3739
+ if (scope.type === "volume" && typeof scope.volumeId === "string") {
3740
+ const title = volumeTitles.get(scope.volumeId);
3741
+ return title ? `分卷 · ${title}` : "分卷已删除";
3742
+ }
3743
+ if (scope.type === "book" || Object.keys(scope).length === 0)
3744
+ return "全书";
3745
+ return "未指定范围";
3746
+ }
3592
3747
  taskScopeSummary(workId, scope) {
3593
3748
  if (typeof scope.chapterId === "string") {
3594
3749
  const chapter = this.db.get(`SELECT chapter.title AS title, volume.title AS volume_title