@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
@@ -0,0 +1,43 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ *
5
+ * Shared browser-opening behavior for GitHub commands.
6
+ */
7
+ import type { Promisable } from 'type-fest';
8
+ import type { CommandHandlerConstructorParams } from './command-handler.mjs';
9
+ import { GlobalCommandHandler } from './global-command-handler.mjs';
10
+ /**
11
+ * Constructor parameters for {@link OpenGitHubCommandHandler}.
12
+ */
13
+ export interface OpenGitHubCommandHandlerConstructorParams extends CommandHandlerConstructorParams {
14
+ /**
15
+ * The plugin's repository, as `owner/name`.
16
+ */
17
+ readonly gitHubRepo: string;
18
+ }
19
+ /**
20
+ * Base class for commands that open a page in the plugin's GitHub repository.
21
+ */
22
+ export declare abstract class OpenGitHubCommandHandler extends GlobalCommandHandler {
23
+ /**
24
+ * The plugin's repository, as `owner/name`.
25
+ */
26
+ protected readonly gitHubRepo: string;
27
+ /**
28
+ * Constructs a new instance.
29
+ *
30
+ * @param params - Constructor parameters.
31
+ */
32
+ constructor(params: OpenGitHubCommandHandlerConstructorParams);
33
+ /**
34
+ * Opens the page in the browser when the command is available.
35
+ */
36
+ execute(): Promise<void>;
37
+ /**
38
+ * Builds the destination URL.
39
+ *
40
+ * @returns The link.
41
+ */
42
+ protected abstract getUrl(): Promisable<string>;
43
+ }
@@ -0,0 +1,33 @@
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
+ import { GlobalCommandHandler } from "./global-command-handler.mjs";
7
+ class OpenGitHubCommandHandler extends GlobalCommandHandler {
8
+ /**
9
+ * The plugin's repository, as `owner/name`.
10
+ */
11
+ gitHubRepo;
12
+ /**
13
+ * Constructs a new instance.
14
+ *
15
+ * @param params - Constructor parameters.
16
+ */
17
+ constructor(params) {
18
+ super(params);
19
+ this.gitHubRepo = params.gitHubRepo;
20
+ }
21
+ /**
22
+ * Opens the page in the browser when the command is available.
23
+ */
24
+ async execute() {
25
+ if (this.canExecute()) {
26
+ window.open(await this.getUrl(), "_blank");
27
+ }
28
+ }
29
+ }
30
+ export {
31
+ OpenGitHubCommandHandler
32
+ };
33
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1naXQtaHViLWNvbW1hbmQtaGFuZGxlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFNoYXJlZCBicm93c2VyLW9wZW5pbmcgYmVoYXZpb3IgZm9yIEdpdEh1YiBjb21tYW5kcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2NvbW1hbmQtaGFuZGxlci50cyc7XG5cbmltcG9ydCB7IEdsb2JhbENvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9nbG9iYWwtY29tbWFuZC1oYW5kbGVyLnRzJztcblxuLyoqXG4gKiBDb25zdHJ1Y3RvciBwYXJhbWV0ZXJzIGZvciB7QGxpbmsgT3BlbkdpdEh1YkNvbW1hbmRIYW5kbGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcGVuR2l0SHViQ29tbWFuZEhhbmRsZXJDb25zdHJ1Y3RvclBhcmFtcyBleHRlbmRzIENvbW1hbmRIYW5kbGVyQ29uc3RydWN0b3JQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHBsdWdpbidzIHJlcG9zaXRvcnksIGFzIGBvd25lci9uYW1lYC5cbiAgICovXG4gIHJlYWRvbmx5IGdpdEh1YlJlcG86IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjb21tYW5kcyB0aGF0IG9wZW4gYSBwYWdlIGluIHRoZSBwbHVnaW4ncyBHaXRIdWIgcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9wZW5HaXRIdWJDb21tYW5kSGFuZGxlciBleHRlbmRzIEdsb2JhbENvbW1hbmRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyByZXBvc2l0b3J5LCBhcyBgb3duZXIvbmFtZWAuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2l0SHViUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gQ29uc3RydWN0b3IgcGFyYW1ldGVycy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IE9wZW5HaXRIdWJDb21tYW5kSGFuZGxlckNvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgICB0aGlzLmdpdEh1YlJlcG8gPSBwYXJhbXMuZ2l0SHViUmVwbztcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyB0aGUgcGFnZSBpbiB0aGUgYnJvd3NlciB3aGVuIHRoZSBjb21tYW5kIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBleGVjdXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNhbkV4ZWN1dGUoKSkge1xuICAgICAgd2luZG93Lm9wZW4oYXdhaXQgdGhpcy5nZXRVcmwoKSwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgdGhlIGRlc3RpbmF0aW9uIFVSTC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGxpbmsuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VXJsKCk6IFByb21pc2FibGU8c3RyaW5nPjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBVUEsU0FBUyw0QkFBNEI7QUFlOUIsTUFBZSxpQ0FBaUMscUJBQXFCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJdkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPWixZQUFZLFFBQW1EO0FBQ3BFLFVBQU0sTUFBTTtBQUNaLFNBQUssYUFBYSxPQUFPO0FBQUEsRUFDM0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQXNCLFVBQXlCO0FBQzdDLFFBQUksS0FBSyxXQUFXLEdBQUc7QUFDckIsYUFBTyxLQUFLLE1BQU0sS0FBSyxPQUFPLEdBQUcsUUFBUTtBQUFBLElBQzNDO0FBQUEsRUFDRjtBQVFGOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -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.mjs';
33
33
  export * as 'settings-facet-component' from './settings-facet-component.mjs';
34
34
  export * as 'settings-migration-component' from './settings-migration-component.mjs';
35
+ export * as 'style-sheet-component' from './style-sheet-component.mjs';
35
36
  export * as 'syntax-highlighting-component' from './syntax-highlighting-component.mjs';
36
37
  export * as 'templates-language-component' from './templates-language-component.mjs';
@@ -36,6 +36,7 @@ import * as rename_delete_handler_component from "./rename-delete-handler-compon
36
36
  import * as rmdir_guard_component from "./rmdir-guard-component.mjs";
37
37
  import * as settings_facet_component from "./settings-facet-component.mjs";
38
38
  import * as settings_migration_component from "./settings-migration-component.mjs";
39
+ import * as style_sheet_component from "./style-sheet-component.mjs";
39
40
  import * as syntax_highlighting_component from "./syntax-highlighting-component.mjs";
40
41
  import * as templates_language_component from "./templates-language-component.mjs";
41
42
  export {
@@ -72,7 +73,8 @@ export {
72
73
  rmdir_guard_component as "rmdir-guard-component",
73
74
  settings_facet_component as "settings-facet-component",
74
75
  settings_migration_component as "settings-migration-component",
76
+ style_sheet_component as "style-sheet-component",
75
77
  syntax_highlighting_component as "syntax-highlighting-component",
76
78
  templates_language_component as "templates-language-component"
77
79
  };
78
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50JyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50LWV4JyBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5leHBvcnQgKiBhcyAnY29uc29sZS1kZWJ1Zy1jb21wb25lbnQnIGZyb20gJy4vY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQnIGZyb20gJy4vY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50JyBmcm9tICcuL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQnIGZyb20gJy4vZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQnIGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb290LW1lbnUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCcgZnJvbSAnLi9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xheW91dC1yZWFkeS1jb21wb25lbnQnIGZyb20gJy4vbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50JyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbW9ua2V5LWFyb3VuZC1jb21wb25lbnQnIGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNvbnRleHQtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWdhdGUtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5vdGljZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50JyBmcm9tICcuL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCcgZnJvbSAnLi9yZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZS1ub3Rlcy1jb21wb25lbnQnIGZyb20gJy4vcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQnIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncm1kaXItZ3VhcmQtY29tcG9uZW50JyBmcm9tICcuL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLWZhY2V0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCcgZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCcgZnJvbSAnLi90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsNEJBQThCO0FBQzFDLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQywyQ0FBNkM7QUFDekQsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywwQ0FBNEM7QUFDeEQsWUFBWUMsdUNBQXlDO0FBQ3JELFlBQVlDLHFEQUF1RDtBQUNuRSxZQUFZQyxzQ0FBd0M7QUFDcEQsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLG9DQUFzQztBQUNsRCxZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsdURBQXlEO0FBQ3JFLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywrQ0FBaUQ7QUFDN0QsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyxxQ0FBdUM7QUFDbkQsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsbUNBQXFDO0FBQ2pELFlBQVlDLGtDQUFvQzsiLAogICJuYW1lcyI6IFsiYWJvcnQtc2lnbmFsLWNvbXBvbmVudCIsICJhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQiLCAiYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQiLCAiYXN5bmMtZXZlbnRzLWNvbXBvbmVudCIsICJidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50IiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQiLCAiY29tcG9uZW50LWV4IiwgImNvbnNvbGUtZGVidWctY29tcG9uZW50IiwgImNvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQiLCAiZGlzcG9zYWJsZS1jb21wb25lbnQiLCAiZW1iZWQtZXh0ZW5zaW9ucy1jb21wb25lbnQiLCAiZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50IiwgImZpbGUtZXhwbG9yZXItcm9vdC1tZW51LWNvbXBvbmVudCIsICJnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCIsICJpbmNyZW1lbnRhbC1maWxlLWluZGV4LWNvbXBvbmVudCIsICJsYXlvdXQtcmVhZHktY29tcG9uZW50IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsICJtb25rZXktYXJvdW5kLWNvbXBvbmVudCIsICJub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50IiwgInBsdWdpbi1jb250ZXh0LWNvbXBvbmVudCIsICJwbHVnaW4tZ2F0ZS1jb21wb25lbnQiLCAicGx1Z2luLW5vdGljZS1jb21wb25lbnQiLCAicGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudCIsICJwbHVnaW4tc2V0dGluZ3MtdGFiLWNvbXBvbmVudCIsICJwbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQiLCAicG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQiLCAicmVjb25maWd1cmFibGUtZWRpdG9yLWV4dGVuc2lvbi1jb21wb25lbnQiLCAicmVnaXN0cnktY29tcG9uZW50IiwgInJlbGVhc2Utbm90ZXMtY29tcG9uZW50IiwgInJlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQiLCAicm1kaXItZ3VhcmQtY29tcG9uZW50IiwgInNldHRpbmdzLWZhY2V0LWNvbXBvbmVudCIsICJzZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50IiwgInN5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50IiwgInRlbXBsYXRlcy1sYW5ndWFnZS1jb21wb25lbnQiXQp9Cg==
80
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBhcyAnYWJvcnQtc2lnbmFsLWNvbXBvbmVudCcgZnJvbSAnLi9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQnIGZyb20gJy4vYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1lcnJvci1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnYXN5bmMtZXZlbnRzLWNvbXBvbmVudCcgZnJvbSAnLi9hc3luYy1ldmVudHMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdidWxrLW9wZXJhdGlvbi1jb21taXQtY29tcG9uZW50JyBmcm9tICcuL2J1bGstb3BlcmF0aW9uLWNvbW1pdC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50LWV4JyBmcm9tICcuL2NvbXBvbmVudC1leC50cyc7XG5leHBvcnQgKiBhcyAnY29uc29sZS1kZWJ1Zy1jb21wb25lbnQnIGZyb20gJy4vY29uc29sZS1kZWJ1Zy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2NvcmUtcGx1Z2luLXRvZ2dsZS1jb21wb25lbnQnIGZyb20gJy4vY29yZS1wbHVnaW4tdG9nZ2xlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnZGlzcG9zYWJsZS1jb21wb25lbnQnIGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50JyBmcm9tICcuL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdlbWJlZGRhYmxlLW1hcmtkb3duLWVkaXRvci1jb21wb25lbnQnIGZyb20gJy4vZW1iZWRkYWJsZS1tYXJrZG93bi1lZGl0b3ItY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQnIGZyb20gJy4vZmlsZS1leHBsb3Jlci1yb290LW1lbnUtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdnZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudCcgZnJvbSAnLi9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQnIGZyb20gJy4vaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2xheW91dC1yZWFkeS1jb21wb25lbnQnIGZyb20gJy4vbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50JyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnbW9ua2V5LWFyb3VuZC1jb21wb25lbnQnIGZyb20gJy4vbW9ua2V5LWFyb3VuZC1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvci1tZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQnIGZyb20gJy4vbm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNvbnRleHQtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWdhdGUtY29tcG9uZW50JyBmcm9tICcuL3BsdWdpbi1nYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLW5vdGljZS1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQnIGZyb20gJy4vcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9wbHVnaW4tc3VnZ2VzdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50JyBmcm9tICcuL3BvaW50ZXItcG9zaXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdyZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudCcgZnJvbSAnLi9yZWNvbmZpZ3VyYWJsZS1lZGl0b3ItZXh0ZW5zaW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVnaXN0cnktY29tcG9uZW50JyBmcm9tICcuL3JlZ2lzdHJ5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncmVsZWFzZS1ub3Rlcy1jb21wb25lbnQnIGZyb20gJy4vcmVsZWFzZS1ub3Rlcy1jb21wb25lbnQudHMnO1xuZXhwb3J0ICogYXMgJ3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQnIGZyb20gJy4vcmVuYW1lLWRlbGV0ZS1oYW5kbGVyLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAncm1kaXItZ3VhcmQtY29tcG9uZW50JyBmcm9tICcuL3JtZGlyLWd1YXJkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtZmFjZXQtY29tcG9uZW50JyBmcm9tICcuL3NldHRpbmdzLWZhY2V0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCcgZnJvbSAnLi9zZXR0aW5ncy1taWdyYXRpb24tY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzdHlsZS1zaGVldC1jb21wb25lbnQnIGZyb20gJy4vc3R5bGUtc2hlZXQtY29tcG9uZW50LnRzJztcbmV4cG9ydCAqIGFzICdzeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudCcgZnJvbSAnLi9zeW50YXgtaGlnaGxpZ2h0aW5nLWNvbXBvbmVudC50cyc7XG5leHBvcnQgKiBhcyAndGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCcgZnJvbSAnLi90ZW1wbGF0ZXMtbGFuZ3VhZ2UtY29tcG9uZW50LnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBRUEsWUFBWUEsNEJBQThCO0FBQzFDLFlBQVlDLGlDQUFtQztBQUMvQyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLHFDQUF1QztBQUNuRCxZQUFZQywyQ0FBNkM7QUFDekQsWUFBWUMsa0JBQW9CO0FBQ2hDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsMEJBQTRCO0FBQ3hDLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywwQ0FBNEM7QUFDeEQsWUFBWUMsdUNBQXlDO0FBQ3JELFlBQVlDLHFEQUF1RDtBQUNuRSxZQUFZQyxzQ0FBd0M7QUFDcEQsWUFBWUMsNEJBQThCO0FBQzFDLFlBQVlDLG9DQUFzQztBQUNsRCxZQUFZQyw2QkFBK0I7QUFDM0MsWUFBWUMsdURBQXlEO0FBQ3JFLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQywyQkFBNkI7QUFDekMsWUFBWUMsNkJBQStCO0FBQzNDLFlBQVlDLCtCQUFpQztBQUM3QyxZQUFZQyxtQ0FBcUM7QUFDakQsWUFBWUMsaUNBQW1DO0FBQy9DLFlBQVlDLGdDQUFrQztBQUM5QyxZQUFZQywrQ0FBaUQ7QUFDN0QsWUFBWUMsd0JBQTBCO0FBQ3RDLFlBQVlDLDZCQUErQjtBQUMzQyxZQUFZQyxxQ0FBdUM7QUFDbkQsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLDhCQUFnQztBQUM1QyxZQUFZQyxrQ0FBb0M7QUFDaEQsWUFBWUMsMkJBQTZCO0FBQ3pDLFlBQVlDLG1DQUFxQztBQUNqRCxZQUFZQyxrQ0FBb0M7IiwKICAibmFtZXMiOiBbImFib3J0LXNpZ25hbC1jb21wb25lbnQiLCAiYWxsLXdpbmRvd3MtZXZlbnQtY29tcG9uZW50IiwgImFzeW5jLWVycm9yLWhhbmRsZXItY29tcG9uZW50IiwgImFzeW5jLWV2ZW50cy1jb21wb25lbnQiLCAiYnVsay1vcGVyYXRpb24tY29tbWl0LWNvbXBvbmVudCIsICJjYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgtY29tcG9uZW50IiwgImNvbXBvbmVudC1leCIsICJjb25zb2xlLWRlYnVnLWNvbXBvbmVudCIsICJjb3JlLXBsdWdpbi10b2dnbGUtY29tcG9uZW50IiwgImRpc3Bvc2FibGUtY29tcG9uZW50IiwgImVtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50IiwgImVtYmVkZGFibGUtbWFya2Rvd24tZWRpdG9yLWNvbXBvbmVudCIsICJmaWxlLWV4cGxvcmVyLXJvb3QtbWVudS1jb21wb25lbnQiLCAiZ2VuZXJhdGUtbWFya2Rvd24tbGluay1kZWZhdWx0LXBhcmFtcy1jb21wb25lbnQiLCAiaW5jcmVtZW50YWwtZmlsZS1pbmRleC1jb21wb25lbnQiLCAibGF5b3V0LXJlYWR5LWNvbXBvbmVudCIsICJtZW51LWV2ZW50LXJlZ2lzdHJhci1jb21wb25lbnQiLCAibW9ua2V5LWFyb3VuZC1jb21wb25lbnQiLCAibm90ZWJvb2stbmF2aWdhdG9yLW1lbnUtZXZlbnQtcmVnaXN0cmFyLWNvbXBvbmVudCIsICJwbHVnaW4tY29udGV4dC1jb21wb25lbnQiLCAicGx1Z2luLWdhdGUtY29tcG9uZW50IiwgInBsdWdpbi1ub3RpY2UtY29tcG9uZW50IiwgInBsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQiLCAicGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQiLCAicGx1Z2luLXN1Z2dlc3Rpb24tY29tcG9uZW50IiwgInBvaW50ZXItcG9zaXRpb24tY29tcG9uZW50IiwgInJlY29uZmlndXJhYmxlLWVkaXRvci1leHRlbnNpb24tY29tcG9uZW50IiwgInJlZ2lzdHJ5LWNvbXBvbmVudCIsICJyZWxlYXNlLW5vdGVzLWNvbXBvbmVudCIsICJyZW5hbWUtZGVsZXRlLWhhbmRsZXItY29tcG9uZW50IiwgInJtZGlyLWd1YXJkLWNvbXBvbmVudCIsICJzZXR0aW5ncy1mYWNldC1jb21wb25lbnQiLCAic2V0dGluZ3MtbWlncmF0aW9uLWNvbXBvbmVudCIsICJzdHlsZS1zaGVldC1jb21wb25lbnQiLCAic3ludGF4LWhpZ2hsaWdodGluZy1jb21wb25lbnQiLCAidGVtcGxhdGVzLWxhbmd1YWdlLWNvbXBvbmVudCJdCn0K
@@ -0,0 +1,79 @@
1
+ /// <reference path="../library-references.d.mts" />
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';
15
+ import { ComponentEx } from './component-ex.mjs';
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,109 @@
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
+
33
+ import { castTo } from "@mnaoumov/typescript-lib/object-utils";
34
+ import { AllWindowsEventComponent } from "./all-windows-event-component.mjs";
35
+ import { ComponentEx } from "./component-ex.mjs";
36
+ class StyleSheetComponent extends ComponentEx {
37
+ /**
38
+ * The CSS currently attached.
39
+ *
40
+ * @returns The CSS.
41
+ */
42
+ get css() {
43
+ return this._css;
44
+ }
45
+ /**
46
+ * The Obsidian app instance.
47
+ */
48
+ app;
49
+ _css;
50
+ styleSheetsByWindow = /* @__PURE__ */ new Map();
51
+ /**
52
+ * Creates a new instance of the `StyleSheetComponent` class.
53
+ *
54
+ * @param params - The {@link StyleSheetComponentConstructorParams}.
55
+ */
56
+ constructor(params) {
57
+ super();
58
+ this.app = params.app;
59
+ this._css = params.css;
60
+ }
61
+ /**
62
+ * Attaches the stylesheet to every window, now and as popouts open.
63
+ */
64
+ onload() {
65
+ super.onload();
66
+ this.register(() => {
67
+ for (const [win, styleSheet] of this.styleSheetsByWindow) {
68
+ win.document.adoptedStyleSheets = win.document.adoptedStyleSheets.filter((sheet) => sheet !== styleSheet);
69
+ }
70
+ this.styleSheetsByWindow.clear();
71
+ });
72
+ this.registerEvent(this.app.workspace.on("window-close", (_workspaceWindow, win) => {
73
+ this.styleSheetsByWindow.delete(win);
74
+ }));
75
+ const allWindowsEventComponent = this.addChild(new AllWindowsEventComponent(this.app));
76
+ allWindowsEventComponent.registerAllWindowsHandler((win) => {
77
+ this.attach(win);
78
+ });
79
+ }
80
+ /**
81
+ * Replaces the attached CSS in every window.
82
+ *
83
+ * @param css - The new CSS.
84
+ */
85
+ setCss(css) {
86
+ this._css = css;
87
+ for (const styleSheet of this.styleSheetsByWindow.values()) {
88
+ styleSheet.replaceSync(css);
89
+ }
90
+ }
91
+ attach(win) {
92
+ if (this.styleSheetsByWindow.has(win)) {
93
+ return;
94
+ }
95
+ const styleSheet = new (castTo(win)).CSSStyleSheet();
96
+ styleSheet.replaceSync(this._css);
97
+ win.document.adoptedStyleSheets = [...win.document.adoptedStyleSheets, styleSheet];
98
+ this.styleSheetsByWindow.set(win, styleSheet);
99
+ }
100
+ }
101
+ function registerStyle(params) {
102
+ const { app, component, css } = params;
103
+ return component.addChild(new StyleSheetComponent({ app, css }));
104
+ }
105
+ export {
106
+ StyleSheetComponent,
107
+ registerStyle
108
+ };
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3N0eWxlLXNoZWV0LWNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQXR0YWNoZXMgYSBwbHVnaW4gc3R5bGVzaGVldCB0byB0aGUgbWFpbiB3aW5kb3cgYW5kIGV2ZXJ5IHBvcG91dCB3aW5kb3csIGluY2x1ZGluZyBwb3BvdXRzIG9wZW5lZCBsYXRlciwgYW5kXG4gKiByZW1vdmVzIGl0IG9uIHVubG9hZC5cbiAqXG4gKiBUaGUgc3R5bGVzaGVldCBpcyBhIGNvbnN0cnVjdGVkIGBDU1NTdHlsZVNoZWV0YCBhZG9wdGVkIHRocm91Z2ggYGRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0c2AsIHNvIHRoZSBwbHVnaW5cbiAqIGNyZWF0ZXMgbm8gYDxzdHlsZT5gIGVsZW1lbnQgKHdoaWNoIHRoZSBjb21tdW5pdHkgcmV2aWV3IGZsYWdzKSBhbmQgYWRkcyBubyBDU1Mgc25pcHBldCB0byB0aGUgdXNlcidzIGxpc3QuXG4gKiBBIGNvbnN0cnVjdGVkIHNoZWV0IGNhbiBiZSBhZG9wdGVkIG9ubHkgYnkgYSBkb2N1bWVudCBvZiB0aGUgcmVhbG0gdGhhdCBjb25zdHJ1Y3RlZCBpdCwgc28gZWFjaCB3aW5kb3cgZ2V0cyBpdHNcbiAqIG93biBzaGVldCwgYnVpbHQgd2l0aCB0aGF0IHdpbmRvdydzIGBDU1NTdHlsZVNoZWV0YCBjb25zdHJ1Y3Rvci4gQ29uc3RydWN0YWJsZSBzdHlsZXNoZWV0cyBuZWVkIEVsZWN0cm9uIDI4IG9yXG4gKiBpT1MgMTYuNCwgYm90aCBiZWxvdyB0aGUgb2xkZXN0IHJ1bnRpbWUgT2JzaWRpYW4gc3VwcG9ydHMuXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGNhc3RUbyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9vYmplY3QtdXRpbHMnO1xuXG5pbXBvcnQgeyBBbGxXaW5kb3dzRXZlbnRDb21wb25lbnQgfSBmcm9tICcuL2FsbC13aW5kb3dzLWV2ZW50LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVnaXN0ZXJTdHlsZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJTdHlsZVBhcmFtcyBleHRlbmRzIFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRoYXQgb3ducyB0aGUgc3R5bGVzaGVldDogdGhlIHN0eWxlc2hlZXQgaXMgcmVtb3ZlZCB3aGVuIGl0IHVubG9hZHMuXG4gICAqL1xuICByZWFkb25seSBjb21wb25lbnQ6IENvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIFN0eWxlU2hlZXRDb21wb25lbnR9IGNvbnN0cnVjdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgdG8gYXR0YWNoLlxuICAgKi9cbiAgcmVhZG9ubHkgY3NzOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQXR0YWNoZXMgYSBzdHlsZXNoZWV0IHRvIHRoZSBtYWluIHdpbmRvdyBhbmQgZXZlcnkgcG9wb3V0IHdpbmRvdyB3aGlsZSBsb2FkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHlsZVNoZWV0Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50RXgge1xuICAvKipcbiAgICogVGhlIENTUyBjdXJyZW50bHkgYXR0YWNoZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBDU1MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jc3M7XG4gIH1cblxuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBhcHA6IEFwcDtcblxuICBwcml2YXRlIF9jc3M6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdHlsZVNoZWV0c0J5V2luZG93ID0gbmV3IE1hcDxXaW5kb3csIENTU1N0eWxlU2hlZXQ+KCk7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGBTdHlsZVNoZWV0Q29tcG9uZW50YCBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgU3R5bGVTaGVldENvbXBvbmVudENvbnN0cnVjdG9yUGFyYW1zfS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFN0eWxlU2hlZXRDb21wb25lbnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcHAgPSBwYXJhbXMuYXBwO1xuICAgIHRoaXMuX2NzcyA9IHBhcmFtcy5jc3M7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHN0eWxlc2hlZXQgdG8gZXZlcnkgd2luZG93LCBub3cgYW5kIGFzIHBvcG91dHMgb3Blbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbmxvYWQoKTogdm9pZCB7XG4gICAgc3VwZXIub25sb2FkKCk7XG5cbiAgICB0aGlzLnJlZ2lzdGVyKCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgW3dpbiwgc3R5bGVTaGVldF0gb2YgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93KSB7XG4gICAgICAgIHdpbi5kb2N1bWVudC5hZG9wdGVkU3R5bGVTaGVldHMgPSB3aW4uZG9jdW1lbnQuYWRvcHRlZFN0eWxlU2hlZXRzLmZpbHRlcigoc2hlZXQpID0+IHNoZWV0ICE9PSBzdHlsZVNoZWV0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy5jbGVhcigpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWdpc3RlckV2ZW50KHRoaXMuYXBwLndvcmtzcGFjZS5vbignd2luZG93LWNsb3NlJywgKF93b3Jrc3BhY2VXaW5kb3csIHdpbikgPT4ge1xuICAgICAgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93LmRlbGV0ZSh3aW4pO1xuICAgIH0pKTtcblxuICAgIGNvbnN0IGFsbFdpbmRvd3NFdmVudENvbXBvbmVudCA9IHRoaXMuYWRkQ2hpbGQobmV3IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCh0aGlzLmFwcCkpO1xuICAgIGFsbFdpbmRvd3NFdmVudENvbXBvbmVudC5yZWdpc3RlckFsbFdpbmRvd3NIYW5kbGVyKCh3aW4pID0+IHtcbiAgICAgIHRoaXMuYXR0YWNoKHdpbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIGF0dGFjaGVkIENTUyBpbiBldmVyeSB3aW5kb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjc3MgLSBUaGUgbmV3IENTUy5cbiAgICovXG4gIHB1YmxpYyBzZXRDc3MoY3NzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jc3MgPSBjc3M7XG4gICAgZm9yIChjb25zdCBzdHlsZVNoZWV0IG9mIHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy52YWx1ZXMoKSkge1xuICAgICAgc3R5bGVTaGVldC5yZXBsYWNlU3luYyhjc3MpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoKHdpbjogV2luZG93KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3R5bGVTaGVldHNCeVdpbmRvdy5oYXMod2luKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0eWxlU2hlZXQgPSBuZXcgKGNhc3RUbzx0eXBlb2Ygd2luZG93Pih3aW4pLkNTU1N0eWxlU2hlZXQpKCk7XG4gICAgc3R5bGVTaGVldC5yZXBsYWNlU3luYyh0aGlzLl9jc3MpO1xuICAgIHdpbi5kb2N1bWVudC5hZG9wdGVkU3R5bGVTaGVldHMgPSBbLi4ud2luLmRvY3VtZW50LmFkb3B0ZWRTdHlsZVNoZWV0cywgc3R5bGVTaGVldF07XG4gICAgdGhpcy5zdHlsZVNoZWV0c0J5V2luZG93LnNldCh3aW4sIHN0eWxlU2hlZXQpO1xuICB9XG59XG5cbi8qKlxuICogQXR0YWNoZXMgYSBzdHlsZXNoZWV0IHRvIHRoZSBtYWluIHdpbmRvdyBhbmQgZXZlcnkgcG9wb3V0IHdpbmRvdywgaW5jbHVkaW5nIHBvcG91dHMgb3BlbmVkIGxhdGVyLCB1bnRpbCB0aGVcbiAqIG93bmluZyBjb21wb25lbnQgdW5sb2Fkcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZWdpc3RlclN0eWxlUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSB7QGxpbmsgU3R5bGVTaGVldENvbXBvbmVudH0sIHdob3NlIHtAbGluayBTdHlsZVNoZWV0Q29tcG9uZW50LnNldENzc30gcmVwbGFjZXMgdGhlIENTUy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyU3R5bGUocGFyYW1zOiBSZWdpc3RlclN0eWxlUGFyYW1zKTogU3R5bGVTaGVldENvbXBvbmVudCB7XG4gIGNvbnN0IHsgYXBwLCBjb21wb25lbnQsIGNzcyB9ID0gcGFyYW1zO1xuICByZXR1cm4gY29tcG9uZW50LmFkZENoaWxkKG5ldyBTdHlsZVNoZWV0Q29tcG9uZW50KHsgYXBwLCBjc3MgfSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxTQUFTLGNBQWM7QUFFdkIsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUyxtQkFBbUI7QUE4QnJCLE1BQU0sNEJBQTRCLFlBQVk7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNbkQsSUFBVyxNQUFjO0FBQ3ZCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUttQjtBQUFBLEVBRVg7QUFBQSxFQUNTLHNCQUFzQixvQkFBSSxJQUEyQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU8vRCxZQUFZLFFBQThDO0FBQy9ELFVBQU07QUFDTixTQUFLLE1BQU0sT0FBTztBQUNsQixTQUFLLE9BQU8sT0FBTztBQUFBLEVBQ3JCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLZ0IsU0FBZTtBQUM3QixVQUFNLE9BQU87QUFFYixTQUFLLFNBQVMsTUFBTTtBQUNsQixpQkFBVyxDQUFDLEtBQUssVUFBVSxLQUFLLEtBQUsscUJBQXFCO0FBQ3hELFlBQUksU0FBUyxxQkFBcUIsSUFBSSxTQUFTLG1CQUFtQixPQUFPLENBQUMsVUFBVSxVQUFVLFVBQVU7QUFBQSxNQUMxRztBQUNBLFdBQUssb0JBQW9CLE1BQU07QUFBQSxJQUNqQyxDQUFDO0FBRUQsU0FBSyxjQUFjLEtBQUssSUFBSSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLFFBQVE7QUFDbEYsV0FBSyxvQkFBb0IsT0FBTyxHQUFHO0FBQUEsSUFDckMsQ0FBQyxDQUFDO0FBRUYsVUFBTSwyQkFBMkIsS0FBSyxTQUFTLElBQUkseUJBQXlCLEtBQUssR0FBRyxDQUFDO0FBQ3JGLDZCQUF5QiwwQkFBMEIsQ0FBQyxRQUFRO0FBQzFELFdBQUssT0FBTyxHQUFHO0FBQUEsSUFDakIsQ0FBQztBQUFBLEVBQ0g7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPTyxPQUFPLEtBQW1CO0FBQy9CLFNBQUssT0FBTztBQUNaLGVBQVcsY0FBYyxLQUFLLG9CQUFvQixPQUFPLEdBQUc7QUFDMUQsaUJBQVcsWUFBWSxHQUFHO0FBQUEsSUFDNUI7QUFBQSxFQUNGO0FBQUEsRUFFUSxPQUFPLEtBQW1CO0FBQ2hDLFFBQUksS0FBSyxvQkFBb0IsSUFBSSxHQUFHLEdBQUc7QUFDckM7QUFBQSxJQUNGO0FBRUEsVUFBTSxhQUFhLEtBQUssT0FBc0IsR0FBRyxHQUFFLGNBQWU7QUFDbEUsZUFBVyxZQUFZLEtBQUssSUFBSTtBQUNoQyxRQUFJLFNBQVMscUJBQXFCLENBQUMsR0FBRyxJQUFJLFNBQVMsb0JBQW9CLFVBQVU7QUFDakYsU0FBSyxvQkFBb0IsSUFBSSxLQUFLLFVBQVU7QUFBQSxFQUM5QztBQUNGO0FBU08sU0FBUyxjQUFjLFFBQWtEO0FBQzlFLFFBQU0sRUFBRSxLQUFLLFdBQVcsSUFBSSxJQUFJO0FBQ2hDLFNBQU8sVUFBVSxTQUFTLElBQUksb0JBQW9CLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztBQUNqRTsiLCJuYW1lcyI6W119
@@ -0,0 +1,60 @@
1
+ /// <reference path="../library-references.d.mts" />
2
+ /**
3
+ * @file
4
+ * Append-only, anchored discovery of history-preserving transport transitions.
5
+ */
6
+ import type { DataStoreTransportConstructorParams } from './data-store-transport.mjs';
7
+ import { DataStoreTransport } from './data-store-transport.mjs';
8
+ /**
9
+ A transport destination. Keep the original open parameters as the discovery anchor.
10
+ */
11
+ export interface DataStoreLocation {
12
+ /**
13
+ Vault-relative parent of the plugin/store subtree.
14
+ */
15
+ readonly folder: string;
16
+ /**
17
+ * New document encoding.
18
+ *
19
+ * @default `'markdown'`
20
+ */
21
+ readonly format?: 'json' | 'markdown';
22
+ }
23
+ /**
24
+ Anchored relocation coordinator; source histories are never removed.
25
+ */
26
+ export declare class DataStoreLocations {
27
+ private readonly params;
28
+ /**
29
+ All readers, oldest first; the last transport is the active writer.
30
+ *
31
+ * @returns All retained reader transports in transition order.
32
+ */
33
+ get transports(): DataStoreTransport[];
34
+ private readonly anchor;
35
+ private readonly initial;
36
+ private locations;
37
+ /**
38
+ * Creates a coordinator without adapter calls.
39
+ *
40
+ * @param params - Permanent discovery anchor and store identity.
41
+ */
42
+ constructor(params: DataStoreTransportConstructorParams);
43
+ /**
44
+ * Discovers and finishes pending copies before allowing a writer to switch destinations.
45
+ * Conflicting branches and reordered incomplete chains fail closed until delivery is complete.
46
+ *
47
+ * @returns A promise that resolves after discovery and verification.
48
+ */
49
+ refresh(): Promise<void>;
50
+ /**
51
+ * Announces a transition durably at the anchor, then copies and verifies before activation.
52
+ * Retrying the same destination finishes an interrupted copy.
53
+ *
54
+ * @param location - Requested destination.
55
+ * @returns A promise that resolves when the new writer is ready.
56
+ */
57
+ relocate(location: DataStoreLocation): Promise<void>;
58
+ private createTransport;
59
+ private validateLocation;
60
+ }
@@ -0,0 +1,160 @@
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
+
33
+ import { ensureNonNullable } from "@mnaoumov/typescript-lib/type-guards";
34
+ import { DataStoreTransport } from "./data-store-transport.mjs";
35
+ const MAX_LOCATIONS = 32;
36
+ class DataStoreLocations {
37
+ /**
38
+ * Creates a coordinator without adapter calls.
39
+ *
40
+ * @param params - Permanent discovery anchor and store identity.
41
+ */
42
+ constructor(params) {
43
+ this.params = params;
44
+ this.anchor = new DataStoreTransport(params);
45
+ this.initial = { folder: params.folder ?? "Plugin data", format: params.format ?? "markdown" };
46
+ this.locations = [this.initial];
47
+ }
48
+ params;
49
+ /**
50
+ All readers, oldest first; the last transport is the active writer.
51
+ *
52
+ * @returns All retained reader transports in transition order.
53
+ */
54
+ get transports() {
55
+ return this.locations.map((location) => this.createTransport(location));
56
+ }
57
+ anchor;
58
+ initial;
59
+ locations;
60
+ /**
61
+ * Discovers and finishes pending copies before allowing a writer to switch destinations.
62
+ * Conflicting branches and reordered incomplete chains fail closed until delivery is complete.
63
+ *
64
+ * @returns A promise that resolves after discovery and verification.
65
+ */
66
+ async refresh() {
67
+ const transitions = [];
68
+ for (const path of await this.anchor.list()) {
69
+ if (!path.startsWith(`${this.anchor.root}/locations-v1/`) || !path.endsWith(".json")) {
70
+ continue;
71
+ }
72
+ const value = await this.anchor.read(path);
73
+ if (!isTransition(value)) {
74
+ throw new Error("Incomplete or invalid data-store transition");
75
+ }
76
+ this.validateLocation(value.from);
77
+ this.validateLocation(value.to);
78
+ transitions.push(value);
79
+ }
80
+ const locations = [this.initial];
81
+ let currentIdentity = identity(this.initial);
82
+ while (transitions.length > 0) {
83
+ const sourceIdentity = currentIdentity;
84
+ const next = transitions.filter((transition) => identity(transition.from) === sourceIdentity);
85
+ const targets = new Set(next.map((transition) => identity(transition.to)));
86
+ if (targets.size !== 1) {
87
+ throw new Error("Conflicting or incomplete data-store relocation chain");
88
+ }
89
+ const target = ensureNonNullable(next[0]);
90
+ if (locations.some((location) => identity(location) === identity(target.to)) || locations.length >= MAX_LOCATIONS) {
91
+ throw new Error("Data-store relocation loop or location limit");
92
+ }
93
+ locations.push(target.to);
94
+ currentIdentity = identity(target.to);
95
+ for (const transition of next) {
96
+ transitions.splice(transitions.indexOf(transition), 1);
97
+ }
98
+ }
99
+ for (const location of locations) {
100
+ this.validateLocation(location, locations);
101
+ }
102
+ for (const location of locations.slice(1)) {
103
+ const target = this.createTransport(location);
104
+ for (const source of locations.slice(0, locations.indexOf(location))) {
105
+ const transport = this.createTransport(source);
106
+ if (transport.root !== target.root) {
107
+ await transport.copyHistoryTo(target);
108
+ }
109
+ }
110
+ }
111
+ this.locations = locations;
112
+ }
113
+ /**
114
+ * Announces a transition durably at the anchor, then copies and verifies before activation.
115
+ * Retrying the same destination finishes an interrupted copy.
116
+ *
117
+ * @param location - Requested destination.
118
+ * @returns A promise that resolves when the new writer is ready.
119
+ */
120
+ async relocate(location) {
121
+ this.validateLocation(location);
122
+ await this.refresh();
123
+ this.validateLocation(location);
124
+ const from = ensureNonNullable(this.locations.at(-1));
125
+ if (identity(from) === identity(location)) {
126
+ return;
127
+ }
128
+ if (this.locations.some((previous) => identity(previous) === identity(location)) || this.locations.length >= MAX_LOCATIONS) {
129
+ throw new Error("Data-store relocation loop or location limit");
130
+ }
131
+ const value = { format: 1, from, to: location };
132
+ await this.anchor.write(`${this.anchor.root}/locations-v1/${window.crypto.randomUUID()}.json`, value);
133
+ await this.refresh();
134
+ }
135
+ createTransport(location) {
136
+ return new DataStoreTransport({ ...this.params, folder: location.folder, format: location.format ?? "markdown" });
137
+ }
138
+ validateLocation(location, locations = this.locations) {
139
+ const transport = this.createTransport(location);
140
+ for (const previous of locations) {
141
+ const root = this.createTransport(previous).root;
142
+ if (transport.root !== root && (transport.root.startsWith(`${root}/`) || root.startsWith(`${transport.root}/`))) {
143
+ throw new Error("Overlapping data-store relocation roots");
144
+ }
145
+ }
146
+ }
147
+ }
148
+ function identity(location) {
149
+ return `${location.folder}:${location.format ?? "markdown"}`;
150
+ }
151
+ function isLocation(value) {
152
+ return typeof value === "object" && value !== null && "folder" in value && typeof value.folder === "string" && (!("format" in value) || value.format === "json" || value.format === "markdown");
153
+ }
154
+ function isTransition(value) {
155
+ return typeof value === "object" && value !== null && "format" in value && value.format === 1 && "from" in value && isLocation(value.from) && "to" in value && isLocation(value.to);
156
+ }
157
+ export {
158
+ DataStoreLocations
159
+ };
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLWxvY2F0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqIEFwcGVuZC1vbmx5LCBhbmNob3JlZCBkaXNjb3Zlcnkgb2YgaGlzdG9yeS1wcmVzZXJ2aW5nIHRyYW5zcG9ydCB0cmFuc2l0aW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5cbmltcG9ydCB0eXBlIHsgRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2RhdGEtc3RvcmUtdHJhbnNwb3J0LnRzJztcblxuaW1wb3J0IHsgRGF0YVN0b3JlVHJhbnNwb3J0IH0gZnJvbSAnLi9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyc7XG5cbmNvbnN0IE1BWF9MT0NBVElPTlMgPSAzMjtcblxuLyoqXG5BIHRyYW5zcG9ydCBkZXN0aW5hdGlvbi4gS2VlcCB0aGUgb3JpZ2luYWwgb3BlbiBwYXJhbWV0ZXJzIGFzIHRoZSBkaXNjb3ZlcnkgYW5jaG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTdG9yZUxvY2F0aW9uIHtcbiAgLyoqXG4gIFZhdWx0LXJlbGF0aXZlIHBhcmVudCBvZiB0aGUgcGx1Z2luL3N0b3JlIHN1YnRyZWUuXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI6IHN0cmluZztcbiAgLyoqXG4gICAqIE5ldyBkb2N1bWVudCBlbmNvZGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdtYXJrZG93bidgXG4gICAqL1xuICByZWFkb25seSBmb3JtYXQ/OiAnanNvbicgfCAnbWFya2Rvd24nO1xufVxuXG5pbnRlcmZhY2UgVHJhbnNpdGlvbiB7XG4gIHJlYWRvbmx5IGZvcm1hdDogMTtcbiAgcmVhZG9ubHkgZnJvbTogRGF0YVN0b3JlTG9jYXRpb247XG4gIHJlYWRvbmx5IHRvOiBEYXRhU3RvcmVMb2NhdGlvbjtcbn1cblxuLyoqXG5BbmNob3JlZCByZWxvY2F0aW9uIGNvb3JkaW5hdG9yOyBzb3VyY2UgaGlzdG9yaWVzIGFyZSBuZXZlciByZW1vdmVkLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YVN0b3JlTG9jYXRpb25zIHtcbiAgLyoqXG4gIEFsbCByZWFkZXJzLCBvbGRlc3QgZmlyc3Q7IHRoZSBsYXN0IHRyYW5zcG9ydCBpcyB0aGUgYWN0aXZlIHdyaXRlci5cbiAgICpcbiAgICogQHJldHVybnMgQWxsIHJldGFpbmVkIHJlYWRlciB0cmFuc3BvcnRzIGluIHRyYW5zaXRpb24gb3JkZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRyYW5zcG9ydHMoKTogRGF0YVN0b3JlVHJhbnNwb3J0W10ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9ucy5tYXAoKGxvY2F0aW9uKSA9PiB0aGlzLmNyZWF0ZVRyYW5zcG9ydChsb2NhdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhbmNob3I6IERhdGFTdG9yZVRyYW5zcG9ydDtcbiAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsOiBEYXRhU3RvcmVMb2NhdGlvbjtcblxuICBwcml2YXRlIGxvY2F0aW9uczogRGF0YVN0b3JlTG9jYXRpb25bXTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvb3JkaW5hdG9yIHdpdGhvdXQgYWRhcHRlciBjYWxscy5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIFBlcm1hbmVudCBkaXNjb3ZlcnkgYW5jaG9yIGFuZCBzdG9yZSBpZGVudGl0eS5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBhcmFtczogRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFuY2hvciA9IG5ldyBEYXRhU3RvcmVUcmFuc3BvcnQocGFyYW1zKTtcbiAgICB0aGlzLmluaXRpYWwgPSB7IGZvbGRlcjogcGFyYW1zLmZvbGRlciA/PyAnUGx1Z2luIGRhdGEnLCBmb3JtYXQ6IHBhcmFtcy5mb3JtYXQgPz8gJ21hcmtkb3duJyB9O1xuICAgIHRoaXMubG9jYXRpb25zID0gW3RoaXMuaW5pdGlhbF07XG4gIH1cblxuICAvKipcbiAgICogRGlzY292ZXJzIGFuZCBmaW5pc2hlcyBwZW5kaW5nIGNvcGllcyBiZWZvcmUgYWxsb3dpbmcgYSB3cml0ZXIgdG8gc3dpdGNoIGRlc3RpbmF0aW9ucy5cbiAgICogQ29uZmxpY3RpbmcgYnJhbmNoZXMgYW5kIHJlb3JkZXJlZCBpbmNvbXBsZXRlIGNoYWlucyBmYWlsIGNsb3NlZCB1bnRpbCBkZWxpdmVyeSBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgZGlzY292ZXJ5IGFuZCB2ZXJpZmljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB0cmFuc2l0aW9uczogVHJhbnNpdGlvbltdID0gW107XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGF3YWl0IHRoaXMuYW5jaG9yLmxpc3QoKSkge1xuICAgICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5hbmNob3Iucm9vdH0vbG9jYXRpb25zLXYxL2ApIHx8ICFwYXRoLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCB0aGlzLmFuY2hvci5yZWFkKHBhdGgpO1xuICAgICAgaWYgKCFpc1RyYW5zaXRpb24odmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb21wbGV0ZSBvciBpbnZhbGlkIGRhdGEtc3RvcmUgdHJhbnNpdGlvbicpO1xuICAgICAgfVxuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKHZhbHVlLmZyb20pO1xuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKHZhbHVlLnRvKTtcbiAgICAgIHRyYW5zaXRpb25zLnB1c2godmFsdWUpO1xuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnMgPSBbdGhpcy5pbml0aWFsXTtcbiAgICBsZXQgY3VycmVudElkZW50aXR5ID0gaWRlbnRpdHkodGhpcy5pbml0aWFsKTtcbiAgICB3aGlsZSAodHJhbnNpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc291cmNlSWRlbnRpdHkgPSBjdXJyZW50SWRlbnRpdHk7XG4gICAgICBjb25zdCBuZXh0ID0gdHJhbnNpdGlvbnMuZmlsdGVyKCh0cmFuc2l0aW9uKSA9PiBpZGVudGl0eSh0cmFuc2l0aW9uLmZyb20pID09PSBzb3VyY2VJZGVudGl0eSk7XG4gICAgICBjb25zdCB0YXJnZXRzID0gbmV3IFNldChuZXh0Lm1hcCgodHJhbnNpdGlvbikgPT4gaWRlbnRpdHkodHJhbnNpdGlvbi50bykpKTtcbiAgICAgIGlmICh0YXJnZXRzLnNpemUgIT09IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb25mbGljdGluZyBvciBpbmNvbXBsZXRlIGRhdGEtc3RvcmUgcmVsb2NhdGlvbiBjaGFpbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFyZ2V0ID0gZW5zdXJlTm9uTnVsbGFibGUobmV4dFswXSk7XG4gICAgICBpZiAobG9jYXRpb25zLnNvbWUoKGxvY2F0aW9uKSA9PiBpZGVudGl0eShsb2NhdGlvbikgPT09IGlkZW50aXR5KHRhcmdldC50bykpIHx8IGxvY2F0aW9ucy5sZW5ndGggPj0gTUFYX0xPQ0FUSU9OUykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEtc3RvcmUgcmVsb2NhdGlvbiBsb29wIG9yIGxvY2F0aW9uIGxpbWl0Jyk7XG4gICAgICB9XG4gICAgICBsb2NhdGlvbnMucHVzaCh0YXJnZXQudG8pO1xuICAgICAgY3VycmVudElkZW50aXR5ID0gaWRlbnRpdHkodGFyZ2V0LnRvKTtcbiAgICAgIGZvciAoY29uc3QgdHJhbnNpdGlvbiBvZiBuZXh0KSB7XG4gICAgICAgIHRyYW5zaXRpb25zLnNwbGljZSh0cmFuc2l0aW9ucy5pbmRleE9mKHRyYW5zaXRpb24pLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gVmFsaWRhdGUgdGhlIGVudGlyZSBjaGFpbiBiZWZvcmUgbWFraW5nIGFueSBjb3BpZXMgb3IgYWN0aXZhdGluZyBhIHdyaXRlci5cbiAgICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucykge1xuICAgICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKGxvY2F0aW9uLCBsb2NhdGlvbnMpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucy5zbGljZSgxKSkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQobG9jYXRpb24pO1xuICAgICAgZm9yIChjb25zdCBzb3VyY2Ugb2YgbG9jYXRpb25zLnNsaWNlKDAsIGxvY2F0aW9ucy5pbmRleE9mKGxvY2F0aW9uKSkpIHtcbiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0gdGhpcy5jcmVhdGVUcmFuc3BvcnQoc291cmNlKTtcbiAgICAgICAgaWYgKHRyYW5zcG9ydC5yb290ICE9PSB0YXJnZXQucm9vdCkge1xuICAgICAgICAgIGF3YWl0IHRyYW5zcG9ydC5jb3B5SGlzdG9yeVRvKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5sb2NhdGlvbnMgPSBsb2NhdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQW5ub3VuY2VzIGEgdHJhbnNpdGlvbiBkdXJhYmx5IGF0IHRoZSBhbmNob3IsIHRoZW4gY29waWVzIGFuZCB2ZXJpZmllcyBiZWZvcmUgYWN0aXZhdGlvbi5cbiAgICogUmV0cnlpbmcgdGhlIHNhbWUgZGVzdGluYXRpb24gZmluaXNoZXMgYW4gaW50ZXJydXB0ZWQgY29weS5cbiAgICpcbiAgICogQHBhcmFtIGxvY2F0aW9uIC0gUmVxdWVzdGVkIGRlc3RpbmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBuZXcgd3JpdGVyIGlzIHJlYWR5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlbG9jYXRlKGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudmFsaWRhdGVMb2NhdGlvbihsb2NhdGlvbik7XG4gICAgYXdhaXQgdGhpcy5yZWZyZXNoKCk7XG4gICAgdGhpcy52YWxpZGF0ZUxvY2F0aW9uKGxvY2F0aW9uKTtcbiAgICBjb25zdCBmcm9tID0gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5sb2NhdGlvbnMuYXQoLTEpKTtcbiAgICBpZiAoaWRlbnRpdHkoZnJvbSkgPT09IGlkZW50aXR5KGxvY2F0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5sb2NhdGlvbnMuc29tZSgocHJldmlvdXMpID0+IGlkZW50aXR5KHByZXZpb3VzKSA9PT0gaWRlbnRpdHkobG9jYXRpb24pKSB8fCB0aGlzLmxvY2F0aW9ucy5sZW5ndGggPj0gTUFYX0xPQ0FUSU9OUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHJlbG9jYXRpb24gbG9vcCBvciBsb2NhdGlvbiBsaW1pdCcpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZTogVHJhbnNpdGlvbiA9IHsgZm9ybWF0OiAxLCBmcm9tLCB0bzogbG9jYXRpb24gfTtcbiAgICBhd2FpdCB0aGlzLmFuY2hvci53cml0ZShgJHt0aGlzLmFuY2hvci5yb290fS9sb2NhdGlvbnMtdjEvJHt3aW5kb3cuY3J5cHRvLnJhbmRvbVVVSUQoKX0uanNvbmAsIHZhbHVlKTtcbiAgICBhd2FpdCB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVHJhbnNwb3J0KGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IERhdGFTdG9yZVRyYW5zcG9ydCB7XG4gICAgcmV0dXJuIG5ldyBEYXRhU3RvcmVUcmFuc3BvcnQoeyAuLi50aGlzLnBhcmFtcywgZm9sZGVyOiBsb2NhdGlvbi5mb2xkZXIsIGZvcm1hdDogbG9jYXRpb24uZm9ybWF0ID8/ICdtYXJrZG93bicgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlTG9jYXRpb24obG9jYXRpb246IERhdGFTdG9yZUxvY2F0aW9uLCBsb2NhdGlvbnM6IHJlYWRvbmx5IERhdGFTdG9yZUxvY2F0aW9uW10gPSB0aGlzLmxvY2F0aW9ucyk6IHZvaWQge1xuICAgIGNvbnN0IHRyYW5zcG9ydCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KGxvY2F0aW9uKTtcbiAgICBmb3IgKGNvbnN0IHByZXZpb3VzIG9mIGxvY2F0aW9ucykge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KHByZXZpb3VzKS5yb290O1xuICAgICAgaWYgKHRyYW5zcG9ydC5yb290ICE9PSByb290ICYmICh0cmFuc3BvcnQucm9vdC5zdGFydHNXaXRoKGAke3Jvb3R9L2ApIHx8IHJvb3Quc3RhcnRzV2l0aChgJHt0cmFuc3BvcnQucm9vdH0vYCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignT3ZlcmxhcHBpbmcgZGF0YS1zdG9yZSByZWxvY2F0aW9uIHJvb3RzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIGVzbGludC1lbmFibGUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoZXNlIGFyZSBPYnNpZGlhbiByZW5kZXJlciBXZWIgQVBJcywgbm90IE5vZGUgYnVpbHRpbnMuICovXG5cbmZ1bmN0aW9uIGlkZW50aXR5KGxvY2F0aW9uOiBEYXRhU3RvcmVMb2NhdGlvbik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtsb2NhdGlvbi5mb2xkZXJ9OiR7bG9jYXRpb24uZm9ybWF0ID8/ICdtYXJrZG93bid9YDtcbn1cblxuZnVuY3Rpb24gaXNMb2NhdGlvbih2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERhdGFTdG9yZUxvY2F0aW9uIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwgJiYgJ2ZvbGRlcicgaW4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLmZvbGRlciA9PT0gJ3N0cmluZydcbiAgICAmJiAoISgnZm9ybWF0JyBpbiB2YWx1ZSkgfHwgdmFsdWUuZm9ybWF0ID09PSAnanNvbicgfHwgdmFsdWUuZm9ybWF0ID09PSAnbWFya2Rvd24nKTtcbn1cblxuZnVuY3Rpb24gaXNUcmFuc2l0aW9uKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgVHJhbnNpdGlvbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICYmICdmb3JtYXQnIGluIHZhbHVlICYmIHZhbHVlLmZvcm1hdCA9PT0gMVxuICAgICYmICdmcm9tJyBpbiB2YWx1ZSAmJiBpc0xvY2F0aW9uKHZhbHVlLmZyb20pICYmICd0bycgaW4gdmFsdWUgJiYgaXNMb2NhdGlvbih2YWx1ZS50byk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyx5QkFBeUI7QUFJbEMsU0FBUywwQkFBMEI7QUFFbkMsTUFBTSxnQkFBZ0I7QUEyQmYsTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFvQnZCLFlBQTZCLFFBQTZDO0FBQTdDO0FBQ2xDLFNBQUssU0FBUyxJQUFJLG1CQUFtQixNQUFNO0FBQzNDLFNBQUssVUFBVSxFQUFFLFFBQVEsT0FBTyxVQUFVLGVBQWUsUUFBUSxPQUFPLFVBQVUsV0FBVztBQUM3RixTQUFLLFlBQVksQ0FBQyxLQUFLLE9BQU87QUFB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
@@ -50,7 +50,7 @@ export interface DataStoreSeedsConstructorParams {
50
50
  */
51
51
  readonly share: boolean;
52
52
  /**
53
- * Store-scoped, bounded Markdown transport. Include the consumer schema version in its store id.
53
+ * Store-scoped, bounded transport. Include the consumer schema version in its store id.
54
54
  */
55
55
  readonly transport: DataStoreTransport;
56
56
  }