@mnaoumov/obsidian-lib 6.1.0 → 6.2.1
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/dist/lib/cjs/__merged.cjs +10 -2
- package/dist/lib/cjs/__merged.d.cts +4 -4
- package/dist/lib/cjs/debug.cjs +11 -3
- package/dist/lib/cjs/debug.d.cts +8 -0
- package/dist/lib/cjs/folder-note.cjs +18 -1
- package/dist/lib/cjs/folder-note.d.cts +30 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/link.cjs +35 -7
- package/dist/lib/cjs/plugin/plugin-context.cjs +3 -2
- package/dist/lib/cjs/setting-components/text-based-component.cjs +4 -1
- package/dist/lib/cjs/validation.cjs +17 -10
- package/dist/lib/cjs/validation.d.cts +44 -16
- package/dist/lib/esm/__merged.d.mts +4 -4
- package/dist/lib/esm/__merged.mjs +14 -4
- package/dist/lib/esm/debug.d.mts +8 -0
- package/dist/lib/esm/debug.mjs +14 -3
- package/dist/lib/esm/folder-note.d.mts +30 -0
- package/dist/lib/esm/folder-note.mjs +21 -2
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/link.mjs +39 -7
- package/dist/lib/esm/plugin/plugin-context.mjs +3 -5
- package/dist/lib/esm/setting-components/text-based-component.mjs +4 -1
- package/dist/lib/esm/validation.d.mts +44 -16
- package/dist/lib/esm/validation.mjs +16 -10
- package/package.json +2 -2
|
@@ -31,12 +31,10 @@ ensureBrowserProcess();
|
|
|
31
31
|
})();
|
|
32
32
|
|
|
33
33
|
import { getSharedAbortController } from "@mnaoumov/typescript-lib/abort-controller";
|
|
34
|
-
import {
|
|
35
|
-
getDebugController,
|
|
36
|
-
showInitialDebugMessage
|
|
37
|
-
} from "@mnaoumov/typescript-lib/debug";
|
|
34
|
+
import { getDebugController } from "@mnaoumov/typescript-lib/debug";
|
|
38
35
|
import { Library } from "@mnaoumov/typescript-lib/library";
|
|
39
36
|
import { CssClass } from "../css-class.mjs";
|
|
37
|
+
import { showInitialDebugMessage } from "../debug.mjs";
|
|
40
38
|
import {
|
|
41
39
|
LIBRARY_STYLES,
|
|
42
40
|
LIBRARY_VERSION
|
|
@@ -87,4 +85,4 @@ export {
|
|
|
87
85
|
initDebugController,
|
|
88
86
|
initPluginContext
|
|
89
87
|
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLWNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEluaXRpYWxpemVzIHRoZSBwbHVnaW4gY29udGV4dCBhbmQgc2V0cyB1cCB0aGUgcGx1Z2luIElELlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVidWdDb250cm9sbGVyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnLWNvbnRyb2xsZXInO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IGdldFNoYXJlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCB7IGdldERlYnVnQ29udHJvbGxlciB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9kZWJ1Zyc7XG5pbXBvcnQgeyBMaWJyYXJ5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2xpYnJhcnknO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBzaG93SW5pdGlhbERlYnVnTWVzc2FnZSB9IGZyb20gJy4uL2RlYnVnLnRzJztcbmltcG9ydCB7XG4gIExJQlJBUllfU1RZTEVTLFxuICBMSUJSQVJZX1ZFUlNJT05cbn0gZnJvbSAnLi4vZ2VuZXJhdGVkLWR1cmluZy1idWlsZC50cyc7XG5pbXBvcnQgeyBpbmplY3RMaWJyYXJ5U3R5bGVzIH0gZnJvbSAnLi4vbGlicmFyeS1zdHlsZXMudHMnO1xuaW1wb3J0IHtcbiAgT0JTSURJQU5fTElCUkFSWV9OQU1FLFxuICBPYnNpZGlhbkxpYnJhcnlcbn0gZnJvbSAnLi4vbGlicmFyeS50cyc7XG5cbmludGVyZmFjZSBQbHVnaW5Db250ZXh0V2luZG93IHtcbiAgREVCVUc6IERlYnVnQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcbn1cblxuY29uc3QgREVCVUdfR1VJREVfVVJMID0gJ2h0dHBzOi8vbW5hb3Vtb3YuZGV2L29ic2lkaWFuLWxpYi9ndWlkZXMvZGVidWdnaW5nLyc7XG5cbi8qKlxuICogU2V0cyB0aGUgQ1NTIGNsYXNzIG9mIGFuIGVsZW1lbnQuXG4gKlxuICogQHBhcmFtIGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBzZXQgdGhlIENTUyBjbGFzcyBvZi5cbiAqIEBwYXJhbSBjc3NDbGFzc2VzIC0gVGhlIENTUyBjbGFzc2VzIHRvIHNldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFBsdWdpbkNzc0NsYXNzZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNzc0NsYXNzZXM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBleHRyYUNzc0NsYXNzZXMgPSB0eXBlb2YgY3NzQ2xhc3NlcyA9PT0gJ3N0cmluZycgPyBbY3NzQ2xhc3Nlc10gOiBjc3NDbGFzc2VzID8/IFtdO1xuICBlbGVtZW50LmFkZENsYXNzKFxuICAgIENzc0NsYXNzLkxpYnJhcnlOYW1lLFxuICAgIC8vIFRoZSBzY29wZSBpcyBlbXB0eSB1bnRpbCB0aGUgcGx1Z2luIGNvbnRleHQgaXMgaW5pdGlhbGl6ZWQ7IHNraXAgaXQgc28gd2UgbmV2ZXIgYWRkIGFuIGVtcHR5IGNsYXNzLlxuICAgIC4uLihPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZSA/IFtPYnNpZGlhbkxpYnJhcnkuY3NzQ2xhc3NTY29wZV0gOiBbXSksXG4gICAgLi4uZXh0cmFDc3NDbGFzc2VzXG4gICk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIGRlYnVnIGNvbnRyb2xsZXIuXG4gKlxuICogQHBhcmFtIHdpbiAtIFRoZSB3aW5kb3cgdG8gaW5pdGlhbGl6ZSB0aGUgZGVidWcgY29udHJvbGxlciBmb3IuXG4gKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZWdpc3RlciBjbGVhbnVwIG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdERlYnVnQ29udHJvbGxlcih3aW46IFdpbmRvdywgY29tcG9uZW50OiBDb21wb25lbnQpOiB2b2lkIHtcbiAgY29uc3QgcGx1Z2luQ29udGV4dFdpbmRvdyA9IHdpbiBhcyBQYXJ0aWFsPFBsdWdpbkNvbnRleHRXaW5kb3c+O1xuICBjb25zdCBvbGREZWJ1ZyA9IHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUc7XG4gIGNvbnN0IG5ld0RlYnVnID0gZ2V0RGVidWdDb250cm9sbGVyKCk7XG4gIHBsdWdpbkNvbnRleHRXaW5kb3cuREVCVUcgPSBuZXdEZWJ1ZztcblxuICBjb21wb25lbnQucmVnaXN0ZXIoKCkgPT4ge1xuICAgIGlmIChwbHVnaW5Db250ZXh0V2luZG93LkRFQlVHID09PSBuZXdEZWJ1Zykge1xuICAgICAgcGx1Z2luQ29udGV4dFdpbmRvdy5ERUJVRyA9IG9sZERlYnVnO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIHBsdWdpbiBjb250ZXh0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSBwbHVnaW4gSUQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0UGx1Z2luQ29udGV4dChwbHVnaW5JZDogc3RyaW5nKTogdm9pZCB7XG4gIE9ic2lkaWFuTGlicmFyeS5pbml0KHsgY3NzQ2xhc3NTY29wZTogcGx1Z2luSWQgfSk7XG4gIExpYnJhcnkuaW5pdCh7XG4gICAgZGVidWdHdWlkZVVybDogREVCVUdfR1VJREVfVVJMLFxuICAgIGRlYnVnTmFtZXNwYWNlOiBPQlNJRElBTl9MSUJSQVJZX05BTUUsXG4gICAgZGVidWdQcmVmaXhOYW1lc3BhY2U6IGAke3BsdWdpbklkfTpgLFxuICAgIHNob3VsZFByaW50U3RhY2tUcmFjZTogdHJ1ZVxuICB9KTtcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQpO1xuXG4gIC8vIE5vdGhpbmcgZWxzZSBpbiB0aGUgbGlicmFyeSByZWFjaGVzIGZvciB0aGUgc2hhcmVkIGFib3J0IGNvbnRyb2xsZXIgLS0gb25seSBjb25zdW1lciBwbHVnaW5zIGRvLiBDcmVhdGVcbiAgLy8gaXQgaGVyZSBzbyB0aGUgZGV2dG9vbHMgY29uc29sZSByZWNpcGUgaW4gdGhlIGRlYnVnZ2luZyBndWlkZSBhbHdheXMgcmVzb2x2ZXMsIGluc3RlYWQgb2YgdGhyb3dpbmcgdW50aWwgc29tZVxuICAvLyBwbHVnaW4gaGFwcGVucyB0byBzdGFydCBhbiBhYm9ydGFibGUgb3BlcmF0aW9uLlxuICBnZXRTaGFyZWRBYm9ydENvbnRyb2xsZXIoKTtcblxuICBpbmplY3RMaWJyYXJ5U3R5bGVzKHtcbiAgICBkb2M6IGRvY3VtZW50LFxuICAgIGxpYnJhcnlTdHlsZXM6IExJQlJBUllfU1RZTEVTLFxuICAgIGxpYnJhcnlWZXJzaW9uOiBMSUJSQVJZX1ZFUlNJT05cbiAgfSk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU0EsU0FBUyxnQ0FBZ0M7QUFDekMsU0FBUywwQkFBMEI7QUFDbkMsU0FBUyxlQUFlO0FBRXhCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsK0JBQStCO0FBQ3hDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUywyQkFBMkI7QUFDcEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFNUCxNQUFNLGtCQUFrQjtBQVFqQixTQUFTLG9CQUFvQixTQUFzQixZQUFzQztBQUM5RixRQUFNLGtCQUFrQixPQUFPLGVBQWUsV0FBVyxDQUFDLFVBQVUsSUFBSSxjQUFjLENBQUM7QUFDdkYsVUFBUTtBQUFBLElBQ04sU0FBUztBQUFBLElBRVQsR0FBSSxnQkFBZ0IsZ0JBQWdCLENBQUMsZ0JBQWdCLGFBQWEsSUFBSSxDQUFDO0FBQUEsSUFDdkUsR0FBRztBQUFBLEVBQ0w7QUFDRjtBQVFPLFNBQVMsb0JBQW9CLEtBQWEsV0FBNEI7QUFDM0UsUUFBTSxzQkFBc0I7QUFDNUIsUUFBTSxXQUFXLG9CQUFvQjtBQUNyQyxRQUFNLFdBQVcsbUJBQW1CO0FBQ3BDLHNCQUFvQixRQUFRO0FBRTVCLFlBQVUsU0FBUyxNQUFNO0FBQ3ZCLFFBQUksb0JBQW9CLFVBQVUsVUFBVTtBQUMxQywwQkFBb0IsUUFBUTtBQUFBLElBQzlCO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPTyxTQUFTLGtCQUFrQixVQUF3QjtBQUN4RCxrQkFBZ0IsS0FBSyxFQUFFLGVBQWUsU0FBUyxDQUFDO0FBQ2hELFVBQVEsS0FBSztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsSUFDaEIsc0JBQXNCLEdBQUcsUUFBUTtBQUFBLElBQ2pDLHVCQUF1QjtBQUFBLEVBQ3pCLENBQUM7QUFDRCwwQkFBd0IsUUFBUTtBQUtoQywyQkFBeUI7QUFFekIsc0JBQW9CO0FBQUEsSUFDbEIsS0FBSztBQUFBLElBQ0wsZUFBZTtBQUFBLElBQ2YsZ0JBQWdCO0FBQUEsRUFDbEIsQ0FBQztBQUNIOyIsIm5hbWVzIjpbXX0=
|
|
@@ -55,10 +55,13 @@ function getTextBasedComponentValue($unknown) {
|
|
|
55
55
|
return $unknown instanceof AbstractTextComponent ? new AbstractTextComponentWrapper($unknown) : null;
|
|
56
56
|
}
|
|
57
57
|
function isTextBasedComponent(component) {
|
|
58
|
+
if (typeof component !== "object" || component === null || !("setPlaceholderValue" in component) || !("isEmpty" in component)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
58
61
|
const textBasedComponent = component;
|
|
59
62
|
return typeof textBasedComponent.setPlaceholderValue === "function" && typeof textBasedComponent.isEmpty === "function";
|
|
60
63
|
}
|
|
61
64
|
export {
|
|
62
65
|
getTextBasedComponentValue
|
|
63
66
|
};
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvdGV4dC1iYXNlZC1jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRleHQgYmFzZWQgY29tcG9uZW50IHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQgeyBBYnN0cmFjdFRleHRDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQSBjb21wb25lbnQgYmFzZWQgb24gYSB0ZXh0IGlucHV0LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEJhc2VkQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIEVtcHRpZXMgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGVtcHR5OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eS5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjb21wb25lbnQgaXMgZW1wdHksIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNFbXB0eTogKCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyVmFsdWUgLSBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgc2V0UGxhY2Vob2xkZXJWYWx1ZTogKHBsYWNlaG9sZGVyVmFsdWU6IFQpID0+IHRoaXM7XG59XG5cbmNsYXNzIEFic3RyYWN0VGV4dENvbXBvbmVudFdyYXBwZXI8VD4gaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8VD4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBgdW5rbm93bmAgZG9lc24ndCB3b3JrLCBnZXR0aW5nIGNvbXBpbGVyIGVycm9ycy5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RUZXh0Q29tcG9uZW50OiBBYnN0cmFjdFRleHRDb21wb25lbnQ8YW55Pikge31cblxuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy5hYnN0cmFjdFRleHRDb21wb25lbnQuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWJzdHJhY3RUZXh0Q29tcG9uZW50LmdldFZhbHVlKCkgPT09ICcnO1xuICB9XG5cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyVmFsdWUocGxhY2Vob2xkZXJWYWx1ZTogVCk6IHRoaXMge1xuICAgIHRoaXMuYWJzdHJhY3RUZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyVmFsdWUgYXMgc3RyaW5nKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgdGhlIHRleHQgYmFzZWQgY29tcG9uZW50IHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEBwYXJhbSAkdW5rbm93biAtIEFueSBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgdGV4dCBiYXNlZCBjb21wb25lbnQgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBvciBgbnVsbGAgaWYgdGhlIGNvbXBvbmVudCBpcyBub3QgYSB0ZXh0IGJhc2VkIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRCYXNlZENvbXBvbmVudFZhbHVlPFQ+KCR1bmtub3duOiB1bmtub3duKTogbnVsbCB8IFRleHRCYXNlZENvbXBvbmVudDxUPiB7XG4gIGlmIChpc1RleHRCYXNlZENvbXBvbmVudCgkdW5rbm93bikpIHtcbiAgICByZXR1cm4gJHVua25vd247XG4gIH1cblxuICByZXR1cm4gJHVua25vd24gaW5zdGFuY2VvZiBBYnN0cmFjdFRleHRDb21wb25lbnQgPyBuZXcgQWJzdHJhY3RUZXh0Q29tcG9uZW50V3JhcHBlcjxUPigkdW5rbm93bikgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1RleHRCYXNlZENvbXBvbmVudDxUPihjb21wb25lbnQ6IHVua25vd24pOiBjb21wb25lbnQgaXMgVGV4dEJhc2VkQ29tcG9uZW50PFQ+
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXR0aW5nLWNvbXBvbmVudHMvdGV4dC1iYXNlZC1jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRleHQgYmFzZWQgY29tcG9uZW50IHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQgeyBBYnN0cmFjdFRleHRDb21wb25lbnQgfSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQSBjb21wb25lbnQgYmFzZWQgb24gYSB0ZXh0IGlucHV0LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB0byBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEJhc2VkQ29tcG9uZW50PFQ+IHtcbiAgLyoqXG4gICAqIEVtcHRpZXMgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIGVtcHR5OiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNvbXBvbmVudCBpcyBlbXB0eS5cbiAgICpcbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBjb21wb25lbnQgaXMgZW1wdHksIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNFbXB0eTogKCkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyVmFsdWUgLSBUaGUgcGxhY2Vob2xkZXIgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBUaGUgY29tcG9uZW50LlxuICAgKi9cbiAgc2V0UGxhY2Vob2xkZXJWYWx1ZTogKHBsYWNlaG9sZGVyVmFsdWU6IFQpID0+IHRoaXM7XG59XG5cbmNsYXNzIEFic3RyYWN0VGV4dENvbXBvbmVudFdyYXBwZXI8VD4gaW1wbGVtZW50cyBUZXh0QmFzZWRDb21wb25lbnQ8VD4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBgdW5rbm93bmAgZG9lc24ndCB3b3JrLCBnZXR0aW5nIGNvbXBpbGVyIGVycm9ycy5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RUZXh0Q29tcG9uZW50OiBBYnN0cmFjdFRleHRDb21wb25lbnQ8YW55Pikge31cblxuICBwdWJsaWMgZW1wdHkoKTogdm9pZCB7XG4gICAgdGhpcy5hYnN0cmFjdFRleHRDb21wb25lbnQuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWJzdHJhY3RUZXh0Q29tcG9uZW50LmdldFZhbHVlKCkgPT09ICcnO1xuICB9XG5cbiAgcHVibGljIHNldFBsYWNlaG9sZGVyVmFsdWUocGxhY2Vob2xkZXJWYWx1ZTogVCk6IHRoaXMge1xuICAgIHRoaXMuYWJzdHJhY3RUZXh0Q29tcG9uZW50LnNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyVmFsdWUgYXMgc3RyaW5nKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuXG4vKipcbiAqIEdldHMgdGhlIHRleHQgYmFzZWQgY29tcG9uZW50IHZhbHVlIG9mIHRoZSBjb21wb25lbnQuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHRvIGdldC5cbiAqIEBwYXJhbSAkdW5rbm93biAtIEFueSBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgdGV4dCBiYXNlZCBjb21wb25lbnQgdmFsdWUgb2YgdGhlIGNvbXBvbmVudCBvciBgbnVsbGAgaWYgdGhlIGNvbXBvbmVudCBpcyBub3QgYSB0ZXh0IGJhc2VkIGNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRCYXNlZENvbXBvbmVudFZhbHVlPFQ+KCR1bmtub3duOiB1bmtub3duKTogbnVsbCB8IFRleHRCYXNlZENvbXBvbmVudDxUPiB7XG4gIGlmIChpc1RleHRCYXNlZENvbXBvbmVudCgkdW5rbm93bikpIHtcbiAgICByZXR1cm4gJHVua25vd247XG4gIH1cblxuICByZXR1cm4gJHVua25vd24gaW5zdGFuY2VvZiBBYnN0cmFjdFRleHRDb21wb25lbnQgPyBuZXcgQWJzdHJhY3RUZXh0Q29tcG9uZW50V3JhcHBlcjxUPigkdW5rbm93bikgOiBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1RleHRCYXNlZENvbXBvbmVudDxUPihjb21wb25lbnQ6IHVua25vd24pOiBjb21wb25lbnQgaXMgVGV4dEJhc2VkQ29tcG9uZW50PFQ+IHtcbiAgLy8gYGluYCBiZWZvcmUgZWFjaCByZWFkOiBhIHN0cmljdC1wcm94eSB0ZXN0IGRvdWJsZSB0aHJvd3Mgb24gcmVhZGluZyBhIG1lbWJlciBpdCBkb2VzIG5vdCBoYXZlLlxuICBpZiAodHlwZW9mIGNvbXBvbmVudCAhPT0gJ29iamVjdCcgfHwgY29tcG9uZW50ID09PSBudWxsIHx8ICEoJ3NldFBsYWNlaG9sZGVyVmFsdWUnIGluIGNvbXBvbmVudCkgfHwgISgnaXNFbXB0eScgaW4gY29tcG9uZW50KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHRleHRCYXNlZENvbXBvbmVudCA9IGNvbXBvbmVudCBhcyBQYXJ0aWFsPFRleHRCYXNlZENvbXBvbmVudDxUPj47XG4gIHJldHVybiB0eXBlb2YgdGV4dEJhc2VkQ29tcG9uZW50LnNldFBsYWNlaG9sZGVyVmFsdWUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIHRleHRCYXNlZENvbXBvbmVudC5pc0VtcHR5ID09PSAnZnVuY3Rpb24nO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsNkJBQTZCO0FBNkJ0QyxNQUFNLDZCQUFpRTtBQUFBO0FBQUEsRUFFOUQsWUFBNkIsdUJBQW1EO0FBQW5EO0FBQUEsRUFBb0Q7QUFBQSxFQUFwRDtBQUFBLEVBRTdCLFFBQWM7QUFDbkIsU0FBSyxzQkFBc0IsU0FBUyxFQUFFO0FBQUEsRUFDeEM7QUFBQSxFQUVPLFVBQW1CO0FBQ3hCLFdBQU8sS0FBSyxzQkFBc0IsU0FBUyxNQUFNO0FBQUEsRUFDbkQ7QUFBQSxFQUVPLG9CQUFvQixrQkFBMkI7QUFDcEQsU0FBSyxzQkFBc0IsZUFBZSxnQkFBMEI7QUFDcEUsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQVNPLFNBQVMsMkJBQThCLFVBQWlEO0FBQzdGLE1BQUkscUJBQXFCLFFBQVEsR0FBRztBQUNsQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sb0JBQW9CLHdCQUF3QixJQUFJLDZCQUFnQyxRQUFRLElBQUk7QUFDckc7QUFFQSxTQUFTLHFCQUF3QixXQUF3RDtBQUV2RixNQUFJLE9BQU8sY0FBYyxZQUFZLGNBQWMsUUFBUSxFQUFFLHlCQUF5QixjQUFjLEVBQUUsYUFBYSxZQUFZO0FBQzdILFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxxQkFBcUI7QUFDM0IsU0FBTyxPQUFPLG1CQUFtQix3QkFBd0IsY0FBYyxPQUFPLG1CQUFtQixZQUFZO0FBQy9HOyIsIm5hbWVzIjpbXX0=
|
|
@@ -25,13 +25,27 @@ export declare function isValidationMessageHolder(value: unknown): value is Vali
|
|
|
25
25
|
*/
|
|
26
26
|
export declare const OBSIDIAN_UNSAFE_FILENAME_CHARS: RegExp;
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* The characters Obsidian refuses in a file name on Windows.
|
|
29
|
+
*
|
|
30
|
+
* Read from Obsidian 1.15.0's `app.js`, whose name check throws on this set from `app.vault.create`, a
|
|
31
|
+
* rename and Sync alike.
|
|
29
32
|
*/
|
|
30
33
|
export declare const WINDOWS_UNSAFE_PATH_CHARS: RegExp;
|
|
31
34
|
/**
|
|
32
|
-
*
|
|
35
|
+
* The characters Obsidian refuses in a file name on macOS, Linux and iOS, plus the NUL no file system stores.
|
|
36
|
+
*
|
|
37
|
+
* This is Obsidian's refusal set, not the file system's: macOS and Linux store `\` and `:`, but Obsidian
|
|
38
|
+
* refuses both, so a name holding either cannot be created through the vault there. Read from Obsidian
|
|
39
|
+
* 1.15.0's `app.js`.
|
|
33
40
|
*/
|
|
34
41
|
export declare const UNIX_UNSAFE_PATH_CHARS: RegExp;
|
|
42
|
+
/**
|
|
43
|
+
* The characters Obsidian refuses in a file name on Android, plus the NUL no file system stores.
|
|
44
|
+
*
|
|
45
|
+
* Obsidian adds `* ? < > "` to the {@link UNIX_UNSAFE_PATH_CHARS} set there, because Android's shared
|
|
46
|
+
* storage refuses them. Read from Obsidian 1.15.0's `app.js`.
|
|
47
|
+
*/
|
|
48
|
+
export declare const ANDROID_UNSAFE_PATH_CHARS: RegExp;
|
|
35
49
|
/**
|
|
36
50
|
* Validates a single file or folder name against every naming rule this module owns.
|
|
37
51
|
*
|
|
@@ -43,39 +57,53 @@ export declare const UNIX_UNSAFE_PATH_CHARS: RegExp;
|
|
|
43
57
|
* 4. It does not end with a dot or a space ({@link hasWindowsTrailingChars}).
|
|
44
58
|
* 5. It is not an MS-DOS device name ({@link isWindowsReservedName}), with or without an extension.
|
|
45
59
|
*
|
|
46
|
-
* Only rule 3 depends on
|
|
47
|
-
* and a name created on macOS or Linux that Windows refuses breaks the vault there. The character set
|
|
48
|
-
* platform
|
|
60
|
+
* Only rule 3 depends on the platform. Rules 2, 4 and 5 apply on every platform, because a vault is synced,
|
|
61
|
+
* and a name created on macOS or Linux that Windows refuses breaks the vault there. The character set follows
|
|
62
|
+
* the platform because it is Obsidian's own refusal set, which differs per platform: a name such as `a?b` is
|
|
63
|
+
* accepted on macOS, where Obsidian creates it.
|
|
49
64
|
*
|
|
50
65
|
* @param name - The name to validate. A single path segment, with or without its extension.
|
|
51
|
-
* @param isWindows - Whether to
|
|
66
|
+
* @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
|
|
67
|
+
* @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
|
|
68
|
+
* `Platform.isAndroidApp`.
|
|
52
69
|
* @returns A message describing the first broken rule, or an empty string if the name is valid.
|
|
53
70
|
*/
|
|
54
|
-
export declare function getFileNameValidationMessage(name: string, isWindows?: boolean): string;
|
|
71
|
+
export declare function getFileNameValidationMessage(name: string, isWindows?: boolean, isAndroid?: boolean): string;
|
|
55
72
|
/**
|
|
56
73
|
* Returns a regexp matching all unsafe characters in file names/paths.
|
|
57
74
|
*
|
|
58
|
-
* Includes both
|
|
75
|
+
* Includes both the platform's refused characters ({@link getOsUnsafePathCharsRegExp}) and the ones that break
|
|
76
|
+
* links ({@link OBSIDIAN_UNSAFE_FILENAME_CHARS}).
|
|
59
77
|
*
|
|
60
|
-
* @param isWindows - Whether to
|
|
78
|
+
* @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
|
|
79
|
+
* @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
|
|
80
|
+
* `Platform.isAndroidApp`.
|
|
61
81
|
* @returns A regexp matching all unsafe characters in file names/paths.
|
|
62
82
|
*/
|
|
63
|
-
export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
|
|
83
|
+
export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
|
|
64
84
|
/**
|
|
65
|
-
* Returns a regexp matching characters
|
|
85
|
+
* Returns a regexp matching the characters Obsidian refuses in a file name on the given platform.
|
|
86
|
+
*
|
|
87
|
+
* That is {@link WINDOWS_UNSAFE_PATH_CHARS} on Windows, {@link ANDROID_UNSAFE_PATH_CHARS} on Android and
|
|
88
|
+
* {@link UNIX_UNSAFE_PATH_CHARS} everywhere else. It is Obsidian's set rather than the file system's, so a
|
|
89
|
+
* name it accepts can be created through the vault.
|
|
66
90
|
*
|
|
67
|
-
* @param isWindows - Whether to
|
|
68
|
-
* @
|
|
91
|
+
* @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
|
|
92
|
+
* @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
|
|
93
|
+
* `Platform.isAndroidApp`.
|
|
94
|
+
* @returns A regexp matching the characters Obsidian refuses in a file name on the given platform.
|
|
69
95
|
*/
|
|
70
|
-
export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
|
|
96
|
+
export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
|
|
71
97
|
/**
|
|
72
98
|
* Validates every segment of a vault path with {@link getFileNameValidationMessage}.
|
|
73
99
|
*
|
|
74
100
|
* @param path - The vault-relative path to validate, with `/` as the separator.
|
|
75
|
-
* @param isWindows - Whether to
|
|
101
|
+
* @param isWindows - Whether to use the Windows character set. Defaults to `Platform.isWin`.
|
|
102
|
+
* @param isAndroid - Whether to use the Android character set when `isWindows` is false. Defaults to
|
|
103
|
+
* `Platform.isAndroidApp`.
|
|
76
104
|
* @returns The message for the first invalid segment, or an empty string if every segment is valid.
|
|
77
105
|
*/
|
|
78
|
-
export declare function getPathValidationMessage(path: string, isWindows?: boolean): string;
|
|
106
|
+
export declare function getPathValidationMessage(path: string, isWindows?: boolean, isAndroid?: boolean): string;
|
|
79
107
|
/**
|
|
80
108
|
* Checks whether a name ends with the dots or spaces Windows refuses.
|
|
81
109
|
*
|
|
@@ -42,18 +42,19 @@ function isValidationMessageHolder(value) {
|
|
|
42
42
|
}
|
|
43
43
|
const OBSIDIAN_UNSAFE_FILENAME_CHARS = /[#^[\]|]/g;
|
|
44
44
|
const WINDOWS_UNSAFE_PATH_CHARS = /[*\\/<>:|?"]/g;
|
|
45
|
-
const UNIX_UNSAFE_PATH_CHARS = /[\0
|
|
45
|
+
const UNIX_UNSAFE_PATH_CHARS = /[\0\\/:]/g;
|
|
46
|
+
const ANDROID_UNSAFE_PATH_CHARS = /[\0*\\/<>:?"]/g;
|
|
46
47
|
const WINDOWS_RESERVED_NAME_REG_EXP = /^(?:AUX|COM[1-9]|CON|LPT[1-9]|NUL|PRN)$/i;
|
|
47
48
|
const WINDOWS_TRAILING_CHARS_REG_EXP = /[ .]+$/;
|
|
48
49
|
const FIRST_NON_CONTROL_CHAR = " ";
|
|
49
|
-
function getFileNameValidationMessage(name, isWindows) {
|
|
50
|
+
function getFileNameValidationMessage(name, isWindows, isAndroid) {
|
|
50
51
|
if (name === "") {
|
|
51
52
|
return t(($) => $.obsidianLib.validation.emptyName);
|
|
52
53
|
}
|
|
53
54
|
if (hasControlChars(name)) {
|
|
54
55
|
return t(($) => $.obsidianLib.validation.controlCharacter, { name });
|
|
55
56
|
}
|
|
56
|
-
const unsafeChars = new Set(name.match(getOsAndObsidianUnsafePathCharsRegExp(isWindows)));
|
|
57
|
+
const unsafeChars = new Set(name.match(getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid)));
|
|
57
58
|
if (unsafeChars.size > 0) {
|
|
58
59
|
return t(($) => $.obsidianLib.validation.unsafeCharacters, { characters: [...unsafeChars].join(" "), name });
|
|
59
60
|
}
|
|
@@ -62,18 +63,22 @@ function getFileNameValidationMessage(name, isWindows) {
|
|
|
62
63
|
}
|
|
63
64
|
return isWindowsReservedName(name) ? t(($) => $.obsidianLib.validation.windowsReservedName, { name }) : "";
|
|
64
65
|
}
|
|
65
|
-
function getOsAndObsidianUnsafePathCharsRegExp(isWindows) {
|
|
66
|
+
function getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid) {
|
|
66
67
|
return oneOf([
|
|
67
|
-
getOsUnsafePathCharsRegExp(isWindows),
|
|
68
|
+
getOsUnsafePathCharsRegExp(isWindows, isAndroid),
|
|
68
69
|
OBSIDIAN_UNSAFE_FILENAME_CHARS
|
|
69
70
|
]);
|
|
70
71
|
}
|
|
71
|
-
function getOsUnsafePathCharsRegExp(isWindows) {
|
|
72
|
+
function getOsUnsafePathCharsRegExp(isWindows, isAndroid) {
|
|
72
73
|
isWindows ??= Platform.isWin;
|
|
73
|
-
|
|
74
|
+
if (isWindows) {
|
|
75
|
+
return WINDOWS_UNSAFE_PATH_CHARS;
|
|
76
|
+
}
|
|
77
|
+
isAndroid ??= Platform.isAndroidApp;
|
|
78
|
+
return isAndroid ? ANDROID_UNSAFE_PATH_CHARS : UNIX_UNSAFE_PATH_CHARS;
|
|
74
79
|
}
|
|
75
|
-
function getPathValidationMessage(path, isWindows) {
|
|
76
|
-
return path.split("/").map((segment) => getFileNameValidationMessage(segment, isWindows)).find(Boolean) ?? "";
|
|
80
|
+
function getPathValidationMessage(path, isWindows, isAndroid) {
|
|
81
|
+
return path.split("/").map((segment) => getFileNameValidationMessage(segment, isWindows, isAndroid)).find(Boolean) ?? "";
|
|
77
82
|
}
|
|
78
83
|
function hasWindowsTrailingChars(name) {
|
|
79
84
|
return WINDOWS_TRAILING_CHARS_REG_EXP.test(name);
|
|
@@ -94,6 +99,7 @@ function hasControlChars(name) {
|
|
|
94
99
|
return false;
|
|
95
100
|
}
|
|
96
101
|
export {
|
|
102
|
+
ANDROID_UNSAFE_PATH_CHARS,
|
|
97
103
|
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
98
104
|
UNIX_UNSAFE_PATH_CHARS,
|
|
99
105
|
WINDOWS_UNSAFE_PATH_CHARS,
|
|
@@ -106,4 +112,4 @@ export {
|
|
|
106
112
|
isWindowsReservedName,
|
|
107
113
|
trimWindowsTrailingChars
|
|
108
114
|
};
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBXaW5kb3dzLXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBVbml4LXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwL10vZztcblxuLyoqXG4gKiBUaGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHN0aWxsIHJlZnVzZXMgYXMgYSBmaWxlIG5hbWUsIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogYENPTklOJGAgLyBgQ09OT1VUJGAgYW5kIHRoZSBzdXBlcnNjcmlwdCBgQ09NwrJgIGZvcm1zIGFyZSBkZWxpYmVyYXRlbHkgYWJzZW50OiB0aGV5IGFyZSBhY2NlcHRlZCBieVxuICogZXZlcnkgV2luZG93cyB2ZXJzaW9uIHRoYXQgcnVucyBPYnNpZGlhbiwgYW5kIG1hdGNoaW5nIHRoZW0gd291bGQgcmVuYW1lIGZpbGVzIHRoYXQgd29yay5cbiAqXG4gKiBVbmxpa2UgdGhlIGV4cG9ydGVkIGNoYXJhY3RlciBzZXRzIGFib3ZlLCB0aGlzIGNhcnJpZXMgbm8gYGdgIGZsYWcsIHNvIGB0ZXN0YCBtYXkgYmUgY2FsbGVkIG9uIGl0XG4gKiByZXBlYXRlZGx5IOKAlCBhIGBnYC1mbGFnZ2VkIHJlZ2V4cCBhZHZhbmNlcyBgbGFzdEluZGV4YCBhbmQgYW5zd2VycyBkaWZmZXJlbnRseSBvbiBjb25zZWN1dGl2ZSBjYWxscy5cbiAqL1xuY29uc3QgV0lORE9XU19SRVNFUlZFRF9OQU1FX1JFR19FWFAgPSAvXig/OkFVWHxDT01bMS05XXxDT058TFBUWzEtOV18TlVMfFBSTikkL2k7XG5cbi8qKlxuICogVGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHN0cmlwcyBmcm9tIGEgbmFtZSBiZWZvcmUgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHdpdGggaXQuXG4gKi9cbmNvbnN0IFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCA9IC9bIC5dKyQvO1xuXG4vKipcbiAqIFRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIEMwIGNvbnRyb2wgcmFuZ2UsIFUrMDAwMCB0byBVKzAwMUYsIHdoaWNoIFdpbmRvd3MgcmVmdXNlcyBpbiBhIG5hbWUuXG4gKi9cbmNvbnN0IEZJUlNUX05PTl9DT05UUk9MX0NIQVIgPSAnICc7XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgc2luZ2xlIGZpbGUgb3IgZm9sZGVyIG5hbWUgYWdhaW5zdCBldmVyeSBuYW1pbmcgcnVsZSB0aGlzIG1vZHVsZSBvd25zLlxuICpcbiAqIFRoZSBydWxlcywgY2hlY2tlZCBpbiB0aGlzIG9yZGVyLCBhbmQgdGhlIGZpcnN0IG9uZSBicm9rZW4gbmFtZXMgdGhlIG1lc3NhZ2U6XG4gKlxuICogMS4gVGhlIG5hbWUgaXMgbm90IGVtcHR5LlxuICogMi4gSXQgaG9sZHMgbm8gY29udHJvbCBjaGFyYWN0ZXIgKFUrMDAwMCB0byBVKzAwMUYpLlxuICogMy4gSXQgaG9sZHMgbm9uZSBvZiB0aGUgY2hhcmFjdGVycyB7QGxpbmsgZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cH0gbWF0Y2hlcy5cbiAqIDQuIEl0IGRvZXMgbm90IGVuZCB3aXRoIGEgZG90IG9yIGEgc3BhY2UgKHtAbGluayBoYXNXaW5kb3dzVHJhaWxpbmdDaGFyc30pLlxuICogNS4gSXQgaXMgbm90IGFuIE1TLURPUyBkZXZpY2UgbmFtZSAoe0BsaW5rIGlzV2luZG93c1Jlc2VydmVkTmFtZX0pLCB3aXRoIG9yIHdpdGhvdXQgYW4gZXh0ZW5zaW9uLlxuICpcbiAqIE9ubHkgcnVsZSAzIGRlcGVuZHMgb24gYGlzV2luZG93c2AuIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgc3RheXNcbiAqIHBsYXRmb3JtLWRlcGVuZGVudCwgYmVjYXVzZSBhIG5hbWUgc3VjaCBhcyBgTWVldGluZzogbm90ZXNgIGlzIGNvbW1vbiBvbiBtYWNPUywgd2hlcmUgaXQgd29ya3MuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY2hhcmFjdGVyIHNldC4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBicm9rZW4gcnVsZSwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBuYW1lIGlzIHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZShuYW1lOiBzdHJpbmcsIGlzV2luZG93cz86IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAobmFtZSA9PT0gJycpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmVtcHR5TmFtZSk7XG4gIH1cblxuICBpZiAoaGFzQ29udHJvbENoYXJzKG5hbWUpKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi5jb250cm9sQ2hhcmFjdGVyLCB7IG5hbWUgfSk7XG4gIH1cblxuICBjb25zdCB1bnNhZmVDaGFycyA9IG5ldyBTZXQobmFtZS5tYXRjaChnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cykpKTtcbiAgaWYgKHVuc2FmZUNoYXJzLnNpemUgPiAwKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi51bnNhZmVDaGFyYWN0ZXJzLCB7IGNoYXJhY3RlcnM6IFsuLi51bnNhZmVDaGFyc10uam9pbignICcpLCBuYW1lIH0pO1xuICB9XG5cbiAgaWYgKGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWUpKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi50cmFpbGluZ0NoYXJhY3RlcnMsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIHJldHVybiBpc1dpbmRvd3NSZXNlcnZlZE5hbWUobmFtZSkgPyB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24ud2luZG93c1Jlc2VydmVkTmFtZSwgeyBuYW1lIH0pIDogJyc7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyBhbGwgdW5zYWZlIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcy9wYXRocy5cbiAqXG4gKiBJbmNsdWRlcyBib3RoIE9TLXNwZWNpZmljIHJlc3RyaWN0aW9ucyBhbmQgT2JzaWRpYW4tc3BlY2lmaWMgb25lcy5cbiAqXG4gKiBAcGFyYW0gaXNXaW5kb3dzIC0gV2hldGhlciB0byBpbmNsdWRlIFdpbmRvd3Mtc3BlY2lmaWMgcmVzdHJpY3Rpb25zLiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cyksXG4gICAgT0JTSURJQU5fVU5TQUZFX0ZJTEVOQU1FX0NIQVJTXG4gIF0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgY2hhcmFjdGVycyB0aGF0IGFyZSBub3Qgc2FmZSB0byB1c2UgaW4gZmlsZSBuYW1lcy9wYXRocyBhdCB0aGUgT1MgbGV2ZWwuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBXaW5kb3dzLXNwZWNpZmljIHJlc3RyaWN0aW9ucy4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgcmVnZXhwIG1hdGNoaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHNhZmUgdG8gdXNlIGluIGZpbGUgbmFtZXMvcGF0aHMgYXQgdGhlIE9TIGxldmVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzPzogYm9vbGVhbik6IFJlZ0V4cCB7XG4gIGlzV2luZG93cyA/Pz0gUGxhdGZvcm0uaXNXaW47XG4gIHJldHVybiBpc1dpbmRvd3MgPyBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTIDogVU5JWF9VTlNBRkVfUEFUSF9DSEFSUztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgZXZlcnkgc2VnbWVudCBvZiBhIHZhdWx0IHBhdGggd2l0aCB7QGxpbmsgZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZX0uXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCB0byB2YWxpZGF0ZSwgd2l0aCBgL2AgYXMgdGhlIHNlcGFyYXRvci5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY2hhcmFjdGVyIHNldC4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIGZvciB0aGUgZmlyc3QgaW52YWxpZCBzZWdtZW50LCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgZXZlcnkgc2VnbWVudCBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhWYWxpZGF0aW9uTWVzc2FnZShwYXRoOiBzdHJpbmcsIGlzV2luZG93cz86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5zcGxpdCgnLycpLm1hcCgoc2VnbWVudCkgPT4gZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZShzZWdtZW50LCBpc1dpbmRvd3MpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGFBQWE7QUFDdEIsU0FBUyxnQkFBZ0I7QUFFekIsU0FBUyxTQUFTO0FBa0JYLFNBQVMsMEJBQTBCLE9BQWtEO0FBQzFGLFNBQVEsTUFBMkMsc0JBQXNCO0FBQzNFO0FBS08sTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSw0QkFBNEI7QUFLbEMsTUFBTSx5QkFBeUI7QUFXdEMsTUFBTSxnQ0FBZ0M7QUFLdEMsTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSx5QkFBeUI7QUFxQnhCLFNBQVMsNkJBQTZCLE1BQWMsV0FBNkI7QUFDdEYsTUFBSSxTQUFTLElBQUk7QUFDZixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLFNBQVM7QUFBQSxFQUNwRDtBQUVBLE1BQUksZ0JBQWdCLElBQUksR0FBRztBQUN6QixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLGtCQUFrQixFQUFFLEtBQUssQ0FBQztBQUFBLEVBQ3JFO0FBRUEsUUFBTSxjQUFjLElBQUksSUFBSSxLQUFLLE1BQU0sc0NBQXNDLFNBQVMsQ0FBQyxDQUFDO0FBQ3hGLE1BQUksWUFBWSxPQUFPLEdBQUc7QUFDeEIsV0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDN0c7QUFFQSxNQUFJLHdCQUF3QixJQUFJLEdBQUc7QUFDakMsV0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxvQkFBb0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUN2RTtBQUVBLFNBQU8sc0JBQXNCLElBQUksSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSTtBQUMxRztBQVVPLFNBQVMsc0NBQXNDLFdBQTZCO0FBQ2pGLFNBQU8sTUFBTTtBQUFBLElBQ1gsMkJBQTJCLFNBQVM7QUFBQSxJQUNwQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUywyQkFBMkIsV0FBNkI7QUFDdEUsZ0JBQWMsU0FBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBU08sU0FBUyx5QkFBeUIsTUFBYyxXQUE2QjtBQUNsRixTQUFPLEtBQUssTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksNkJBQTZCLFNBQVMsU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLEtBQUs7QUFDN0c7QUFXTyxTQUFTLHdCQUF3QixNQUF1QjtBQUM3RCxTQUFPLCtCQUErQixLQUFLLElBQUk7QUFDakQ7QUFrQk8sU0FBUyxzQkFBc0IsTUFBdUI7QUFDM0QsUUFBTSxjQUFjLHlCQUF5QixJQUFJO0FBQ2pELFNBQU8sOEJBQThCLEtBQUssU0FBUyxhQUFhLFFBQVEsV0FBVyxDQUFDLENBQUM7QUFDdkY7QUFXTyxTQUFTLHlCQUF5QixNQUFzQjtBQUM3RCxTQUFPLEtBQUssUUFBUSxnQ0FBZ0MsRUFBRTtBQUN4RDtBQVFBLFNBQVMsZ0JBQWdCLE1BQXVCO0FBQzlDLGFBQVcsUUFBUSxNQUFNO0FBQ3ZCLFFBQUksT0FBTyx3QkFBd0I7QUFDakMsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsIm5hbWVzIjpbXX0=
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIFdpbmRvd3MuXG4gKlxuICogUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLCB3aG9zZSBuYW1lIGNoZWNrIHRocm93cyBvbiB0aGlzIHNldCBmcm9tIGBhcHAudmF1bHQuY3JlYXRlYCwgYVxuICogcmVuYW1lIGFuZCBTeW5jIGFsaWtlLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBUaGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIG1hY09TLCBMaW51eCBhbmQgaU9TLCBwbHVzIHRoZSBOVUwgbm8gZmlsZSBzeXN0ZW0gc3RvcmVzLlxuICpcbiAqIFRoaXMgaXMgT2JzaWRpYW4ncyByZWZ1c2FsIHNldCwgbm90IHRoZSBmaWxlIHN5c3RlbSdzOiBtYWNPUyBhbmQgTGludXggc3RvcmUgYFxcYCBhbmQgYDpgLCBidXQgT2JzaWRpYW5cbiAqIHJlZnVzZXMgYm90aCwgc28gYSBuYW1lIGhvbGRpbmcgZWl0aGVyIGNhbm5vdCBiZSBjcmVhdGVkIHRocm91Z2ggdGhlIHZhdWx0IHRoZXJlLiBSZWFkIGZyb20gT2JzaWRpYW5cbiAqIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwXFxcXC86XS9nO1xuXG4vKipcbiAqIFRoZSBjaGFyYWN0ZXJzIE9ic2lkaWFuIHJlZnVzZXMgaW4gYSBmaWxlIG5hbWUgb24gQW5kcm9pZCwgcGx1cyB0aGUgTlVMIG5vIGZpbGUgc3lzdGVtIHN0b3Jlcy5cbiAqXG4gKiBPYnNpZGlhbiBhZGRzIGAqID8gPCA+IFwiYCB0byB0aGUge0BsaW5rIFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlN9IHNldCB0aGVyZSwgYmVjYXVzZSBBbmRyb2lkJ3Mgc2hhcmVkXG4gKiBzdG9yYWdlIHJlZnVzZXMgdGhlbS4gUmVhZCBmcm9tIE9ic2lkaWFuIDEuMTUuMCdzIGBhcHAuanNgLlxuICovXG5leHBvcnQgY29uc3QgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwKlxcXFwvPD46P1wiXS9nO1xuXG4vKipcbiAqIFRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3Mgc3RpbGwgcmVmdXNlcyBhcyBhIGZpbGUgbmFtZSwgd2l0aCBvciB3aXRob3V0IGFuIGV4dGVuc2lvbi5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBhYnNlbnQ6IHRoZXkgYXJlIGFjY2VwdGVkIGJ5XG4gKiBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIFVubGlrZSB0aGUgZXhwb3J0ZWQgY2hhcmFjdGVyIHNldHMgYWJvdmUsIHRoaXMgY2FycmllcyBubyBgZ2AgZmxhZywgc28gYHRlc3RgIG1heSBiZSBjYWxsZWQgb24gaXRcbiAqIHJlcGVhdGVkbHkg4oCUIGEgYGdgLWZsYWdnZWQgcmVnZXhwIGFkdmFuY2VzIGBsYXN0SW5kZXhgIGFuZCBhbnN3ZXJzIGRpZmZlcmVudGx5IG9uIGNvbnNlY3V0aXZlIGNhbGxzLlxuICovXG5jb25zdCBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUCA9IC9eKD86QVVYfENPTVsxLTldfENPTnxMUFRbMS05XXxOVUx8UFJOKSQvaTtcblxuLyoqXG4gKiBUaGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3Mgc3RyaXBzIGZyb20gYSBuYW1lIGJlZm9yZSBpdCBkb2VzIGFueXRoaW5nIGVsc2Ugd2l0aCBpdC5cbiAqL1xuY29uc3QgV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQID0gL1sgLl0rJC87XG5cbi8qKlxuICogVGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgQzAgY29udHJvbCByYW5nZSwgVSswMDAwIHRvIFUrMDAxRiwgd2hpY2ggV2luZG93cyByZWZ1c2VzIGluIGEgbmFtZS5cbiAqL1xuY29uc3QgRklSU1RfTk9OX0NPTlRST0xfQ0hBUiA9ICcgJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgYSBzaW5nbGUgZmlsZSBvciBmb2xkZXIgbmFtZSBhZ2FpbnN0IGV2ZXJ5IG5hbWluZyBydWxlIHRoaXMgbW9kdWxlIG93bnMuXG4gKlxuICogVGhlIHJ1bGVzLCBjaGVja2VkIGluIHRoaXMgb3JkZXIsIGFuZCB0aGUgZmlyc3Qgb25lIGJyb2tlbiBuYW1lcyB0aGUgbWVzc2FnZTpcbiAqXG4gKiAxLiBUaGUgbmFtZSBpcyBub3QgZW1wdHkuXG4gKiAyLiBJdCBob2xkcyBubyBjb250cm9sIGNoYXJhY3RlciAoVSswMDAwIHRvIFUrMDAxRikuXG4gKiAzLiBJdCBob2xkcyBub25lIG9mIHRoZSBjaGFyYWN0ZXJzIHtAbGluayBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwfSBtYXRjaGVzLlxuICogNC4gSXQgZG9lcyBub3QgZW5kIHdpdGggYSBkb3Qgb3IgYSBzcGFjZSAoe0BsaW5rIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzfSkuXG4gKiA1LiBJdCBpcyBub3QgYW4gTVMtRE9TIGRldmljZSBuYW1lICh7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSksIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogT25seSBydWxlIDMgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm0uIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgZm9sbG93c1xuICogdGhlIHBsYXRmb3JtIGJlY2F1c2UgaXQgaXMgT2JzaWRpYW4ncyBvd24gcmVmdXNhbCBzZXQsIHdoaWNoIGRpZmZlcnMgcGVyIHBsYXRmb3JtOiBhIG5hbWUgc3VjaCBhcyBgYT9iYCBpc1xuICogYWNjZXB0ZWQgb24gbWFjT1MsIHdoZXJlIE9ic2lkaWFuIGNyZWF0ZXMgaXQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSBtZXNzYWdlIGRlc2NyaWJpbmcgdGhlIGZpcnN0IGJyb2tlbiBydWxlLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIG5hbWUgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlKG5hbWU6IHN0cmluZywgaXNXaW5kb3dzPzogYm9vbGVhbiwgaXNBbmRyb2lkPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChuYW1lID09PSAnJykge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24uZW1wdHlOYW1lKTtcbiAgfVxuXG4gIGlmIChoYXNDb250cm9sQ2hhcnMobmFtZSkpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmNvbnRyb2xDaGFyYWN0ZXIsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIGNvbnN0IHVuc2FmZUNoYXJzID0gbmV3IFNldChuYW1lLm1hdGNoKGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzLCBpc0FuZHJvaWQpKSk7XG4gIGlmICh1bnNhZmVDaGFycy5zaXplID4gMCkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udW5zYWZlQ2hhcmFjdGVycywgeyBjaGFyYWN0ZXJzOiBbLi4udW5zYWZlQ2hhcnNdLmpvaW4oJyAnKSwgbmFtZSB9KTtcbiAgfVxuXG4gIGlmIChoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKSkge1xuICAgIHJldHVybiB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24udHJhaWxpbmdDaGFyYWN0ZXJzLCB7IG5hbWUgfSk7XG4gIH1cblxuICByZXR1cm4gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWUpID8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLndpbmRvd3NSZXNlcnZlZE5hbWUsIHsgbmFtZSB9KSA6ICcnO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCB0aGUgcGxhdGZvcm0ncyByZWZ1c2VkIGNoYXJhY3RlcnMgKHtAbGluayBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cH0pIGFuZCB0aGUgb25lcyB0aGF0IGJyZWFrXG4gKiBsaW5rcyAoe0BsaW5rIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU30pLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIHVzZSB0aGUgV2luZG93cyBjaGFyYWN0ZXIgc2V0LiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHBhcmFtIGlzQW5kcm9pZCAtIFdoZXRoZXIgdG8gdXNlIHRoZSBBbmRyb2lkIGNoYXJhY3RlciBzZXQgd2hlbiBgaXNXaW5kb3dzYCBpcyBmYWxzZS4gRGVmYXVsdHMgdG9cbiAqIGBQbGF0Zm9ybS5pc0FuZHJvaWRBcHBgLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cywgaXNBbmRyb2lkKSxcbiAgICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlNcbiAgXSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqXG4gKiBUaGF0IGlzIHtAbGluayBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTfSBvbiBXaW5kb3dzLCB7QGxpbmsgQU5EUk9JRF9VTlNBRkVfUEFUSF9DSEFSU30gb24gQW5kcm9pZCBhbmRcbiAqIHtAbGluayBVTklYX1VOU0FGRV9QQVRIX0NIQVJTfSBldmVyeXdoZXJlIGVsc2UuIEl0IGlzIE9ic2lkaWFuJ3Mgc2V0IHJhdGhlciB0aGFuIHRoZSBmaWxlIHN5c3RlbSdzLCBzbyBhXG4gKiBuYW1lIGl0IGFjY2VwdHMgY2FuIGJlIGNyZWF0ZWQgdGhyb3VnaCB0aGUgdmF1bHQuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyB0aGUgY2hhcmFjdGVycyBPYnNpZGlhbiByZWZ1c2VzIGluIGEgZmlsZSBuYW1lIG9uIHRoZSBnaXZlbiBwbGF0Zm9ybS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4sIGlzQW5kcm9pZD86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICBpZiAoaXNXaW5kb3dzKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfVU5TQUZFX1BBVEhfQ0hBUlM7XG4gIH1cblxuICBpc0FuZHJvaWQgPz89IFBsYXRmb3JtLmlzQW5kcm9pZEFwcDtcbiAgcmV0dXJuIGlzQW5kcm9pZCA/IEFORFJPSURfVU5TQUZFX1BBVEhfQ0hBUlMgOiBVTklYX1VOU0FGRV9QQVRIX0NIQVJTO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBldmVyeSBzZWdtZW50IG9mIGEgdmF1bHQgcGF0aCB3aXRoIHtAbGluayBnZXRGaWxlTmFtZVZhbGlkYXRpb25NZXNzYWdlfS5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSB2YXVsdC1yZWxhdGl2ZSBwYXRoIHRvIHZhbGlkYXRlLCB3aXRoIGAvYCBhcyB0aGUgc2VwYXJhdG9yLlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gdXNlIHRoZSBXaW5kb3dzIGNoYXJhY3RlciBzZXQuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcGFyYW0gaXNBbmRyb2lkIC0gV2hldGhlciB0byB1c2UgdGhlIEFuZHJvaWQgY2hhcmFjdGVyIHNldCB3aGVuIGBpc1dpbmRvd3NgIGlzIGZhbHNlLiBEZWZhdWx0cyB0b1xuICogYFBsYXRmb3JtLmlzQW5kcm9pZEFwcGAuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSBmb3IgdGhlIGZpcnN0IGludmFsaWQgc2VnbWVudCwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIGV2ZXJ5IHNlZ21lbnQgaXMgdmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQYXRoVmFsaWRhdGlvbk1lc3NhZ2UocGF0aDogc3RyaW5nLCBpc1dpbmRvd3M/OiBib29sZWFuLCBpc0FuZHJvaWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5tYXAoKHNlZ21lbnQpID0+IGdldEZpbGVOYW1lVmFsaWRhdGlvbk1lc3NhZ2Uoc2VnbWVudCwgaXNXaW5kb3dzLCBpc0FuZHJvaWQpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGFBQWE7QUFDdEIsU0FBUyxnQkFBZ0I7QUFFekIsU0FBUyxTQUFTO0FBa0JYLFNBQVMsMEJBQTBCLE9BQWtEO0FBQzFGLFNBQVEsTUFBMkMsc0JBQXNCO0FBQzNFO0FBS08sTUFBTSxpQ0FBaUM7QUFRdkMsTUFBTSw0QkFBNEI7QUFTbEMsTUFBTSx5QkFBeUI7QUFRL0IsTUFBTSw0QkFBNEI7QUFXekMsTUFBTSxnQ0FBZ0M7QUFLdEMsTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSx5QkFBeUI7QUF3QnhCLFNBQVMsNkJBQTZCLE1BQWMsV0FBcUIsV0FBNkI7QUFDM0csTUFBSSxTQUFTLElBQUk7QUFDZixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLFNBQVM7QUFBQSxFQUNwRDtBQUVBLE1BQUksZ0JBQWdCLElBQUksR0FBRztBQUN6QixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLGtCQUFrQixFQUFFLEtBQUssQ0FBQztBQUFBLEVBQ3JFO0FBRUEsUUFBTSxjQUFjLElBQUksSUFBSSxLQUFLLE1BQU0sc0NBQXNDLFdBQVcsU0FBUyxDQUFDLENBQUM7QUFDbkcsTUFBSSxZQUFZLE9BQU8sR0FBRztBQUN4QixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxHQUFHLFdBQVcsRUFBRSxLQUFLLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFBQSxFQUM3RztBQUVBLE1BQUksd0JBQXdCLElBQUksR0FBRztBQUNqQyxXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLG9CQUFvQixFQUFFLEtBQUssQ0FBQztBQUFBLEVBQ3ZFO0FBRUEsU0FBTyxzQkFBc0IsSUFBSSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxJQUFJO0FBQzFHO0FBYU8sU0FBUyxzQ0FBc0MsV0FBcUIsV0FBNkI7QUFDdEcsU0FBTyxNQUFNO0FBQUEsSUFDWCwyQkFBMkIsV0FBVyxTQUFTO0FBQUEsSUFDL0M7QUFBQSxFQUNGLENBQUM7QUFDSDtBQWNPLFNBQVMsMkJBQTJCLFdBQXFCLFdBQTZCO0FBQzNGLGdCQUFjLFNBQVM7QUFDdkIsTUFBSSxXQUFXO0FBQ2IsV0FBTztBQUFBLEVBQ1Q7QUFFQSxnQkFBYyxTQUFTO0FBQ3ZCLFNBQU8sWUFBWSw0QkFBNEI7QUFDakQ7QUFXTyxTQUFTLHlCQUF5QixNQUFjLFdBQXFCLFdBQTZCO0FBQ3ZHLFNBQU8sS0FBSyxNQUFNLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWSw2QkFBNkIsU0FBUyxXQUFXLFNBQVMsQ0FBQyxFQUFFLEtBQUssT0FBTyxLQUFLO0FBQ3hIO0FBV08sU0FBUyx3QkFBd0IsTUFBdUI7QUFDN0QsU0FBTywrQkFBK0IsS0FBSyxJQUFJO0FBQ2pEO0FBa0JPLFNBQVMsc0JBQXNCLE1BQXVCO0FBQzNELFFBQU0sY0FBYyx5QkFBeUIsSUFBSTtBQUNqRCxTQUFPLDhCQUE4QixLQUFLLFNBQVMsYUFBYSxRQUFRLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZGO0FBV08sU0FBUyx5QkFBeUIsTUFBc0I7QUFDN0QsU0FBTyxLQUFLLFFBQVEsZ0NBQWdDLEVBQUU7QUFDeEQ7QUFRQSxTQUFTLGdCQUFnQixNQUF1QjtBQUM5QyxhQUFXLFFBQVEsTUFBTTtBQUN2QixRQUFJLE9BQU8sd0JBQXdCO0FBQ2pDLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDsiLCJuYW1lcyI6W119
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnaoumov/obsidian-lib",
|
|
3
|
-
"version": "6.1
|
|
3
|
+
"version": "6.2.1",
|
|
4
4
|
"description": "Runtime library for Obsidian plugin development: plugin base classes, components, settings, modals, vault and metadata helpers.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"obsidian",
|
|
@@ -334,7 +334,7 @@
|
|
|
334
334
|
"dependencies": {
|
|
335
335
|
"@lezer/common": "1.5.2",
|
|
336
336
|
"@mnaoumov/obsidian-dataview": "^1.0.0",
|
|
337
|
-
"@mnaoumov/typescript-lib": "^
|
|
337
|
+
"@mnaoumov/typescript-lib": "^2.0.0",
|
|
338
338
|
"@standard-schema/spec": "^1.1.0",
|
|
339
339
|
"@types/react": "^19.3.0",
|
|
340
340
|
"compare-versions": "^6.1.1",
|