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.
Files changed (257) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/cjs/Async.cjs +4 -2
  3. package/dist/lib/cjs/Async.d.cts +28 -19
  4. package/dist/lib/cjs/Blob.cjs +3 -4
  5. package/dist/lib/cjs/Debug.cjs +1 -1
  6. package/dist/lib/cjs/DebugController.cjs +1 -1
  7. package/dist/lib/cjs/Enum.cjs +4 -11
  8. package/dist/lib/cjs/Error.cjs +5 -4
  9. package/dist/lib/cjs/Library.cjs +1 -1
  10. package/dist/lib/cjs/ObjectUtils.cjs +15 -7
  11. package/dist/lib/cjs/ObjectUtils.d.cts +17 -13
  12. package/dist/lib/cjs/RegExp.cjs +3 -1
  13. package/dist/lib/cjs/ScriptUtils/ESLint/ESLint.cjs +3 -4
  14. package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +4 -2
  15. package/dist/lib/cjs/ScriptUtils/Exec.cjs +1 -1
  16. package/dist/lib/cjs/ScriptUtils/Exec.d.cts +6 -6
  17. package/dist/lib/cjs/ScriptUtils/Fs.cjs +1 -1
  18. package/dist/lib/cjs/ScriptUtils/Fs.d.cts +7 -7
  19. package/dist/lib/cjs/ScriptUtils/JSON.cjs +1 -1
  20. package/dist/lib/cjs/ScriptUtils/JSON.d.cts +1 -1
  21. package/dist/lib/cjs/ScriptUtils/NodeModules.cjs +1 -1
  22. package/dist/lib/cjs/ScriptUtils/Npm.cjs +5 -5
  23. package/dist/lib/cjs/ScriptUtils/Npm.d.cts +2 -2
  24. package/dist/lib/cjs/ScriptUtils/NpmRun.cjs +12 -3
  25. package/dist/lib/cjs/ScriptUtils/NpmRun.d.cts +7 -0
  26. package/dist/lib/cjs/ScriptUtils/cli.cjs +1 -1
  27. package/dist/lib/cjs/ScriptUtils/esbuild/Dependency.cjs +3 -3
  28. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +11 -11
  29. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +4 -4
  30. package/dist/lib/cjs/ScriptUtils/esbuild/changeExtensionPlugin.cjs +1 -1
  31. package/dist/lib/cjs/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.cjs +1 -1
  32. package/dist/lib/cjs/ScriptUtils/esbuild/customEsbuildOptionsPlugin.cjs +1 -1
  33. package/dist/lib/cjs/ScriptUtils/esbuild/fixEsmPlugin.cjs +1 -1
  34. package/dist/lib/cjs/ScriptUtils/esbuild/fixSourceMapsPlugin.cjs +1 -1
  35. package/dist/lib/cjs/ScriptUtils/esbuild/preprocessPlugin.cjs +14 -1
  36. package/dist/lib/cjs/ScriptUtils/esbuild/renameCssPlugin.cjs +1 -1
  37. package/dist/lib/cjs/ScriptUtils/esbuild/svelteWrapperPlugin.cjs +1 -1
  38. package/dist/lib/cjs/ScriptUtils/format.cjs +4 -7
  39. package/dist/lib/cjs/ScriptUtils/markdownlint/markdownlint-cli2-config.cjs +1 -1
  40. package/dist/lib/cjs/ScriptUtils/markdownlint/markdownlint.cjs +3 -4
  41. package/dist/lib/cjs/ScriptUtils/version.cjs +12 -10
  42. package/dist/lib/cjs/String.cjs +1 -1
  43. package/dist/lib/cjs/Transformers/GroupTransformer.cjs +4 -6
  44. package/dist/lib/cjs/Transformers/Transformer.cjs +1 -1
  45. package/dist/lib/cjs/Transformers/Transformer.d.cts +1 -1
  46. package/dist/lib/cjs/Type.cjs +13 -33
  47. package/dist/lib/cjs/Type.d.cts +52 -73
  48. package/dist/lib/cjs/TypeGuards.cjs +156 -0
  49. package/dist/lib/cjs/TypeGuards.d.cts +47 -0
  50. package/dist/lib/cjs/codemirror/StateFieldSpec.cjs +1 -1
  51. package/dist/lib/cjs/index.cjs +4 -1
  52. package/dist/lib/cjs/index.d.cts +1 -0
  53. package/dist/lib/cjs/obsidian/App.cjs +1 -1
  54. package/dist/lib/cjs/obsidian/AsyncWithNotice.cjs +1 -1
  55. package/dist/lib/cjs/obsidian/AsyncWithNotice.d.cts +11 -11
  56. package/dist/lib/cjs/obsidian/AttachmentPath.cjs +1 -1
  57. package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +23 -23
  58. package/dist/lib/cjs/obsidian/Backlink.cjs +3 -3
  59. package/dist/lib/cjs/obsidian/Backlink.d.cts +6 -6
  60. package/dist/lib/cjs/obsidian/Callout.cjs +3 -3
  61. package/dist/lib/cjs/obsidian/Callout.d.cts +6 -6
  62. package/dist/lib/cjs/obsidian/CodeBlockMarkdownInformation.cjs +1 -1
  63. package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +1 -1
  64. package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +7 -7
  65. package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +3 -4
  66. package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +4 -4
  67. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +1 -1
  68. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +4 -4
  69. package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +1 -1
  70. package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +1 -1
  71. package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.cjs +1 -1
  72. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.cjs +13 -2
  73. package/dist/lib/cjs/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.cts +5 -0
  74. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.cjs +13 -2
  75. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.cts +5 -0
  76. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.cjs +13 -2
  77. package/dist/lib/cjs/obsidian/Components/SettingComponents/MultipleTextComponent.d.cts +5 -0
  78. package/dist/lib/cjs/obsidian/Components/SettingComponents/SettingComponentWrapper.cjs +3 -4
  79. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.cjs +13 -2
  80. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedDropdownComponent.d.cts +5 -0
  81. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.cjs +13 -2
  82. package/dist/lib/cjs/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.cts +5 -0
  83. package/dist/lib/cjs/obsidian/Components/SettingComponents/ValueComponentWithChangeTracking.cjs +1 -1
  84. package/dist/lib/cjs/obsidian/Dataview.cjs +3 -2
  85. package/dist/lib/cjs/obsidian/Dataview.d.cts +15 -15
  86. package/dist/lib/cjs/obsidian/FileChange.cjs +1 -1
  87. package/dist/lib/cjs/obsidian/FileSystem.cjs +12 -10
  88. package/dist/lib/cjs/obsidian/Frontmatter.cjs +1 -1
  89. package/dist/lib/cjs/obsidian/Frontmatter.d.cts +1 -1
  90. package/dist/lib/cjs/obsidian/Link.cjs +23 -14
  91. package/dist/lib/cjs/obsidian/Link.d.cts +58 -58
  92. package/dist/lib/cjs/obsidian/Loop.cjs +3 -1
  93. package/dist/lib/cjs/obsidian/Loop.d.cts +11 -11
  94. package/dist/lib/cjs/obsidian/Markdown.cjs +3 -4
  95. package/dist/lib/cjs/obsidian/Markdown.d.cts +6 -6
  96. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +4 -7
  97. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +12 -12
  98. package/dist/lib/cjs/obsidian/MetadataCache.cjs +3 -5
  99. package/dist/lib/cjs/obsidian/MetadataCache.d.cts +1 -1
  100. package/dist/lib/cjs/obsidian/Modals/Alert.cjs +1 -1
  101. package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +5 -5
  102. package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +1 -1
  103. package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +6 -6
  104. package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +1 -1
  105. package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +7 -7
  106. package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +1 -1
  107. package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +5 -5
  108. package/dist/lib/cjs/obsidian/MonkeyAround.cjs +1 -1
  109. package/dist/lib/cjs/obsidian/Pdf.cjs +1 -1
  110. package/dist/lib/cjs/obsidian/Pdf.d.cts +8 -8
  111. package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.cjs +3 -1
  112. package/dist/lib/cjs/obsidian/Plugin/ObsidianPluginRepoPaths.d.cts +4 -0
  113. package/dist/lib/cjs/obsidian/Plugin/PathSettings.cjs +5 -1
  114. package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +1 -1
  115. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +1 -1
  116. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.d.cts +1 -1
  117. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.cjs +1 -1
  118. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsTabBase.d.cts +6 -6
  119. package/dist/lib/cjs/obsidian/Plugin/PluginSettingsWrapper.cjs +1 -1
  120. package/dist/lib/cjs/obsidian/Plugin/PluginTypesBase.cjs +1 -1
  121. package/dist/lib/cjs/obsidian/Queue.cjs +1 -1
  122. package/dist/lib/cjs/obsidian/Queue.d.cts +14 -14
  123. package/dist/lib/cjs/obsidian/React/AppContext.cjs +3 -6
  124. package/dist/lib/cjs/obsidian/Reference.cjs +1 -1
  125. package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +1 -1
  126. package/dist/lib/cjs/obsidian/Vault.cjs +1 -1
  127. package/dist/lib/cjs/obsidian/Vault.d.cts +3 -3
  128. package/dist/lib/cjs/obsidian/VaultEx.cjs +1 -1
  129. package/dist/lib/cjs/obsidian/i18n/CustomTypeOptionsBase.cjs +1 -1
  130. package/dist/lib/cjs/obsidian/i18n/DefaultTranslationsBase.cjs +1 -1
  131. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +13 -3
  132. package/dist/lib/esm/Async.d.mts +28 -19
  133. package/dist/lib/esm/Async.mjs +4 -2
  134. package/dist/lib/esm/Blob.mjs +3 -4
  135. package/dist/lib/esm/Debug.mjs +1 -1
  136. package/dist/lib/esm/Enum.mjs +4 -11
  137. package/dist/lib/esm/Error.mjs +5 -4
  138. package/dist/lib/esm/Library.mjs +1 -1
  139. package/dist/lib/esm/ObjectUtils.d.mts +17 -13
  140. package/dist/lib/esm/ObjectUtils.mjs +18 -11
  141. package/dist/lib/esm/RegExp.mjs +3 -1
  142. package/dist/lib/esm/ScriptUtils/ESLint/ESLint.mjs +3 -4
  143. package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +4 -2
  144. package/dist/lib/esm/ScriptUtils/Exec.d.mts +6 -6
  145. package/dist/lib/esm/ScriptUtils/Exec.mjs +1 -1
  146. package/dist/lib/esm/ScriptUtils/Fs.d.mts +7 -7
  147. package/dist/lib/esm/ScriptUtils/Fs.mjs +1 -1
  148. package/dist/lib/esm/ScriptUtils/JSON.d.mts +1 -1
  149. package/dist/lib/esm/ScriptUtils/JSON.mjs +1 -1
  150. package/dist/lib/esm/ScriptUtils/NodeModules.mjs +1 -1
  151. package/dist/lib/esm/ScriptUtils/Npm.d.mts +2 -2
  152. package/dist/lib/esm/ScriptUtils/Npm.mjs +5 -5
  153. package/dist/lib/esm/ScriptUtils/NpmRun.d.mts +7 -0
  154. package/dist/lib/esm/ScriptUtils/NpmRun.mjs +10 -2
  155. package/dist/lib/esm/ScriptUtils/cli.mjs +1 -1
  156. package/dist/lib/esm/ScriptUtils/esbuild/Dependency.mjs +3 -3
  157. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +4 -4
  158. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +11 -11
  159. package/dist/lib/esm/ScriptUtils/esbuild/changeExtensionPlugin.mjs +1 -1
  160. package/dist/lib/esm/ScriptUtils/esbuild/copyToObsidianPluginsFolderPlugin.mjs +1 -1
  161. package/dist/lib/esm/ScriptUtils/esbuild/customEsbuildOptionsPlugin.mjs +1 -1
  162. package/dist/lib/esm/ScriptUtils/esbuild/fixEsmPlugin.mjs +1 -1
  163. package/dist/lib/esm/ScriptUtils/esbuild/fixSourceMapsPlugin.mjs +1 -1
  164. package/dist/lib/esm/ScriptUtils/esbuild/preprocessPlugin.mjs +1 -1
  165. package/dist/lib/esm/ScriptUtils/esbuild/renameCssPlugin.mjs +1 -1
  166. package/dist/lib/esm/ScriptUtils/esbuild/svelteWrapperPlugin.mjs +1 -1
  167. package/dist/lib/esm/ScriptUtils/format.mjs +4 -7
  168. package/dist/lib/esm/ScriptUtils/markdownlint/markdownlint-cli2-config.mjs +1 -1
  169. package/dist/lib/esm/ScriptUtils/markdownlint/markdownlint.mjs +3 -4
  170. package/dist/lib/esm/ScriptUtils/version.mjs +19 -11
  171. package/dist/lib/esm/String.mjs +1 -1
  172. package/dist/lib/esm/Transformers/GroupTransformer.mjs +7 -6
  173. package/dist/lib/esm/Transformers/Transformer.d.mts +1 -1
  174. package/dist/lib/esm/Transformers/Transformer.mjs +1 -1
  175. package/dist/lib/esm/Type.d.mts +52 -73
  176. package/dist/lib/esm/Type.mjs +12 -30
  177. package/dist/lib/esm/TypeGuards.d.mts +47 -0
  178. package/dist/lib/esm/TypeGuards.mjs +47 -0
  179. package/dist/lib/esm/index.d.mts +1 -0
  180. package/dist/lib/esm/index.mjs +3 -1
  181. package/dist/lib/esm/obsidian/App.mjs +1 -1
  182. package/dist/lib/esm/obsidian/AsyncWithNotice.d.mts +11 -11
  183. package/dist/lib/esm/obsidian/AsyncWithNotice.mjs +1 -1
  184. package/dist/lib/esm/obsidian/AttachmentPath.d.mts +23 -23
  185. package/dist/lib/esm/obsidian/AttachmentPath.mjs +1 -1
  186. package/dist/lib/esm/obsidian/Backlink.d.mts +6 -6
  187. package/dist/lib/esm/obsidian/Backlink.mjs +3 -3
  188. package/dist/lib/esm/obsidian/Callout.d.mts +6 -6
  189. package/dist/lib/esm/obsidian/Callout.mjs +3 -3
  190. package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +7 -7
  191. package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +1 -1
  192. package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +4 -4
  193. package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +3 -4
  194. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +4 -4
  195. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +1 -1
  196. package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +1 -1
  197. package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +1 -1
  198. package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.mjs +1 -1
  199. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.d.mts +5 -0
  200. package/dist/lib/esm/obsidian/Components/SettingComponents/CodeHighlighterComponent.mjs +13 -2
  201. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.d.mts +5 -0
  202. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleDropdownComponent.mjs +13 -2
  203. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.d.mts +5 -0
  204. package/dist/lib/esm/obsidian/Components/SettingComponents/MultipleTextComponent.mjs +13 -2
  205. package/dist/lib/esm/obsidian/Components/SettingComponents/SettingComponentWrapper.mjs +3 -4
  206. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.d.mts +5 -0
  207. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedDropdownComponent.mjs +13 -2
  208. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.d.mts +5 -0
  209. package/dist/lib/esm/obsidian/Components/SettingComponents/TypedMultipleDropdownComponent.mjs +13 -2
  210. package/dist/lib/esm/obsidian/Dataview.d.mts +15 -15
  211. package/dist/lib/esm/obsidian/Dataview.mjs +4 -6
  212. package/dist/lib/esm/obsidian/FileChange.mjs +1 -1
  213. package/dist/lib/esm/obsidian/FileSystem.mjs +12 -10
  214. package/dist/lib/esm/obsidian/Frontmatter.d.mts +1 -1
  215. package/dist/lib/esm/obsidian/Frontmatter.mjs +1 -1
  216. package/dist/lib/esm/obsidian/Link.d.mts +58 -58
  217. package/dist/lib/esm/obsidian/Link.mjs +26 -14
  218. package/dist/lib/esm/obsidian/Loop.d.mts +11 -11
  219. package/dist/lib/esm/obsidian/Loop.mjs +3 -1
  220. package/dist/lib/esm/obsidian/Markdown.d.mts +6 -6
  221. package/dist/lib/esm/obsidian/Markdown.mjs +3 -4
  222. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +12 -12
  223. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +4 -7
  224. package/dist/lib/esm/obsidian/MetadataCache.d.mts +1 -1
  225. package/dist/lib/esm/obsidian/MetadataCache.mjs +3 -5
  226. package/dist/lib/esm/obsidian/Modals/Alert.d.mts +5 -5
  227. package/dist/lib/esm/obsidian/Modals/Alert.mjs +1 -1
  228. package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +6 -6
  229. package/dist/lib/esm/obsidian/Modals/Confirm.mjs +1 -1
  230. package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +7 -7
  231. package/dist/lib/esm/obsidian/Modals/Prompt.mjs +1 -1
  232. package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +5 -5
  233. package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +1 -1
  234. package/dist/lib/esm/obsidian/MonkeyAround.mjs +1 -1
  235. package/dist/lib/esm/obsidian/Pdf.d.mts +8 -8
  236. package/dist/lib/esm/obsidian/Pdf.mjs +1 -1
  237. package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.d.mts +4 -0
  238. package/dist/lib/esm/obsidian/Plugin/ObsidianPluginRepoPaths.mjs +3 -1
  239. package/dist/lib/esm/obsidian/Plugin/PathSettings.mjs +5 -1
  240. package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +1 -1
  241. package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.d.mts +1 -1
  242. package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +1 -1
  243. package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.d.mts +6 -6
  244. package/dist/lib/esm/obsidian/Plugin/PluginSettingsTabBase.mjs +1 -1
  245. package/dist/lib/esm/obsidian/Queue.d.mts +14 -14
  246. package/dist/lib/esm/obsidian/Queue.mjs +1 -1
  247. package/dist/lib/esm/obsidian/React/AppContext.mjs +3 -6
  248. package/dist/lib/esm/obsidian/Reference.mjs +1 -1
  249. package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +1 -1
  250. package/dist/lib/esm/obsidian/Vault.d.mts +3 -3
  251. package/dist/lib/esm/obsidian/Vault.mjs +1 -1
  252. package/dist/lib/esm/obsidian/VaultEx.mjs +1 -1
  253. package/dist/lib/esm/obsidian/i18n/CustomTypeOptionsBase.mjs +1 -1
  254. package/dist/lib/esm/obsidian/i18n/DefaultTranslationsBase.mjs +1 -1
  255. package/dist/lib/esm/obsidian/i18n/i18n.mjs +2 -3
  256. package/dist/scripts/examples/format.prettier.ts +2 -3
  257. package/package.json +10 -2
@@ -121,42 +121,22 @@ var __copyProps = (to, from, except, desc) => {
121
121
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
122
  var Type_exports = {};
123
123
  __export(Type_exports, {
124
- assertAllTypeKeys: () => assertAllTypeKeys,
125
- assertAllUnionMembers: () => assertAllUnionMembers,
126
- typeToDummyParam: () => typeToDummyParam
124
+ typeAsserter: () => typeAsserter
127
125
  });
128
126
  module.exports = __toCommonJS(Type_exports);
129
- const DUMMY_PROXY = new Proxy(dummyThrow, {
130
- apply: dummyThrow,
131
- construct: dummyThrow,
132
- defineProperty: dummyThrow,
133
- deleteProperty: dummyThrow,
134
- get: dummyThrow,
135
- getOwnPropertyDescriptor: dummyThrow,
136
- getPrototypeOf: dummyThrow,
137
- has: dummyThrow,
138
- isExtensible: dummyThrow,
139
- ownKeys: dummyThrow,
140
- preventExtensions: dummyThrow,
141
- set: dummyThrow,
142
- setPrototypeOf: dummyThrow
143
- });
144
- function assertAllTypeKeys(_type, keys) {
145
- return Object.freeze(keys.slice());
146
- }
147
- function assertAllUnionMembers(_type, keys) {
148
- return Object.freeze(keys.slice());
149
- }
150
- function typeToDummyParam() {
151
- return DUMMY_PROXY;
152
- }
153
- function dummyThrow() {
154
- throw new Error("Dummy parameter should not be accessed directly.");
127
+ var import_ObjectUtils = require('./ObjectUtils.cjs');
128
+ function typeAsserter() {
129
+ return (0, import_ObjectUtils.castTo)({
130
+ assertAllKeys(keys) {
131
+ return Object.freeze(keys.slice());
132
+ },
133
+ assertAllMembers(keys) {
134
+ return Object.freeze(keys.slice());
135
+ }
136
+ });
155
137
  }
156
138
  // Annotate the CommonJS export names for ESM import in node:
157
139
  0 && (module.exports = {
158
- assertAllTypeKeys,
159
- assertAllUnionMembers,
160
- typeToDummyParam
140
+ typeAsserter
161
141
  });
162
- //# 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+KCk6IFQge1xuICByZXR1cm4gRFVNTVlfUFJPWFkgYXMgdW5rbm93biBhcyBUO1xufVxuXG5mdW5jdGlvbiBkdW1teVRocm93KCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdEdW1teSBwYXJhbWV0ZXIgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZCBkaXJlY3RseS4nKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXdDQSxNQUFNLGNBQWMsSUFBSSxNQUFNLFlBQVk7QUFBQSxFQUN4QyxPQUFPO0FBQUEsRUFDUCxXQUFXO0FBQUEsRUFDWCxnQkFBZ0I7QUFBQSxFQUNoQixnQkFBZ0I7QUFBQSxFQUNoQixLQUFLO0FBQUEsRUFDTCwwQkFBMEI7QUFBQSxFQUMxQixnQkFBZ0I7QUFBQSxFQUNoQixLQUFLO0FBQUEsRUFDTCxjQUFjO0FBQUEsRUFDZCxTQUFTO0FBQUEsRUFDVCxtQkFBbUI7QUFBQSxFQUNuQixLQUFLO0FBQUEsRUFDTCxnQkFBZ0I7QUFDbEIsQ0FBQztBQWlFTSxTQUFTLGtCQUdkLE9BQWEsTUFBcUU7QUFDbEYsU0FBTyxPQUFPLE9BQU8sS0FBSyxNQUFNLENBQW1CO0FBQ3JEO0FBd0JPLFNBQVMsc0JBR2QsT0FBYSxNQUFpRDtBQUM5RCxTQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBVztBQUM3QztBQWdDTyxTQUFTLG1CQUF5QjtBQUN2QyxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGFBQW9CO0FBQzNCLFFBQU0sSUFBSSxNQUFNLGtEQUFrRDtBQUNwRTsiLAogICJuYW1lcyI6IFtdCn0K
142
+ //# 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+KFxuICAgICAga2V5czogRXhhY3RNZW1iZXJzPExpdGVyYWxLZXkgJiBUeXBlLCBLZXlzPlxuICAgICk6IHJlYWRvbmx5IChMaXRlcmFsS2V5ICYgVHlwZSlbXSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShrZXlzLnNsaWNlKCkgYXMgKExpdGVyYWxLZXkgJiBUeXBlKVtdKTtcbiAgICB9XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSx5QkFBdUI7QUEySWhCLFNBQVMsZUFBeUM7QUFDdkQsYUFBTywyQkFBMkI7QUFBQSxJQUNoQyxjQUNFLE1BQ29DO0FBQ3BDLGFBQU8sT0FBTyxPQUFPLEtBQUssTUFBTSxDQUE4QjtBQUFBLElBQ2hFO0FBQUEsSUFDQSxpQkFDRSxNQUNnQztBQUNoQyxhQUFPLE9BQU8sT0FBTyxLQUFLLE1BQU0sQ0FBMEI7QUFBQSxJQUM1RDtBQUFBLEVBQ0YsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -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 type that represents the members of a type.
39
+ * A helper that captures a type parameter and provides methods for compile-time exhaustiveness checks.
36
40
  *
37
- * @typeParam Type - The type to assert the members of.
38
- * @typeParam Keys - The list of members to assert.
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 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>>>}`;
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
- * Asserts that all keys of a type are present in a list of keys.
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
- * @remarks If the incorrect keys are provided, the function has a compile-time error.
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
- * assertAllTypeKeys<A>(typeToDummyParam<A>(), ['a', 'b', 'c']); // OK
62
- * assertAllTypeKeys<A>(typeToDummyParam<A>(), ['c', 'a', 'b']); // OK, order is ignored
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
- * function g2<T, U>(_type: T, u: U) {}
118
- * g2(typeToDummyParam<A>(), { d: 'foo' }); // We could use type inference for `T=A` and `U=B`.
96
+ * type B = 1 | 2 | 3 | 'a';
97
+ * typeAsserter<B>().assertAllMembers([1, 2, 3, 'a']); // OK
119
98
  * ```
120
99
  */
121
- export declare function typeToDummyParam<T>(): T;
100
+ export declare function typeAsserter<Type>(): TypeAsserter<Type>;
122
101
  export {};
@@ -0,0 +1,156 @@
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 initCjs() {
7
+ const globalThisRecord = globalThis;
8
+ globalThisRecord['__name'] ??= name;
9
+ const originalRequire = require;
10
+ if (originalRequire && !originalRequire.__isPatched) {
11
+ // eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
12
+ require = Object.assign(
13
+ (id) => requirePatched(id),
14
+ originalRequire,
15
+ {
16
+ __isPatched: true
17
+ }
18
+ );
19
+ }
20
+
21
+ const newFuncs = {
22
+ __extractDefault() {
23
+ return extractDefault;
24
+ },
25
+ process() {
26
+ const browserProcess = {
27
+ browser: true,
28
+ cwd() {
29
+ return '/';
30
+ },
31
+ env: {},
32
+ platform: 'android'
33
+ };
34
+ return browserProcess;
35
+ }
36
+ };
37
+
38
+ for (const key of Object.keys(newFuncs)) {
39
+ globalThisRecord[key] ??= newFuncs[key]?.();
40
+ }
41
+
42
+ function name(obj) {
43
+ return obj;
44
+ }
45
+
46
+ function extractDefault(module) {
47
+ return module && module.__esModule && 'default' in module ? module.default : module;
48
+ }
49
+
50
+ const OBSIDIAN_BUILT_IN_MODULE_NAMES = [
51
+ 'obsidian',
52
+ '@codemirror/autocomplete',
53
+ '@codemirror/collab',
54
+ '@codemirror/commands',
55
+ '@codemirror/language',
56
+ '@codemirror/lint',
57
+ '@codemirror/search',
58
+ '@codemirror/state',
59
+ '@codemirror/text',
60
+ '@codemirror/view',
61
+ '@lezer/common',
62
+ '@lezer/lr',
63
+ '@lezer/highlight'];
64
+
65
+
66
+ const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = [
67
+ '@codemirror/closebrackets',
68
+ '@codemirror/comment',
69
+ '@codemirror/fold',
70
+ '@codemirror/gutter',
71
+ '@codemirror/highlight',
72
+ '@codemirror/history',
73
+ '@codemirror/matchbrackets',
74
+ '@codemirror/panel',
75
+ '@codemirror/rangeset',
76
+ '@codemirror/rectangular-selection',
77
+ '@codemirror/stream-parser',
78
+ '@codemirror/tooltip'];
79
+
80
+
81
+ function requirePatched(id) {
82
+ if (OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.includes(id)) {
83
+ return originalRequire?.(id);
84
+ }
85
+
86
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, @typescript-eslint/no-unnecessary-condition -- We need access to app here which might not be available yet.
87
+ if (globalThis?.app?.isMobile) {
88
+ if (id === 'process' || id === 'node:process') {
89
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
90
+ return globalThis.process;
91
+ }
92
+ } else {
93
+ const module = originalRequire?.(id);
94
+ if (module) {
95
+ return extractDefault(module);
96
+ }
97
+ }
98
+
99
+ console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
100
+ return {};
101
+ }
102
+ })();
103
+
104
+ "use strict";
105
+ var __defProp = Object.defineProperty;
106
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
107
+ var __getOwnPropNames = Object.getOwnPropertyNames;
108
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
109
+ var __export = (target, all) => {
110
+ for (var name in all)
111
+ __defProp(target, name, { get: all[name], enumerable: true });
112
+ };
113
+ var __copyProps = (to, from, except, desc) => {
114
+ if (from && typeof from === "object" || typeof from === "function") {
115
+ for (let key of __getOwnPropNames(from))
116
+ if (!__hasOwnProp.call(to, key) && key !== except)
117
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
118
+ }
119
+ return to;
120
+ };
121
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
122
+ var TypeGuards_exports = {};
123
+ __export(TypeGuards_exports, {
124
+ assertGenericObject: () => assertGenericObject,
125
+ assertNonNullable: () => assertNonNullable,
126
+ ensureGenericObject: () => ensureGenericObject,
127
+ ensureNonNullable: () => ensureNonNullable
128
+ });
129
+ module.exports = __toCommonJS(TypeGuards_exports);
130
+ var import_Function = require('./Function.cjs');
131
+ function assertGenericObject(_obj) {
132
+ (0, import_Function.noop)();
133
+ }
134
+ function assertNonNullable(value, errorOrMessage) {
135
+ if (value !== null && value !== void 0) {
136
+ return;
137
+ }
138
+ errorOrMessage ??= value === null ? "Value is null" : "Value is undefined";
139
+ const error = typeof errorOrMessage === "string" ? new Error(errorOrMessage) : errorOrMessage;
140
+ throw error;
141
+ }
142
+ function ensureGenericObject(obj) {
143
+ return obj;
144
+ }
145
+ function ensureNonNullable(value, errorOrMessage) {
146
+ assertNonNullable(value, errorOrMessage);
147
+ return value;
148
+ }
149
+ // Annotate the CommonJS export names for ESM import in node:
150
+ 0 && (module.exports = {
151
+ assertGenericObject,
152
+ assertNonNullable,
153
+ ensureGenericObject,
154
+ ensureNonNullable
155
+ });
156
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1R5cGVHdWFyZHMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHR5cGUgZ3VhcmRzLlxuICovXG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL0Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBBIHR5cGUgdGhhdCByZXByZXNlbnRzIGEgZ2VuZXJpYyBvYmplY3QuXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPYmplY3QgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxudHlwZSBOdWxsYWJsZUNvbnN0cmFpbnQ8VD4gPSBudWxsIGV4dGVuZHMgVCA/IHVua25vd24gOiB1bmRlZmluZWQgZXh0ZW5kcyBUID8gdW5rbm93biA6IG5ldmVyO1xuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHZhbHVlIGlzIGEgZ2VuZXJpYyBvYmplY3QsIG5hcnJvd2luZyBpdHMgdHlwZSBpbiBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gX29iaiAtIFRoZSB2YWx1ZSB0byBhc3NlcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRHZW5lcmljT2JqZWN0KF9vYmo6IG9iamVjdCk6IGFzc2VydHMgX29iaiBpcyBHZW5lcmljT2JqZWN0IHtcbiAgbm9vcCgpO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIHZhbHVlIGlzIG5vdCBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIG5hcnJvd2luZyBpdHMgdHlwZSBpbiBwbGFjZS5cbiAqXG4gKiBPbmx5IGNhbGxhYmxlIHdoZW4gYFRgIGluY2x1ZGVzIGBudWxsYCBvciBgdW5kZWZpbmVkYC4gUGFzc2luZyBhbiBhbHJlYWR5IG5vbi1udWxsYWJsZSB0eXBlIGlzIGEgY29tcGlsZSBlcnJvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXJyb3JPck1lc3NhZ2UgLSBPcHRpb25hbCB7QGxpbmsgRXJyb3J9IG9yIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLlxuICogQHRocm93cyBJZiB0aGUgdmFsdWUgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0Tm9uTnVsbGFibGU8VCBleHRlbmRzIE51bGxhYmxlQ29uc3RyYWludDxUPj4odmFsdWU6IFQsIGVycm9yT3JNZXNzYWdlPzogRXJyb3IgfCBzdHJpbmcpOiBhc3NlcnRzIHZhbHVlIGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBlcnJvck9yTWVzc2FnZSA/Pz0gdmFsdWUgPT09IG51bGwgPyAnVmFsdWUgaXMgbnVsbCcgOiAnVmFsdWUgaXMgdW5kZWZpbmVkJztcbiAgY29uc3QgZXJyb3IgPSB0eXBlb2YgZXJyb3JPck1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKGVycm9yT3JNZXNzYWdlKSA6IGVycm9yT3JNZXNzYWdlO1xuICB0aHJvdyBlcnJvcjtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSB2YWx1ZSBpcyBhIGdlbmVyaWMgb2JqZWN0LCByZXR1cm5pbmcgaXQgd2l0aCBuYXJyb3dlZCB0eXBlLlxuICpcbiAqIEBwYXJhbSBvYmogLSBUaGUgdmFsdWUgdG8gZW5zdXJlLlxuICogQHJldHVybnMgVGhlIHZhbHVlIGFzIGEgZ2VuZXJpYyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVHZW5lcmljT2JqZWN0KG9iajogb2JqZWN0KTogR2VuZXJpY09iamVjdCB7XG4gIHJldHVybiBvYmogYXMgR2VuZXJpY09iamVjdDtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSB2YWx1ZSBpcyBub3QgYG51bGxgIG9yIGB1bmRlZmluZWRgIGFuZCByZXR1cm5zIGl0IHdpdGggbmFycm93ZWQgdHlwZS5cbiAqXG4gKiBPbmx5IGNhbGxhYmxlIHdoZW4gYFRgIGluY2x1ZGVzIGBudWxsYCBvciBgdW5kZWZpbmVkYC4gUGFzc2luZyBhbiBhbHJlYWR5IG5vbi1udWxsYWJsZSB0eXBlIGlzIGEgY29tcGlsZSBlcnJvci5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcGFyYW0gZXJyb3JPck1lc3NhZ2UgLSBPcHRpb25hbCB7QGxpbmsgRXJyb3J9IG9yIGVycm9yIG1lc3NhZ2Ugc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHZhbHVlIHdpdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYCBleGNsdWRlZCBmcm9tIGl0cyB0eXBlLlxuICogQHRocm93cyBJZiB0aGUgdmFsdWUgaXMgYG51bGxgIG9yIGB1bmRlZmluZWRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlTm9uTnVsbGFibGU8VCBleHRlbmRzIE51bGxhYmxlQ29uc3RyYWludDxUPj4odmFsdWU6IFQsIGVycm9yT3JNZXNzYWdlPzogRXJyb3IgfCBzdHJpbmcpOiBOb25OdWxsYWJsZTxUPiB7XG4gIGFzc2VydE5vbk51bGxhYmxlKHZhbHVlLCBlcnJvck9yTWVzc2FnZSk7XG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsc0JBQXFCO0FBY2QsU0FBUyxvQkFBb0IsTUFBNkM7QUFDL0UsNEJBQUs7QUFDUDtBQVlPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWtFO0FBQzdJLE1BQUksVUFBVSxRQUFRLFVBQVUsUUFBVztBQUN6QztBQUFBLEVBQ0Y7QUFFQSxxQkFBbUIsVUFBVSxPQUFPLGtCQUFrQjtBQUN0RCxRQUFNLFFBQVEsT0FBTyxtQkFBbUIsV0FBVyxJQUFJLE1BQU0sY0FBYyxJQUFJO0FBQy9FLFFBQU07QUFDUjtBQVFPLFNBQVMsb0JBQW9CLEtBQTRCO0FBQzlELFNBQU87QUFDVDtBQWFPLFNBQVMsa0JBQW1ELE9BQVUsZ0JBQWlEO0FBQzVILG9CQUFrQixPQUFPLGNBQWM7QUFDdkMsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -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 {};
@@ -117,4 +117,4 @@ var __copyProps = (to, from, except, desc) => {
117
117
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
118
118
  var StateFieldSpec_exports = {};
119
119
  module.exports = __toCommonJS(StateFieldSpec_exports);
120
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvZGVtaXJyb3IvU3RhdGVGaWVsZFNwZWMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgYSBzcGVjaWZpY2F0aW9uIGZvciBhIHN0YXRlIGZpZWxkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgRWRpdG9yU3RhdGUsXG4gIEV4dGVuc2lvbixcbiAgU3RhdGVGaWVsZCxcbiAgVHJhbnNhY3Rpb25cbn0gZnJvbSAnQGNvZGVtaXJyb3Ivc3RhdGUnO1xuXG4vKipcbiAqIEEgc3BlY2lmaWNhdGlvbiBmb3IgYSBzdGF0ZSBmaWVsZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUZpZWxkU3BlYzxWYWx1ZT4ge1xuICAvKipcbiAgICogQ29tcGFyZSB0d28gdmFsdWVzIG9mIHRoZSBmaWVsZCwgcmV0dXJuaW5nIGB0cnVlYCB3aGVuIHRoZXkgYXJlXG4gICAqIHRoZSBzYW1lLiBUaGlzIGlzIHVzZWQgdG8gYXZvaWQgcmVjb21wdXRpbmcgZmFjZXRzIHRoYXQgZGVwZW5kXG4gICAqIG9uIHRoZSBmaWVsZCB3aGVuIGl0cyB2YWx1ZSBkaWQgbm90IGNoYW5nZS4gRGVmYXVsdHMgdG8gdXNpbmdcbiAgICogYD09PWAuXG4gICAqXG4gICAqIEBwYXJhbSBhIC0gVGhlIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUuXG4gICAqIEBwYXJhbSBiIC0gVGhlIHNlY29uZCB2YWx1ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgdGhlIHNhbWUsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgY29tcGFyZT8oYTogVmFsdWUsIGI6IFZhbHVlKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZpZWxkIHdoZW4gYSBzdGF0ZSBpcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgdG8gY3JlYXRlIHRoZSB2YWx1ZSBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGUgZmllbGQuXG4gICAqL1xuICBjcmVhdGUoc3RhdGU6IEVkaXRvclN0YXRlKTogVmFsdWU7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBkZXNlcmlhbGl6ZXMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpc1xuICAgKiBmaWVsZCdzIGNvbnRlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBqc29uIC0gVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLlxuICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgdG8gZGVzZXJpYWxpemUgdGhlIHZhbHVlIGZvci5cbiAgICogQHJldHVybnMgVGhlIGRlc2VyaWFsaXplZCB2YWx1ZS5cbiAgICovXG4gIGZyb21KU09OPyhqc29uOiB1bmtub3duLCBzdGF0ZTogRWRpdG9yU3RhdGUpOiBWYWx1ZTtcblxuICAvKipcbiAgICogUHJvdmlkZSBleHRlbnNpb25zIGJhc2VkIG9uIHRoaXMgZmllbGQuIFRoZSBnaXZlbiBmdW5jdGlvbiB3aWxsXG4gICAqIGJlIGNhbGxlZCBvbmNlIHdpdGggdGhlIGluaXRpYWxpemVkIGZpZWxkLiBJdCB3aWxsIHVzdWFsbHkgd2FudFxuICAgKiB0byBjYWxsIHNvbWUgZmFjZXQncyBbYGZyb21gXShodHRwczovL2NvZGVtaXJyb3IubmV0LzYvZG9jcy9yZWYvI3N0YXRlLkZhY2V0LmZyb20pIG1ldGhvZCB0b1xuICAgKiBjcmVhdGUgZmFjZXQgaW5wdXRzIGZyb20gdGhpcyBmaWVsZCwgYnV0IGNhbiBhbHNvIHJldHVybiBvdGhlclxuICAgKiBleHRlbnNpb25zIHRoYXQgc2hvdWxkIGJlIGVuYWJsZWQgd2hlbiB0aGUgZmllbGQgaXMgcHJlc2VudCBpbiBhXG4gICAqIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmaWVsZCAtIFRoZSBpbml0aWFsaXplZCBmaWVsZC5cbiAgICogQHJldHVybnMgVGhlIGV4dGVuc2lvbnMgdG8gZW5hYmxlIHdoZW4gdGhlIGZpZWxkIGlzIHByZXNlbnQgaW4gYSBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHJvdmlkZT8oZmllbGQ6IFN0YXRlRmllbGQ8VmFsdWU+KTogRXh0ZW5zaW9uO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gc2VyaWFsaXplIHRoaXMgZmllbGQncyBjb250ZW50IHRvIEpTT04uIE9ubHlcbiAgICogbmVjZXNzYXJ5IHdoZW4gdGhpcyBmaWVsZCBpcyBpbmNsdWRlZCBpbiB0aGUgYXJndW1lbnQgdG9cbiAgICogW2BFZGl0b3JTdGF0ZS50b0pTT05gXShodHRwczovL2NvZGVtaXJyb3IubmV0LzYvZG9jcy9yZWYvI3N0YXRlLkVkaXRvclN0YXRlLnRvSlNPTikuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXJpYWxpemUuXG4gICAqIEBwYXJhbSBzdGF0ZSAtIFRoZSBzdGF0ZSB0byBzZXJpYWxpemUgdGhlIHZhbHVlIGZvci5cbiAgICogQHJldHVybnMgVGhlIHNlcmlhbGl6ZWQgdmFsdWUuXG4gICAqL1xuICB0b0pTT04/KHZhbHVlOiBWYWx1ZSwgc3RhdGU6IEVkaXRvclN0YXRlKTogdW5rbm93bjtcblxuICAvKipcbiAgICogQ29tcHV0ZSBhIG5ldyB2YWx1ZSBmcm9tIHRoZSBmaWVsZCdzIHByZXZpb3VzIHZhbHVlIGFuZCBhXG4gICAqIFt0cmFuc2FjdGlvbl0oaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC82L2RvY3MvcmVmLyNzdGF0ZS5UcmFuc2FjdGlvbikuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgZmllbGQuXG4gICAqIEBwYXJhbSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byBjb21wdXRlIHRoZSBuZXcgdmFsdWUgZnJvbS5cbiAgICogQHJldHVybnMgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgZmllbGQuXG4gICAqL1xuICB1cGRhdGUodmFsdWU6IFZhbHVlLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBWYWx1ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
120
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL2NvZGVtaXJyb3IvU3RhdGVGaWVsZFNwZWMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogQ29udGFpbnMgYSBzcGVjaWZpY2F0aW9uIGZvciBhIHN0YXRlIGZpZWxkLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlcmZhY2Utb25seSBtb2R1bGU7IG5vIHJ1bnRpbWUgY29kZSB0byB0ZXN0LiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVkaXRvclN0YXRlLFxuICBFeHRlbnNpb24sXG4gIFN0YXRlRmllbGQsXG4gIFRyYW5zYWN0aW9uXG59IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcblxuLyoqXG4gKiBBIHNwZWNpZmljYXRpb24gZm9yIGEgc3RhdGUgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVGaWVsZFNwZWM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIENvbXBhcmUgdHdvIHZhbHVlcyBvZiB0aGUgZmllbGQsIHJldHVybmluZyBgdHJ1ZWAgd2hlbiB0aGV5IGFyZVxuICAgKiB0aGUgc2FtZS4gVGhpcyBpcyB1c2VkIHRvIGF2b2lkIHJlY29tcHV0aW5nIGZhY2V0cyB0aGF0IGRlcGVuZFxuICAgKiBvbiB0aGUgZmllbGQgd2hlbiBpdHMgdmFsdWUgZGlkIG5vdCBjaGFuZ2UuIERlZmF1bHRzIHRvIHVzaW5nXG4gICAqIGA9PT1gLlxuICAgKlxuICAgKiBAcGFyYW0gYSAtIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gYiAtIFRoZSBzZWNvbmQgdmFsdWUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIHRoZSBzYW1lLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIGNvbXBhcmU/KGE6IFZhbHVlLCBiOiBWYWx1ZSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBmaWVsZCB3aGVuIGEgc3RhdGUgaXMgY3JlYXRlZC5cbiAgICpcbiAgICogQHBhcmFtIHN0YXRlIC0gVGhlIHN0YXRlIHRvIGNyZWF0ZSB0aGUgdmFsdWUgZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZpZWxkLlxuICAgKi9cbiAgY3JlYXRlKHN0YXRlOiBFZGl0b3JTdGF0ZSk6IFZhbHVlO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgZGVzZXJpYWxpemVzIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXNcbiAgICogZmllbGQncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0ganNvbiAtIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZS5cbiAgICogQHBhcmFtIHN0YXRlIC0gVGhlIHN0YXRlIHRvIGRlc2VyaWFsaXplIHRoZSB2YWx1ZSBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBkZXNlcmlhbGl6ZWQgdmFsdWUuXG4gICAqL1xuICBmcm9tSlNPTj8oanNvbjogdW5rbm93biwgc3RhdGU6IEVkaXRvclN0YXRlKTogVmFsdWU7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGUgZXh0ZW5zaW9ucyBiYXNlZCBvbiB0aGlzIGZpZWxkLiBUaGUgZ2l2ZW4gZnVuY3Rpb24gd2lsbFxuICAgKiBiZSBjYWxsZWQgb25jZSB3aXRoIHRoZSBpbml0aWFsaXplZCBmaWVsZC4gSXQgd2lsbCB1c3VhbGx5IHdhbnRcbiAgICogdG8gY2FsbCBzb21lIGZhY2V0J3MgW2Bmcm9tYF0oaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC82L2RvY3MvcmVmLyNzdGF0ZS5GYWNldC5mcm9tKSBtZXRob2QgdG9cbiAgICogY3JlYXRlIGZhY2V0IGlucHV0cyBmcm9tIHRoaXMgZmllbGQsIGJ1dCBjYW4gYWxzbyByZXR1cm4gb3RoZXJcbiAgICogZXh0ZW5zaW9ucyB0aGF0IHNob3VsZCBiZSBlbmFibGVkIHdoZW4gdGhlIGZpZWxkIGlzIHByZXNlbnQgaW4gYVxuICAgKiBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGQgLSBUaGUgaW5pdGlhbGl6ZWQgZmllbGQuXG4gICAqIEByZXR1cm5zIFRoZSBleHRlbnNpb25zIHRvIGVuYWJsZSB3aGVuIHRoZSBmaWVsZCBpcyBwcmVzZW50IGluIGEgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByb3ZpZGU/KGZpZWxkOiBTdGF0ZUZpZWxkPFZhbHVlPik6IEV4dGVuc2lvbjtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB1c2VkIHRvIHNlcmlhbGl6ZSB0aGlzIGZpZWxkJ3MgY29udGVudCB0byBKU09OLiBPbmx5XG4gICAqIG5lY2Vzc2FyeSB3aGVuIHRoaXMgZmllbGQgaXMgaW5jbHVkZWQgaW4gdGhlIGFyZ3VtZW50IHRvXG4gICAqIFtgRWRpdG9yU3RhdGUudG9KU09OYF0oaHR0cHM6Ly9jb2RlbWlycm9yLm5ldC82L2RvY3MvcmVmLyNzdGF0ZS5FZGl0b3JTdGF0ZS50b0pTT04pLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2VyaWFsaXplLlxuICAgKiBAcGFyYW0gc3RhdGUgLSBUaGUgc3RhdGUgdG8gc2VyaWFsaXplIHRoZSB2YWx1ZSBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBzZXJpYWxpemVkIHZhbHVlLlxuICAgKi9cbiAgdG9KU09OPyh2YWx1ZTogVmFsdWUsIHN0YXRlOiBFZGl0b3JTdGF0ZSk6IHVua25vd247XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYSBuZXcgdmFsdWUgZnJvbSB0aGUgZmllbGQncyBwcmV2aW91cyB2YWx1ZSBhbmQgYVxuICAgKiBbdHJhbnNhY3Rpb25dKGh0dHBzOi8vY29kZW1pcnJvci5uZXQvNi9kb2NzL3JlZi8jc3RhdGUuVHJhbnNhY3Rpb24pLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGZpZWxkLlxuICAgKiBAcGFyYW0gdHJhbnNhY3Rpb24gLSBUaGUgdHJhbnNhY3Rpb24gdG8gY29tcHV0ZSB0aGUgbmV3IHZhbHVlIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBuZXcgdmFsdWUgb2YgdGhlIGZpZWxkLlxuICAgKi9cbiAgdXBkYXRlKHZhbHVlOiBWYWx1ZSwgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogVmFsdWU7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBOyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -151,6 +151,7 @@ __export(index_exports, {
151
151
  Transformers: () => Transformers,
152
152
  TwoWayMap: () => TwoWayMap,
153
153
  Type: () => Type,
154
+ TypeGuards: () => TypeGuards,
154
155
  ValueProvider: () => ValueProvider,
155
156
  codemirror: () => codemirror,
156
157
  obsidian: () => obsidian,
@@ -179,6 +180,7 @@ var String = __toESM(__extractDefault(require('./String.cjs')), 1);
179
180
  var Transformers = __toESM(__extractDefault(require('./Transformers/index.cjs')), 1);
180
181
  var TwoWayMap = __toESM(__extractDefault(require('./TwoWayMap.cjs')), 1);
181
182
  var Type = __toESM(__extractDefault(require('./Type.cjs')), 1);
183
+ var TypeGuards = __toESM(__extractDefault(require('./TypeGuards.cjs')), 1);
182
184
  var url = __toESM(__extractDefault(require('./url.cjs')), 1);
183
185
  var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1);
184
186
  // Annotate the CommonJS export names for ESM import in node:
@@ -203,9 +205,10 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
203
205
  Transformers,
204
206
  TwoWayMap,
205
207
  Type,
208
+ TypeGuards,
206
209
  ValueProvider,
207
210
  codemirror,
208
211
  obsidian,
209
212
  url
210
213
  });
211
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQWJvcnRDb250cm9sbGVyIGZyb20gJy4vQWJvcnRDb250cm9sbGVyLnRzJztcbmV4cG9ydCAqIGFzIEFycmF5IGZyb20gJy4vQXJyYXkudHMnO1xuZXhwb3J0ICogYXMgQXN5bmMgZnJvbSAnLi9Bc3luYy50cyc7XG5leHBvcnQgKiBhcyBBc3luY0V2ZW50cyBmcm9tICcuL0FzeW5jRXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzIEJsb2IgZnJvbSAnLi9CbG9iLnRzJztcbmV4cG9ydCAqIGFzIGNvZGVtaXJyb3IgZnJvbSAnLi9jb2RlbWlycm9yL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIENzc0NsYXNzIGZyb20gJy4vQ3NzQ2xhc3MudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1Z0NvbnRyb2xsZXIgZnJvbSAnLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuZXhwb3J0ICogYXMgRW51bSBmcm9tICcuL0VudW0udHMnO1xuZXhwb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9FcnJvci50cyc7XG5leHBvcnQgKiBhcyBGdW5jdGlvbiBmcm9tICcuL0Z1bmN0aW9uLnRzJztcbmV4cG9ydCAqIGFzIEhUTUxFbGVtZW50IGZyb20gJy4vSFRNTEVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgTGlicmFyeSBmcm9tICcuL0xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgT2JqZWN0VXRpbHMgZnJvbSAnLi9PYmplY3RVdGlscy50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbiBmcm9tICcuL29ic2lkaWFuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFBhdGggZnJvbSAnLi9QYXRoLnRzJztcbmV4cG9ydCAqIGFzIFJlZ0V4cCBmcm9tICcuL1JlZ0V4cC50cyc7XG5leHBvcnQgKiBhcyBTdHJpbmcgZnJvbSAnLi9TdHJpbmcudHMnO1xuZXhwb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vVHJhbnNmb3JtZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFR3b1dheU1hcCBmcm9tICcuL1R3b1dheU1hcC50cyc7XG5leHBvcnQgKiBhcyBUeXBlIGZyb20gJy4vVHlwZS50cyc7XG5leHBvcnQgKiBhcyB1cmwgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVQcm92aWRlciBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBQUE7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsc0JBQWlDO0FBQ2pDLFlBQXVCO0FBQ3ZCLFlBQXVCO0FBQ3ZCLGtCQUE2QjtBQUM3QixXQUFzQjtBQUN0QixpQkFBNEI7QUFDNUIsZUFBMEI7QUFDMUIsWUFBdUI7QUFDdkIsc0JBQWlDO0FBQ2pDLFdBQXNCO0FBQ3RCLElBQUFBLFNBQXVCO0FBQ3ZCLGVBQTBCO0FBQzFCLGtCQUE2QjtBQUM3QixjQUF5QjtBQUN6QixrQkFBNkI7QUFDN0IsZUFBMEI7QUFDMUIsV0FBc0I7QUFDdEIsYUFBd0I7QUFDeEIsYUFBd0I7QUFDeEIsbUJBQThCO0FBQzlCLGdCQUEyQjtBQUMzQixXQUFzQjtBQUN0QixVQUFxQjtBQUNyQixvQkFBK0I7IiwKICAibmFtZXMiOiBbIkVycm9yIl0KfQo=
214
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQWJvcnRDb250cm9sbGVyIGZyb20gJy4vQWJvcnRDb250cm9sbGVyLnRzJztcbmV4cG9ydCAqIGFzIEFycmF5IGZyb20gJy4vQXJyYXkudHMnO1xuZXhwb3J0ICogYXMgQXN5bmMgZnJvbSAnLi9Bc3luYy50cyc7XG5leHBvcnQgKiBhcyBBc3luY0V2ZW50cyBmcm9tICcuL0FzeW5jRXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzIEJsb2IgZnJvbSAnLi9CbG9iLnRzJztcbmV4cG9ydCAqIGFzIGNvZGVtaXJyb3IgZnJvbSAnLi9jb2RlbWlycm9yL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIENzc0NsYXNzIGZyb20gJy4vQ3NzQ2xhc3MudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1Z0NvbnRyb2xsZXIgZnJvbSAnLi9EZWJ1Z0NvbnRyb2xsZXIudHMnO1xuZXhwb3J0ICogYXMgRW51bSBmcm9tICcuL0VudW0udHMnO1xuZXhwb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9FcnJvci50cyc7XG5leHBvcnQgKiBhcyBGdW5jdGlvbiBmcm9tICcuL0Z1bmN0aW9uLnRzJztcbmV4cG9ydCAqIGFzIEhUTUxFbGVtZW50IGZyb20gJy4vSFRNTEVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgTGlicmFyeSBmcm9tICcuL0xpYnJhcnkudHMnO1xuZXhwb3J0ICogYXMgT2JqZWN0VXRpbHMgZnJvbSAnLi9PYmplY3RVdGlscy50cyc7XG5leHBvcnQgKiBhcyBvYnNpZGlhbiBmcm9tICcuL29ic2lkaWFuL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFBhdGggZnJvbSAnLi9QYXRoLnRzJztcbmV4cG9ydCAqIGFzIFJlZ0V4cCBmcm9tICcuL1JlZ0V4cC50cyc7XG5leHBvcnQgKiBhcyBTdHJpbmcgZnJvbSAnLi9TdHJpbmcudHMnO1xuZXhwb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vVHJhbnNmb3JtZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFR3b1dheU1hcCBmcm9tICcuL1R3b1dheU1hcC50cyc7XG5leHBvcnQgKiBhcyBUeXBlIGZyb20gJy4vVHlwZS50cyc7XG5leHBvcnQgKiBhcyBUeXBlR3VhcmRzIGZyb20gJy4vVHlwZUd1YXJkcy50cyc7XG5leHBvcnQgKiBhcyB1cmwgZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0ICogYXMgVmFsdWVQcm92aWRlciBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBQUE7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxzQkFBaUM7QUFDakMsWUFBdUI7QUFDdkIsWUFBdUI7QUFDdkIsa0JBQTZCO0FBQzdCLFdBQXNCO0FBQ3RCLGlCQUE0QjtBQUM1QixlQUEwQjtBQUMxQixZQUF1QjtBQUN2QixzQkFBaUM7QUFDakMsV0FBc0I7QUFDdEIsSUFBQUEsU0FBdUI7QUFDdkIsZUFBMEI7QUFDMUIsa0JBQTZCO0FBQzdCLGNBQXlCO0FBQ3pCLGtCQUE2QjtBQUM3QixlQUEwQjtBQUMxQixXQUFzQjtBQUN0QixhQUF3QjtBQUN4QixhQUF3QjtBQUN4QixtQkFBOEI7QUFDOUIsZ0JBQTJCO0FBQzNCLFdBQXNCO0FBQ3RCLGlCQUE0QjtBQUM1QixVQUFxQjtBQUNyQixvQkFBK0I7IiwKICAibmFtZXMiOiBbIkVycm9yIl0KfQo=
@@ -20,5 +20,6 @@ export * as String from './String.cjs';
20
20
  export * as Transformers from './Transformers/index.cjs';
21
21
  export * as TwoWayMap from './TwoWayMap.cjs';
22
22
  export * as Type from './Type.cjs';
23
+ export * as TypeGuards from './TypeGuards.cjs';
23
24
  export * as url from './url.cjs';
24
25
  export * as ValueProvider from './ValueProvider.cjs';
@@ -167,4 +167,4 @@ function getAppOrNull() {
167
167
  getApp,
168
168
  getObsidianDevUtilsState
169
169
  });
170
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gcmV0cmlldmUgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi9PYmplY3RVdGlscy50cyc7XG5cbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogV3JhcHBlciB0eXBlIGZvciBhY2Nlc3NpbmcgdGhlIGBBcHBgIGluc3RhbmNlIGdsb2JhbGx5LlxuICovXG5pbnRlcmZhY2UgQXBwV3JhcHBlciB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCByZWZlcmVuY2UgdG8gdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICAgKi9cbiAgYXBwOiBBcHA7XG59XG5cbmludGVyZmFjZSBPYnNpZGlhbkRldlV0aWxzU3RhdGVXcmFwcGVyIHtcbiAgb2JzaWRpYW5EZXZVdGlsc1N0YXRlOiBHZW5lcmljT2JqZWN0O1xufVxuXG4vKipcbiAqIFdyYXBwZXIgdHlwZSBmb3Igc3RvcmluZyBzaGFyZWQgc3RhdGUgaW4gdGhlIE9ic2lkaWFuIGFwcC5cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbHVlV3JhcHBlcjxUPiB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHZhbHVlIHdyYXBwZXIuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB3cmFwLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWx1ZTogVCkge1xuICAgIG5vb3AoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgT2JzaWRpYW4gYEFwcGAgaW5zdGFuY2UuXG4gKlxuICogQHJldHVybnMgVGhlIGBBcHBgIGluc3RhbmNlLlxuICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBgQXBwYCBpbnN0YW5jZSBjYW5ub3QgYmUgZm91bmQuXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL21uYW91bW92L29ic2lkaWFuLWNvZGVzY3JpcHQtdG9vbGtpdD90YWI9cmVhZG1lLW92LWZpbGUjb2JzaWRpYW5hcHAtbW9kdWxlfVxuICogQGRlcHJlY2F0ZWQgVXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyBub3QgcmVjb21tZW5kZWQuIFBhc3MgdGhlIHtAbGluayBBcHB9IGluc3RhbmNlIHRvIHRoZSBmdW5jdGlvbiBpbnN0ZWFkIHdoZW4gcG9zc2libGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHAoKTogQXBwIHtcbiAgY29uc3QgYXBwID0gKGdsb2JhbFRoaXMgYXMgUGFydGlhbDxBcHBXcmFwcGVyPikuYXBwO1xuXG4gIGlmIChhcHApIHtcbiAgICByZXR1cm4gYXBwO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gZ2xvYmFsVGhpcy5yZXF1aXJlKCdvYnNpZGlhbi9hcHAnKSBhcyBBcHA7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignT2JzaWRpYW4gQXBwIGdsb2JhbCBpbnN0YW5jZSBub3QgZm91bmQnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyBvciBjcmVhdGVzIGEgc2hhcmVkIHN0YXRlIHdyYXBwZXIgb2JqZWN0IGZvciBhIGdpdmVuIGtleSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gc3RvcmUgb3IgcmV0cmlldmUgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgLSBUaGUgZGVmYXVsdCB2YWx1ZSB0byB1c2UgaWYgdGhlIHNoYXJlZCBzdGF0ZSBkb2VzIG5vdCBleGlzdC5cbiAqIEByZXR1cm5zIFRoZSBWYWx1ZVdyYXBwZXIgb2JqZWN0IHRoYXQgc3RvcmVzIHRoZSBzaGFyZWQgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGU8VD4oYXBwOiBBcHAgfCBudWxsLCBrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBUKTogVmFsdWVXcmFwcGVyPFQ+IHtcbiAgY29uc3QgaG9sZGVyID0gYXBwID8/IGdldEFwcE9yTnVsbCgpID8/IGdsb2JhbFRoaXM7XG4gIGNvbnN0IHNoYXJlZFN0YXRlV3JhcHBlciA9IGhvbGRlciBhcyBQYXJ0aWFsPE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVdyYXBwZXI+O1xuICBzaGFyZWRTdGF0ZVdyYXBwZXIub2JzaWRpYW5EZXZVdGlsc1N0YXRlID8/PSB7fTtcbiAgcmV0dXJuIChzaGFyZWRTdGF0ZVdyYXBwZXIub2JzaWRpYW5EZXZVdGlsc1N0YXRlW2tleV0gPz89IG5ldyBWYWx1ZVdyYXBwZXI8VD4oZGVmYXVsdFZhbHVlKSkgYXMgVmFsdWVXcmFwcGVyPFQ+O1xufVxuXG5mdW5jdGlvbiBnZXRBcHBPck51bGwoKTogQXBwIHwgbnVsbCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1kZXByZWNhdGVkIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIHRvIGdldCB0aGUgYXBwIGluc3RhbmNlLlxuICByZXR1cm4gZ2V0QXBwKCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFBcUI7QUFtQmQsTUFBTSxhQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1wQixZQUFtQixPQUFVO0FBQVY7QUFDeEIsOEJBQUs7QUFBQSxFQUNQO0FBQ0Y7QUFXTyxTQUFTLFNBQWM7QUFDNUIsUUFBTSxNQUFPLFdBQW1DO0FBRWhELE1BQUksS0FBSztBQUNQLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNGLFdBQU8sV0FBVyxRQUFRLGNBQWM7QUFBQSxFQUMxQyxRQUFRO0FBQ04sVUFBTSxJQUFJLE1BQU0sd0NBQXdDO0FBQUEsRUFDMUQ7QUFDRjtBQVVPLFNBQVMseUJBQTRCLEtBQWlCLEtBQWEsY0FBa0M7QUFDMUcsUUFBTSxTQUFTLE9BQU8sYUFBYSxLQUFLO0FBQ3hDLFFBQU0scUJBQXFCO0FBQzNCLHFCQUFtQiwwQkFBMEIsQ0FBQztBQUM5QyxTQUFRLG1CQUFtQixzQkFBc0IsR0FBRyxNQUFNLElBQUksYUFBZ0IsWUFBWTtBQUM1RjtBQUVBLFNBQVMsZUFBMkI7QUFDbEMsTUFBSSxPQUFPLFdBQVcsYUFBYTtBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUdBLFNBQU8sT0FBTztBQUNoQjsiLAogICJuYW1lcyI6IFtdCn0K
170
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FwcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gcmV0cmlldmUgdGhlIE9ic2lkaWFuIGBBcHBgIGluc3RhbmNlLlxuICovXG5cbmltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi9UeXBlR3VhcmRzLnRzJztcblxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJy4uL0Z1bmN0aW9uLnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIHR5cGUgZm9yIGFjY2Vzc2luZyB0aGUgYEFwcGAgaW5zdGFuY2UgZ2xvYmFsbHkuXG4gKi9cbmludGVyZmFjZSBBcHBXcmFwcGVyIHtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUgT2JzaWRpYW4gYEFwcGAgaW5zdGFuY2UuXG4gICAqL1xuICBhcHA6IEFwcDtcbn1cblxuaW50ZXJmYWNlIE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVdyYXBwZXIge1xuICBvYnNpZGlhbkRldlV0aWxzU3RhdGU6IEdlbmVyaWNPYmplY3Q7XG59XG5cbi8qKlxuICogV3JhcHBlciB0eXBlIGZvciBzdG9yaW5nIHNoYXJlZCBzdGF0ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVXcmFwcGVyPFQ+IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgdmFsdWUgd3JhcHBlci5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHdyYXAuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHZhbHVlOiBUKSB7XG4gICAgbm9vcCgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBPYnNpZGlhbiBgQXBwYCBpbnN0YW5jZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYEFwcGAgaW5zdGFuY2UuXG4gKiBAdGhyb3dzIFdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIGBBcHBgIGluc3RhbmNlIGNhbm5vdCBiZSBmb3VuZC5cbiAqXG4gKiBAc2VlIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbW5hb3Vtb3Yvb2JzaWRpYW4tY29kZXNjcmlwdC10b29sa2l0P3RhYj1yZWFkbWUtb3YtZmlsZSNvYnNpZGlhbmFwcC1tb2R1bGV9XG4gKiBAZGVwcmVjYXRlZCBVc2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIG5vdCByZWNvbW1lbmRlZC4gUGFzcyB0aGUge0BsaW5rIEFwcH0gaW5zdGFuY2UgdG8gdGhlIGZ1bmN0aW9uIGluc3RlYWQgd2hlbiBwb3NzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcCgpOiBBcHAge1xuICBjb25zdCBhcHAgPSAoZ2xvYmFsVGhpcyBhcyBQYXJ0aWFsPEFwcFdyYXBwZXI+KS5hcHA7XG5cbiAgaWYgKGFwcCkge1xuICAgIHJldHVybiBhcHA7XG4gIH1cblxuICB0cnkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnJlcXVpcmUoJ29ic2lkaWFuL2FwcCcpIGFzIEFwcDtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdPYnNpZGlhbiBBcHAgZ2xvYmFsIGluc3RhbmNlIG5vdCBmb3VuZCcpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIG9yIGNyZWF0ZXMgYSBzaGFyZWQgc3RhdGUgd3JhcHBlciBvYmplY3QgZm9yIGEgZ2l2ZW4ga2V5IGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBzdG9yZSBvciByZXRyaWV2ZSB0aGUgc2hhcmVkIHN0YXRlLlxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIFRoZSBkZWZhdWx0IHZhbHVlIHRvIHVzZSBpZiB0aGUgc2hhcmVkIHN0YXRlIGRvZXMgbm90IGV4aXN0LlxuICogQHJldHVybnMgVGhlIFZhbHVlV3JhcHBlciBvYmplY3QgdGhhdCBzdG9yZXMgdGhlIHNoYXJlZCBzdGF0ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZTxUPihhcHA6IEFwcCB8IG51bGwsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBWYWx1ZVdyYXBwZXI8VD4ge1xuICBjb25zdCBob2xkZXIgPSBhcHAgPz8gZ2V0QXBwT3JOdWxsKCkgPz8gZ2xvYmFsVGhpcztcbiAgY29uc3Qgc2hhcmVkU3RhdGVXcmFwcGVyID0gaG9sZGVyIGFzIFBhcnRpYWw8T2JzaWRpYW5EZXZVdGlsc1N0YXRlV3JhcHBlcj47XG4gIHNoYXJlZFN0YXRlV3JhcHBlci5vYnNpZGlhbkRldlV0aWxzU3RhdGUgPz89IHt9O1xuICByZXR1cm4gKHNoYXJlZFN0YXRlV3JhcHBlci5vYnNpZGlhbkRldlV0aWxzU3RhdGVba2V5XSA/Pz0gbmV3IFZhbHVlV3JhcHBlcjxUPihkZWZhdWx0VmFsdWUpKSBhcyBWYWx1ZVdyYXBwZXI8VD47XG59XG5cbmZ1bmN0aW9uIGdldEFwcE9yTnVsbCgpOiBBcHAgfCBudWxsIHtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIE9ubHkgcmVhY2hhYmxlIGluIE9ic2lkaWFuICh3aW5kb3cgZGVmaW5lZCkuICovXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1kZXByZWNhdGVkIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkZXByZWNhdGVkIGZ1bmN0aW9uIHRvIGdldCB0aGUgYXBwIGluc3RhbmNlLlxuICByZXR1cm4gZ2V0QXBwKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFVQSxzQkFBcUI7QUFtQmQsTUFBTSxhQUFnQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1wQixZQUFtQixPQUFVO0FBQVY7QUFDeEIsOEJBQUs7QUFBQSxFQUNQO0FBQ0Y7QUFXTyxTQUFTLFNBQWM7QUFDNUIsUUFBTSxNQUFPLFdBQW1DO0FBRWhELE1BQUksS0FBSztBQUNQLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSTtBQUNGLFdBQU8sV0FBVyxRQUFRLGNBQWM7QUFBQSxFQUMxQyxRQUFRO0FBQ04sVUFBTSxJQUFJLE1BQU0sd0NBQXdDO0FBQUEsRUFDMUQ7QUFDRjtBQVVPLFNBQVMseUJBQTRCLEtBQWlCLEtBQWEsY0FBa0M7QUFDMUcsUUFBTSxTQUFTLE9BQU8sYUFBYSxLQUFLO0FBQ3hDLFFBQU0scUJBQXFCO0FBQzNCLHFCQUFtQiwwQkFBMEIsQ0FBQztBQUM5QyxTQUFRLG1CQUFtQixzQkFBc0IsR0FBRyxNQUFNLElBQUksYUFBZ0IsWUFBWTtBQUM1RjtBQUVBLFNBQVMsZUFBMkI7QUFFbEMsTUFBSSxPQUFPLFdBQVcsYUFBYTtBQUNqQyxXQUFPO0FBQUEsRUFDVDtBQUdBLFNBQU8sT0FBTztBQUVoQjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -197,4 +197,4 @@ function onTimeoutWithoutNotice(ctx) {
197
197
  retryWithTimeoutNotice,
198
198
  runWithTimeoutNotice
199
199
  });
200
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FzeW5jV2l0aE5vdGljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gZXhlY3V0ZSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gd2l0aCBhIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUmV0cnlPcHRpb25zLFxuICBUaW1lb3V0Q29udGV4dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmdW5jdGlvbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICBvcGVyYXRpb25Gbih0aGlzOiB2b2lkLCBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJldHJ5IG9wdGlvbnMuXG4gICAqL1xuICByZXRyeU9wdGlvbnM/OiBSZXRyeU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHRpbWVvdXQgbm90aWNlLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRyYWNlIG9mIHRoZSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqL1xuICBzdGFja1RyYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBydW5XaXRoVGltZW91dH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuV2l0aFRpbWVvdXROb3RpY2VPcHRpb25zPFJlc3VsdD4ge1xuICAvKipcbiAgICogVGhlIGNvbnRleHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgY29udGV4dD86IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpb24gZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAgICpcbiAgICogQHBhcmFtIGFib3J0U2lnbmFsIC0gVGhlIGFib3J0IHNpZ25hbCB0byBsaXN0ZW4gdG8uXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgb3BlcmF0aW9uRm4oYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzYWJsZTxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdHJhY2Ugb2YgdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICovXG4gIHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXRyaWVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZCBhbmQgZGlzcGxheXMgYSBub3RpY2UgaWYgdGhlIGZ1bmN0aW9uIHRpbWVzIG91dC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBvciByZWplY3RzIHdoZW4gdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldHJ5V2l0aFRpbWVvdXROb3RpY2Uob3B0aW9uczogUmV0cnlXaXRoVGltZW91dE5vdGljZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHJldHJ5V2l0aFRpbWVvdXQoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgb25UaW1lb3V0OiBvcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8gb25UaW1lb3V0Tm90aWNlIDogb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICB9KTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIGZ1bmN0aW9uIHdpdGggYSB0aW1lb3V0IGFuZCBkaXNwbGF5cyBhIG5vdGljZSBpZiB0aGUgZnVuY3Rpb24gdGltZXMgb3V0LlxuICpcbiAqIEB0eXBlUGFyYW0gUiAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgdGhlIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XaXRoVGltZW91dE5vdGljZTxSZXN1bHQ+KG9wdGlvbnM6IFJ1bldpdGhUaW1lb3V0Tm90aWNlT3B0aW9uczxSZXN1bHQ+KTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgcmV0dXJuIHJ1bldpdGhUaW1lb3V0KHtcbiAgICAuLi5vcHRpb25zLFxuICAgIG9uVGltZW91dDogb3B0aW9ucy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/IG9uVGltZW91dE5vdGljZSA6IG9uVGltZW91dFdpdGhvdXROb3RpY2VcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG9uVGltZW91dE5vdGljZShjdHg6IFRpbWVvdXRDb250ZXh0KTogdm9pZCB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IE1hdGgudHJ1bmMocGVyZm9ybWFuY2Uubm93KCkgLSBjdHguZHVyYXRpb24pO1xuICBsZXQgcnVubmluZ1RpbWVFbDogSFRNTFNwYW5FbGVtZW50O1xuICBsZXQgaW50ZXJ2YWxJZDogbnVtYmVyO1xuICBjb25zdCBTRUNPTkRfSU5fTUlMTElTRUNPTkRTID0gMTAwMDtcblxuICBjb25zdCBub3RpY2UgPSBuZXcgTm90aWNlKGNyZWF0ZUZyYWdtZW50KChmKSA9PiB7XG4gICAgaWYgKGN0eC5vcGVyYXRpb25OYW1lKSB7XG4gICAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5vcGVyYXRpb24pKTtcbiAgICAgIGYuYXBwZW5kVGV4dCgnOiAnKTtcbiAgICAgIGYuYXBwZW5kVGV4dChjdHgub3BlcmF0aW9uTmFtZSk7XG4gICAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIH1cbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS50aW1lZE91dCwgeyBkdXJhdGlvbjogY3R4LmR1cmF0aW9uIH0pKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnJ1bm5pbmdGb3IpKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBydW5uaW5nVGltZUVsID0gZi5jcmVhdGVTcGFuKCk7XG4gICAgZi5hcHBlbmRUZXh0KCcgJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UubWlsbGlzZWNvbmRzKSk7XG4gICAgZi5jcmVhdGVFbCgnYnInKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS50ZXJtaW5hdGVPcGVyYXRpb24pKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGNvbnN0IGJ1dHRvbiA9IGYuY3JlYXRlRWwoJ2J1dHRvbicsIHtcbiAgICAgIHRleHQ6IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLmNhbmNlbClcbiAgICB9KTtcbiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBjdHgudGVybWluYXRlT3BlcmF0aW9uKCk7XG4gICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgICAgbm90aWNlLmhpZGUoKTtcbiAgICB9KTtcbiAgfSkpO1xuXG4gIHVwZGF0ZVJ1bm5pbmdUaW1lKCk7XG4gIGludGVydmFsSWQgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodXBkYXRlUnVubmluZ1RpbWUsIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpO1xuXG4gIGN0eC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTtcbiAgICBub3RpY2UuaGlkZSgpO1xuICB9KTtcblxuICBmdW5jdGlvbiB1cGRhdGVSdW5uaW5nVGltZSgpOiB2b2lkIHtcbiAgICBjb25zdCBydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzID0gTWF0aC5tYXgoY3R4LmR1cmF0aW9uLCBNYXRoLnJvdW5kKChwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZSkgLyBTRUNPTkRfSU5fTUlMTElTRUNPTkRTKSAqIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpO1xuICAgIHJ1bm5pbmdUaW1lRWwudGV4dENvbnRlbnQgPSBTdHJpbmcocnVubmluZ1RpbWVJbk1pbGxpc2Vjb25kcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gb25UaW1lb3V0V2l0aG91dE5vdGljZShjdHg6IFRpbWVvdXRDb250ZXh0KTogdm9pZCB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IE1hdGgudHJ1bmMocGVyZm9ybWFuY2Uubm93KCkgLSBjdHguZHVyYXRpb24pO1xuXG4gIGN0eC5vbk9wZXJhdGlvbkNvbXBsZXRlZCgoKSA9PiB7XG4gICAgZ2V0RGVidWdnZXIoJ0FzeW5jV2l0aE5vdGljZTpvblRpbWVvdXRXaXRob3V0Tm90aWNlJykoJ09wZXJhdGlvbiBjb21wbGV0ZWQgYWZ0ZXIgdGltZW91dCcsIHtcbiAgICAgIG9wZXJhdGlvbk5hbWU6IGN0eC5vcGVyYXRpb25OYW1lLFxuICAgICAgdG90YWxEdXJhdGlvbjogTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZSlcbiAgICB9KTtcbiAgfSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsc0JB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
200
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FzeW5jV2l0aE5vdGljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gZXhlY3V0ZSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gd2l0aCBhIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUmV0cnlPcHRpb25zLFxuICBUaW1lb3V0Q29udGV4dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmdW5jdGlvbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXRyeSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0cnlPcHRpb25zPzogUmV0cnlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcnVuV2l0aFRpbWVvdXR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bldpdGhUaW1lb3V0Tm90aWNlT3B0aW9uczxSZXN1bHQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gbGlzdGVuIHRvLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPFJlc3VsdD47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgdHJ1ZSBvciB0aGUgdGltZW91dCBpcyByZWFjaGVkIGFuZCBkaXNwbGF5cyBhIG5vdGljZSBpZiB0aGUgZnVuY3Rpb24gdGltZXMgb3V0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShvcHRpb25zOiBSZXRyeVdpdGhUaW1lb3V0Tm90aWNlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gcmV0cnlXaXRoVGltZW91dCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBvblRpbWVvdXQ6IG9wdGlvbnMuc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UgPyBvblRpbWVvdXROb3RpY2UgOiBvblRpbWVvdXRXaXRob3V0Tm90aWNlXG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQgYW5kIGRpc3BsYXlzIGEgbm90aWNlIGlmIHRoZSBmdW5jdGlvbiB0aW1lcyBvdXQuXG4gKlxuICogQHR5cGVQYXJhbSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBmcm9tIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0Tm90aWNlPFJlc3VsdD4ob3B0aW9uczogUnVuV2l0aFRpbWVvdXROb3RpY2VPcHRpb25zPFJlc3VsdD4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICByZXR1cm4gcnVuV2l0aFRpbWVvdXQoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgb25UaW1lb3V0OiBvcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8gb25UaW1lb3V0Tm90aWNlIDogb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25UaW1lb3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGxldCBpbnRlcnZhbElkOiBudW1iZXI7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG4gIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY3R4Lm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLm9wZXJhdGlvbikpO1xuICAgICAgZi5hcHBlbmRUZXh0KCc6ICcpO1xuICAgICAgZi5hcHBlbmRUZXh0KGN0eC5vcGVyYXRpb25OYW1lKTtcbiAgICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgfVxuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRpbWVkT3V0LCB7IGR1cmF0aW9uOiBjdHguZHVyYXRpb24gfSkpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5taWxsaXNlY29uZHMpKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRlcm1pbmF0ZU9wZXJhdGlvbikpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgY29uc3QgYnV0dG9uID0gZi5jcmVhdGVFbCgnYnV0dG9uJywge1xuICAgICAgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGN0eC50ZXJtaW5hdGVPcGVyYXRpb24oKTtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICBub3RpY2UuaGlkZSgpO1xuICAgIH0pO1xuICB9KSk7XG5cbiAgdXBkYXRlUnVubmluZ1RpbWUoKTtcbiAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgIG5vdGljZS5oaWRlKCk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZVJ1bm5pbmdUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMgPSBNYXRoLm1heChjdHguZHVyYXRpb24sIE1hdGgucm91bmQoKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKSAvIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpICogU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG4gICAgcnVubmluZ1RpbWVFbC50ZXh0Q29udGVudCA9IFN0cmluZyhydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvblRpbWVvdXRXaXRob3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBnZXREZWJ1Z2dlcignQXN5bmNXaXRoTm90aWNlOm9uVGltZW91dFdpdGhvdXROb3RpY2UnKSgnT3BlcmF0aW9uIGNvbXBsZXRlZCBhZnRlciB0aW1lb3V0Jywge1xuICAgICAgb3BlcmF0aW9uTmFtZTogY3R4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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