@mnaoumov/obsidian-lib 6.0.3 → 6.1.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 +5 -1
- package/dist/lib/cjs/__merged.d.cts +1 -1
- package/dist/lib/cjs/components/plugin-gate-component.cjs +33 -1
- package/dist/lib/cjs/components/plugin-gate-component.d.cts +16 -0
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/i18n/locales/en.cjs +9 -1
- package/dist/lib/cjs/i18n/locales/en.d.cts +8 -0
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +8 -0
- package/dist/lib/cjs/validation.cjs +34 -1
- package/dist/lib/cjs/validation.d.cts +28 -0
- package/dist/lib/esm/__merged.d.mts +1 -1
- package/dist/lib/esm/__merged.mjs +5 -1
- package/dist/lib/esm/components/plugin-gate-component.d.mts +16 -0
- package/dist/lib/esm/components/plugin-gate-component.mjs +33 -1
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +8 -0
- package/dist/lib/esm/i18n/locales/en.mjs +9 -1
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +8 -0
- package/dist/lib/esm/validation.d.mts +28 -0
- package/dist/lib/esm/validation.mjs +32 -1
- package/package.json +6 -3
|
@@ -32,6 +32,26 @@ export declare const WINDOWS_UNSAFE_PATH_CHARS: RegExp;
|
|
|
32
32
|
* Unix-specific unsafe file name path characters.
|
|
33
33
|
*/
|
|
34
34
|
export declare const UNIX_UNSAFE_PATH_CHARS: RegExp;
|
|
35
|
+
/**
|
|
36
|
+
* Validates a single file or folder name against every naming rule this module owns.
|
|
37
|
+
*
|
|
38
|
+
* The rules, checked in this order, and the first one broken names the message:
|
|
39
|
+
*
|
|
40
|
+
* 1. The name is not empty.
|
|
41
|
+
* 2. It holds no control character (U+0000 to U+001F).
|
|
42
|
+
* 3. It holds none of the characters {@link getOsAndObsidianUnsafePathCharsRegExp} matches.
|
|
43
|
+
* 4. It does not end with a dot or a space ({@link hasWindowsTrailingChars}).
|
|
44
|
+
* 5. It is not an MS-DOS device name ({@link isWindowsReservedName}), with or without an extension.
|
|
45
|
+
*
|
|
46
|
+
* Only rule 3 depends on `isWindows`. Rules 2, 4 and 5 apply on every platform, because a vault is synced,
|
|
47
|
+
* and a name created on macOS or Linux that Windows refuses breaks the vault there. The character set stays
|
|
48
|
+
* platform-dependent, because a name such as `Meeting: notes` is common on macOS, where it works.
|
|
49
|
+
*
|
|
50
|
+
* @param name - The name to validate. A single path segment, with or without its extension.
|
|
51
|
+
* @param isWindows - Whether to include the Windows-specific character set. Defaults to `Platform.isWin`.
|
|
52
|
+
* @returns A message describing the first broken rule, or an empty string if the name is valid.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getFileNameValidationMessage(name: string, isWindows?: boolean): string;
|
|
35
55
|
/**
|
|
36
56
|
* Returns a regexp matching all unsafe characters in file names/paths.
|
|
37
57
|
*
|
|
@@ -48,6 +68,14 @@ export declare function getOsAndObsidianUnsafePathCharsRegExp(isWindows?: boolea
|
|
|
48
68
|
* @returns A regexp matching characters that are not safe to use in file names/paths at the OS level.
|
|
49
69
|
*/
|
|
50
70
|
export declare function getOsUnsafePathCharsRegExp(isWindows?: boolean): RegExp;
|
|
71
|
+
/**
|
|
72
|
+
* Validates every segment of a vault path with {@link getFileNameValidationMessage}.
|
|
73
|
+
*
|
|
74
|
+
* @param path - The vault-relative path to validate, with `/` as the separator.
|
|
75
|
+
* @param isWindows - Whether to include the Windows-specific character set. Defaults to `Platform.isWin`.
|
|
76
|
+
* @returns The message for the first invalid segment, or an empty string if every segment is valid.
|
|
77
|
+
*/
|
|
78
|
+
export declare function getPathValidationMessage(path: string, isWindows?: boolean): string;
|
|
51
79
|
/**
|
|
52
80
|
* Checks whether a name ends with the dots or spaces Windows refuses.
|
|
53
81
|
*
|
|
@@ -36,6 +36,7 @@ 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
|
}
|
|
@@ -44,6 +45,23 @@ const WINDOWS_UNSAFE_PATH_CHARS = /[*\\/<>:|?"]/g;
|
|
|
44
45
|
const UNIX_UNSAFE_PATH_CHARS = /[\0/]/g;
|
|
45
46
|
const WINDOWS_RESERVED_NAME_REG_EXP = /^(?:AUX|COM[1-9]|CON|LPT[1-9]|NUL|PRN)$/i;
|
|
46
47
|
const WINDOWS_TRAILING_CHARS_REG_EXP = /[ .]+$/;
|
|
48
|
+
const FIRST_NON_CONTROL_CHAR = " ";
|
|
49
|
+
function getFileNameValidationMessage(name, isWindows) {
|
|
50
|
+
if (name === "") {
|
|
51
|
+
return t(($) => $.obsidianLib.validation.emptyName);
|
|
52
|
+
}
|
|
53
|
+
if (hasControlChars(name)) {
|
|
54
|
+
return t(($) => $.obsidianLib.validation.controlCharacter, { name });
|
|
55
|
+
}
|
|
56
|
+
const unsafeChars = new Set(name.match(getOsAndObsidianUnsafePathCharsRegExp(isWindows)));
|
|
57
|
+
if (unsafeChars.size > 0) {
|
|
58
|
+
return t(($) => $.obsidianLib.validation.unsafeCharacters, { characters: [...unsafeChars].join(" "), name });
|
|
59
|
+
}
|
|
60
|
+
if (hasWindowsTrailingChars(name)) {
|
|
61
|
+
return t(($) => $.obsidianLib.validation.trailingCharacters, { name });
|
|
62
|
+
}
|
|
63
|
+
return isWindowsReservedName(name) ? t(($) => $.obsidianLib.validation.windowsReservedName, { name }) : "";
|
|
64
|
+
}
|
|
47
65
|
function getOsAndObsidianUnsafePathCharsRegExp(isWindows) {
|
|
48
66
|
return oneOf([
|
|
49
67
|
getOsUnsafePathCharsRegExp(isWindows),
|
|
@@ -54,6 +72,9 @@ function getOsUnsafePathCharsRegExp(isWindows) {
|
|
|
54
72
|
isWindows ??= Platform.isWin;
|
|
55
73
|
return isWindows ? WINDOWS_UNSAFE_PATH_CHARS : UNIX_UNSAFE_PATH_CHARS;
|
|
56
74
|
}
|
|
75
|
+
function getPathValidationMessage(path, isWindows) {
|
|
76
|
+
return path.split("/").map((segment) => getFileNameValidationMessage(segment, isWindows)).find(Boolean) ?? "";
|
|
77
|
+
}
|
|
57
78
|
function hasWindowsTrailingChars(name) {
|
|
58
79
|
return WINDOWS_TRAILING_CHARS_REG_EXP.test(name);
|
|
59
80
|
}
|
|
@@ -64,15 +85,25 @@ function isWindowsReservedName(name) {
|
|
|
64
85
|
function trimWindowsTrailingChars(name) {
|
|
65
86
|
return name.replace(WINDOWS_TRAILING_CHARS_REG_EXP, "");
|
|
66
87
|
}
|
|
88
|
+
function hasControlChars(name) {
|
|
89
|
+
for (const char of name) {
|
|
90
|
+
if (char < FIRST_NON_CONTROL_CHAR) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
67
96
|
export {
|
|
68
97
|
OBSIDIAN_UNSAFE_FILENAME_CHARS,
|
|
69
98
|
UNIX_UNSAFE_PATH_CHARS,
|
|
70
99
|
WINDOWS_UNSAFE_PATH_CHARS,
|
|
100
|
+
getFileNameValidationMessage,
|
|
71
101
|
getOsAndObsidianUnsafePathCharsRegExp,
|
|
72
102
|
getOsUnsafePathCharsRegExp,
|
|
103
|
+
getPathValidationMessage,
|
|
73
104
|
hasWindowsTrailingChars,
|
|
74
105
|
isValidationMessageHolder,
|
|
75
106
|
isWindowsReservedName,
|
|
76
107
|
trimWindowsTrailingChars
|
|
77
108
|
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBXaW5kb3dzLXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBVbml4LXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwL10vZztcblxuLyoqXG4gKiBUaGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHN0aWxsIHJlZnVzZXMgYXMgYSBmaWxlIG5hbWUsIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogYENPTklOJGAgLyBgQ09OT1VUJGAgYW5kIHRoZSBzdXBlcnNjcmlwdCBgQ09NwrJgIGZvcm1zIGFyZSBkZWxpYmVyYXRlbHkgYWJzZW50OiB0aGV5IGFyZSBhY2NlcHRlZCBieVxuICogZXZlcnkgV2luZG93cyB2ZXJzaW9uIHRoYXQgcnVucyBPYnNpZGlhbiwgYW5kIG1hdGNoaW5nIHRoZW0gd291bGQgcmVuYW1lIGZpbGVzIHRoYXQgd29yay5cbiAqXG4gKiBVbmxpa2UgdGhlIGV4cG9ydGVkIGNoYXJhY3RlciBzZXRzIGFib3ZlLCB0aGlzIGNhcnJpZXMgbm8gYGdgIGZsYWcsIHNvIGB0ZXN0YCBtYXkgYmUgY2FsbGVkIG9uIGl0XG4gKiByZXBlYXRlZGx5IOKAlCBhIGBnYC1mbGFnZ2VkIHJlZ2V4cCBhZHZhbmNlcyBgbGFzdEluZGV4YCBhbmQgYW5zd2VycyBkaWZmZXJlbnRseSBvbiBjb25zZWN1dGl2ZSBjYWxscy5cbiAqL1xuY29uc3QgV0lORE9XU19SRVNFUlZFRF9OQU1FX1JFR19FWFAgPSAvXig/OkFVWHxDT01bMS05XXxDT058TFBUWzEtOV18TlVMfFBSTikkL2k7XG5cbi8qKlxuICogVGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHN0cmlwcyBmcm9tIGEgbmFtZSBiZWZvcmUgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHdpdGggaXQuXG4gKi9cbmNvbnN0IFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCA9IC9bIC5dKyQvO1xuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKlxuICogSW5jbHVkZXMgYm90aCBPUy1zcGVjaWZpYyByZXN0cmljdGlvbnMgYW5kIE9ic2lkaWFuLXNwZWNpZmljIG9uZXMuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBXaW5kb3dzLXNwZWNpZmljIHJlc3RyaWN0aW9ucy4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgcmVnZXhwIG1hdGNoaW5nIGFsbCB1bnNhZmUgY2hhcmFjdGVycyBpbiBmaWxlIG5hbWVzL3BhdGhzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3M/OiBib29sZWFuKTogUmVnRXhwIHtcbiAgcmV0dXJuIG9uZU9mKFtcbiAgICBnZXRPc1Vuc2FmZVBhdGhDaGFyc1JlZ0V4cChpc1dpbmRvd3MpLFxuICAgIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSU1xuICBdKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVnZXhwIG1hdGNoaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHNhZmUgdG8gdXNlIGluIGZpbGUgbmFtZXMvcGF0aHMgYXQgdGhlIE9TIGxldmVsLlxuICpcbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgV2luZG93cy1zcGVjaWZpYyByZXN0cmljdGlvbnMuIERlZmF1bHRzIHRvIGBQbGF0Zm9ybS5pc1dpbmAuXG4gKiBAcmV0dXJucyBBIHJlZ2V4cCBtYXRjaGluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzL3BhdGhzIGF0IHRoZSBPUyBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4pOiBSZWdFeHAge1xuICBpc1dpbmRvd3MgPz89IFBsYXRmb3JtLmlzV2luO1xuICByZXR1cm4gaXNXaW5kb3dzID8gV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA6IFVOSVhfVU5TQUZFX1BBVEhfQ0hBUlM7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGVuZHMgd2l0aCB0aGUgZG90cyBvciBzcGFjZXMgV2luZG93cyByZWZ1c2VzLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgZW5kcyB3aXRoIGEgZG90IG9yIGEgc3BhY2UsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAudGVzdChuYW1lKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaXMgb25lIG9mIHRoZSBNUy1ET1MgZGV2aWNlIG5hbWVzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBUd28gc3RlcHMgdGhlIGNhbGxlciB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBrbm93IGFib3V0IGhhcHBlbiBoZXJlOiB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMgYXJlXG4gKiB0cmltbWVkIEJFRk9SRSB0aGUgdGVzdCwgYmVjYXVzZSBXaW5kb3dzIHN0cmlwcyB0aGVtIGJlZm9yZSBkZWNpZGluZyBhbmQgYENPTiBgIGlzIHRoZXJlZm9yZSBhc1xuICogcmVzZXJ2ZWQgYXMgYENPTmA7IGFuZCB0aGUgZXh0ZW5zaW9uIGlzIGRyb3BwZWQsIGJlY2F1c2UgYENPTi5tZGAgaXMgcmVzZXJ2ZWQgdG9vLlxuICpcbiAqIGBDT05JTiRgIC8gYENPTk9VVCRgIGFuZCB0aGUgc3VwZXJzY3JpcHQgYENPTcKyYCBmb3JtcyBhcmUgZGVsaWJlcmF0ZWx5IE5PVCByZXNlcnZlZDogdGhleSBhcmUgYWNjZXB0ZWRcbiAqIGJ5IGV2ZXJ5IFdpbmRvd3MgdmVyc2lvbiB0aGF0IHJ1bnMgT2JzaWRpYW4sIGFuZCBtYXRjaGluZyB0aGVtIHdvdWxkIHJlbmFtZSBmaWxlcyB0aGF0IHdvcmsuXG4gKlxuICogQW5zd2VycyBmb3IgV2luZG93cyByZWdhcmRsZXNzIG9mIHRoZSBwbGF0Zm9ybSBpbiB1c2U6IGEgdmF1bHQgaXMgc3luY2VkLCBzbyB0aGUgcnVsZXMgdGhhdCBtYXR0ZXIgYXJlXG4gKiBub3QgbmVjZXNzYXJpbHkgdGhvc2Ugb2YgdGhlIG1hY2hpbmUgYXNraW5nLlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gY2hlY2suIEEgc2luZ2xlIHBhdGggc2VnbWVudCwgd2l0aCBvciB3aXRob3V0IGl0cyBleHRlbnNpb24uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5hbWUgaXMgcmVzZXJ2ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3dzUmVzZXJ2ZWROYW1lKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCB0cmltbWVkTmFtZSA9IHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lKTtcbiAgcmV0dXJuIFdJTkRPV1NfUkVTRVJWRURfTkFNRV9SRUdfRVhQLnRlc3QoYmFzZW5hbWUodHJpbW1lZE5hbWUsIGV4dG5hbWUodHJpbW1lZE5hbWUpKSk7XG59XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIFdpbmRvd3MgcmVmdXNlcyBmcm9tIHRoZSBlbmQgb2YgYSBuYW1lLlxuICpcbiAqIFRyaW0gYmVmb3JlIHRlc3RpbmcgZm9yIGEgcmVzZXJ2ZWQgbmFtZSwgbmV2ZXIgYWZ0ZXI6IHRyaW1taW5nIGFmdGVyd2FyZHMgdHVybnMgYW4gYWNjZXB0ZWQgYENPTiBgIGludG9cbiAqIGEgcmVqZWN0ZWQgYENPTmAuIHtAbGluayBpc1dpbmRvd3NSZXNlcnZlZE5hbWV9IGFscmVhZHkgZG9lcyB0aGlzIGludGVybmFsbHkuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB0cmltLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIG5vdCBhIHBhdGguXG4gKiBAcmV0dXJucyBUaGUgbmFtZSB3aXRob3V0IGl0cyB0cmFpbGluZyBkb3RzIGFuZCBzcGFjZXMsIHdoaWNoIG1heSBiZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZS5yZXBsYWNlKFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCwgJycpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsZ0JBQWdCO0FBa0JsQixTQUFTLDBCQUEwQixPQUFrRDtBQUMxRixTQUFRLE1BQTJDLHNCQUFzQjtBQUMzRTtBQUtPLE1BQU0saUNBQWlDO0FBS3ZDLE1BQU0sNEJBQTRCO0FBS2xDLE1BQU0seUJBQXlCO0FBV3RDLE1BQU0sZ0NBQWdDO0FBS3RDLE1BQU0saUNBQWlDO0FBVWhDLFNBQVMsc0NBQXNDLFdBQTZCO0FBQ2pGLFNBQU8sTUFBTTtBQUFBLElBQ1gsMkJBQTJCLFNBQVM7QUFBQSxJQUNwQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUywyQkFBMkIsV0FBNkI7QUFDdEUsZ0JBQWMsU0FBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBV08sU0FBUyx3QkFBd0IsTUFBdUI7QUFDN0QsU0FBTywrQkFBK0IsS0FBSyxJQUFJO0FBQ2pEO0FBa0JPLFNBQVMsc0JBQXNCLE1BQXVCO0FBQzNELFFBQU0sY0FBYyx5QkFBeUIsSUFBSTtBQUNqRCxTQUFPLDhCQUE4QixLQUFLLFNBQVMsYUFBYSxRQUFRLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZGO0FBV08sU0FBUyx5QkFBeUIsTUFBc0I7QUFDN0QsU0FBTyxLQUFLLFFBQVEsZ0NBQWdDLEVBQUU7QUFDeEQ7IiwibmFtZXMiOltdfQ==
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBWYWxpZGF0aW9uIHV0aWxpdGllcy5cbiAqL1xuXG5pbXBvcnQge1xuICBiYXNlbmFtZSxcbiAgZXh0bmFtZVxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvcGF0aCc7XG5pbXBvcnQgeyBvbmVPZiB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9yZWctZXhwJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyB0IH0gZnJvbSAnLi9pMThuL2kxOG4udHMnO1xuXG4vKipcbiAqIEhvbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25NZXNzYWdlSG9sZGVyIHtcbiAgLyoqXG4gICAqIEEgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgaG9sZGVyLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRhdGlvbk1lc3NhZ2VIb2xkZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWxpZGF0aW9uTWVzc2FnZUhvbGRlciB7XG4gIHJldHVybiAodmFsdWUgYXMgUGFydGlhbDxWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcj4pLnZhbGlkYXRpb25NZXNzYWdlICE9PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogTWF0Y2hlcyBjaGFyYWN0ZXJzIHRoYXQgYXJlIG5vdCBzYWZlIHRvIHVzZSBpbiBmaWxlIG5hbWVzIHdpdGhpbiBPYnNpZGlhbi5cbiAqL1xuZXhwb3J0IGNvbnN0IE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyA9IC9bI15bXFxdfF0vZztcblxuLyoqXG4gKiBXaW5kb3dzLXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSUyA9IC9bKlxcXFwvPD46fD9cIl0vZztcblxuLyoqXG4gKiBVbml4LXNwZWNpZmljIHVuc2FmZSBmaWxlIG5hbWUgcGF0aCBjaGFyYWN0ZXJzLlxuICovXG5leHBvcnQgY29uc3QgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyA9IC9bXFwwL10vZztcblxuLyoqXG4gKiBUaGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHN0aWxsIHJlZnVzZXMgYXMgYSBmaWxlIG5hbWUsIHdpdGggb3Igd2l0aG91dCBhbiBleHRlbnNpb24uXG4gKlxuICogYENPTklOJGAgLyBgQ09OT1VUJGAgYW5kIHRoZSBzdXBlcnNjcmlwdCBgQ09NwrJgIGZvcm1zIGFyZSBkZWxpYmVyYXRlbHkgYWJzZW50OiB0aGV5IGFyZSBhY2NlcHRlZCBieVxuICogZXZlcnkgV2luZG93cyB2ZXJzaW9uIHRoYXQgcnVucyBPYnNpZGlhbiwgYW5kIG1hdGNoaW5nIHRoZW0gd291bGQgcmVuYW1lIGZpbGVzIHRoYXQgd29yay5cbiAqXG4gKiBVbmxpa2UgdGhlIGV4cG9ydGVkIGNoYXJhY3RlciBzZXRzIGFib3ZlLCB0aGlzIGNhcnJpZXMgbm8gYGdgIGZsYWcsIHNvIGB0ZXN0YCBtYXkgYmUgY2FsbGVkIG9uIGl0XG4gKiByZXBlYXRlZGx5IOKAlCBhIGBnYC1mbGFnZ2VkIHJlZ2V4cCBhZHZhbmNlcyBgbGFzdEluZGV4YCBhbmQgYW5zd2VycyBkaWZmZXJlbnRseSBvbiBjb25zZWN1dGl2ZSBjYWxscy5cbiAqL1xuY29uc3QgV0lORE9XU19SRVNFUlZFRF9OQU1FX1JFR19FWFAgPSAvXig/OkFVWHxDT01bMS05XXxDT058TFBUWzEtOV18TlVMfFBSTikkL2k7XG5cbi8qKlxuICogVGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHN0cmlwcyBmcm9tIGEgbmFtZSBiZWZvcmUgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHdpdGggaXQuXG4gKi9cbmNvbnN0IFdJTkRPV1NfVFJBSUxJTkdfQ0hBUlNfUkVHX0VYUCA9IC9bIC5dKyQvO1xuXG4vKipcbiAqIFRoZSBmaXJzdCBjaGFyYWN0ZXIgYWZ0ZXIgdGhlIEMwIGNvbnRyb2wgcmFuZ2UsIFUrMDAwMCB0byBVKzAwMUYsIHdoaWNoIFdpbmRvd3MgcmVmdXNlcyBpbiBhIG5hbWUuXG4gKi9cbmNvbnN0IEZJUlNUX05PTl9DT05UUk9MX0NIQVIgPSAnICc7XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgc2luZ2xlIGZpbGUgb3IgZm9sZGVyIG5hbWUgYWdhaW5zdCBldmVyeSBuYW1pbmcgcnVsZSB0aGlzIG1vZHVsZSBvd25zLlxuICpcbiAqIFRoZSBydWxlcywgY2hlY2tlZCBpbiB0aGlzIG9yZGVyLCBhbmQgdGhlIGZpcnN0IG9uZSBicm9rZW4gbmFtZXMgdGhlIG1lc3NhZ2U6XG4gKlxuICogMS4gVGhlIG5hbWUgaXMgbm90IGVtcHR5LlxuICogMi4gSXQgaG9sZHMgbm8gY29udHJvbCBjaGFyYWN0ZXIgKFUrMDAwMCB0byBVKzAwMUYpLlxuICogMy4gSXQgaG9sZHMgbm9uZSBvZiB0aGUgY2hhcmFjdGVycyB7QGxpbmsgZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cH0gbWF0Y2hlcy5cbiAqIDQuIEl0IGRvZXMgbm90IGVuZCB3aXRoIGEgZG90IG9yIGEgc3BhY2UgKHtAbGluayBoYXNXaW5kb3dzVHJhaWxpbmdDaGFyc30pLlxuICogNS4gSXQgaXMgbm90IGFuIE1TLURPUyBkZXZpY2UgbmFtZSAoe0BsaW5rIGlzV2luZG93c1Jlc2VydmVkTmFtZX0pLCB3aXRoIG9yIHdpdGhvdXQgYW4gZXh0ZW5zaW9uLlxuICpcbiAqIE9ubHkgcnVsZSAzIGRlcGVuZHMgb24gYGlzV2luZG93c2AuIFJ1bGVzIDIsIDQgYW5kIDUgYXBwbHkgb24gZXZlcnkgcGxhdGZvcm0sIGJlY2F1c2UgYSB2YXVsdCBpcyBzeW5jZWQsXG4gKiBhbmQgYSBuYW1lIGNyZWF0ZWQgb24gbWFjT1Mgb3IgTGludXggdGhhdCBXaW5kb3dzIHJlZnVzZXMgYnJlYWtzIHRoZSB2YXVsdCB0aGVyZS4gVGhlIGNoYXJhY3RlciBzZXQgc3RheXNcbiAqIHBsYXRmb3JtLWRlcGVuZGVudCwgYmVjYXVzZSBhIG5hbWUgc3VjaCBhcyBgTWVldGluZzogbm90ZXNgIGlzIGNvbW1vbiBvbiBtYWNPUywgd2hlcmUgaXQgd29ya3MuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byB2YWxpZGF0ZS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCB3aXRoIG9yIHdpdGhvdXQgaXRzIGV4dGVuc2lvbi5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY2hhcmFjdGVyIHNldC4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBicm9rZW4gcnVsZSwgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBuYW1lIGlzIHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZShuYW1lOiBzdHJpbmcsIGlzV2luZG93cz86IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAobmFtZSA9PT0gJycpIHtcbiAgICByZXR1cm4gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi52YWxpZGF0aW9uLmVtcHR5TmFtZSk7XG4gIH1cblxuICBpZiAoaGFzQ29udHJvbENoYXJzKG5hbWUpKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi5jb250cm9sQ2hhcmFjdGVyLCB7IG5hbWUgfSk7XG4gIH1cblxuICBjb25zdCB1bnNhZmVDaGFycyA9IG5ldyBTZXQobmFtZS5tYXRjaChnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cykpKTtcbiAgaWYgKHVuc2FmZUNoYXJzLnNpemUgPiAwKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi51bnNhZmVDaGFyYWN0ZXJzLCB7IGNoYXJhY3RlcnM6IFsuLi51bnNhZmVDaGFyc10uam9pbignICcpLCBuYW1lIH0pO1xuICB9XG5cbiAgaWYgKGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWUpKSB7XG4gICAgcmV0dXJuIHQoKCQpID0+ICQub2JzaWRpYW5MaWIudmFsaWRhdGlvbi50cmFpbGluZ0NoYXJhY3RlcnMsIHsgbmFtZSB9KTtcbiAgfVxuXG4gIHJldHVybiBpc1dpbmRvd3NSZXNlcnZlZE5hbWUobmFtZSkgPyB0KCgkKSA9PiAkLm9ic2lkaWFuTGliLnZhbGlkYXRpb24ud2luZG93c1Jlc2VydmVkTmFtZSwgeyBuYW1lIH0pIDogJyc7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZ2V4cCBtYXRjaGluZyBhbGwgdW5zYWZlIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcy9wYXRocy5cbiAqXG4gKiBJbmNsdWRlcyBib3RoIE9TLXNwZWNpZmljIHJlc3RyaWN0aW9ucyBhbmQgT2JzaWRpYW4tc3BlY2lmaWMgb25lcy5cbiAqXG4gKiBAcGFyYW0gaXNXaW5kb3dzIC0gV2hldGhlciB0byBpbmNsdWRlIFdpbmRvd3Mtc3BlY2lmaWMgcmVzdHJpY3Rpb25zLiBEZWZhdWx0cyB0byBgUGxhdGZvcm0uaXNXaW5gLlxuICogQHJldHVybnMgQSByZWdleHAgbWF0Y2hpbmcgYWxsIHVuc2FmZSBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMvcGF0aHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPc0FuZE9ic2lkaWFuVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cz86IGJvb2xlYW4pOiBSZWdFeHAge1xuICByZXR1cm4gb25lT2YoW1xuICAgIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwKGlzV2luZG93cyksXG4gICAgT0JTSURJQU5fVU5TQUZFX0ZJTEVOQU1FX0NIQVJTXG4gIF0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSByZWdleHAgbWF0Y2hpbmcgY2hhcmFjdGVycyB0aGF0IGFyZSBub3Qgc2FmZSB0byB1c2UgaW4gZmlsZSBuYW1lcy9wYXRocyBhdCB0aGUgT1MgbGV2ZWwuXG4gKlxuICogQHBhcmFtIGlzV2luZG93cyAtIFdoZXRoZXIgdG8gaW5jbHVkZSBXaW5kb3dzLXNwZWNpZmljIHJlc3RyaWN0aW9ucy4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIEEgcmVnZXhwIG1hdGNoaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgbm90IHNhZmUgdG8gdXNlIGluIGZpbGUgbmFtZXMvcGF0aHMgYXQgdGhlIE9TIGxldmVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAoaXNXaW5kb3dzPzogYm9vbGVhbik6IFJlZ0V4cCB7XG4gIGlzV2luZG93cyA/Pz0gUGxhdGZvcm0uaXNXaW47XG4gIHJldHVybiBpc1dpbmRvd3MgPyBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTIDogVU5JWF9VTlNBRkVfUEFUSF9DSEFSUztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgZXZlcnkgc2VnbWVudCBvZiBhIHZhdWx0IHBhdGggd2l0aCB7QGxpbmsgZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZX0uXG4gKlxuICogQHBhcmFtIHBhdGggLSBUaGUgdmF1bHQtcmVsYXRpdmUgcGF0aCB0byB2YWxpZGF0ZSwgd2l0aCBgL2AgYXMgdGhlIHNlcGFyYXRvci5cbiAqIEBwYXJhbSBpc1dpbmRvd3MgLSBXaGV0aGVyIHRvIGluY2x1ZGUgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY2hhcmFjdGVyIHNldC4gRGVmYXVsdHMgdG8gYFBsYXRmb3JtLmlzV2luYC5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIGZvciB0aGUgZmlyc3QgaW52YWxpZCBzZWdtZW50LCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgZXZlcnkgc2VnbWVudCBpcyB2YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhdGhWYWxpZGF0aW9uTWVzc2FnZShwYXRoOiBzdHJpbmcsIGlzV2luZG93cz86IGJvb2xlYW4pOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5zcGxpdCgnLycpLm1hcCgoc2VnbWVudCkgPT4gZ2V0RmlsZU5hbWVWYWxpZGF0aW9uTWVzc2FnZShzZWdtZW50LCBpc1dpbmRvd3MpKS5maW5kKEJvb2xlYW4pID8/ICcnO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbmFtZSBlbmRzIHdpdGggdGhlIGRvdHMgb3Igc3BhY2VzIFdpbmRvd3MgcmVmdXNlcy5cbiAqXG4gKiBBbnN3ZXJzIGZvciBXaW5kb3dzIHJlZ2FyZGxlc3Mgb2YgdGhlIHBsYXRmb3JtIGluIHVzZTogYSB2YXVsdCBpcyBzeW5jZWQsIHNvIHRoZSBydWxlcyB0aGF0IG1hdHRlciBhcmVcbiAqIG5vdCBuZWNlc3NhcmlseSB0aG9zZSBvZiB0aGUgbWFjaGluZSBhc2tpbmcuXG4gKlxuICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSB0byBjaGVjay4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGVuZHMgd2l0aCBhIGRvdCBvciBhIHNwYWNlLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gV0lORE9XU19UUkFJTElOR19DSEFSU19SRUdfRVhQLnRlc3QobmFtZSk7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSBuYW1lIGlzIG9uZSBvZiB0aGUgTVMtRE9TIGRldmljZSBuYW1lcyBXaW5kb3dzIHJlZnVzZXMuXG4gKlxuICogVHdvIHN0ZXBzIHRoZSBjYWxsZXIgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8ga25vdyBhYm91dCBoYXBwZW4gaGVyZTogdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzIGFyZVxuICogdHJpbW1lZCBCRUZPUkUgdGhlIHRlc3QsIGJlY2F1c2UgV2luZG93cyBzdHJpcHMgdGhlbSBiZWZvcmUgZGVjaWRpbmcgYW5kIGBDT04gYCBpcyB0aGVyZWZvcmUgYXNcbiAqIHJlc2VydmVkIGFzIGBDT05gOyBhbmQgdGhlIGV4dGVuc2lvbiBpcyBkcm9wcGVkLCBiZWNhdXNlIGBDT04ubWRgIGlzIHJlc2VydmVkIHRvby5cbiAqXG4gKiBgQ09OSU4kYCAvIGBDT05PVVQkYCBhbmQgdGhlIHN1cGVyc2NyaXB0IGBDT03CsmAgZm9ybXMgYXJlIGRlbGliZXJhdGVseSBOT1QgcmVzZXJ2ZWQ6IHRoZXkgYXJlIGFjY2VwdGVkXG4gKiBieSBldmVyeSBXaW5kb3dzIHZlcnNpb24gdGhhdCBydW5zIE9ic2lkaWFuLCBhbmQgbWF0Y2hpbmcgdGhlbSB3b3VsZCByZW5hbWUgZmlsZXMgdGhhdCB3b3JrLlxuICpcbiAqIEFuc3dlcnMgZm9yIFdpbmRvd3MgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0gaW4gdXNlOiBhIHZhdWx0IGlzIHN5bmNlZCwgc28gdGhlIHJ1bGVzIHRoYXQgbWF0dGVyIGFyZVxuICogbm90IG5lY2Vzc2FyaWx5IHRob3NlIG9mIHRoZSBtYWNoaW5lIGFza2luZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLiBBIHNpbmdsZSBwYXRoIHNlZ21lbnQsIHdpdGggb3Igd2l0aG91dCBpdHMgZXh0ZW5zaW9uLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGlzIHJlc2VydmVkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzV2luZG93c1Jlc2VydmVkTmFtZShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdHJpbW1lZE5hbWUgPSB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZSk7XG4gIHJldHVybiBXSU5ET1dTX1JFU0VSVkVEX05BTUVfUkVHX0VYUC50ZXN0KGJhc2VuYW1lKHRyaW1tZWROYW1lLCBleHRuYW1lKHRyaW1tZWROYW1lKSkpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgdGhlIHRyYWlsaW5nIGRvdHMgYW5kIHNwYWNlcyBXaW5kb3dzIHJlZnVzZXMgZnJvbSB0aGUgZW5kIG9mIGEgbmFtZS5cbiAqXG4gKiBUcmltIGJlZm9yZSB0ZXN0aW5nIGZvciBhIHJlc2VydmVkIG5hbWUsIG5ldmVyIGFmdGVyOiB0cmltbWluZyBhZnRlcndhcmRzIHR1cm5zIGFuIGFjY2VwdGVkIGBDT04gYCBpbnRvXG4gKiBhIHJlamVjdGVkIGBDT05gLiB7QGxpbmsgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lfSBhbHJlYWR5IGRvZXMgdGhpcyBpbnRlcm5hbGx5LlxuICpcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgdG8gdHJpbS4gQSBzaW5nbGUgcGF0aCBzZWdtZW50LCBub3QgYSBwYXRoLlxuICogQHJldHVybnMgVGhlIG5hbWUgd2l0aG91dCBpdHMgdHJhaWxpbmcgZG90cyBhbmQgc3BhY2VzLCB3aGljaCBtYXkgYmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltV2luZG93c1RyYWlsaW5nQ2hhcnMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUucmVwbGFjZShXSU5ET1dTX1RSQUlMSU5HX0NIQVJTX1JFR19FWFAsICcnKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIG5hbWUgaG9sZHMgYSBjb250cm9sIGNoYXJhY3RlciwgVSswMDAwIHRvIFUrMDAxRi5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBuYW1lIGhvbGRzIGEgY29udHJvbCBjaGFyYWN0ZXIsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICovXG5mdW5jdGlvbiBoYXNDb250cm9sQ2hhcnMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGZvciAoY29uc3QgY2hhciBvZiBuYW1lKSB7XG4gICAgaWYgKGNoYXIgPCBGSVJTVF9OT05fQ09OVFJPTF9DSEFSKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUE7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGFBQWE7QUFDdEIsU0FBUyxnQkFBZ0I7QUFFekIsU0FBUyxTQUFTO0FBa0JYLFNBQVMsMEJBQTBCLE9BQWtEO0FBQzFGLFNBQVEsTUFBMkMsc0JBQXNCO0FBQzNFO0FBS08sTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSw0QkFBNEI7QUFLbEMsTUFBTSx5QkFBeUI7QUFXdEMsTUFBTSxnQ0FBZ0M7QUFLdEMsTUFBTSxpQ0FBaUM7QUFLdkMsTUFBTSx5QkFBeUI7QUFxQnhCLFNBQVMsNkJBQTZCLE1BQWMsV0FBNkI7QUFDdEYsTUFBSSxTQUFTLElBQUk7QUFDZixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLFNBQVM7QUFBQSxFQUNwRDtBQUVBLE1BQUksZ0JBQWdCLElBQUksR0FBRztBQUN6QixXQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxXQUFXLGtCQUFrQixFQUFFLEtBQUssQ0FBQztBQUFBLEVBQ3JFO0FBRUEsUUFBTSxjQUFjLElBQUksSUFBSSxLQUFLLE1BQU0sc0NBQXNDLFNBQVMsQ0FBQyxDQUFDO0FBQ3hGLE1BQUksWUFBWSxPQUFPLEdBQUc7QUFDeEIsV0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxrQkFBa0IsRUFBRSxZQUFZLENBQUMsR0FBRyxXQUFXLEVBQUUsS0FBSyxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBQUEsRUFDN0c7QUFFQSxNQUFJLHdCQUF3QixJQUFJLEdBQUc7QUFDakMsV0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxvQkFBb0IsRUFBRSxLQUFLLENBQUM7QUFBQSxFQUN2RTtBQUVBLFNBQU8sc0JBQXNCLElBQUksSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksV0FBVyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsSUFBSTtBQUMxRztBQVVPLFNBQVMsc0NBQXNDLFdBQTZCO0FBQ2pGLFNBQU8sTUFBTTtBQUFBLElBQ1gsMkJBQTJCLFNBQVM7QUFBQSxJQUNwQztBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBUU8sU0FBUywyQkFBMkIsV0FBNkI7QUFDdEUsZ0JBQWMsU0FBUztBQUN2QixTQUFPLFlBQVksNEJBQTRCO0FBQ2pEO0FBU08sU0FBUyx5QkFBeUIsTUFBYyxXQUE2QjtBQUNsRixTQUFPLEtBQUssTUFBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVksNkJBQTZCLFNBQVMsU0FBUyxDQUFDLEVBQUUsS0FBSyxPQUFPLEtBQUs7QUFDN0c7QUFXTyxTQUFTLHdCQUF3QixNQUF1QjtBQUM3RCxTQUFPLCtCQUErQixLQUFLLElBQUk7QUFDakQ7QUFrQk8sU0FBUyxzQkFBc0IsTUFBdUI7QUFDM0QsUUFBTSxjQUFjLHlCQUF5QixJQUFJO0FBQ2pELFNBQU8sOEJBQThCLEtBQUssU0FBUyxhQUFhLFFBQVEsV0FBVyxDQUFDLENBQUM7QUFDdkY7QUFXTyxTQUFTLHlCQUF5QixNQUFzQjtBQUM3RCxTQUFPLEtBQUssUUFBUSxnQ0FBZ0MsRUFBRTtBQUN4RDtBQVFBLFNBQVMsZ0JBQWdCLE1BQXVCO0FBQzlDLGFBQVcsUUFBUSxNQUFNO0FBQ3ZCLFFBQUksT0FBTyx3QkFBd0I7QUFDakMsYUFBTztBQUFBLElBQ1Q7QUFBQSxFQUNGO0FBRUEsU0FBTztBQUNUOyIsIm5hbWVzIjpbXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnaoumov/obsidian-lib",
|
|
3
|
-
"version": "6.0
|
|
3
|
+
"version": "6.1.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",
|
|
@@ -327,13 +327,14 @@
|
|
|
327
327
|
"test": "jiti scripts/test.ts",
|
|
328
328
|
"test:coverage": "jiti scripts/test-coverage.ts",
|
|
329
329
|
"test:integration": "jiti scripts/test-integration.ts integration-tests obsidian-integration-tests",
|
|
330
|
+
"test:mutation": "jiti scripts/test-mutation.ts",
|
|
330
331
|
"test:watch": "jiti scripts/test-watch.ts",
|
|
331
332
|
"version": "jiti scripts/version.ts"
|
|
332
333
|
},
|
|
333
334
|
"dependencies": {
|
|
334
335
|
"@lezer/common": "1.5.2",
|
|
335
336
|
"@mnaoumov/obsidian-dataview": "^1.0.0",
|
|
336
|
-
"@mnaoumov/typescript-lib": "^1.6.
|
|
337
|
+
"@mnaoumov/typescript-lib": "^1.6.2",
|
|
337
338
|
"@standard-schema/spec": "^1.1.0",
|
|
338
339
|
"@types/react": "^19.3.0",
|
|
339
340
|
"compare-versions": "^6.1.1",
|
|
@@ -355,10 +356,12 @@
|
|
|
355
356
|
"@commitlint/cli": "^21.2.2",
|
|
356
357
|
"@commitlint/config-conventional": "^21.2.2",
|
|
357
358
|
"@mnaoumov/obsidian-dev-toolkit": "^5.2.0",
|
|
358
|
-
"@mnaoumov/typescript-dev-toolkit": "^3.
|
|
359
|
+
"@mnaoumov/typescript-dev-toolkit": "^3.11.0",
|
|
359
360
|
"@mnaoumov/typescript-test-toolkit": "^1.0.0",
|
|
360
361
|
"@obsidian-typings/obsidian-public-latest": "^6.37.0",
|
|
361
362
|
"@resvg/resvg-js": "^2.6.2",
|
|
363
|
+
"@stryker-mutator/core": "^10.1.1",
|
|
364
|
+
"@stryker-mutator/vitest-runner": "^10.1.1",
|
|
362
365
|
"@total-typescript/ts-reset": "^0.6.1",
|
|
363
366
|
"@tsconfig/strictest": "^2.0.8",
|
|
364
367
|
"@types/node": "^26.6.2",
|