@mnaoumov/obsidian-lib 10.6.0 → 10.7.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.
- package/command-handlers/open-discussion-command-handler/package.json +6 -0
- package/command-handlers/open-feature-request-command-handler/package.json +6 -0
- package/command-handlers/open-git-hub-command-handler/package.json +6 -0
- package/components/style-sheet-component/package.json +6 -0
- package/dist/lib/cjs/__merged.cjs +42 -1
- package/dist/lib/cjs/__merged.d.cts +9 -0
- package/dist/lib/cjs/broken-link-candidates.cjs +366 -0
- package/dist/lib/cjs/broken-link-candidates.d.cts +181 -0
- package/dist/lib/cjs/command-handlers/index.cjs +10 -1
- package/dist/lib/cjs/command-handlers/index.d.cts +3 -0
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.cjs +9 -12
- package/dist/lib/cjs/command-handlers/open-bug-report-command-handler.d.cts +6 -8
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.cjs +127 -0
- package/dist/lib/cjs/command-handlers/open-discussion-command-handler.d.cts +45 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.cjs +119 -0
- package/dist/lib/cjs/command-handlers/open-feature-request-command-handler.d.cts +33 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.cjs +121 -0
- package/dist/lib/cjs/command-handlers/open-git-hub-command-handler.d.cts +43 -0
- package/dist/lib/cjs/components/index.cjs +4 -1
- package/dist/lib/cjs/components/index.d.cts +1 -0
- package/dist/lib/cjs/components/style-sheet-component.cjs +198 -0
- package/dist/lib/cjs/components/style-sheet-component.d.cts +79 -0
- package/dist/lib/cjs/data-stores/data-store-transport.cjs +7 -4
- package/dist/lib/cjs/data-stores/data-store-transport.d.cts +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.cjs +1 -1
- package/dist/lib/cjs/data-stores/shared-data-store.d.cts +1 -1
- package/dist/lib/cjs/desktop-git-runner.cjs +117 -0
- package/dist/lib/cjs/desktop-git-runner.d.cts +17 -0
- package/dist/lib/cjs/editor-suggest.cjs +2 -3
- package/dist/lib/cjs/feature-request.cjs +115 -0
- package/dist/lib/cjs/feature-request.d.cts +54 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/git-hub-discussion.cjs +101 -0
- package/dist/lib/cjs/git-hub-discussion.d.cts +28 -0
- package/dist/lib/cjs/git-rename-history.cjs +148 -0
- package/dist/lib/cjs/git-rename-history.d.cts +43 -0
- package/dist/lib/cjs/index.cjs +16 -1
- package/dist/lib/cjs/index.d.cts +5 -0
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/cjs/vault.d.cts +3 -1
- package/dist/lib/esm/__merged.d.mts +9 -0
- package/dist/lib/esm/__merged.mjs +41 -1
- package/dist/lib/esm/broken-link-candidates.d.mts +181 -0
- package/dist/lib/esm/broken-link-candidates.mjs +275 -0
- package/dist/lib/esm/command-handlers/index.d.mts +3 -0
- package/dist/lib/esm/command-handlers/index.mjs +7 -1
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.d.mts +6 -8
- package/dist/lib/esm/command-handlers/open-bug-report-command-handler.mjs +9 -12
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.d.mts +45 -0
- package/dist/lib/esm/command-handlers/open-discussion-command-handler.mjs +39 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.d.mts +33 -0
- package/dist/lib/esm/command-handlers/open-feature-request-command-handler.mjs +31 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.d.mts +43 -0
- package/dist/lib/esm/command-handlers/open-git-hub-command-handler.mjs +33 -0
- package/dist/lib/esm/components/index.d.mts +1 -0
- package/dist/lib/esm/components/index.mjs +3 -1
- package/dist/lib/esm/components/style-sheet-component.d.mts +79 -0
- package/dist/lib/esm/components/style-sheet-component.mjs +109 -0
- package/dist/lib/esm/data-stores/data-store-transport.d.mts +1 -1
- package/dist/lib/esm/data-stores/data-store-transport.mjs +7 -4
- package/dist/lib/esm/data-stores/shared-data-store.d.mts +1 -1
- package/dist/lib/esm/data-stores/shared-data-store.mjs +1 -1
- package/dist/lib/esm/desktop-git-runner.d.mts +17 -0
- package/dist/lib/esm/desktop-git-runner.mjs +19 -0
- package/dist/lib/esm/editor-suggest.mjs +2 -3
- package/dist/lib/esm/feature-request.d.mts +54 -0
- package/dist/lib/esm/feature-request.mjs +25 -0
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/git-hub-discussion.d.mts +28 -0
- package/dist/lib/esm/git-hub-discussion.mjs +13 -0
- package/dist/lib/esm/git-rename-history.d.mts +43 -0
- package/dist/lib/esm/git-rename-history.mjs +59 -0
- package/dist/lib/esm/index.d.mts +5 -0
- package/dist/lib/esm/index.mjs +11 -1
- package/dist/lib/esm/vault.d.mts +3 -1
- package/dist/lib/esm/vault.mjs +2 -2
- 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,
|
|
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;
|
|
@@ -138,8 +138,8 @@ class DataStoreTransport {
|
|
|
138
138
|
this.params = params;
|
|
139
139
|
this.adapter = params.adapter;
|
|
140
140
|
const folder = params.folder ?? "Plugin data";
|
|
141
|
-
if (!folder
|
|
142
|
-
throw new Error("Data store requires a
|
|
141
|
+
if (!isSafeVaultPath(folder) || !/^[\w-]+$/.test(params.pluginId) || !/^[\w-]+$/.test(params.storeId)) {
|
|
142
|
+
throw new Error("Data store requires a safe vault-relative folder and safe plugin/store ids");
|
|
143
143
|
}
|
|
144
144
|
this.root = `${folder}/${params.pluginId}/${params.storeId}`;
|
|
145
145
|
this.maxFileBytes = params.maxFileBytes ?? DEFAULT_MAX_FILE_BYTES;
|
|
@@ -314,7 +314,7 @@ class DataStoreTransport {
|
|
|
314
314
|
await this.write(`${params.base}.md`, manifest);
|
|
315
315
|
}
|
|
316
316
|
checkPath(path) {
|
|
317
|
-
if (!path.startsWith(`${this.root}/`) ||
|
|
317
|
+
if (!path.startsWith(`${this.root}/`) || !isSafeVaultPath(path)) {
|
|
318
318
|
throw new Error("Data-store path leaves its configured folder");
|
|
319
319
|
}
|
|
320
320
|
}
|
|
@@ -340,8 +340,11 @@ async function digest(text) {
|
|
|
340
340
|
const hash = await window.crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
|
|
341
341
|
return [...new Uint8Array(hash)].map((byte) => byte.toString(HEX_RADIX).padStart(HEX_BYTE_LENGTH, "0")).join("");
|
|
342
342
|
}
|
|
343
|
+
function isSafeVaultPath(path) {
|
|
344
|
+
return path.split("/").every((part) => part.length > 0 && part !== "." && part !== ".." && !/[<>:"\\|?*\p{Control}]|[. ]$/u.test(part));
|
|
345
|
+
}
|
|
343
346
|
// Annotate the CommonJS export names for ESM import in node:
|
|
344
347
|
0 && (module.exports = {
|
|
345
348
|
DataStoreTransport
|
|
346
349
|
});
|
|
347
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaXplLWJvdW5kZWQgTWFya2Rvd24gdHJhbnNwb3J0IGNhcnJpZWQgYnkgdmF1bHQgc3luY2hyb25pemF0aW9uIHdpdGggZGVmYXVsdCBmaWxlIHR5cGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGF0YUFkYXB0ZXIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcblxuY29uc3QgREVGQVVMVF9NQVhfRklMRV9CWVRFUyA9IDFfMDAwXzAwMDtcbmNvbnN0IE1JTl9GSUxFX0JZVEVTID0gMjU2O1xuY29uc3QgTUFYX0ZJTEVfQllURVMgPSA0XzAwMF8wMDA7XG5jb25zdCBET0NVTUVOVF9QUkVGSVggPSAnYGBganNvblxcbic7XG5jb25zdCBET0NVTUVOVF9TVUZGSVggPSAnXFxuYGBgXFxuJztcbmNvbnN0IEJJU0VDVElPTl9ESVZJU09SID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgc2hhcmVkLXN0b3JlIHZhdWx0IHRyYW5zcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyOyBubyBkZXNrdG9wIGZpbGVzeXN0ZW0gQVBJcyBhcmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuICAvKipcbiAgICogQ29uZmlndXJhYmxlIG5vbi1kb3QgdmF1bHQgZm9sZGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJ1BsdWdpbiBkYXRhJ2BcbiAgICovXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIE1heGltdW0gVVRGLTggYnl0ZXMgaW4gYW55IGZpbGUsIGluY2x1ZGluZyBpdHMgTWFya2Rvd24gd3JhcHBlci5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEwMDAwMDBgXG4gICAqL1xuICByZWFkb25seSBtYXhGaWxlQnl0ZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQbHVnaW4gbWFuaWZlc3QgaWQuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICAvKipcbiAgICogU3RvcmUgbmFtZSBpbmNsdWRpbmcgaXRzIGNvbnN1bWVyIHNjaGVtYSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHB1Ymxpc2hpbmcgYSBjaHVua2VkIHNuYXBzaG90LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTdG9yZVRyYW5zcG9ydFdyaXRlU25hcHNob3RQYXJhbXMge1xuICAvKipcbiAgICogVmF1bHQtcmVsYXRpdmUgYmFzZSBwYXRoIHdpdGhvdXQgdGhlIGAubWRgIGV4dGVuc2lvbi4gVXNlIGEgZnJlc2ggdW5pcXVlIG5hbWUgZm9yIGV2ZXJ5IHB1YmxpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZTogc3RyaW5nO1xuICAvKipcbiAgICogSlNPTi1jb21wYXRpYmxlIHNuYXBzaG90LCBpbmNsdWRpbmcgaXRzIGNvbnN1bWVyIHNjaGVtYSBhbmQgY292ZXJhZ2UgbWV0YWRhdGEuXG4gICAqL1xuICByZWFkb25seSBwYXlsb2FkOiB1bmtub3duO1xufVxuXG4vKipcbiAqIEEgc3RvcmUtc2NvcGVkIHRyYW5zcG9ydC4gRXZlcnkgcHVibGlzaGVkIGRvY3VtZW50IGlzIGltbXV0YWJsZSBleGNlcHQgZGV2aWNlIGFja25vd2xlZGdlbWVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhU3RvcmVUcmFuc3BvcnQge1xuICAvKipcbiAgICogTWF4aW11bSBlbmNvZGVkIGJ5dGVzIHBlciBkb2N1bWVudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtYXhGaWxlQnl0ZXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIEZ1bGwgdmF1bHQtcmVsYXRpdmUgc3RvcmUgcm9vdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyIHVzZWQgYnkgdGhpcyB0cmFuc3BvcnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWRhcHRlcjogRGF0YUFkYXB0ZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBib3VuZGVkIHZhdWx0IHRyYW5zcG9ydC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIEFkYXB0ZXIsIGlkZW50aXR5IGFuZCBmaWxlIGJvdW5kcy5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zOiBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcykge1xuICAgIHRoaXMuYWRhcHRlciA9IHBhcmFtcy5hZGFwdGVyO1xuICAgIGNvbnN0IGZvbGRlciA9IHBhcmFtcy5mb2xkZXIgPz8gJ1BsdWdpbiBkYXRhJztcbiAgICBpZiAoXG4gICAgICAhZm9sZGVyIHx8IGZvbGRlci5zcGxpdCgnLycpLnNvbWUoKHBhcnQpID0+ICFwYXJ0IHx8IHBhcnQuc3RhcnRzV2l0aCgnLicpIHx8IHBhcnQuaW5jbHVkZXMoJ1xcXFwnKSlcbiAgICAgIHx8ICEvXltcXHctXSskLy50ZXN0KHBhcmFtcy5wbHVnaW5JZCkgfHwgIS9eW1xcdy1dKyQvLnRlc3QocGFyYW1zLnN0b3JlSWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgc3RvcmUgcmVxdWlyZXMgYSBub24tZG90IHZhdWx0IGZvbGRlciBhbmQgc2FmZSBwbHVnaW4vc3RvcmUgaWRzJyk7XG4gICAgfVxuICAgIHRoaXMucm9vdCA9IGAke2ZvbGRlcn0vJHtwYXJhbXMucGx1Z2luSWR9LyR7cGFyYW1zLnN0b3JlSWR9YDtcbiAgICB0aGlzLm1heEZpbGVCeXRlcyA9IHBhcmFtcy5tYXhGaWxlQnl0ZXMgPz8gREVGQVVMVF9NQVhfRklMRV9CWVRFUztcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKHRoaXMubWF4RmlsZUJ5dGVzKSB8fCB0aGlzLm1heEZpbGVCeXRlcyA8IE1JTl9GSUxFX0JZVEVTIHx8IHRoaXMubWF4RmlsZUJ5dGVzID4gTUFYX0ZJTEVfQllURVMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YS1zdG9yZSBmaWxlIGxpbWl0IG11c3QgYmUgYmV0d2VlbiAyNTYgYW5kIDQwMDAwMDAgYnl0ZXMnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGVzdHMgdGhlIGNvbXBsZXRlIGVuY29kZWQgc2l6ZSB3aXRob3V0IHdyaXRpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEpTT04gcGF5bG9hZC5cbiAgICogQHJldHVybnMgV2hldGhlciBpdHMgZG9jdW1lbnQgZml0cyB0aGUgY29uZmlndXJlZCBjYXAuXG4gICAqL1xuICBwdWJsaWMgZml0cyh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGhpcy5lbmNvZGUodmFsdWUpKS5sZW5ndGggPD0gdGhpcy5tYXhGaWxlQnl0ZXM7XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgdGhlIHN0b3JlJ3MgZmlsZXMgcmVjdXJzaXZlbHksIG5ldmVyIGxlYXZpbmcgaXRzIGZvbGRlci5cbiAgICpcbiAgICogQHJldHVybnMgVmF1bHQtcmVsYXRpdmUgcGF0aHMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHRoaXMucm9vdCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGVuZGluZyA9IFt0aGlzLnJvb3RdO1xuICAgIGNvbnN0IGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHdoaWxlIChwZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZvbGRlciA9IGVuc3VyZU5vbk51bGxhYmxlKHBlbmRpbmcuc2hpZnQoKSk7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGF3YWl0IHRoaXMuYWRhcHRlci5saXN0KGZvbGRlcik7XG4gICAgICBmaWxlcy5wdXNoKC4uLmNoaWxkcmVuLmZpbGVzLmZpbHRlcigocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKGAke2ZvbGRlcn0vYCkpKTtcbiAgICAgIHBlbmRpbmcucHVzaCguLi5jaGlsZHJlbi5mb2xkZXJzLmZpbHRlcigocGF0aCkgPT4gcGF0aC5zdGFydHNXaXRoKGAke2ZvbGRlcn0vYCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzLnNvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIGNvbXBsZXRlIGZlbmNlZCBKU09OIGRvY3VtZW50LiBQYXJ0aWFsIG9yIG5vdC15ZXQtZGVsaXZlcmVkIGRvY3VtZW50cyBhcmUgaWdub3JlZC5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBWYXVsdC1yZWxhdGl2ZSBmaWxlIHdpdGhpbiB0aGlzIHN0b3JlLlxuICAgKiBAcmV0dXJucyBQYXJzZWQgSlNPTiwgb3IgYHVuZGVmaW5lZGAgZm9yIGFuIGluY29tcGxldGUgZG9jdW1lbnQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVhZChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLmNoZWNrUGF0aChwYXRoKTtcbiAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMocGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIHRleHQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmVhZChwYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gICAgdGhpcy5jaGVja1NpemUodGV4dCk7XG4gICAgaWYgKCF0ZXh0LnN0YXJ0c1dpdGgoRE9DVU1FTlRfUFJFRklYKSB8fCAhdGV4dC5lbmRzV2l0aChET0NVTUVOVF9TVUZGSVgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWQ6IHVua25vd24gPSBKU09OLnBhcnNlKHRleHQuc2xpY2UoRE9DVU1FTlRfUFJFRklYLmxlbmd0aCwgLURPQ1VNRU5UX1NVRkZJWC5sZW5ndGgpKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGEgc25hcHNob3Qgb25seSBhZnRlciBldmVyeSBudW1iZXJlZCBjaHVuayBhcnJpdmVzIGFuZCBwYXNzZXMgaXRzIFNIQS0yNTYgY2hlY2suXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgbWFuaWZlc3QgcGF0aC5cbiAgICogQHJldHVybnMgSXRzIHBheWxvYWQsIG9yIGB1bmRlZmluZWRgIHdoaWxlIGRlbGl2ZXJ5IGlzIGluY29tcGxldGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVhZFNuYXBzaG90KHBhdGg6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgdGhpcy5yZWFkKHBhdGgpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBtYW5pZmVzdCAhPT0gJ29iamVjdCcgfHwgbWFuaWZlc3QgPT09IG51bGwgfHwgISgnZm9ybWF0JyBpbiBtYW5pZmVzdCkgfHwgbWFuaWZlc3QuZm9ybWF0ICE9PSAxXG4gICAgICB8fCAhKCdoYXNoZXMnIGluIG1hbmlmZXN0KSB8fCAhQXJyYXkuaXNBcnJheShtYW5pZmVzdC5oYXNoZXMpXG4gICAgICB8fCBtYW5pZmVzdC5oYXNoZXMubGVuZ3RoID09PSAwIHx8IG1hbmlmZXN0Lmhhc2hlcy5zb21lKChoYXNoOiB1bmtub3duKSA9PiB0eXBlb2YgaGFzaCAhPT0gJ3N0cmluZycpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjaHVua3M6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGhhc2hdIG9mIG1hbmlmZXN0Lmhhc2hlcy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IGNodW5rID0gYXdhaXQgdGhpcy5yZWFkKGAke3BhdGguc2xpY2UoMCwgLScubWQnLmxlbmd0aCl9LSR7U3RyaW5nKGluZGV4KX0ubWRgKTtcbiAgICAgIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnIHx8IGF3YWl0IGRpZ2VzdChjaHVuaykgIT09IGhhc2gpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkOiB1bmtub3duID0gSlNPTi5wYXJzZShjaHVua3Muam9pbignJykpO1xuICAgIHJldHVybiBwYXJzZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGRvY3VtZW50IG93bmVkIGJ5IHRoZSBjYWxsZXIncyBkZXZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgZmlsZSB3aXRoaW4gdGhpcyBzdG9yZS5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgcmVtb3ZhbC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZW1vdmUocGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jaGVja1BhdGgocGF0aCk7XG4gICAgYXdhaXQgdGhpcy5hZGFwdGVyLnJlbW92ZShwYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBjb21wbGV0ZSBkb2N1bWVudCwgcmVmdXNpbmcgYW4gb3ZlcnNpemVkIHdyaXRlIGJlZm9yZSBhZGFwdGVyIG11dGF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIGZpbGUgd2l0aGluIHRoaXMgc3RvcmUuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEpTT04tY29tcGF0aWJsZSBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBhZGFwdGVyIGZpbmlzaGVzIHdyaXRpbmcuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd3JpdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2hlY2tQYXRoKHBhdGgpO1xuICAgIGNvbnN0IHRleHQgPSB0aGlzLmVuY29kZSh2YWx1ZSk7XG4gICAgdGhpcy5jaGVja1NpemUodGV4dCk7XG4gICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcvJyk7XG4gICAgcGFydHMucG9wKCk7XG4gICAgbGV0IGZvbGRlciA9ICcnO1xuICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykge1xuICAgICAgZm9sZGVyID0gZm9sZGVyID8gYCR7Zm9sZGVyfS8ke3BhcnR9YCA6IHBhcnQ7XG4gICAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMoZm9sZGVyKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5ta2Rpcihmb2xkZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyhmb2xkZXIpKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgdGhpcy5hZGFwdGVyLndyaXRlKHBhdGgsIHRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1Ymxpc2hlcyBib3VuZGVkIGltbXV0YWJsZSBjaHVua3MgYmVmb3JlIHRoZWlyIG1hbmlmZXN0LiBSZWFkZXJzIHZlcmlmeSBkZWxpdmVyeSBjb21wbGV0ZW5lc3MuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBVbmlxdWUgYmFzZSBwYXRoIGFuZCBzbmFwc2hvdCBwYXlsb2FkLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtYW5pZmVzdCBoYXMgYmVlbiBwdWJsaXNoZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgd3JpdGVTbmFwc2hvdChwYXJhbXM6IERhdGFTdG9yZVRyYW5zcG9ydFdyaXRlU25hcHNob3RQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5zdHJpbmdpZnkocGFyYW1zLnBheWxvYWQpO1xuICAgIGlmIChwYXlsb2FkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU25hcHNob3QgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgY29uc3QgY2h1bmtzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIHdoaWxlIChvZmZzZXQgPCBwYXlsb2FkLmxlbmd0aCkge1xuICAgICAgbGV0IGxvdyA9IDE7XG4gICAgICBsZXQgaGlnaCA9IE1hdGgubWluKHBheWxvYWQubGVuZ3RoIC0gb2Zmc2V0LCB0aGlzLm1heEZpbGVCeXRlcyk7XG4gICAgICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgICAgICBjb25zdCBtaWRkbGUgPSBNYXRoLmNlaWwoKGxvdyArIGhpZ2gpIC8gQklTRUNUSU9OX0RJVklTT1IpO1xuICAgICAgICBpZiAodGhpcy5maXRzKHBheWxvYWQuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBtaWRkbGUpKSkge1xuICAgICAgICAgIGxvdyA9IG1pZGRsZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoaWdoID0gbWlkZGxlIC0gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2h1bmtzLnB1c2gocGF5bG9hZC5zbGljZShvZmZzZXQsIG9mZnNldCArIGxvdykpO1xuICAgICAgb2Zmc2V0ICs9IGxvdztcbiAgICB9XG4gICAgY29uc3QgaGFzaGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgY2h1bmsgb2YgY2h1bmtzKSB7XG4gICAgICBoYXNoZXMucHVzaChhd2FpdCBkaWdlc3QoY2h1bmspKTtcbiAgICB9XG4gICAgY29uc3QgbWFuaWZlc3QgPSB7IGZvcm1hdDogMSwgaGFzaGVzIH07XG4gICAgdGhpcy5jaGVja1NpemUodGhpcy5lbmNvZGUobWFuaWZlc3QpKTtcbiAgICBmb3IgKGNvbnN0IFtpbmRleCwgY2h1bmtdIG9mIGNodW5rcy5lbnRyaWVzKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMud3JpdGUoYCR7cGFyYW1zLmJhc2V9LSR7U3RyaW5nKGluZGV4KX0ubWRgLCBjaHVuayk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud3JpdGUoYCR7cGFyYW1zLmJhc2V9Lm1kYCwgbWFuaWZlc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1BhdGgocGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5yb290fS9gKSB8fCBwYXRoLnNwbGl0KCcvJykuc29tZSgocGFydCkgPT4gIXBhcnQgfHwgcGFydC5zdGFydHNXaXRoKCcuJykgfHwgcGFydC5pbmNsdWRlcygnXFxcXCcpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBhdGggbGVhdmVzIGl0cyBjb25maWd1cmVkIGZvbGRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTaXplKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNpemUgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGV4dCkubGVuZ3RoO1xuICAgIGlmIChzaXplIDw9IHRoaXMubWF4RmlsZUJ5dGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUGx1Z2luIGRhdGEgc3RvcmU6ICR7U3RyaW5nKHNpemUpfSBieXRlcyBleGNlZWRzIHRoZSAke1N0cmluZyh0aGlzLm1heEZpbGVCeXRlcyl9IGJ5dGUgZmlsZSBsaW1pdC5gO1xuICAgIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gICAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcignRGF0YVN0b3JlJykobWVzc2FnZSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKGpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBheWxvYWQgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke0RPQ1VNRU5UX1BSRUZJWH0ke2pzb259JHtET0NVTUVOVF9TVUZGSVh9YDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaWdlc3QodGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgaGFzaCA9IGF3YWl0IHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0ZXh0KSk7XG4gIHJldHVybiBbLi4ubmV3IFVpbnQ4QXJyYXkoaGFzaCldLm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZyhIRVhfUkFESVgpLnBhZFN0YXJ0KEhFWF9CWVRFX0xFTkdUSCwgJzAnKSkuam9pbignJyk7XG59XG5cbi8qIGVzbGludC1lbmFibGUgbi9uby11bnN1cHBvcnRlZC1mZWF0dXJlcy9ub2RlLWJ1aWx0aW5zIC0tIFRoZXNlIGFyZSBPYnNpZGlhbiByZW5kZXJlciBXZWIgQVBJcywgbm90IE5vZGUgYnVpbHRpbnMuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQSx5QkFBa0M7QUFDbEMsc0JBQXVCO0FBRXZCLG1CQUF1QztBQUV2QyxNQUFNLHlCQUF5QjtBQUMvQixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGlCQUFpQjtBQUN2QixNQUFNLGtCQUFrQjtBQUN4QixNQUFNLGtCQUFrQjtBQUN4QixNQUFNLG9CQUFvQjtBQUMxQixNQUFNLFlBQVk7QUFDbEIsTUFBTSxrQkFBa0I7QUFpRGpCLE1BQU0sbUJBQW1CO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBbUJ2QixZQUErQixRQUE2QztBQUE3QztBQUNwQyxTQUFLLFVBQVUsT0FBTztBQUN0QixVQUFNLFNBQVMsT0FBTyxVQUFVO0FBQ2hDLFFBQ0UsQ0FBQyxVQUFVLE9BQU8sTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEtBQUssV0FBVyxHQUFHLEtBQUssS0FBSyxTQUFTLElB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
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhLXN0b3Jlcy9kYXRhLXN0b3JlLXRyYW5zcG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaXplLWJvdW5kZWQgTWFya2Rvd24gdHJhbnNwb3J0IGNhcnJpZWQgYnkgdmF1bHQgc3luY2hyb25pemF0aW9uIHdpdGggZGVmYXVsdCBmaWxlIHR5cGVzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGF0YUFkYXB0ZXIgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGVuc3VyZU5vbk51bGxhYmxlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3R5cGUtZ3VhcmRzJztcbmltcG9ydCB7IE5vdGljZSB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlciB9IGZyb20gJy4uL2RlYnVnLnRzJztcblxuY29uc3QgREVGQVVMVF9NQVhfRklMRV9CWVRFUyA9IDFfMDAwXzAwMDtcbmNvbnN0IE1JTl9GSUxFX0JZVEVTID0gMjU2O1xuY29uc3QgTUFYX0ZJTEVfQllURVMgPSA0XzAwMF8wMDA7XG5jb25zdCBET0NVTUVOVF9QUkVGSVggPSAnYGBganNvblxcbic7XG5jb25zdCBET0NVTUVOVF9TVUZGSVggPSAnXFxuYGBgXFxuJztcbmNvbnN0IEJJU0VDVElPTl9ESVZJU09SID0gMjtcbmNvbnN0IEhFWF9SQURJWCA9IDE2O1xuY29uc3QgSEVYX0JZVEVfTEVOR1RIID0gMjtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUgc2hhcmVkLXN0b3JlIHZhdWx0IHRyYW5zcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRDb25zdHJ1Y3RvclBhcmFtcyB7XG4gIC8qKlxuICAgKiBWYXVsdCBhZGFwdGVyOyBubyBkZXNrdG9wIGZpbGVzeXN0ZW0gQVBJcyBhcmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuICAvKipcbiAgICogVmF1bHQtcmVsYXRpdmUgZm9sZGVyLiBIaWRkZW4gc2VnbWVudHMgYXJlIGFsbG93ZWQ7IGNhbGxlcnMgbXVzdCBhcnJhbmdlIHRoZWlyIHN5bmNocm9uaXphdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgYCdQbHVnaW4gZGF0YSdgXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIFVURi04IGJ5dGVzIGluIGFueSBmaWxlLCBpbmNsdWRpbmcgaXRzIE1hcmtkb3duIHdyYXBwZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAxMDAwMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RmlsZUJ5dGVzPzogbnVtYmVyO1xuICAvKipcbiAgICogUGx1Z2luIG1hbmlmZXN0IGlkLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0b3JlIG5hbWUgaW5jbHVkaW5nIGl0cyBjb25zdW1lciBzY2hlbWEgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN0b3JlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBwdWJsaXNoaW5nIGEgY2h1bmtlZCBzbmFwc2hvdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU3RvcmVUcmFuc3BvcnRXcml0ZVNuYXBzaG90UGFyYW1zIHtcbiAgLyoqXG4gICAqIFZhdWx0LXJlbGF0aXZlIGJhc2UgcGF0aCB3aXRob3V0IHRoZSBgLm1kYCBleHRlbnNpb24uIFVzZSBhIGZyZXNoIHVuaXF1ZSBuYW1lIGZvciBldmVyeSBwdWJsaWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEpTT04tY29tcGF0aWJsZSBzbmFwc2hvdCwgaW5jbHVkaW5nIGl0cyBjb25zdW1lciBzY2hlbWEgYW5kIGNvdmVyYWdlIG1ldGFkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF5bG9hZDogdW5rbm93bjtcbn1cblxuLyoqXG4gKiBBIHN0b3JlLXNjb3BlZCB0cmFuc3BvcnQuIEV2ZXJ5IHB1Ymxpc2hlZCBkb2N1bWVudCBpcyBpbW11dGFibGUgZXhjZXB0IGRldmljZSBhY2tub3dsZWRnZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YVN0b3JlVHJhbnNwb3J0IHtcbiAgLyoqXG4gICAqIE1heGltdW0gZW5jb2RlZCBieXRlcyBwZXIgZG9jdW1lbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbWF4RmlsZUJ5dGVzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBGdWxsIHZhdWx0LXJlbGF0aXZlIHN0b3JlIHJvb3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdDogc3RyaW5nO1xuICAvKipcbiAgICogVmF1bHQgYWRhcHRlciB1c2VkIGJ5IHRoaXMgdHJhbnNwb3J0LlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGFBZGFwdGVyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgYm91bmRlZCB2YXVsdCB0cmFuc3BvcnQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBBZGFwdGVyLCBpZGVudGl0eSBhbmQgZmlsZSBib3VuZHMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IHBhcmFtczogRGF0YVN0b3JlVHJhbnNwb3J0Q29uc3RydWN0b3JQYXJhbXMpIHtcbiAgICB0aGlzLmFkYXB0ZXIgPSBwYXJhbXMuYWRhcHRlcjtcbiAgICBjb25zdCBmb2xkZXIgPSBwYXJhbXMuZm9sZGVyID8/ICdQbHVnaW4gZGF0YSc7XG4gICAgaWYgKFxuICAgICAgIWlzU2FmZVZhdWx0UGF0aChmb2xkZXIpXG4gICAgICB8fCAhL15bXFx3LV0rJC8udGVzdChwYXJhbXMucGx1Z2luSWQpIHx8ICEvXltcXHctXSskLy50ZXN0KHBhcmFtcy5zdG9yZUlkKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhIHN0b3JlIHJlcXVpcmVzIGEgc2FmZSB2YXVsdC1yZWxhdGl2ZSBmb2xkZXIgYW5kIHNhZmUgcGx1Z2luL3N0b3JlIGlkcycpO1xuICAgIH1cbiAgICB0aGlzLnJvb3QgPSBgJHtmb2xkZXJ9LyR7cGFyYW1zLnBsdWdpbklkfS8ke3BhcmFtcy5zdG9yZUlkfWA7XG4gICAgdGhpcy5tYXhGaWxlQnl0ZXMgPSBwYXJhbXMubWF4RmlsZUJ5dGVzID8/IERFRkFVTFRfTUFYX0ZJTEVfQllURVM7XG4gICAgaWYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcih0aGlzLm1heEZpbGVCeXRlcykgfHwgdGhpcy5tYXhGaWxlQnl0ZXMgPCBNSU5fRklMRV9CWVRFUyB8fCB0aGlzLm1heEZpbGVCeXRlcyA+IE1BWF9GSUxFX0JZVEVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEtc3RvcmUgZmlsZSBsaW1pdCBtdXN0IGJlIGJldHdlZW4gMjU2IGFuZCA0MDAwMDAwIGJ5dGVzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRlc3RzIHRoZSBjb21wbGV0ZSBlbmNvZGVkIHNpemUgd2l0aG91dCB3cml0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBKU09OIHBheWxvYWQuXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgaXRzIGRvY3VtZW50IGZpdHMgdGhlIGNvbmZpZ3VyZWQgY2FwLlxuICAgKi9cbiAgcHVibGljIGZpdHModmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHRoaXMuZW5jb2RlKHZhbHVlKSkubGVuZ3RoIDw9IHRoaXMubWF4RmlsZUJ5dGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RzIHRoZSBzdG9yZSdzIGZpbGVzIHJlY3Vyc2l2ZWx5LCBuZXZlciBsZWF2aW5nIGl0cyBmb2xkZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFZhdWx0LXJlbGF0aXZlIHBhdGhzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyh0aGlzLnJvb3QpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHBlbmRpbmcgPSBbdGhpcy5yb290XTtcbiAgICBjb25zdCBmaWxlczogc3RyaW5nW10gPSBbXTtcbiAgICB3aGlsZSAocGVuZGluZy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBmb2xkZXIgPSBlbnN1cmVOb25OdWxsYWJsZShwZW5kaW5nLnNoaWZ0KCkpO1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmFkYXB0ZXIubGlzdChmb2xkZXIpO1xuICAgICAgZmlsZXMucHVzaCguLi5jaGlsZHJlbi5maWxlcy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHtmb2xkZXJ9L2ApKSk7XG4gICAgICBwZW5kaW5nLnB1c2goLi4uY2hpbGRyZW4uZm9sZGVycy5maWx0ZXIoKHBhdGgpID0+IHBhdGguc3RhcnRzV2l0aChgJHtmb2xkZXJ9L2ApKSk7XG4gICAgfVxuICAgIHJldHVybiBmaWxlcy5zb3J0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYSBjb21wbGV0ZSBmZW5jZWQgSlNPTiBkb2N1bWVudC4gUGFydGlhbCBvciBub3QteWV0LWRlbGl2ZXJlZCBkb2N1bWVudHMgYXJlIGlnbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVmF1bHQtcmVsYXRpdmUgZmlsZSB3aXRoaW4gdGhpcyBzdG9yZS5cbiAgICogQHJldHVybnMgUGFyc2VkIEpTT04sIG9yIGB1bmRlZmluZWRgIGZvciBhbiBpbmNvbXBsZXRlIGRvY3VtZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWQocGF0aDogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5jaGVja1BhdGgocGF0aCk7XG4gICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKHBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBsZXQgdGV4dDogc3RyaW5nO1xuICAgIHRyeSB7XG4gICAgICB0ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJlYWQocGF0aCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghYXdhaXQgdGhpcy5hZGFwdGVyLmV4aXN0cyhwYXRoKSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTaXplKHRleHQpO1xuICAgIGlmICghdGV4dC5zdGFydHNXaXRoKERPQ1VNRU5UX1BSRUZJWCkgfHwgIXRleHQuZW5kc1dpdGgoRE9DVU1FTlRfU1VGRklYKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkOiB1bmtub3duID0gSlNPTi5wYXJzZSh0ZXh0LnNsaWNlKERPQ1VNRU5UX1BSRUZJWC5sZW5ndGgsIC1ET0NVTUVOVF9TVUZGSVgubGVuZ3RoKSk7XG4gICAgcmV0dXJuIHBhcnNlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhIHNuYXBzaG90IG9ubHkgYWZ0ZXIgZXZlcnkgbnVtYmVyZWQgY2h1bmsgYXJyaXZlcyBhbmQgcGFzc2VzIGl0cyBTSEEtMjU2IGNoZWNrLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIG1hbmlmZXN0IHBhdGguXG4gICAqIEByZXR1cm5zIEl0cyBwYXlsb2FkLCBvciBgdW5kZWZpbmVkYCB3aGlsZSBkZWxpdmVyeSBpcyBpbmNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWRTbmFwc2hvdChwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IHRoaXMucmVhZChwYXRoKTtcbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbWFuaWZlc3QgIT09ICdvYmplY3QnIHx8IG1hbmlmZXN0ID09PSBudWxsIHx8ICEoJ2Zvcm1hdCcgaW4gbWFuaWZlc3QpIHx8IG1hbmlmZXN0LmZvcm1hdCAhPT0gMVxuICAgICAgfHwgISgnaGFzaGVzJyBpbiBtYW5pZmVzdCkgfHwgIUFycmF5LmlzQXJyYXkobWFuaWZlc3QuaGFzaGVzKVxuICAgICAgfHwgbWFuaWZlc3QuaGFzaGVzLmxlbmd0aCA9PT0gMCB8fCBtYW5pZmVzdC5oYXNoZXMuc29tZSgoaGFzaDogdW5rbm93bikgPT4gdHlwZW9mIGhhc2ggIT09ICdzdHJpbmcnKVxuICAgICkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY2h1bmtzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgW2luZGV4LCBoYXNoXSBvZiBtYW5pZmVzdC5oYXNoZXMuZW50cmllcygpKSB7XG4gICAgICBjb25zdCBjaHVuayA9IGF3YWl0IHRoaXMucmVhZChgJHtwYXRoLnNsaWNlKDAsIC0nLm1kJy5sZW5ndGgpfS0ke1N0cmluZyhpbmRleCl9Lm1kYCk7XG4gICAgICBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyB8fCBhd2FpdCBkaWdlc3QoY2h1bmspICE9PSBoYXNoKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZDogdW5rbm93biA9IEpTT04ucGFyc2UoY2h1bmtzLmpvaW4oJycpKTtcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBkb2N1bWVudCBvd25lZCBieSB0aGUgY2FsbGVyJ3MgZGV2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFZhdWx0LXJlbGF0aXZlIGZpbGUgd2l0aGluIHRoaXMgc3RvcmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHJlbW92YWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVtb3ZlKHBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2hlY2tQYXRoKHBhdGgpO1xuICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZW1vdmUocGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogV3JpdGVzIGEgY29tcGxldGUgZG9jdW1lbnQsIHJlZnVzaW5nIGFuIG92ZXJzaXplZCB3cml0ZSBiZWZvcmUgYWRhcHRlciBtdXRhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBWYXVsdC1yZWxhdGl2ZSBmaWxlIHdpdGhpbiB0aGlzIHN0b3JlLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBKU09OLWNvbXBhdGlibGUgcGF5bG9hZC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgYWRhcHRlciBmaW5pc2hlcyB3cml0aW5nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdyaXRlKHBhdGg6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNoZWNrUGF0aChwYXRoKTtcbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5lbmNvZGUodmFsdWUpO1xuICAgIHRoaXMuY2hlY2tTaXplKHRleHQpO1xuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuICAgIHBhcnRzLnBvcCgpO1xuICAgIGxldCBmb2xkZXIgPSAnJztcbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGZvbGRlciA9IGZvbGRlciA/IGAke2ZvbGRlcn0vJHtwYXJ0fWAgOiBwYXJ0O1xuICAgICAgaWYgKCFhd2FpdCB0aGlzLmFkYXB0ZXIuZXhpc3RzKGZvbGRlcikpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIubWtkaXIoZm9sZGVyKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBpZiAoIWF3YWl0IHRoaXMuYWRhcHRlci5leGlzdHMoZm9sZGVyKSkge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuYWRhcHRlci53cml0ZShwYXRoLCB0ZXh0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXMgYm91bmRlZCBpbW11dGFibGUgY2h1bmtzIGJlZm9yZSB0aGVpciBtYW5pZmVzdC4gUmVhZGVycyB2ZXJpZnkgZGVsaXZlcnkgY29tcGxldGVuZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVW5pcXVlIGJhc2UgcGF0aCBhbmQgc25hcHNob3QgcGF5bG9hZC5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWFuaWZlc3QgaGFzIGJlZW4gcHVibGlzaGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHdyaXRlU25hcHNob3QocGFyYW1zOiBEYXRhU3RvcmVUcmFuc3BvcnRXcml0ZVNuYXBzaG90UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcy5wYXlsb2FkKTtcbiAgICBpZiAocGF5bG9hZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NuYXBzaG90IG11c3QgYmUgSlNPTi1jb21wYXRpYmxlJyk7XG4gICAgfVxuICAgIGNvbnN0IGNodW5rczogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICB3aGlsZSAob2Zmc2V0IDwgcGF5bG9hZC5sZW5ndGgpIHtcbiAgICAgIGxldCBsb3cgPSAxO1xuICAgICAgbGV0IGhpZ2ggPSBNYXRoLm1pbihwYXlsb2FkLmxlbmd0aCAtIG9mZnNldCwgdGhpcy5tYXhGaWxlQnl0ZXMpO1xuICAgICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgICAgY29uc3QgbWlkZGxlID0gTWF0aC5jZWlsKChsb3cgKyBoaWdoKSAvIEJJU0VDVElPTl9ESVZJU09SKTtcbiAgICAgICAgaWYgKHRoaXMuZml0cyhwYXlsb2FkLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgbWlkZGxlKSkpIHtcbiAgICAgICAgICBsb3cgPSBtaWRkbGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGlnaCA9IG1pZGRsZSAtIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNodW5rcy5wdXNoKHBheWxvYWQuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBsb3cpKTtcbiAgICAgIG9mZnNldCArPSBsb3c7XG4gICAgfVxuICAgIGNvbnN0IGhhc2hlczogc3RyaW5nW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rcykge1xuICAgICAgaGFzaGVzLnB1c2goYXdhaXQgZGlnZXN0KGNodW5rKSk7XG4gICAgfVxuICAgIGNvbnN0IG1hbmlmZXN0ID0geyBmb3JtYXQ6IDEsIGhhc2hlcyB9O1xuICAgIHRoaXMuY2hlY2tTaXplKHRoaXMuZW5jb2RlKG1hbmlmZXN0KSk7XG4gICAgZm9yIChjb25zdCBbaW5kZXgsIGNodW5rXSBvZiBjaHVua3MuZW50cmllcygpKSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlKGAke3BhcmFtcy5iYXNlfS0ke1N0cmluZyhpbmRleCl9Lm1kYCwgY2h1bmspO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndyaXRlKGAke3BhcmFtcy5iYXNlfS5tZGAsIG1hbmlmZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGAke3RoaXMucm9vdH0vYCkgfHwgIWlzU2FmZVZhdWx0UGF0aChwYXRoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBhdGggbGVhdmVzIGl0cyBjb25maWd1cmVkIGZvbGRlcicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tTaXplKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHNpemUgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodGV4dCkubGVuZ3RoO1xuICAgIGlmIChzaXplIDw9IHRoaXMubWF4RmlsZUJ5dGVzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgUGx1Z2luIGRhdGEgc3RvcmU6ICR7U3RyaW5nKHNpemUpfSBieXRlcyBleGNlZWRzIHRoZSAke1N0cmluZyh0aGlzLm1heEZpbGVCeXRlcyl9IGJ5dGUgZmlsZSBsaW1pdC5gO1xuICAgIG5ldyBOb3RpY2UobWVzc2FnZSk7XG4gICAgZ2V0T2JzaWRpYW5MaWJEZWJ1Z2dlcignRGF0YVN0b3JlJykobWVzc2FnZSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKGpzb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhLXN0b3JlIHBheWxvYWQgbXVzdCBiZSBKU09OLWNvbXBhdGlibGUnKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke0RPQ1VNRU5UX1BSRUZJWH0ke2pzb259JHtET0NVTUVOVF9TVUZGSVh9YDtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkaWdlc3QodGV4dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgaGFzaCA9IGF3YWl0IHdpbmRvdy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSh0ZXh0KSk7XG4gIHJldHVybiBbLi4ubmV3IFVpbnQ4QXJyYXkoaGFzaCldLm1hcCgoYnl0ZSkgPT4gYnl0ZS50b1N0cmluZyhIRVhfUkFESVgpLnBhZFN0YXJ0KEhFWF9CWVRFX0xFTkdUSCwgJzAnKSkuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIGlzU2FmZVZhdWx0UGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5ldmVyeSgocGFydCkgPT4gcGFydC5sZW5ndGggPiAwICYmIHBhcnQgIT09ICcuJyAmJiBwYXJ0ICE9PSAnLi4nICYmICEvWzw+OlwiXFxcXHw/KlxccHtDb250cm9sfV18Wy4gXSQvdS50ZXN0KHBhcnQpKTtcbn1cblxuLyogZXNsaW50LWVuYWJsZSBuL25vLXVuc3VwcG9ydGVkLWZlYXR1cmVzL25vZGUtYnVpbHRpbnMgLS0gVGhlc2UgYXJlIE9ic2lkaWFuIHJlbmRlcmVyIFdlYiBBUElzLCBub3QgTm9kZSBidWlsdGlucy4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNBLHlCQUFrQztBQUNsQyxzQkFBdUI7QUFFdkIsbUJBQXVDO0FBRXZDLE1BQU0seUJBQXlCO0FBQy9CLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0saUJBQWlCO0FBQ3ZCLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sa0JBQWtCO0FBQ3hCLE1BQU0sb0JBQW9CO0FBQzFCLE1BQU0sWUFBWTtBQUNsQixNQUFNLGtCQUFrQjtBQWlEakIsTUFBTSxtQkFBbUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFtQnZCLFlBQStCLFFBQTZDO0FBQTdDO0FBQ3BDLFNBQUssVUFBVSxP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
|
|
@@ -14,7 +14,7 @@ export interface DataStoreTransportConstructorParams {
|
|
|
14
14
|
*/
|
|
15
15
|
readonly adapter: DataAdapter;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Vault-relative folder. Hidden segments are allowed; callers must arrange their synchronization.
|
|
18
18
|
*
|
|
19
19
|
* @default `'Plugin data'`
|
|
20
20
|
*/
|