@mnaoumov/obsidian-lib 6.0.4 → 6.2.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/dist/lib/cjs/__merged.cjs +12 -2
- package/dist/lib/cjs/__merged.d.cts +3 -3
- package/dist/lib/cjs/debug.cjs +11 -3
- package/dist/lib/cjs/debug.d.cts +8 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/i18n/locales/en.cjs +8 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +7 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +7 -0
- package/dist/lib/cjs/plugin/plugin-context.cjs +3 -2
- package/dist/lib/cjs/validation.cjs +46 -6
- package/dist/lib/cjs/validation.d.cts +65 -9
- package/dist/lib/esm/__merged.d.mts +3 -3
- package/dist/lib/esm/__merged.mjs +16 -4
- package/dist/lib/esm/debug.d.mts +8 -0
- package/dist/lib/esm/debug.mjs +14 -3
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +7 -0
- package/dist/lib/esm/i18n/locales/en.mjs +8 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +7 -0
- package/dist/lib/esm/plugin/plugin-context.mjs +3 -5
- package/dist/lib/esm/validation.d.mts +65 -9
- package/dist/lib/esm/validation.mjs +43 -6
- package/package.json +2 -2
|
@@ -25,29 +25,85 @@ 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;
|
|
49
|
+
/**
|
|
50
|
+
* Validates a single file or folder name against every naming rule this module owns.
|
|
51
|
+
*
|
|
52
|
+
* The rules, checked in this order, and the first one broken names the message:
|
|
53
|
+
*
|
|
54
|
+
* 1. The name is not empty.
|
|
55
|
+
* 2. It holds no control character (U+0000 to U+001F).
|
|
56
|
+
* 3. It holds none of the characters {@link getOsAndObsidianUnsafePathCharsRegExp} matches.
|
|
57
|
+
* 4. It does not end with a dot or a space ({@link hasWindowsTrailingChars}).
|
|
58
|
+
* 5. It is not an MS-DOS device name ({@link isWindowsReservedName}), with or without an extension.
|
|
59
|
+
*
|
|
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.
|
|
64
|
+
*
|
|
65
|
+
* @param name - The name to validate. A single path segment, with or without its extension.
|
|
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`.
|
|
69
|
+
* @returns A message describing the first broken rule, or an empty string if the name is valid.
|
|
70
|
+
*/
|
|
71
|
+
export declare function getFileNameValidationMessage(name: string, isWindows?: boolean, isAndroid?: boolean): string;
|
|
35
72
|
/**
|
|
36
73
|
* Returns a regexp matching all unsafe characters in file names/paths.
|
|
37
74
|
*
|
|
38
|
-
* Includes both
|
|
75
|
+
* Includes both the platform's refused characters ({@link getOsUnsafePathCharsRegExp}) and the ones that break
|
|
76
|
+
* links ({@link OBSIDIAN_UNSAFE_FILENAME_CHARS}).
|
|
39
77
|
*
|
|
40
|
-
* @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`.
|
|
41
81
|
* @returns A regexp matching all unsafe characters in file names/paths.
|
|
42
82
|
*/
|
|
43
|
-
export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
|
|
83
|
+
export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
|
|
84
|
+
/**
|
|
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.
|
|
90
|
+
*
|
|
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.
|
|
95
|
+
*/
|
|
96
|
+
export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean, isAndroid?: boolean): RegExp;
|
|
44
97
|
/**
|
|
45
|
-
*
|
|
98
|
+
* Validates every segment of a vault path with {@link getFileNameValidationMessage}.
|
|
46
99
|
*
|
|
47
|
-
* @param
|
|
48
|
-
* @
|
|
100
|
+
* @param path - The vault-relative path to validate, with `/` as the separator.
|
|
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`.
|
|
104
|
+
* @returns The message for the first invalid segment, or an empty string if every segment is valid.
|
|
49
105
|
*/
|
|
50
|
-
export declare function
|
|
106
|
+
export declare function getPathValidationMessage(path: string, isWindows?: boolean, isAndroid?: boolean): string;
|
|
51
107
|
/**
|
|
52
108
|
* Checks whether a name ends with the dots or spaces Windows refuses.
|
|
53
109
|
*
|
|
@@ -36,23 +36,49 @@ import {
|
|
|
36
36
|
} from "@mnaoumov/typescript-lib/path";
|
|
37
37
|
import { oneOf } from "@mnaoumov/typescript-lib/reg-exp";
|
|
38
38
|
import { Platform } from "obsidian";
|
|
39
|
+
import { t } from "./i18n/i18n.mjs";
|
|
39
40
|
function isValidationMessageHolder(value) {
|
|
40
41
|
return value.validationMessage !== void 0;
|
|
41
42
|
}
|
|
42
43
|
const OBSIDIAN_UNSAFE_FILENAME_CHARS = /[#^[\]|]/g;
|
|
43
44
|
const WINDOWS_UNSAFE_PATH_CHARS = /[*\\/<>:|?"]/g;
|
|
44
|
-
const UNIX_UNSAFE_PATH_CHARS = /[\0
|
|
45
|
+
const UNIX_UNSAFE_PATH_CHARS = /[\0\\/:]/g;
|
|
46
|
+
const ANDROID_UNSAFE_PATH_CHARS = /[\0*\\/<>:?"]/g;
|
|
45
47
|
const WINDOWS_RESERVED_NAME_REG_EXP = /^(?:AUX|COM[1-9]|CON|LPT[1-9]|NUL|PRN)$/i;
|
|
46
48
|
const WINDOWS_TRAILING_CHARS_REG_EXP = /[ .]+$/;
|
|
47
|
-
|
|
49
|
+
const FIRST_NON_CONTROL_CHAR = " ";
|
|
50
|
+
function getFileNameValidationMessage(name, isWindows, isAndroid) {
|
|
51
|
+
if (name === "") {
|
|
52
|
+
return t(($) => $.obsidianLib.validation.emptyName);
|
|
53
|
+
}
|
|
54
|
+
if (hasControlChars(name)) {
|
|
55
|
+
return t(($) => $.obsidianLib.validation.controlCharacter, { name });
|
|
56
|
+
}
|
|
57
|
+
const unsafeChars = new Set(name.match(getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid)));
|
|
58
|
+
if (unsafeChars.size > 0) {
|
|
59
|
+
return t(($) => $.obsidianLib.validation.unsafeCharacters, { characters: [...unsafeChars].join(" "), name });
|
|
60
|
+
}
|
|
61
|
+
if (hasWindowsTrailingChars(name)) {
|
|
62
|
+
return t(($) => $.obsidianLib.validation.trailingCharacters, { name });
|
|
63
|
+
}
|
|
64
|
+
return isWindowsReservedName(name) ? t(($) => $.obsidianLib.validation.windowsReservedName, { name }) : "";
|
|
65
|
+
}
|
|
66
|
+
function getOsAndObsidianUnsafePathCharsRegExp(isWindows, isAndroid) {
|
|
48
67
|
return oneOf([
|
|
49
|
-
getOsUnsafePathCharsRegExp(isWindows),
|
|
68
|
+
getOsUnsafePathCharsRegExp(isWindows, isAndroid),
|
|
50
69
|
OBSIDIAN_UNSAFE_FILENAME_CHARS
|
|
51
70
|
]);
|
|
52
71
|
}
|
|
53
|
-
function getOsUnsafePathCharsRegExp(isWindows) {
|
|
72
|
+
function getOsUnsafePathCharsRegExp(isWindows, isAndroid) {
|
|
54
73
|
isWindows ??= Platform.isWin;
|
|
55
|
-
|
|
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;
|
|
79
|
+
}
|
|
80
|
+
function getPathValidationMessage(path, isWindows, isAndroid) {
|
|
81
|
+
return path.split("/").map((segment) => getFileNameValidationMessage(segment, isWindows, isAndroid)).find(Boolean) ?? "";
|
|
56
82
|
}
|
|
57
83
|
function hasWindowsTrailingChars(name) {
|
|
58
84
|
return WINDOWS_TRAILING_CHARS_REG_EXP.test(name);
|
|
@@ -64,15 +90,26 @@ function isWindowsReservedName(name) {
|
|
|
64
90
|
function trimWindowsTrailingChars(name) {
|
|
65
91
|
return name.replace(WINDOWS_TRAILING_CHARS_REG_EXP, "");
|
|
66
92
|
}
|
|
93
|
+
function hasControlChars(name) {
|
|
94
|
+
for (const char of name) {
|
|
95
|
+
if (char < FIRST_NON_CONTROL_CHAR) {
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
67
101
|
export {
|
|
102
|
+
ANDROID_UNSAFE_PATH_CHARS,
|
|
68
103
|
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
69
104
|
UNIX_UNSAFE_PATH_CHARS,
|
|
70
105
|
WINDOWS_UNSAFE_PATH_CHARS,
|
|
106
|
+
getFileNameValidationMessage,
|
|
71
107
|
getOsAndObsidianUnsafePathCharsRegExp,
|
|
72
108
|
getOsUnsafePathCharsRegExp,
|
|
109
|
+
getPathValidationMessage,
|
|
73
110
|
hasWindowsTrailingChars,
|
|
74
111
|
isValidationMessageHolder,
|
|
75
112
|
isWindowsReservedName,
|
|
76
113
|
trimWindowsTrailingChars
|
|
77
114
|
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBXaW5kb3dzLXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBVbml4LXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwL10vZztcblxuLyoqXG4gKiBUaGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHN0aWxsIHJlZnVzZXMgYXMgYSBmaWxlIG5hbWUsIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogYENPTklOJGAgLyBgQ09OT1VUJGAgYW5kIHRoZSBzdXBlcnNjcmlwdCBgQ09NwrJgIGZvcm1zIGFyZSBkZWxpYmVyYXRlbHkgYWJzZW50OiB0aGV5IGFyZSBhY2NlcHRlZCBieVxuICogZXZlcnkgV2luZG93cyB2ZXJzaW9uIHRoYXQgcnVucyBPYnNpZGlhbiwgYW5kIG1hdGNoaW5nIHRoZW0gd291bGQgcmVuYW1lIGZpbGVzIHRoYXQgd29yay5cbiAqXG4gKiBVbmxpa2UgdGhlIGV4cG9ydGVkIGNoYXJhY3RlciBzZXRzIGFib3ZlLCB0aGlzIGNhcnJpZXMgbm8gYGdgIGZsYWcsIHNvIGB0ZXN0YCBtYXkgYmUgY2FsbGVkIG9uIGl0XG4gKiByZXBlYXRlZGx5IOKAlCBhIGBnYC1mbGFnZ2VkIHJlZ2V4cCBhZHZhbmNlcyBgbGFzdEluZGV4YCBhbmQgYW5zd2VycyBkaWZmZXJlbnRseSBvbiBjb25zZWN1dGl2ZSBjYWxscy5cbiAqL1xuY29uc3QgV0lORE9XU19SRVNFUlZFRF9OQU1FX1JFR19FWFAgPSAvXig/OkFVWHxDT01bMS05XXxDT058TFBUWzEtOV18TlVMfFBSTikkL2k7XG5cbi8qKlxuICogVGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHN0cmlwcyBmcm9tIGEgbmFtZSBiZWZvcmUgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHdpdGggaXQuXG4gKi9cbmNvbnN0IFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCA9IC9bIC5dKyQvO1xuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCBPUy1zcGVjaWZpYyByZXN0cmljdGlvbnMgYW5kIE9ic2lkaWFuLXNwZWNpZmljIG9uZXMuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBXaW5kb3dzLXNwZWNpZmljIHJlc3RyaWN0aW9ucy4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgcmVnZXhwIG1hdGNoaW5nIGFsbCB1bnNhZmUgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzL3BhdGhzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3M/OiBib29sZWFuKTogUmVnRXhwIHtcbiAgcmV0dXJuIG9uZU9mKFtcbiAgICBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3MpLFxuICAgIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU1xuICBdKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVnZXhwIG1hdGNoaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHNhZmUgdG8gdXNlIGluIGZpbGUgbmFtZXMvcGF0aHMgYXQgdGhlIE9TIGxldmVsLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgV2luZG93cy1zcGVjaWZpYyByZXN0cmljdGlvbnMuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzL3BhdGhzIGF0IHRoZSBPUyBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICByZXR1cm4gaXNXaW5kb3dzID8gV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA6IFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlM7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGVuZHMgd2l0aCB0aGUgZG90cyBvciBzcGFjZXMgV2luZG93cyByZWZ1c2VzLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgZW5kcyB3aXRoIGEgZG90IG9yIGEgc3BhY2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAudGVzdChuYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaXMgb25lIG9mIHRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBUd28gc3RlcHMgdGhlIGNhbGxlciB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBrbm93IGFib3V0IGhhcHBlbiBoZXJlOiB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMgYXJlXG4gKiB0cmltbWVkIEJFRk9SRSB0aGUgdGVzdCwgYmVjYXVzZSBXaW5kb3dzIHN0cmlwcyB0aGVtIGJlZm9yZSBkZWNpZGluZyBhbmQgYENPTiBgIGlzIHRoZXJlZm9yZSBhc1xuICogcmVzZXJ2ZWQgYXMgYENPTmA7IGFuZCB0aGUgZXh0ZW5zaW9uIGlzIGRyb3BwZWQsIGJlY2F1c2UgYENPTi5tZGAgaXMgcmVzZXJ2ZWQgdG9vLlxuICpcbiAqIGBDT05JTiRgIC8gYENPTk9VVCRgIGFuZCB0aGUgc3VwZXJzY3JpcHQgYENPTcKyYCBmb3JtcyBhcmUgZGVsaWJlcmF0ZWx5IE5PVCByZXNlcnZlZDogdGhleSBhcmUgYWNjZXB0ZWRcbiAqIGJ5IGV2ZXJ5IFdpbmRvd3MgdmVyc2lvbiB0aGF0IHJ1bnMgT2JzaWRpYW4sIGFuZCBtYXRjaGluZyB0aGVtIHdvdWxkIHJlbmFtZSBmaWxlcyB0aGF0IHdvcmsuXG4gKlxuICogQW5zd2VycyBmb3IgV2luZG93cyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybSBpbiB1c2U6IGEgdmF1bHQgaXMgc3luY2VkLCBzbyB0aGUgcnVsZXMgdGhhdCBtYXR0ZXIgYXJlXG4gKiBub3QgbmVjZXNzYXJpbHkgdGhvc2Ugb2YgdGhlIG1hY2hpbmUgYXNraW5nLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gY2hlY2suIEEgc2luZ2xlIHBhdGggc2VnbWVudCwgd2l0aCBvciB3aXRob3V0IGl0cyBleHRlbnNpb24uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgaXMgcmVzZXJ2ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkTmFtZSA9IHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKTtcbiAgcmV0dXJuIFdJTkRPV1NfUkVTRVJWRURfTkFNRV9SRUdfRVhQLnRlc3QoYmFzZW5hbWUodHJpbW1lZE5hbWUsIGV4dG5hbWUodHJpbW1lZE5hbWUpKSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3MgcmVmdXNlcyBmcm9tIHRoZSBlbmQgb2YgYSBuYW1lLlxuICpcbiAqIFRyaW0gYmVmb3JlIHRlc3RpbmcgZm9yIGEgcmVzZXJ2ZWQgbmFtZSwgbmV2ZXIgYWZ0ZXI6IHRyaW1taW5nIGFmdGVyd2FyZHMgdHVybnMgYW4gYWNjZXB0ZWQgYENPTiBgIGludG9cbiAqIGEgcmVqZWN0ZWQgYENPTmAuIHtAbGluayBpc1dpbmRvd3NSZXNlcnZlZE5hbWV9IGFscmVhZHkgZG9lcyB0aGlzIGludGVybmFsbHkuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB0cmltLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgbmFtZSB3aXRob3V0IGl0cyB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMsIHdoaWNoIG1heSBiZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCwgJycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsZ0JBQWdCO0FBa0JsQixTQUFTLDBCQUEwQixPQUFrRDtBQUMxRixTQUFRLE1BQTJDLHNCQUFzQjtBQUMzRTtBQUtPLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0sNEJBQTRCO0FBS2xDLE1BQU0seUJBQXlCO0FBV3RDLE1BQU0sZ0NBQWdDO0FBS3RDLE1BQU0saUNBQWlDO0FBVWhDLFNBQVMsc0NBQXNDLFdBQTZCO0FBQ2pGLFNBQU8sTUFBTTtBQUFBLElBQ1gsMkJBQTJCLFNBQVM7QUFBQSxJQUNwQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUywyQkFBMkIsV0FBNkI7QUFDdEUsZ0JBQWMsU0FBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx3QkFBd0IsTUFBdUI7QUFDN0QsU0FBTywrQkFBK0IsS0FBSyxJQUFJO0FBQ2pEO0FBa0JPLFNBQVMsc0JBQXNCLE1BQXVCO0FBQzNELFFBQU0sY0FBYyx5QkFBeUIsSUFBSTtBQUNqRCxTQUFPLDhCQUE4QixLQUFLLFNBQVMsYUFBYSxRQUFRLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZGO0FBV08sU0FBUyx5QkFBeUIsTUFBc0I7QUFDN0QsU0FBTyxLQUFLLFFBQVEsZ0NBQWdDLEVBQUU7QUFDeEQ7IiwibmFtZXMiOltdfQ==
|
|
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.0
|
|
3
|
+
"version": "6.2.0",
|
|
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": "^1.
|
|
337
|
+
"@mnaoumov/typescript-lib": "^1.7.0",
|
|
338
338
|
"@standard-schema/spec": "^1.1.0",
|
|
339
339
|
"@types/react": "^19.3.0",
|
|
340
340
|
"compare-versions": "^6.1.1",
|