@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,376 @@
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 {
51
+ castTo,
52
+ isDeepEqual
53
+ } from "@mnaoumov/typescript-lib/object-utils";
54
+ import { insertAt } from "@mnaoumov/typescript-lib/string";
55
+ import {
56
+ getFrontMatterInfo,
57
+ parseYaml,
58
+ stringifyYaml
59
+ } from "obsidian";
60
+ import {
61
+ Composer,
62
+ CST,
63
+ isAlias,
64
+ parseDocument,
65
+ Parser,
66
+ stringify,
67
+ visit
68
+ } from "yaml";
69
+ import {
70
+ checkIsPlainObject,
71
+ registerFrontmatterFormattingPreserver
72
+ } from "./frontmatter.mjs";
73
+ const EDIT_SCRIPT_CELL_LIMIT = 1e4;
74
+ const EMPTY_MAPPING_FRAGMENT = "{}";
75
+ const OBSIDIAN_STRINGIFY_OPTIONS = {
76
+ aliasDuplicateObjects: false,
77
+ lineWidth: 0,
78
+ // eslint-disable-next-line unicorn/name-replacements -- `nullStr` is the `yaml` package's own option name.
79
+ nullStr: ""
80
+ };
81
+ const PLACEHOLDER_KEY = "k";
82
+ const SECOND_TO_LAST_INDEX = -2;
83
+ const TRAILING_NEWLINE_REG_EXP = /\n$/;
84
+ const UNRESOLVED_TAG_WARNING_CODE = "TAG_RESOLVE_FAILED";
85
+ function enableFrontmatterFormattingPreservation() {
86
+ registerFrontmatterFormattingPreserver(preserveFrontmatterFormatting);
87
+ }
88
+ function preserveFrontmatterFormatting(content, newFrontmatter) {
89
+ const frontmatterInfo = getFrontMatterInfo(content);
90
+ if (!frontmatterInfo.exists || Object.keys(newFrontmatter).length === 0) {
91
+ return null;
92
+ }
93
+ const splicedBody = spliceFrontmatterBody(frontmatterInfo.frontmatter, newFrontmatter);
94
+ return splicedBody === null ? null : insertAt({
95
+ $string: content,
96
+ endIndex: frontmatterInfo.to,
97
+ startIndex: frontmatterInfo.from,
98
+ substring: splicedBody
99
+ });
100
+ }
101
+ function buildEditScript(oldArray, newArray) {
102
+ const rawSteps = buildRawEditScript(oldArray, newArray);
103
+ const steps = [];
104
+ for (let index = 0; index < rawSteps.length; index++) {
105
+ const step = castTo(rawSteps[index]);
106
+ const nextStep = rawSteps[index + 1];
107
+ if (step.kind === "remove" && nextStep?.kind === "insert" && checkIsMergeable(oldArray[step.oldIndex], newArray[nextStep.newIndex])) {
108
+ steps.push({ kind: "merge", newIndex: nextStep.newIndex, oldIndex: step.oldIndex });
109
+ index++;
110
+ continue;
111
+ }
112
+ if (step.kind !== "remove") {
113
+ steps.push({ kind: step.kind, newIndex: step.newIndex, oldIndex: step.oldIndex });
114
+ }
115
+ }
116
+ return steps;
117
+ }
118
+ function buildRawEditScript(oldArray, newArray) {
119
+ const oldLength = oldArray.length;
120
+ const newLength = newArray.length;
121
+ const commonLengths = Array.from({ length: oldLength + 1 }, () => Array.from({ length: newLength + 1 }, () => 0));
122
+ for (let oldIndex2 = oldLength - 1; oldIndex2 >= 0; oldIndex2--) {
123
+ for (let newIndex2 = newLength - 1; newIndex2 >= 0; newIndex2--) {
124
+ const row = castTo(commonLengths[oldIndex2]);
125
+ const nextRow = castTo(commonLengths[oldIndex2 + 1]);
126
+ row[newIndex2] = isDeepEqual(oldArray[oldIndex2], newArray[newIndex2]) ? castTo(nextRow[newIndex2 + 1]) + 1 : Math.max(castTo(nextRow[newIndex2]), castTo(row[newIndex2 + 1]));
127
+ }
128
+ }
129
+ const steps = [];
130
+ let oldIndex = 0;
131
+ let newIndex = 0;
132
+ while (oldIndex < oldLength && newIndex < newLength) {
133
+ if (isDeepEqual(oldArray[oldIndex], newArray[newIndex])) {
134
+ steps.push({ kind: "keep", newIndex, oldIndex });
135
+ oldIndex++;
136
+ newIndex++;
137
+ continue;
138
+ }
139
+ const removalRow = castTo(commonLengths[oldIndex + 1]);
140
+ const insertionRow = castTo(commonLengths[oldIndex]);
141
+ const removalCommonLength = castTo(removalRow[newIndex]);
142
+ const insertionCommonLength = castTo(insertionRow[newIndex + 1]);
143
+ if (removalCommonLength >= insertionCommonLength) {
144
+ steps.push({ kind: "remove", newIndex: -1, oldIndex });
145
+ oldIndex++;
146
+ } else {
147
+ steps.push({ kind: "insert", newIndex, oldIndex: -1 });
148
+ newIndex++;
149
+ }
150
+ }
151
+ for (; oldIndex < oldLength; oldIndex++) {
152
+ steps.push({ kind: "remove", newIndex: -1, oldIndex });
153
+ }
154
+ for (; newIndex < newLength; newIndex++) {
155
+ steps.push({ kind: "insert", newIndex, oldIndex: -1 });
156
+ }
157
+ return steps;
158
+ }
159
+ function checkCarriesIndent(item, indent) {
160
+ return CST.stringify(item).replace(/^\n+/, "").startsWith(" ".repeat(indent));
161
+ }
162
+ function checkHasAnchorOrAlias(contents) {
163
+ let hasAnchorOrAlias = false;
164
+ visit(contents, {
165
+ Node(_key, node) {
166
+ if (!isAlias(node) && node.anchor === void 0) {
167
+ return void 0;
168
+ }
169
+ hasAnchorOrAlias = true;
170
+ return visit.BREAK;
171
+ }
172
+ });
173
+ return hasAnchorOrAlias;
174
+ }
175
+ function checkIsMergeable(oldValue, newValue) {
176
+ return checkIsPlainObject(oldValue) && checkIsPlainObject(newValue) || Array.isArray(oldValue) && Array.isArray(newValue);
177
+ }
178
+ function checkIsSemanticMatch(splicedBody, newFrontmatter) {
179
+ let splicedValue;
180
+ try {
181
+ splicedValue = parseYaml(splicedBody);
182
+ } catch {
183
+ return false;
184
+ }
185
+ return isDeepEqual(splicedValue, parseYaml(stringifyYaml(newFrontmatter)));
186
+ }
187
+ function createMapItem(key, value, indent) {
188
+ const fragment = stringify({ [key]: value }, OBSIDIAN_STRINGIFY_OPTIONS);
189
+ return fragment.trimEnd() === EMPTY_MAPPING_FRAGMENT ? null : liftFragmentItem(fragment, indent, true);
190
+ }
191
+ function createSeqItem(value, indent) {
192
+ return liftFragmentItem(stringify([value], OBSIDIAN_STRINGIFY_OPTIONS), indent, true);
193
+ }
194
+ function createSpaceToken(indent) {
195
+ return {
196
+ indent,
197
+ offset: -1,
198
+ source: " ".repeat(indent),
199
+ type: "space"
200
+ };
201
+ }
202
+ function didMergeMap(token, oldObject, newObject) {
203
+ normalizeItemIndents(token);
204
+ const itemsByKey = /* @__PURE__ */ new Map();
205
+ for (const item of token.items) {
206
+ const key = readItemKey(item);
207
+ if (key === null || itemsByKey.has(key)) {
208
+ return false;
209
+ }
210
+ itemsByKey.set(key, item);
211
+ }
212
+ const mergedItems = [];
213
+ for (const [key, newValue] of Object.entries(newObject)) {
214
+ const item = itemsByKey.get(key);
215
+ if (!item) {
216
+ const createdItem = createMapItem(key, newValue, token.indent);
217
+ if (createdItem !== null) {
218
+ mergedItems.push(createdItem);
219
+ }
220
+ continue;
221
+ }
222
+ mergeItemValue(item, oldObject[key], newValue, token.indent, false);
223
+ mergedItems.push(item);
224
+ }
225
+ if (mergedItems.length === 0) {
226
+ return false;
227
+ }
228
+ finalizeItems(mergedItems);
229
+ token.items = castTo(mergedItems);
230
+ return true;
231
+ }
232
+ function didMergeSeq(token, oldArray, newArray) {
233
+ if (oldArray.length * newArray.length > EDIT_SCRIPT_CELL_LIMIT) {
234
+ return false;
235
+ }
236
+ normalizeItemIndents(token);
237
+ const mergedItems = [];
238
+ for (const step of buildEditScript(oldArray, newArray)) {
239
+ if (step.kind === "insert") {
240
+ mergedItems.push(createSeqItem(newArray[step.newIndex], token.indent));
241
+ continue;
242
+ }
243
+ const item = castTo(token.items[step.oldIndex]);
244
+ if (step.kind === "merge") {
245
+ mergeItemValue(item, oldArray[step.oldIndex], newArray[step.newIndex], token.indent, true);
246
+ }
247
+ mergedItems.push(item);
248
+ }
249
+ if (mergedItems.length === 0) {
250
+ return false;
251
+ }
252
+ finalizeItems(mergedItems);
253
+ token.items = castTo(mergedItems);
254
+ return true;
255
+ }
256
+ function didNormalizeFirstItemIndent(precedingTokens, collection) {
257
+ const firstItem = castTo(collection.items[0]);
258
+ if (collection.indent === 0 || checkCarriesIndent(firstItem, collection.indent)) {
259
+ return true;
260
+ }
261
+ const lastToken = precedingTokens?.at(-1);
262
+ if (lastToken?.type !== "space" || precedingTokens?.at(SECOND_TO_LAST_INDEX)?.type !== "newline") {
263
+ return false;
264
+ }
265
+ precedingTokens.pop();
266
+ firstItem.start.unshift(lastToken);
267
+ return true;
268
+ }
269
+ function emitMapItemTokens(value, indent, shouldPreferFlow) {
270
+ const fragment = shouldPreferFlow ? `${PLACEHOLDER_KEY}: ${stringifyFlow(value)}` : stringify({ [PLACEHOLDER_KEY]: value }, OBSIDIAN_STRINGIFY_OPTIONS);
271
+ const item = liftFragmentItem(fragment, indent, false);
272
+ return { separatorTokens: castTo(item.sep), value: item.value };
273
+ }
274
+ function emitSeqItem(value, indent, shouldPreferFlow) {
275
+ const fragment = shouldPreferFlow ? `- ${stringifyFlow(value)}` : stringify([value], OBSIDIAN_STRINGIFY_OPTIONS);
276
+ return liftFragmentItem(fragment, indent, false);
277
+ }
278
+ function finalizeItems(items) {
279
+ const firstItem = castTo(items[0]);
280
+ while (firstItem.start[0]?.type === "newline") {
281
+ firstItem.start.shift();
282
+ }
283
+ }
284
+ function indentLines(text, indent) {
285
+ if (indent === 0) {
286
+ return text;
287
+ }
288
+ const padding = " ".repeat(indent);
289
+ return text.split("\n").map((line) => line === "" ? line : padding + line).join("\n");
290
+ }
291
+ function liftFragmentItem(fragment, indent, shouldCarryIndent) {
292
+ const root = parseDocument(indentLines(fragment, indent), { keepSourceTokens: true }).contents?.srcToken;
293
+ const item = castTo(castTo(root).items[0]);
294
+ if (shouldCarryIndent && indent > 0) {
295
+ item.start.unshift(createSpaceToken(indent));
296
+ }
297
+ return item;
298
+ }
299
+ function mergeItemValue(item, oldValue, newValue, parentIndent, isSeqItem) {
300
+ if (isDeepEqual(oldValue, newValue)) {
301
+ return;
302
+ }
303
+ const valueToken = item.value;
304
+ const precedingTokens = isSeqItem ? item.start : item.sep;
305
+ if (valueToken?.type === "block-map" && checkIsPlainObject(oldValue) && checkIsPlainObject(newValue) && didNormalizeFirstItemIndent(precedingTokens, valueToken) && didMergeMap(valueToken, oldValue, newValue) || valueToken?.type === "block-seq" && Array.isArray(oldValue) && Array.isArray(newValue) && didNormalizeFirstItemIndent(precedingTokens, valueToken) && didMergeSeq(valueToken, oldValue, newValue)) {
306
+ return;
307
+ }
308
+ replaceItemValue(item, newValue, parentIndent, valueToken?.type === "flow-collection", isSeqItem);
309
+ }
310
+ function normalizeItemIndents(collection) {
311
+ for (const [index, item] of collection.items.entries()) {
312
+ const nextItem = castTo(collection.items[index + 1]);
313
+ if (!nextItem || item.value) {
314
+ continue;
315
+ }
316
+ const trailingTokens = item.sep?.length ? item.sep : item.start;
317
+ const lastToken = trailingTokens.at(-1);
318
+ if (lastToken?.type !== "space" || trailingTokens.at(SECOND_TO_LAST_INDEX)?.type !== "newline") {
319
+ continue;
320
+ }
321
+ trailingTokens.pop();
322
+ nextItem.start.unshift(lastToken);
323
+ }
324
+ }
325
+ function readItemKey(item) {
326
+ return !item.key || !CST.isScalar(item.key) ? null : castTo(CST.resolveAsScalar(item.key)).value;
327
+ }
328
+ function replaceItemValue(item, newValue, indent, shouldPreferFlow, isSeqItem) {
329
+ if (isSeqItem) {
330
+ setItemValue(item, emitSeqItem(newValue, indent, shouldPreferFlow).value);
331
+ return;
332
+ }
333
+ const emittedTokens = emitMapItemTokens(newValue, indent, shouldPreferFlow);
334
+ item.sep = emittedTokens.separatorTokens;
335
+ setItemValue(item, emittedTokens.value);
336
+ }
337
+ function setItemValue(item, value) {
338
+ if (value === void 0) {
339
+ delete item.value;
340
+ return;
341
+ }
342
+ item.value = value;
343
+ }
344
+ function spliceFrontmatterBody(source, newFrontmatter) {
345
+ const tokens = [...new Parser().parse(source)];
346
+ const documents = [...new Composer({ keepSourceTokens: true }).compose(tokens, true)];
347
+ const document = documents.length === 1 ? documents[0] : void 0;
348
+ if (!document || document.errors.length > 0 || document.warnings.some((warning) => warning.code === UNRESOLVED_TAG_WARNING_CODE)) {
349
+ return null;
350
+ }
351
+ const contents = document.contents;
352
+ const rootToken = contents?.srcToken;
353
+ if (!contents || rootToken?.type !== "block-map" || checkHasAnchorOrAlias(contents)) {
354
+ return null;
355
+ }
356
+ const oldFrontmatter = castTo(document.toJS());
357
+ if (!didMergeMap(rootToken, oldFrontmatter, castTo(newFrontmatter))) {
358
+ return null;
359
+ }
360
+ const emittedBody = tokens.map((token) => CST.stringify(token)).join("");
361
+ const splicedBody = `${emittedBody.replace(TRAILING_NEWLINE_REG_EXP, "")}
362
+ `;
363
+ return checkIsSemanticMatch(splicedBody, newFrontmatter) ? splicedBody : null;
364
+ }
365
+ function stringifyFlow(value) {
366
+ return stringify(value, {
367
+ ...OBSIDIAN_STRINGIFY_OPTIONS,
368
+ collectionStyle: "flow",
369
+ flowCollectionPadding: false
370
+ });
371
+ }
372
+ export {
373
+ enableFrontmatterFormattingPreservation,
374
+ preserveFrontmatterFormatting
375
+ };
376
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zyb250bWF0dGVyLWZvcm1hdHRpbmcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXdyaXRlcyBhIG5vdGUncyBZQU1MIGZyb250IG1hdHRlciBieSBzcGxpY2luZyBpdHMgY29uY3JldGUgc3ludGF4IHRyZWUsIHNvIGV2ZXJ5IHJlZ2lvbiBhIGNoYW5nZSBkb2VzIG5vdCByZWFjaFxuICoga2VlcHMgdGhlIGV4YWN0IGJ5dGVzIGl0cyBhdXRob3Igd3JvdGUgXHUyMDE0IGNvbW1lbnRzIGFuZCB0aGUgd2hpdGVzcGFjZSBpbnNpZGUgdGhlbSwgcXVvdGluZyBzdHlsZSwgYmxhbmsgbGluZXMsXG4gKiBpbmRlbnRhdGlvbiB3aWR0aCwgZmxvdyB2ZXJzdXMgYmxvY2sgY29sbGVjdGlvbnMsIGFuZCBmb2xkZWQgYW5kIGxpdGVyYWwgc2NhbGFycy5cbiAqXG4gKiBPYnNpZGlhbidzIG93biBgcHJvY2Vzc0Zyb250TWF0dGVyKClgIHBhcnNlcyB0aGUgYmxvY2sgdG8gYSBwbGFpbiBvYmplY3QgYW5kIHJlLXN0cmluZ2lmaWVzIHRoZSB3aG9sZSBvZiBpdCwgc28gYVxuICogY2FsbGJhY2sgdGhhdCBjaGFuZ2VzIG9uZSBrZXkgcmV3cml0ZXMgZXZlcnkgb3RoZXIuIFJlLWVtaXR0aW5nIHRoZSBwYXJzZWQgZG9jdW1lbnQgaW5zdGVhZCBvZiB0aGUgcmF3IHRleHQgZG9lcyBub3RcbiAqIGZpeCB0aGF0OiBmaXZlIG9mIHRoZSBsb3NzZXMgc3Vydml2ZSBldmVyeSBlbWl0IG9wdGlvbiB0aGUgYHlhbWxgIHBhY2thZ2Ugb2ZmZXJzLiBTcGxpY2luZyB0aGUgQ1NUIGRvZXMgZml4IGl0LFxuICogYmVjYXVzZSBhbiB1bnRvdWNoZWQgdG9rZW4gaXMgbmV2ZXIgcmUtZW1pdHRlZCBhdCBhbGwgXHUyMDE0IHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vZWVtZWxpL3lhbWwgfCB0aGUgbGlicmFyeX0ga2VlcHNcbiAqIGVhY2ggdG9rZW4ncyBvcmlnaW5hbCBzb3VyY2UgdGV4dCBhbmQge0BsaW5rIGh0dHBzOi8vZWVtZWxpLm9yZy95YW1sLyNjc3QtcGFyc2VyIHwgYENTVC5zdHJpbmdpZnlgfSBjb25jYXRlbmF0ZXMgaXQuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgREVMSUJFUkFURUxZIG5vdCBvbiB0aGUgZGVmYXVsdCBwYXRoLiBJdCBuZWVkcyB0aGUgYHlhbWxgIHBhY2thZ2UncyBDU1QgQVBJLCB3aGljaCBPYnNpZGlhbiBkb2VzIG5vdFxuICogaGFuZCB0byBwbHVnaW5zIHRocm91Z2ggaXRzIG1vZHVsZSBtYXAgXHUyMDE0IHRoYXQgbWFwIGlzIGBvYnNpZGlhbmAsIGBAY29kZW1pcnJvci8qYCBhbmQgYEBsZXplci8qYCBhbmQgbm90aGluZyBlbHNlIFx1MjAxNFxuICogc28gdGhlIHBhY2thZ2UgY2Fubm90IGJlIG1hcmtlZCBleHRlcm5hbCBhbmQgbGFuZHMgaW4gdGhlIGNvbnN1bWluZyBwbHVnaW4ncyBgbWFpbi5qc2AsIGFib3V0IDEwMCBLQiBvZiBpdC4gQSBwbHVnaW5cbiAqIG9wdHMgaW4gYnkgY2FsbGluZyB7QGxpbmsgZW5hYmxlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmF0aW9ufSBvbmNlLCBhbmQgb25seSBpdCBwYXlzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJpY09iamVjdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgdHlwZSB7XG4gIE5vZGUsXG4gIFBhcnNlZE5vZGVcbn0gZnJvbSAneWFtbCc7XG5cbmltcG9ydCB7XG4gIGNhc3RUbyxcbiAgaXNEZWVwRXF1YWxcbn0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL29iamVjdC11dGlscyc7XG5pbXBvcnQgeyBpbnNlcnRBdCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgZ2V0RnJvbnRNYXR0ZXJJbmZvLFxuICBwYXJzZVlhbWwsXG4gIHN0cmluZ2lmeVlhbWxcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgQ29tcG9zZXIsXG4gIENTVCxcbiAgaXNBbGlhcyxcbiAgcGFyc2VEb2N1bWVudCxcbiAgUGFyc2VyLFxuICBzdHJpbmdpZnksXG4gIHZpc2l0XG59IGZyb20gJ3lhbWwnO1xuXG5pbXBvcnQge1xuICBjaGVja0lzUGxhaW5PYmplY3QsXG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyXG59IGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuXG4vKipcbiAqIEEgYmxvY2sgb3IgZmxvdyBjb2xsZWN0aW9uIHRva2VuIHdob3NlIGl0ZW1zIHRoZSBzcGxpY2UgcmVhcnJhbmdlcy5cbiAqL1xudHlwZSBDb2xsZWN0aW9uVG9rZW4gPSBDU1QuQmxvY2tNYXAgfCBDU1QuQmxvY2tTZXF1ZW5jZTtcblxuLyoqXG4gKiBPbmUgc3RlcCBvZiB0aGUgZWRpdCBzY3JpcHQge0BsaW5rIGJ1aWxkRWRpdFNjcmlwdH0gZGVyaXZlcyBmb3IgYSBzZXF1ZW5jZS5cbiAqXG4gKiBga2VlcGAgcmV1c2VzIHRoZSBvbGQgaXRlbSdzIHRva2VuIHVudG91Y2hlZCwgYG1lcmdlYCByZXVzZXMgaXQgYW5kIHJld3JpdGVzIGl0cyB2YWx1ZSBpbiBwbGFjZSwgYW5kIGBpbnNlcnRgXG4gKiBlbWl0cyBhIGJyYW5kIG5ldyBpdGVtLiBBIHJlbW92YWwgcHJvZHVjZXMgbm8gc3RlcCBhdCBhbGwgXHUyMDE0IGl0IGlzIHNpbXBseSBhbiBvbGQgaW5kZXggbm8gc3RlcCBuYW1lcy5cbiAqL1xuaW50ZXJmYWNlIEVkaXRTdGVwIHtcbiAgcmVhZG9ubHkga2luZDogJ2luc2VydCcgfCAna2VlcCcgfCAnbWVyZ2UnO1xuICByZWFkb25seSBuZXdJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbGRJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBgc2VwYCBhbmQgYHZhbHVlYCB0b2tlbnMgb2YgYSBmcmVzaGx5IGVtaXR0ZWQgYmxvY2stbWFwIGl0ZW0sIHJlYWR5IHRvIGJlIHRyYW5zcGxhbnRlZCBvbnRvIGFuIGV4aXN0aW5nIG9uZS5cbiAqL1xuaW50ZXJmYWNlIE1hcEl0ZW1Ub2tlbnMge1xuICByZWFkb25seSBzZXBhcmF0b3JUb2tlbnM6IENTVC5Tb3VyY2VUb2tlbltdO1xuICByZWFkb25seSB2YWx1ZTogQ1NULlRva2VuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgc2VxdWVuY2UgbG9uZyBlbm91Z2ggdGhhdCB0aGUgcXVhZHJhdGljIGVkaXQgc2NyaXB0IHN0b3BzIGJlaW5nIHdvcnRoIGl0cyBjb3N0LlxuICpcbiAqIEEgZnJvbnQgbWF0dGVyIHNlcXVlbmNlIGlzIGEgdGFnIGxpc3Qgb3IgYW4gYWxpYXMgbGlzdCwgc28gdGhpcyBpcyBuZXZlciBhcHByb2FjaGVkIGluIHByYWN0aWNlOyBpdCBpcyBoZXJlIHNvIHRoYXQgYVxuICogcGF0aG9sb2dpY2FsIG9uZSBkZWdyYWRlcyB0byBhIHdob2xlLWNvbGxlY3Rpb24gcmUtZW1pdCBpbnN0ZWFkIG9mIHN0YWxsaW5nIHRoZSB3cml0ZSBxdWV1ZS5cbiAqL1xuY29uc3QgRURJVF9TQ1JJUFRfQ0VMTF9MSU1JVCA9IDEwXzAwMDtcblxuLyoqXG4gKiBXaGF0IGEgbWFwcGluZyBlbWl0cyBhcyB3aGVuIGV2ZXJ5IG9uZSBvZiBpdHMgdmFsdWVzIGlzIGB1bmRlZmluZWRgLCBpLmUuIHdoZW4gaXQgaGFzIG5vdGhpbmcgdG8gd3JpdGUgYXQgYWxsLlxuICovXG5jb25zdCBFTVBUWV9NQVBQSU5HX0ZSQUdNRU5UID0gJ3t9JztcblxuLyoqXG4gKiBUaGUgb3B0aW9ucyBPYnNpZGlhbiBpdHNlbGYgcGFzc2VzIHRvIGBzdHJpbmdpZnkoKWAsIHJlYWQgb3V0IG9mIGl0cyBidW5kbGUuXG4gKlxuICogRXZlcnkgZnJhZ21lbnQgdGhpcyBtb2R1bGUgZW1pdHMgZ29lcyB0aHJvdWdoIHRoZW0sIHNvIGEgZnJhZ21lbnQgaXQgd3JpdGVzIGlzIGJ5dGUtaWRlbnRpY2FsIHRvIHRoZSBvbmUgdGhlXG4gKiBwYXJzZS1hbmQtc3RyaW5naWZ5IHBhdGggd291bGQgaGF2ZSB3cml0dGVuIGZvciB0aGUgc2FtZSB2YWx1ZS5cbiAqL1xuY29uc3QgT0JTSURJQU5fU1RSSU5HSUZZX09QVElPTlMgPSB7XG4gIGFsaWFzRHVwbGljYXRlT2JqZWN0czogZmFsc2UsXG4gIGxpbmVXaWR0aDogMCxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHVuaWNvcm4vbmFtZS1yZXBsYWNlbWVudHMgLS0gYG51bGxTdHJgIGlzIHRoZSBgeWFtbGAgcGFja2FnZSdzIG93biBvcHRpb24gbmFtZS5cbiAgbnVsbFN0cjogJydcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogVGhlIGtleSBhIGZyYWdtZW50IGlzIGVtaXR0ZWQgdW5kZXIgd2hlbiBvbmx5IGl0cyB2YWx1ZSBpcyB3YW50ZWQuIE5ldmVyIHJlYWNoZXMgdGhlIG91dHB1dC5cbiAqL1xuY29uc3QgUExBQ0VIT0xERVJfS0VZID0gJ2snO1xuXG4vKipcbiAqIFRoZSBgQXJyYXkuYXQoKWAgaW5kZXggb2YgdGhlIHRva2VuIGJlZm9yZSB0aGUgbGFzdCBvbmUsIHdoaWNoIGlzIHdoZXJlIGEgbmV3bGluZSBzaXRzIHdoZW4gYW4gaW5kZW50IGZvbGxvd3MgaXQuXG4gKi9cbmNvbnN0IFNFQ09ORF9UT19MQVNUX0lOREVYID0gLTI7XG5cbmNvbnN0IFRSQUlMSU5HX05FV0xJTkVfUkVHX0VYUCA9IC9cXG4kLztcblxuY29uc3QgVU5SRVNPTFZFRF9UQUdfV0FSTklOR19DT0RFID0gJ1RBR19SRVNPTFZFX0ZBSUxFRCc7XG5cbi8qKlxuICogT25lIHN0ZXAgb2YgdGhlIHJhdyBlZGl0IHNjcmlwdCwgYmVmb3JlIHJlbW92YWxzIGFyZSBmb2xkZWQgaW50byB0aGUgaW5zZXJ0aW9ucyB0aGF0IGZvbGxvdyB0aGVtLlxuICovXG5pbnRlcmZhY2UgUmF3RWRpdFN0ZXAge1xuICByZWFkb25seSBraW5kOiAnaW5zZXJ0JyB8ICdrZWVwJyB8ICdyZW1vdmUnO1xuICByZWFkb25seSBuZXdJbmRleDogbnVtYmVyO1xuICByZWFkb25seSBvbGRJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFdoYXQgYENTVC5yZXNvbHZlQXNTY2FsYXJgIGhhbmRzIGJhY2sgZm9yIGEga2V5OiB0aGUgc2NhbGFyJ3Mgb3duIHRleHQsIG5ldmVyIGEgc2NoZW1hLXJlc29sdmVkIHZhbHVlLlxuICovXG5pbnRlcmZhY2UgUmVzb2x2ZWRTY2FsYXIge1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGlzIG1vZHVsZSdzIGVuZ2luZSBhcyB0aGUgZnJvbnQgbWF0dGVyIGZvcm1hdHRpbmcgcHJlc2VydmVyIGZvciBldmVyeSB3cml0ZSB0aGlzIGxpYnJhcnkgcGVyZm9ybXMuXG4gKlxuICogQ2FsbCBpdCBvbmNlLCBmcm9tIGEgcGx1Z2luJ3MgYG9ubG9hZEltcGwoKWAuIEl0IHRha2VzIGVmZmVjdCBmb3IgYHByb2Nlc3NGcm9udG1hdHRlcigpYCwgYGFwcGx5RmlsZUNoYW5nZXMoKWAgYW5kXG4gKiBldmVyeSBvdGhlciBwYXRoIHRoYXQgcmVhY2hlcyBgc2V0RnJvbnRtYXR0ZXIoKWAsIGluY2x1ZGluZyB0aGUgb25lcyB0aGUgY2FsbGluZyBwbHVnaW4gZG9lcyBub3QgaW52b2tlIGl0c2VsZi5cbiAqXG4gKiBUaGVyZSBpcyBvbmUgcHJlc2VydmVyIHBlciByZWFsbSwgc28gdHdvIHBsdWdpbnMgdGhhdCBib3RoIGNhbGwgdGhpcyBzaW1wbHkgYWdyZWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVGcm9udG1hdHRlckZvcm1hdHRpbmdQcmVzZXJ2YXRpb24oKTogdm9pZCB7XG4gIHJlZ2lzdGVyRnJvbnRtYXR0ZXJGb3JtYXR0aW5nUHJlc2VydmVyKHByZXNlcnZlRnJvbnRtYXR0ZXJGb3JtYXR0aW5nKTtcbn1cblxuLyoqXG4gKiBSZXdyaXRlcyB0aGUgZnJvbnQgbWF0dGVyIG9mIGEgbm90ZSwga2VlcGluZyB0aGUgb3JpZ2luYWwgYnl0ZXMgb2YgZXZlcnl0aGluZyB0aGUgY2hhbmdlIGRvZXMgbm90IHJlYWNoLlxuICpcbiAqIEl0IGlzIHRoZSBlbmdpbmUge0BsaW5rIGVuYWJsZUZyb250bWF0dGVyRm9ybWF0dGluZ1ByZXNlcnZhdGlvbn0gcmVnaXN0ZXJzLCBhbmQgY2FuIGJlIGNhbGxlZCBkaXJlY3RseSBhcyB3ZWxsLlxuICpcbiAqIGBudWxsYCBtZWFucyBcInRoaXMgb25lIGlzIG5vdCBtaW5lXCI6IHRoZSBibG9jayBkb2VzIG5vdCBleGlzdCwgdGhlIG5ldyBmcm9udCBtYXR0ZXIgaXMgZW1wdHkgKGJvdGggYXJlIHRoZVxuICogcGFyc2UtYW5kLXN0cmluZ2lmeSBwYXRoJ3MgYnVzaW5lc3MsIHVuY2hhbmdlZCksIG9yIHRoZSBzcGxpY2UgY291bGQgbm90IGJlIHByb3ZlZCBmYWl0aGZ1bC4gVGhlIHByb29mIGlzIG5vdFxuICogaGFuZC13YXZlZCBcdTIwMTQgdGhlIHNwbGljZWQgYmxvY2sgaXMgcmUtcGFyc2VkIGFuZCBjb21wYXJlZCBhZ2FpbnN0IHRoZSB2YWx1ZSB0aGUgcGFyc2UtYW5kLXN0cmluZ2lmeSBwYXRoIHdvdWxkIGhhdmVcbiAqIHByb2R1Y2VkIGZvciB0aGUgc2FtZSBpbnB1dCwgYW5kIGFueSBkaWZmZXJlbmNlIHJldHVybnMgYG51bGxgLiBUaGF0IGlzIHdoYXQgbWFrZXMgdGhpcyBzdHJpY3RseSBiZXR0ZXIgdGhhbiB0aGF0XG4gKiBwYXRoIG9yIGlkZW50aWNhbCB0byBpdCwgYW5kIG5ldmVyIHdvcnNlLlxuICpcbiAqIEBwYXJhbSBjb250ZW50IC0gVGhlIG5vdGUgdG8gcmV3cml0ZSB0aGUgZnJvbnQgbWF0dGVyIG9mLlxuICogQHBhcmFtIG5ld0Zyb250bWF0dGVyIC0gVGhlIGZyb250IG1hdHRlciB0byB3cml0ZS5cbiAqIEByZXR1cm5zIFRoZSBuZXcgbm90ZSwgb3IgYG51bGxgIHdoZW4gdGhlIGNhbGxlciBzaG91bGQgcGFyc2UgdGhlIGJsb2NrIGFuZCB3cml0ZSB0aGUgd2hvbGUgb2YgaXQgb3V0IGFnYWluIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVzZXJ2ZUZyb250bWF0dGVyRm9ybWF0dGluZyhjb250ZW50OiBzdHJpbmcsIG5ld0Zyb250bWF0dGVyOiBvYmplY3QpOiBudWxsIHwgc3RyaW5nIHtcbiAgY29uc3QgZnJvbnRtYXR0ZXJJbmZvID0gZ2V0RnJvbnRNYXR0ZXJJbmZvKGNvbnRlbnQpO1xuICBpZiAoIWZyb250bWF0dGVySW5mby5leGlzdHMgfHwgT2JqZWN0LmtleXMobmV3RnJvbnRtYXR0ZXIpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3Qgc3BsaWNlZEJvZHkgPSBzcGxpY2VGcm9udG1hdHRlckJvZHkoZnJvbnRtYXR0ZXJJbmZvLmZyb250bWF0dGVyLCBuZXdGcm9udG1hdHRlcik7XG4gIHJldHVybiBzcGxpY2VkQm9keSA9PT0gbnVsbFxuICAgID8gbnVsbFxuICAgIDogaW5zZXJ0QXQoe1xuICAgICAgJHN0cmluZzogY29udGVudCxcbiAgICAgIGVuZEluZGV4OiBmcm9udG1hdHRlckluZm8udG8sXG4gICAgICBzdGFydEluZGV4OiBmcm9udG1hdHRlckluZm8uZnJvbSxcbiAgICAgIHN1YnN0cmluZzogc3BsaWNlZEJvZHlcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBEZXJpdmVzIHRoZSBlZGl0IHNjcmlwdCB0aGF0IHR1cm5zIGBvbGRBcnJheWAgaW50byBgbmV3QXJyYXlgLCByZXVzaW5nIGFzIG1hbnkgb2YgdGhlIG9sZCBpdGVtcyBhcyBpdCBjYW4uXG4gKlxuICogQSBsb25nZXN0LWNvbW1vbi1zdWJzZXF1ZW5jZSBkaWZmIG92ZXIgdmFsdWUgZXF1YWxpdHkgaXMgd2hhdCByZWNvdmVycyB0aGUgQVVUSE9SJ3Mgb3BlcmF0aW9uLiBSZXBsYXlpbmcgdGhlXG4gKiBtdXRhdGlvbiBhbiBhcnJheSBtZXRob2QgcGVyZm9ybWVkIGluc3RlYWQgXHUyMDE0IGBbYSwgYiwgY10uc3BsaWNlKDEsIDEpYCB3cml0ZXMgYFsxXSA9ICdjJ2AgdGhlbiB0cnVuY2F0ZXMgXHUyMDE0IHdvdWxkXG4gKiBvdmVyd3JpdGUgYGJgJ3Mgbm9kZSB3aXRoIGBjYCdzIHZhbHVlIGFuZCBkZWxldGUgYGNgJ3Mgbm9kZSwgc28gYGJgJ3MgY29tbWVudCB3b3VsZCBlbmQgdXAgYW5ub3RhdGluZyBgY2A6IGV4YWN0bHlcbiAqIHRoZSBtaXNhdHRyaWJ1dGlvbiB0aGlzIG1vZHVsZSBleGlzdHMgdG8gcHJldmVudC5cbiAqXG4gKiBBIHJlbW92YWwgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW4gaW5zZXJ0aW9uIG9mIHRoZSBzYW1lIHNoYXBlIGlzIGZvbGRlZCBpbnRvIGEgc2luZ2xlIGBtZXJnZWAsIHNvIGFuIGl0ZW0gZWRpdGVkXG4gKiBpbiBwbGFjZSAoYFt7IHF0eTogMSB9XWAgdG8gYFt7IHF0eTogMiB9XWApIGtlZXBzIGl0cyBvd24gbm9kZSBhbmQgaXRzIGNvbW1lbnRzIHJhdGhlciB0aGFuIGJlaW5nIHJlYnVpbHQuXG4gKlxuICogQHBhcmFtIG9sZEFycmF5IC0gVGhlIHNlcXVlbmNlIGFzIHRoZSBzb3VyY2UgaG9sZHMgaXQuXG4gKiBAcGFyYW0gbmV3QXJyYXkgLSBUaGUgc2VxdWVuY2UgYXMgaXQgaXMgdG8gYmUgd3JpdHRlbi5cbiAqIEByZXR1cm5zIFRoZSBzdGVwcyB0byBhcHBseSwgaW4gb3V0cHV0IG9yZGVyLlxuICovXG5mdW5jdGlvbiBidWlsZEVkaXRTY3JpcHQob2xkQXJyYXk6IHJlYWRvbmx5IHVua25vd25bXSwgbmV3QXJyYXk6IHJlYWRvbmx5IHVua25vd25bXSk6IEVkaXRTdGVwW10ge1xuICBjb25zdCByYXdTdGVwcyA9IGJ1aWxkUmF3RWRpdFNjcmlwdChvbGRBcnJheSwgbmV3QXJyYXkpO1xuICBjb25zdCBzdGVwczogRWRpdFN0ZXBbXSA9IFtdO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCByYXdTdGVwcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBzdGVwID0gY2FzdFRvPFJhd0VkaXRTdGVwPihyYXdTdGVwc1tpbmRleF0pO1xuICAgIGNvbnN0IG5leHRTdGVwID0gcmF3U3RlcHNbaW5kZXggKyAxXTtcbiAgICBpZiAoXG4gICAgICBzdGVwLmtpbmQgPT09ICdyZW1vdmUnICYmIG5leHRTdGVwPy5raW5kID09PSAnaW5zZXJ0J1xuICAgICAgJiYgY2hlY2tJc01lcmdlYWJsZShvbGRBcnJheVtzdGVwLm9sZEluZGV4XSwgbmV3QXJyYXlbbmV4dFN0ZXAubmV3SW5kZXhdKVxuICAgICkge1xuICAgICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdtZXJnZScsIG5ld0luZGV4OiBuZXh0U3RlcC5uZXdJbmRleCwgb2xkSW5kZXg6IHN0ZXAub2xkSW5kZXggfSk7XG4gICAgICBpbmRleCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHN0ZXAua2luZCAhPT0gJ3JlbW92ZScpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiBzdGVwLmtpbmQsIG5ld0luZGV4OiBzdGVwLm5ld0luZGV4LCBvbGRJbmRleDogc3RlcC5vbGRJbmRleCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RlcHM7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUmF3RWRpdFNjcmlwdChvbGRBcnJheTogcmVhZG9ubHkgdW5rbm93bltdLCBuZXdBcnJheTogcmVhZG9ubHkgdW5rbm93bltdKTogUmF3RWRpdFN0ZXBbXSB7XG4gIGNvbnN0IG9sZExlbmd0aCA9IG9sZEFycmF5Lmxlbmd0aDtcbiAgY29uc3QgbmV3TGVuZ3RoID0gbmV3QXJyYXkubGVuZ3RoO1xuICBjb25zdCBjb21tb25MZW5ndGhzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogb2xkTGVuZ3RoICsgMSB9LCAoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBuZXdMZW5ndGggKyAxIH0sICgpID0+IDApKTtcblxuICBmb3IgKGxldCBvbGRJbmRleCA9IG9sZExlbmd0aCAtIDE7IG9sZEluZGV4ID49IDA7IG9sZEluZGV4LS0pIHtcbiAgICBmb3IgKGxldCBuZXdJbmRleCA9IG5ld0xlbmd0aCAtIDE7IG5ld0luZGV4ID49IDA7IG5ld0luZGV4LS0pIHtcbiAgICAgIGNvbnN0IHJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleF0pO1xuICAgICAgY29uc3QgbmV4dFJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleCArIDFdKTtcbiAgICAgIHJvd1tuZXdJbmRleF0gPSBpc0RlZXBFcXVhbChvbGRBcnJheVtvbGRJbmRleF0sIG5ld0FycmF5W25ld0luZGV4XSlcbiAgICAgICAgPyBjYXN0VG88bnVtYmVyPihuZXh0Um93W25ld0luZGV4ICsgMV0pICsgMVxuICAgICAgICA6IE1hdGgubWF4KGNhc3RUbzxudW1iZXI+KG5leHRSb3dbbmV3SW5kZXhdKSwgY2FzdFRvPG51bWJlcj4ocm93W25ld0luZGV4ICsgMV0pKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBzdGVwczogUmF3RWRpdFN0ZXBbXSA9IFtdO1xuICBsZXQgb2xkSW5kZXggPSAwO1xuICBsZXQgbmV3SW5kZXggPSAwO1xuXG4gIHdoaWxlIChvbGRJbmRleCA8IG9sZExlbmd0aCAmJiBuZXdJbmRleCA8IG5ld0xlbmd0aCkge1xuICAgIGlmIChpc0RlZXBFcXVhbChvbGRBcnJheVtvbGRJbmRleF0sIG5ld0FycmF5W25ld0luZGV4XSkpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAna2VlcCcsIG5ld0luZGV4LCBvbGRJbmRleCB9KTtcbiAgICAgIG9sZEluZGV4Kys7XG4gICAgICBuZXdJbmRleCsrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3ZhbFJvdyA9IGNhc3RUbzxudW1iZXJbXT4oY29tbW9uTGVuZ3Roc1tvbGRJbmRleCArIDFdKTtcbiAgICBjb25zdCBpbnNlcnRpb25Sb3cgPSBjYXN0VG88bnVtYmVyW10+KGNvbW1vbkxlbmd0aHNbb2xkSW5kZXhdKTtcbiAgICBjb25zdCByZW1vdmFsQ29tbW9uTGVuZ3RoID0gY2FzdFRvPG51bWJlcj4ocmVtb3ZhbFJvd1tuZXdJbmRleF0pO1xuICAgIGNvbnN0IGluc2VydGlvbkNvbW1vbkxlbmd0aCA9IGNhc3RUbzxudW1iZXI+KGluc2VydGlvblJvd1tuZXdJbmRleCArIDFdKTtcbiAgICBpZiAocmVtb3ZhbENvbW1vbkxlbmd0aCA+PSBpbnNlcnRpb25Db21tb25MZW5ndGgpIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAncmVtb3ZlJywgbmV3SW5kZXg6IC0xLCBvbGRJbmRleCB9KTtcbiAgICAgIG9sZEluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0ZXBzLnB1c2goeyBraW5kOiAnaW5zZXJ0JywgbmV3SW5kZXgsIG9sZEluZGV4OiAtMSB9KTtcbiAgICAgIG5ld0luZGV4Kys7XG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG9sZEluZGV4IDwgb2xkTGVuZ3RoOyBvbGRJbmRleCsrKSB7XG4gICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdyZW1vdmUnLCBuZXdJbmRleDogLTEsIG9sZEluZGV4IH0pO1xuICB9XG5cbiAgZm9yICg7IG5ld0luZGV4IDwgbmV3TGVuZ3RoOyBuZXdJbmRleCsrKSB7XG4gICAgc3RlcHMucHVzaCh7IGtpbmQ6ICdpbnNlcnQnLCBuZXdJbmRleCwgb2xkSW5kZXg6IC0xIH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0ZXBzO1xufVxuXG5mdW5jdGlvbiBjaGVja0NhcnJpZXNJbmRlbnQoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCBpbmRlbnQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gQ1NULnN0cmluZ2lmeShpdGVtKS5yZXBsYWNlKC9eXFxuKy8sICcnKS5zdGFydHNXaXRoKCcgJy5yZXBlYXQoaW5kZW50KSk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrSGFzQW5jaG9yT3JBbGlhcyhjb250ZW50czogUGFyc2VkTm9kZSk6IGJvb2xlYW4ge1xuICBsZXQgaGFzQW5jaG9yT3JBbGlhcyA9IGZhbHNlO1xuXG4gIHZpc2l0KGNvbnRlbnRzLCB7XG4gICAgTm9kZShfa2V5OiB1bmtub3duLCBub2RlOiBOb2RlKTogc3ltYm9sIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICghaXNBbGlhcyhub2RlKSAmJiBub2RlLmFuY2hvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGhhc0FuY2hvck9yQWxpYXMgPSB0cnVlO1xuICAgICAgcmV0dXJuIHZpc2l0LkJSRUFLO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGhhc0FuY2hvck9yQWxpYXM7XG59XG5cbmZ1bmN0aW9uIGNoZWNrSXNNZXJnZWFibGUob2xkVmFsdWU6IHVua25vd24sIG5ld1ZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiAoY2hlY2tJc1BsYWluT2JqZWN0KG9sZFZhbHVlKSAmJiBjaGVja0lzUGxhaW5PYmplY3QobmV3VmFsdWUpKSB8fCAoQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkpO1xufVxuXG4vKipcbiAqIENoZWNrcyB0aGUgc3BsaWNlZCBibG9jayBhZ2FpbnN0IHRoZSBvbmUgdGhlIHBhcnNlLWFuZC1zdHJpbmdpZnkgcGF0aCB3b3VsZCBoYXZlIHdyaXR0ZW4gZm9yIHRoZSBzYW1lIHZhbHVlLlxuICpcbiAqIENvbXBhcmluZyB0aGUgdHdvIFBBUlNFRCB2YWx1ZXMgcmF0aGVyIHRoYW4gdGhlIHR3byB0ZXh0cyBpcyB0aGUgd2hvbGUgcG9pbnQ6IHRoZSB0ZXh0cyBhcmUgc3VwcG9zZWQgdG8gZGlmZmVyIFx1MjAxNCB0aGF0XG4gKiBpcyB0aGUgZm9ybWF0dGluZyB0aGlzIG1vZHVsZSBwcmVzZXJ2ZXMgXHUyMDE0IHdoaWxlIHRoZSB2YWx1ZXMgbXVzdCBub3QuIENvbXBhcmluZyBhZ2FpbnN0IHRoYXQgcGF0aCdzIG91dHB1dCByYXRoZXIgdGhhblxuICogYWdhaW5zdCBgbmV3RnJvbnRtYXR0ZXJgIGl0c2VsZiBpcyB3aGF0IG1ha2VzIHRoZSBndWFyYW50ZWUgZXhhY3QsIHNpbmNlIGJvdGggc2lkZXMgdGhlbiBjYXJyeSB0aGUgc2FtZSByb3VuZC10cmlwXG4gKiBsb3NzZXMsIGB1bmRlZmluZWRgIHZhbHVlcyBkcm9wcGVkIGFuZCB0aW1lc3RhbXBzIHJlYWQgYmFjayBhcyBkYXRlcyBhbW9uZyB0aGVtLlxuICpcbiAqIEBwYXJhbSBzcGxpY2VkQm9keSAtIFRoZSBzcGxpY2VkIGJsb2NrIHRleHQuXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRoYXQgd2FzIHRvIGJlIHdyaXR0ZW4uXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzcGxpY2VkIGJsb2NrIHJlYWRzIGJhY2sgYXMgdGhlIHZhbHVlIHRoZSBwYXJzZS1hbmQtc3RyaW5naWZ5IHBhdGggd291bGQgaGF2ZSB3cml0dGVuLlxuICovXG5mdW5jdGlvbiBjaGVja0lzU2VtYW50aWNNYXRjaChzcGxpY2VkQm9keTogc3RyaW5nLCBuZXdGcm9udG1hdHRlcjogb2JqZWN0KTogYm9vbGVhbiB7XG4gIGxldCBzcGxpY2VkVmFsdWU6IHVua25vd247XG5cbiAgdHJ5IHtcbiAgICBzcGxpY2VkVmFsdWUgPSBwYXJzZVlhbWwoc3BsaWNlZEJvZHkpO1xuICAgIC8qXG4gICAgICogdjggaWdub3JlIHN0YXJ0IC0tIEEgbmV0LCBub3QgYSBwYXRoOiBgcGFyc2VZYW1sYCBUSFJPV1Mgb24gYSBibG9jayBpdCBjYW5ub3QgcmVhZCByYXRoZXIgdGhhbiByZXBvcnRpbmcgaXQsIGFuZFxuICAgICAqIGEgc3BsaWNlIGNvdWxkIHByb2R1Y2Ugb25lLiBBIDM2IDAwMC1tdXRhdGlvbiBkaWZmZXJlbnRpYWwgZnV6eiBmb3VuZCA5MyB0aGF0IGRpZCwgZXZlcnkgb25lIG9mIHRoZW0gdGhlXG4gICAgICogdmFsdWVsZXNzLWl0ZW0gc2hhcGUgYG5vcm1hbGl6ZUl0ZW1JbmRlbnRzYCBub3cgcmVwYWlycywgYW5kIG5vbmUgYXQgYWxsIGFmdGVyd2FyZHMgXHUyMDE0IHNvIHRoZXJlIGlzIG5vIGlucHV0IGxlZnRcbiAgICAgKiB0byBwaW4gdGhpcyB3aXRoLCBhbmQgdGhlIGNvbnRyYWN0IHRoYXQgaXQgdXBob2xkcyAoZGVjbGluZSwgbmV2ZXIgdGhyb3cpIGlzIHRoZSBvbmUgdGhpcyBtb2R1bGUncyBjYWxsZXJzIHJlbHlcbiAgICAgKiBvbi4gRG8gbm90IGRlbGV0ZSBpdCBvbiB0aGUgc3RyZW5ndGggb2YgdGhhdDogaXQgaXMgdGhlIHJlYXNvbiBhIGZ1dHVyZSBzaGFwZSBpcyBhIGZhbGxiYWNrIHJhdGhlciB0aGFuIGEgY3Jhc2guXG4gICAgICovXG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICB9XG5cbiAgcmV0dXJuIGlzRGVlcEVxdWFsKHNwbGljZWRWYWx1ZSwgcGFyc2VZYW1sKHN0cmluZ2lmeVlhbWwobmV3RnJvbnRtYXR0ZXIpKSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZU1hcEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBpbmRlbnQ6IG51bWJlcik6IENTVC5Db2xsZWN0aW9uSXRlbSB8IG51bGwge1xuICBjb25zdCBmcmFnbWVudCA9IHN0cmluZ2lmeSh7IFtrZXldOiB2YWx1ZSB9LCBPQlNJRElBTl9TVFJJTkdJRllfT1BUSU9OUyk7XG4gIC8vIEFuIGVtcHR5IG1hcHBpbmcgbWVhbnMgdGhlIHZhbHVlIGlzIGB1bmRlZmluZWRgLCB3aGljaCB0aGUgcmV3cml0ZSBwYXRoIGRyb3BzIGFzIHdlbGwuIERyb3AgdGhlIGtleSB3aXRoIGl0LlxuICByZXR1cm4gZnJhZ21lbnQudHJpbUVuZCgpID09PSBFTVBUWV9NQVBQSU5HX0ZSQUdNRU5UID8gbnVsbCA6IGxpZnRGcmFnbWVudEl0ZW0oZnJhZ21lbnQsIGluZGVudCwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNlcUl0ZW0odmFsdWU6IHVua25vd24sIGluZGVudDogbnVtYmVyKTogQ1NULkNvbGxlY3Rpb25JdGVtIHtcbiAgcmV0dXJuIGxpZnRGcmFnbWVudEl0ZW0oc3RyaW5naWZ5KFt2YWx1ZV0sIE9CU0lESUFOX1NUUklOR0lGWV9PUFRJT05TKSwgaW5kZW50LCB0cnVlKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlU3BhY2VUb2tlbihpbmRlbnQ6IG51bWJlcik6IENTVC5Tb3VyY2VUb2tlbiB7XG4gIHJldHVybiB7XG4gICAgaW5kZW50LFxuICAgIG9mZnNldDogLTEsXG4gICAgc291cmNlOiAnICcucmVwZWF0KGluZGVudCksXG4gICAgdHlwZTogJ3NwYWNlJ1xuICB9O1xufVxuXG4vKipcbiAqIFJlYnVpbGRzIGEgYmxvY2sgbWFwJ3MgaXRlbXMgc28gaXQgcmVwcmVzZW50cyBgbmV3T2JqZWN0YCwgcmV1c2luZyBlYWNoIHN1cnZpdmluZyBrZXkncyBvd24gaXRlbSB0b2tlbi5cbiAqXG4gKiBUaGUgaXRlbXMgYXJlIHJlYnVpbHQgaW4gdGhlIE5FVyBvYmplY3QncyBrZXkgb3JkZXIgcmF0aGVyIHRoYW4gdGhlIHNvdXJjZSdzLCBzbyBhIGNhbGxiYWNrIHRoYXQgc29ydHMgb3IgcmVvcmRlcnNcbiAqIGtleXMgc3RpbGwgc29ydHMgdGhlbSBcdTIwMTQgdGhlIHJlb3JkZXJlZCBrZXkgc2ltcGx5IHRha2VzIGl0cyBjb21tZW50LCBpdHMgcXVvdGluZyBhbmQgaXRzIHZhbHVlIGZvcm1hdHRpbmcgd2l0aCBpdC5cbiAqXG4gKiBgZmFsc2VgIG1lYW5zIHRoZSBjYWxsZXIgc2hvdWxkIHJlLWVtaXQgdGhpcyB3aG9sZSBjb2xsZWN0aW9uIGluc3RlYWQ6IGEgZHVwbGljYXRlIGtleSwgYSBrZXkgbm8gc3RyaW5nIGNhbiBuYW1lLCBvclxuICogYSBuZXN0ZWQgbWVyZ2UgdGhhdCBnYXZlIHVwLlxuICpcbiAqIEBwYXJhbSB0b2tlbiAtIFRoZSBibG9jayBtYXAgdG8gcmVidWlsZC5cbiAqIEBwYXJhbSBvbGRPYmplY3QgLSBUaGUgbWFwcGluZyBhcyB0aGUgc291cmNlIGhvbGRzIGl0LlxuICogQHBhcmFtIG5ld09iamVjdCAtIFRoZSBtYXBwaW5nIHRvIHdyaXRlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdG9rZW4gbm93IHJlcHJlc2VudHMgYG5ld09iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGRpZE1lcmdlTWFwKHRva2VuOiBDU1QuQmxvY2tNYXAsIG9sZE9iamVjdDogR2VuZXJpY09iamVjdCwgbmV3T2JqZWN0OiBHZW5lcmljT2JqZWN0KTogYm9vbGVhbiB7XG4gIG5vcm1hbGl6ZUl0ZW1JbmRlbnRzKHRva2VuKTtcbiAgY29uc3QgaXRlbXNCeUtleSA9IG5ldyBNYXA8c3RyaW5nLCBDU1QuQ29sbGVjdGlvbkl0ZW0+KCk7XG5cbiAgZm9yIChjb25zdCBpdGVtIG9mIHRva2VuLml0ZW1zKSB7XG4gICAgY29uc3Qga2V5ID0gcmVhZEl0ZW1LZXkoaXRlbSk7XG4gICAgaWYgKGtleSA9PT0gbnVsbCB8fCBpdGVtc0J5S2V5LmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaXRlbXNCeUtleS5zZXQoa2V5LCBpdGVtKTtcbiAgfVxuXG4gIGNvbnN0IG1lcmdlZEl0ZW1zOiBDU1QuQ29sbGVjdGlvbkl0ZW1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2tleSwgbmV3VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG5ld09iamVjdCkpIHtcbiAgICBjb25zdCBpdGVtID0gaXRlbXNCeUtleS5nZXQoa2V5KTtcblxuICAgIGlmICghaXRlbSkge1xuICAgICAgY29uc3QgY3JlYXRlZEl0ZW0gPSBjcmVhdGVNYXBJdGVtKGtleSwgbmV3VmFsdWUsIHRva2VuLmluZGVudCk7XG4gICAgICBpZiAoY3JlYXRlZEl0ZW0gIT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSXRlbXMucHVzaChjcmVhdGVkSXRlbSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIG1lcmdlSXRlbVZhbHVlKGl0ZW0sIG9sZE9iamVjdFtrZXldLCBuZXdWYWx1ZSwgdG9rZW4uaW5kZW50LCBmYWxzZSk7XG4gICAgbWVyZ2VkSXRlbXMucHVzaChpdGVtKTtcbiAgfVxuXG4gIGlmIChtZXJnZWRJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmaW5hbGl6ZUl0ZW1zKG1lcmdlZEl0ZW1zKTtcbiAgdG9rZW4uaXRlbXMgPSBjYXN0VG88Q1NULkJsb2NrTWFwWydpdGVtcyddPihtZXJnZWRJdGVtcyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFJlYnVpbGRzIGEgYmxvY2sgc2VxdWVuY2UncyBpdGVtcyBzbyBpdCByZXByZXNlbnRzIGBuZXdBcnJheWAsIHJldXNpbmcgdGhlIHRva2VuIG9mIGV2ZXJ5IGl0ZW0gdGhhdCBzdXJ2aXZlcy5cbiAqXG4gKiBAcGFyYW0gdG9rZW4gLSBUaGUgYmxvY2sgc2VxdWVuY2UgdG8gcmVidWlsZC5cbiAqIEBwYXJhbSBvbGRBcnJheSAtIFRoZSBzZXF1ZW5jZSBhcyB0aGUgc291cmNlIGhvbGRzIGl0LlxuICogQHBhcmFtIG5ld0FycmF5IC0gVGhlIHNlcXVlbmNlIHRvIHdyaXRlLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgdG9rZW4gbm93IHJlcHJlc2VudHMgYG5ld0FycmF5YC5cbiAqL1xuZnVuY3Rpb24gZGlkTWVyZ2VTZXEodG9rZW46IENTVC5CbG9ja1NlcXVlbmNlLCBvbGRBcnJheTogcmVhZG9ubHkgdW5rbm93bltdLCBuZXdBcnJheTogcmVhZG9ubHkgdW5rbm93bltdKTogYm9vbGVhbiB7XG4gIGlmIChvbGRBcnJheS5sZW5ndGggKiBuZXdBcnJheS5sZW5ndGggPiBFRElUX1NDUklQVF9DRUxMX0xJTUlUKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbm9ybWFsaXplSXRlbUluZGVudHModG9rZW4pO1xuICBjb25zdCBtZXJnZWRJdGVtczogQ1NULkNvbGxlY3Rpb25JdGVtW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHN0ZXAgb2YgYnVpbGRFZGl0U2NyaXB0KG9sZEFycmF5LCBuZXdBcnJheSkpIHtcbiAgICBpZiAoc3RlcC5raW5kID09PSAnaW5zZXJ0Jykge1xuICAgICAgbWVyZ2VkSXRlbXMucHVzaChjcmVhdGVTZXFJdGVtKG5ld0FycmF5W3N0ZXAubmV3SW5kZXhdLCB0b2tlbi5pbmRlbnQpKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSBjYXN0VG88Q1NULkNvbGxlY3Rpb25JdGVtPih0b2tlbi5pdGVtc1tzdGVwLm9sZEluZGV4XSk7XG4gICAgaWYgKHN0ZXAua2luZCA9PT0gJ21lcmdlJykge1xuICAgICAgbWVyZ2VJdGVtVmFsdWUoaXRlbSwgb2xkQXJyYXlbc3RlcC5vbGRJbmRleF0sIG5ld0FycmF5W3N0ZXAubmV3SW5kZXhdLCB0b2tlbi5pbmRlbnQsIHRydWUpO1xuICAgIH1cblxuICAgIG1lcmdlZEl0ZW1zLnB1c2goaXRlbSk7XG4gIH1cblxuICBpZiAobWVyZ2VkSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZmluYWxpemVJdGVtcyhtZXJnZWRJdGVtcyk7XG4gIHRva2VuLml0ZW1zID0gY2FzdFRvPENTVC5CbG9ja1NlcXVlbmNlWydpdGVtcyddPihtZXJnZWRJdGVtcyk7XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEdpdmVzIGEgbmVzdGVkIGNvbGxlY3Rpb24ncyBmaXJzdCBpdGVtIHRoZSBsZWFkaW5nIGluZGVudCBvZiBpdHMgb3duLCBzbyB0aGUgaXRlbXMgYmVjb21lIGludGVyY2hhbmdlYWJsZS5cbiAqXG4gKiBBIG5lc3RlZCBjb2xsZWN0aW9uJ3MgZmlyc3QgaXRlbSBjYXJyaWVzIG5vIGluZGVudCBpbiB0aGUgc291cmNlOiB0aGUgaW5kZW50IHNpdHMgaW4gd2hhdGV2ZXIgcHJlY2VkZXMgdGhlXG4gKiBjb2xsZWN0aW9uIFx1MjAxNCB0aGUgc2VwYXJhdG9yJ3MgdHJhaWxpbmcgc3BhY2VzLCBvciB0aGUgZGFzaCBvZiB0aGUgc2VxdWVuY2UgaXRlbSBpdCBiZWxvbmdzIHRvLiBFdmVyeSBsYXRlciBpdGVtXG4gKiBjYXJyaWVzIGl0cyBvd24uIFJlbW92aW5nIG9yIHJlb3JkZXJpbmcgdGhlIGZpcnN0IGl0ZW0gd2l0aG91dCByZXBhaXJpbmcgdGhhdCBsZWF2ZXMgdGhlIHN1cnZpdm9yIGRvdWJseSBpbmRlbnRlZCxcbiAqIHNvIHRoZSBpbmRlbnQgaXMgbW92ZWQgb3V0IG9mIHRoZSBzZXBhcmF0b3IgYW5kIG9udG8gdGhlIGl0ZW0gYmVmb3JlIGFueXRoaW5nIGlzIHJlYXJyYW5nZWQuXG4gKlxuICogVGhlIG9uZSBzaGFwZSBpdCBjYW5ub3QgcmVwYWlyIGlzIGEgZmlyc3QgaXRlbSB3cml0dGVuIElOTElORSB3aXRoIHdoYXQgcHJlY2VkZXMgaXQgKGAtIG5hbWU6IGFgKSwgd2hlcmUgdGhlcmUgaXMgbm9cbiAqIGluZGVudCB0byBtb3ZlIGJlY2F1c2UgdGhlIGl0ZW0gaXMgbm90IGF0IHRoZSBzdGFydCBvZiBpdHMgbGluZS4gU3VjaCBhIGNvbGxlY3Rpb24gaXMgcmUtZW1pdHRlZCB3aG9sZSBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSBwcmVjZWRpbmdUb2tlbnMgLSBUaGUgc2VwYXJhdG9yIHRva2VucyB0aGF0IHNpdCBiZXR3ZWVuIHRoZSBwYXJlbnQgYW5kIHRoZSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIGNvbGxlY3Rpb24gLSBUaGUgY29sbGVjdGlvbiB3aG9zZSBmaXJzdCBpdGVtIGlzIHRvIGNhcnJ5IGl0cyBvd24gaW5kZW50LlxuICogQHJldHVybnMgV2hldGhlciB0aGUgY29sbGVjdGlvbidzIGl0ZW1zIGFyZSBub3cgaW50ZXJjaGFuZ2VhYmxlLlxuICovXG5mdW5jdGlvbiBkaWROb3JtYWxpemVGaXJzdEl0ZW1JbmRlbnQocHJlY2VkaW5nVG9rZW5zOiBDU1QuU291cmNlVG9rZW5bXSB8IHVuZGVmaW5lZCwgY29sbGVjdGlvbjogQ29sbGVjdGlvblRva2VuKTogYm9vbGVhbiB7XG4gIC8vIEEgcGFyc2VkIGJsb2NrIGNvbGxlY3Rpb24gYWx3YXlzIGhvbGRzIGF0IGxlYXN0IG9uZSBpdGVtLCBvciBpdCB3b3VsZCBub3QgaGF2ZSBwYXJzZWQgYXMgYSBjb2xsZWN0aW9uIGF0IGFsbC5cbiAgY29uc3QgZmlyc3RJdGVtID0gY2FzdFRvPENTVC5Db2xsZWN0aW9uSXRlbT4oY29sbGVjdGlvbi5pdGVtc1swXSk7XG5cbiAgaWYgKGNvbGxlY3Rpb24uaW5kZW50ID09PSAwIHx8IGNoZWNrQ2Fycmllc0luZGVudChmaXJzdEl0ZW0sIGNvbGxlY3Rpb24uaW5kZW50KSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29uc3QgbGFzdFRva2VuID0gcHJlY2VkaW5nVG9rZW5zPy5hdCgtMSk7XG4gIGlmIChsYXN0VG9rZW4/LnR5cGUgIT09ICdzcGFjZScgfHwgcHJlY2VkaW5nVG9rZW5zPy5hdChTRUNPTkRfVE9fTEFTVF9JTkRFWCk/LnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZWNlZGluZ1Rva2Vucy5wb3AoKTtcbiAgZmlyc3RJdGVtLnN0YXJ0LnVuc2hpZnQobGFzdFRva2VuKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGVtaXRNYXBJdGVtVG9rZW5zKHZhbHVlOiB1bmtub3duLCBpbmRlbnQ6IG51bWJlciwgc2hvdWxkUHJlZmVyRmxvdzogYm9vbGVhbik6IE1hcEl0ZW1Ub2tlbnMge1xuICBjb25zdCBmcmFnbWVudCA9IHNob3VsZFByZWZlckZsb3dcbiAgICA/IGAke1BMQUNFSE9MREVSX0tFWX06ICR7c3RyaW5naWZ5Rmxvdyh2YWx1ZSl9YFxuICAgIDogc3RyaW5naWZ5KHsgW1BMQUNFSE9MREVSX0tFWV06IHZhbHVlIH0sIE9CU0lESUFOX1NUUklOR0lGWV9PUFRJT05TKTtcbiAgY29uc3QgaXRlbSA9IGxpZnRGcmFnbWVudEl0ZW0oZnJhZ21lbnQsIGluZGVudCwgZmFsc2UpO1xuICByZXR1cm4geyBzZXBhcmF0b3JUb2tlbnM6IGNhc3RUbzxDU1QuU291cmNlVG9rZW5bXT4oaXRlbS5zZXApLCB2YWx1ZTogaXRlbS52YWx1ZSB9O1xufVxuXG5mdW5jdGlvbiBlbWl0U2VxSXRlbSh2YWx1ZTogdW5rbm93biwgaW5kZW50OiBudW1iZXIsIHNob3VsZFByZWZlckZsb3c6IGJvb2xlYW4pOiBDU1QuQ29sbGVjdGlvbkl0ZW0ge1xuICBjb25zdCBmcmFnbWVudCA9IHNob3VsZFByZWZlckZsb3cgPyBgLSAke3N0cmluZ2lmeUZsb3codmFsdWUpfWAgOiBzdHJpbmdpZnkoW3ZhbHVlXSwgT0JTSURJQU5fU1RSSU5HSUZZX09QVElPTlMpO1xuICByZXR1cm4gbGlmdEZyYWdtZW50SXRlbShmcmFnbWVudCwgaW5kZW50LCBmYWxzZSk7XG59XG5cbi8qKlxuICogTWFrZXMgdGhlIG1lcmdlZCBpdGVtcyBvZiBhIGNvbGxlY3Rpb24gam9pbmFibGUgYWdhaW4sIHdoYXRldmVyIHRoZSBtZXJnZSBkaWQgdG8gdGhlaXIgb3JkZXIuXG4gKlxuICogQW4gaXRlbSB0aGF0IHdhcyBub3QgZmlyc3QgY2FuIGNhcnJ5IHRoZSBibGFuayBsaW5lIHRoYXQgc2VwYXJhdGVkIGl0IGZyb20gaXRzIHByZWRlY2Vzc29yLCB3aGljaCBiZWNvbWVzIGEgbGVhZGluZ1xuICogYmxhbmsgbGluZSBvbmNlIGl0IElTIGZpcnN0LCBhbmQgbm90aGluZyBpbiB0aGUgaXRlbSB0b2tlbnMgdGhlbXNlbHZlcyBzaG93cyBpdC4gRXZlcnkgaXRlbSBhbHJlYWR5IGVuZHMgaW4gaXRzIG93blxuICogbmV3bGluZSwgYmVjYXVzZSBPYnNpZGlhbidzIGZyb250IG1hdHRlciBibG9jayBhbHdheXMgZW5kcyBpbiBvbmUsIHNvIHJlb3JkZXJpbmcgbmV2ZXIgam9pbnMgdHdvIGl0ZW1zIG9uIG9uZSBsaW5lLlxuICpcbiAqIEBwYXJhbSBpdGVtcyAtIFRoZSBtZXJnZWQgaXRlbXMsIG11dGF0ZWQgaW4gcGxhY2UuXG4gKi9cbmZ1bmN0aW9uIGZpbmFsaXplSXRlbXMoaXRlbXM6IENTVC5Db2xsZWN0aW9uSXRlbVtdKTogdm9pZCB7XG4gIGNvbnN0IGZpcnN0SXRlbSA9IGNhc3RUbzxDU1QuQ29sbGVjdGlvbkl0ZW0+KGl0ZW1zWzBdKTtcbiAgd2hpbGUgKGZpcnN0SXRlbS5zdGFydFswXT8udHlwZSA9PT0gJ25ld2xpbmUnKSB7XG4gICAgZmlyc3RJdGVtLnN0YXJ0LnNoaWZ0KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5kZW50TGluZXModGV4dDogc3RyaW5nLCBpbmRlbnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChpbmRlbnQgPT09IDApIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIGNvbnN0IHBhZGRpbmcgPSAnICcucmVwZWF0KGluZGVudCk7XG4gIHJldHVybiB0ZXh0LnNwbGl0KCdcXG4nKS5tYXAoKGxpbmUpID0+IGxpbmUgPT09ICcnID8gbGluZSA6IHBhZGRpbmcgKyBsaW5lKS5qb2luKCdcXG4nKTtcbn1cblxuLyoqXG4gKiBQYXJzZXMgYSBmcmVzaGx5IGVtaXR0ZWQgZnJhZ21lbnQgYW5kIGhhbmRzIGJhY2sgaXRzIG9uZSBjb2xsZWN0aW9uIGl0ZW0sIGluZGVudGVkIHRvIHNpdCB3aGVyZSBpdCBpcyBnb2luZy5cbiAqXG4gKiBUaGUgZnJhZ21lbnQncyBvd24gbGluZXMgYXJlIGluZGVudGVkIGJlZm9yZSBwYXJzaW5nLCBzbyBldmVyeSB0b2tlbiBpbnNpZGUgaXQgY2FycmllcyB0aGUgYWJzb2x1dGUgaW5kZW50IHRoZVxuICogb3V0cHV0IG5lZWRzLiBUaGUgaXRlbSdzIE9XTiBsZWFkaW5nIGluZGVudCBpcyBub3QgcGFydCBvZiB0aGF0IFx1MjAxNCBhIGZpcnN0IGl0ZW0gbmV2ZXIgY2FycmllcyBvbmUsIHRoZSBpbmRlbnQgYmVpbmdcbiAqIHN1cHBsaWVkIGJ5IHdoYXRldmVyIHByZWNlZGVzIHRoZSBjb2xsZWN0aW9uIFx1MjAxNCBzbyBpdCBpcyBwcmVwZW5kZWQgYXMgYSB0b2tlbiwgd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGUgaXRlbSB1bmlmb3JtXG4gKiB3aXRoIGl0cyBuZXcgc2libGluZ3MgYW5kIHRoZXJlZm9yZSBmcmVlIHRvIGJlIHJlb3JkZXJlZCBvciB0byBiZWNvbWUgdGhlIGZpcnN0LlxuICpcbiAqIFRoZSBmcmFnbWVudCB3YXMgcHJvZHVjZWQgYnkgYHN0cmluZ2lmeWAgYSBsaW5lIGFib3ZlIHRoZSBjYWxsLCBhcyBhIG9uZS1pdGVtIGJsb2NrIGNvbGxlY3Rpb24sIHNvIGl0IGFsd2F5cyBwYXJzZXNcbiAqIGJhY2sgYXMgb25lIFx1MjAxNCB3aGljaCBpcyB3aHkgdGhpcyByZWFkcyB0aGUgaXRlbSBvdXQgcmF0aGVyIHRoYW4gY2hlY2tpbmcgZm9yIGl0LiBXZXJlIHRoYXQgZXZlciB0byBzdG9wIGhvbGRpbmcsIHRoZVxuICogcmVzdWx0aW5nIHRocm93IGlzIGNhdWdodCBieSBgc2V0RnJvbnRtYXR0ZXJgJ3Mgc2VhbSwgd2hpY2ggcmVwb3J0cyBpdCBhbmQgd3JpdGVzIHRoZSBibG9jayB0aGUgb3JkaW5hcnkgd2F5LlxuICpcbiAqIEBwYXJhbSBmcmFnbWVudCAtIFRoZSBlbWl0dGVkIFlBTUwgZnJhZ21lbnQsIGF0IGluZGVudCB6ZXJvLlxuICogQHBhcmFtIGluZGVudCAtIFRoZSBpbmRlbnQgdGhlIGl0ZW0gd2lsbCBzaXQgYXQuXG4gKiBAcGFyYW0gc2hvdWxkQ2FycnlJbmRlbnQgLSBXaGV0aGVyIHRvIHByZXBlbmQgdGhlIGl0ZW0ncyBvd24gbGVhZGluZyBpbmRlbnQgdG9rZW4uXG4gKiBAcmV0dXJucyBUaGUgaXRlbS5cbiAqL1xuZnVuY3Rpb24gbGlmdEZyYWdtZW50SXRlbShmcmFnbWVudDogc3RyaW5nLCBpbmRlbnQ6IG51bWJlciwgc2hvdWxkQ2FycnlJbmRlbnQ6IGJvb2xlYW4pOiBDU1QuQ29sbGVjdGlvbkl0ZW0ge1xuICBjb25zdCByb290ID0gcGFyc2VEb2N1bWVudChpbmRlbnRMaW5lcyhmcmFnbWVudCwgaW5kZW50KSwgeyBrZWVwU291cmNlVG9rZW5zOiB0cnVlIH0pLmNvbnRlbnRzPy5zcmNUb2tlbjtcbiAgY29uc3QgaXRlbSA9IGNhc3RUbzxDU1QuQ29sbGVjdGlvbkl0ZW0+KGNhc3RUbzxDb2xsZWN0aW9uVG9rZW4+KHJvb3QpLml0ZW1zWzBdKTtcblxuICBpZiAoc2hvdWxkQ2FycnlJbmRlbnQgJiYgaW5kZW50ID4gMCkge1xuICAgIGl0ZW0uc3RhcnQudW5zaGlmdChjcmVhdGVTcGFjZVRva2VuKGluZGVudCkpO1xuICB9XG5cbiAgcmV0dXJuIGl0ZW07XG59XG5cbi8qKlxuICogUmV3cml0ZXMgYW4gaXRlbSdzIHZhbHVlIGluIHBsYWNlIHdoZXJlIGl0IGNhbiwgYW5kIHJlLWVtaXRzIHRoZSB3aG9sZSB2YWx1ZSB3aGVyZSBpdCBjYW5ub3QuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgY29sbGVjdGlvbiBpdGVtIHRvIHJld3JpdGUgdGhlIHZhbHVlIG9mLlxuICogQHBhcmFtIG9sZFZhbHVlIC0gVGhlIHZhbHVlIHRoZSBzb3VyY2UgaG9sZHMuXG4gKiBAcGFyYW0gbmV3VmFsdWUgLSBUaGUgdmFsdWUgdG8gd3JpdGUuXG4gKiBAcGFyYW0gcGFyZW50SW5kZW50IC0gVGhlIGluZGVudCBvZiB0aGUgY29sbGVjdGlvbiB0aGUgaXRlbSBiZWxvbmdzIHRvLlxuICogQHBhcmFtIGlzU2VxSXRlbSAtIFdoZXRoZXIgdGhlIGl0ZW0gaXMgYSBzZXF1ZW5jZSBpdGVtLCB3aGljaCBjYXJyaWVzIG5vIGBzZXBgIGFuZCBubyBrZXkuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlSXRlbVZhbHVlKGl0ZW06IENTVC5Db2xsZWN0aW9uSXRlbSwgb2xkVmFsdWU6IHVua25vd24sIG5ld1ZhbHVlOiB1bmtub3duLCBwYXJlbnRJbmRlbnQ6IG51bWJlciwgaXNTZXFJdGVtOiBib29sZWFuKTogdm9pZCB7XG4gIGlmIChpc0RlZXBFcXVhbChvbGRWYWx1ZSwgbmV3VmFsdWUpKSB7XG4gICAgLy8gVW50b3VjaGVkOiBpdHMgYnl0ZXMgc3RheSBleGFjdGx5IGFzIGl0cyBhdXRob3Igd3JvdGUgdGhlbS4gVGhpcyBpcyB0aGUgd2hvbGUgcG9pbnQgb2YgdGhlIG1vZHVsZS5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB2YWx1ZVRva2VuID0gaXRlbS52YWx1ZTtcbiAgY29uc3QgcHJlY2VkaW5nVG9rZW5zID0gaXNTZXFJdGVtID8gaXRlbS5zdGFydCA6IGl0ZW0uc2VwO1xuXG4gIGlmIChcbiAgICAodmFsdWVUb2tlbj8udHlwZSA9PT0gJ2Jsb2NrLW1hcCcgJiYgY2hlY2tJc1BsYWluT2JqZWN0KG9sZFZhbHVlKSAmJiBjaGVja0lzUGxhaW5PYmplY3QobmV3VmFsdWUpXG4gICAgICAmJiBkaWROb3JtYWxpemVGaXJzdEl0ZW1JbmRlbnQocHJlY2VkaW5nVG9rZW5zLCB2YWx1ZVRva2VuKSAmJiBkaWRNZXJnZU1hcCh2YWx1ZVRva2VuLCBvbGRWYWx1ZSwgbmV3VmFsdWUpKSB8fCAodmFsdWVUb2tlbj8udHlwZSA9PT0gJ2Jsb2NrLXNlcScgJiYgQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkgJiYgQXJyYXkuaXNBcnJheShuZXdWYWx1ZSlcbiAgICAgICAgJiYgZGlkTm9ybWFsaXplRmlyc3RJdGVtSW5kZW50KHByZWNlZGluZ1Rva2VucywgdmFsdWVUb2tlbikgJiYgZGlkTWVyZ2VTZXEodmFsdWVUb2tlbiwgb2xkVmFsdWUsIG5ld1ZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmVwbGFjZUl0ZW1WYWx1ZShpdGVtLCBuZXdWYWx1ZSwgcGFyZW50SW5kZW50LCB2YWx1ZVRva2VuPy50eXBlID09PSAnZmxvdy1jb2xsZWN0aW9uJywgaXNTZXFJdGVtKTtcbn1cblxuLyoqXG4gKiBHaXZlcyBldmVyeSBpdGVtIG9mIGEgY29sbGVjdGlvbiB0aGUgaW5kZW50IG9mIGl0cyBvd24gbGluZSwgc28gdGhhdCBhbnkgb2YgdGhlbSBjYW4gYmUgcmVtb3ZlZCBvciBtb3ZlZC5cbiAqXG4gKiBBbiBpdGVtIHdpdGggTk8gVkFMVUUgXHUyMDE0IGEgYmFyZSBgLWAsIG9yIGBrZXk6YCB3aXRoIG5vdGhpbmcgYWZ0ZXIgaXQgXHUyMDE0IGFic29yYnMgdGhlIG5ld2xpbmUgdGhhdCBlbmRzIGl0cyBsaW5lIEFORCB0aGVcbiAqIGluZGVudCBvZiB0aGUgbGluZSBhZnRlciBpdCwgYmVjYXVzZSB0aGUgcGFyc2VyIGhhcyBub3RoaW5nIGVsc2UgdG8gaGFuZyB0aGVtIG9uLiBSZW1vdmluZyBvciBtb3Zpbmcgc3VjaCBhbiBpdGVtXG4gKiB0aGVyZWZvcmUgdGFrZXMgaXRzIHN1Y2Nlc3NvcidzIGluZGVudCB3aXRoIGl0LCBhbmQgdGhlIGJsb2NrIHRoYXQgY29tZXMgYmFjayBkb2VzIG5vdCBwYXJzZSBhdCBhbGwuXG4gKlxuICogTWVhc3VyZWQ6IG92ZXIgYSAzNiAwMDAtbXV0YXRpb24gZGlmZmVyZW50aWFsIGZ1enogdGhpcyBPTkUgc2hhcGUgYWNjb3VudGVkIGZvciBldmVyeSBzcGxpY2UgdGhlIHNhZmV0eSBuZXQgaGFkIHRvXG4gKiByZWZ1c2Ugb24gdW5yZWFkYWJsZSBvdXRwdXQgXHUyMDE0IDkzIG9mIHRoZW0gXHUyMDE0IHNvIGl0IGlzIGEgZmlkZWxpdHkgZml4IHJhdGhlciB0aGFuIGEgY29ycmVjdG5lc3Mgb25lLCB0aGUgc2FmZXR5IG5ldFxuICogaGF2aW5nIGFscmVhZHkgbWFkZSBlYWNoIG9mIHRob3NlIGEgZmFsbGJhY2suXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb24gLSBUaGUgY29sbGVjdGlvbiB3aG9zZSBpdGVtcyBhcmUgdG8gY2FycnkgdGhlaXIgb3duIGluZGVudC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplSXRlbUluZGVudHMoY29sbGVjdGlvbjogQ29sbGVjdGlvblRva2VuKTogdm9pZCB7XG4gIGZvciAoY29uc3QgW2luZGV4LCBpdGVtXSBvZiBjb2xsZWN0aW9uLml0ZW1zLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5leHRJdGVtID0gY2FzdFRvPENTVC5Db2xsZWN0aW9uSXRlbSB8IHVuZGVmaW5lZD4oY29sbGVjdGlvbi5pdGVtc1tpbmRleCArIDFdKTtcbiAgICBpZiAoIW5leHRJdGVtIHx8IGl0ZW0udmFsdWUpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIEEgbWFwIGl0ZW0gaGFuZ3MgdGhlbSBvbiBpdHMgYHNlcGAsIGEgc2VxdWVuY2UgaXRlbSBvbiBpdHMgYHN0YXJ0YCwgdGhhdCBiZWluZyBhbGwgaXQgaGFzLlxuICAgIGNvbnN0IHRyYWlsaW5nVG9rZW5zID0gaXRlbS5zZXA/Lmxlbmd0aCA/IGl0ZW0uc2VwIDogaXRlbS5zdGFydDtcbiAgICBjb25zdCBsYXN0VG9rZW4gPSB0cmFpbGluZ1Rva2Vucy5hdCgtMSk7XG4gICAgaWYgKGxhc3RUb2tlbj8udHlwZSAhPT0gJ3NwYWNlJyB8fCB0cmFpbGluZ1Rva2Vucy5hdChTRUNPTkRfVE9fTEFTVF9JTkRFWCk/LnR5cGUgIT09ICduZXdsaW5lJykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgdHJhaWxpbmdUb2tlbnMucG9wKCk7XG4gICAgbmV4dEl0ZW0uc3RhcnQudW5zaGlmdChsYXN0VG9rZW4pO1xuICB9XG59XG5cbi8qKlxuICogTmFtZXMgdGhlIGtleSBhbiBpdGVtIGlzIGFkZHJlc3NlZCBieSwgb3IgYG51bGxgIHdoZW4gbm8gc3RyaW5nIGNhbiBuYW1lIGl0LlxuICpcbiAqIGByZXNvbHZlQXNTY2FsYXJgIHlpZWxkcyB0aGUgc2NhbGFyJ3MgVEVYVCByYXRoZXIgdGhhbiBhIHNjaGVtYS1yZXNvbHZlZCB2YWx1ZSwgc28gdGhlIGFuc3dlciBpcyBhbHdheXMgYSBzdHJpbmcgXHUyMDE0XG4gKiBhbmQgaXQgaXMgdGhlIHNhbWUgc3RyaW5nIHRoZSBwbGFpbi1vYmplY3QgcHJvamVjdGlvbiBib3RoIHNpZGVzIG9mIHRoZSBtZXJnZSBhcmUgY29tcGFyZWQgdGhyb3VnaCwgd2hpY2ggaXMgd2hhdFxuICogbGV0cyBhIGA0MjpgIGtleSBtYXRjaCB0aGUgcHJvamVjdGlvbidzIGAnNDInYCB3aXRob3V0IHF1b3RpbmcgaXQgb24gdGhlIHdheSBvdXQuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBuYW1lIHRoZSBrZXkgb2YuXG4gKiBAcmV0dXJucyBUaGUga2V5LCBvciBgbnVsbGAgd2hlbiB0aGUga2V5IGlzIGEgY29sbGVjdGlvbiByYXRoZXIgdGhhbiBhIHNjYWxhci5cbiAqL1xuZnVuY3Rpb24gcmVhZEl0ZW1LZXkoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtKTogbnVsbCB8IHN0cmluZyB7XG4gIHJldHVybiAhaXRlbS5rZXkgfHwgIUNTVC5pc1NjYWxhcihpdGVtLmtleSkgPyBudWxsIDogY2FzdFRvPFJlc29sdmVkU2NhbGFyPihDU1QucmVzb2x2ZUFzU2NhbGFyKGl0ZW0ua2V5KSkudmFsdWU7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VJdGVtVmFsdWUoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCBuZXdWYWx1ZTogdW5rbm93biwgaW5kZW50OiBudW1iZXIsIHNob3VsZFByZWZlckZsb3c6IGJvb2xlYW4sIGlzU2VxSXRlbTogYm9vbGVhbik6IHZvaWQge1xuICBpZiAoaXNTZXFJdGVtKSB7XG4gICAgc2V0SXRlbVZhbHVlKGl0ZW0sIGVtaXRTZXFJdGVtKG5ld1ZhbHVlLCBpbmRlbnQsIHNob3VsZFByZWZlckZsb3cpLnZhbHVlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBlbWl0dGVkVG9rZW5zID0gZW1pdE1hcEl0ZW1Ub2tlbnMobmV3VmFsdWUsIGluZGVudCwgc2hvdWxkUHJlZmVyRmxvdyk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25hbWUtcmVwbGFjZW1lbnRzIC0tIGBzZXBgIGlzIHRoZSBgeWFtbGAgcGFja2FnZSdzIG93biBwcm9wZXJ0eSBuYW1lLlxuICBpdGVtLnNlcCA9IGVtaXR0ZWRUb2tlbnMuc2VwYXJhdG9yVG9rZW5zO1xuICBzZXRJdGVtVmFsdWUoaXRlbSwgZW1pdHRlZFRva2Vucy52YWx1ZSk7XG59XG5cbi8qKlxuICogQXNzaWducyBhbiBpdGVtJ3MgdmFsdWUgdG9rZW4sIHJlbW92aW5nIHRoZSBwcm9wZXJ0eSBvdXRyaWdodCB3aGVuIHRoZSBlbWl0dGVkIHZhbHVlIGhhcyBub25lLlxuICpcbiAqIEEga2V5IHdpdGggYSBgbnVsbGAgdmFsdWUgZW1pdHMgYXMgYGtleTpgIHdpdGggbm90aGluZyBhZnRlciB0aGUgc2VwYXJhdG9yLCBzbyB0aGUgaXRlbSBnZW51aW5lbHkgaGFzIG5vIHZhbHVlXG4gKiB0b2tlbiBcdTIwMTQgYW5kIHVuZGVyIGBleGFjdE9wdGlvbmFsUHJvcGVydHlUeXBlc2AgdGhhdCBpcyBhIHByb3BlcnR5IHRvIGRlbGV0ZSwgbm90IG9uZSB0byBzZXQgdG8gYHVuZGVmaW5lZGAuXG4gKlxuICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBhc3NpZ24gdGhlIHZhbHVlIHRva2VuIG9mLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRva2VuLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSBlbWl0dGVkIHZhbHVlIGhhcyBub25lLlxuICovXG5mdW5jdGlvbiBzZXRJdGVtVmFsdWUoaXRlbTogQ1NULkNvbGxlY3Rpb25JdGVtLCB2YWx1ZTogQ1NULlRva2VuIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIGl0ZW0udmFsdWU7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaXRlbS52YWx1ZSA9IHZhbHVlO1xufVxuXG4vKipcbiAqIFNwbGljZXMgdGhlIHRleHQgSU5TSURFIGEgZnJvbnQgbWF0dGVyIGJsb2NrJ3MgZGVsaW1pdGVycywgbGVhdmluZyBib3RoIGAtLS1gIGxpbmVzIHVudG91Y2hlZC5cbiAqXG4gKiBAcGFyYW0gc291cmNlIC0gVGhlIGZyb250IG1hdHRlciBibG9jaydzIHRleHQuXG4gKiBAcGFyYW0gbmV3RnJvbnRtYXR0ZXIgLSBUaGUgZnJvbnQgbWF0dGVyIHRvIHdyaXRlLlxuICogQHJldHVybnMgVGhlIG5ldyBibG9jayB0ZXh0LCBvciBgbnVsbGAgd2hlbiB0aGUgc3BsaWNlIGNvdWxkIG5vdCBiZSBwcm92ZWQgZmFpdGhmdWwuXG4gKi9cbmZ1bmN0aW9uIHNwbGljZUZyb250bWF0dGVyQm9keShzb3VyY2U6IHN0cmluZywgbmV3RnJvbnRtYXR0ZXI6IG9iamVjdCk6IG51bGwgfCBzdHJpbmcge1xuICBjb25zdCB0b2tlbnMgPSBbLi4ubmV3IFBhcnNlcigpLnBhcnNlKHNvdXJjZSldO1xuICBjb25zdCBkb2N1bWVudHMgPSBbLi4ubmV3IENvbXBvc2VyKHsga2VlcFNvdXJjZVRva2VuczogdHJ1ZSB9KS5jb21wb3NlKHRva2VucywgdHJ1ZSldO1xuICAvLyBBIHNlY29uZCBkb2N1bWVudCBpcyByZWFjaGFibGUgXHUyMDE0IGEgYC4uLmAgZW5kIG1hcmtlciBzdGFydHMgb25lIFx1MjAxNCBhbmQgc3BsaWNpbmcgdGhlIGZpcnN0IHdvdWxkIGVtaXQgYm90aC5cbiAgY29uc3QgZG9jdW1lbnQgPSBkb2N1bWVudHMubGVuZ3RoID09PSAxID8gZG9jdW1lbnRzWzBdIDogdW5kZWZpbmVkO1xuXG4gIGlmICghZG9jdW1lbnQgfHwgZG9jdW1lbnQuZXJyb3JzLmxlbmd0aCA+IDAgfHwgZG9jdW1lbnQud2FybmluZ3Muc29tZSgod2FybmluZykgPT4gd2FybmluZy5jb2RlID09PSBVTlJFU09MVkVEX1RBR19XQVJOSU5HX0NPREUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjb250ZW50cyA9IGRvY3VtZW50LmNvbnRlbnRzO1xuICBjb25zdCByb290VG9rZW4gPSBjb250ZW50cz8uc3JjVG9rZW47XG4gIC8vIEFuIGFuY2hvciBpcyBhIHNlY29uZCBuYW1lIGZvciBhIG5vZGUsIHNvIGEgc3BsaWNlIHRoYXQgbW92ZXMgb3IgZHJvcHMgb25lIG9mIHRoZSB0d28gc2lsZW50bHkgcmV3cml0ZXMgdGhlIG90aGVyLlxuICAvLyBOb3RoaW5nIGhlcmUgaXMgd29ydGggdGhhdCByaXNrIGZvciBhIGNvbnN0cnVjdCBPYnNpZGlhbidzIG93biBwcm9wZXJ0eSBlZGl0b3IgY2Fubm90IHByb2R1Y2UuXG4gIGlmICghY29udGVudHMgfHwgcm9vdFRva2VuPy50eXBlICE9PSAnYmxvY2stbWFwJyB8fCBjaGVja0hhc0FuY2hvck9yQWxpYXMoY29udGVudHMpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBBIGJsb2NrLW1hcCByb290IGFsd2F5cyBwcm9qZWN0cyB0byBhIHBsYWluIG9iamVjdCwgc28gdGhpcyBpcyBhIGNhc3QgcmF0aGVyIHRoYW4gYSBjaGVjay4gQW55dGhpbmcgdGhhdCBtYWRlIGl0XG4gIC8vIHVudHJ1ZSB3b3VsZCBzdGlsbCBiZSBjYXVnaHQgZG93bnN0cmVhbTogdGhlIG1lcmdlIHdvdWxkIHdyaXRlIGEgbWFwcGluZyB0aGUgc2FmZXR5IG5ldCB0aGVuIHJlZnVzZXMuXG4gIGNvbnN0IG9sZEZyb250bWF0dGVyID0gY2FzdFRvPEdlbmVyaWNPYmplY3Q+KGRvY3VtZW50LnRvSlMoKSk7XG5cbiAgaWYgKCFkaWRNZXJnZU1hcChyb290VG9rZW4sIG9sZEZyb250bWF0dGVyLCBjYXN0VG88R2VuZXJpY09iamVjdD4obmV3RnJvbnRtYXR0ZXIpKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRXZlcnkgdG9rZW4sIG5vdCBqdXN0IHRoZSByb290IGNvbGxlY3Rpb24nczogYSBjb21tZW50IGJlZm9yZSBvciBhZnRlciB0aGUgbWFwcGluZyBiZWxvbmdzIHRvIHRoZSBET0NVTUVOVCwgc29cbiAgLy8gYENTVC5zdHJpbmdpZnkoY29udGVudHMuc3JjVG9rZW4pYCBhbG9uZSBzaWxlbnRseSBkcm9wcyBib3RoLlxuICBjb25zdCBlbWl0dGVkQm9keSA9IHRva2Vucy5tYXAoKHRva2VuKSA9PiBDU1Quc3RyaW5naWZ5KHRva2VuKSkuam9pbignJyk7XG5cbiAgLy8gVGhlIHJlcGxhY2VkIHJlZ2lvbiBoYXMgdG8gZW5kIGluIGV4YWN0bHkgb25lIG5ld2xpbmUsIGFzIE9ic2lkaWFuJ3MgZnJvbnQgbWF0dGVyIGJsb2NrIGFsd2F5cyBkb2VzLCBvciB0aGUgY2xvc2luZ1xuICAvLyBgLS0tYCBtb3ZlcyBvZmYgaXRzIG93biBsaW5lLiBBIGJsb2NrIHdob3NlIGxhc3Qga2V5IHdhcyBkcm9wcGVkIGNhbiBlbWl0IG5vbmUsIHNvIGl0IGlzIG5vcm1hbGl6ZWQsIG5vdCB0cnVzdGVkLlxuICBjb25zdCBzcGxpY2VkQm9keSA9IGAke2VtaXR0ZWRCb2R5LnJlcGxhY2UoVFJBSUxJTkdfTkVXTElORV9SRUdfRVhQLCAnJyl9XFxuYDtcblxuICByZXR1cm4gY2hlY2tJc1NlbWFudGljTWF0Y2goc3BsaWNlZEJvZHksIG5ld0Zyb250bWF0dGVyKSA/IHNwbGljZWRCb2R5IDogbnVsbDtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5Rmxvdyh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XG4gIHJldHVybiBzdHJpbmdpZnkodmFsdWUsIHtcbiAgICAuLi5PQlNJRElBTl9TVFJJTkdJRllfT1BUSU9OUyxcbiAgICBjb2xsZWN0aW9uU3R5bGU6ICdmbG93JyxcbiAgICBmbG93Q29sbGVjdGlvblBhZGRpbmc6IGZhbHNlXG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlCQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZ0JBQWdCO0FBQ3pCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7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
@@ -0,0 +1,34 @@
1
+ /// <reference path="./library.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * This module provides a type for frontmatter link cache with offsets.
6
+ */
7
+ import type { FrontmatterLinkCache, Reference } from 'obsidian';
8
+ /**
9
+ * Type for frontmatter link cache with offsets.
10
+ */
11
+ export interface FrontmatterLinkCacheWithOffsets extends FrontmatterLinkCache {
12
+ /**
13
+ * An end offset of the link in the property value.
14
+ */
15
+ endOffset: number;
16
+ /**
17
+ * A start offset of the link in the property value.
18
+ */
19
+ startOffset: number;
20
+ }
21
+ /**
22
+ * Checks if the reference is a frontmatter link cache with offsets.
23
+ *
24
+ * @param reference - The reference to check.
25
+ * @returns Whether the reference is a frontmatter link cache with offsets.
26
+ */
27
+ export declare function isFrontmatterLinkCacheWithOffsets(reference: Reference): reference is FrontmatterLinkCacheWithOffsets;
28
+ /**
29
+ * Converts a frontmatter link cache to a frontmatter link cache with offsets.
30
+ *
31
+ * @param reference - The reference to convert.
32
+ * @returns The converted reference.
33
+ */
34
+ export declare function toFrontmatterLinkCacheWithOffsets(reference: FrontmatterLinkCache): FrontmatterLinkCacheWithOffsets;
@@ -0,0 +1,69 @@
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 { isFrontmatterLinkCache } from "@obsidian-typings/obsidian-public-latest/implementations";
51
+ function isFrontmatterLinkCacheWithOffsets(reference) {
52
+ if (!isFrontmatterLinkCache(reference)) {
53
+ return false;
54
+ }
55
+ const frontmatterLinkCacheWithOffsets = reference;
56
+ return frontmatterLinkCacheWithOffsets.startOffset !== void 0 && frontmatterLinkCacheWithOffsets.endOffset !== void 0;
57
+ }
58
+ function toFrontmatterLinkCacheWithOffsets(reference) {
59
+ return isFrontmatterLinkCacheWithOffsets(reference) ? reference : {
60
+ ...reference,
61
+ endOffset: reference.original.length,
62
+ startOffset: 0
63
+ };
64
+ }
65
+ export {
66
+ isFrontmatterLinkCacheWithOffsets,
67
+ toFrontmatterLinkCacheWithOffsets
68
+ };
69
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Zyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSB0eXBlIGZvciBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBpc0Zyb250bWF0dGVyTGlua0NhY2hlIH0gZnJvbSAnQG9ic2lkaWFuLXR5cGluZ3Mvb2JzaWRpYW4tcHVibGljLWxhdGVzdC9pbXBsZW1lbnRhdGlvbnMnO1xuXG4vKipcbiAqIFR5cGUgZm9yIGZyb250bWF0dGVyIGxpbmsgY2FjaGUgd2l0aCBvZmZzZXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMgZXh0ZW5kcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gIC8qKlxuICAgKiBBbiBlbmQgb2Zmc2V0IG9mIHRoZSBsaW5rIGluIHRoZSBwcm9wZXJ0eSB2YWx1ZS5cbiAgICovXG4gIGVuZE9mZnNldDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBIHN0YXJ0IG9mZnNldCBvZiB0aGUgbGluayBpbiB0aGUgcHJvcGVydHkgdmFsdWUuXG4gICAqL1xuICBzdGFydE9mZnNldDogbnVtYmVyO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgcmVmZXJlbmNlIGlzIGEgZnJvbnRtYXR0ZXIgbGluayBjYWNoZSB3aXRoIG9mZnNldHMuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyhyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzIHtcbiAgaWYgKCFpc0Zyb250bWF0dGVyTGlua0NhY2hlKHJlZmVyZW5jZSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBmcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzID0gcmVmZXJlbmNlIGFzIFBhcnRpYWw8RnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cz47XG4gIHJldHVybiBmcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzLnN0YXJ0T2Zmc2V0ICE9PSB1bmRlZmluZWQgJiYgZnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cy5lbmRPZmZzZXQgIT09IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGZyb250bWF0dGVyIGxpbmsgY2FjaGUgdG8gYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlIHdpdGggb2Zmc2V0cy5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Zyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMocmVmZXJlbmNlOiBGcm9udG1hdHRlckxpbmtDYWNoZSk6IEZyb250bWF0dGVyTGlua0NhY2hlV2l0aE9mZnNldHMge1xuICByZXR1cm4gaXNGcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzKHJlZmVyZW5jZSlcbiAgICA/IHJlZmVyZW5jZVxuICAgIDoge1xuICAgICAgLi4ucmVmZXJlbmNlLFxuICAgICAgZW5kT2Zmc2V0OiByZWZlcmVuY2Uub3JpZ2luYWwubGVuZ3RoLFxuICAgICAgc3RhcnRPZmZzZXQ6IDBcbiAgICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVdBLFNBQVMsOEJBQThCO0FBdUJoQyxTQUFTLGtDQUFrQyxXQUFvRTtBQUNwSCxNQUFJLENBQUMsdUJBQXVCLFNBQVMsR0FBRztBQUN0QyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sa0NBQWtDO0FBQ3hDLFNBQU8sZ0NBQWdDLGdCQUFnQixVQUFhLGdDQUFnQyxjQUFjO0FBQ3BIO0FBUU8sU0FBUyxrQ0FBa0MsV0FBa0U7QUFDbEgsU0FBTyxrQ0FBa0MsU0FBUyxJQUM5QyxZQUNBO0FBQUEsSUFDQSxHQUFHO0FBQUEsSUFDSCxXQUFXLFVBQVUsU0FBUztBQUFBLElBQzlCLGFBQWE7QUFBQSxFQUNmO0FBQ0o7IiwKICAibmFtZXMiOiBbXQp9Cg==