@mnaoumov/obsidian-lib 0.0.0 → 1.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 (1044) hide show
  1. package/@types/dataview/api/data-array/package.json +4 -0
  2. package/@types/dataview/api/extensions/package.json +4 -0
  3. package/@types/dataview/api/inline-api/package.json +4 -0
  4. package/@types/dataview/api/plugin-api/package.json +4 -0
  5. package/@types/dataview/api/result/package.json +4 -0
  6. package/@types/dataview/data-import/common/package.json +4 -0
  7. package/@types/dataview/data-import/csv/package.json +4 -0
  8. package/@types/dataview/data-import/inline-field/package.json +4 -0
  9. package/@types/dataview/data-import/markdown-file/package.json +4 -0
  10. package/@types/dataview/data-import/persister/package.json +4 -0
  11. package/@types/dataview/data-import/web-worker/import-entry/package.json +4 -0
  12. package/@types/dataview/data-import/web-worker/import-impl/package.json +4 -0
  13. package/@types/dataview/data-import/web-worker/import-manager/package.json +4 -0
  14. package/@types/dataview/data-index/index/package.json +4 -0
  15. package/@types/dataview/data-index/package.json +4 -0
  16. package/@types/dataview/data-index/resolver/package.json +4 -0
  17. package/@types/dataview/data-index/source/package.json +4 -0
  18. package/@types/dataview/data-model/markdown/package.json +4 -0
  19. package/@types/dataview/data-model/serialized/markdown/package.json +4 -0
  20. package/@types/dataview/data-model/transferable/package.json +4 -0
  21. package/@types/dataview/data-model/value/package.json +4 -0
  22. package/@types/dataview/expression/binaryop/package.json +4 -0
  23. package/@types/dataview/expression/context/package.json +4 -0
  24. package/@types/dataview/expression/field/package.json +4 -0
  25. package/@types/dataview/expression/functions/package.json +4 -0
  26. package/@types/dataview/expression/parse/package.json +4 -0
  27. package/@types/dataview/index/package.json +4 -0
  28. package/@types/dataview/main/package.json +4 -0
  29. package/@types/dataview/package.json +4 -0
  30. package/@types/dataview/query/engine/package.json +4 -0
  31. package/@types/dataview/query/parse/package.json +4 -0
  32. package/@types/dataview/query/query/package.json +4 -0
  33. package/@types/dataview/settings/package.json +4 -0
  34. package/@types/dataview/typings/obsidian-ex/package.json +4 -0
  35. package/@types/dataview/typings/workers/package.json +4 -0
  36. package/@types/dataview/ui/export/markdown/package.json +4 -0
  37. package/@types/dataview/ui/lp-render/package.json +4 -0
  38. package/@types/dataview/ui/markdown/package.json +4 -0
  39. package/@types/dataview/ui/refreshable-view/package.json +4 -0
  40. package/@types/dataview/ui/render/package.json +4 -0
  41. package/@types/dataview/ui/views/calendar-view/package.json +4 -0
  42. package/@types/dataview/ui/views/inline-field-live-preview/package.json +4 -0
  43. package/@types/dataview/ui/views/inline-view/package.json +4 -0
  44. package/@types/dataview/ui/views/js-view/package.json +4 -0
  45. package/@types/dataview/ui/views/list-view/package.json +4 -0
  46. package/@types/dataview/ui/views/table-view/package.json +4 -0
  47. package/@types/dataview/ui/views/task-view/package.json +4 -0
  48. package/@types/dataview/util/hash/package.json +4 -0
  49. package/@types/dataview/util/locale/package.json +4 -0
  50. package/@types/dataview/util/media/package.json +4 -0
  51. package/@types/dataview/util/normalize/package.json +4 -0
  52. package/@types/i18next/package.json +4 -0
  53. package/@types/obsidian-integration-testing/package.json +4 -0
  54. package/@types/original-fs/package.json +4 -0
  55. package/LICENSE +21 -0
  56. package/README.md +7 -1
  57. package/codemirror/index/package.json +6 -0
  58. package/codemirror/package.json +6 -0
  59. package/codemirror/state-field-spec/package.json +6 -0
  60. package/command-handlers/abstract-file-command-handler/package.json +6 -0
  61. package/command-handlers/command-handler/package.json +6 -0
  62. package/command-handlers/command-handler-component/package.json +6 -0
  63. package/command-handlers/editor-command-handler/package.json +6 -0
  64. package/command-handlers/file-command-handler/package.json +6 -0
  65. package/command-handlers/folder-command-handler/package.json +6 -0
  66. package/command-handlers/global-command-handler/package.json +6 -0
  67. package/command-handlers/index/package.json +6 -0
  68. package/command-handlers/open-demo-vault-command-handler/package.json +6 -0
  69. package/command-handlers/open-settings-command-handler/package.json +6 -0
  70. package/command-handlers/package.json +6 -0
  71. package/command-handlers/unlock-active-note-command-handler/package.json +6 -0
  72. package/components/abort-signal-component/package.json +6 -0
  73. package/components/all-windows-event-component/package.json +6 -0
  74. package/components/async-error-handler-component/package.json +6 -0
  75. package/components/async-events-component/package.json +6 -0
  76. package/components/case-insensitive-file-index-component/package.json +6 -0
  77. package/components/component-ex/package.json +6 -0
  78. package/components/console-debug-component/package.json +6 -0
  79. package/components/core-plugin-toggle-component/package.json +6 -0
  80. package/components/disposable-component/package.json +6 -0
  81. package/components/embed-extensions-component/package.json +6 -0
  82. package/components/generate-markdown-link-default-params-component/package.json +6 -0
  83. package/components/index/package.json +6 -0
  84. package/components/layout-ready-component/package.json +6 -0
  85. package/components/menu-event-registrar-component/package.json +6 -0
  86. package/components/monkey-around-component/package.json +6 -0
  87. package/components/notebook-navigator-menu-event-registrar-component/package.json +6 -0
  88. package/components/package.json +6 -0
  89. package/components/plugin-context-component/package.json +6 -0
  90. package/components/plugin-gate-component/package.json +6 -0
  91. package/components/plugin-notice-component/package.json +6 -0
  92. package/components/plugin-settings-component/package.json +6 -0
  93. package/components/plugin-settings-tab-component/package.json +6 -0
  94. package/components/plugin-suggestion-component/package.json +6 -0
  95. package/components/pointer-position-component/package.json +6 -0
  96. package/components/registry-component/package.json +6 -0
  97. package/components/release-notes-component/package.json +6 -0
  98. package/components/rename-delete-handler-component/package.json +6 -0
  99. package/components/rmdir-guard-component/package.json +6 -0
  100. package/components/settings-migration-component/package.json +6 -0
  101. package/components/syntax-highlighting-component/package.json +6 -0
  102. package/components/templates-language-component/package.json +6 -0
  103. package/constructors/get-dom-events-handlers-constructor/package.json +6 -0
  104. package/constructors/index/package.json +6 -0
  105. package/constructors/package.json +6 -0
  106. package/dist/lib/cjs/@types/dataview/api/data-array.d.cts +137 -0
  107. package/dist/lib/cjs/@types/dataview/api/extensions.d.cts +16 -0
  108. package/dist/lib/cjs/@types/dataview/api/inline-api.d.cts +187 -0
  109. package/dist/lib/cjs/@types/dataview/api/plugin-api.d.cts +210 -0
  110. package/dist/lib/cjs/@types/dataview/api/result.d.cts +39 -0
  111. package/dist/lib/cjs/@types/dataview/data-import/common.d.cts +4 -0
  112. package/dist/lib/cjs/@types/dataview/data-import/csv.d.cts +4 -0
  113. package/dist/lib/cjs/@types/dataview/data-import/inline-field.d.cts +43 -0
  114. package/dist/lib/cjs/@types/dataview/data-import/markdown-file.d.cts +53 -0
  115. package/dist/lib/cjs/@types/dataview/data-import/persister.d.cts +33 -0
  116. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-entry.d.cts +2 -0
  117. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-impl.d.cts +7 -0
  118. package/dist/lib/cjs/@types/dataview/data-import/web-worker/import-manager.d.cts +38 -0
  119. package/dist/lib/cjs/@types/dataview/data-index/index.d.cts +187 -0
  120. package/dist/lib/cjs/@types/dataview/data-index/resolver.d.cts +24 -0
  121. package/dist/lib/cjs/@types/dataview/data-index/source.d.cts +72 -0
  122. package/dist/lib/cjs/@types/dataview/data-model/markdown.d.cts +116 -0
  123. package/dist/lib/cjs/@types/dataview/data-model/serialized/markdown.d.cts +107 -0
  124. package/dist/lib/cjs/@types/dataview/data-model/transferable.d.cts +8 -0
  125. package/dist/lib/cjs/@types/dataview/data-model/value.d.cts +176 -0
  126. package/dist/lib/cjs/@types/dataview/expression/binaryop.d.cts +44 -0
  127. package/dist/lib/cjs/@types/dataview/expression/context.d.cts +50 -0
  128. package/dist/lib/cjs/@types/dataview/expression/field.d.cts +83 -0
  129. package/dist/lib/cjs/@types/dataview/expression/functions.d.cts +150 -0
  130. package/dist/lib/cjs/@types/dataview/expression/parse.d.cts +164 -0
  131. package/dist/lib/cjs/@types/dataview/index.d.cts +56 -0
  132. package/dist/lib/cjs/@types/dataview/main.d.cts +53 -0
  133. package/dist/lib/cjs/@types/dataview/query/engine.d.cts +104 -0
  134. package/dist/lib/cjs/@types/dataview/query/parse.d.cts +45 -0
  135. package/dist/lib/cjs/@types/dataview/query/query.d.cts +96 -0
  136. package/dist/lib/cjs/@types/dataview/settings.d.cts +61 -0
  137. package/dist/lib/cjs/@types/dataview/typings/obsidian-ex.d.cts +29 -0
  138. package/dist/lib/cjs/@types/dataview/typings/workers.d.cts +5 -0
  139. package/dist/lib/cjs/@types/dataview/ui/export/markdown.d.cts +16 -0
  140. package/dist/lib/cjs/@types/dataview/ui/lp-render.d.cts +38 -0
  141. package/dist/lib/cjs/@types/dataview/ui/markdown.d.cts +87 -0
  142. package/dist/lib/cjs/@types/dataview/ui/refreshable-view.d.cts +19 -0
  143. package/dist/lib/cjs/@types/dataview/ui/render.d.cts +34 -0
  144. package/dist/lib/cjs/@types/dataview/ui/views/calendar-view.d.cts +18 -0
  145. package/dist/lib/cjs/@types/dataview/ui/views/inline-field-live-preview.d.cts +43 -0
  146. package/dist/lib/cjs/@types/dataview/ui/views/inline-view.d.cts +29 -0
  147. package/dist/lib/cjs/@types/dataview/ui/views/js-view.d.cts +24 -0
  148. package/dist/lib/cjs/@types/dataview/ui/views/list-view.d.cts +26 -0
  149. package/dist/lib/cjs/@types/dataview/ui/views/table-view.d.cts +29 -0
  150. package/dist/lib/cjs/@types/dataview/ui/views/task-view.d.cts +52 -0
  151. package/dist/lib/cjs/@types/dataview/util/hash.d.cts +2 -0
  152. package/dist/lib/cjs/@types/dataview/util/locale.d.cts +3 -0
  153. package/dist/lib/cjs/@types/dataview/util/media.d.cts +7 -0
  154. package/dist/lib/cjs/@types/dataview/util/normalize.d.cts +45 -0
  155. package/dist/lib/cjs/@types/i18next.d.cts +14 -0
  156. package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +29 -0
  157. package/dist/lib/cjs/@types/original-fs.d.cts +15 -0
  158. package/dist/lib/cjs/__merged.cjs +1680 -0
  159. package/dist/lib/cjs/__merged.d.cts +205 -0
  160. package/dist/lib/cjs/active-file-provider.cjs +185 -0
  161. package/dist/lib/cjs/active-file-provider.d.cts +36 -0
  162. package/dist/lib/cjs/app.cjs +177 -0
  163. package/dist/lib/cjs/app.d.cts +17 -0
  164. package/dist/lib/cjs/async-with-notice.cjs +259 -0
  165. package/dist/lib/cjs/async-with-notice.d.cts +113 -0
  166. package/dist/lib/cjs/attachment-path.cjs +403 -0
  167. package/dist/lib/cjs/attachment-path.d.cts +341 -0
  168. package/dist/lib/cjs/attachment-unit-folder.cjs +192 -0
  169. package/dist/lib/cjs/attachment-unit-folder.d.cts +103 -0
  170. package/dist/lib/cjs/backlink-index.cjs +273 -0
  171. package/dist/lib/cjs/backlink-index.d.cts +51 -0
  172. package/dist/lib/cjs/backlink.cjs +241 -0
  173. package/dist/lib/cjs/backlink.d.cts +66 -0
  174. package/dist/lib/cjs/bases-view-registrar.cjs +186 -0
  175. package/dist/lib/cjs/bases-view-registrar.d.cts +52 -0
  176. package/dist/lib/cjs/callout.cjs +244 -0
  177. package/dist/lib/cjs/callout.d.cts +76 -0
  178. package/dist/lib/cjs/canvas.cjs +239 -0
  179. package/dist/lib/cjs/canvas.d.cts +28 -0
  180. package/dist/lib/cjs/case-insensitive-file-index.cjs +268 -0
  181. package/dist/lib/cjs/case-insensitive-file-index.d.cts +92 -0
  182. package/dist/lib/cjs/code-block-markdown-information.cjs +155 -0
  183. package/dist/lib/cjs/code-block-markdown-information.d.cts +48 -0
  184. package/dist/lib/cjs/code-block-reg-exp.cjs +169 -0
  185. package/dist/lib/cjs/code-block-reg-exp.d.cts +39 -0
  186. package/dist/lib/cjs/codemirror/index.cjs +177 -0
  187. package/dist/lib/cjs/codemirror/index.d.cts +2 -0
  188. package/dist/lib/cjs/codemirror/state-field-spec.cjs +155 -0
  189. package/dist/lib/cjs/codemirror/state-field-spec.d.cts +72 -0
  190. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.cjs +440 -0
  191. package/dist/lib/cjs/command-handlers/abstract-file-command-handler.d.cts +274 -0
  192. package/dist/lib/cjs/command-handlers/command-handler-component.cjs +302 -0
  193. package/dist/lib/cjs/command-handlers/command-handler-component.d.cts +146 -0
  194. package/dist/lib/cjs/command-handlers/command-handler.cjs +224 -0
  195. package/dist/lib/cjs/command-handlers/command-handler.d.cts +107 -0
  196. package/dist/lib/cjs/command-handlers/editor-command-handler.cjs +372 -0
  197. package/dist/lib/cjs/command-handlers/editor-command-handler.d.cts +208 -0
  198. package/dist/lib/cjs/command-handlers/file-command-handler.cjs +309 -0
  199. package/dist/lib/cjs/command-handlers/file-command-handler.d.cts +143 -0
  200. package/dist/lib/cjs/command-handlers/folder-command-handler.cjs +317 -0
  201. package/dist/lib/cjs/command-handlers/folder-command-handler.d.cts +149 -0
  202. package/dist/lib/cjs/command-handlers/global-command-handler.cjs +209 -0
  203. package/dist/lib/cjs/command-handlers/global-command-handler.d.cts +40 -0
  204. package/dist/lib/cjs/command-handlers/index.cjs +204 -0
  205. package/dist/lib/cjs/command-handlers/index.d.cts +11 -0
  206. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.cjs +233 -0
  207. package/dist/lib/cjs/command-handlers/open-demo-vault-command-handler.d.cts +73 -0
  208. package/dist/lib/cjs/command-handlers/open-settings-command-handler.cjs +198 -0
  209. package/dist/lib/cjs/command-handlers/open-settings-command-handler.d.cts +44 -0
  210. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.cjs +211 -0
  211. package/dist/lib/cjs/command-handlers/unlock-active-note-command-handler.d.cts +54 -0
  212. package/dist/lib/cjs/command-registrar.cjs +193 -0
  213. package/dist/lib/cjs/command-registrar.d.cts +48 -0
  214. package/dist/lib/cjs/community-plugins.cjs +346 -0
  215. package/dist/lib/cjs/community-plugins.d.cts +270 -0
  216. package/dist/lib/cjs/components/abort-signal-component.cjs +196 -0
  217. package/dist/lib/cjs/components/abort-signal-component.d.cts +30 -0
  218. package/dist/lib/cjs/components/all-windows-event-component.cjs +238 -0
  219. package/dist/lib/cjs/components/all-windows-event-component.d.cts +84 -0
  220. package/dist/lib/cjs/components/async-error-handler-component.cjs +200 -0
  221. package/dist/lib/cjs/components/async-error-handler-component.d.cts +30 -0
  222. package/dist/lib/cjs/components/async-events-component.cjs +172 -0
  223. package/dist/lib/cjs/components/async-events-component.d.cts +15 -0
  224. package/dist/lib/cjs/components/case-insensitive-file-index-component.cjs +210 -0
  225. package/dist/lib/cjs/components/case-insensitive-file-index-component.d.cts +36 -0
  226. package/dist/lib/cjs/components/component-ex.cjs +528 -0
  227. package/dist/lib/cjs/components/component-ex.d.cts +229 -0
  228. package/dist/lib/cjs/components/console-debug-component.cjs +194 -0
  229. package/dist/lib/cjs/components/console-debug-component.d.cts +30 -0
  230. package/dist/lib/cjs/components/core-plugin-toggle-component.cjs +226 -0
  231. package/dist/lib/cjs/components/core-plugin-toggle-component.d.cts +102 -0
  232. package/dist/lib/cjs/components/disposable-component.cjs +178 -0
  233. package/dist/lib/cjs/components/disposable-component.d.cts +24 -0
  234. package/dist/lib/cjs/components/embed-extensions-component.cjs +198 -0
  235. package/dist/lib/cjs/components/embed-extensions-component.d.cts +38 -0
  236. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.cjs +194 -0
  237. package/dist/lib/cjs/components/generate-markdown-link-default-params-component.d.cts +42 -0
  238. package/dist/lib/cjs/components/index.cjs +261 -0
  239. package/dist/lib/cjs/components/index.d.cts +30 -0
  240. package/dist/lib/cjs/components/layout-ready-component.cjs +235 -0
  241. package/dist/lib/cjs/components/layout-ready-component.d.cts +48 -0
  242. package/dist/lib/cjs/components/menu-event-registrar-component.cjs +220 -0
  243. package/dist/lib/cjs/components/menu-event-registrar-component.d.cts +52 -0
  244. package/dist/lib/cjs/components/monkey-around-component.cjs +269 -0
  245. package/dist/lib/cjs/components/monkey-around-component.d.cts +241 -0
  246. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.cjs +345 -0
  247. package/dist/lib/cjs/components/notebook-navigator-menu-event-registrar-component.d.cts +150 -0
  248. package/dist/lib/cjs/components/plugin-context-component.cjs +204 -0
  249. package/dist/lib/cjs/components/plugin-context-component.d.cts +36 -0
  250. package/dist/lib/cjs/components/plugin-gate-component.cjs +572 -0
  251. package/dist/lib/cjs/components/plugin-gate-component.d.cts +332 -0
  252. package/dist/lib/cjs/components/plugin-notice-component.cjs +653 -0
  253. package/dist/lib/cjs/components/plugin-notice-component.d.cts +362 -0
  254. package/dist/lib/cjs/components/plugin-settings-component.cjs +668 -0
  255. package/dist/lib/cjs/components/plugin-settings-component.d.cts +362 -0
  256. package/dist/lib/cjs/components/plugin-settings-tab-component.cjs +194 -0
  257. package/dist/lib/cjs/components/plugin-settings-tab-component.d.cts +39 -0
  258. package/dist/lib/cjs/components/plugin-suggestion-component.cjs +302 -0
  259. package/dist/lib/cjs/components/plugin-suggestion-component.d.cts +162 -0
  260. package/dist/lib/cjs/components/pointer-position-component.cjs +190 -0
  261. package/dist/lib/cjs/components/pointer-position-component.d.cts +29 -0
  262. package/dist/lib/cjs/components/registry-component.cjs +211 -0
  263. package/dist/lib/cjs/components/registry-component.d.cts +37 -0
  264. package/dist/lib/cjs/components/release-notes-component.cjs +249 -0
  265. package/dist/lib/cjs/components/release-notes-component.d.cts +129 -0
  266. package/dist/lib/cjs/components/rename-delete-handler-component.cjs +1299 -0
  267. package/dist/lib/cjs/components/rename-delete-handler-component.d.cts +165 -0
  268. package/dist/lib/cjs/components/rmdir-guard-component.cjs +214 -0
  269. package/dist/lib/cjs/components/rmdir-guard-component.d.cts +76 -0
  270. package/dist/lib/cjs/components/settings-migration-component.cjs +246 -0
  271. package/dist/lib/cjs/components/settings-migration-component.d.cts +120 -0
  272. package/dist/lib/cjs/components/syntax-highlighting-component.cjs +272 -0
  273. package/dist/lib/cjs/components/syntax-highlighting-component.d.cts +149 -0
  274. package/dist/lib/cjs/components/templates-language-component.cjs +300 -0
  275. package/dist/lib/cjs/components/templates-language-component.d.cts +124 -0
  276. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.cjs +270 -0
  277. package/dist/lib/cjs/constructors/get-dom-events-handlers-constructor.d.cts +22 -0
  278. package/dist/lib/cjs/constructors/index.cjs +177 -0
  279. package/dist/lib/cjs/constructors/index.d.cts +2 -0
  280. package/dist/lib/cjs/css-class.cjs +232 -0
  281. package/dist/lib/cjs/css-class.d.cts +278 -0
  282. package/dist/lib/cjs/data-handler.cjs +194 -0
  283. package/dist/lib/cjs/data-handler.d.cts +49 -0
  284. package/dist/lib/cjs/dataview-link.cjs +184 -0
  285. package/dist/lib/cjs/dataview-link.d.cts +42 -0
  286. package/dist/lib/cjs/dataview.cjs +403 -0
  287. package/dist/lib/cjs/dataview.d.cts +249 -0
  288. package/dist/lib/cjs/debug.cjs +172 -0
  289. package/dist/lib/cjs/debug.d.cts +19 -0
  290. package/dist/lib/cjs/demo-vault-helper-settings.cjs +155 -0
  291. package/dist/lib/cjs/demo-vault-helper-settings.d.cts +29 -0
  292. package/dist/lib/cjs/demo-vault-helper.cjs +256 -0
  293. package/dist/lib/cjs/demo-vault-helper.d.cts +61 -0
  294. package/dist/lib/cjs/demo-vault-naming.cjs +181 -0
  295. package/dist/lib/cjs/demo-vault-naming.d.cts +54 -0
  296. package/dist/lib/cjs/desktop-demo-vault-opener.cjs +372 -0
  297. package/dist/lib/cjs/desktop-demo-vault-opener.d.cts +76 -0
  298. package/dist/lib/cjs/desktop-trusted-input.cjs +325 -0
  299. package/dist/lib/cjs/desktop-trusted-input.d.cts +288 -0
  300. package/dist/lib/cjs/editor-extension-registrar.cjs +186 -0
  301. package/dist/lib/cjs/editor-extension-registrar.d.cts +37 -0
  302. package/dist/lib/cjs/editor-suggest-registrar.cjs +186 -0
  303. package/dist/lib/cjs/editor-suggest-registrar.d.cts +36 -0
  304. package/dist/lib/cjs/editor.cjs +224 -0
  305. package/dist/lib/cjs/editor.d.cts +45 -0
  306. package/dist/lib/cjs/events.cjs +196 -0
  307. package/dist/lib/cjs/events.d.cts +98 -0
  308. package/dist/lib/cjs/extensions-registrar.cjs +186 -0
  309. package/dist/lib/cjs/extensions-registrar.d.cts +51 -0
  310. package/dist/lib/cjs/file-change.cjs +582 -0
  311. package/dist/lib/cjs/file-change.d.cts +156 -0
  312. package/dist/lib/cjs/file-explorer.cjs +181 -0
  313. package/dist/lib/cjs/file-explorer.d.cts +34 -0
  314. package/dist/lib/cjs/file-manager.cjs +275 -0
  315. package/dist/lib/cjs/file-manager.d.cts +123 -0
  316. package/dist/lib/cjs/file-system.cjs +595 -0
  317. package/dist/lib/cjs/file-system.d.cts +554 -0
  318. package/dist/lib/cjs/folder-note.cjs +285 -0
  319. package/dist/lib/cjs/folder-note.d.cts +166 -0
  320. package/dist/lib/cjs/frontmatter-formatting.cjs +472 -0
  321. package/dist/lib/cjs/frontmatter-formatting.d.cts +44 -0
  322. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.cjs +183 -0
  323. package/dist/lib/cjs/frontmatter-link-cache-with-offsets.d.cts +34 -0
  324. package/dist/lib/cjs/frontmatter.cjs +295 -0
  325. package/dist/lib/cjs/frontmatter.d.cts +145 -0
  326. package/dist/lib/cjs/generated-during-build.cjs +170 -0
  327. package/dist/lib/cjs/generated-during-build.d.cts +19 -0
  328. package/dist/lib/cjs/hover-link-source-registrar.cjs +186 -0
  329. package/dist/lib/cjs/hover-link-source-registrar.d.cts +52 -0
  330. package/dist/lib/cjs/html-element.cjs +207 -0
  331. package/dist/lib/cjs/html-element.d.cts +98 -0
  332. package/dist/lib/cjs/i18n/custom-type-options.cjs +156 -0
  333. package/dist/lib/cjs/i18n/custom-type-options.d.cts +38 -0
  334. package/dist/lib/cjs/i18n/default-translations.cjs +156 -0
  335. package/dist/lib/cjs/i18n/default-translations.d.cts +15 -0
  336. package/dist/lib/cjs/i18n/i18n.cjs +216 -0
  337. package/dist/lib/cjs/i18n/i18n.d.cts +38 -0
  338. package/dist/lib/cjs/i18n/index.cjs +186 -0
  339. package/dist/lib/cjs/i18n/index.d.cts +5 -0
  340. package/dist/lib/cjs/i18n/locales/en.cjs +248 -0
  341. package/dist/lib/cjs/i18n/locales/en.d.cts +91 -0
  342. package/dist/lib/cjs/i18n/locales/index.cjs +180 -0
  343. package/dist/lib/cjs/i18n/locales/index.d.cts +3 -0
  344. package/dist/lib/cjs/i18n/locales/translations-map.cjs +174 -0
  345. package/dist/lib/cjs/i18n/locales/translations-map.d.cts +100 -0
  346. package/dist/lib/cjs/index.cjs +459 -0
  347. package/dist/lib/cjs/index.d.cts +96 -0
  348. package/dist/lib/cjs/is-in-obsidian.cjs +178 -0
  349. package/dist/lib/cjs/is-in-obsidian.d.cts +12 -0
  350. package/dist/lib/cjs/library-styles.cjs +197 -0
  351. package/dist/lib/cjs/library-styles.d.cts +56 -0
  352. package/dist/lib/cjs/library.cjs +205 -0
  353. package/dist/lib/cjs/library.d.cts +57 -0
  354. package/dist/lib/cjs/link-name.cjs +169 -0
  355. package/dist/lib/cjs/link-name.d.cts +23 -0
  356. package/dist/lib/cjs/link-update-progress.cjs +155 -0
  357. package/dist/lib/cjs/link-update-progress.d.cts +32 -0
  358. package/dist/lib/cjs/link.cjs +1077 -0
  359. package/dist/lib/cjs/link.d.cts +1369 -0
  360. package/dist/lib/cjs/logger.cjs +236 -0
  361. package/dist/lib/cjs/logger.d.cts +37 -0
  362. package/dist/lib/cjs/loop.cjs +267 -0
  363. package/dist/lib/cjs/loop.d.cts +104 -0
  364. package/dist/lib/cjs/markdown-code-block-processor-registrar.cjs +190 -0
  365. package/dist/lib/cjs/markdown-code-block-processor-registrar.d.cts +62 -0
  366. package/dist/lib/cjs/markdown-code-block-processor.cjs +468 -0
  367. package/dist/lib/cjs/markdown-code-block-processor.d.cts +137 -0
  368. package/dist/lib/cjs/markdown-post-processor-registrar.cjs +187 -0
  369. package/dist/lib/cjs/markdown-post-processor-registrar.d.cts +59 -0
  370. package/dist/lib/cjs/markdown-view.cjs +175 -0
  371. package/dist/lib/cjs/markdown-view.d.cts +14 -0
  372. package/dist/lib/cjs/markdown.cjs +494 -0
  373. package/dist/lib/cjs/markdown.d.cts +226 -0
  374. package/dist/lib/cjs/menu-event-registrar.cjs +155 -0
  375. package/dist/lib/cjs/menu-event-registrar.d.cts +84 -0
  376. package/dist/lib/cjs/metadata-cache.cjs +568 -0
  377. package/dist/lib/cjs/metadata-cache.d.cts +359 -0
  378. package/dist/lib/cjs/mobile-trusted-input.cjs +209 -0
  379. package/dist/lib/cjs/mobile-trusted-input.d.cts +98 -0
  380. package/dist/lib/cjs/modals/alert.cjs +202 -0
  381. package/dist/lib/cjs/modals/alert.d.cts +35 -0
  382. package/dist/lib/cjs/modals/confirm.cjs +212 -0
  383. package/dist/lib/cjs/modals/confirm.d.cts +39 -0
  384. package/dist/lib/cjs/modals/index.cjs +201 -0
  385. package/dist/lib/cjs/modals/index.d.cts +10 -0
  386. package/dist/lib/cjs/modals/minimizable-modal.cjs +465 -0
  387. package/dist/lib/cjs/modals/minimizable-modal.d.cts +129 -0
  388. package/dist/lib/cjs/modals/modal-command-builder.cjs +482 -0
  389. package/dist/lib/cjs/modals/modal-command-builder.d.cts +285 -0
  390. package/dist/lib/cjs/modals/modal.cjs +200 -0
  391. package/dist/lib/cjs/modals/modal.d.cts +64 -0
  392. package/dist/lib/cjs/modals/prompt.cjs +280 -0
  393. package/dist/lib/cjs/modals/prompt.d.cts +83 -0
  394. package/dist/lib/cjs/modals/select-item.cjs +225 -0
  395. package/dist/lib/cjs/modals/select-item.d.cts +55 -0
  396. package/dist/lib/cjs/modals/select-option.cjs +213 -0
  397. package/dist/lib/cjs/modals/select-option.d.cts +65 -0
  398. package/dist/lib/cjs/modals/suggest-modal-command-builder.cjs +168 -0
  399. package/dist/lib/cjs/modals/suggest-modal-command-builder.d.cts +35 -0
  400. package/dist/lib/cjs/note-priority.cjs +258 -0
  401. package/dist/lib/cjs/note-priority.d.cts +154 -0
  402. package/dist/lib/cjs/notebook-navigator.cjs +187 -0
  403. package/dist/lib/cjs/notebook-navigator.d.cts +132 -0
  404. package/dist/lib/cjs/obsidian-dev-utils-state.cjs +199 -0
  405. package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +42 -0
  406. package/dist/lib/cjs/obsidian-protocol-handler-registrar.cjs +189 -0
  407. package/dist/lib/cjs/obsidian-protocol-handler-registrar.d.cts +55 -0
  408. package/dist/lib/cjs/obsidian-settings.cjs +206 -0
  409. package/dist/lib/cjs/obsidian-settings.d.cts +62 -0
  410. package/dist/lib/cjs/parse-link.cjs +562 -0
  411. package/dist/lib/cjs/parse-link.d.cts +288 -0
  412. package/dist/lib/cjs/path-settings.cjs +293 -0
  413. package/dist/lib/cjs/path-settings.d.cts +56 -0
  414. package/dist/lib/cjs/pdf.cjs +197 -0
  415. package/dist/lib/cjs/pdf.d.cts +26 -0
  416. package/dist/lib/cjs/plugin/index.cjs +198 -0
  417. package/dist/lib/cjs/plugin/index.d.cts +9 -0
  418. package/dist/lib/cjs/plugin/plugin-api.cjs +543 -0
  419. package/dist/lib/cjs/plugin/plugin-api.d.cts +413 -0
  420. package/dist/lib/cjs/plugin/plugin-context.cjs +215 -0
  421. package/dist/lib/cjs/plugin/plugin-context.d.cts +27 -0
  422. package/dist/lib/cjs/plugin/plugin-event-source.cjs +250 -0
  423. package/dist/lib/cjs/plugin/plugin-event-source.d.cts +97 -0
  424. package/dist/lib/cjs/plugin/plugin-install-state.cjs +219 -0
  425. package/dist/lib/cjs/plugin/plugin-install-state.d.cts +113 -0
  426. package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +175 -0
  427. package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +127 -0
  428. package/dist/lib/cjs/plugin/plugin-settings-tab.cjs +635 -0
  429. package/dist/lib/cjs/plugin/plugin-settings-tab.d.cts +368 -0
  430. package/dist/lib/cjs/plugin/plugin.cjs +730 -0
  431. package/dist/lib/cjs/plugin/plugin.d.cts +363 -0
  432. package/dist/lib/cjs/plugin/settings-migration-api.cjs +155 -0
  433. package/dist/lib/cjs/plugin/settings-migration-api.d.cts +91 -0
  434. package/dist/lib/cjs/plugin-cli-handler-registrar.cjs +187 -0
  435. package/dist/lib/cjs/plugin-cli-handler-registrar.d.cts +64 -0
  436. package/dist/lib/cjs/popovers/field-popover.cjs +206 -0
  437. package/dist/lib/cjs/popovers/field-popover.d.cts +75 -0
  438. package/dist/lib/cjs/popovers/index.cjs +183 -0
  439. package/dist/lib/cjs/popovers/index.d.cts +4 -0
  440. package/dist/lib/cjs/popovers/popover-anchor.cjs +206 -0
  441. package/dist/lib/cjs/popovers/popover-anchor.d.cts +67 -0
  442. package/dist/lib/cjs/popovers/popover.cjs +253 -0
  443. package/dist/lib/cjs/popovers/popover.d.cts +78 -0
  444. package/dist/lib/cjs/property-entry.cjs +196 -0
  445. package/dist/lib/cjs/property-entry.d.cts +43 -0
  446. package/dist/lib/cjs/queue.cjs +236 -0
  447. package/dist/lib/cjs/queue.d.cts +93 -0
  448. package/dist/lib/cjs/react/app-context.cjs +175 -0
  449. package/dist/lib/cjs/react/app-context.d.cts +24 -0
  450. package/dist/lib/cjs/react/index.cjs +177 -0
  451. package/dist/lib/cjs/react/index.d.cts +2 -0
  452. package/dist/lib/cjs/reference.cjs +210 -0
  453. package/dist/lib/cjs/reference.d.cts +116 -0
  454. package/dist/lib/cjs/resource-lock.cjs +1120 -0
  455. package/dist/lib/cjs/resource-lock.d.cts +318 -0
  456. package/dist/lib/cjs/resource-url.cjs +180 -0
  457. package/dist/lib/cjs/resource-url.d.cts +31 -0
  458. package/dist/lib/cjs/ribbon-icon-registrar.cjs +187 -0
  459. package/dist/lib/cjs/ribbon-icon-registrar.d.cts +60 -0
  460. package/dist/lib/cjs/setting-components/checkbox-component.cjs +240 -0
  461. package/dist/lib/cjs/setting-components/checkbox-component.d.cts +69 -0
  462. package/dist/lib/cjs/setting-components/code-highlighter-component.cjs +402 -0
  463. package/dist/lib/cjs/setting-components/code-highlighter-component.d.cts +132 -0
  464. package/dist/lib/cjs/setting-components/date-component.cjs +204 -0
  465. package/dist/lib/cjs/setting-components/date-component.d.cts +38 -0
  466. package/dist/lib/cjs/setting-components/date-time-component.cjs +204 -0
  467. package/dist/lib/cjs/setting-components/date-time-component.d.cts +38 -0
  468. package/dist/lib/cjs/setting-components/email-component.cjs +215 -0
  469. package/dist/lib/cjs/setting-components/email-component.d.cts +49 -0
  470. package/dist/lib/cjs/setting-components/file-component.cjs +207 -0
  471. package/dist/lib/cjs/setting-components/file-component.d.cts +43 -0
  472. package/dist/lib/cjs/setting-components/index.cjs +252 -0
  473. package/dist/lib/cjs/setting-components/index.d.cts +27 -0
  474. package/dist/lib/cjs/setting-components/month-component.cjs +212 -0
  475. package/dist/lib/cjs/setting-components/month-component.d.cts +51 -0
  476. package/dist/lib/cjs/setting-components/multiple-dropdown-component.cjs +277 -0
  477. package/dist/lib/cjs/setting-components/multiple-dropdown-component.d.cts +92 -0
  478. package/dist/lib/cjs/setting-components/multiple-email-component.cjs +201 -0
  479. package/dist/lib/cjs/setting-components/multiple-email-component.d.cts +38 -0
  480. package/dist/lib/cjs/setting-components/multiple-file-component.cjs +209 -0
  481. package/dist/lib/cjs/setting-components/multiple-file-component.d.cts +43 -0
  482. package/dist/lib/cjs/setting-components/multiple-text-component.cjs +296 -0
  483. package/dist/lib/cjs/setting-components/multiple-text-component.d.cts +109 -0
  484. package/dist/lib/cjs/setting-components/number-component.cjs +225 -0
  485. package/dist/lib/cjs/setting-components/number-component.d.cts +56 -0
  486. package/dist/lib/cjs/setting-components/password-component.cjs +201 -0
  487. package/dist/lib/cjs/setting-components/password-component.d.cts +38 -0
  488. package/dist/lib/cjs/setting-components/setting-component-wrapper.cjs +184 -0
  489. package/dist/lib/cjs/setting-components/setting-component-wrapper.d.cts +13 -0
  490. package/dist/lib/cjs/setting-components/telephone-component.cjs +215 -0
  491. package/dist/lib/cjs/setting-components/telephone-component.d.cts +51 -0
  492. package/dist/lib/cjs/setting-components/text-based-component.cjs +194 -0
  493. package/dist/lib/cjs/setting-components/text-based-component.d.cts +38 -0
  494. package/dist/lib/cjs/setting-components/time-component.cjs +209 -0
  495. package/dist/lib/cjs/setting-components/time-component.d.cts +38 -0
  496. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.cjs +241 -0
  497. package/dist/lib/cjs/setting-components/tri-state-checkbox-component.d.cts +69 -0
  498. package/dist/lib/cjs/setting-components/typed-dropdown-component.cjs +286 -0
  499. package/dist/lib/cjs/setting-components/typed-dropdown-component.d.cts +97 -0
  500. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.cjs +288 -0
  501. package/dist/lib/cjs/setting-components/typed-multiple-dropdown-component.d.cts +99 -0
  502. package/dist/lib/cjs/setting-components/typed-range-text-component.cjs +199 -0
  503. package/dist/lib/cjs/setting-components/typed-range-text-component.d.cts +35 -0
  504. package/dist/lib/cjs/setting-components/typed-text-component.cjs +256 -0
  505. package/dist/lib/cjs/setting-components/typed-text-component.d.cts +100 -0
  506. package/dist/lib/cjs/setting-components/url-component.cjs +215 -0
  507. package/dist/lib/cjs/setting-components/url-component.d.cts +49 -0
  508. package/dist/lib/cjs/setting-components/validator-component.cjs +254 -0
  509. package/dist/lib/cjs/setting-components/validator-component.d.cts +23 -0
  510. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.cjs +155 -0
  511. package/dist/lib/cjs/setting-components/value-component-with-change-tracking.d.cts +20 -0
  512. package/dist/lib/cjs/setting-components/week-component.cjs +212 -0
  513. package/dist/lib/cjs/setting-components/week-component.d.cts +51 -0
  514. package/dist/lib/cjs/setting-ex.cjs +396 -0
  515. package/dist/lib/cjs/setting-ex.d.cts +198 -0
  516. package/dist/lib/cjs/setting-group-ex.cjs +189 -0
  517. package/dist/lib/cjs/setting-group-ex.d.cts +26 -0
  518. package/dist/lib/cjs/status-bar-item-registrar.cjs +186 -0
  519. package/dist/lib/cjs/status-bar-item-registrar.d.cts +36 -0
  520. package/dist/lib/cjs/templater.cjs +303 -0
  521. package/dist/lib/cjs/templater.d.cts +284 -0
  522. package/dist/lib/cjs/transformers/duration-transformer.cjs +206 -0
  523. package/dist/lib/cjs/transformers/duration-transformer.d.cts +39 -0
  524. package/dist/lib/cjs/transformers/index.cjs +177 -0
  525. package/dist/lib/cjs/transformers/index.d.cts +2 -0
  526. package/dist/lib/cjs/trusted-input.cjs +220 -0
  527. package/dist/lib/cjs/trusted-input.d.cts +131 -0
  528. package/dist/lib/cjs/validation.cjs +213 -0
  529. package/dist/lib/cjs/validation.d.cts +87 -0
  530. package/dist/lib/cjs/vault-delete.cjs +246 -0
  531. package/dist/lib/cjs/vault-delete.d.cts +82 -0
  532. package/dist/lib/cjs/vault-transaction.cjs +436 -0
  533. package/dist/lib/cjs/vault-transaction.d.cts +163 -0
  534. package/dist/lib/cjs/vault.cjs +725 -0
  535. package/dist/lib/cjs/vault.d.cts +506 -0
  536. package/dist/lib/cjs/view-registrar.cjs +186 -0
  537. package/dist/lib/cjs/view-registrar.d.cts +52 -0
  538. package/dist/lib/cjs/workspace.cjs +210 -0
  539. package/dist/lib/cjs/workspace.d.cts +81 -0
  540. package/dist/lib/esm/@types/dataview/api/data-array.d.mts +137 -0
  541. package/dist/lib/esm/@types/dataview/api/extensions.d.mts +16 -0
  542. package/dist/lib/esm/@types/dataview/api/inline-api.d.mts +187 -0
  543. package/dist/lib/esm/@types/dataview/api/plugin-api.d.mts +210 -0
  544. package/dist/lib/esm/@types/dataview/api/result.d.mts +39 -0
  545. package/dist/lib/esm/@types/dataview/data-import/common.d.mts +4 -0
  546. package/dist/lib/esm/@types/dataview/data-import/csv.d.mts +4 -0
  547. package/dist/lib/esm/@types/dataview/data-import/inline-field.d.mts +43 -0
  548. package/dist/lib/esm/@types/dataview/data-import/markdown-file.d.mts +53 -0
  549. package/dist/lib/esm/@types/dataview/data-import/persister.d.mts +33 -0
  550. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-entry.d.mts +2 -0
  551. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-impl.d.mts +7 -0
  552. package/dist/lib/esm/@types/dataview/data-import/web-worker/import-manager.d.mts +38 -0
  553. package/dist/lib/esm/@types/dataview/data-index/index.d.mts +187 -0
  554. package/dist/lib/esm/@types/dataview/data-index/resolver.d.mts +24 -0
  555. package/dist/lib/esm/@types/dataview/data-index/source.d.mts +72 -0
  556. package/dist/lib/esm/@types/dataview/data-model/markdown.d.mts +116 -0
  557. package/dist/lib/esm/@types/dataview/data-model/serialized/markdown.d.mts +107 -0
  558. package/dist/lib/esm/@types/dataview/data-model/transferable.d.mts +8 -0
  559. package/dist/lib/esm/@types/dataview/data-model/value.d.mts +176 -0
  560. package/dist/lib/esm/@types/dataview/expression/binaryop.d.mts +44 -0
  561. package/dist/lib/esm/@types/dataview/expression/context.d.mts +50 -0
  562. package/dist/lib/esm/@types/dataview/expression/field.d.mts +83 -0
  563. package/dist/lib/esm/@types/dataview/expression/functions.d.mts +150 -0
  564. package/dist/lib/esm/@types/dataview/expression/parse.d.mts +164 -0
  565. package/dist/lib/esm/@types/dataview/index.d.mts +56 -0
  566. package/dist/lib/esm/@types/dataview/main.d.mts +53 -0
  567. package/dist/lib/esm/@types/dataview/query/engine.d.mts +104 -0
  568. package/dist/lib/esm/@types/dataview/query/parse.d.mts +45 -0
  569. package/dist/lib/esm/@types/dataview/query/query.d.mts +96 -0
  570. package/dist/lib/esm/@types/dataview/settings.d.mts +61 -0
  571. package/dist/lib/esm/@types/dataview/typings/obsidian-ex.d.mts +29 -0
  572. package/dist/lib/esm/@types/dataview/typings/workers.d.mts +5 -0
  573. package/dist/lib/esm/@types/dataview/ui/export/markdown.d.mts +16 -0
  574. package/dist/lib/esm/@types/dataview/ui/lp-render.d.mts +38 -0
  575. package/dist/lib/esm/@types/dataview/ui/markdown.d.mts +87 -0
  576. package/dist/lib/esm/@types/dataview/ui/refreshable-view.d.mts +19 -0
  577. package/dist/lib/esm/@types/dataview/ui/render.d.mts +34 -0
  578. package/dist/lib/esm/@types/dataview/ui/views/calendar-view.d.mts +18 -0
  579. package/dist/lib/esm/@types/dataview/ui/views/inline-field-live-preview.d.mts +43 -0
  580. package/dist/lib/esm/@types/dataview/ui/views/inline-view.d.mts +29 -0
  581. package/dist/lib/esm/@types/dataview/ui/views/js-view.d.mts +24 -0
  582. package/dist/lib/esm/@types/dataview/ui/views/list-view.d.mts +26 -0
  583. package/dist/lib/esm/@types/dataview/ui/views/table-view.d.mts +29 -0
  584. package/dist/lib/esm/@types/dataview/ui/views/task-view.d.mts +52 -0
  585. package/dist/lib/esm/@types/dataview/util/hash.d.mts +2 -0
  586. package/dist/lib/esm/@types/dataview/util/locale.d.mts +3 -0
  587. package/dist/lib/esm/@types/dataview/util/media.d.mts +7 -0
  588. package/dist/lib/esm/@types/dataview/util/normalize.d.mts +45 -0
  589. package/dist/lib/esm/@types/i18next.d.mts +14 -0
  590. package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +29 -0
  591. package/dist/lib/esm/@types/original-fs.d.mts +15 -0
  592. package/dist/lib/esm/__merged.d.mts +205 -0
  593. package/dist/lib/esm/__merged.mjs +1532 -0
  594. package/dist/lib/esm/active-file-provider.d.mts +36 -0
  595. package/dist/lib/esm/active-file-provider.mjs +72 -0
  596. package/dist/lib/esm/app.d.mts +17 -0
  597. package/dist/lib/esm/app.mjs +64 -0
  598. package/dist/lib/esm/async-with-notice.d.mts +113 -0
  599. package/dist/lib/esm/async-with-notice.mjs +149 -0
  600. package/dist/lib/esm/attachment-path.d.mts +341 -0
  601. package/dist/lib/esm/attachment-path.mjs +302 -0
  602. package/dist/lib/esm/attachment-unit-folder.d.mts +103 -0
  603. package/dist/lib/esm/attachment-unit-folder.mjs +78 -0
  604. package/dist/lib/esm/backlink-index.d.mts +51 -0
  605. package/dist/lib/esm/backlink-index.mjs +160 -0
  606. package/dist/lib/esm/backlink.d.mts +66 -0
  607. package/dist/lib/esm/backlink.mjs +131 -0
  608. package/dist/lib/esm/bases-view-registrar.d.mts +52 -0
  609. package/dist/lib/esm/bases-view-registrar.mjs +73 -0
  610. package/dist/lib/esm/callout.d.mts +76 -0
  611. package/dist/lib/esm/callout.mjs +132 -0
  612. package/dist/lib/esm/canvas.d.mts +28 -0
  613. package/dist/lib/esm/canvas.mjs +129 -0
  614. package/dist/lib/esm/case-insensitive-file-index.d.mts +92 -0
  615. package/dist/lib/esm/case-insensitive-file-index.mjs +152 -0
  616. package/dist/lib/esm/code-block-markdown-information.d.mts +48 -0
  617. package/dist/lib/esm/code-block-markdown-information.mjs +50 -0
  618. package/dist/lib/esm/code-block-reg-exp.d.mts +39 -0
  619. package/dist/lib/esm/code-block-reg-exp.mjs +56 -0
  620. package/dist/lib/esm/codemirror/index.d.mts +2 -0
  621. package/dist/lib/esm/codemirror/index.mjs +54 -0
  622. package/dist/lib/esm/codemirror/state-field-spec.d.mts +72 -0
  623. package/dist/lib/esm/codemirror/state-field-spec.mjs +50 -0
  624. package/dist/lib/esm/command-handlers/abstract-file-command-handler.d.mts +274 -0
  625. package/dist/lib/esm/command-handlers/abstract-file-command-handler.mjs +330 -0
  626. package/dist/lib/esm/command-handlers/command-handler-component.d.mts +146 -0
  627. package/dist/lib/esm/command-handlers/command-handler-component.mjs +193 -0
  628. package/dist/lib/esm/command-handlers/command-handler.d.mts +107 -0
  629. package/dist/lib/esm/command-handlers/command-handler.mjs +111 -0
  630. package/dist/lib/esm/command-handlers/editor-command-handler.d.mts +208 -0
  631. package/dist/lib/esm/command-handlers/editor-command-handler.mjs +262 -0
  632. package/dist/lib/esm/command-handlers/file-command-handler.d.mts +143 -0
  633. package/dist/lib/esm/command-handlers/file-command-handler.mjs +200 -0
  634. package/dist/lib/esm/command-handlers/folder-command-handler.d.mts +149 -0
  635. package/dist/lib/esm/command-handlers/folder-command-handler.mjs +208 -0
  636. package/dist/lib/esm/command-handlers/global-command-handler.d.mts +40 -0
  637. package/dist/lib/esm/command-handlers/global-command-handler.mjs +96 -0
  638. package/dist/lib/esm/command-handlers/index.d.mts +11 -0
  639. package/dist/lib/esm/command-handlers/index.mjs +72 -0
  640. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.d.mts +73 -0
  641. package/dist/lib/esm/command-handlers/open-demo-vault-command-handler.mjs +110 -0
  642. package/dist/lib/esm/command-handlers/open-settings-command-handler.d.mts +44 -0
  643. package/dist/lib/esm/command-handlers/open-settings-command-handler.mjs +85 -0
  644. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.d.mts +54 -0
  645. package/dist/lib/esm/command-handlers/unlock-active-note-command-handler.mjs +98 -0
  646. package/dist/lib/esm/command-registrar.d.mts +48 -0
  647. package/dist/lib/esm/command-registrar.mjs +80 -0
  648. package/dist/lib/esm/community-plugins.d.mts +270 -0
  649. package/dist/lib/esm/community-plugins.mjs +222 -0
  650. package/dist/lib/esm/components/abort-signal-component.d.mts +30 -0
  651. package/dist/lib/esm/components/abort-signal-component.mjs +83 -0
  652. package/dist/lib/esm/components/all-windows-event-component.d.mts +84 -0
  653. package/dist/lib/esm/components/all-windows-event-component.mjs +125 -0
  654. package/dist/lib/esm/components/async-error-handler-component.d.mts +30 -0
  655. package/dist/lib/esm/components/async-error-handler-component.mjs +87 -0
  656. package/dist/lib/esm/components/async-events-component.d.mts +15 -0
  657. package/dist/lib/esm/components/async-events-component.mjs +59 -0
  658. package/dist/lib/esm/components/case-insensitive-file-index-component.d.mts +36 -0
  659. package/dist/lib/esm/components/case-insensitive-file-index-component.mjs +101 -0
  660. package/dist/lib/esm/components/component-ex.d.mts +229 -0
  661. package/dist/lib/esm/components/component-ex.mjs +421 -0
  662. package/dist/lib/esm/components/console-debug-component.d.mts +30 -0
  663. package/dist/lib/esm/components/console-debug-component.mjs +81 -0
  664. package/dist/lib/esm/components/core-plugin-toggle-component.d.mts +102 -0
  665. package/dist/lib/esm/components/core-plugin-toggle-component.mjs +113 -0
  666. package/dist/lib/esm/components/disposable-component.d.mts +24 -0
  667. package/dist/lib/esm/components/disposable-component.mjs +65 -0
  668. package/dist/lib/esm/components/embed-extensions-component.d.mts +38 -0
  669. package/dist/lib/esm/components/embed-extensions-component.mjs +85 -0
  670. package/dist/lib/esm/components/generate-markdown-link-default-params-component.d.mts +42 -0
  671. package/dist/lib/esm/components/generate-markdown-link-default-params-component.mjs +81 -0
  672. package/dist/lib/esm/components/index.d.mts +30 -0
  673. package/dist/lib/esm/components/index.mjs +110 -0
  674. package/dist/lib/esm/components/layout-ready-component.d.mts +48 -0
  675. package/dist/lib/esm/components/layout-ready-component.mjs +121 -0
  676. package/dist/lib/esm/components/menu-event-registrar-component.d.mts +52 -0
  677. package/dist/lib/esm/components/menu-event-registrar-component.mjs +107 -0
  678. package/dist/lib/esm/components/monkey-around-component.d.mts +241 -0
  679. package/dist/lib/esm/components/monkey-around-component.mjs +154 -0
  680. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.d.mts +150 -0
  681. package/dist/lib/esm/components/notebook-navigator-menu-event-registrar-component.mjs +235 -0
  682. package/dist/lib/esm/components/plugin-context-component.d.mts +36 -0
  683. package/dist/lib/esm/components/plugin-context-component.mjs +94 -0
  684. package/dist/lib/esm/components/plugin-gate-component.d.mts +332 -0
  685. package/dist/lib/esm/components/plugin-gate-component.mjs +472 -0
  686. package/dist/lib/esm/components/plugin-notice-component.d.mts +362 -0
  687. package/dist/lib/esm/components/plugin-notice-component.mjs +543 -0
  688. package/dist/lib/esm/components/plugin-settings-component.d.mts +362 -0
  689. package/dist/lib/esm/components/plugin-settings-component.mjs +562 -0
  690. package/dist/lib/esm/components/plugin-settings-tab-component.d.mts +39 -0
  691. package/dist/lib/esm/components/plugin-settings-tab-component.mjs +81 -0
  692. package/dist/lib/esm/components/plugin-suggestion-component.d.mts +162 -0
  693. package/dist/lib/esm/components/plugin-suggestion-component.mjs +192 -0
  694. package/dist/lib/esm/components/pointer-position-component.d.mts +29 -0
  695. package/dist/lib/esm/components/pointer-position-component.mjs +77 -0
  696. package/dist/lib/esm/components/registry-component.d.mts +37 -0
  697. package/dist/lib/esm/components/registry-component.mjs +98 -0
  698. package/dist/lib/esm/components/release-notes-component.d.mts +129 -0
  699. package/dist/lib/esm/components/release-notes-component.mjs +136 -0
  700. package/dist/lib/esm/components/rename-delete-handler-component.d.mts +165 -0
  701. package/dist/lib/esm/components/rename-delete-handler-component.mjs +1238 -0
  702. package/dist/lib/esm/components/rmdir-guard-component.d.mts +76 -0
  703. package/dist/lib/esm/components/rmdir-guard-component.mjs +100 -0
  704. package/dist/lib/esm/components/settings-migration-component.d.mts +120 -0
  705. package/dist/lib/esm/components/settings-migration-component.mjs +133 -0
  706. package/dist/lib/esm/components/syntax-highlighting-component.d.mts +149 -0
  707. package/dist/lib/esm/components/syntax-highlighting-component.mjs +159 -0
  708. package/dist/lib/esm/components/templates-language-component.d.mts +124 -0
  709. package/dist/lib/esm/components/templates-language-component.mjs +187 -0
  710. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.d.mts +22 -0
  711. package/dist/lib/esm/constructors/get-dom-events-handlers-constructor.mjs +157 -0
  712. package/dist/lib/esm/constructors/index.d.mts +2 -0
  713. package/dist/lib/esm/constructors/index.mjs +54 -0
  714. package/dist/lib/esm/css-class.d.mts +278 -0
  715. package/dist/lib/esm/css-class.mjs +119 -0
  716. package/dist/lib/esm/data-handler.d.mts +49 -0
  717. package/dist/lib/esm/data-handler.mjs +81 -0
  718. package/dist/lib/esm/dataview-link.d.mts +42 -0
  719. package/dist/lib/esm/dataview-link.mjs +74 -0
  720. package/dist/lib/esm/dataview.d.mts +249 -0
  721. package/dist/lib/esm/dataview.mjs +288 -0
  722. package/dist/lib/esm/debug.d.mts +19 -0
  723. package/dist/lib/esm/debug.mjs +59 -0
  724. package/dist/lib/esm/demo-vault-helper-settings.d.mts +29 -0
  725. package/dist/lib/esm/demo-vault-helper-settings.mjs +50 -0
  726. package/dist/lib/esm/demo-vault-helper.d.mts +61 -0
  727. package/dist/lib/esm/demo-vault-helper.mjs +150 -0
  728. package/dist/lib/esm/demo-vault-naming.d.mts +54 -0
  729. package/dist/lib/esm/demo-vault-naming.mjs +67 -0
  730. package/dist/lib/esm/desktop-demo-vault-opener.d.mts +76 -0
  731. package/dist/lib/esm/desktop-demo-vault-opener.mjs +274 -0
  732. package/dist/lib/esm/desktop-trusted-input.d.mts +288 -0
  733. package/dist/lib/esm/desktop-trusted-input.mjs +206 -0
  734. package/dist/lib/esm/editor-extension-registrar.d.mts +37 -0
  735. package/dist/lib/esm/editor-extension-registrar.mjs +73 -0
  736. package/dist/lib/esm/editor-suggest-registrar.d.mts +36 -0
  737. package/dist/lib/esm/editor-suggest-registrar.mjs +76 -0
  738. package/dist/lib/esm/editor.d.mts +45 -0
  739. package/dist/lib/esm/editor.mjs +115 -0
  740. package/dist/lib/esm/events.d.mts +98 -0
  741. package/dist/lib/esm/events.mjs +81 -0
  742. package/dist/lib/esm/extensions-registrar.d.mts +51 -0
  743. package/dist/lib/esm/extensions-registrar.mjs +73 -0
  744. package/dist/lib/esm/file-change.d.mts +156 -0
  745. package/dist/lib/esm/file-change.mjs +481 -0
  746. package/dist/lib/esm/file-explorer.d.mts +34 -0
  747. package/dist/lib/esm/file-explorer.mjs +68 -0
  748. package/dist/lib/esm/file-manager.d.mts +123 -0
  749. package/dist/lib/esm/file-manager.mjs +169 -0
  750. package/dist/lib/esm/file-system.d.mts +554 -0
  751. package/dist/lib/esm/file-system.mjs +466 -0
  752. package/dist/lib/esm/folder-note.d.mts +166 -0
  753. package/dist/lib/esm/folder-note.mjs +169 -0
  754. package/dist/lib/esm/frontmatter-formatting.d.mts +44 -0
  755. package/dist/lib/esm/frontmatter-formatting.mjs +376 -0
  756. package/dist/lib/esm/frontmatter-link-cache-with-offsets.d.mts +34 -0
  757. package/dist/lib/esm/frontmatter-link-cache-with-offsets.mjs +69 -0
  758. package/dist/lib/esm/frontmatter.d.mts +145 -0
  759. package/dist/lib/esm/frontmatter.mjs +182 -0
  760. package/dist/lib/esm/generated-during-build.d.mts +19 -0
  761. package/dist/lib/esm/generated-during-build.mjs +56 -0
  762. package/dist/lib/esm/hover-link-source-registrar.d.mts +52 -0
  763. package/dist/lib/esm/hover-link-source-registrar.mjs +73 -0
  764. package/dist/lib/esm/html-element.d.mts +98 -0
  765. package/dist/lib/esm/html-element.mjs +94 -0
  766. package/dist/lib/esm/i18n/custom-type-options.d.mts +38 -0
  767. package/dist/lib/esm/i18n/custom-type-options.mjs +51 -0
  768. package/dist/lib/esm/i18n/default-translations.d.mts +15 -0
  769. package/dist/lib/esm/i18n/default-translations.mjs +51 -0
  770. package/dist/lib/esm/i18n/i18n.d.mts +38 -0
  771. package/dist/lib/esm/i18n/i18n.mjs +97 -0
  772. package/dist/lib/esm/i18n/index.d.mts +5 -0
  773. package/dist/lib/esm/i18n/index.mjs +60 -0
  774. package/dist/lib/esm/i18n/locales/en.d.mts +91 -0
  775. package/dist/lib/esm/i18n/locales/en.mjs +135 -0
  776. package/dist/lib/esm/i18n/locales/index.d.mts +3 -0
  777. package/dist/lib/esm/i18n/locales/index.mjs +56 -0
  778. package/dist/lib/esm/i18n/locales/translations-map.d.mts +100 -0
  779. package/dist/lib/esm/i18n/locales/translations-map.mjs +60 -0
  780. package/dist/lib/esm/index.d.mts +96 -0
  781. package/dist/lib/esm/index.mjs +242 -0
  782. package/dist/lib/esm/is-in-obsidian.d.mts +12 -0
  783. package/dist/lib/esm/is-in-obsidian.mjs +67 -0
  784. package/dist/lib/esm/library-styles.d.mts +56 -0
  785. package/dist/lib/esm/library-styles.mjs +80 -0
  786. package/dist/lib/esm/library.d.mts +57 -0
  787. package/dist/lib/esm/library.mjs +91 -0
  788. package/dist/lib/esm/link-name.d.mts +23 -0
  789. package/dist/lib/esm/link-name.mjs +56 -0
  790. package/dist/lib/esm/link-update-progress.d.mts +32 -0
  791. package/dist/lib/esm/link-update-progress.mjs +50 -0
  792. package/dist/lib/esm/link.d.mts +1369 -0
  793. package/dist/lib/esm/link.mjs +996 -0
  794. package/dist/lib/esm/logger.d.mts +37 -0
  795. package/dist/lib/esm/logger.mjs +123 -0
  796. package/dist/lib/esm/loop.d.mts +104 -0
  797. package/dist/lib/esm/loop.mjs +159 -0
  798. package/dist/lib/esm/markdown-code-block-processor-registrar.d.mts +62 -0
  799. package/dist/lib/esm/markdown-code-block-processor-registrar.mjs +77 -0
  800. package/dist/lib/esm/markdown-code-block-processor.d.mts +137 -0
  801. package/dist/lib/esm/markdown-code-block-processor.mjs +364 -0
  802. package/dist/lib/esm/markdown-post-processor-registrar.d.mts +59 -0
  803. package/dist/lib/esm/markdown-post-processor-registrar.mjs +74 -0
  804. package/dist/lib/esm/markdown-view.d.mts +14 -0
  805. package/dist/lib/esm/markdown-view.mjs +62 -0
  806. package/dist/lib/esm/markdown.d.mts +226 -0
  807. package/dist/lib/esm/markdown.mjs +399 -0
  808. package/dist/lib/esm/menu-event-registrar.d.mts +84 -0
  809. package/dist/lib/esm/menu-event-registrar.mjs +50 -0
  810. package/dist/lib/esm/metadata-cache.d.mts +359 -0
  811. package/dist/lib/esm/metadata-cache.mjs +462 -0
  812. package/dist/lib/esm/mobile-trusted-input.d.mts +98 -0
  813. package/dist/lib/esm/mobile-trusted-input.mjs +90 -0
  814. package/dist/lib/esm/modals/alert.d.mts +35 -0
  815. package/dist/lib/esm/modals/alert.mjs +92 -0
  816. package/dist/lib/esm/modals/confirm.d.mts +39 -0
  817. package/dist/lib/esm/modals/confirm.mjs +102 -0
  818. package/dist/lib/esm/modals/index.d.mts +10 -0
  819. package/dist/lib/esm/modals/index.mjs +70 -0
  820. package/dist/lib/esm/modals/minimizable-modal.d.mts +129 -0
  821. package/dist/lib/esm/modals/minimizable-modal.mjs +356 -0
  822. package/dist/lib/esm/modals/modal-command-builder.d.mts +285 -0
  823. package/dist/lib/esm/modals/modal-command-builder.mjs +371 -0
  824. package/dist/lib/esm/modals/modal.d.mts +64 -0
  825. package/dist/lib/esm/modals/modal.mjs +86 -0
  826. package/dist/lib/esm/modals/prompt.d.mts +83 -0
  827. package/dist/lib/esm/modals/prompt.mjs +176 -0
  828. package/dist/lib/esm/modals/select-item.d.mts +55 -0
  829. package/dist/lib/esm/modals/select-item.mjs +112 -0
  830. package/dist/lib/esm/modals/select-option.d.mts +65 -0
  831. package/dist/lib/esm/modals/select-option.mjs +103 -0
  832. package/dist/lib/esm/modals/suggest-modal-command-builder.d.mts +35 -0
  833. package/dist/lib/esm/modals/suggest-modal-command-builder.mjs +55 -0
  834. package/dist/lib/esm/note-priority.d.mts +154 -0
  835. package/dist/lib/esm/note-priority.mjs +143 -0
  836. package/dist/lib/esm/notebook-navigator.d.mts +132 -0
  837. package/dist/lib/esm/notebook-navigator.mjs +72 -0
  838. package/dist/lib/esm/obsidian-dev-utils-state.d.mts +42 -0
  839. package/dist/lib/esm/obsidian-dev-utils-state.mjs +84 -0
  840. package/dist/lib/esm/obsidian-protocol-handler-registrar.d.mts +55 -0
  841. package/dist/lib/esm/obsidian-protocol-handler-registrar.mjs +76 -0
  842. package/dist/lib/esm/obsidian-settings.d.mts +62 -0
  843. package/dist/lib/esm/obsidian-settings.mjs +89 -0
  844. package/dist/lib/esm/parse-link.d.mts +288 -0
  845. package/dist/lib/esm/parse-link.mjs +436 -0
  846. package/dist/lib/esm/path-settings.d.mts +56 -0
  847. package/dist/lib/esm/path-settings.mjs +184 -0
  848. package/dist/lib/esm/pdf.d.mts +26 -0
  849. package/dist/lib/esm/pdf.mjs +84 -0
  850. package/dist/lib/esm/plugin/index.d.mts +9 -0
  851. package/dist/lib/esm/plugin/index.mjs +68 -0
  852. package/dist/lib/esm/plugin/plugin-api.d.mts +413 -0
  853. package/dist/lib/esm/plugin/plugin-api.mjs +430 -0
  854. package/dist/lib/esm/plugin/plugin-context.d.mts +27 -0
  855. package/dist/lib/esm/plugin/plugin-context.mjs +109 -0
  856. package/dist/lib/esm/plugin/plugin-event-source.d.mts +97 -0
  857. package/dist/lib/esm/plugin/plugin-event-source.mjs +137 -0
  858. package/dist/lib/esm/plugin/plugin-install-state.d.mts +113 -0
  859. package/dist/lib/esm/plugin/plugin-install-state.mjs +109 -0
  860. package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +127 -0
  861. package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +60 -0
  862. package/dist/lib/esm/plugin/plugin-settings-tab.d.mts +368 -0
  863. package/dist/lib/esm/plugin/plugin-settings-tab.mjs +535 -0
  864. package/dist/lib/esm/plugin/plugin.d.mts +363 -0
  865. package/dist/lib/esm/plugin/plugin.mjs +619 -0
  866. package/dist/lib/esm/plugin/settings-migration-api.d.mts +91 -0
  867. package/dist/lib/esm/plugin/settings-migration-api.mjs +50 -0
  868. package/dist/lib/esm/plugin-cli-handler-registrar.d.mts +64 -0
  869. package/dist/lib/esm/plugin-cli-handler-registrar.mjs +74 -0
  870. package/dist/lib/esm/popovers/field-popover.d.mts +75 -0
  871. package/dist/lib/esm/popovers/field-popover.mjs +96 -0
  872. package/dist/lib/esm/popovers/index.d.mts +4 -0
  873. package/dist/lib/esm/popovers/index.mjs +58 -0
  874. package/dist/lib/esm/popovers/popover-anchor.d.mts +67 -0
  875. package/dist/lib/esm/popovers/popover-anchor.mjs +90 -0
  876. package/dist/lib/esm/popovers/popover.d.mts +78 -0
  877. package/dist/lib/esm/popovers/popover.mjs +140 -0
  878. package/dist/lib/esm/property-entry.d.mts +43 -0
  879. package/dist/lib/esm/property-entry.mjs +81 -0
  880. package/dist/lib/esm/queue.d.mts +93 -0
  881. package/dist/lib/esm/queue.mjs +130 -0
  882. package/dist/lib/esm/react/app-context.d.mts +24 -0
  883. package/dist/lib/esm/react/app-context.mjs +64 -0
  884. package/dist/lib/esm/react/index.d.mts +2 -0
  885. package/dist/lib/esm/react/index.mjs +54 -0
  886. package/dist/lib/esm/reference.d.mts +116 -0
  887. package/dist/lib/esm/reference.mjs +95 -0
  888. package/dist/lib/esm/resource-lock.d.mts +318 -0
  889. package/dist/lib/esm/resource-lock.mjs +1014 -0
  890. package/dist/lib/esm/resource-url.d.mts +31 -0
  891. package/dist/lib/esm/resource-url.mjs +67 -0
  892. package/dist/lib/esm/ribbon-icon-registrar.d.mts +60 -0
  893. package/dist/lib/esm/ribbon-icon-registrar.mjs +74 -0
  894. package/dist/lib/esm/setting-components/checkbox-component.d.mts +69 -0
  895. package/dist/lib/esm/setting-components/checkbox-component.mjs +127 -0
  896. package/dist/lib/esm/setting-components/code-highlighter-component.d.mts +132 -0
  897. package/dist/lib/esm/setting-components/code-highlighter-component.mjs +295 -0
  898. package/dist/lib/esm/setting-components/date-component.d.mts +38 -0
  899. package/dist/lib/esm/setting-components/date-component.mjs +91 -0
  900. package/dist/lib/esm/setting-components/date-time-component.d.mts +38 -0
  901. package/dist/lib/esm/setting-components/date-time-component.mjs +91 -0
  902. package/dist/lib/esm/setting-components/email-component.d.mts +49 -0
  903. package/dist/lib/esm/setting-components/email-component.mjs +102 -0
  904. package/dist/lib/esm/setting-components/file-component.d.mts +43 -0
  905. package/dist/lib/esm/setting-components/file-component.mjs +94 -0
  906. package/dist/lib/esm/setting-components/index.d.mts +27 -0
  907. package/dist/lib/esm/setting-components/index.mjs +104 -0
  908. package/dist/lib/esm/setting-components/month-component.d.mts +51 -0
  909. package/dist/lib/esm/setting-components/month-component.mjs +99 -0
  910. package/dist/lib/esm/setting-components/multiple-dropdown-component.d.mts +92 -0
  911. package/dist/lib/esm/setting-components/multiple-dropdown-component.mjs +167 -0
  912. package/dist/lib/esm/setting-components/multiple-email-component.d.mts +38 -0
  913. package/dist/lib/esm/setting-components/multiple-email-component.mjs +88 -0
  914. package/dist/lib/esm/setting-components/multiple-file-component.d.mts +43 -0
  915. package/dist/lib/esm/setting-components/multiple-file-component.mjs +96 -0
  916. package/dist/lib/esm/setting-components/multiple-text-component.d.mts +109 -0
  917. package/dist/lib/esm/setting-components/multiple-text-component.mjs +186 -0
  918. package/dist/lib/esm/setting-components/number-component.d.mts +56 -0
  919. package/dist/lib/esm/setting-components/number-component.mjs +112 -0
  920. package/dist/lib/esm/setting-components/password-component.d.mts +38 -0
  921. package/dist/lib/esm/setting-components/password-component.mjs +88 -0
  922. package/dist/lib/esm/setting-components/setting-component-wrapper.d.mts +13 -0
  923. package/dist/lib/esm/setting-components/setting-component-wrapper.mjs +71 -0
  924. package/dist/lib/esm/setting-components/telephone-component.d.mts +51 -0
  925. package/dist/lib/esm/setting-components/telephone-component.mjs +102 -0
  926. package/dist/lib/esm/setting-components/text-based-component.d.mts +38 -0
  927. package/dist/lib/esm/setting-components/text-based-component.mjs +81 -0
  928. package/dist/lib/esm/setting-components/time-component.d.mts +38 -0
  929. package/dist/lib/esm/setting-components/time-component.mjs +96 -0
  930. package/dist/lib/esm/setting-components/tri-state-checkbox-component.d.mts +69 -0
  931. package/dist/lib/esm/setting-components/tri-state-checkbox-component.mjs +128 -0
  932. package/dist/lib/esm/setting-components/typed-dropdown-component.d.mts +97 -0
  933. package/dist/lib/esm/setting-components/typed-dropdown-component.mjs +176 -0
  934. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.d.mts +99 -0
  935. package/dist/lib/esm/setting-components/typed-multiple-dropdown-component.mjs +175 -0
  936. package/dist/lib/esm/setting-components/typed-range-text-component.d.mts +35 -0
  937. package/dist/lib/esm/setting-components/typed-range-text-component.mjs +86 -0
  938. package/dist/lib/esm/setting-components/typed-text-component.d.mts +100 -0
  939. package/dist/lib/esm/setting-components/typed-text-component.mjs +146 -0
  940. package/dist/lib/esm/setting-components/url-component.d.mts +49 -0
  941. package/dist/lib/esm/setting-components/url-component.mjs +102 -0
  942. package/dist/lib/esm/setting-components/validator-component.d.mts +23 -0
  943. package/dist/lib/esm/setting-components/validator-component.mjs +150 -0
  944. package/dist/lib/esm/setting-components/value-component-with-change-tracking.d.mts +20 -0
  945. package/dist/lib/esm/setting-components/value-component-with-change-tracking.mjs +50 -0
  946. package/dist/lib/esm/setting-components/week-component.d.mts +51 -0
  947. package/dist/lib/esm/setting-components/week-component.mjs +99 -0
  948. package/dist/lib/esm/setting-ex.d.mts +198 -0
  949. package/dist/lib/esm/setting-ex.mjs +282 -0
  950. package/dist/lib/esm/setting-group-ex.d.mts +26 -0
  951. package/dist/lib/esm/setting-group-ex.mjs +76 -0
  952. package/dist/lib/esm/status-bar-item-registrar.d.mts +36 -0
  953. package/dist/lib/esm/status-bar-item-registrar.mjs +73 -0
  954. package/dist/lib/esm/templater.d.mts +284 -0
  955. package/dist/lib/esm/templater.mjs +181 -0
  956. package/dist/lib/esm/transformers/duration-transformer.d.mts +39 -0
  957. package/dist/lib/esm/transformers/duration-transformer.mjs +93 -0
  958. package/dist/lib/esm/transformers/index.d.mts +2 -0
  959. package/dist/lib/esm/transformers/index.mjs +54 -0
  960. package/dist/lib/esm/trusted-input.d.mts +131 -0
  961. package/dist/lib/esm/trusted-input.mjs +91 -0
  962. package/dist/lib/esm/validation.d.mts +87 -0
  963. package/dist/lib/esm/validation.mjs +95 -0
  964. package/dist/lib/esm/vault-delete.d.mts +82 -0
  965. package/dist/lib/esm/vault-delete.mjs +140 -0
  966. package/dist/lib/esm/vault-transaction.d.mts +163 -0
  967. package/dist/lib/esm/vault-transaction.mjs +333 -0
  968. package/dist/lib/esm/vault.d.mts +506 -0
  969. package/dist/lib/esm/vault.mjs +612 -0
  970. package/dist/lib/esm/view-registrar.d.mts +52 -0
  971. package/dist/lib/esm/view-registrar.mjs +73 -0
  972. package/dist/lib/esm/workspace.d.mts +81 -0
  973. package/dist/lib/esm/workspace.mjs +92 -0
  974. package/dist/styles.css +497 -0
  975. package/i18n/custom-type-options/package.json +6 -0
  976. package/i18n/default-translations/package.json +6 -0
  977. package/i18n/i18n/package.json +6 -0
  978. package/i18n/index/package.json +6 -0
  979. package/i18n/locales/en/package.json +6 -0
  980. package/i18n/locales/index/package.json +6 -0
  981. package/i18n/locales/package.json +6 -0
  982. package/i18n/locales/translations-map/package.json +6 -0
  983. package/i18n/package.json +6 -0
  984. package/modals/alert/package.json +6 -0
  985. package/modals/confirm/package.json +6 -0
  986. package/modals/index/package.json +6 -0
  987. package/modals/minimizable-modal/package.json +6 -0
  988. package/modals/modal/package.json +6 -0
  989. package/modals/modal-command-builder/package.json +6 -0
  990. package/modals/package.json +6 -0
  991. package/modals/prompt/package.json +6 -0
  992. package/modals/select-item/package.json +6 -0
  993. package/modals/select-option/package.json +6 -0
  994. package/modals/suggest-modal-command-builder/package.json +6 -0
  995. package/package.json +488 -13
  996. package/plugin/index/package.json +6 -0
  997. package/plugin/package.json +6 -0
  998. package/plugin/plugin/package.json +6 -0
  999. package/plugin/plugin-api/package.json +6 -0
  1000. package/plugin/plugin-context/package.json +6 -0
  1001. package/plugin/plugin-event-source/package.json +6 -0
  1002. package/plugin/plugin-install-state/package.json +6 -0
  1003. package/plugin/plugin-lifecycle-events/package.json +6 -0
  1004. package/plugin/plugin-settings-tab/package.json +6 -0
  1005. package/plugin/settings-migration-api/package.json +6 -0
  1006. package/popovers/field-popover/package.json +6 -0
  1007. package/popovers/index/package.json +6 -0
  1008. package/popovers/package.json +6 -0
  1009. package/popovers/popover/package.json +6 -0
  1010. package/popovers/popover-anchor/package.json +6 -0
  1011. package/react/app-context/package.json +6 -0
  1012. package/react/index/package.json +6 -0
  1013. package/react/package.json +6 -0
  1014. package/setting-components/checkbox-component/package.json +6 -0
  1015. package/setting-components/code-highlighter-component/package.json +6 -0
  1016. package/setting-components/date-component/package.json +6 -0
  1017. package/setting-components/date-time-component/package.json +6 -0
  1018. package/setting-components/email-component/package.json +6 -0
  1019. package/setting-components/file-component/package.json +6 -0
  1020. package/setting-components/index/package.json +6 -0
  1021. package/setting-components/month-component/package.json +6 -0
  1022. package/setting-components/multiple-dropdown-component/package.json +6 -0
  1023. package/setting-components/multiple-email-component/package.json +6 -0
  1024. package/setting-components/multiple-file-component/package.json +6 -0
  1025. package/setting-components/multiple-text-component/package.json +6 -0
  1026. package/setting-components/number-component/package.json +6 -0
  1027. package/setting-components/package.json +6 -0
  1028. package/setting-components/password-component/package.json +6 -0
  1029. package/setting-components/setting-component-wrapper/package.json +6 -0
  1030. package/setting-components/telephone-component/package.json +6 -0
  1031. package/setting-components/text-based-component/package.json +6 -0
  1032. package/setting-components/time-component/package.json +6 -0
  1033. package/setting-components/tri-state-checkbox-component/package.json +6 -0
  1034. package/setting-components/typed-dropdown-component/package.json +6 -0
  1035. package/setting-components/typed-multiple-dropdown-component/package.json +6 -0
  1036. package/setting-components/typed-range-text-component/package.json +6 -0
  1037. package/setting-components/typed-text-component/package.json +6 -0
  1038. package/setting-components/url-component/package.json +6 -0
  1039. package/setting-components/validator-component/package.json +6 -0
  1040. package/setting-components/value-component-with-change-tracking/package.json +6 -0
  1041. package/setting-components/week-component/package.json +6 -0
  1042. package/transformers/duration-transformer/package.json +6 -0
  1043. package/transformers/index/package.json +6 -0
  1044. package/transformers/package.json +6 -0
@@ -0,0 +1,76 @@
1
+ /// <reference path="../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains class {@link RmdirGuardComponent} that makes the `recursive` flag of
6
+ * {@link https://docs.obsidian.md/Reference/TypeScript+API/DataAdapter/rmdir | DataAdapter.rmdir} mean what it says.
7
+ */
8
+ import type { App } from 'obsidian';
9
+ import { MonkeyAroundComponent } from './monkey-around-component.mjs';
10
+ /**
11
+ * The `code` carried by the error thrown when a non-recursive `rmdir` is refused because the folder has children.
12
+ *
13
+ * Matches the POSIX/Node error code a correct non-recursive directory removal produces, so a caller already
14
+ * branching on `error.code` keeps working. Check the `code`, never `instanceof` — every plugin bundles its own
15
+ * copy of this library, so the error may cross a copy boundary.
16
+ */
17
+ export declare const NOT_EMPTY_DIRECTORY_ERROR_CODE = "ENOTEMPTY";
18
+ /**
19
+ * Makes `app.vault.adapter.rmdir(path, false)` behave as its name promises: a non-recursive call on a folder
20
+ * that still has children throws instead of deleting them.
21
+ *
22
+ * @remarks
23
+ * Obsidian's adapters do not honor `recursive: false`, and they get it wrong in opposite directions:
24
+ *
25
+ * - `CapacitorAdapter` (mobile) does not accept the argument at all — it always removes recursively, so a
26
+ * non-recursive call silently deletes the folder and everything under it. This is the data-loss footgun.
27
+ * - `FileSystemAdapter` (desktop) forwards it to `fs.promises.rm(path, { recursive })`, which throws
28
+ * `ERR_FS_EISDIR` for *any* directory when `recursive` is `false` — so the non-recursive call never
29
+ * succeeds, not even on an empty folder.
30
+ *
31
+ * While loaded, this component gives both platforms the same, correct behavior: a non-empty folder is
32
+ * refused with an {@link NOT_EMPTY_DIRECTORY_ERROR_CODE} error and nothing is deleted; an empty folder is
33
+ * removed. Emptiness is decided from the adapter (via {@link isEmptyFolder}), not from the vault index — the
34
+ * index omits dot-prefixed and otherwise hidden entries, so a folder holding only hidden files reads as empty
35
+ * there and the guard would wave through exactly the deletion it exists to prevent.
36
+ *
37
+ * A folder proven empty is removed by forwarding to the original method with `recursive: true`. That is not
38
+ * merely defensive: it is what makes the empty-folder case succeed on desktop, where the non-recursive call
39
+ * would otherwise throw.
40
+ *
41
+ * Calls that already pass `recursive: true`, and calls whose target is not a folder (a file, a missing path),
42
+ * are passed through untouched and keep their native behavior.
43
+ *
44
+ * Loading the guard more than once is safe, and it deliberately carries **no patch token**. Every plugin
45
+ * bundles its own copy of this library and they all patch the one shared adapter, so several guards do stack
46
+ * — but the operation is idempotent (prove empty, then delete), so stacking changes nothing: the outermost
47
+ * guard either throws or forwards with `recursive: true`, which every guard beneath passes straight through.
48
+ * They can also be unloaded in any order and the method stays guarded until the last one goes, because
49
+ * `monkey-around` neutralizes an unloaded wrapper in place rather than splicing it out. A token would only
50
+ * move the decision to the innermost guard — an equally arbitrary choice — while adding a path on which a
51
+ * guard declines to guard. For a data-loss guard that trade is not worth making. Contrast
52
+ * `RenameDeleteHandlerComponent`, which does need one: suppressing `runAsyncLinkUpdate` is not idempotent,
53
+ * so two of those would conflict.
54
+ *
55
+ * This component is deliberately **opt-in**: `app.vault.adapter` is shared by the whole app, so a library that
56
+ * installed this patch on its own would change `rmdir` semantics for every other plugin, including the ones
57
+ * that never asked for it. A plugin that deletes folders opts in for itself:
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * this.addChild(new RmdirGuardComponent(this.app));
62
+ * ```
63
+ */
64
+ export declare class RmdirGuardComponent extends MonkeyAroundComponent {
65
+ protected readonly app: App;
66
+ /**
67
+ * Creates a new instance of the {@link RmdirGuardComponent} class.
68
+ *
69
+ * @param app - The Obsidian app instance whose vault adapter to guard.
70
+ */
71
+ constructor(app: App);
72
+ /**
73
+ * Installs the `rmdir` guard. The patch is uninstalled when this component unloads.
74
+ */
75
+ onload(): void;
76
+ }
@@ -0,0 +1,100 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ import { isEmptyFolder } from "../vault.mjs";
51
+ import { MonkeyAroundComponent } from "./monkey-around-component.mjs";
52
+ const NOT_EMPTY_DIRECTORY_ERROR_CODE = "ENOTEMPTY";
53
+ class RmdirGuardComponent extends MonkeyAroundComponent {
54
+ /**
55
+ * Creates a new instance of the {@link RmdirGuardComponent} class.
56
+ *
57
+ * @param app - The Obsidian app instance whose vault adapter to guard.
58
+ */
59
+ constructor(app) {
60
+ super();
61
+ this.app = app;
62
+ }
63
+ app;
64
+ /**
65
+ * Installs the `rmdir` guard. The patch is uninstalled when this component unloads.
66
+ */
67
+ onload() {
68
+ this.registerMethodPatch({
69
+ $object: this.app.vault.adapter,
70
+ methodName: "rmdir",
71
+ patchHandler: async ({
72
+ fallback,
73
+ originalArguments: [normalizedPath, recursive],
74
+ originalMethodBound
75
+ }) => {
76
+ if (recursive) {
77
+ await fallback();
78
+ return;
79
+ }
80
+ const stats = await this.app.vault.adapter.stat(normalizedPath);
81
+ if (stats?.type !== "folder") {
82
+ await fallback();
83
+ return;
84
+ }
85
+ if (!await isEmptyFolder(this.app, normalizedPath)) {
86
+ throw Object.assign(new Error(`Directory ${normalizedPath} is not empty`), {
87
+ code: NOT_EMPTY_DIRECTORY_ERROR_CODE,
88
+ path: normalizedPath
89
+ });
90
+ }
91
+ await originalMethodBound(normalizedPath, true);
92
+ }
93
+ });
94
+ }
95
+ }
96
+ export {
97
+ NOT_EMPTY_DIRECTORY_ERROR_CODE,
98
+ RmdirGuardComponent
99
+ };
100
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcm1kaXItZ3VhcmQtY29tcG9uZW50LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgY2xhc3Mge0BsaW5rIFJtZGlyR3VhcmRDb21wb25lbnR9IHRoYXQgbWFrZXMgdGhlIGByZWN1cnNpdmVgIGZsYWcgb2ZcbiAqIHtAbGluayBodHRwczovL2RvY3Mub2JzaWRpYW4ubWQvUmVmZXJlbmNlL1R5cGVTY3JpcHQrQVBJL0RhdGFBZGFwdGVyL3JtZGlyIHwgRGF0YUFkYXB0ZXIucm1kaXJ9IG1lYW4gd2hhdCBpdCBzYXlzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpc0VtcHR5Rm9sZGVyIH0gZnJvbSAnLi4vdmF1bHQudHMnO1xuaW1wb3J0IHsgTW9ua2V5QXJvdW5kQ29tcG9uZW50IH0gZnJvbSAnLi9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5cbi8qKlxuICogVGhlIGBjb2RlYCBjYXJyaWVkIGJ5IHRoZSBlcnJvciB0aHJvd24gd2hlbiBhIG5vbi1yZWN1cnNpdmUgYHJtZGlyYCBpcyByZWZ1c2VkIGJlY2F1c2UgdGhlIGZvbGRlciBoYXMgY2hpbGRyZW4uXG4gKlxuICogTWF0Y2hlcyB0aGUgUE9TSVgvTm9kZSBlcnJvciBjb2RlIGEgY29ycmVjdCBub24tcmVjdXJzaXZlIGRpcmVjdG9yeSByZW1vdmFsIHByb2R1Y2VzLCBzbyBhIGNhbGxlciBhbHJlYWR5XG4gKiBicmFuY2hpbmcgb24gYGVycm9yLmNvZGVgIGtlZXBzIHdvcmtpbmcuIENoZWNrIHRoZSBgY29kZWAsIG5ldmVyIGBpbnN0YW5jZW9mYCBcdTIwMTQgZXZlcnkgcGx1Z2luIGJ1bmRsZXMgaXRzIG93blxuICogY29weSBvZiB0aGlzIGxpYnJhcnksIHNvIHRoZSBlcnJvciBtYXkgY3Jvc3MgYSBjb3B5IGJvdW5kYXJ5LlxuICovXG5leHBvcnQgY29uc3QgTk9UX0VNUFRZX0RJUkVDVE9SWV9FUlJPUl9DT0RFID0gJ0VOT1RFTVBUWSc7XG5cbi8qKlxuICogTWFrZXMgYGFwcC52YXVsdC5hZGFwdGVyLnJtZGlyKHBhdGgsIGZhbHNlKWAgYmVoYXZlIGFzIGl0cyBuYW1lIHByb21pc2VzOiBhIG5vbi1yZWN1cnNpdmUgY2FsbCBvbiBhIGZvbGRlclxuICogdGhhdCBzdGlsbCBoYXMgY2hpbGRyZW4gdGhyb3dzIGluc3RlYWQgb2YgZGVsZXRpbmcgdGhlbS5cbiAqXG4gKiBAcmVtYXJrc1xuICogT2JzaWRpYW4ncyBhZGFwdGVycyBkbyBub3QgaG9ub3IgYHJlY3Vyc2l2ZTogZmFsc2VgLCBhbmQgdGhleSBnZXQgaXQgd3JvbmcgaW4gb3Bwb3NpdGUgZGlyZWN0aW9uczpcbiAqXG4gKiAtIGBDYXBhY2l0b3JBZGFwdGVyYCAobW9iaWxlKSBkb2VzIG5vdCBhY2NlcHQgdGhlIGFyZ3VtZW50IGF0IGFsbCBcdTIwMTQgaXQgYWx3YXlzIHJlbW92ZXMgcmVjdXJzaXZlbHksIHNvIGFcbiAqICAgbm9uLXJlY3Vyc2l2ZSBjYWxsIHNpbGVudGx5IGRlbGV0ZXMgdGhlIGZvbGRlciBhbmQgZXZlcnl0aGluZyB1bmRlciBpdC4gVGhpcyBpcyB0aGUgZGF0YS1sb3NzIGZvb3RndW4uXG4gKiAtIGBGaWxlU3lzdGVtQWRhcHRlcmAgKGRlc2t0b3ApIGZvcndhcmRzIGl0IHRvIGBmcy5wcm9taXNlcy5ybShwYXRoLCB7IHJlY3Vyc2l2ZSB9KWAsIHdoaWNoIHRocm93c1xuICogICBgRVJSX0ZTX0VJU0RJUmAgZm9yICphbnkqIGRpcmVjdG9yeSB3aGVuIGByZWN1cnNpdmVgIGlzIGBmYWxzZWAgXHUyMDE0IHNvIHRoZSBub24tcmVjdXJzaXZlIGNhbGwgbmV2ZXJcbiAqICAgc3VjY2VlZHMsIG5vdCBldmVuIG9uIGFuIGVtcHR5IGZvbGRlci5cbiAqXG4gKiBXaGlsZSBsb2FkZWQsIHRoaXMgY29tcG9uZW50IGdpdmVzIGJvdGggcGxhdGZvcm1zIHRoZSBzYW1lLCBjb3JyZWN0IGJlaGF2aW9yOiBhIG5vbi1lbXB0eSBmb2xkZXIgaXNcbiAqIHJlZnVzZWQgd2l0aCBhbiB7QGxpbmsgTk9UX0VNUFRZX0RJUkVDVE9SWV9FUlJPUl9DT0RFfSBlcnJvciBhbmQgbm90aGluZyBpcyBkZWxldGVkOyBhbiBlbXB0eSBmb2xkZXIgaXNcbiAqIHJlbW92ZWQuIEVtcHRpbmVzcyBpcyBkZWNpZGVkIGZyb20gdGhlIGFkYXB0ZXIgKHZpYSB7QGxpbmsgaXNFbXB0eUZvbGRlcn0pLCBub3QgZnJvbSB0aGUgdmF1bHQgaW5kZXggXHUyMDE0IHRoZVxuICogaW5kZXggb21pdHMgZG90LXByZWZpeGVkIGFuZCBvdGhlcndpc2UgaGlkZGVuIGVudHJpZXMsIHNvIGEgZm9sZGVyIGhvbGRpbmcgb25seSBoaWRkZW4gZmlsZXMgcmVhZHMgYXMgZW1wdHlcbiAqIHRoZXJlIGFuZCB0aGUgZ3VhcmQgd291bGQgd2F2ZSB0aHJvdWdoIGV4YWN0bHkgdGhlIGRlbGV0aW9uIGl0IGV4aXN0cyB0byBwcmV2ZW50LlxuICpcbiAqIEEgZm9sZGVyIHByb3ZlbiBlbXB0eSBpcyByZW1vdmVkIGJ5IGZvcndhcmRpbmcgdG8gdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIGByZWN1cnNpdmU6IHRydWVgLiBUaGF0IGlzIG5vdFxuICogbWVyZWx5IGRlZmVuc2l2ZTogaXQgaXMgd2hhdCBtYWtlcyB0aGUgZW1wdHktZm9sZGVyIGNhc2Ugc3VjY2VlZCBvbiBkZXNrdG9wLCB3aGVyZSB0aGUgbm9uLXJlY3Vyc2l2ZSBjYWxsXG4gKiB3b3VsZCBvdGhlcndpc2UgdGhyb3cuXG4gKlxuICogQ2FsbHMgdGhhdCBhbHJlYWR5IHBhc3MgYHJlY3Vyc2l2ZTogdHJ1ZWAsIGFuZCBjYWxscyB3aG9zZSB0YXJnZXQgaXMgbm90IGEgZm9sZGVyIChhIGZpbGUsIGEgbWlzc2luZyBwYXRoKSxcbiAqIGFyZSBwYXNzZWQgdGhyb3VnaCB1bnRvdWNoZWQgYW5kIGtlZXAgdGhlaXIgbmF0aXZlIGJlaGF2aW9yLlxuICpcbiAqIExvYWRpbmcgdGhlIGd1YXJkIG1vcmUgdGhhbiBvbmNlIGlzIHNhZmUsIGFuZCBpdCBkZWxpYmVyYXRlbHkgY2FycmllcyAqKm5vIHBhdGNoIHRva2VuKiouIEV2ZXJ5IHBsdWdpblxuICogYnVuZGxlcyBpdHMgb3duIGNvcHkgb2YgdGhpcyBsaWJyYXJ5IGFuZCB0aGV5IGFsbCBwYXRjaCB0aGUgb25lIHNoYXJlZCBhZGFwdGVyLCBzbyBzZXZlcmFsIGd1YXJkcyBkbyBzdGFja1xuICogXHUyMDE0IGJ1dCB0aGUgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQgKHByb3ZlIGVtcHR5LCB0aGVuIGRlbGV0ZSksIHNvIHN0YWNraW5nIGNoYW5nZXMgbm90aGluZzogdGhlIG91dGVybW9zdFxuICogZ3VhcmQgZWl0aGVyIHRocm93cyBvciBmb3J3YXJkcyB3aXRoIGByZWN1cnNpdmU6IHRydWVgLCB3aGljaCBldmVyeSBndWFyZCBiZW5lYXRoIHBhc3NlcyBzdHJhaWdodCB0aHJvdWdoLlxuICogVGhleSBjYW4gYWxzbyBiZSB1bmxvYWRlZCBpbiBhbnkgb3JkZXIgYW5kIHRoZSBtZXRob2Qgc3RheXMgZ3VhcmRlZCB1bnRpbCB0aGUgbGFzdCBvbmUgZ29lcywgYmVjYXVzZVxuICogYG1vbmtleS1hcm91bmRgIG5ldXRyYWxpemVzIGFuIHVubG9hZGVkIHdyYXBwZXIgaW4gcGxhY2UgcmF0aGVyIHRoYW4gc3BsaWNpbmcgaXQgb3V0LiBBIHRva2VuIHdvdWxkIG9ubHlcbiAqIG1vdmUgdGhlIGRlY2lzaW9uIHRvIHRoZSBpbm5lcm1vc3QgZ3VhcmQgXHUyMDE0IGFuIGVxdWFsbHkgYXJiaXRyYXJ5IGNob2ljZSBcdTIwMTQgd2hpbGUgYWRkaW5nIGEgcGF0aCBvbiB3aGljaCBhXG4gKiBndWFyZCBkZWNsaW5lcyB0byBndWFyZC4gRm9yIGEgZGF0YS1sb3NzIGd1YXJkIHRoYXQgdHJhZGUgaXMgbm90IHdvcnRoIG1ha2luZy4gQ29udHJhc3RcbiAqIGBSZW5hbWVEZWxldGVIYW5kbGVyQ29tcG9uZW50YCwgd2hpY2ggZG9lcyBuZWVkIG9uZTogc3VwcHJlc3NpbmcgYHJ1bkFzeW5jTGlua1VwZGF0ZWAgaXMgbm90IGlkZW1wb3RlbnQsXG4gKiBzbyB0d28gb2YgdGhvc2Ugd291bGQgY29uZmxpY3QuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaXMgZGVsaWJlcmF0ZWx5ICoqb3B0LWluKio6IGBhcHAudmF1bHQuYWRhcHRlcmAgaXMgc2hhcmVkIGJ5IHRoZSB3aG9sZSBhcHAsIHNvIGEgbGlicmFyeSB0aGF0XG4gKiBpbnN0YWxsZWQgdGhpcyBwYXRjaCBvbiBpdHMgb3duIHdvdWxkIGNoYW5nZSBgcm1kaXJgIHNlbWFudGljcyBmb3IgZXZlcnkgb3RoZXIgcGx1Z2luLCBpbmNsdWRpbmcgdGhlIG9uZXNcbiAqIHRoYXQgbmV2ZXIgYXNrZWQgZm9yIGl0LiBBIHBsdWdpbiB0aGF0IGRlbGV0ZXMgZm9sZGVycyBvcHRzIGluIGZvciBpdHNlbGY6XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB0aGlzLmFkZENoaWxkKG5ldyBSbWRpckd1YXJkQ29tcG9uZW50KHRoaXMuYXBwKSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFJtZGlyR3VhcmRDb21wb25lbnQgZXh0ZW5kcyBNb25rZXlBcm91bmRDb21wb25lbnQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUge0BsaW5rIFJtZGlyR3VhcmRDb21wb25lbnR9IGNsYXNzLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZSB3aG9zZSB2YXVsdCBhZGFwdGVyIHRvIGd1YXJkLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5zdGFsbHMgdGhlIGBybWRpcmAgZ3VhcmQuIFRoZSBwYXRjaCBpcyB1bmluc3RhbGxlZCB3aGVuIHRoaXMgY29tcG9uZW50IHVubG9hZHMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJNZXRob2RQYXRjaCh7XG4gICAgICAkb2JqZWN0OiB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLFxuICAgICAgbWV0aG9kTmFtZTogJ3JtZGlyJyxcbiAgICAgIHBhdGNoSGFuZGxlcjogYXN5bmMgKHtcbiAgICAgICAgZmFsbGJhY2ssXG4gICAgICAgIG9yaWdpbmFsQXJndW1lbnRzOiBbbm9ybWFsaXplZFBhdGgsIHJlY3Vyc2l2ZV0sXG4gICAgICAgIG9yaWdpbmFsTWV0aG9kQm91bmRcbiAgICAgIH0pID0+IHtcbiAgICAgICAgaWYgKHJlY3Vyc2l2ZSkge1xuICAgICAgICAgIGF3YWl0IGZhbGxiYWNrKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLnN0YXQobm9ybWFsaXplZFBhdGgpO1xuICAgICAgICBpZiAoc3RhdHM/LnR5cGUgIT09ICdmb2xkZXInKSB7XG4gICAgICAgICAgYXdhaXQgZmFsbGJhY2soKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWF3YWl0IGlzRW1wdHlGb2xkZXIodGhpcy5hcHAsIG5vcm1hbGl6ZWRQYXRoKSkge1xuICAgICAgICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKGBEaXJlY3RvcnkgJHtub3JtYWxpemVkUGF0aH0gaXMgbm90IGVtcHR5YCksIHtcbiAgICAgICAgICAgIGNvZGU6IE5PVF9FTVBUWV9ESVJFQ1RPUllfRVJST1JfQ09ERSxcbiAgICAgICAgICAgIHBhdGg6IG5vcm1hbGl6ZWRQYXRoXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZm9sZGVyIGlzIHByb3ZlbiBlbXB0eSwgc28gYSByZWN1cnNpdmUgcmVtb3ZhbCBpcyBlcXVpdmFsZW50IC0tIGFuZCwgdW5saWtlIHRoZSBub24tcmVjdXJzaXZlXG4gICAgICAgIC8vIG9uZSwgaXQgYWN0dWFsbHkgd29ya3Mgb24gdGhlIGRlc2t0b3AgYWRhcHRlci5cbiAgICAgICAgYXdhaXQgb3JpZ2luYWxNZXRob2RCb3VuZChub3JtYWxpemVkUGF0aCwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTQSxTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDZCQUE2QjtBQVMvQixNQUFNLGlDQUFpQztBQWdEdkMsTUFBTSw0QkFBNEIsc0JBQXNCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXRELFlBQStCLEtBQVU7QUFDOUMsVUFBTTtBQUQ4QjtBQUFBLEVBRXRDO0FBQUEsRUFGc0M7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU90QixTQUFlO0FBQzdCLFNBQUssb0JBQW9CO0FBQUEsTUFDdkIsU0FBUyxLQUFLLElBQUksTUFBTTtBQUFBLE1BQ3hCLFlBQVk7QUFBQSxNQUNaLGNBQWMsT0FBTztBQUFBLFFBQ25CO0FBQUEsUUFDQSxtQkFBbUIsQ0FBQyxnQkFBZ0IsU0FBUztBQUFBLFFBQzdDO0FBQUEsTUFDRixNQUFNO0FBQ0osWUFBSSxXQUFXO0FBQ2IsZ0JBQU0sU0FBUztBQUNmO0FBQUEsUUFDRjtBQUVBLGNBQU0sUUFBUSxNQUFNLEtBQUssSUFBSSxNQUFNLFFBQVEsS0FBSyxjQUFjO0FBQzlELFlBQUksT0FBTyxTQUFTLFVBQVU7QUFDNUIsZ0JBQU0sU0FBUztBQUNmO0FBQUEsUUFDRjtBQUVBLFlBQUksQ0FBQyxNQUFNLGNBQWMsS0FBSyxLQUFLLGNBQWMsR0FBRztBQUNsRCxnQkFBTSxPQUFPLE9BQU8sSUFBSSxNQUFNLGFBQWEsY0FBYyxlQUFlLEdBQUc7QUFBQSxZQUN6RSxNQUFNO0FBQUEsWUFDTixNQUFNO0FBQUEsVUFDUixDQUFDO0FBQUEsUUFDSDtBQUlBLGNBQU0sb0JBQW9CLGdCQUFnQixJQUFJO0FBQUEsTUFDaEQ7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,120 @@
1
+ /// <reference path="../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Component that offers settings this plugin used to own to the plugin that owns them now, once, through
6
+ * that plugin's public API.
7
+ *
8
+ * This is the other half of {@link components/plugin-suggestion-component!PluginSuggestionComponent}.
9
+ * The suggestion asks the user to install the plugin that took a feature over; this carries the settings they
10
+ * had configured for it across, so taking the suggestion does not mean re-entering everything by hand.
11
+ *
12
+ * A proposing plugin never writes into another plugin's `data.json`. It PROPOSES: the other plugin owns the
13
+ * settings, so it owns the dialog, and the user approves, edits or declines. Only an applied migration retires
14
+ * the pending values.
15
+ *
16
+ * The offer is made whenever it CAN succeed, which needs two independent things to have happened — the
17
+ * provider's API being available, and this plugin's own settings having arrived from disk. Either can land
18
+ * first, so both edges are wired and each re-reads the current state rather than assuming the other has
19
+ * already happened.
20
+ */
21
+ import type { App } from 'obsidian';
22
+ import type { Promisable } from 'type-fest';
23
+ import type { PluginApiContract } from '../plugin/plugin-api.mjs';
24
+ import type { PluginSettingsComponentBase } from './plugin-settings-component.mjs';
25
+ import { ComponentEx } from './component-ex.mjs';
26
+ /**
27
+ * Parameters for the {@link SettingsMigrationComponent} constructor.
28
+ *
29
+ * @typeParam TMigratableSettings - The settings this plugin may hand over.
30
+ */
31
+ export interface SettingsMigrationComponentConstructorParams<TMigratableSettings extends object> {
32
+ /**
33
+ * The semver range of contract versions this plugin compiled against, e.g. `'^1'`.
34
+ *
35
+ * @remarks
36
+ * Evaluated by `compare-versions`, which does NOT accept a bare `*`. Spell "any version" as `'>=0.0.0'`.
37
+ */
38
+ readonly apiVersionRange: string;
39
+ /**
40
+ * The Obsidian app instance.
41
+ */
42
+ readonly app: App;
43
+ /**
44
+ * The contract this plugin expects of the provider, which wins over the provider's own when supplied.
45
+ *
46
+ * Worth supplying, and worth keeping NARROW. A migration usually needs one method that has existed since the
47
+ * provider's first contract version, while the same plugin may read other parts of that API through a much
48
+ * newer one. Declaring the wider expectation here would refuse to offer the migration to a user on an older
49
+ * provider — which is precisely the user who still has settings to migrate.
50
+ */
51
+ readonly contract?: PluginApiContract;
52
+ /**
53
+ * Reads the values currently waiting to be handed over.
54
+ *
55
+ * Called afresh on every edge rather than once, so an implementation simply reads its plugin's settings.
56
+ * Return `null` when there is nothing pending — after a migration has been applied, or on a vault that never
57
+ * had these settings configured.
58
+ *
59
+ * @returns The values to propose, or `null` when there is nothing to offer.
60
+ */
61
+ readonly getProposedSettings: () => null | TMigratableSettings;
62
+ /**
63
+ * The settings component of the plugin making the proposal.
64
+ *
65
+ * Taken as a whole component rather than as a bare "ready" flag so the host cannot forget to wire the wait:
66
+ * whatever {@link getProposedSettings} reads is meaningless until this component has read `data.json`.
67
+ */
68
+ readonly pluginSettingsComponent: PluginSettingsComponentBase<object>;
69
+ /**
70
+ * The `manifest.id` of the plugin that owns these settings now, as listed in Obsidian's community plugin
71
+ * registry.
72
+ */
73
+ readonly providerPluginId: string;
74
+ /**
75
+ * Records that the pending values have been handed over, so the offer is not made again.
76
+ *
77
+ * Called ONLY when the user actually applied the migration.
78
+ *
79
+ * @returns A {@link Promise} that resolves once the retirement is persisted.
80
+ *
81
+ * @remarks
82
+ * An implementation must PERSIST the retirement — `pluginSettingsComponent.editAndSave(…)`, not
83
+ * `setProperty(…)`. The latter only edits the in-memory state, so the retirement is forgotten on the next
84
+ * reload and the migration is offered again forever.
85
+ */
86
+ readonly retireProposedSettings: () => Promisable<void>;
87
+ /**
88
+ * The `manifest.id` of the plugin making the proposal, so the provider's dialog can say whose settings these
89
+ * are.
90
+ */
91
+ readonly sourcePluginId: string;
92
+ }
93
+ /**
94
+ * Offers settings this plugin used to own to the plugin that owns them now.
95
+ *
96
+ * @typeParam TMigratableSettings - The settings this plugin may hand over.
97
+ */
98
+ export declare class SettingsMigrationComponent<TMigratableSettings extends object> extends ComponentEx {
99
+ private readonly apiVersionRange;
100
+ private readonly app;
101
+ private readonly contract;
102
+ private readonly getProposedSettings;
103
+ private isProposing;
104
+ private readonly pluginSettingsComponent;
105
+ private readonly providerPluginId;
106
+ private readonly retireProposedSettings;
107
+ private readonly sourcePluginId;
108
+ /**
109
+ * Creates an instance of {@link SettingsMigrationComponent}.
110
+ *
111
+ * @param params - The constructor parameters.
112
+ */
113
+ constructor(params: SettingsMigrationComponentConstructorParams<TMigratableSettings>);
114
+ /**
115
+ * Loads the component, wiring both edges that can make an offer possible.
116
+ */
117
+ onload(): void;
118
+ private handleChange;
119
+ private propose;
120
+ }
@@ -0,0 +1,133 @@
1
+ /*
2
+ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
3
+ if you want to view the source, please visit the github repository of this plugin
4
+ */
5
+
6
+ (function () {
7
+ function ensureDisposeSymbols(symbolConstructor = Symbol) {
8
+ symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
9
+ symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
10
+ }
11
+
12
+ function ensureBrowserProcess() {
13
+ const browserProcess = {
14
+ browser: true,
15
+ cwd() {
16
+ return '/';
17
+ },
18
+ env: {},
19
+ platform: 'android'
20
+ };
21
+
22
+ // eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
23
+ const existingProcess = globalThis.process;
24
+
25
+ if (!existingProcess) {
26
+ // eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
27
+ globalThis.process = browserProcess;
28
+ return;
29
+ }
30
+
31
+ if (existingProcess.versions?.node) {
32
+ return;
33
+ }
34
+
35
+ const existingProcessRecord = existingProcess;
36
+
37
+ for (const [key, value] of Object.entries(browserProcess)) {
38
+ existingProcessRecord[key] ??= value;
39
+ }
40
+
41
+ existingProcessRecord['browser'] = true;
42
+ }
43
+
44
+ (function initEsm() {
45
+ ensureDisposeSymbols();
46
+ ensureBrowserProcess();
47
+ })();
48
+ })();
49
+
50
+ import { invokeAsyncSafely } from "@mnaoumov/typescript-lib/async";
51
+ import { normalizeOptionalProperties } from "@mnaoumov/typescript-lib/object-utils";
52
+ import { watchPluginApi } from "../plugin/plugin-api.mjs";
53
+ import { registerAsyncEvent } from "./async-events-component.mjs";
54
+ import { ComponentEx } from "./component-ex.mjs";
55
+ class SettingsMigrationComponent extends ComponentEx {
56
+ apiVersionRange;
57
+ app;
58
+ contract;
59
+ getProposedSettings;
60
+ isProposing = false;
61
+ pluginSettingsComponent;
62
+ providerPluginId;
63
+ retireProposedSettings;
64
+ sourcePluginId;
65
+ /**
66
+ * Creates an instance of {@link SettingsMigrationComponent}.
67
+ *
68
+ * @param params - The constructor parameters.
69
+ */
70
+ constructor(params) {
71
+ super();
72
+ this.apiVersionRange = params.apiVersionRange;
73
+ this.app = params.app;
74
+ this.contract = params.contract;
75
+ this.getProposedSettings = params.getProposedSettings;
76
+ this.pluginSettingsComponent = params.pluginSettingsComponent;
77
+ this.providerPluginId = params.providerPluginId;
78
+ this.retireProposedSettings = params.retireProposedSettings;
79
+ this.sourcePluginId = params.sourcePluginId;
80
+ }
81
+ /**
82
+ * Loads the component, wiring both edges that can make an offer possible.
83
+ */
84
+ onload() {
85
+ const ref = watchPluginApi(normalizeOptionalProperties({
86
+ apiVersionRange: this.apiVersionRange,
87
+ app: this.app,
88
+ component: this,
89
+ contract: this.contract,
90
+ pluginId: this.providerPluginId
91
+ }));
92
+ registerAsyncEvent(
93
+ this,
94
+ ref.on("change", () => {
95
+ this.handleChange(ref);
96
+ })
97
+ );
98
+ registerAsyncEvent(
99
+ this,
100
+ this.pluginSettingsComponent.on("loadSettings", () => {
101
+ this.handleChange(ref);
102
+ })
103
+ );
104
+ this.handleChange(ref);
105
+ }
106
+ handleChange(ref) {
107
+ invokeAsyncSafely(async () => {
108
+ await this.propose(ref.value);
109
+ });
110
+ }
111
+ async propose(api) {
112
+ const proposedSettings = this.getProposedSettings();
113
+ if (!api || this.isProposing || proposedSettings === null) {
114
+ return;
115
+ }
116
+ this.isProposing = true;
117
+ try {
118
+ const result = await api.migrateSettings({
119
+ proposedSettings,
120
+ sourcePluginId: this.sourcePluginId
121
+ });
122
+ if (result.isApplied) {
123
+ await this.retireProposedSettings();
124
+ }
125
+ } finally {
126
+ this.isProposing = false;
127
+ }
128
+ }
129
+ }
130
+ export {
131
+ SettingsMigrationComponent
132
+ };
133
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IG9mZmVycyBzZXR0aW5ncyB0aGlzIHBsdWdpbiB1c2VkIHRvIG93biB0byB0aGUgcGx1Z2luIHRoYXQgb3ducyB0aGVtIG5vdywgb25jZSwgdGhyb3VnaFxuICogdGhhdCBwbHVnaW4ncyBwdWJsaWMgQVBJLlxuICpcbiAqIFRoaXMgaXMgdGhlIG90aGVyIGhhbGYgb2Yge0BsaW5rIGNvbXBvbmVudHMvcGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IVBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnR9LlxuICogVGhlIHN1Z2dlc3Rpb24gYXNrcyB0aGUgdXNlciB0byBpbnN0YWxsIHRoZSBwbHVnaW4gdGhhdCB0b29rIGEgZmVhdHVyZSBvdmVyOyB0aGlzIGNhcnJpZXMgdGhlIHNldHRpbmdzIHRoZXlcbiAqIGhhZCBjb25maWd1cmVkIGZvciBpdCBhY3Jvc3MsIHNvIHRha2luZyB0aGUgc3VnZ2VzdGlvbiBkb2VzIG5vdCBtZWFuIHJlLWVudGVyaW5nIGV2ZXJ5dGhpbmcgYnkgaGFuZC5cbiAqXG4gKiBBIHByb3Bvc2luZyBwbHVnaW4gbmV2ZXIgd3JpdGVzIGludG8gYW5vdGhlciBwbHVnaW4ncyBgZGF0YS5qc29uYC4gSXQgUFJPUE9TRVM6IHRoZSBvdGhlciBwbHVnaW4gb3ducyB0aGVcbiAqIHNldHRpbmdzLCBzbyBpdCBvd25zIHRoZSBkaWFsb2csIGFuZCB0aGUgdXNlciBhcHByb3ZlcywgZWRpdHMgb3IgZGVjbGluZXMuIE9ubHkgYW4gYXBwbGllZCBtaWdyYXRpb24gcmV0aXJlc1xuICogdGhlIHBlbmRpbmcgdmFsdWVzLlxuICpcbiAqIFRoZSBvZmZlciBpcyBtYWRlIHdoZW5ldmVyIGl0IENBTiBzdWNjZWVkLCB3aGljaCBuZWVkcyB0d28gaW5kZXBlbmRlbnQgdGhpbmdzIHRvIGhhdmUgaGFwcGVuZWQgXHUyMDE0IHRoZVxuICogcHJvdmlkZXIncyBBUEkgYmVpbmcgYXZhaWxhYmxlLCBhbmQgdGhpcyBwbHVnaW4ncyBvd24gc2V0dGluZ3MgaGF2aW5nIGFycml2ZWQgZnJvbSBkaXNrLiBFaXRoZXIgY2FuIGxhbmRcbiAqIGZpcnN0LCBzbyBib3RoIGVkZ2VzIGFyZSB3aXJlZCBhbmQgZWFjaCByZS1yZWFkcyB0aGUgY3VycmVudCBzdGF0ZSByYXRoZXIgdGhhbiBhc3N1bWluZyB0aGUgb3RoZXIgaGFzXG4gKiBhbHJlYWR5IGhhcHBlbmVkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBQcm9taXNhYmxlIH0gZnJvbSAndHlwZS1mZXN0JztcblxuaW1wb3J0IHsgaW52b2tlQXN5bmNTYWZlbHkgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYXN5bmMnO1xuaW1wb3J0IHsgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luQXBpQ29udHJhY3QsXG4gIFBsdWdpbkFwaVJlZixcbiAgV2F0Y2hQbHVnaW5BcGlQYXJhbXNcbn0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1hcGkudHMnO1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nc01pZ3JhdGlvbkFwaSB9IGZyb20gJy4uL3BsdWdpbi9zZXR0aW5ncy1taWdyYXRpb24tYXBpLnRzJztcbmltcG9ydCB0eXBlIHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9wbHVnaW4tc2V0dGluZ3MtY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHsgd2F0Y2hQbHVnaW5BcGkgfSBmcm9tICcuLi9wbHVnaW4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgeyByZWdpc3RlckFzeW5jRXZlbnQgfSBmcm9tICcuL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdGhlIHtAbGluayBTZXR0aW5nc01pZ3JhdGlvbkNvbXBvbmVudH0gY29uc3RydWN0b3IuXG4gKlxuICogQHR5cGVQYXJhbSBUTWlncmF0YWJsZVNldHRpbmdzIC0gVGhlIHNldHRpbmdzIHRoaXMgcGx1Z2luIG1heSBoYW5kIG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnRDb25zdHJ1Y3RvclBhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiB7XG4gIC8qKlxuICAgKiBUaGUgc2VtdmVyIHJhbmdlIG9mIGNvbnRyYWN0IHZlcnNpb25zIHRoaXMgcGx1Z2luIGNvbXBpbGVkIGFnYWluc3QsIGUuZy4gYCdeMSdgLlxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBFdmFsdWF0ZWQgYnkgYGNvbXBhcmUtdmVyc2lvbnNgLCB3aGljaCBkb2VzIE5PVCBhY2NlcHQgYSBiYXJlIGAqYC4gU3BlbGwgXCJhbnkgdmVyc2lvblwiIGFzIGAnPj0wLjAuMCdgLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBpVmVyc2lvblJhbmdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBhcHA6IEFwcDtcblxuICAvKipcbiAgICogVGhlIGNvbnRyYWN0IHRoaXMgcGx1Z2luIGV4cGVjdHMgb2YgdGhlIHByb3ZpZGVyLCB3aGljaCB3aW5zIG92ZXIgdGhlIHByb3ZpZGVyJ3Mgb3duIHdoZW4gc3VwcGxpZWQuXG4gICAqXG4gICAqIFdvcnRoIHN1cHBseWluZywgYW5kIHdvcnRoIGtlZXBpbmcgTkFSUk9XLiBBIG1pZ3JhdGlvbiB1c3VhbGx5IG5lZWRzIG9uZSBtZXRob2QgdGhhdCBoYXMgZXhpc3RlZCBzaW5jZSB0aGVcbiAgICogcHJvdmlkZXIncyBmaXJzdCBjb250cmFjdCB2ZXJzaW9uLCB3aGlsZSB0aGUgc2FtZSBwbHVnaW4gbWF5IHJlYWQgb3RoZXIgcGFydHMgb2YgdGhhdCBBUEkgdGhyb3VnaCBhIG11Y2hcbiAgICogbmV3ZXIgb25lLiBEZWNsYXJpbmcgdGhlIHdpZGVyIGV4cGVjdGF0aW9uIGhlcmUgd291bGQgcmVmdXNlIHRvIG9mZmVyIHRoZSBtaWdyYXRpb24gdG8gYSB1c2VyIG9uIGFuIG9sZGVyXG4gICAqIHByb3ZpZGVyIFx1MjAxNCB3aGljaCBpcyBwcmVjaXNlbHkgdGhlIHVzZXIgd2hvIHN0aWxsIGhhcyBzZXR0aW5ncyB0byBtaWdyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udHJhY3Q/OiBQbHVnaW5BcGlDb250cmFjdDtcblxuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlcyBjdXJyZW50bHkgd2FpdGluZyB0byBiZSBoYW5kZWQgb3Zlci5cbiAgICpcbiAgICogQ2FsbGVkIGFmcmVzaCBvbiBldmVyeSBlZGdlIHJhdGhlciB0aGFuIG9uY2UsIHNvIGFuIGltcGxlbWVudGF0aW9uIHNpbXBseSByZWFkcyBpdHMgcGx1Z2luJ3Mgc2V0dGluZ3MuXG4gICAqIFJldHVybiBgbnVsbGAgd2hlbiB0aGVyZSBpcyBub3RoaW5nIHBlbmRpbmcgXHUyMDE0IGFmdGVyIGEgbWlncmF0aW9uIGhhcyBiZWVuIGFwcGxpZWQsIG9yIG9uIGEgdmF1bHQgdGhhdCBuZXZlclxuICAgKiBoYWQgdGhlc2Ugc2V0dGluZ3MgY29uZmlndXJlZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbHVlcyB0byBwcm9wb3NlLCBvciBgbnVsbGAgd2hlbiB0aGVyZSBpcyBub3RoaW5nIHRvIG9mZmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0UHJvcG9zZWRTZXR0aW5nczogKCkgPT4gbnVsbCB8IFRNaWdyYXRhYmxlU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFRoZSBzZXR0aW5ncyBjb21wb25lbnQgb2YgdGhlIHBsdWdpbiBtYWtpbmcgdGhlIHByb3Bvc2FsLlxuICAgKlxuICAgKiBUYWtlbiBhcyBhIHdob2xlIGNvbXBvbmVudCByYXRoZXIgdGhhbiBhcyBhIGJhcmUgXCJyZWFkeVwiIGZsYWcgc28gdGhlIGhvc3QgY2Fubm90IGZvcmdldCB0byB3aXJlIHRoZSB3YWl0OlxuICAgKiB3aGF0ZXZlciB7QGxpbmsgZ2V0UHJvcG9zZWRTZXR0aW5nc30gcmVhZHMgaXMgbWVhbmluZ2xlc3MgdW50aWwgdGhpcyBjb21wb25lbnQgaGFzIHJlYWQgYGRhdGEuanNvbmAuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5TZXR0aW5nc0NvbXBvbmVudDogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG5cbiAgLyoqXG4gICAqIFRoZSBgbWFuaWZlc3QuaWRgIG9mIHRoZSBwbHVnaW4gdGhhdCBvd25zIHRoZXNlIHNldHRpbmdzIG5vdywgYXMgbGlzdGVkIGluIE9ic2lkaWFuJ3MgY29tbXVuaXR5IHBsdWdpblxuICAgKiByZWdpc3RyeS5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVyUGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUmVjb3JkcyB0aGF0IHRoZSBwZW5kaW5nIHZhbHVlcyBoYXZlIGJlZW4gaGFuZGVkIG92ZXIsIHNvIHRoZSBvZmZlciBpcyBub3QgbWFkZSBhZ2Fpbi5cbiAgICpcbiAgICogQ2FsbGVkIE9OTFkgd2hlbiB0aGUgdXNlciBhY3R1YWxseSBhcHBsaWVkIHRoZSBtaWdyYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgcmV0aXJlbWVudCBpcyBwZXJzaXN0ZWQuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIEFuIGltcGxlbWVudGF0aW9uIG11c3QgUEVSU0lTVCB0aGUgcmV0aXJlbWVudCBcdTIwMTQgYHBsdWdpblNldHRpbmdzQ29tcG9uZW50LmVkaXRBbmRTYXZlKFx1MjAyNilgLCBub3RcbiAgICogYHNldFByb3BlcnR5KFx1MjAyNilgLiBUaGUgbGF0dGVyIG9ubHkgZWRpdHMgdGhlIGluLW1lbW9yeSBzdGF0ZSwgc28gdGhlIHJldGlyZW1lbnQgaXMgZm9yZ290dGVuIG9uIHRoZSBuZXh0XG4gICAqIHJlbG9hZCBhbmQgdGhlIG1pZ3JhdGlvbiBpcyBvZmZlcmVkIGFnYWluIGZvcmV2ZXIuXG4gICAqL1xuICByZWFkb25seSByZXRpcmVQcm9wb3NlZFNldHRpbmdzOiAoKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgYG1hbmlmZXN0LmlkYCBvZiB0aGUgcGx1Z2luIG1ha2luZyB0aGUgcHJvcG9zYWwsIHNvIHRoZSBwcm92aWRlcidzIGRpYWxvZyBjYW4gc2F5IHdob3NlIHNldHRpbmdzIHRoZXNlXG4gICAqIGFyZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBsdWdpbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT2ZmZXJzIHNldHRpbmdzIHRoaXMgcGx1Z2luIHVzZWQgdG8gb3duIHRvIHRoZSBwbHVnaW4gdGhhdCBvd25zIHRoZW0gbm93LlxuICpcbiAqIEB0eXBlUGFyYW0gVE1pZ3JhdGFibGVTZXR0aW5ncyAtIFRoZSBzZXR0aW5ncyB0aGlzIHBsdWdpbiBtYXkgaGFuZCBvdmVyLlxuICovXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnQ8VE1pZ3JhdGFibGVTZXR0aW5ncyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBDb21wb25lbnRFeCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpVmVyc2lvblJhbmdlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udHJhY3Q6IFBsdWdpbkFwaUNvbnRyYWN0IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IGdldFByb3Bvc2VkU2V0dGluZ3M6ICgpID0+IG51bGwgfCBUTWlncmF0YWJsZVNldHRpbmdzO1xuICBwcml2YXRlIGlzUHJvcG9zaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQ6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+O1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyUGx1Z2luSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXRpcmVQcm9wb3NlZFNldHRpbmdzOiAoKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZVBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIFNldHRpbmdzTWlncmF0aW9uQ29tcG9uZW50fS5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjb25zdHJ1Y3RvciBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogU2V0dGluZ3NNaWdyYXRpb25Db21wb25lbnRDb25zdHJ1Y3RvclBhcmFtczxUTWlncmF0YWJsZVNldHRpbmdzPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcGlWZXJzaW9uUmFuZ2UgPSBwYXJhbXMuYXBpVmVyc2lvblJhbmdlO1xuICAgIHRoaXMuYXBwID0gcGFyYW1zLmFwcDtcbiAgICB0aGlzLmNvbnRyYWN0ID0gcGFyYW1zLmNvbnRyYWN0O1xuICAgIHRoaXMuZ2V0UHJvcG9zZWRTZXR0aW5ncyA9IHBhcmFtcy5nZXRQcm9wb3NlZFNldHRpbmdzO1xuICAgIHRoaXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQgPSBwYXJhbXMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQ7XG4gICAgdGhpcy5wcm92aWRlclBsdWdpbklkID0gcGFyYW1zLnByb3ZpZGVyUGx1Z2luSWQ7XG4gICAgdGhpcy5yZXRpcmVQcm9wb3NlZFNldHRpbmdzID0gcGFyYW1zLnJldGlyZVByb3Bvc2VkU2V0dGluZ3M7XG4gICAgdGhpcy5zb3VyY2VQbHVnaW5JZCA9IHBhcmFtcy5zb3VyY2VQbHVnaW5JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgY29tcG9uZW50LCB3aXJpbmcgYm90aCBlZGdlcyB0aGF0IGNhbiBtYWtlIGFuIG9mZmVyIHBvc3NpYmxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9ubG9hZCgpOiB2b2lkIHtcbiAgICAvLyBOb3RoaW5nIGlzIGdhdGVkIG9uIHRoZSBwZW5kaW5nIHZhbHVlcyBIRVJFLiBUaGUgc2V0dGluZ3MgY29tcG9uZW50IGlzIGEgc2libGluZyB3aG9zZSBvd24gbG9hZCBpcyBzdGlsbFxuICAgIC8vIGluIGZsaWdodCBhdCB0aGlzIHBvaW50LCBzbyBpdCBzdGlsbCBob2xkcyB0aGUgREVGQVVMVFMgXHUyMDE0IHJlYWRpbmcgdGhlIHBlbmRpbmcgdmFsdWVzIG5vdyB3b3VsZCBzZWVcbiAgICAvLyBub3RoaW5nIG9uIGV4YWN0bHkgdGhlIHZhdWx0cyB0aGF0IGhhdmUgc29tZXRoaW5nLCByZWdpc3RlciBubyB3YXRjaCwgYW5kIGxvc2UgdGhlIG1pZ3JhdGlvbiBmb3IgZ29vZC5cbiAgICAvLyBCb3RoIGVkZ2VzIGFyZSB3aXJlZCBpbnN0ZWFkLCBhbmQgYHByb3Bvc2VgIHJlLXJlYWRzIHRoZSB2YWx1ZXMgZWFjaCB0aW1lIGl0IHJ1bnMuXG4gICAgY29uc3QgcmVmID0gd2F0Y2hQbHVnaW5BcGk8U2V0dGluZ3NNaWdyYXRpb25BcGk8VE1pZ3JhdGFibGVTZXR0aW5ncz4+KG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxXYXRjaFBsdWdpbkFwaVBhcmFtcz4oe1xuICAgICAgYXBpVmVyc2lvblJhbmdlOiB0aGlzLmFwaVZlcnNpb25SYW5nZSxcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBjb250cmFjdDogdGhpcy5jb250cmFjdCxcbiAgICAgIHBsdWdpbklkOiB0aGlzLnByb3ZpZGVyUGx1Z2luSWRcbiAgICB9KSk7XG5cbiAgICAvLyBEcml2ZW4gYnkgdGhlIHJlZidzIG93biBldmVudCByYXRoZXIgdGhhbiBieSBgd2hlbkF2YWlsYWJsZSgpYCwgZGVsaWJlcmF0ZWx5LiBUaGF0IHdhaXQgYmxvY2tzIGZvciB0ZW5cbiAgICAvLyBzZWNvbmRzIGFuZCB0aGVuIHRocm93cyB3aGVuIHRoZSBwcm92aWRlciBpcyBzaW1wbHkgbm90IGluc3RhbGxlZCwgd2hpY2ggd291bGQgc3RhbGwgdGhpcyBwbHVnaW4ncyBsb2FkXG4gICAgLy8gZm9yIGV2ZXJ5IHVzZXIgd2hvIGRlY2xpbmVzIHRoZSBzdWdnZXN0aW9uLiBXYXRjaGluZyBjb3N0cyBub3RoaW5nIHdoaWxlIHRoZSBwcm92aWRlciBpcyBhYnNlbnQgYW5kXG4gICAgLy8gb2ZmZXJzIHRoZSBtaWdyYXRpb24gdGhlIG1vbWVudCBpdCBhcHBlYXJzIFx1MjAxNCBpbmNsdWRpbmcgcmlnaHQgYWZ0ZXIgdGhlIHVzZXIgaW5zdGFsbHMgaXQgZnJvbSB0aGVcbiAgICAvLyBzdWdnZXN0aW9uIGJhbm5lci5cbiAgICByZWdpc3RlckFzeW5jRXZlbnQoXG4gICAgICB0aGlzLFxuICAgICAgcmVmLm9uKCdjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHJlZik7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBUaGUgc2Vjb25kIGVkZ2U6IHRoaXMgcGx1Z2luJ3Mgb3duIHNldHRpbmdzIGFycml2aW5nIGZyb20gZGlzay4gSXQgbWF5IGZpcmUgYmVmb3JlIG9yIGFmdGVyIHRoZSBmaXJzdC5cbiAgICByZWdpc3RlckFzeW5jRXZlbnQoXG4gICAgICB0aGlzLFxuICAgICAgdGhpcy5wbHVnaW5TZXR0aW5nc0NvbXBvbmVudC5vbignbG9hZFNldHRpbmdzJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZShyZWYpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5oYW5kbGVDaGFuZ2UocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2hhbmdlKHJlZjogUGx1Z2luQXBpUmVmPFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3M+Pik6IHZvaWQge1xuICAgIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucHJvcG9zZShyZWYudmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9wb3NlKGFwaTogbnVsbCB8IFNldHRpbmdzTWlncmF0aW9uQXBpPFRNaWdyYXRhYmxlU2V0dGluZ3M+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvcG9zZWRTZXR0aW5ncyA9IHRoaXMuZ2V0UHJvcG9zZWRTZXR0aW5ncygpO1xuICAgIGlmICghYXBpIHx8IHRoaXMuaXNQcm9wb3NpbmcgfHwgcHJvcG9zZWRTZXR0aW5ncyA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJvdGggZWRnZXMgY2FuIGZpcmUgd2hpbGUgdGhlIHByb3ZpZGVyJ3MgZGlhbG9nIGlzIG9wZW4sIGFuZCBlYWNoIHdvdWxkIHJhaXNlIGEgc2Vjb25kIG9uZS5cbiAgICB0aGlzLmlzUHJvcG9zaW5nID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpLm1pZ3JhdGVTZXR0aW5ncyh7XG4gICAgICAgIHByb3Bvc2VkU2V0dGluZ3MsXG4gICAgICAgIHNvdXJjZVBsdWdpbklkOiB0aGlzLnNvdXJjZVBsdWdpbklkXG4gICAgICB9KTtcblxuICAgICAgLy8gQSBjYW5jZWwgaXMgbm90IGFuIGFuc3dlciwgc28gdGhlIHZhbHVlcyBzdGF5IHBlbmRpbmcgYW5kIHRoZSBvZmZlciBjb21lcyBiYWNrIFx1MjAxNCBvbiB0aGUgbmV4dCBsb2FkLCBvclxuICAgICAgLy8gYXMgc29vbiBhcyB0aGUgcHJvdmlkZXIgcmVsb2Fkcy4gT25seSBhbiBhcHBsaWVkIG1pZ3JhdGlvbiByZXRpcmVzIHRoZW0uXG4gICAgICBpZiAocmVzdWx0LmlzQXBwbGllZCkge1xuICAgICAgICBhd2FpdCB0aGlzLnJldGlyZVByb3Bvc2VkU2V0dGluZ3MoKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc1Byb3Bvc2luZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLG1DQUFtQztBQVU1QyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLDBCQUEwQjtBQUNuQyxTQUFTLG1CQUFtQjtBQWtGckIsTUFBTSxtQ0FBdUUsWUFBWTtBQUFBLEVBQzdFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDTDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9WLFlBQVksUUFBMEU7QUFDM0YsVUFBTTtBQUNOLFNBQUssa0JBQWtCLE9BQU87QUFDOUIsU0FBSyxNQUFNLE9BQU87QUFDbEIsU0FBSyxXQUFXLE9BQU87QUFDdkIsU0FBSyxzQkFBc0IsT0FBTztBQUNsQyxTQUFLLDBCQUEwQixPQUFPO0FBQ3RDLFNBQUssbUJBQW1CLE9BQU87QUFDL0IsU0FBSyx5QkFBeUIsT0FBTztBQUNyQyxTQUFLLGlCQUFpQixPQUFPO0FBQUEsRUFDL0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtnQixTQUFlO0FBSzdCLFVBQU0sTUFBTSxlQUEwRCw0QkFBa0Q7QUFBQSxNQUN0SCxpQkFBaUIsS0FBSztBQUFBLE1BQ3RCLEtBQUssS0FBSztBQUFBLE1BQ1YsV0FBVztBQUFBLE1BQ1gsVUFBVSxLQUFLO0FBQUEsTUFDZixVQUFVLEtBQUs7QUFBQSxJQUNqQixDQUFDLENBQUM7QUFPRjtBQUFBLE1BQ0U7QUFBQSxNQUNBLElBQUksR0FBRyxVQUFVLE1BQU07QUFDckIsYUFBSyxhQUFhLEdBQUc7QUFBQSxNQUN2QixDQUFDO0FBQUEsSUFDSDtBQUdBO0FBQUEsTUFDRTtBQUFBLE1BQ0EsS0FBSyx3QkFBd0IsR0FBRyxnQkFBZ0IsTUFBTTtBQUNwRCxhQUFLLGFBQWEsR0FBRztBQUFBLE1BQ3ZCLENBQUM7QUFBQSxJQUNIO0FBRUEsU0FBSyxhQUFhLEdBQUc7QUFBQSxFQUN2QjtBQUFBLEVBRVEsYUFBYSxLQUFvRTtBQUN2RixzQkFBa0IsWUFBWTtBQUM1QixZQUFNLEtBQUssUUFBUSxJQUFJLEtBQUs7QUFBQSxJQUM5QixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRUEsTUFBYyxRQUFRLEtBQXNFO0FBQzFGLFVBQU0sbUJBQW1CLEtBQUssb0JBQW9CO0FBQ2xELFFBQUksQ0FBQyxPQUFPLEtBQUssZUFBZSxxQkFBcUIsTUFBTTtBQUN6RDtBQUFBLElBQ0Y7QUFHQSxTQUFLLGNBQWM7QUFDbkIsUUFBSTtBQUNGLFlBQU0sU0FBUyxNQUFNLElBQUksZ0JBQWdCO0FBQUEsUUFDdkM7QUFBQSxRQUNBLGdCQUFnQixLQUFLO0FBQUEsTUFDdkIsQ0FBQztBQUlELFVBQUksT0FBTyxXQUFXO0FBQ3BCLGNBQU0sS0FBSyx1QkFBdUI7QUFBQSxNQUNwQztBQUFBLElBQ0YsVUFBRTtBQUNBLFdBQUssY0FBYztBQUFBLElBQ3JCO0FBQUEsRUFDRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -0,0 +1,149 @@
1
+ /// <reference path="../library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Contains class {@link SyntaxHighlightingComponent} that registers syntax highlighting languages.
6
+ *
7
+ * Obsidian highlights code in two independent places, through two separate registries, and a plugin adding
8
+ * its own language usually has to touch both:
9
+ *
10
+ * - **Prism** (`prism.languages[language]`) highlights code in reading view and in every `<pre><code>` the
11
+ * library renders — including the {@link CodeHighlighterComponent} settings field.
12
+ * - **The CodeMirror 5 mode registry** (`window.CodeMirror.modes[language]`) highlights a fenced code block
13
+ * inside the editor.
14
+ *
15
+ * The CodeMirror 5 half looks like legacy that should be migrated to CodeMirror 6. **It is not** — verified
16
+ * against the Obsidian 1.13.4 runtime:
17
+ *
18
+ * - Obsidian's own CodeMirror 6 editor language is a bridged CodeMirror 5 mode:
19
+ * `StreamLanguage.define(CodeMirror.getMode({}, { name: 'hypermd' }))`.
20
+ * - Obsidian registers that `hypermd` mode through `window.CodeMirror.defineMode` with
21
+ * `fencedCodeBlockHighlighting: true`, and that option resolves each fence's language through the
22
+ * **CodeMirror 5 mode registry**.
23
+ * - There is no public or internal CodeMirror 6 language-registration API for fences.
24
+ *
25
+ * So `window.CodeMirror.defineMode` is the sanctioned extension point, not legacy debt. Do not reopen this
26
+ * as a migration.
27
+ *
28
+ * Teardown REMOVES the mode rather than redefining it to `null`. Plugins predating this component redefined
29
+ * the mode to `null` on unload, because it was unclear whether CodeMirror's `getMode` needs the entry to
30
+ * stay present. It does not — verified against a live Obsidian 1.13.4 by
31
+ * `syntax-highlighting-component.obsidian.integration.test.ts`: after the entry is deleted, the fence
32
+ * renders its text with no error and drops back to the exact token count it had before the language was
33
+ * ever registered.
34
+ */
35
+ import type { Grammar, PrismModule } from '@obsidian-typings/obsidian-public-latest';
36
+ import { ComponentEx } from './component-ex.mjs';
37
+ /**
38
+ * The loaded Prism module, handed to a grammar factory.
39
+ */
40
+ export interface SyntaxHighlightingComponentGrammarFactoryParams {
41
+ /**
42
+ * The loaded Prism module.
43
+ */
44
+ readonly prism: PrismModule;
45
+ /**
46
+ * Returns the grammar of an already registered Prism language, for nesting into the built grammar.
47
+ *
48
+ * @param language - The language to look up.
49
+ * @returns The grammar of the language.
50
+ * @throws An {@link Error} if the language is not registered.
51
+ */
52
+ readonly requirePrismLanguage: (language: string) => Grammar;
53
+ }
54
+ /**
55
+ * A grammar, the name of an already registered language to alias, or a factory that builds the grammar from
56
+ * the loaded Prism module.
57
+ */
58
+ export type SyntaxHighlightingComponentGrammarSource = ((params: SyntaxHighlightingComponentGrammarFactoryParams) => Grammar) | Grammar | string;
59
+ /**
60
+ * Parameters for {@link SyntaxHighlightingComponent.registerCodeBlockLanguage}.
61
+ */
62
+ export interface SyntaxHighlightingComponentRegisterCodeBlockLanguageParams {
63
+ /**
64
+ * The CodeMirror 5 mode name or MIME type the editor highlights the fence as, e.g. `text/typescript`.
65
+ */
66
+ readonly editorMode: string;
67
+ /**
68
+ * The fence language, e.g. the `foo` in a ` ```foo ` code block.
69
+ */
70
+ readonly language: string;
71
+ /**
72
+ * The grammar highlighting the fence in reading view. Omit when the fence is replaced in reading view —
73
+ * e.g. a fence rendered as a button.
74
+ */
75
+ readonly prismGrammar?: SyntaxHighlightingComponentGrammarSource | undefined;
76
+ }
77
+ /**
78
+ * Parameters for {@link SyntaxHighlightingComponent.registerPrismLanguage}.
79
+ */
80
+ export interface SyntaxHighlightingComponentRegisterPrismLanguageParams {
81
+ /**
82
+ * The grammar to register.
83
+ */
84
+ readonly grammar: SyntaxHighlightingComponentGrammarSource;
85
+ /**
86
+ * The language to register the grammar as.
87
+ */
88
+ readonly language: string;
89
+ }
90
+ /**
91
+ * A component that registers and unregisters syntax highlighting languages.
92
+ *
93
+ * @remarks
94
+ * Every registration is undone when the component is unloaded: the previous entry is restored if the
95
+ * language was already registered, otherwise the entry is removed.
96
+ */
97
+ export declare class SyntaxHighlightingComponent extends ComponentEx {
98
+ /**
99
+ * Registers a fenced code block language, highlighting it in the editor and, optionally, in reading view.
100
+ *
101
+ * @param params - The parameters for registering the language.
102
+ * @returns A {@link Promise} that resolves when the language is registered.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * await component.registerCodeBlockLanguage({
107
+ * editorMode: 'text/typescript',
108
+ * language: 'my-language',
109
+ * prismGrammar: 'typescript'
110
+ * });
111
+ * ```
112
+ */
113
+ registerCodeBlockLanguage(params: SyntaxHighlightingComponentRegisterCodeBlockLanguageParams): Promise<void>;
114
+ /**
115
+ * Registers a Prism language, highlighting it everywhere Prism renders code — reading view and the
116
+ * {@link CodeHighlighterComponent} settings field.
117
+ *
118
+ * @param params - The parameters for registering the language.
119
+ * @returns A {@link Promise} that resolves when the language is registered.
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * await component.registerPrismLanguage({
124
+ * grammar: {
125
+ * keyword: /\bfoo\b/
126
+ * },
127
+ * language: 'my-language'
128
+ * });
129
+ * ```
130
+ */
131
+ registerPrismLanguage(params: SyntaxHighlightingComponentRegisterPrismLanguageParams): Promise<void>;
132
+ /**
133
+ * Returns the grammar of an already registered Prism language.
134
+ *
135
+ * @param prism - The loaded Prism module.
136
+ * @param language - The language to look up.
137
+ * @returns The grammar of the language.
138
+ * @throws An {@link Error} if the language is not registered.
139
+ */
140
+ private requirePrismLanguage;
141
+ /**
142
+ * Resolves a grammar source into the grammar to register.
143
+ *
144
+ * @param prism - The loaded Prism module.
145
+ * @param grammarSource - The grammar source to resolve.
146
+ * @returns The resolved grammar.
147
+ */
148
+ private resolveGrammar;
149
+ }