@mnaoumov/obsidian-lib 10.6.0 → 10.8.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 (90) hide show
  1. package/command-handlers/open-discussion-command-handler/package.json +6 -0
  2. package/command-handlers/open-feature-request-command-handler/package.json +6 -0
  3. package/command-handlers/open-git-hub-command-handler/package.json +6 -0
  4. package/components/style-sheet-component/package.json +6 -0
  5. package/data-stores/data-store-locations/package.json +6 -0
  6. package/dist/lib/cjs/__merged.cjs +45 -1
  7. package/dist/lib/cjs/__merged.d.cts +10 -0
  8. package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
  9. package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
  10. package/dist/lib/cjs/command-handlers/index.cjs +10 -1
  11. package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
  12. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
  13. package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
  14. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
  15. package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
  16. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
  17. package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
  18. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
  19. package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -0
  20. package/dist/lib/cjs/components/index.cjs +4 -1
  21. package/dist/lib/cjs/components/index.d.cts +1 -0
  22. package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
  23. package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
  24. package/dist/lib/cjs/data-stores/data-store-locations.cjs +248 -0
  25. package/dist/lib/cjs/data-stores/data-store-locations.d.cts +60 -0
  26. package/dist/lib/cjs/data-stores/data-store-seeds.cjs +2 -2
  27. package/dist/lib/cjs/data-stores/data-store-seeds.d.cts +1 -1
  28. package/dist/lib/cjs/data-stores/data-store-transport.cjs +132 -24
  29. package/dist/lib/cjs/data-stores/data-store-transport.d.cts +39 -5
  30. package/dist/lib/cjs/data-stores/index.cjs +4 -1
  31. package/dist/lib/cjs/data-stores/index.d.cts +1 -0
  32. package/dist/lib/cjs/data-stores/shared-data-store.cjs +131 -19
  33. package/dist/lib/cjs/data-stores/shared-data-store.d.cts +54 -2
  34. package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
  35. package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
  36. package/dist/lib/cjs/editor-suggest.cjs +2 -3
  37. package/dist/lib/cjs/feature-request.cjs +115 -0
  38. package/dist/lib/cjs/feature-request.d.cts +54 -0
  39. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  40. package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
  41. package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
  42. package/dist/lib/cjs/git-rename-history.cjs +148 -0
  43. package/dist/lib/cjs/git-rename-history.d.cts +43 -0
  44. package/dist/lib/cjs/index.cjs +16 -1
  45. package/dist/lib/cjs/index.d.cts +5 -0
  46. package/dist/lib/cjs/vault.cjs +2 -2
  47. package/dist/lib/cjs/vault.d.cts +3 -1
  48. package/dist/lib/esm/__merged.d.mts +10 -0
  49. package/dist/lib/esm/__merged.mjs +43 -1
  50. package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
  51. package/dist/lib/esm/broken-link-candidates.mjs +275 -0
  52. package/dist/lib/esm/command-handlers/index.d.mts +3 -0
  53. package/dist/lib/esm/command-handlers/index.mjs +7 -1
  54. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
  55. package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
  56. package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
  57. package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
  58. package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
  59. package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
  60. package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
  61. package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -0
  62. package/dist/lib/esm/components/index.d.mts +1 -0
  63. package/dist/lib/esm/components/index.mjs +3 -1
  64. package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
  65. package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
  66. package/dist/lib/esm/data-stores/data-store-locations.d.mts +60 -0
  67. package/dist/lib/esm/data-stores/data-store-locations.mjs +160 -0
  68. package/dist/lib/esm/data-stores/data-store-seeds.d.mts +1 -1
  69. package/dist/lib/esm/data-stores/data-store-seeds.mjs +2 -2
  70. package/dist/lib/esm/data-stores/data-store-transport.d.mts +39 -5
  71. package/dist/lib/esm/data-stores/data-store-transport.mjs +132 -24
  72. package/dist/lib/esm/data-stores/index.d.mts +1 -0
  73. package/dist/lib/esm/data-stores/index.mjs +3 -1
  74. package/dist/lib/esm/data-stores/shared-data-store.d.mts +54 -2
  75. package/dist/lib/esm/data-stores/shared-data-store.mjs +131 -19
  76. package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
  77. package/dist/lib/esm/desktop-git-runner.mjs +19 -0
  78. package/dist/lib/esm/editor-suggest.mjs +2 -3
  79. package/dist/lib/esm/feature-request.d.mts +54 -0
  80. package/dist/lib/esm/feature-request.mjs +25 -0
  81. package/dist/lib/esm/generated-during-build.mjs +1 -1
  82. package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
  83. package/dist/lib/esm/git-hub-discussion.mjs +13 -0
  84. package/dist/lib/esm/git-rename-history.d.mts +43 -0
  85. package/dist/lib/esm/git-rename-history.mjs +59 -0
  86. package/dist/lib/esm/index.d.mts +5 -0
  87. package/dist/lib/esm/index.mjs +11 -1
  88. package/dist/lib/esm/vault.d.mts +3 -1
  89. package/dist/lib/esm/vault.mjs +2 -2
  90. package/package.json +2 -2
@@ -130,6 +130,7 @@ __export(components_exports, {
130
130
  "rmdir-guard-component": () => rmdir_guard_component,
131
131
  "settings-facet-component": () => settings_facet_component,
132
132
  "settings-migration-component": () => settings_migration_component,
133
+ "style-sheet-component": () => style_sheet_component,
133
134
  "syntax-highlighting-component": () => syntax_highlighting_component,
134
135
  "templates-language-component": () => templates_language_component
135
136
  });
@@ -167,6 +168,7 @@ var rename_delete_handler_component = __toESM(((module) => module && module.__es
167
168
  var rmdir_guard_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./rmdir-guard-component.cjs')), 1);
168
169
  var settings_facet_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./settings-facet-component.cjs')), 1);
169
170
  var settings_migration_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./settings-migration-component.cjs')), 1);
171
+ var style_sheet_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./style-sheet-component.cjs')), 1);
170
172
  var syntax_highlighting_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./syntax-highlighting-component.cjs')), 1);
171
173
  var templates_language_component = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('./templates-language-component.cjs')), 1);
172
174
  // Annotate the CommonJS export names for ESM import in node:
@@ -204,7 +206,8 @@ var templates_language_component = __toESM(((module) => module && module.__esMod
204
206
  "rmdir-guard-component": null,
205
207
  "settings-facet-component": null,
206
208
  "settings-migration-component": null,
209
+ "style-sheet-component": null,
207
210
  "syntax-highlighting-component": null,
208
211
  "templates-language-component": null
209
212
  });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50JyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50LWV4JyBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5leHBvcnQgKiBhcyAnY29uc29sZS1kZWJ1Zy1jb21wb25lbnQnIGZyb20gJy4vY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQnIGZyb20gJy4vY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50JyBmcm9tICcuL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQnIGZyb20gJy4vZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQnIGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb290LW1lbnUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCcgZnJvbSAnLi9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xheW91dC1yZWFkeS1jb21wb25lbnQnIGZyb20gJy4vbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50JyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbW9ua2V5LWFyb3VuZC1jb21wb25lbnQnIGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNvbnRleHQtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWdhdGUtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5vdGljZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50JyBmcm9tICcuL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCcgZnJvbSAnLi9yZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZS1ub3Rlcy1jb21wb25lbnQnIGZyb20gJy4vcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQnIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncm1kaXItZ3VhcmQtY29tcG9uZW50JyBmcm9tICcuL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLWZhY2V0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCcgZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCcgZnJvbSAnLi90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxrQ0FBQUE7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHlDQUFBQztBQUFBLEVBQUEsK0NBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSw4QkFBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsOENBQUFDO0FBQUEsRUFBQSwyQ0FBQUM7QUFBQSxFQUFBLHlEQUFBQztBQUFBLEVBQUEsMENBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHdDQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSwyREFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsbURBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSx1Q0FBQUM7QUFBQSxFQUFBLHNDQUFBQztBQUFBO0FBQUE7QUFFQSxJQUFBbEMseUJBQTBDO0FBQzFDLElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMseUJBQTBDO0FBQzFDLElBQUFDLGtDQUFtRDtBQUNuRCxJQUFBQyx3Q0FBeUQ7QUFDekQsSUFBQUMsZUFBZ0M7QUFDaEMsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLCtCQUFnRDtBQUNoRCxJQUFBQyx1QkFBd0M7QUFDeEMsSUFBQUMsNkJBQThDO0FBQzlDLElBQUFDLHVDQUF3RDtBQUN4RCxJQUFBQyxvQ0FBcUQ7QUFDckQsSUFBQUMsa0RBQW1FO0FBQ25FLElBQUFDLG1DQUFvRDtBQUNwRCxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsaUNBQWtEO0FBQ2xELElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyxvREFBcUU7QUFDckUsSUFBQUMsMkJBQTRDO0FBQzVDLElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsNEJBQTZDO0FBQzdDLElBQUFDLGdDQUFpRDtBQUNqRCxJQUFBQyw4QkFBK0M7QUFDL0MsSUFBQUMsNkJBQThDO0FBQzlDLElBQUFDLDRDQUE2RDtBQUM3RCxJQUFBQyxxQkFBc0M7QUFDdEMsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLGtDQUFtRDtBQUNuRCxJQUFBQyx3QkFBeUM7QUFDekMsSUFBQUMsMkJBQTRDO0FBQzVDLElBQUFDLCtCQUFnRDtBQUNoRCxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsK0JBQWdEOyIsIm5hbWVzIjpbImFib3J0LXNpZ25hbC1jb21wb25lbnQiLCJhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQiLCJhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCIsImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCJidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50IiwiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudCIsImNvbXBvbmVudC1leCIsImNvbnNvbGUtZGVidWctY29tcG9uZW50IiwiY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudCIsImRpc3Bvc2FibGUtY29tcG9uZW50IiwiZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQiLCJlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQiLCJmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQiLCJnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCIsImluY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50IiwibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsIm1vbmtleS1hcm91bmQtY29tcG9uZW50Iiwibm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsInBsdWdpbi1jb250ZXh0LWNvbXBvbmVudCIsInBsdWdpbi1nYXRlLWNvbXBvbmVudCIsInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsInBsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50IiwicGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IiwicG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQiLCJyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCIsInJlZ2lzdHJ5LWNvbXBvbmVudCIsInJlbGVhc2Utbm90ZXMtY29tcG9uZW50IiwicmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudCIsInJtZGlyLWd1YXJkLWNvbXBvbmVudCIsInNldHRpbmdzLWZhY2V0LWNvbXBvbmVudCIsInNldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQiLCJzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCIsInRlbXBsYXRlcy1sYW5ndWFnZS1jb21wb25lbnQiXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50JyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50LWV4JyBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5leHBvcnQgKiBhcyAnY29uc29sZS1kZWJ1Zy1jb21wb25lbnQnIGZyb20gJy4vY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQnIGZyb20gJy4vY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50JyBmcm9tICcuL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQnIGZyb20gJy4vZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQnIGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb290LW1lbnUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCcgZnJvbSAnLi9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xheW91dC1yZWFkeS1jb21wb25lbnQnIGZyb20gJy4vbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50JyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbW9ua2V5LWFyb3VuZC1jb21wb25lbnQnIGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNvbnRleHQtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWdhdGUtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5vdGljZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50JyBmcm9tICcuL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCcgZnJvbSAnLi9yZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZS1ub3Rlcy1jb21wb25lbnQnIGZyb20gJy4vcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQnIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncm1kaXItZ3VhcmQtY29tcG9uZW50JyBmcm9tICcuL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLWZhY2V0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzdHlsZS1zaGVldC1jb21wb25lbnQnIGZyb20gJy4vc3R5bGUtc2hlZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCcgZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCcgZnJvbSAnLi90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxrQ0FBQUE7QUFBQSxFQUFBLHFDQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHlDQUFBQztBQUFBLEVBQUEsK0NBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSw4QkFBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsOENBQUFDO0FBQUEsRUFBQSwyQ0FBQUM7QUFBQSxFQUFBLHlEQUFBQztBQUFBLEVBQUEsMENBQUFDO0FBQUEsRUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHdDQUFBQztBQUFBLEVBQUEsaUNBQUFDO0FBQUEsRUFBQSwyREFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsK0JBQUFDO0FBQUEsRUFBQSxpQ0FBQUM7QUFBQSxFQUFBLG1DQUFBQztBQUFBLEVBQUEsdUNBQUFDO0FBQUEsRUFBQSxxQ0FBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsbURBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLGlDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBLHVDQUFBQztBQUFBLEVBQUEsc0NBQUFDO0FBQUE7QUFBQTtBQUVBLElBQUFuQyx5QkFBMEM7QUFDMUMsSUFBQUMsOEJBQStDO0FBQy9DLElBQUFDLGdDQUFpRDtBQUNqRCxJQUFBQyx5QkFBMEM7QUFDMUMsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdDQUF5RDtBQUN6RCxJQUFBQyxlQUFnQztBQUNoQyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLHVCQUF3QztBQUN4QyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsdUNBQXdEO0FBQ3hELElBQUFDLG9DQUFxRDtBQUNyRCxJQUFBQyxrREFBbUU7QUFDbkUsSUFBQUMsbUNBQW9EO0FBQ3BELElBQUFDLHlCQUEwQztBQUMxQyxJQUFBQyxpQ0FBa0Q7QUFDbEQsSUFBQUMsMEJBQTJDO0FBQzNDLElBQUFDLG9EQUFxRTtBQUNyRSxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsd0JBQXlDO0FBQ3pDLElBQUFDLDBCQUEyQztBQUMzQyxJQUFBQyw0QkFBNkM7QUFDN0MsSUFBQUMsZ0NBQWlEO0FBQ2pELElBQUFDLDhCQUErQztBQUMvQyxJQUFBQyw2QkFBOEM7QUFDOUMsSUFBQUMsNENBQTZEO0FBQzdELElBQUFDLHFCQUFzQztBQUN0QyxJQUFBQywwQkFBMkM7QUFDM0MsSUFBQUMsa0NBQW1EO0FBQ25ELElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQywyQkFBNEM7QUFDNUMsSUFBQUMsK0JBQWdEO0FBQ2hELElBQUFDLHdCQUF5QztBQUN6QyxJQUFBQyxnQ0FBaUQ7QUFDakQsSUFBQUMsK0JBQWdEOyIsIm5hbWVzIjpbImFib3J0LXNpZ25hbC1jb21wb25lbnQiLCJhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQiLCJhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCIsImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCJidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50IiwiY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudCIsImNvbXBvbmVudC1leCIsImNvbnNvbGUtZGVidWctY29tcG9uZW50IiwiY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudCIsImRpc3Bvc2FibGUtY29tcG9uZW50IiwiZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQiLCJlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQiLCJmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQiLCJnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCIsImluY3JlbWVudGFsLWZpbGUtaW5kZXgtY29tcG9uZW50IiwibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsIm1vbmtleS1hcm91bmQtY29tcG9uZW50Iiwibm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsInBsdWdpbi1jb250ZXh0LWNvbXBvbmVudCIsInBsdWdpbi1nYXRlLWNvbXBvbmVudCIsInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsInBsdWdpbi1zZXR0aW5ncy10YWItY29tcG9uZW50IiwicGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IiwicG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQiLCJyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCIsInJlZ2lzdHJ5LWNvbXBvbmVudCIsInJlbGVhc2Utbm90ZXMtY29tcG9uZW50IiwicmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudCIsInJtZGlyLWd1YXJkLWNvbXBvbmVudCIsInNldHRpbmdzLWZhY2V0LWNvbXBvbmVudCIsInNldHRpbmdzLW1pZ3JhdGlvbi1jb21wb25lbnQiLCJzdHlsZS1zaGVldC1jb21wb25lbnQiLCJzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCIsInRlbXBsYXRlcy1sYW5ndWFnZS1jb21wb25lbnQiXX0=
@@ -32,5 +32,6 @@ export * as 'rename-delete-handler-component' from './rename-delete-handler-comp
32
32
  export * as 'rmdir-guard-component' from './rmdir-guard-component.cjs';
33
33
  export * as 'settings-facet-component' from './settings-facet-component.cjs';
34
34
  export * as 'settings-migration-component' from './settings-migration-component.cjs';
35
+ export * as 'style-sheet-component' from './style-sheet-component.cjs';
35
36
  export * as 'syntax-highlighting-component' from './syntax-highlighting-component.cjs';
36
37
  export * as 'templates-language-component' from './templates-language-component.cjs';
@@ -0,0 +1,198 @@
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
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
32
+ (function patchObsidianRequire() {
33
+ const originalRequire = require;
34
+ if (!originalRequire || originalRequire.__isPatched) {
35
+ return;
36
+ }
37
+ require = Object.assign(
38
+ (id) => requirePatched(id),
39
+ originalRequire,
40
+ {
41
+ __isPatched: true
42
+ }
43
+ );
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
+ }
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
+ "@codemirror/autocomplete",
49
+ "@codemirror/collab",
50
+ "@codemirror/commands",
51
+ "@codemirror/language",
52
+ "@codemirror/lint",
53
+ "@codemirror/search",
54
+ "@codemirror/state",
55
+ "@codemirror/text",
56
+ "@codemirror/view",
57
+ "@lezer/common",
58
+ "@lezer/highlight",
59
+ "@lezer/lr",
60
+ "obsidian"
61
+ ]);
62
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
63
+ "@codemirror/closebrackets",
64
+ "@codemirror/comment",
65
+ "@codemirror/fold",
66
+ "@codemirror/gutter",
67
+ "@codemirror/highlight",
68
+ "@codemirror/history",
69
+ "@codemirror/matchbrackets",
70
+ "@codemirror/panel",
71
+ "@codemirror/rangeset",
72
+ "@codemirror/rectangular-selection",
73
+ "@codemirror/stream-parser",
74
+ "@codemirror/tooltip"
75
+ ]);
76
+ function requirePatched(id) {
77
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
78
+ return originalRequire?.(id);
79
+ }
80
+ const app = globalThis.app;
81
+ if (app?.isMobile) {
82
+ if (id === "process" || id === "node:process") {
83
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
84
+ return process;
85
+ }
86
+ } else {
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
+ }
91
+ }
92
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
93
+ return {};
94
+ }
95
+ })();
96
+
97
+ "use strict";
98
+ var __defProp = Object.defineProperty;
99
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
100
+ var __getOwnPropNames = Object.getOwnPropertyNames;
101
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
102
+ var __export = (target, all) => {
103
+ for (var name in all)
104
+ __defProp(target, name, { get: all[name], enumerable: true });
105
+ };
106
+ var __copyProps = (to, from, except, desc) => {
107
+ if (from && typeof from === "object" || typeof from === "function") {
108
+ for (let key of __getOwnPropNames(from))
109
+ if (!__hasOwnProp.call(to, key) && key !== except)
110
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
111
+ }
112
+ return to;
113
+ };
114
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
115
+ var style_sheet_component_exports = {};
116
+ __export(style_sheet_component_exports, {
117
+ StyleSheetComponent: () => StyleSheetComponent,
118
+ registerStyle: () => registerStyle
119
+ });
120
+ module.exports = __toCommonJS(style_sheet_component_exports);
121
+ var import_object_utils = require('@mnaoumov/typescript-lib/object-utils');
122
+ var import_all_windows_event_component = require('./all-windows-event-component.cjs');
123
+ var import_component_ex = require('./component-ex.cjs');
124
+ class StyleSheetComponent extends import_component_ex.ComponentEx {
125
+ /**
126
+ * The CSS currently attached.
127
+ *
128
+ * @returns The CSS.
129
+ */
130
+ get css() {
131
+ return this._css;
132
+ }
133
+ /**
134
+ * The Obsidian app instance.
135
+ */
136
+ app;
137
+ _css;
138
+ styleSheetsByWindow = /* @__PURE__ */ new Map();
139
+ /**
140
+ * Creates a new instance of the `StyleSheetComponent` class.
141
+ *
142
+ * @param params - The {@link StyleSheetComponentConstructorParams}.
143
+ */
144
+ constructor(params) {
145
+ super();
146
+ this.app = params.app;
147
+ this._css = params.css;
148
+ }
149
+ /**
150
+ * Attaches the stylesheet to every window, now and as popouts open.
151
+ */
152
+ onload() {
153
+ super.onload();
154
+ this.register(() => {
155
+ for (const [win, styleSheet] of this.styleSheetsByWindow) {
156
+ win.document.adoptedStyleSheets = win.document.adoptedStyleSheets.filter((sheet) => sheet !== styleSheet);
157
+ }
158
+ this.styleSheetsByWindow.clear();
159
+ });
160
+ this.registerEvent(this.app.workspace.on("window-close", (_workspaceWindow, win) => {
161
+ this.styleSheetsByWindow.delete(win);
162
+ }));
163
+ const allWindowsEventComponent = this.addChild(new import_all_windows_event_component.AllWindowsEventComponent(this.app));
164
+ allWindowsEventComponent.registerAllWindowsHandler((win) => {
165
+ this.attach(win);
166
+ });
167
+ }
168
+ /**
169
+ * Replaces the attached CSS in every window.
170
+ *
171
+ * @param css - The new CSS.
172
+ */
173
+ setCss(css) {
174
+ this._css = css;
175
+ for (const styleSheet of this.styleSheetsByWindow.values()) {
176
+ styleSheet.replaceSync(css);
177
+ }
178
+ }
179
+ attach(win) {
180
+ if (this.styleSheetsByWindow.has(win)) {
181
+ return;
182
+ }
183
+ const styleSheet = new ((0, import_object_utils.castTo)(win)).CSSStyleSheet();
184
+ styleSheet.replaceSync(this._css);
185
+ win.document.adoptedStyleSheets = [...win.document.adoptedStyleSheets, styleSheet];
186
+ this.styleSheetsByWindow.set(win, styleSheet);
187
+ }
188
+ }
189
+ function registerStyle(params) {
190
+ const { app, component, css } = params;
191
+ return component.addChild(new StyleSheetComponent({ app, css }));
192
+ }
193
+ // Annotate the CommonJS export names for ESM import in node:
194
+ 0 && (module.exports = {
195
+ StyleSheetComponent,
196
+ registerStyle
197
+ });
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3N0eWxlLXNoZWV0LWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXR0YWNoZXMgYSBwbHVnaW4gc3R5bGVzaGVldCB0byB0aGUgbWFpbiB3aW5kb3cgYW5kIGV2ZXJ5IHBvcG91dCB3aW5kb3csIGluY2x1ZGluZyBwb3BvdXRzIG9wZW5lZCBsYXRlciwgYW5kXG4gKiByZW1vdmVzIGl0IG9uIHVubG9hZC5cbiAqXG4gKiBUaGUgc3R5bGVzaGVldCBpcyBhIGNvbnN0cnVjdGVkIGBDU1NTdHlsZVNoZWV0YCBhZG9wdGVkIHRocm91Z2ggYGRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0c2AsIHNvIHRoZSBwbHVnaW5cbiAqIGNyZWF0ZXMgbm8gYDxzdHlsZT5gIGVsZW1lbnQgKHdoaWNoIHRoZSBjb21tdW5pdHkgcmV2aWV3IGZsYWdzKSBhbmQgYWRkcyBubyBDU1Mgc25pcHBldCB0byB0aGUgdXNlcidzIGxpc3QuXG4gKiBBIGNvbnN0cnVjdGVkIHNoZWV0IGNhbiBiZSBhZG9wdGVkIG9ubHkgYnkgYSBkb2N1bWVudCBvZiB0aGUgcmVhbG0gdGhhdCBjb25zdHJ1Y3RlZCBpdCwgc28gZWFjaCB3aW5kb3cgZ2V0cyBpdHNcbiAqIG93biBzaGVldCwgYnVpbHQgd2l0aCB0aGF0IHdpbmRvdydzIGBDU1NTdHlsZVNoZWV0YCBjb25zdHJ1Y3Rvci4gQ29uc3RydWN0YWJsZSBzdHlsZXNoZWV0cyBuZWVkIEVsZWN0cm9uIDI4IG9yXG4gKiBpT1MgMTYuNCwgYm90aCBiZWxvdyB0aGUgb2xkZXN0IHJ1bnRpbWUgT2JzaWRpYW4gc3VwcG9ydHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGNhc3RUbyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVnaXN0ZXJTdHlsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJTdHlsZVBhcmFtcyBleHRlbmRzIFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRoYXQgb3ducyB0aGUgc3R5bGVzaGVldDogdGhlIHN0eWxlc2hlZXQgaXMgcmVtb3ZlZCB3aGVuIGl0IHVubG9hZHMuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnQ6IENvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIFN0eWxlU2hlZXRDb21wb25lbnR9IGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgdG8gYXR0YWNoLlxuICAgKi9cbiAgcmVhZG9ubHkgY3NzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXR0YWNoZXMgYSBzdHlsZXNoZWV0IHRvIHRoZSBtYWluIHdpbmRvdyBhbmQgZXZlcnkgcG9wb3V0IHdpbmRvdyB3aGlsZSBsb2FkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHlsZVNoZWV0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50RXgge1xuICAvKipcbiAgICogVGhlIENTUyBjdXJyZW50bHkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBDU1MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jc3M7XG4gIH1cblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcDtcblxuICBwcml2YXRlIF9jc3M6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdHlsZVNoZWV0c0J5V2luZG93ID0gbmV3IE1hcDxXaW5kb3csIENTU1N0eWxlU2hlZXQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGBTdHlsZVNoZWV0Q29tcG9uZW50YCBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgU3R5bGVTaGVldENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zfS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcHAgPSBwYXJhbXMuYXBwO1xuICAgIHRoaXMuX2NzcyA9IHBhcmFtcy5jc3M7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHN0eWxlc2hlZXQgdG8gZXZlcnkgd2luZG93LCBub3cgYW5kIGFzIHBvcG91dHMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbmxvYWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25sb2FkKCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW3dpbiwgc3R5bGVTaGVldF0gb2YgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93KSB7XG4gICAgICAgIHdpbi5kb2N1bWVudC5hZG9wdGVkU3R5bGVTaGVldHMgPSB3aW4uZG9jdW1lbnQuYWRvcHRlZFN0eWxlU2hlZXRzLmZpbHRlcigoc2hlZXQpID0+IHNoZWV0ICE9PSBzdHlsZVNoZWV0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy5jbGVhcigpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignd2luZG93LWNsb3NlJywgKF93b3Jrc3BhY2VXaW5kb3csIHdpbikgPT4ge1xuICAgICAgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93LmRlbGV0ZSh3aW4pO1xuICAgIH0pKTtcblxuICAgIGNvbnN0IGFsbFdpbmRvd3NFdmVudENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpO1xuICAgIGFsbFdpbmRvd3NFdmVudENvbXBvbmVudC5yZWdpc3RlckFsbFdpbmRvd3NIYW5kbGVyKCh3aW4pID0+IHtcbiAgICAgIHRoaXMuYXR0YWNoKHdpbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGF0dGFjaGVkIENTUyBpbiBldmVyeSB3aW5kb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjc3MgLSBUaGUgbmV3IENTUy5cbiAgICovXG4gIHB1YmxpYyBzZXRDc3MoY3NzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jc3MgPSBjc3M7XG4gICAgZm9yIChjb25zdCBzdHlsZVNoZWV0IG9mIHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy52YWx1ZXMoKSkge1xuICAgICAgc3R5bGVTaGVldC5yZXBsYWNlU3luYyhjc3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoKHdpbjogV2luZG93KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy5oYXMod2luKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0eWxlU2hlZXQgPSBuZXcgKGNhc3RUbzx0eXBlb2Ygd2luZG93Pih3aW4pLkNTU1N0eWxlU2hlZXQpKCk7XG4gICAgc3R5bGVTaGVldC5yZXBsYWNlU3luYyh0aGlzLl9jc3MpO1xuICAgIHdpbi5kb2N1bWVudC5hZG9wdGVkU3R5bGVTaGVldHMgPSBbLi4ud2luLmRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0cywgc3R5bGVTaGVldF07XG4gICAgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93LnNldCh3aW4sIHN0eWxlU2hlZXQpO1xuICB9XG59XG5cbi8qKlxuICogQXR0YWNoZXMgYSBzdHlsZXNoZWV0IHRvIHRoZSBtYWluIHdpbmRvdyBhbmQgZXZlcnkgcG9wb3V0IHdpbmRvdywgaW5jbHVkaW5nIHBvcG91dHMgb3BlbmVkIGxhdGVyLCB1bnRpbCB0aGVcbiAqIG93bmluZyBjb21wb25lbnQgdW5sb2Fkcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZWdpc3RlclN0eWxlUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgU3R5bGVTaGVldENvbXBvbmVudH0sIHdob3NlIHtAbGluayBTdHlsZVNoZWV0Q29tcG9uZW50LnNldENzc30gcmVwbGFjZXMgdGhlIENTUy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyU3R5bGUocGFyYW1zOiBSZWdpc3RlclN0eWxlUGFyYW1zKTogU3R5bGVTaGVldENvbXBvbmVudCB7XG4gIGNvbnN0IHsgYXBwLCBjb21wb25lbnQsIGNzcyB9ID0gcGFyYW1zO1xuICByZXR1cm4gY29tcG9uZW50LmFkZENoaWxkKG5ldyBTdHlsZVNoZWV0Q29tcG9uZW50KHsgYXBwLCBjc3MgfSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFrQkEsMEJBQXVCO0FBRXZCLHlDQUF5QztBQUN6QywwQkFBNEI7QUE4QnJCLE1BQU0sNEJBQTRCLGdDQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTW5ELElBQVcsTUFBYztBQUN2QixXQUFPLEtBQUs7QUFBQSxFQUNkO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLbUI7QUFBQSxFQUVYO0FBQUEsRUFDUyxzQkFBc0Isb0JBQUksSUFBMkI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPL0QsWUFBWSxRQUE4QztBQUMvRCxVQUFNO0FBQ04sU0FBSyxNQUFNLE9BQU87QUFDbEIsU0FBSyxPQUFPLE9BQU87QUFBQSxFQUNyQjtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS2dCLFNBQWU7QUFDN0IsVUFBTSxPQUFPO0FBRWIsU0FBSyxTQUFTLE1BQU07QUFDbEIsaUJBQVcsQ0FBQyxLQUFLLFVBQVUsS0FBSyxLQUFLLHFCQUFxQjtBQUN4RCxZQUFJLFNBQVMscUJBQXFCLElBQUksU0FBUyxtQkFBbUIsT0FBTyxDQUFDLFVBQVUsVUFBVSxVQUFVO0FBQUEsTUFDMUc7QUFDQSxXQUFLLG9CQUFvQixNQUFNO0FBQUEsSUFDakMsQ0FBQztBQUVELFNBQUssY0FBYyxLQUFLLElBQUksVUFBVSxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixRQUFRO0FBQ2xGLFdBQUssb0JBQW9CLE9BQU8sR0FBRztBQUFBLElBQ3JDLENBQUMsQ0FBQztBQUVGLFVBQU0sMkJBQTJCLEtBQUssU0FBUyxJQUFJLDREQUF5QixLQUFLLEdBQUcsQ0FBQztBQUNyRiw2QkFBeUIsMEJBQTBCLENBQUMsUUFBUTtBQUMxRCxXQUFLLE9BQU8sR0FBRztBQUFBLElBQ2pCLENBQUM7QUFBQSxFQUNIO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT08sT0FBTyxLQUFtQjtBQUMvQixTQUFLLE9BQU87QUFDWixlQUFXLGNBQWMsS0FBSyxvQkFBb0IsT0FBTyxHQUFHO0FBQzFELGlCQUFXLFlBQVksR0FBRztBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUFBLEVBRVEsT0FBTyxLQUFtQjtBQUNoQyxRQUFJLEtBQUssb0JBQW9CLElBQUksR0FBRyxHQUFHO0FBQ3JDO0FBQUEsSUFDRjtBQUVBLFVBQU0sYUFBYSxTQUFLLDRCQUFzQixHQUFHLEdBQUUsY0FBZTtBQUNsRSxlQUFXLFlBQVksS0FBSyxJQUFJO0FBQ2hDLFFBQUksU0FBUyxxQkFBcUIsQ0FBQyxHQUFHLElBQUksU0FBUyxvQkFBb0IsVUFBVTtBQUNqRixTQUFLLG9CQUFvQixJQUFJLEtBQUssVUFBVTtBQUFBLEVBQzlDO0FBQ0Y7QUFTTyxTQUFTLGNBQWMsUUFBa0Q7QUFDOUUsUUFBTSxFQUFFLEtBQUssV0FBVyxJQUFJLElBQUk7QUFDaEMsU0FBTyxVQUFVLFNBQVMsSUFBSSxvQkFBb0IsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO0FBQ2pFOyIsIm5hbWVzIjpbXX0=
@@ -0,0 +1,79 @@
1
+ /// <reference path="../library-references.d.cts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Attaches a plugin stylesheet to the main window and every popout window, including popouts opened later, and
6
+ * removes it on unload.
7
+ *
8
+ * The stylesheet is a constructed `CSSStyleSheet` adopted through `document.adoptedStyleSheets`, so the plugin
9
+ * creates no `<style>` element (which the community review flags) and adds no CSS snippet to the user's list.
10
+ * A constructed sheet can be adopted only by a document of the realm that constructed it, so each window gets its
11
+ * own sheet, built with that window's `CSSStyleSheet` constructor. Constructable stylesheets need Electron 28 or
12
+ * iOS 16.4, both below the oldest runtime Obsidian supports.
13
+ */
14
+ import type { App, Component } from 'obsidian' with { 'resolution-mode': 'import' };
15
+ import { ComponentEx } from './component-ex.cjs';
16
+ /**
17
+ * Parameters for {@link registerStyle}.
18
+ */
19
+ export interface RegisterStyleParams extends StyleSheetComponentConstructorParams {
20
+ /**
21
+ * The component that owns the stylesheet: the stylesheet is removed when it unloads.
22
+ */
23
+ readonly component: Component;
24
+ }
25
+ /**
26
+ * Parameters for the {@link StyleSheetComponent} constructor.
27
+ */
28
+ export interface StyleSheetComponentConstructorParams {
29
+ /**
30
+ * The Obsidian app instance.
31
+ */
32
+ readonly app: App;
33
+ /**
34
+ * The CSS to attach.
35
+ */
36
+ readonly css: string;
37
+ }
38
+ /**
39
+ * Attaches a stylesheet to the main window and every popout window while loaded.
40
+ */
41
+ export declare class StyleSheetComponent extends ComponentEx {
42
+ /**
43
+ * The CSS currently attached.
44
+ *
45
+ * @returns The CSS.
46
+ */
47
+ get css(): string;
48
+ /**
49
+ * The Obsidian app instance.
50
+ */
51
+ protected readonly app: App;
52
+ private _css;
53
+ private readonly styleSheetsByWindow;
54
+ /**
55
+ * Creates a new instance of the `StyleSheetComponent` class.
56
+ *
57
+ * @param params - The {@link StyleSheetComponentConstructorParams}.
58
+ */
59
+ constructor(params: StyleSheetComponentConstructorParams);
60
+ /**
61
+ * Attaches the stylesheet to every window, now and as popouts open.
62
+ */
63
+ onload(): void;
64
+ /**
65
+ * Replaces the attached CSS in every window.
66
+ *
67
+ * @param css - The new CSS.
68
+ */
69
+ setCss(css: string): void;
70
+ private attach;
71
+ }
72
+ /**
73
+ * Attaches a stylesheet to the main window and every popout window, including popouts opened later, until the
74
+ * owning component unloads.
75
+ *
76
+ * @param params - The {@link RegisterStyleParams}.
77
+ * @returns The {@link StyleSheetComponent}, whose {@link StyleSheetComponent.setCss} replaces the CSS.
78
+ */
79
+ export declare function registerStyle(params: RegisterStyleParams): StyleSheetComponent;
@@ -0,0 +1,248 @@
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
+ (function () {
6
+ function ensureBrowserProcess() {
7
+ const browserProcess = {
8
+ browser: true,
9
+ cwd() {
10
+ return "/";
11
+ },
12
+ env: {},
13
+ platform: "android"
14
+ };
15
+ const existingProcess = globalThis.process;
16
+ if (!existingProcess) {
17
+ globalThis.process = browserProcess;
18
+ return;
19
+ }
20
+ if (existingProcess.versions?.node) {
21
+ return;
22
+ }
23
+ const existingProcessRecord = existingProcess;
24
+ for (const [key, value] of Object.entries(browserProcess)) {
25
+ existingProcessRecord[key] ??= value;
26
+ }
27
+ existingProcessRecord["browser"] = true;
28
+ }
29
+
30
+ ensureBrowserProcess();
31
+ })();
32
+ (function patchObsidianRequire() {
33
+ const originalRequire = require;
34
+ if (!originalRequire || originalRequire.__isPatched) {
35
+ return;
36
+ }
37
+ require = Object.assign(
38
+ (id) => requirePatched(id),
39
+ originalRequire,
40
+ {
41
+ __isPatched: true
42
+ }
43
+ );
44
+ function extractDefault($module) {
45
+ return $module && $module.__esModule && "default" in $module ? $module.default : $module;
46
+ }
47
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
48
+ "@codemirror/autocomplete",
49
+ "@codemirror/collab",
50
+ "@codemirror/commands",
51
+ "@codemirror/language",
52
+ "@codemirror/lint",
53
+ "@codemirror/search",
54
+ "@codemirror/state",
55
+ "@codemirror/text",
56
+ "@codemirror/view",
57
+ "@lezer/common",
58
+ "@lezer/highlight",
59
+ "@lezer/lr",
60
+ "obsidian"
61
+ ]);
62
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = /* @__PURE__ */ new Set([
63
+ "@codemirror/closebrackets",
64
+ "@codemirror/comment",
65
+ "@codemirror/fold",
66
+ "@codemirror/gutter",
67
+ "@codemirror/highlight",
68
+ "@codemirror/history",
69
+ "@codemirror/matchbrackets",
70
+ "@codemirror/panel",
71
+ "@codemirror/rangeset",
72
+ "@codemirror/rectangular-selection",
73
+ "@codemirror/stream-parser",
74
+ "@codemirror/tooltip"
75
+ ]);
76
+ function requirePatched(id) {
77
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
78
+ return originalRequire?.(id);
79
+ }
80
+ const app = globalThis.app;
81
+ if (app?.isMobile) {
82
+ if (id === "process" || id === "node:process") {
83
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
84
+ return process;
85
+ }
86
+ } else {
87
+ const $module = originalRequire?.(id);
88
+ if ($module) {
89
+ return extractDefault($module);
90
+ }
91
+ }
92
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
93
+ return {};
94
+ }
95
+ })();
96
+
97
+ "use strict";
98
+ var __defProp = Object.defineProperty;
99
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
100
+ var __getOwnPropNames = Object.getOwnPropertyNames;
101
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
102
+ var __export = (target, all) => {
103
+ for (var name in all)
104
+ __defProp(target, name, { get: all[name], enumerable: true });
105
+ };
106
+ var __copyProps = (to, from, except, desc) => {
107
+ if (from && typeof from === "object" || typeof from === "function") {
108
+ for (let key of __getOwnPropNames(from))
109
+ if (!__hasOwnProp.call(to, key) && key !== except)
110
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
111
+ }
112
+ return to;
113
+ };
114
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
115
+ var data_store_locations_exports = {};
116
+ __export(data_store_locations_exports, {
117
+ DataStoreLocations: () => DataStoreLocations
118
+ });
119
+ module.exports = __toCommonJS(data_store_locations_exports);
120
+ var import_type_guards = require('@mnaoumov/typescript-lib/type-guards');
121
+ var import_data_store_transport = require('./data-store-transport.cjs');
122
+ const MAX_LOCATIONS = 32;
123
+ class DataStoreLocations {
124
+ /**
125
+ * Creates a coordinator without adapter calls.
126
+ *
127
+ * @param params - Permanent discovery anchor and store identity.
128
+ */
129
+ constructor(params) {
130
+ this.params = params;
131
+ this.anchor = new import_data_store_transport.DataStoreTransport(params);
132
+ this.initial = { folder: params.folder ?? "Plugin data", format: params.format ?? "markdown" };
133
+ this.locations = [this.initial];
134
+ }
135
+ params;
136
+ /**
137
+ All readers, oldest first; the last transport is the active writer.
138
+ *
139
+ * @returns All retained reader transports in transition order.
140
+ */
141
+ get transports() {
142
+ return this.locations.map((location) => this.createTransport(location));
143
+ }
144
+ anchor;
145
+ initial;
146
+ locations;
147
+ /**
148
+ * Discovers and finishes pending copies before allowing a writer to switch destinations.
149
+ * Conflicting branches and reordered incomplete chains fail closed until delivery is complete.
150
+ *
151
+ * @returns A promise that resolves after discovery and verification.
152
+ */
153
+ async refresh() {
154
+ const transitions = [];
155
+ for (const path of await this.anchor.list()) {
156
+ if (!path.startsWith(`${this.anchor.root}/locations-v1/`) || !path.endsWith(".json")) {
157
+ continue;
158
+ }
159
+ const value = await this.anchor.read(path);
160
+ if (!isTransition(value)) {
161
+ throw new Error("Incomplete or invalid data-store transition");
162
+ }
163
+ this.validateLocation(value.from);
164
+ this.validateLocation(value.to);
165
+ transitions.push(value);
166
+ }
167
+ const locations = [this.initial];
168
+ let currentIdentity = identity(this.initial);
169
+ while (transitions.length > 0) {
170
+ const sourceIdentity = currentIdentity;
171
+ const next = transitions.filter((transition) => identity(transition.from) === sourceIdentity);
172
+ const targets = new Set(next.map((transition) => identity(transition.to)));
173
+ if (targets.size !== 1) {
174
+ throw new Error("Conflicting or incomplete data-store relocation chain");
175
+ }
176
+ const target = (0, import_type_guards.ensureNonNullable)(next[0]);
177
+ if (locations.some((location) => identity(location) === identity(target.to)) || locations.length >= MAX_LOCATIONS) {
178
+ throw new Error("Data-store relocation loop or location limit");
179
+ }
180
+ locations.push(target.to);
181
+ currentIdentity = identity(target.to);
182
+ for (const transition of next) {
183
+ transitions.splice(transitions.indexOf(transition), 1);
184
+ }
185
+ }
186
+ for (const location of locations) {
187
+ this.validateLocation(location, locations);
188
+ }
189
+ for (const location of locations.slice(1)) {
190
+ const target = this.createTransport(location);
191
+ for (const source of locations.slice(0, locations.indexOf(location))) {
192
+ const transport = this.createTransport(source);
193
+ if (transport.root !== target.root) {
194
+ await transport.copyHistoryTo(target);
195
+ }
196
+ }
197
+ }
198
+ this.locations = locations;
199
+ }
200
+ /**
201
+ * Announces a transition durably at the anchor, then copies and verifies before activation.
202
+ * Retrying the same destination finishes an interrupted copy.
203
+ *
204
+ * @param location - Requested destination.
205
+ * @returns A promise that resolves when the new writer is ready.
206
+ */
207
+ async relocate(location) {
208
+ this.validateLocation(location);
209
+ await this.refresh();
210
+ this.validateLocation(location);
211
+ const from = (0, import_type_guards.ensureNonNullable)(this.locations.at(-1));
212
+ if (identity(from) === identity(location)) {
213
+ return;
214
+ }
215
+ if (this.locations.some((previous) => identity(previous) === identity(location)) || this.locations.length >= MAX_LOCATIONS) {
216
+ throw new Error("Data-store relocation loop or location limit");
217
+ }
218
+ const value = { format: 1, from, to: location };
219
+ await this.anchor.write(`${this.anchor.root}/locations-v1/${window.crypto.randomUUID()}.json`, value);
220
+ await this.refresh();
221
+ }
222
+ createTransport(location) {
223
+ return new import_data_store_transport.DataStoreTransport({ ...this.params, folder: location.folder, format: location.format ?? "markdown" });
224
+ }
225
+ validateLocation(location, locations = this.locations) {
226
+ const transport = this.createTransport(location);
227
+ for (const previous of locations) {
228
+ const root = this.createTransport(previous).root;
229
+ if (transport.root !== root && (transport.root.startsWith(`${root}/`) || root.startsWith(`${transport.root}/`))) {
230
+ throw new Error("Overlapping data-store relocation roots");
231
+ }
232
+ }
233
+ }
234
+ }
235
+ function identity(location) {
236
+ return `${location.folder}:${location.format ?? "markdown"}`;
237
+ }
238
+ function isLocation(value) {
239
+ return typeof value === "object" && value !== null && "folder" in value && typeof value.folder === "string" && (!("format" in value) || value.format === "json" || value.format === "markdown");
240
+ }
241
+ function isTransition(value) {
242
+ return typeof value === "object" && value !== null && "format" in value && value.format === 1 && "from" in value && isLocation(value.from) && "to" in value && isLocation(value.to);
243
+ }
244
+ // Annotate the CommonJS export names for ESM import in node:
245
+ 0 && (module.exports = {
246
+ DataStoreLocations
247
+ });
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLWxvY2F0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqIEFwcGVuZC1vbmx5LCBhbmNob3JlZCBkaXNjb3Zlcnkgb2YgaGlzdG9yeS1wcmVzZXJ2aW5nIHRyYW5zcG9ydCB0cmFuc2l0aW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB0eXBlIHsgRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2RhdGEtc3RvcmUtdHJhbnNwb3J0LnRzJztcblxuaW1wb3J0IHsgRGF0YVN0b3JlVHJhbnNwb3J0IH0gZnJvbSAnLi9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyc7XG5cbmNvbnN0IE1BWF9MT0NBVElPTlMgPSAzMjtcblxuLyoqXG5BIHRyYW5zcG9ydCBkZXN0aW5hdGlvbi4gS2VlcCB0aGUgb3JpZ2luYWwgb3BlbiBwYXJhbWV0ZXJzIGFzIHRoZSBkaXNjb3ZlcnkgYW5jaG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTdG9yZUxvY2F0aW9uIHtcbiAgLyoqXG4gIFZhdWx0LXJlbGF0aXZlIHBhcmVudCBvZiB0aGUgcGx1Z2luL3N0b3JlIHN1YnRyZWUuXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIE5ldyBkb2N1bWVudCBlbmNvZGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdtYXJrZG93bidgXG4gICAqL1xuICByZWFkb25seSBmb3JtYXQ/OiAnanNvbicgfCAnbWFya2Rvd24nO1xufVxuXG5pbnRlcmZhY2UgVHJhbnNpdGlvbiB7XG4gIHJlYWRvbmx5IGZvcm1hdDogMTtcbiAgcmVhZG9ubHkgZnJvbTogRGF0YVN0b3JlTG9jYXRpb247XG4gIHJlYWRvbmx5IHRvOiBEYXRhU3RvcmVMb2NhdGlvbjtcbn1cblxuLyoqXG5BbmNob3JlZCByZWxvY2F0aW9uIGNvb3JkaW5hdG9yOyBzb3VyY2UgaGlzdG9yaWVzIGFyZSBuZXZlciByZW1vdmVkLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YVN0b3JlTG9jYXRpb25zIHtcbiAgLyoqXG4gIEFsbCByZWFkZXJzLCBvbGRlc3QgZmlyc3Q7IHRoZSBsYXN0IHRyYW5zcG9ydCBpcyB0aGUgYWN0aXZlIHdyaXRlci5cbiAgICpcbiAgICogQHJldHVybnMgQWxsIHJldGFpbmVkIHJlYWRlciB0cmFuc3BvcnRzIGluIHRyYW5zaXRpb24gb3JkZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRyYW5zcG9ydHMoKTogRGF0YVN0b3JlVHJhbnNwb3J0W10ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9ucy5tYXAoKGxvY2F0aW9uKSA9PiB0aGlzLmNyZWF0ZVRyYW5zcG9ydChsb2NhdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IERhdGFTdG9yZVRyYW5zcG9ydDtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsOiBEYXRhU3RvcmVMb2NhdGlvbjtcblxuICBwcml2YXRlIGxvY2F0aW9uczogRGF0YVN0b3JlTG9jYXRpb25bXTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvb3JkaW5hdG9yIHdpdGhvdXQgYWRhcHRlciBjYWxscy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFBlcm1hbmVudCBkaXNjb3ZlcnkgYW5jaG9yIGFuZCBzdG9yZSBpZGVudGl0eS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFuY2hvciA9IG5ldyBEYXRhU3RvcmVUcmFuc3BvcnQocGFyYW1zKTtcbiAgICB0aGlzLmluaXRpYWwgPSB7IGZvbGRlcjogcGFyYW1zLmZvbGRlciA/PyAnUGx1Z2luIGRhdGEnLCBmb3JtYXQ6IHBhcmFtcy5mb3JtYXQgPz8gJ21hcmtkb3duJyB9O1xuICAgIHRoaXMubG9jYXRpb25zID0gW3RoaXMuaW5pdGlhbF07XG4gIH1cblxuICAvKipcbiAgICogRGlzY292ZXJzIGFuZCBmaW5pc2hlcyBwZW5kaW5nIGNvcGllcyBiZWZvcmUgYWxsb3dpbmcgYSB3cml0ZXIgdG8gc3dpdGNoIGRlc3RpbmF0aW9ucy5cbiAgICogQ29uZmxpY3RpbmcgYnJhbmNoZXMgYW5kIHJlb3JkZXJlZCBpbmNvbXBsZXRlIGNoYWlucyBmYWlsIGNsb3NlZCB1bnRpbCBkZWxpdmVyeSBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgZGlzY292ZXJ5IGFuZCB2ZXJpZmljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cmFuc2l0aW9uczogVHJhbnNpdGlvbltdID0gW107XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGF3YWl0IHRoaXMuYW5jaG9yLmxpc3QoKSkge1xuICAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5hbmNob3Iucm9vdH0vbG9jYXRpb25zLXYxL2ApIHx8ICFwYXRoLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmFuY2hvci5yZWFkKHBhdGgpO1xuICAgICAgaWYgKCFpc1RyYW5zaXRpb24odmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb21wbGV0ZSBvciBpbnZhbGlkIGRhdGEtc3RvcmUgdHJhbnNpdGlvbicpO1xuICAgICAgfVxuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKHZhbHVlLmZyb20pO1xuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKHZhbHVlLnRvKTtcbiAgICAgIHRyYW5zaXRpb25zLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnMgPSBbdGhpcy5pbml0aWFsXTtcbiAgICBsZXQgY3VycmVudElkZW50aXR5ID0gaWRlbnRpdHkodGhpcy5pbml0aWFsKTtcbiAgICB3aGlsZSAodHJhbnNpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc291cmNlSWRlbnRpdHkgPSBjdXJyZW50SWRlbnRpdHk7XG4gICAgICBjb25zdCBuZXh0ID0gdHJhbnNpdGlvbnMuZmlsdGVyKCh0cmFuc2l0aW9uKSA9PiBpZGVudGl0eSh0cmFuc2l0aW9uLmZyb20pID09PSBzb3VyY2VJZGVudGl0eSk7XG4gICAgICBjb25zdCB0YXJnZXRzID0gbmV3IFNldChuZXh0Lm1hcCgodHJhbnNpdGlvbikgPT4gaWRlbnRpdHkodHJhbnNpdGlvbi50bykpKTtcbiAgICAgIGlmICh0YXJnZXRzLnNpemUgIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25mbGljdGluZyBvciBpbmNvbXBsZXRlIGRhdGEtc3RvcmUgcmVsb2NhdGlvbiBjaGFpbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFyZ2V0ID0gZW5zdXJlTm9uTnVsbGFibGUobmV4dFswXSk7XG4gICAgICBpZiAobG9jYXRpb25zLnNvbWUoKGxvY2F0aW9uKSA9PiBpZGVudGl0eShsb2NhdGlvbikgPT09IGlkZW50aXR5KHRhcmdldC50bykpIHx8IGxvY2F0aW9ucy5sZW5ndGggPj0gTUFYX0xPQ0FUSU9OUykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEtc3RvcmUgcmVsb2NhdGlvbiBsb29wIG9yIGxvY2F0aW9uIGxpbWl0Jyk7XG4gICAgICB9XG4gICAgICBsb2NhdGlvbnMucHVzaCh0YXJnZXQudG8pO1xuICAgICAgY3VycmVudElkZW50aXR5ID0gaWRlbnRpdHkodGFyZ2V0LnRvKTtcbiAgICAgIGZvciAoY29uc3QgdHJhbnNpdGlvbiBvZiBuZXh0KSB7XG4gICAgICAgIHRyYW5zaXRpb25zLnNwbGljZSh0cmFuc2l0aW9ucy5pbmRleE9mKHRyYW5zaXRpb24pLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVmFsaWRhdGUgdGhlIGVudGlyZSBjaGFpbiBiZWZvcmUgbWFraW5nIGFueSBjb3BpZXMgb3IgYWN0aXZhdGluZyBhIHdyaXRlci5cbiAgICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucykge1xuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKGxvY2F0aW9uLCBsb2NhdGlvbnMpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucy5zbGljZSgxKSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQobG9jYXRpb24pO1xuICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgbG9jYXRpb25zLnNsaWNlKDAsIGxvY2F0aW9ucy5pbmRleE9mKGxvY2F0aW9uKSkpIHtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQoc291cmNlKTtcbiAgICAgICAgaWYgKHRyYW5zcG9ydC5yb290ICE9PSB0YXJnZXQucm9vdCkge1xuICAgICAgICAgIGF3YWl0IHRyYW5zcG9ydC5jb3B5SGlzdG9yeVRvKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2NhdGlvbnMgPSBsb2NhdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQW5ub3VuY2VzIGEgdHJhbnNpdGlvbiBkdXJhYmx5IGF0IHRoZSBhbmNob3IsIHRoZW4gY29waWVzIGFuZCB2ZXJpZmllcyBiZWZvcmUgYWN0aXZhdGlvbi5cbiAgICogUmV0cnlpbmcgdGhlIHNhbWUgZGVzdGluYXRpb24gZmluaXNoZXMgYW4gaW50ZXJydXB0ZWQgY29weS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gUmVxdWVzdGVkIGRlc3RpbmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBuZXcgd3JpdGVyIGlzIHJlYWR5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlbG9jYXRlKGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudmFsaWRhdGVMb2NhdGlvbihsb2NhdGlvbik7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKGxvY2F0aW9uKTtcbiAgICBjb25zdCBmcm9tID0gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5sb2NhdGlvbnMuYXQoLTEpKTtcbiAgICBpZiAoaWRlbnRpdHkoZnJvbSkgPT09IGlkZW50aXR5KGxvY2F0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5sb2NhdGlvbnMuc29tZSgocHJldmlvdXMpID0+IGlkZW50aXR5KHByZXZpb3VzKSA9PT0gaWRlbnRpdHkobG9jYXRpb24pKSB8fCB0aGlzLmxvY2F0aW9ucy5sZW5ndGggPj0gTUFYX0xPQ0FUSU9OUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHJlbG9jYXRpb24gbG9vcCBvciBsb2NhdGlvbiBsaW1pdCcpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZTogVHJhbnNpdGlvbiA9IHsgZm9ybWF0OiAxLCBmcm9tLCB0bzogbG9jYXRpb24gfTtcbiAgICBhd2FpdCB0aGlzLmFuY2hvci53cml0ZShgJHt0aGlzLmFuY2hvci5yb290fS9sb2NhdGlvbnMtdjEvJHt3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQoKX0uanNvbmAsIHZhbHVlKTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHJhbnNwb3J0KGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IERhdGFTdG9yZVRyYW5zcG9ydCB7XG4gICAgcmV0dXJuIG5ldyBEYXRhU3RvcmVUcmFuc3BvcnQoeyAuLi50aGlzLnBhcmFtcywgZm9sZGVyOiBsb2NhdGlvbi5mb2xkZXIsIGZvcm1hdDogbG9jYXRpb24uZm9ybWF0ID8/ICdtYXJrZG93bicgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTG9jYXRpb24obG9jYXRpb246IERhdGFTdG9yZUxvY2F0aW9uLCBsb2NhdGlvbnM6IHJlYWRvbmx5IERhdGFTdG9yZUxvY2F0aW9uW10gPSB0aGlzLmxvY2F0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zcG9ydCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KGxvY2F0aW9uKTtcbiAgICBmb3IgKGNvbnN0IHByZXZpb3VzIG9mIGxvY2F0aW9ucykge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KHByZXZpb3VzKS5yb290O1xuICAgICAgaWYgKHRyYW5zcG9ydC5yb290ICE9PSByb290ICYmICh0cmFuc3BvcnQucm9vdC5zdGFydHNXaXRoKGAke3Jvb3R9L2ApIHx8IHJvb3Quc3RhcnRzV2l0aChgJHt0cmFuc3BvcnQucm9vdH0vYCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignT3ZlcmxhcHBpbmcgZGF0YS1zdG9yZSByZWxvY2F0aW9uIHJvb3RzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoZXNlIGFyZSBPYnNpZGlhbiByZW5kZXJlciBXZWIgQVBJcywgbm90IE5vZGUgYnVpbHRpbnMuICovXG5cbmZ1bmN0aW9uIGlkZW50aXR5KGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtsb2NhdGlvbi5mb2xkZXJ9OiR7bG9jYXRpb24uZm9ybWF0ID8/ICdtYXJrZG93bid9YDtcbn1cblxuZnVuY3Rpb24gaXNMb2NhdGlvbih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFTdG9yZUxvY2F0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgJ2ZvbGRlcicgaW4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLmZvbGRlciA9PT0gJ3N0cmluZydcbiAgICAmJiAoISgnZm9ybWF0JyBpbiB2YWx1ZSkgfHwgdmFsdWUuZm9ybWF0ID09PSAnanNvbicgfHwgdmFsdWUuZm9ybWF0ID09PSAnbWFya2Rvd24nKTtcbn1cblxuZnVuY3Rpb24gaXNUcmFuc2l0aW9uKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVHJhbnNpdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICdmb3JtYXQnIGluIHZhbHVlICYmIHZhbHVlLmZvcm1hdCA9PT0gMVxuICAgICYmICdmcm9tJyBpbiB2YWx1ZSAmJiBpc0xvY2F0aW9uKHZhbHVlLmZyb20pICYmICd0bycgaW4gdmFsdWUgJiYgaXNMb2NhdGlvbih2YWx1ZS50byk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSx5QkFBa0M7QUFJbEMsa0NBQW1DO0FBRW5DLE1BQU0sZ0JBQWdCO0FBMkJmLE1BQU0sbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBb0J2QixZQUE2QixRQUE2QztBQUE3QztBQUNsQyxTQUFLLFNBQVMsSUFBSSwrQ0FBbUIsTUFB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