obsidian-dev-utils 48.1.2 → 48.1.4
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/CHANGELOG.md +9 -0
- package/dist/lib/cjs/Async.cjs +4 -2
- package/dist/lib/cjs/Async.d.cts +28 -19
- package/dist/lib/cjs/Blob.cjs +3 -4
- package/dist/lib/cjs/Debug.cjs +1 -1
- package/dist/lib/cjs/DebugController.cjs +1 -1
- package/dist/lib/cjs/Enum.cjs +4 -11
- package/dist/lib/cjs/Error.cjs +5 -4
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/ObjectUtils.cjs +15 -7
- package/dist/lib/cjs/ObjectUtils.d.cts +17 -13
- package/dist/lib/cjs/RegExp.cjs +3 -1
- package/dist/lib/cjs/ScriptUtils/ESLint/ESLint.cjs +3 -4
- package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +4 -2
- package/dist/lib/cjs/ScriptUtils/Exec.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Exec.d.cts +6 -6
- package/dist/lib/cjs/ScriptUtils/Fs.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Fs.d.cts +7 -7
- package/dist/lib/cjs/ScriptUtils/JSON.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/JSON.d.cts +1 -1
- package/dist/lib/cjs/ScriptUtils/NodeModules.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Npm.cjs +5 -5
- package/dist/lib/cjs/ScriptUtils/Npm.d.cts +2 -2
- package/dist/lib/cjs/ScriptUtils/NpmRun.cjs +12 -3
- package/dist/lib/cjs/ScriptUtils/NpmRun.d.cts +7 -0
- package/dist/lib/cjs/ScriptUtils/cli.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/Dependency.cjs +3 -3
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +11 -11
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +4 -4
- package/dist/lib/cjs/ScriptUtils/esbuild/changeExtensionPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/customEsbuildOptionsPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixEsmPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.cjs +14 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/renameCssPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/svelteWrapperPlugin.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/format.cjs +4 -7
- package/dist/lib/cjs/ScriptUtils/markdownlint/markdownlint-cli2-config.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/markdownlint/markdownlint.cjs +3 -4
- package/dist/lib/cjs/ScriptUtils/version.cjs +12 -10
- package/dist/lib/cjs/String.cjs +1 -1
- package/dist/lib/cjs/Transformers/GroupTransformer.cjs +4 -6
- package/dist/lib/cjs/Transformers/Transformer.cjs +1 -1
- package/dist/lib/cjs/Transformers/Transformer.d.cts +1 -1
- package/dist/lib/cjs/Type.cjs +13 -33
- package/dist/lib/cjs/Type.d.cts +52 -73
- package/dist/lib/cjs/TypeGuards.cjs +156 -0
- package/dist/lib/cjs/TypeGuards.d.cts +47 -0
- package/dist/lib/cjs/codemirror/StateFieldSpec.cjs +1 -1
- package/dist/lib/cjs/index.cjs +4 -1
- package/dist/lib/cjs/index.d.cts +1 -0
- package/dist/lib/cjs/obsidian/App.cjs +1 -1
- package/dist/lib/cjs/obsidian/AsyncWithNotice.cjs +1 -1
- package/dist/lib/cjs/obsidian/AsyncWithNotice.d.cts +11 -11
- package/dist/lib/cjs/obsidian/AttachmentPath.cjs +1 -1
- package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +23 -23
- package/dist/lib/cjs/obsidian/Backlink.cjs +3 -3
- package/dist/lib/cjs/obsidian/Backlink.d.cts +6 -6
- package/dist/lib/cjs/obsidian/Callout.cjs +3 -3
- package/dist/lib/cjs/obsidian/Callout.d.cts +6 -6
- package/dist/lib/cjs/obsidian/CodeBlockMarkdownInformation.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +7 -7
- package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +3 -4
- package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +4 -4
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +4 -4
- package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.cjs +13 -2
- package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.cjs +13 -2
- package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.cjs +13 -2
- package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Components/SettingComponents/SettingComponentWrapper.cjs +3 -4
- package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.cjs +13 -2
- package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.cjs +13 -2
- package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.cts +5 -0
- package/dist/lib/cjs/obsidian/Components/SettingComponents/ValueComponentWithChangeTracking.cjs +1 -1
- package/dist/lib/cjs/obsidian/Dataview.cjs +3 -2
- package/dist/lib/cjs/obsidian/Dataview.d.cts +15 -15
- package/dist/lib/cjs/obsidian/FileChange.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileSystem.cjs +12 -10
- package/dist/lib/cjs/obsidian/Frontmatter.cjs +1 -1
- package/dist/lib/cjs/obsidian/Frontmatter.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Link.cjs +23 -14
- package/dist/lib/cjs/obsidian/Link.d.cts +58 -58
- package/dist/lib/cjs/obsidian/Loop.cjs +3 -1
- package/dist/lib/cjs/obsidian/Loop.d.cts +11 -11
- package/dist/lib/cjs/obsidian/Markdown.cjs +3 -4
- package/dist/lib/cjs/obsidian/Markdown.d.cts +6 -6
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +4 -7
- package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +12 -12
- package/dist/lib/cjs/obsidian/MetadataCache.cjs +3 -5
- package/dist/lib/cjs/obsidian/MetadataCache.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Modals/Alert.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +5 -5
- package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +6 -6
- package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +7 -7
- package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +5 -5
- package/dist/lib/cjs/obsidian/MonkeyAround.cjs +1 -1
- package/dist/lib/cjs/obsidian/Pdf.cjs +1 -1
- package/dist/lib/cjs/obsidian/Pdf.d.cts +8 -8
- package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +3 -1
- package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.d.cts +4 -0
- package/dist/lib/cjs/obsidian/Plugin/PathSettings.cjs +5 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.d.cts +6 -6
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsWrapper.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Queue.cjs +1 -1
- package/dist/lib/cjs/obsidian/Queue.d.cts +14 -14
- package/dist/lib/cjs/obsidian/React/AppContext.cjs +3 -6
- package/dist/lib/cjs/obsidian/Reference.cjs +1 -1
- package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +1 -1
- package/dist/lib/cjs/obsidian/Vault.cjs +1 -1
- package/dist/lib/cjs/obsidian/Vault.d.cts +3 -3
- package/dist/lib/cjs/obsidian/VaultEx.cjs +1 -1
- package/dist/lib/cjs/obsidian/i18n/CustomTypeOptionsBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/i18n/DefaultTranslationsBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -3
- package/dist/lib/esm/Async.d.mts +28 -19
- package/dist/lib/esm/Async.mjs +4 -2
- package/dist/lib/esm/Blob.mjs +3 -4
- package/dist/lib/esm/Debug.mjs +1 -1
- package/dist/lib/esm/Enum.mjs +4 -11
- package/dist/lib/esm/Error.mjs +5 -4
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/ObjectUtils.d.mts +17 -13
- package/dist/lib/esm/ObjectUtils.mjs +18 -11
- package/dist/lib/esm/RegExp.mjs +3 -1
- package/dist/lib/esm/ScriptUtils/ESLint/ESLint.mjs +3 -4
- package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +4 -2
- package/dist/lib/esm/ScriptUtils/Exec.d.mts +6 -6
- package/dist/lib/esm/ScriptUtils/Exec.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Fs.d.mts +7 -7
- package/dist/lib/esm/ScriptUtils/Fs.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/JSON.d.mts +1 -1
- package/dist/lib/esm/ScriptUtils/JSON.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/NodeModules.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Npm.d.mts +2 -2
- package/dist/lib/esm/ScriptUtils/Npm.mjs +5 -5
- package/dist/lib/esm/ScriptUtils/NpmRun.d.mts +7 -0
- package/dist/lib/esm/ScriptUtils/NpmRun.mjs +10 -2
- package/dist/lib/esm/ScriptUtils/cli.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/Dependency.mjs +3 -3
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +4 -4
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +11 -11
- package/dist/lib/esm/ScriptUtils/esbuild/changeExtensionPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/customEsbuildOptionsPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixEsmPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/renameCssPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/svelteWrapperPlugin.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/format.mjs +4 -7
- package/dist/lib/esm/ScriptUtils/markdownlint/markdownlint-cli2-config.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/markdownlint/markdownlint.mjs +3 -4
- package/dist/lib/esm/ScriptUtils/version.mjs +19 -11
- package/dist/lib/esm/String.mjs +1 -1
- package/dist/lib/esm/Transformers/GroupTransformer.mjs +7 -6
- package/dist/lib/esm/Transformers/Transformer.d.mts +1 -1
- package/dist/lib/esm/Transformers/Transformer.mjs +1 -1
- package/dist/lib/esm/Type.d.mts +52 -73
- package/dist/lib/esm/Type.mjs +12 -30
- package/dist/lib/esm/TypeGuards.d.mts +47 -0
- package/dist/lib/esm/TypeGuards.mjs +47 -0
- package/dist/lib/esm/index.d.mts +1 -0
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/obsidian/App.mjs +1 -1
- package/dist/lib/esm/obsidian/AsyncWithNotice.d.mts +11 -11
- package/dist/lib/esm/obsidian/AsyncWithNotice.mjs +1 -1
- package/dist/lib/esm/obsidian/AttachmentPath.d.mts +23 -23
- package/dist/lib/esm/obsidian/AttachmentPath.mjs +1 -1
- package/dist/lib/esm/obsidian/Backlink.d.mts +6 -6
- package/dist/lib/esm/obsidian/Backlink.mjs +3 -3
- package/dist/lib/esm/obsidian/Callout.d.mts +6 -6
- package/dist/lib/esm/obsidian/Callout.mjs +3 -3
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +7 -7
- package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +4 -4
- package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +3 -4
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +4 -4
- package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.mts +5 -0
- package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.mjs +13 -2
- package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.mts +5 -0
- package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.mjs +13 -2
- package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.d.mts +5 -0
- package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.mjs +13 -2
- package/dist/lib/esm/obsidian/Components/SettingComponents/SettingComponentWrapper.mjs +3 -4
- package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.d.mts +5 -0
- package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.mjs +13 -2
- package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.mts +5 -0
- package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.mjs +13 -2
- package/dist/lib/esm/obsidian/Dataview.d.mts +15 -15
- package/dist/lib/esm/obsidian/Dataview.mjs +4 -6
- package/dist/lib/esm/obsidian/FileChange.mjs +1 -1
- package/dist/lib/esm/obsidian/FileSystem.mjs +12 -10
- package/dist/lib/esm/obsidian/Frontmatter.d.mts +1 -1
- package/dist/lib/esm/obsidian/Frontmatter.mjs +1 -1
- package/dist/lib/esm/obsidian/Link.d.mts +58 -58
- package/dist/lib/esm/obsidian/Link.mjs +26 -14
- package/dist/lib/esm/obsidian/Loop.d.mts +11 -11
- package/dist/lib/esm/obsidian/Loop.mjs +3 -1
- package/dist/lib/esm/obsidian/Markdown.d.mts +6 -6
- package/dist/lib/esm/obsidian/Markdown.mjs +3 -4
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +12 -12
- package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +4 -7
- package/dist/lib/esm/obsidian/MetadataCache.d.mts +1 -1
- package/dist/lib/esm/obsidian/MetadataCache.mjs +3 -5
- package/dist/lib/esm/obsidian/Modals/Alert.d.mts +5 -5
- package/dist/lib/esm/obsidian/Modals/Alert.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +6 -6
- package/dist/lib/esm/obsidian/Modals/Confirm.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +7 -7
- package/dist/lib/esm/obsidian/Modals/Prompt.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +5 -5
- package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +1 -1
- package/dist/lib/esm/obsidian/MonkeyAround.mjs +1 -1
- package/dist/lib/esm/obsidian/Pdf.d.mts +8 -8
- package/dist/lib/esm/obsidian/Pdf.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.d.mts +4 -0
- package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +3 -1
- package/dist/lib/esm/obsidian/Plugin/PathSettings.mjs +5 -1
- package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.d.mts +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.d.mts +6 -6
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Queue.d.mts +14 -14
- package/dist/lib/esm/obsidian/Queue.mjs +1 -1
- package/dist/lib/esm/obsidian/React/AppContext.mjs +3 -6
- package/dist/lib/esm/obsidian/Reference.mjs +1 -1
- package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +1 -1
- package/dist/lib/esm/obsidian/Vault.d.mts +3 -3
- package/dist/lib/esm/obsidian/Vault.mjs +1 -1
- package/dist/lib/esm/obsidian/VaultEx.mjs +1 -1
- package/dist/lib/esm/obsidian/i18n/CustomTypeOptionsBase.mjs +1 -1
- package/dist/lib/esm/obsidian/i18n/DefaultTranslationsBase.mjs +1 -1
- package/dist/lib/esm/obsidian/i18n/i18n.mjs +2 -3
- package/dist/scripts/examples/format.prettier.ts +2 -3
- package/package.json +10 -2
package/dist/lib/esm/Type.d.mts
CHANGED
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
* @typeParam Keys - The list of keys to assert.
|
|
11
11
|
*/
|
|
12
12
|
export type ExactKeys<Type extends object, Keys extends readonly string[]> = ExactMembers<StringKeys<Type>, Keys>;
|
|
13
|
+
/**
|
|
14
|
+
* A type that represents the members of a type.
|
|
15
|
+
*
|
|
16
|
+
* @typeParam Type - The type to assert the members of.
|
|
17
|
+
* @typeParam Keys - The list of members to assert.
|
|
18
|
+
*/
|
|
19
|
+
export type ExactMembers<Type extends LiteralKey, Keys extends readonly LiteralKey[]> = Exclude<Keys[number], Type> extends never ? Exclude<Type, Keys[number]> extends never ? Duplicates<Keys> extends [] ? Keys : `ERROR: Duplicate members: ${TupleToCSV<Duplicates<Keys>>}` : `ERROR: Missing members: ${TupleToCSV<UnionToTuple<Exclude<Type, Keys[number]>>>}` : `ERROR: Invalid members: ${TupleToCSV<UnionToTuple<Exclude<Keys[number], Type>>>}`;
|
|
13
20
|
/**
|
|
14
21
|
* A type that represents a return value that may be `void`.
|
|
15
22
|
*
|
|
@@ -28,95 +35,67 @@ export type PropertyValues<T extends object> = T[StringKeys<T>];
|
|
|
28
35
|
* @typeParam T - The type of the object.
|
|
29
36
|
*/
|
|
30
37
|
export type StringKeys<T extends object> = Extract<keyof T, string>;
|
|
31
|
-
type LastInUnion<Union> = UnionToIntersection<Union extends unknown ? () => Union : never> extends () => infer Last ? Last : never;
|
|
32
|
-
type UnionToIntersection<Union> = (Union extends unknown ? (key: Union) => void : never) extends (key: infer Intersection) => void ? Intersection : never;
|
|
33
|
-
type UnionToTuple<Union, Last = LastInUnion<Union>> = [Union] extends [never] ? [] : [...UnionToTuple<Exclude<Union, Last>>, Last];
|
|
34
38
|
/**
|
|
35
|
-
* A
|
|
39
|
+
* A helper that captures a type parameter and provides methods for compile-time exhaustiveness checks.
|
|
36
40
|
*
|
|
37
|
-
* @typeParam Type - The type
|
|
38
|
-
*
|
|
41
|
+
* @typeParam Type - The captured type.
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* - `assertAllKeys` is available when `Type` is an object type.
|
|
45
|
+
* - `assertAllMembers` is available when `Type` is a literal key union (`string | number`).
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* type A = { a: 1, b: 2, c: 3 };
|
|
50
|
+
* typeAsserter<A>().assertAllKeys(['a', 'b', 'c']); // OK
|
|
51
|
+
* typeAsserter<A>().assertAllKeys(['c', 'a', 'b']); // OK, order is ignored
|
|
52
|
+
* typeAsserter<A>().assertAllKeys(['a', 'b', 'c', 'd']); // Error: Invalid members: d
|
|
53
|
+
* typeAsserter<A>().assertAllKeys(['a', 'b']); // Error: Missing members: c
|
|
54
|
+
*
|
|
55
|
+
* type B = 1 | 2 | 3 | 'a';
|
|
56
|
+
* typeAsserter<B>().assertAllMembers([1, 2, 3, 'a']); // OK
|
|
57
|
+
* typeAsserter<B>().assertAllMembers([1, 2, 3, 'a', 4]); // Error: Invalid members: 4
|
|
58
|
+
* typeAsserter<B>().assertAllMembers([1, 2, 3]); // Error: Missing members: a
|
|
59
|
+
* ```
|
|
39
60
|
*/
|
|
40
|
-
export
|
|
61
|
+
export interface TypeAsserter<Type> {
|
|
62
|
+
/**
|
|
63
|
+
* Asserts that all keys of an object type are present in a list of keys.
|
|
64
|
+
*
|
|
65
|
+
* @remarks Only available when `[Type] extends [object]`.
|
|
66
|
+
*/
|
|
67
|
+
assertAllKeys: [Type] extends [object] ? <const Keys extends readonly string[]>(keys: ExactMembers<StringKeys<Type>, Keys>) => readonly (keyof Type)[] : never;
|
|
68
|
+
/**
|
|
69
|
+
* Asserts that all members of a union type are present in a list of members.
|
|
70
|
+
*
|
|
71
|
+
* @remarks Only available when `[Type] extends [LiteralKey]`.
|
|
72
|
+
*/
|
|
73
|
+
assertAllMembers: [Type] extends [LiteralKey] ? <const Keys extends readonly LiteralKey[]>(keys: ExactMembers<Type, Keys>) => readonly Type[] : never;
|
|
74
|
+
}
|
|
41
75
|
type Duplicates<T extends readonly unknown[], Seen extends readonly unknown[] = [], Added extends readonly unknown[] = [], Out extends readonly unknown[] = []> = T extends readonly [infer First, ...infer Rest] ? Includes<Seen, First> extends true ? Includes<Added, First> extends true ? Duplicates<Rest, Seen, Added, Out> : Duplicates<Rest, Seen, [...Added, First], [...Out, First]> : Duplicates<Rest, [...Seen, First], Added, Out> : Out;
|
|
42
76
|
type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? true : false;
|
|
43
77
|
type Includes<Type extends readonly unknown[], Member> = Type extends readonly [infer First, ...infer Rest] ? Equal<First, Member> extends true ? true : Includes<Rest, Member> : false;
|
|
78
|
+
type LastInUnion<Union> = UnionToIntersection<Union extends unknown ? () => Union : never> extends () => infer Last ? Last : never;
|
|
44
79
|
type LiteralKey = number | string;
|
|
45
80
|
type ToString<T> = T extends number | string ? `${T}` : never;
|
|
46
81
|
type TupleToCSV<Tuple extends readonly unknown[]> = Tuple extends readonly [infer First, ...infer Rest] ? First extends LiteralKey ? Rest extends readonly unknown[] ? Rest['length'] extends 0 ? ToString<First> : `${ToString<First>},${TupleToCSV<Rest>}` : never : never : '';
|
|
82
|
+
type UnionToIntersection<Union> = (Union extends unknown ? (key: Union) => void : never) extends (key: infer Intersection) => void ? Intersection : never;
|
|
83
|
+
type UnionToTuple<Union, Last = LastInUnion<Union>> = [Union] extends [never] ? [] : [...UnionToTuple<Exclude<Union, Last>>, Last];
|
|
47
84
|
/**
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* @typeParam Type - The type to assert the keys of.
|
|
51
|
-
* @typeParam Keys - The list of keys to assert.
|
|
52
|
-
* @param _type - The type to assert the keys of.
|
|
53
|
-
* @param keys - The list of keys to assert.
|
|
54
|
-
* @returns The list of keys.
|
|
85
|
+
* Creates a type helper that captures a type parameter for compile-time exhaustiveness checks.
|
|
55
86
|
*
|
|
56
|
-
* @
|
|
87
|
+
* @typeParam Type - The type to capture.
|
|
88
|
+
* @returns A {@link TypeAsserter} with `assertAllKeys` and `assertAllMembers` methods.
|
|
57
89
|
*
|
|
58
90
|
* @example
|
|
59
91
|
* ```ts
|
|
60
92
|
* type A = { a: 1, b: 2, c: 3 };
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* assertAllTypeKeys<A>(typeToDummyParam<A>(), ['a', 'b', 'c', 'd']); // Error: Invalid members: d
|
|
64
|
-
* assertAllTypeKeys<A>(typeToDummyParam<A>(), ['a', 'b']); // Error: Missing members: c
|
|
65
|
-
* assertAllTypeKeys<A>(typeToDummyParam<A>(), ['a', 'a', 'b', 'c', 'c']); // Error: Duplicate members: a,c
|
|
66
|
-
* ```
|
|
67
|
-
*/
|
|
68
|
-
export declare function assertAllTypeKeys<Type extends object, const Keys extends readonly string[]>(_type: Type, keys: ExactMembers<StringKeys<Type>, Keys>): readonly (keyof Type)[];
|
|
69
|
-
/**
|
|
70
|
-
* Asserts that all members of a union are present in a list of members.
|
|
71
|
-
*
|
|
72
|
-
* @typeParam Type - The type to assert the members of.
|
|
73
|
-
* @typeParam Keys - The list of members to assert.
|
|
74
|
-
* @param _type - The type to assert the members of.
|
|
75
|
-
* @param keys - The list of members to assert.
|
|
76
|
-
* @returns The list of members.
|
|
77
|
-
*
|
|
78
|
-
* @remarks If the incorrect members are provided, the function has a compile-time error.
|
|
79
|
-
*
|
|
80
|
-
* @example
|
|
81
|
-
* ```ts
|
|
82
|
-
* type A = 1 | 2 | 3 | 'a';
|
|
83
|
-
*
|
|
84
|
-
* assertAllUnionMembers(typeToDummyParam<A>(), [1, 2, 3, 'a']); // OK
|
|
85
|
-
* assertAllUnionMembers(typeToDummyParam<A>(), [3, 2, 1, 'a']); // OK, order is ignored
|
|
86
|
-
* assertAllUnionMembers(typeToDummyParam<A>(), [1, 2, 3, 'a', 4]); // Error: Invalid members: 4
|
|
87
|
-
* assertAllUnionMembers(typeToDummyParam<A>(), [1, 2, 3,]); // Error: Missing members: a
|
|
88
|
-
* assertAllUnionMembers(typeToDummyParam<A>(), [1, 2, 3, 'a', 'a']); // Error: Duplicate members: 1,a
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
export declare function assertAllUnionMembers<const Type extends LiteralKey, const Keys extends readonly LiteralKey[]>(_type: Type, keys: ExactMembers<Type, Keys>): readonly Type[];
|
|
92
|
-
/**
|
|
93
|
-
* Converts a type to a dummy parameter.
|
|
94
|
-
*
|
|
95
|
-
* This helper function is useful when we need to get type inference when we cannot use generic type parameters.
|
|
96
|
-
*
|
|
97
|
-
* An example below shows such a scenario.
|
|
98
|
-
*
|
|
99
|
-
* @typeParam T - The type to convert.
|
|
100
|
-
* @returns A dummy parameter of the type.
|
|
101
|
-
*
|
|
102
|
-
* @remarks The result should be used only for type inference. The value should not be used directly.
|
|
103
|
-
*
|
|
104
|
-
* @example
|
|
105
|
-
* ```ts
|
|
106
|
-
* type A = { c: number; };
|
|
107
|
-
* type B = { d: string; }
|
|
108
|
-
*
|
|
109
|
-
* function g<T, U>(u: U) {}
|
|
110
|
-
*
|
|
111
|
-
* // We cannot have partial type inference.
|
|
112
|
-
* g<A>({ d: 'foo' }); // Error: Expected 2 type arguments, but got 1. ts(2558)
|
|
113
|
-
*
|
|
114
|
-
* // We have to call instead
|
|
115
|
-
* g<A, B>({ d: 'foo' }); // OK, but we could not use type inference for `U=B`.
|
|
93
|
+
* typeAsserter<A>().assertAllKeys(['a', 'b', 'c']); // OK
|
|
94
|
+
* typeAsserter<A>().assertAllKeys(['c', 'a', 'b']); // OK, order is ignored
|
|
116
95
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
96
|
+
* type B = 1 | 2 | 3 | 'a';
|
|
97
|
+
* typeAsserter<B>().assertAllMembers([1, 2, 3, 'a']); // OK
|
|
119
98
|
* ```
|
|
120
99
|
*/
|
|
121
|
-
export declare function
|
|
100
|
+
export declare function typeAsserter<Type>(): TypeAsserter<Type>;
|
|
122
101
|
export {};
|
package/dist/lib/esm/Type.mjs
CHANGED
|
@@ -19,36 +19,18 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
ownKeys: dummyThrow,
|
|
33
|
-
preventExtensions: dummyThrow,
|
|
34
|
-
set: dummyThrow,
|
|
35
|
-
setPrototypeOf: dummyThrow
|
|
36
|
-
});
|
|
37
|
-
function assertAllTypeKeys(_type, keys) {
|
|
38
|
-
return Object.freeze(keys.slice());
|
|
39
|
-
}
|
|
40
|
-
function assertAllUnionMembers(_type, keys) {
|
|
41
|
-
return Object.freeze(keys.slice());
|
|
42
|
-
}
|
|
43
|
-
function typeToDummyParam() {
|
|
44
|
-
return DUMMY_PROXY;
|
|
45
|
-
}
|
|
46
|
-
function dummyThrow() {
|
|
47
|
-
throw new Error("Dummy parameter should not be accessed directly.");
|
|
22
|
+
import { castTo } from "./ObjectUtils.mjs";
|
|
23
|
+
function typeAsserter() {
|
|
24
|
+
return castTo({
|
|
25
|
+
assertAllKeys(keys) {
|
|
26
|
+
return Object.freeze(keys.slice());
|
|
27
|
+
},
|
|
28
|
+
assertAllMembers(keys) {
|
|
29
|
+
return Object.freeze(keys.slice());
|
|
30
|
+
}
|
|
31
|
+
});
|
|
48
32
|
}
|
|
49
33
|
export {
|
|
50
|
-
|
|
51
|
-
assertAllUnionMembers,
|
|
52
|
-
typeToDummyParam
|
|
34
|
+
typeAsserter
|
|
53
35
|
};
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1R5cGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVHlwZSB1dGlsaXRpZXMuXG4gKi9cblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIHRoZSBrZXlzIG9mIGFuIG9iamVjdCBhcyBzdHJpbmdzIGFuZCBhc3NlcnRzIHRoYXQgYWxsIGtleXMgYXJlIHByZXNlbnQgaW4gYSBsaXN0IG9mIGtleXMuXG4gKlxuICogQHR5cGVQYXJhbSBUeXBlIC0gVGhlIHR5cGUgb2YgdGhlIG9iamVjdC5cbiAqIEB0eXBlUGFyYW0gS2V5cyAtIFRoZSBsaXN0IG9mIGtleXMgdG8gYXNzZXJ0LlxuICovXG5leHBvcnQgdHlwZSBFeGFjdEtleXM8VHlwZSBleHRlbmRzIG9iamVjdCwgS2V5cyBleHRlbmRzIHJlYWRvbmx5IHN0cmluZ1tdPiA9IEV4YWN0TWVtYmVyczxTdHJpbmdLZXlzPFR5cGU+LCBLZXlzPjtcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgcmV0dXJuIHZhbHVlIHRoYXQgbWF5IGJlIGB2b2lkYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdGhhdCBtYXkgYmUgcmV0dXJuZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGB2b2lkYCByZXR1cm4gdHlwZS5cbmV4cG9ydCB0eXBlIE1heWJlUmV0dXJuPFQ+ID0gVCB8IHZvaWQ7XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgdmFsdWVzIG9mIGFuIG9iamVjdC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVZhbHVlczxUIGV4dGVuZHMgb2JqZWN0PiA9IFRbU3RyaW5nS2V5czxUPl07XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUga2V5cyBvZiBhbiBvYmplY3QgYXMgc3RyaW5ncy5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBTdHJpbmdLZXlzPFQgZXh0ZW5kcyBvYmplY3Q+ID0gRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+O1xuXG50eXBlIExhc3RJblVuaW9uPFVuaW9uPiA9IFVuaW9uVG9JbnRlcnNlY3Rpb248VW5pb24gZXh0ZW5kcyB1bmtub3duID8gKCkgPT4gVW5pb24gOiBuZXZlcj4gZXh0ZW5kcyAoKSA9PiBpbmZlciBMYXN0ID8gTGFzdCA6IG5ldmVyO1xudHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFVuaW9uPiA9IChVbmlvbiBleHRlbmRzIHVua25vd24gPyAoa2V5OiBVbmlvbikgPT4gdm9pZCA6IG5ldmVyKSBleHRlbmRzIChrZXk6IGluZmVyIEludGVyc2VjdGlvbikgPT4gdm9pZCA/IEludGVyc2VjdGlvbiA6IG5ldmVyO1xudHlwZSBVbmlvblRvVHVwbGU8VW5pb24sIExhc3QgPSBMYXN0SW5VbmlvbjxVbmlvbj4+ID0gW1VuaW9uXSBleHRlbmRzIFtuZXZlcl0gPyBbXSA6IFsuLi5VbmlvblRvVHVwbGU8RXhjbHVkZTxVbmlvbiwgTGFzdD4+LCBMYXN0XTtcblxuY29uc3QgRFVNTVlfUFJPWFkgPSBuZXcgUHJveHkoZHVtbXlUaHJvdywge1xuICBhcHBseTogZHVtbXlUaHJvdyxcbiAgY29uc3RydWN0OiBkdW1teVRocm93LFxuICBkZWZpbmVQcm9wZXJ0eTogZHVtbXlUaHJvdyxcbiAgZGVsZXRlUHJvcGVydHk6IGR1bW15VGhyb3csXG4gIGdldDogZHVtbXlUaHJvdyxcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBkdW1teVRocm93LFxuICBnZXRQcm90b3R5cGVPZjogZHVtbXlUaHJvdyxcbiAgaGFzOiBkdW1teVRocm93LFxuICBpc0V4dGVuc2libGU6IGR1bW15VGhyb3csXG4gIG93bktleXM6IGR1bW15VGhyb3csXG4gIHByZXZlbnRFeHRlbnNpb25zOiBkdW1teVRocm93LFxuICBzZXQ6IGR1bW15VGhyb3csXG4gIHNldFByb3RvdHlwZU9mOiBkdW1teVRocm93XG59KTtcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIHRoZSBtZW1iZXJzIG9mIGEgdHlwZS5cbiAqXG4gKiBAdHlwZVBhcmFtIFR5cGUgLSBUaGUgdHlwZSB0byBhc3NlcnQgdGhlIG1lbWJlcnMgb2YuXG4gKiBAdHlwZVBhcmFtIEtleXMgLSBUaGUgbGlzdCBvZiBtZW1iZXJzIHRvIGFzc2VydC5cbiAqL1xuZXhwb3J0IHR5cGUgRXhhY3RNZW1iZXJzPFxuICBUeXBlIGV4dGVuZHMgTGl0ZXJhbEtleSxcbiAgS2V5cyBleHRlbmRzIHJlYWRvbmx5IExpdGVyYWxLZXlbXVxuPiA9IEV4Y2x1ZGU8S2V5c1tudW1iZXJdLCBUeXBlPiBleHRlbmRzIG5ldmVyID8gRXhjbHVkZTxUeXBlLCBLZXlzW251bWJlcl0+IGV4dGVuZHMgbmV2ZXIgPyBEdXBsaWNhdGVzPEtleXM+IGV4dGVuZHMgW10gPyBLZXlzXG4gICAgOiBgRVJST1I6IER1cGxpY2F0ZSBtZW1iZXJzOiAke1R1cGxlVG9DU1Y8RHVwbGljYXRlczxLZXlzPj59YFxuICA6IGBFUlJPUjogTWlzc2luZyBtZW1iZXJzOiAke1R1cGxlVG9DU1Y8VW5pb25Ub1R1cGxlPEV4Y2x1ZGU8VHlwZSwgS2V5c1tudW1iZXJdPj4+fWBcbiAgOiBgRVJST1I6IEludmFsaWQgbWVtYmVyczogJHtUdXBsZVRvQ1NWPFVuaW9uVG9UdXBsZTxFeGNsdWRlPEtleXNbbnVtYmVyXSwgVHlwZT4+Pn1gO1xuXG50eXBlIER1cGxpY2F0ZXM8XG4gIFQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sXG4gIFNlZW4gZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10gPSBbXSxcbiAgQWRkZWQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10gPSBbXSxcbiAgT3V0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdID0gW11cbj4gPSBUIGV4dGVuZHMgcmVhZG9ubHkgW2luZmVyIEZpcnN0LCAuLi5pbmZlciBSZXN0XVxuICA/IEluY2x1ZGVzPFNlZW4sIEZpcnN0PiBleHRlbmRzIHRydWUgPyBJbmNsdWRlczxBZGRlZCwgRmlyc3Q+IGV4dGVuZHMgdHJ1ZSA/IER1cGxpY2F0ZXM8UmVzdCwgU2VlbiwgQWRkZWQsIE91dD5cbiAgICA6IER1cGxpY2F0ZXM8UmVzdCwgU2VlbiwgWy4uLkFkZGVkLCBGaXJzdF0sIFsuLi5PdXQsIEZpcnN0XT5cbiAgOiBEdXBsaWNhdGVzPFJlc3QsIFsuLi5TZWVuLCBGaXJzdF0sIEFkZGVkLCBPdXQ+XG4gIDogT3V0O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyxuby1tYWdpYy1udW1iZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxudHlwZSBFcXVhbDxYLCBZPiA9ICg8VD4oKSA9PiBUIGV4dGVuZHMgWCA/IDEgOiAyKSBleHRlbmRzICg8VD4oKSA9PiBUIGV4dGVuZHMgWSA/IDEgOiAyKSA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJbmNsdWRlczxUeXBlIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBNZW1iZXI+ID0gVHlwZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgUmVzdF1cbiAgPyBFcXVhbDxGaXJzdCwgTWVtYmVyPiBleHRlbmRzIHRydWUgPyB0cnVlIDogSW5jbHVkZXM8UmVzdCwgTWVtYmVyPlxuICA6IGZhbHNlO1xuXG50eXBlIExpdGVyYWxLZXkgPSBudW1iZXIgfCBzdHJpbmc7XG5cbnR5cGUgVG9TdHJpbmc8VD4gPSBUIGV4dGVuZHMgbnVtYmVyIHwgc3RyaW5nID8gYCR7VH1gIDogbmV2ZXI7XG5cbnR5cGUgVHVwbGVUb0NTVjxUdXBsZSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgUmVzdF1cbiAgPyBGaXJzdCBleHRlbmRzIExpdGVyYWxLZXkgPyBSZXN0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdID8gUmVzdFsnbGVuZ3RoJ10gZXh0ZW5kcyAwID8gVG9TdHJpbmc8Rmlyc3Q+IDogYCR7VG9TdHJpbmc8Rmlyc3Q+fSwke1R1cGxlVG9DU1Y8UmVzdD59YFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlclxuICA6ICcnO1xuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhbGwga2V5cyBvZiBhIHR5cGUgYXJlIHByZXNlbnQgaW4gYSBsaXN0IG9mIGtleXMuXG4gKlxuICogQHR5cGVQYXJhbSBUeXBlIC0gVGhlIHR5cGUgdG8gYXNzZXJ0IHRoZSBrZXlzIG9mLlxuICogQHR5cGVQYXJhbSBLZXlzIC0gVGhlIGxpc3Qgb2Yga2V5cyB0byBhc3NlcnQuXG4gKiBAcGFyYW0gX3R5cGUgLSBUaGUgdHlwZSB0byBhc3NlcnQgdGhlIGtleXMgb2YuXG4gKiBAcGFyYW0ga2V5cyAtIFRoZSBsaXN0IG9mIGtleXMgdG8gYXNzZXJ0LlxuICogQHJldHVybnMgVGhlIGxpc3Qgb2Yga2V5cy5cbiAqXG4gKiBAcmVtYXJrcyBJZiB0aGUgaW5jb3JyZWN0IGtleXMgYXJlIHByb3ZpZGVkLCB0aGUgZnVuY3Rpb24gaGFzIGEgY29tcGlsZS10aW1lIGVycm9yLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogdHlwZSBBID0geyBhOiAxLCBiOiAyLCBjOiAzIH07XG4gKiBhc3NlcnRBbGxUeXBlS2V5czxBPih0eXBlVG9EdW1teVBhcmFtPEE+KCksIFsnYScsICdiJywgJ2MnXSk7IC8vIE9LXG4gKiBhc3NlcnRBbGxUeXBlS2V5czxBPih0eXBlVG9EdW1teVBhcmFtPEE+KCksIFsnYycsICdhJywgJ2InXSk7IC8vIE9LLCBvcmRlciBpcyBpZ25vcmVkXG4gKiBhc3NlcnRBbGxUeXBlS2V5czxBPih0eXBlVG9EdW1teVBhcmFtPEE+KCksIFsnYScsICdiJywgJ2MnLCAnZCddKTsgLy8gRXJyb3I6IEludmFsaWQgbWVtYmVyczogZFxuICogYXNzZXJ0QWxsVHlwZUtleXM8QT4odHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbJ2EnLCAnYiddKTsgLy8gRXJyb3I6IE1pc3NpbmcgbWVtYmVyczogY1xuICogYXNzZXJ0QWxsVHlwZUtleXM8QT4odHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbJ2EnLCAnYScsICdiJywgJ2MnLCAnYyddKTsgLy8gRXJyb3I6IER1cGxpY2F0ZSBtZW1iZXJzOiBhLGNcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QWxsVHlwZUtleXM8XG4gIFR5cGUgZXh0ZW5kcyBvYmplY3QsXG4gIGNvbnN0IEtleXMgZXh0ZW5kcyByZWFkb25seSBzdHJpbmdbXVxuPihfdHlwZTogVHlwZSwga2V5czogRXhhY3RNZW1iZXJzPFN0cmluZ0tleXM8VHlwZT4sIEtleXM+KTogcmVhZG9ubHkgKGtleW9mIFR5cGUpW10ge1xuICByZXR1cm4gT2JqZWN0LmZyZWV6ZShrZXlzLnNsaWNlKCkgYXMgKGtleW9mIFR5cGUpW10pO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhbGwgbWVtYmVycyBvZiBhIHVuaW9uIGFyZSBwcmVzZW50IGluIGEgbGlzdCBvZiBtZW1iZXJzLlxuICpcbiAqIEB0eXBlUGFyYW0gVHlwZSAtIFRoZSB0eXBlIHRvIGFzc2VydCB0aGUgbWVtYmVycyBvZi5cbiAqIEB0eXBlUGFyYW0gS2V5cyAtIFRoZSBsaXN0IG9mIG1lbWJlcnMgdG8gYXNzZXJ0LlxuICogQHBhcmFtIF90eXBlIC0gVGhlIHR5cGUgdG8gYXNzZXJ0IHRoZSBtZW1iZXJzIG9mLlxuICogQHBhcmFtIGtleXMgLSBUaGUgbGlzdCBvZiBtZW1iZXJzIHRvIGFzc2VydC5cbiAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIG1lbWJlcnMuXG4gKlxuICogQHJlbWFya3MgSWYgdGhlIGluY29ycmVjdCBtZW1iZXJzIGFyZSBwcm92aWRlZCwgdGhlIGZ1bmN0aW9uIGhhcyBhIGNvbXBpbGUtdGltZSBlcnJvci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHR5cGUgQSA9IDEgfCAyIHwgMyB8ICdhJztcbiAqXG4gKiBhc3NlcnRBbGxVbmlvbk1lbWJlcnModHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbMSwgMiwgMywgJ2EnXSk7IC8vIE9LXG4gKiBhc3NlcnRBbGxVbmlvbk1lbWJlcnModHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbMywgMiwgMSwgJ2EnXSk7IC8vIE9LLCBvcmRlciBpcyBpZ25vcmVkXG4gKiBhc3NlcnRBbGxVbmlvbk1lbWJlcnModHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbMSwgMiwgMywgJ2EnLCA0XSk7IC8vIEVycm9yOiBJbnZhbGlkIG1lbWJlcnM6IDRcbiAqIGFzc2VydEFsbFVuaW9uTWVtYmVycyh0eXBlVG9EdW1teVBhcmFtPEE+KCksIFsxLCAyLCAzLF0pOyAvLyBFcnJvcjogTWlzc2luZyBtZW1iZXJzOiBhXG4gKiBhc3NlcnRBbGxVbmlvbk1lbWJlcnModHlwZVRvRHVtbXlQYXJhbTxBPigpLCBbMSwgMiwgMywgJ2EnLCAnYSddKTsgLy8gRXJyb3I6IER1cGxpY2F0ZSBtZW1iZXJzOiAxLGFcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QWxsVW5pb25NZW1iZXJzPFxuICBjb25zdCBUeXBlIGV4dGVuZHMgTGl0ZXJhbEtleSxcbiAgY29uc3QgS2V5cyBleHRlbmRzIHJlYWRvbmx5IExpdGVyYWxLZXlbXVxuPihfdHlwZTogVHlwZSwga2V5czogRXhhY3RNZW1iZXJzPFR5cGUsIEtleXM+KTogcmVhZG9ubHkgVHlwZVtdIHtcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoa2V5cy5zbGljZSgpIGFzIFR5cGVbXSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB0eXBlIHRvIGEgZHVtbXkgcGFyYW1ldGVyLlxuICpcbiAqIFRoaXMgaGVscGVyIGZ1bmN0aW9uIGlzIHVzZWZ1bCB3aGVuIHdlIG5lZWQgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlIHdoZW4gd2UgY2Fubm90IHVzZSBnZW5lcmljIHR5cGUgcGFyYW1ldGVycy5cbiAqXG4gKiBBbiBleGFtcGxlIGJlbG93IHNob3dzIHN1Y2ggYSBzY2VuYXJpby5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBkdW1teSBwYXJhbWV0ZXIgb2YgdGhlIHR5cGUuXG4gKlxuICogQHJlbWFya3MgVGhlIHJlc3VsdCBzaG91bGQgYmUgdXNlZCBvbmx5IGZvciB0eXBlIGluZmVyZW5jZS4gVGhlIHZhbHVlIHNob3VsZCBub3QgYmUgdXNlZCBkaXJlY3RseS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHR5cGUgQSA9IHsgYzogbnVtYmVyOyB9O1xuICogdHlwZSBCID0geyBkOiBzdHJpbmc7IH1cbiAqXG4gKiBmdW5jdGlvbiBnPFQsIFU+KHU6IFUpIHt9XG4gKlxuICogLy8gV2UgY2Fubm90IGhhdmUgcGFydGlhbCB0eXBlIGluZmVyZW5jZS5cbiAqIGc8QT4oeyBkOiAnZm9vJyB9KTsgLy8gRXJyb3I6IEV4cGVjdGVkIDIgdHlwZSBhcmd1bWVudHMsIGJ1dCBnb3QgMS4gdHMoMjU1OClcbiAqXG4gKiAvLyBXZSBoYXZlIHRvIGNhbGwgaW5zdGVhZFxuICogZzxBLCBCPih7IGQ6ICdmb28nIH0pOyAvLyBPSywgYnV0IHdlIGNvdWxkIG5vdCB1c2UgdHlwZSBpbmZlcmVuY2UgZm9yIGBVPUJgLlxuICpcbiAqIGZ1bmN0aW9uIGcyPFQsIFU+KF90eXBlOiBULCB1OiBVKSB7fVxuICogZzIodHlwZVRvRHVtbXlQYXJhbTxBPigpLCB7IGQ6ICdmb28nIH0pOyAvLyBXZSBjb3VsZCB1c2UgdHlwZSBpbmZlcmVuY2UgZm9yIGBUPUFgIGFuZCBgVT1CYC5cbiAqIGBgYFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlVG9EdW1teVBhcmFtPFQ+KCk6IFQge1xuICByZXR1cm4gRFVNTVlfUFJPWFkgYXMgdW5rbm93biBhcyBUO1xufVxuXG5mdW5jdGlvbiBkdW1teVRocm93KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdEdW1teSBwYXJhbWV0ZXIgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBkaXJlY3RseS4nKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdDQSxNQUFNLGNBQWMsSUFBSSxNQUFNLFlBQVk7QUFBQSxFQUN4QyxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixLQUFLO0FBQUEsRUFDTCwwQkFBMEI7QUFBQSxFQUMxQixnQkFBZ0I7QUFBQSxFQUNoQixLQUFLO0FBQUEsRUFDTCxjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixLQUFLO0FBQUEsRUFDTCxnQkFBZ0I7QUFDbEIsQ0FBQztBQWlFTSxTQUFTLGtCQUdkLE9BQWEsTUFBcUU7QUFDbEYsU0FBTyxPQUFPLE9BQU8sS0FBSyxNQUFNLENBQW1CO0FBQ3JEO0FBd0JPLFNBQVMsc0JBR2QsT0FBYSxNQUFpRDtBQUM5RCxTQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBVztBQUM3QztBQWdDTyxTQUFTLG1CQUF5QjtBQUN2QyxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGFBQW9CO0FBQzNCLFFBQU0sSUFBSSxNQUFNLGtEQUFrRDtBQUNwRTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1R5cGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVHlwZSB1dGlsaXRpZXMuXG4gKi9cblxuaW1wb3J0IHsgY2FzdFRvIH0gZnJvbSAnLi9PYmplY3RVdGlscy50cyc7XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUga2V5cyBvZiBhbiBvYmplY3QgYXMgc3RyaW5ncyBhbmQgYXNzZXJ0cyB0aGF0IGFsbCBrZXlzIGFyZSBwcmVzZW50IGluIGEgbGlzdCBvZiBrZXlzLlxuICpcbiAqIEB0eXBlUGFyYW0gVHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBvYmplY3QuXG4gKiBAdHlwZVBhcmFtIEtleXMgLSBUaGUgbGlzdCBvZiBrZXlzIHRvIGFzc2VydC5cbiAqL1xuZXhwb3J0IHR5cGUgRXhhY3RLZXlzPFR5cGUgZXh0ZW5kcyBvYmplY3QsIEtleXMgZXh0ZW5kcyByZWFkb25seSBzdHJpbmdbXT4gPSBFeGFjdE1lbWJlcnM8U3RyaW5nS2V5czxUeXBlPiwgS2V5cz47XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgbWVtYmVycyBvZiBhIHR5cGUuXG4gKlxuICogQHR5cGVQYXJhbSBUeXBlIC0gVGhlIHR5cGUgdG8gYXNzZXJ0IHRoZSBtZW1iZXJzIG9mLlxuICogQHR5cGVQYXJhbSBLZXlzIC0gVGhlIGxpc3Qgb2YgbWVtYmVycyB0byBhc3NlcnQuXG4gKi9cbmV4cG9ydCB0eXBlIEV4YWN0TWVtYmVyczxcbiAgVHlwZSBleHRlbmRzIExpdGVyYWxLZXksXG4gIEtleXMgZXh0ZW5kcyByZWFkb25seSBMaXRlcmFsS2V5W11cbj4gPSBFeGNsdWRlPEtleXNbbnVtYmVyXSwgVHlwZT4gZXh0ZW5kcyBuZXZlciA/IEV4Y2x1ZGU8VHlwZSwgS2V5c1tudW1iZXJdPiBleHRlbmRzIG5ldmVyID8gRHVwbGljYXRlczxLZXlzPiBleHRlbmRzIFtdID8gS2V5c1xuICAgIDogYEVSUk9SOiBEdXBsaWNhdGUgbWVtYmVyczogJHtUdXBsZVRvQ1NWPER1cGxpY2F0ZXM8S2V5cz4+fWBcbiAgOiBgRVJST1I6IE1pc3NpbmcgbWVtYmVyczogJHtUdXBsZVRvQ1NWPFVuaW9uVG9UdXBsZTxFeGNsdWRlPFR5cGUsIEtleXNbbnVtYmVyXT4+Pn1gXG4gIDogYEVSUk9SOiBJbnZhbGlkIG1lbWJlcnM6ICR7VHVwbGVUb0NTVjxVbmlvblRvVHVwbGU8RXhjbHVkZTxLZXlzW251bWJlcl0sIFR5cGU+Pj59YDtcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgcmV0dXJuIHZhbHVlIHRoYXQgbWF5IGJlIGB2b2lkYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgdGhhdCBtYXkgYmUgcmV0dXJuZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGB2b2lkYCByZXR1cm4gdHlwZS5cbmV4cG9ydCB0eXBlIE1heWJlUmV0dXJuPFQ+ID0gVCB8IHZvaWQ7XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgdmFsdWVzIG9mIGFuIG9iamVjdC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBQcm9wZXJ0eVZhbHVlczxUIGV4dGVuZHMgb2JqZWN0PiA9IFRbU3RyaW5nS2V5czxUPl07XG5cbi8qKlxuICogQSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUga2V5cyBvZiBhbiBvYmplY3QgYXMgc3RyaW5ncy5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgb2JqZWN0LlxuICovXG5leHBvcnQgdHlwZSBTdHJpbmdLZXlzPFQgZXh0ZW5kcyBvYmplY3Q+ID0gRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+O1xuXG4vKipcbiAqIEEgaGVscGVyIHRoYXQgY2FwdHVyZXMgYSB0eXBlIHBhcmFtZXRlciBhbmQgcHJvdmlkZXMgbWV0aG9kcyBmb3IgY29tcGlsZS10aW1lIGV4aGF1c3RpdmVuZXNzIGNoZWNrcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFR5cGUgLSBUaGUgY2FwdHVyZWQgdHlwZS5cbiAqXG4gKiBAcmVtYXJrc1xuICogLSBgYXNzZXJ0QWxsS2V5c2AgaXMgYXZhaWxhYmxlIHdoZW4gYFR5cGVgIGlzIGFuIG9iamVjdCB0eXBlLlxuICogLSBgYXNzZXJ0QWxsTWVtYmVyc2AgaXMgYXZhaWxhYmxlIHdoZW4gYFR5cGVgIGlzIGEgbGl0ZXJhbCBrZXkgdW5pb24gKGBzdHJpbmcgfCBudW1iZXJgKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHR5cGUgQSA9IHsgYTogMSwgYjogMiwgYzogMyB9O1xuICogdHlwZUFzc2VydGVyPEE+KCkuYXNzZXJ0QWxsS2V5cyhbJ2EnLCAnYicsICdjJ10pOyAvLyBPS1xuICogdHlwZUFzc2VydGVyPEE+KCkuYXNzZXJ0QWxsS2V5cyhbJ2MnLCAnYScsICdiJ10pOyAvLyBPSywgb3JkZXIgaXMgaWdub3JlZFxuICogdHlwZUFzc2VydGVyPEE+KCkuYXNzZXJ0QWxsS2V5cyhbJ2EnLCAnYicsICdjJywgJ2QnXSk7IC8vIEVycm9yOiBJbnZhbGlkIG1lbWJlcnM6IGRcbiAqIHR5cGVBc3NlcnRlcjxBPigpLmFzc2VydEFsbEtleXMoWydhJywgJ2InXSk7IC8vIEVycm9yOiBNaXNzaW5nIG1lbWJlcnM6IGNcbiAqXG4gKiB0eXBlIEIgPSAxIHwgMiB8IDMgfCAnYSc7XG4gKiB0eXBlQXNzZXJ0ZXI8Qj4oKS5hc3NlcnRBbGxNZW1iZXJzKFsxLCAyLCAzLCAnYSddKTsgLy8gT0tcbiAqIHR5cGVBc3NlcnRlcjxCPigpLmFzc2VydEFsbE1lbWJlcnMoWzEsIDIsIDMsICdhJywgNF0pOyAvLyBFcnJvcjogSW52YWxpZCBtZW1iZXJzOiA0XG4gKiB0eXBlQXNzZXJ0ZXI8Qj4oKS5hc3NlcnRBbGxNZW1iZXJzKFsxLCAyLCAzXSk7IC8vIEVycm9yOiBNaXNzaW5nIG1lbWJlcnM6IGFcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVBc3NlcnRlcjxUeXBlPiB7XG4gIC8qKlxuICAgKiBBc3NlcnRzIHRoYXQgYWxsIGtleXMgb2YgYW4gb2JqZWN0IHR5cGUgYXJlIHByZXNlbnQgaW4gYSBsaXN0IG9mIGtleXMuXG4gICAqXG4gICAqIEByZW1hcmtzIE9ubHkgYXZhaWxhYmxlIHdoZW4gYFtUeXBlXSBleHRlbmRzIFtvYmplY3RdYC5cbiAgICovXG4gIGFzc2VydEFsbEtleXM6IFtUeXBlXSBleHRlbmRzIFtvYmplY3RdID8gPGNvbnN0IEtleXMgZXh0ZW5kcyByZWFkb25seSBzdHJpbmdbXT4oXG4gICAgICBrZXlzOiBFeGFjdE1lbWJlcnM8U3RyaW5nS2V5czxUeXBlPiwgS2V5cz5cbiAgICApID0+IHJlYWRvbmx5IChrZXlvZiBUeXBlKVtdXG4gICAgOiBuZXZlcjtcblxuICAvKipcbiAgICogQXNzZXJ0cyB0aGF0IGFsbCBtZW1iZXJzIG9mIGEgdW5pb24gdHlwZSBhcmUgcHJlc2VudCBpbiBhIGxpc3Qgb2YgbWVtYmVycy5cbiAgICpcbiAgICogQHJlbWFya3MgT25seSBhdmFpbGFibGUgd2hlbiBgW1R5cGVdIGV4dGVuZHMgW0xpdGVyYWxLZXldYC5cbiAgICovXG4gIGFzc2VydEFsbE1lbWJlcnM6IFtUeXBlXSBleHRlbmRzIFtMaXRlcmFsS2V5XSA/IDxjb25zdCBLZXlzIGV4dGVuZHMgcmVhZG9ubHkgTGl0ZXJhbEtleVtdPihcbiAgICAgIGtleXM6IEV4YWN0TWVtYmVyczxUeXBlLCBLZXlzPlxuICAgICkgPT4gcmVhZG9ubHkgVHlwZVtdXG4gICAgOiBuZXZlcjtcbn1cbnR5cGUgRHVwbGljYXRlczxcbiAgVCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSxcbiAgU2VlbiBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSA9IFtdLFxuICBBZGRlZCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSA9IFtdLFxuICBPdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10gPSBbXVxuPiA9IFQgZXh0ZW5kcyByZWFkb25seSBbaW5mZXIgRmlyc3QsIC4uLmluZmVyIFJlc3RdXG4gID8gSW5jbHVkZXM8U2VlbiwgRmlyc3Q+IGV4dGVuZHMgdHJ1ZSA/IEluY2x1ZGVzPEFkZGVkLCBGaXJzdD4gZXh0ZW5kcyB0cnVlID8gRHVwbGljYXRlczxSZXN0LCBTZWVuLCBBZGRlZCwgT3V0PlxuICAgIDogRHVwbGljYXRlczxSZXN0LCBTZWVuLCBbLi4uQWRkZWQsIEZpcnN0XSwgWy4uLk91dCwgRmlyc3RdPlxuICA6IER1cGxpY2F0ZXM8UmVzdCwgWy4uLlNlZW4sIEZpcnN0XSwgQWRkZWQsIE91dD5cbiAgOiBPdXQ7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyxuby1tYWdpYy1udW1iZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxudHlwZSBFcXVhbDxYLCBZPiA9ICg8VD4oKSA9PiBUIGV4dGVuZHMgWCA/IDEgOiAyKSBleHRlbmRzICg8VD4oKSA9PiBUIGV4dGVuZHMgWSA/IDEgOiAyKSA/IHRydWUgOiBmYWxzZTtcblxudHlwZSBJbmNsdWRlczxUeXBlIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBNZW1iZXI+ID0gVHlwZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgUmVzdF1cbiAgPyBFcXVhbDxGaXJzdCwgTWVtYmVyPiBleHRlbmRzIHRydWUgPyB0cnVlIDogSW5jbHVkZXM8UmVzdCwgTWVtYmVyPlxuICA6IGZhbHNlO1xuXG50eXBlIExhc3RJblVuaW9uPFVuaW9uPiA9IFVuaW9uVG9JbnRlcnNlY3Rpb248VW5pb24gZXh0ZW5kcyB1bmtub3duID8gKCkgPT4gVW5pb24gOiBuZXZlcj4gZXh0ZW5kcyAoKSA9PiBpbmZlciBMYXN0ID8gTGFzdCA6IG5ldmVyO1xuXG50eXBlIExpdGVyYWxLZXkgPSBudW1iZXIgfCBzdHJpbmc7XG5cbnR5cGUgVG9TdHJpbmc8VD4gPSBUIGV4dGVuZHMgbnVtYmVyIHwgc3RyaW5nID8gYCR7VH1gIDogbmV2ZXI7XG5cbnR5cGUgVHVwbGVUb0NTVjxUdXBsZSBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBUdXBsZSBleHRlbmRzIHJlYWRvbmx5IFtpbmZlciBGaXJzdCwgLi4uaW5mZXIgUmVzdF1cbiAgPyBGaXJzdCBleHRlbmRzIExpdGVyYWxLZXkgPyBSZXN0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdID8gUmVzdFsnbGVuZ3RoJ10gZXh0ZW5kcyAwID8gVG9TdHJpbmc8Rmlyc3Q+IDogYCR7VG9TdHJpbmc8Rmlyc3Q+fSwke1R1cGxlVG9DU1Y8UmVzdD59YFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlclxuICA6ICcnO1xuXG50eXBlIFVuaW9uVG9JbnRlcnNlY3Rpb248VW5pb24+ID0gKFVuaW9uIGV4dGVuZHMgdW5rbm93biA/IChrZXk6IFVuaW9uKSA9PiB2b2lkIDogbmV2ZXIpIGV4dGVuZHMgKGtleTogaW5mZXIgSW50ZXJzZWN0aW9uKSA9PiB2b2lkID8gSW50ZXJzZWN0aW9uIDogbmV2ZXI7XG5cbnR5cGUgVW5pb25Ub1R1cGxlPFVuaW9uLCBMYXN0ID0gTGFzdEluVW5pb248VW5pb24+PiA9IFtVbmlvbl0gZXh0ZW5kcyBbbmV2ZXJdID8gW10gOiBbLi4uVW5pb25Ub1R1cGxlPEV4Y2x1ZGU8VW5pb24sIExhc3Q+PiwgTGFzdF07XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR5cGUgaGVscGVyIHRoYXQgY2FwdHVyZXMgYSB0eXBlIHBhcmFtZXRlciBmb3IgY29tcGlsZS10aW1lIGV4aGF1c3RpdmVuZXNzIGNoZWNrcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFR5cGUgLSBUaGUgdHlwZSB0byBjYXB0dXJlLlxuICogQHJldHVybnMgQSB7QGxpbmsgVHlwZUFzc2VydGVyfSB3aXRoIGBhc3NlcnRBbGxLZXlzYCBhbmQgYGFzc2VydEFsbE1lbWJlcnNgIG1ldGhvZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiB0eXBlIEEgPSB7IGE6IDEsIGI6IDIsIGM6IDMgfTtcbiAqIHR5cGVBc3NlcnRlcjxBPigpLmFzc2VydEFsbEtleXMoWydhJywgJ2InLCAnYyddKTsgLy8gT0tcbiAqIHR5cGVBc3NlcnRlcjxBPigpLmFzc2VydEFsbEtleXMoWydjJywgJ2EnLCAnYiddKTsgLy8gT0ssIG9yZGVyIGlzIGlnbm9yZWRcbiAqXG4gKiB0eXBlIEIgPSAxIHwgMiB8IDMgfCAnYSc7XG4gKiB0eXBlQXNzZXJ0ZXI8Qj4oKS5hc3NlcnRBbGxNZW1iZXJzKFsxLCAyLCAzLCAnYSddKTsgLy8gT0tcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdHlwZUFzc2VydGVyPFR5cGU+KCk6IFR5cGVBc3NlcnRlcjxUeXBlPiB7XG4gIHJldHVybiBjYXN0VG88VHlwZUFzc2VydGVyPFR5cGU+Pih7XG4gICAgYXNzZXJ0QWxsS2V5czxjb25zdCBLZXlzIGV4dGVuZHMgcmVhZG9ubHkgc3RyaW5nW10+KFxuICAgICAga2V5czogRXhhY3RNZW1iZXJzPFN0cmluZ0tleXM8b2JqZWN0ICYgVHlwZT4sIEtleXM+XG4gICAgKTogcmVhZG9ubHkgKGtleW9mIChvYmplY3QgJiBUeXBlKSlbXSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShrZXlzLnNsaWNlKCkgYXMgKGtleW9mIChvYmplY3QgJiBUeXBlKSlbXSk7XG4gICAgfSxcbiAgICBhc3NlcnRBbGxNZW1iZXJzPGNvbnN0IEtleXMgZXh0ZW5kcyByZWFkb25seSBMaXRlcmFsS2V5W10+KFxuICAgICAga2V5czogRXhhY3RNZW1iZXJzPExpdGVyYWxLZXkgJiBUeXBlLCBLZXlzPlxuICAgICk6IHJlYWRvbmx5IChMaXRlcmFsS2V5ICYgVHlwZSlbXSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShrZXlzLnNsaWNlKCkgYXMgKExpdGVyYWxLZXkgJiBUeXBlKVtdKTtcbiAgICB9XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTUEsU0FBUyxjQUFjO0FBMkloQixTQUFTLGVBQXlDO0FBQ3ZELFNBQU8sT0FBMkI7QUFBQSxJQUNoQyxjQUNFLE1BQ29DO0FBQ3BDLGFBQU8sT0FBTyxPQUFPLEtBQUssTUFBTSxDQUE4QjtBQUFBLElBQ2hFO0FBQUEsSUFDQSxpQkFDRSxNQUNnQztBQUNoQyxhQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBMEI7QUFBQSxJQUM1RDtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* Contains utility functions for type guards.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A type that represents a generic object.
|
|
8
|
+
*/
|
|
9
|
+
export type GenericObject = Record<string, unknown>;
|
|
10
|
+
type NullableConstraint<T> = null extends T ? unknown : undefined extends T ? unknown : never;
|
|
11
|
+
/**
|
|
12
|
+
* Asserts that a value is a generic object, narrowing its type in place.
|
|
13
|
+
*
|
|
14
|
+
* @param _obj - The value to assert.
|
|
15
|
+
*/
|
|
16
|
+
export declare function assertGenericObject(_obj: object): asserts _obj is GenericObject;
|
|
17
|
+
/**
|
|
18
|
+
* Asserts that a value is not `null` or `undefined`, narrowing its type in place.
|
|
19
|
+
*
|
|
20
|
+
* Only callable when `T` includes `null` or `undefined`. Passing an already non-nullable type is a compile error.
|
|
21
|
+
*
|
|
22
|
+
* @typeParam T - The type of the value.
|
|
23
|
+
* @param value - The value to check.
|
|
24
|
+
* @param errorOrMessage - Optional {@link Error} or error message string.
|
|
25
|
+
* @throws If the value is `null` or `undefined`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function assertNonNullable<T extends NullableConstraint<T>>(value: T, errorOrMessage?: Error | string): asserts value is NonNullable<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Ensures that a value is a generic object, returning it with narrowed type.
|
|
30
|
+
*
|
|
31
|
+
* @param obj - The value to ensure.
|
|
32
|
+
* @returns The value as a generic object.
|
|
33
|
+
*/
|
|
34
|
+
export declare function ensureGenericObject(obj: object): GenericObject;
|
|
35
|
+
/**
|
|
36
|
+
* Ensures that a value is not `null` or `undefined` and returns it with narrowed type.
|
|
37
|
+
*
|
|
38
|
+
* Only callable when `T` includes `null` or `undefined`. Passing an already non-nullable type is a compile error.
|
|
39
|
+
*
|
|
40
|
+
* @typeParam T - The type of the value.
|
|
41
|
+
* @param value - The value to check.
|
|
42
|
+
* @param errorOrMessage - Optional {@link Error} or error message string.
|
|
43
|
+
* @returns The value with `null` and `undefined` excluded from its type.
|
|
44
|
+
* @throws If the value is `null` or `undefined`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ensureNonNullable<T extends NullableConstraint<T>>(value: T, errorOrMessage?: Error | string): NonNullable<T>;
|
|
47
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initEsm() {
|
|
7
|
+
if (globalThis.process) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const browserProcess = {
|
|
12
|
+
browser: true,
|
|
13
|
+
cwd() {
|
|
14
|
+
return '/';
|
|
15
|
+
},
|
|
16
|
+
env: {},
|
|
17
|
+
platform: 'android'
|
|
18
|
+
};
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
import { noop } from "./Function.mjs";
|
|
23
|
+
function assertGenericObject(_obj) {
|
|
24
|
+
noop();
|
|
25
|
+
}
|
|
26
|
+
function assertNonNullable(value, errorOrMessage) {
|
|
27
|
+
if (value !== null && value !== void 0) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
errorOrMessage ??= value === null ? "Value is null" : "Value is undefined";
|
|
31
|
+
const error = typeof errorOrMessage === "string" ? new Error(errorOrMessage) : errorOrMessage;
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
function ensureGenericObject(obj) {
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
|
37
|
+
function ensureNonNullable(value, errorOrMessage) {
|
|
38
|
+
assertNonNullable(value, errorOrMessage);
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
assertGenericObject,
|
|
43
|
+
assertNonNullable,
|
|
44
|
+
ensureGenericObject,
|
|
45
|
+
ensureNonNullable
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1R5cGVHdWFyZHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHR5cGUgZ3VhcmRzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL0Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgZ2VuZXJpYyBvYmplY3QuXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxudHlwZSBOdWxsYWJsZUNvbnN0cmFpbnQ8VD4gPSBudWxsIGV4dGVuZHMgVCA/IHVua25vd24gOiB1bmRlZmluZWQgZXh0ZW5kcyBUID8gdW5rbm93biA6IG5ldmVyO1xuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHZhbHVlIGlzIGEgZ2VuZXJpYyBvYmplY3QsIG5hcnJvd2luZyBpdHMgdHlwZSBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gX29iaiAtIFRoZSB2YWx1ZSB0byBhc3NlcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRHZW5lcmljT2JqZWN0KF9vYmo6IG9iamVjdCk6IGFzc2VydHMgX29iaiBpcyBHZW5lcmljT2JqZWN0IHtcbiAgbm9vcCgpO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHZhbHVlIGlzIG5vdCBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIG5hcnJvd2luZyBpdHMgdHlwZSBpbiBwbGFjZS5cbiAqXG4gKiBPbmx5IGNhbGxhYmxlIHdoZW4gYFRgIGluY2x1ZGVzIGBudWxsYCBvciBgdW5kZWZpbmVkYC4gUGFzc2luZyBhbiBhbHJlYWR5IG5vbi1udWxsYWJsZSB0eXBlIGlzIGEgY29tcGlsZSBlcnJvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXJyb3JPck1lc3NhZ2UgLSBPcHRpb25hbCB7QGxpbmsgRXJyb3J9IG9yIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLlxuICogQHRocm93cyBJZiB0aGUgdmFsdWUgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0Tm9uTnVsbGFibGU8VCBleHRlbmRzIE51bGxhYmxlQ29uc3RyYWludDxUPj4odmFsdWU6IFQsIGVycm9yT3JNZXNzYWdlPzogRXJyb3IgfCBzdHJpbmcpOiBhc3NlcnRzIHZhbHVlIGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlcnJvck9yTWVzc2FnZSA/Pz0gdmFsdWUgPT09IG51bGwgPyAnVmFsdWUgaXMgbnVsbCcgOiAnVmFsdWUgaXMgdW5kZWZpbmVkJztcbiAgY29uc3QgZXJyb3IgPSB0eXBlb2YgZXJyb3JPck1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKGVycm9yT3JNZXNzYWdlKSA6IGVycm9yT3JNZXNzYWdlO1xuICB0aHJvdyBlcnJvcjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSB2YWx1ZSBpcyBhIGdlbmVyaWMgb2JqZWN0LCByZXR1cm5pbmcgaXQgd2l0aCBuYXJyb3dlZCB0eXBlLlxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgdmFsdWUgdG8gZW5zdXJlLlxuICogQHJldHVybnMgVGhlIHZhbHVlIGFzIGEgZ2VuZXJpYyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVHZW5lcmljT2JqZWN0KG9iajogb2JqZWN0KTogR2VuZXJpY09iamVjdCB7XG4gIHJldHVybiBvYmogYXMgR2VuZXJpY09iamVjdDtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSB2YWx1ZSBpcyBub3QgYG51bGxgIG9yIGB1bmRlZmluZWRgIGFuZCByZXR1cm5zIGl0IHdpdGggbmFycm93ZWQgdHlwZS5cbiAqXG4gKiBPbmx5IGNhbGxhYmxlIHdoZW4gYFRgIGluY2x1ZGVzIGBudWxsYCBvciBgdW5kZWZpbmVkYC4gUGFzc2luZyBhbiBhbHJlYWR5IG5vbi1udWxsYWJsZSB0eXBlIGlzIGEgY29tcGlsZSBlcnJvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXJyb3JPck1lc3NhZ2UgLSBPcHRpb25hbCB7QGxpbmsgRXJyb3J9IG9yIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHZhbHVlIHdpdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYCBleGNsdWRlZCBmcm9tIGl0cyB0eXBlLlxuICogQHRocm93cyBJZiB0aGUgdmFsdWUgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTm9uTnVsbGFibGU8VCBleHRlbmRzIE51bGxhYmxlQ29uc3RyYWludDxUPj4odmFsdWU6IFQsIGVycm9yT3JNZXNzYWdlPzogRXJyb3IgfCBzdHJpbmcpOiBOb25OdWxsYWJsZTxUPiB7XG4gIGFzc2VydE5vbk51bGxhYmxlKHZhbHVlLCBlcnJvck9yTWVzc2FnZSk7XG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsWUFBWTtBQWNkLFNBQVMsb0JBQW9CLE1BQTZDO0FBQy9FLE9BQUs7QUFDUDtBQVlPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWtFO0FBQzdJLE1BQUksVUFBVSxRQUFRLFVBQVUsUUFBVztBQUN6QztBQUFBLEVBQ0Y7QUFFQSxxQkFBbUIsVUFBVSxPQUFPLGtCQUFrQjtBQUN0RCxRQUFNLFFBQVEsT0FBTyxtQkFBbUIsV0FBVyxJQUFJLE1BQU0sY0FBYyxJQUFJO0FBQy9FLFFBQU07QUFDUjtBQVFPLFNBQVMsb0JBQW9CLEtBQTRCO0FBQzlELFNBQU87QUFDVDtBQWFPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWlEO0FBQzVILG9CQUFrQixPQUFPLGNBQWM7QUFDdkMsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/lib/esm/index.d.mts
CHANGED
|
@@ -20,5 +20,6 @@ export * as String from './String.mjs';
|
|
|
20
20
|
export * as Transformers from './Transformers/index.mjs';
|
|
21
21
|
export * as TwoWayMap from './TwoWayMap.mjs';
|
|
22
22
|
export * as Type from './Type.mjs';
|
|
23
|
+
export * as TypeGuards from './TypeGuards.mjs';
|
|
23
24
|
export * as url from './url.mjs';
|
|
24
25
|
export * as ValueProvider from './ValueProvider.mjs';
|
package/dist/lib/esm/index.mjs
CHANGED
|
@@ -41,6 +41,7 @@ import * as String from "./String.mjs";
|
|
|
41
41
|
import * as Transformers from "./Transformers/index.mjs";
|
|
42
42
|
import * as TwoWayMap from "./TwoWayMap.mjs";
|
|
43
43
|
import * as Type from "./Type.mjs";
|
|
44
|
+
import * as TypeGuards from "./TypeGuards.mjs";
|
|
44
45
|
import * as url from "./url.mjs";
|
|
45
46
|
import * as ValueProvider from "./ValueProvider.mjs";
|
|
46
47
|
export {
|
|
@@ -64,9 +65,10 @@ export {
|
|
|
64
65
|
Transformers,
|
|
65
66
|
TwoWayMap,
|
|
66
67
|
Type,
|
|
68
|
+
TypeGuards,
|
|
67
69
|
ValueProvider,
|
|
68
70
|
codemirror,
|
|
69
71
|
obsidian,
|
|
70
72
|
url
|
|
71
73
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQWJvcnRDb250cm9sbGVyIGZyb20gJy4vQWJvcnRDb250cm9sbGVyLnRzJztcbmV4cG9ydCAqIGFzIEFycmF5IGZyb20gJy4vQXJyYXkudHMnO1xuZXhwb3J0ICogYXMgQXN5bmMgZnJvbSAnLi9Bc3luYy50cyc7XG5leHBvcnQgKiBhcyBBc3luY0V2ZW50cyBmcm9tICcuL0FzeW5jRXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzIEJsb2IgZnJvbSAnLi9CbG9iLnRzJztcbmV4cG9ydCAqIGFzIGNvZGVtaXJyb3IgZnJvbSAnLi9jb2RlbWlycm9yL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIENzc0NsYXNzIGZyb20gJy4vQ3NzQ2xhc3MudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1Z0NvbnRyb2xsZXIgZnJvbSAnLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuZXhwb3J0ICogYXMgRW51bSBmcm9tICcuL0VudW0udHMnO1xuZXhwb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9FcnJvci50cyc7XG5leHBvcnQgKiBhcyBGdW5jdGlvbiBmcm9tICcuL0Z1bmN0aW9uLnRzJztcbmV4cG9ydCAqIGFzIEhUTUxFbGVtZW50IGZyb20gJy4vSFRNTEVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgTGlicmFyeSBmcm9tICcuL0xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgT2JqZWN0VXRpbHMgZnJvbSAnLi9PYmplY3RVdGlscy50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbiBmcm9tICcuL29ic2lkaWFuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFBhdGggZnJvbSAnLi9QYXRoLnRzJztcbmV4cG9ydCAqIGFzIFJlZ0V4cCBmcm9tICcuL1JlZ0V4cC50cyc7XG5leHBvcnQgKiBhcyBTdHJpbmcgZnJvbSAnLi9TdHJpbmcudHMnO1xuZXhwb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vVHJhbnNmb3JtZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFR3b1dheU1hcCBmcm9tICcuL1R3b1dheU1hcC50cyc7XG5leHBvcnQgKiBhcyBUeXBlIGZyb20gJy4vVHlwZS50cyc7XG5leHBvcnQgKiBhcyBUeXBlR3VhcmRzIGZyb20gJy4vVHlwZUd1YXJkcy50cyc7XG5leHBvcnQgKiBhcyB1cmwgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVQcm92aWRlciBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsWUFBWSxxQkFBcUI7QUFDakMsWUFBWSxXQUFXO0FBQ3ZCLFlBQVksV0FBVztBQUN2QixZQUFZLGlCQUFpQjtBQUM3QixZQUFZLFVBQVU7QUFDdEIsWUFBWSxnQkFBZ0I7QUFDNUIsWUFBWSxjQUFjO0FBQzFCLFlBQVksV0FBVztBQUN2QixZQUFZLHFCQUFxQjtBQUNqQyxZQUFZLFVBQVU7QUFDdEIsWUFBWSxXQUFXO0FBQ3ZCLFlBQVksY0FBYztBQUMxQixZQUFZLGlCQUFpQjtBQUM3QixZQUFZLGFBQWE7QUFDekIsWUFBWSxpQkFBaUI7QUFDN0IsWUFBWSxjQUFjO0FBQzFCLFlBQVksVUFBVTtBQUN0QixZQUFZLFlBQVk7QUFDeEIsWUFBWSxZQUFZO0FBQ3hCLFlBQVksa0JBQWtCO0FBQzlCLFlBQVksZUFBZTtBQUMzQixZQUFZLFVBQVU7QUFDdEIsWUFBWSxnQkFBZ0I7QUFDNUIsWUFBWSxTQUFTO0FBQ3JCLFlBQVksbUJBQW1COyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -59,4 +59,4 @@ export {
|
|
|
59
59
|
getApp,
|
|
60
60
|
getObsidianDevUtilsState
|
|
61
61
|
};
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gcmV0cmlldmUgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi9UeXBlR3VhcmRzLnRzJztcblxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL0Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIGFjY2Vzc2luZyB0aGUgYEFwcGAgaW5zdGFuY2UgZ2xvYmFsbHkuXG4gKi9cbmludGVyZmFjZSBBcHBXcmFwcGVyIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUgT2JzaWRpYW4gYEFwcGAgaW5zdGFuY2UuXG4gICAqL1xuICBhcHA6IEFwcDtcbn1cblxuaW50ZXJmYWNlIE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVdyYXBwZXIge1xuICBvYnNpZGlhbkRldlV0aWxzU3RhdGU6IEdlbmVyaWNPYmplY3Q7XG59XG5cbi8qKlxuICogV3JhcHBlciB0eXBlIGZvciBzdG9yaW5nIHNoYXJlZCBzdGF0ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQ+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdmFsdWUgd3JhcHBlci5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHZhbHVlOiBUKSB7XG4gICAgbm9vcCgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBPYnNpZGlhbiBgQXBwYCBpbnN0YW5jZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYEFwcGAgaW5zdGFuY2UuXG4gKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGBBcHBgIGluc3RhbmNlIGNhbm5vdCBiZSBmb3VuZC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tY29kZXNjcmlwdC10b29sa2l0P3RhYj1yZWFkbWUtb3YtZmlsZSNvYnNpZGlhbmFwcC1tb2R1bGV9XG4gKiBAZGVwcmVjYXRlZCBVc2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCByZWNvbW1lbmRlZC4gUGFzcyB0aGUge0BsaW5rIEFwcH0gaW5zdGFuY2UgdG8gdGhlIGZ1bmN0aW9uIGluc3RlYWQgd2hlbiBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcCgpOiBBcHAge1xuICBjb25zdCBhcHAgPSAoZ2xvYmFsVGhpcyBhcyBQYXJ0aWFsPEFwcFdyYXBwZXI+KS5hcHA7XG5cbiAgaWYgKGFwcCkge1xuICAgIHJldHVybiBhcHA7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnJlcXVpcmUoJ29ic2lkaWFuL2FwcCcpIGFzIEFwcDtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPYnNpZGlhbiBBcHAgZ2xvYmFsIGluc3RhbmNlIG5vdCBmb3VuZCcpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIG9yIGNyZWF0ZXMgYSBzaGFyZWQgc3RhdGUgd3JhcHBlciBvYmplY3QgZm9yIGEgZ2l2ZW4ga2V5IGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSBvciByZXRyaWV2ZSB0aGUgc2hhcmVkIHN0YXRlLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSBpZiB0aGUgc2hhcmVkIHN0YXRlIGRvZXMgbm90IGV4aXN0LlxuICogQHJldHVybnMgVGhlIFZhbHVlV3JhcHBlciBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZTxUPihhcHA6IEFwcCB8IG51bGwsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBWYWx1ZVdyYXBwZXI8VD4ge1xuICBjb25zdCBob2xkZXIgPSBhcHAgPz8gZ2V0QXBwT3JOdWxsKCkgPz8gZ2xvYmFsVGhpcztcbiAgY29uc3Qgc2hhcmVkU3RhdGVXcmFwcGVyID0gaG9sZGVyIGFzIFBhcnRpYWw8T2JzaWRpYW5EZXZVdGlsc1N0YXRlV3JhcHBlcj47XG4gIHNoYXJlZFN0YXRlV3JhcHBlci5vYnNpZGlhbkRldlV0aWxzU3RhdGUgPz89IHt9O1xuICByZXR1cm4gKHNoYXJlZFN0YXRlV3JhcHBlci5vYnNpZGlhbkRldlV0aWxzU3RhdGVba2V5XSA/Pz0gbmV3IFZhbHVlV3JhcHBlcjxUPihkZWZhdWx0VmFsdWUpKSBhcyBWYWx1ZVdyYXBwZXI8VD47XG59XG5cbmZ1bmN0aW9uIGdldEFwcE9yTnVsbCgpOiBBcHAgfCBudWxsIHtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIE9ubHkgcmVhY2hhYmxlIGluIE9ic2lkaWFuICh3aW5kb3cgZGVmaW5lZCkuICovXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1kZXByZWNhdGVkIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIHRvIGdldCB0aGUgYXBwIGluc3RhbmNlLlxuICByZXR1cm4gZ2V0QXBwKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxTQUFTLFlBQVk7QUFtQmQsTUFBTSxhQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1wQixZQUFtQixPQUFVO0FBQVY7QUFDeEIsU0FBSztBQUFBLEVBQ1A7QUFDRjtBQVdPLFNBQVMsU0FBYztBQUM1QixRQUFNLE1BQU8sV0FBbUM7QUFFaEQsTUFBSSxLQUFLO0FBQ1AsV0FBTztBQUFBLEVBQ1Q7QUFFQSxNQUFJO0FBQ0YsV0FBTyxXQUFXLFFBQVEsY0FBYztBQUFBLEVBQzFDLFFBQVE7QUFDTixVQUFNLElBQUksTUFBTSx3Q0FBd0M7QUFBQSxFQUMxRDtBQUNGO0FBVU8sU0FBUyx5QkFBNEIsS0FBaUIsS0FBYSxjQUFrQztBQUMxRyxRQUFNLFNBQVMsT0FBTyxhQUFhLEtBQUs7QUFDeEMsUUFBTSxxQkFBcUI7QUFDM0IscUJBQW1CLDBCQUEwQixDQUFDO0FBQzlDLFNBQVEsbUJBQW1CLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxhQUFnQixZQUFZO0FBQzVGO0FBRUEsU0FBUyxlQUEyQjtBQUVsQyxNQUFJLE9BQU8sV0FBVyxhQUFhO0FBQ2pDLFdBQU87QUFBQSxFQUNUO0FBR0EsU0FBTyxPQUFPO0FBRWhCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -15,23 +15,23 @@ export interface RetryWithTimeoutNoticeOptions {
|
|
|
15
15
|
* @param abortSignal - The abort signal to listen to.
|
|
16
16
|
* @returns The result of the function.
|
|
17
17
|
*/
|
|
18
|
-
operationFn(this: void, abortSignal: AbortSignal)
|
|
18
|
+
readonly operationFn: (this: void, abortSignal: AbortSignal) => Promisable<boolean>;
|
|
19
19
|
/**
|
|
20
20
|
* The name of the operation.
|
|
21
21
|
*/
|
|
22
|
-
operationName?: string;
|
|
22
|
+
readonly operationName?: string;
|
|
23
23
|
/**
|
|
24
24
|
* The retry options.
|
|
25
25
|
*/
|
|
26
|
-
retryOptions?: RetryOptions;
|
|
26
|
+
readonly retryOptions?: RetryOptions;
|
|
27
27
|
/**
|
|
28
28
|
* Whether to show a timeout notice. Default is `true`.
|
|
29
29
|
*/
|
|
30
|
-
shouldShowTimeoutNotice?: boolean;
|
|
30
|
+
readonly shouldShowTimeoutNotice?: boolean;
|
|
31
31
|
/**
|
|
32
32
|
* The stack trace of the source function.
|
|
33
33
|
*/
|
|
34
|
-
stackTrace?: string;
|
|
34
|
+
readonly stackTrace?: string;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* Options for {@link runWithTimeout}.
|
|
@@ -40,30 +40,30 @@ export interface RunWithTimeoutNoticeOptions<Result> {
|
|
|
40
40
|
/**
|
|
41
41
|
* The context of the function.
|
|
42
42
|
*/
|
|
43
|
-
context?: unknown;
|
|
43
|
+
readonly context?: unknown;
|
|
44
44
|
/**
|
|
45
45
|
* The operation function to execute.
|
|
46
46
|
*
|
|
47
47
|
* @param abortSignal - The abort signal to listen to.
|
|
48
48
|
* @returns The result of the function.
|
|
49
49
|
*/
|
|
50
|
-
operationFn(abortSignal: AbortSignal)
|
|
50
|
+
readonly operationFn: (abortSignal: AbortSignal) => Promisable<Result>;
|
|
51
51
|
/**
|
|
52
52
|
* The name of the operation.
|
|
53
53
|
*/
|
|
54
|
-
operationName?: string;
|
|
54
|
+
readonly operationName?: string;
|
|
55
55
|
/**
|
|
56
56
|
* Whether to show a timeout notice. Default is `true`.
|
|
57
57
|
*/
|
|
58
|
-
shouldShowTimeoutNotice?: boolean;
|
|
58
|
+
readonly shouldShowTimeoutNotice?: boolean;
|
|
59
59
|
/**
|
|
60
60
|
* The stack trace of the source function.
|
|
61
61
|
*/
|
|
62
|
-
stackTrace?: string;
|
|
62
|
+
readonly stackTrace?: string;
|
|
63
63
|
/**
|
|
64
64
|
* The maximum time to wait in milliseconds.
|
|
65
65
|
*/
|
|
66
|
-
timeoutInMilliseconds: number;
|
|
66
|
+
readonly timeoutInMilliseconds: number;
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
69
|
* Retries the provided function until it returns true or the timeout is reached and displays a notice if the function times out.
|
|
@@ -93,4 +93,4 @@ export {
|
|
|
93
93
|
retryWithTimeoutNotice,
|
|
94
94
|
runWithTimeoutNotice
|
|
95
95
|
};
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FzeW5jV2l0aE5vdGljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gZXhlY3V0ZSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gd2l0aCBhIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUmV0cnlPcHRpb25zLFxuICBUaW1lb3V0Q29udGV4dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmdW5jdGlvbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXRyeSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0cnlPcHRpb25zPzogUmV0cnlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcnVuV2l0aFRpbWVvdXR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bldpdGhUaW1lb3V0Tm90aWNlT3B0aW9uczxSZXN1bHQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gbGlzdGVuIHRvLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPFJlc3VsdD47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgdHJ1ZSBvciB0aGUgdGltZW91dCBpcyByZWFjaGVkIGFuZCBkaXNwbGF5cyBhIG5vdGljZSBpZiB0aGUgZnVuY3Rpb24gdGltZXMgb3V0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShvcHRpb25zOiBSZXRyeVdpdGhUaW1lb3V0Tm90aWNlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gcmV0cnlXaXRoVGltZW91dCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBvblRpbWVvdXQ6IG9wdGlvbnMuc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UgPyBvblRpbWVvdXROb3RpY2UgOiBvblRpbWVvdXRXaXRob3V0Tm90aWNlXG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQgYW5kIGRpc3BsYXlzIGEgbm90aWNlIGlmIHRoZSBmdW5jdGlvbiB0aW1lcyBvdXQuXG4gKlxuICogQHR5cGVQYXJhbSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBmcm9tIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0Tm90aWNlPFJlc3VsdD4ob3B0aW9uczogUnVuV2l0aFRpbWVvdXROb3RpY2VPcHRpb25zPFJlc3VsdD4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICByZXR1cm4gcnVuV2l0aFRpbWVvdXQoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgb25UaW1lb3V0OiBvcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8gb25UaW1lb3V0Tm90aWNlIDogb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25UaW1lb3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGxldCBpbnRlcnZhbElkOiBudW1iZXI7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG4gIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY3R4Lm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLm9wZXJhdGlvbikpO1xuICAgICAgZi5hcHBlbmRUZXh0KCc6ICcpO1xuICAgICAgZi5hcHBlbmRUZXh0KGN0eC5vcGVyYXRpb25OYW1lKTtcbiAgICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgfVxuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRpbWVkT3V0LCB7IGR1cmF0aW9uOiBjdHguZHVyYXRpb24gfSkpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5taWxsaXNlY29uZHMpKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRlcm1pbmF0ZU9wZXJhdGlvbikpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgY29uc3QgYnV0dG9uID0gZi5jcmVhdGVFbCgnYnV0dG9uJywge1xuICAgICAgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGN0eC50ZXJtaW5hdGVPcGVyYXRpb24oKTtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICBub3RpY2UuaGlkZSgpO1xuICAgIH0pO1xuICB9KSk7XG5cbiAgdXBkYXRlUnVubmluZ1RpbWUoKTtcbiAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgIG5vdGljZS5oaWRlKCk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZVJ1bm5pbmdUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMgPSBNYXRoLm1heChjdHguZHVyYXRpb24sIE1hdGgucm91bmQoKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKSAvIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpICogU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG4gICAgcnVubmluZ1RpbWVFbC50ZXh0Q29udGVudCA9IFN0cmluZyhydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvblRpbWVvdXRXaXRob3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBnZXREZWJ1Z2dlcignQXN5bmNXaXRoTm90aWNlOm9uVGltZW91dFdpdGhvdXROb3RpY2UnKSgnT3BlcmF0aW9uIGNvbXBsZXRlZCBhZnRlciB0aW1lb3V0Jywge1xuICAgICAgb3BlcmF0aW9uTmFtZTogY3R4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLFNBQVMsY0FBYztBQU92QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsbUJBQW1CO0FBQzVCLFNBQVMsU0FBUztBQStFbEIsZUFBc0IsdUJBQXVCLFNBQXVEO0FBQ2xHLFNBQU8saUJBQWlCO0FBQUEsSUFDdEIsR0FBRztBQUFBLElBQ0gsV0FBVyxRQUFRLDBCQUEwQixrQkFBa0I7QUFBQSxFQUNqRSxDQUFDO0FBQ0g7QUFTQSxlQUFzQixxQkFBNkIsU0FBK0Q7QUFDaEgsU0FBTyxlQUFlO0FBQUEsSUFDcEIsR0FBRztBQUFBLElBQ0gsV0FBVyxRQUFRLDBCQUEwQixrQkFBa0I7QUFBQSxFQUNqRSxDQUFDO0FBQ0g7QUFFQSxTQUFTLGdCQUFnQixLQUEyQjtBQUNsRCxRQUFNLFlBQVksS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLElBQUksUUFBUTtBQUM3RCxNQUFJO0FBQ0osTUFBSTtBQUNKLFFBQU0seUJBQXlCO0FBRS9CLFFBQU0sU0FBUyxJQUFJLE9BQU8sZUFBZSxDQUFDLE1BQU07QUFDOUMsUUFBSSxJQUFJLGVBQWU7QUFDckIsUUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLGdCQUFnQixTQUFTLENBQUM7QUFDbkUsUUFBRSxXQUFXLElBQUk7QUFDakIsUUFBRSxXQUFXLElBQUksYUFBYTtBQUM5QixRQUFFLFNBQVMsSUFBSTtBQUFBLElBQ2pCO0FBQ0EsTUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLGdCQUFnQixVQUFVLEVBQUUsVUFBVSxJQUFJLFNBQVMsQ0FBQyxDQUFDO0FBQzlGLE1BQUUsU0FBUyxJQUFJO0FBQ2YsTUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLGdCQUFnQixVQUFVLENBQUM7QUFDcEUsTUFBRSxXQUFXLEdBQUc7QUFDaEIsb0JBQWdCLEVBQUUsV0FBVztBQUM3QixNQUFFLFdBQVcsR0FBRztBQUNoQixNQUFFLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsZ0JBQWdCLFlBQVksQ0FBQztBQUN0RSxNQUFFLFNBQVMsSUFBSTtBQUNmLE1BQUUsV0FBVyxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixnQkFBZ0Isa0JBQWtCLENBQUM7QUFDNUUsTUFBRSxTQUFTLElBQUk7QUFDZixVQUFNLFNBQVMsRUFBRSxTQUFTLFVBQVU7QUFBQSxNQUNsQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLFFBQVEsTUFBTTtBQUFBLElBQ2xELENBQUM7QUFDRCxXQUFPLGlCQUFpQixTQUFTLE1BQU07QUFDckMsVUFBSSxtQkFBbUI7QUFDdkIsb0JBQWMsVUFBVTtBQUN4QixhQUFPLEtBQUs7QUFBQSxJQUNkLENBQUM7QUFBQSxFQUNILENBQUMsQ0FBQztBQUVGLG9CQUFrQjtBQUNsQixlQUFhLE9BQU8sWUFBWSxtQkFBbUIsc0JBQXNCO0FBRXpFLE1BQUkscUJBQXFCLE1BQU07QUFDN0Isa0JBQWMsVUFBVTtBQUN4QixXQUFPLEtBQUs7QUFBQSxFQUNkLENBQUM7QUFFRCxXQUFTLG9CQUEwQjtBQUNqQyxVQUFNLDRCQUE0QixLQUFLLElBQUksSUFBSSxVQUFVLEtBQUssT0FBTyxZQUFZLElBQUksSUFBSSxhQUFhLHNCQUFzQixJQUFJLHNCQUFzQjtBQUN0SixrQkFBYyxjQUFjLE9BQU8seUJBQXlCO0FBQUEsRUFDOUQ7QUFDRjtBQUVBLFNBQVMsdUJBQXVCLEtBQTJCO0FBQ3pELFFBQU0sWUFBWSxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksSUFBSSxRQUFRO0FBRTdELE1BQUkscUJBQXFCLE1BQU07QUFDN0IsZ0JBQVksd0NBQXdDLEVBQUUscUNBQXFDO0FBQUEsTUFDekYsZUFBZSxJQUFJO0FBQUEsTUFDbkIsZUFBZSxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksU0FBUztBQUFBLElBQ3pELENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
|