obsidian-dev-utils 52.1.1 → 52.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.cjs +2 -2
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +13 -4
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.cjs +12 -6
- package/dist/lib/cjs/script-utils/linters/eslint-rules/index.d.cts +3 -1
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.cjs +217 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.cts +3 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.cjs +180 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-variables.d.cts +13 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.cjs +5 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.cjs +135 -0
- package/dist/lib/cjs/script-utils/linters/eslint-rules/rule-tester-helper.d.cts +17 -0
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs +2 -2
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +13 -4
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.d.mts +3 -1
- package/dist/lib/esm/script-utils/linters/eslint-rules/index.mjs +8 -4
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.d.mts +3 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return.mjs +117 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.d.mts +13 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-variables.mjs +73 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/obsidian-dev-utils-plugin.mjs +5 -3
- package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.d.mts +17 -0
- package/dist/lib/esm/script-utils/linters/eslint-rules/rule-tester-helper.mjs +29 -0
- package/package.json +5 -2
- package/script-utils/linters/eslint-rules/no-async-callback-to-unsafe-return/package.json +6 -0
- package/script-utils/linters/eslint-rules/no-used-underscore-variables/package.json +6 -0
- package/script-utils/linters/eslint-rules/{no-used-underscore-params → rule-tester-helper}/package.json +3 -3
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.cjs +0 -174
- package/dist/lib/cjs/script-utils/linters/eslint-rules/no-used-underscore-params.d.cts +0 -12
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.d.mts +0 -12
- package/dist/lib/esm/script-utils/linters/eslint-rules/no-used-underscore-params.mjs +0 -68
package/dist/lib/esm/library.mjs
CHANGED
|
@@ -19,7 +19,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
-
const LIBRARY_VERSION = "52.
|
|
22
|
+
const LIBRARY_VERSION = "52.3.0";
|
|
23
23
|
const LIBRARY_NAME = "obsidian-dev-utils";
|
|
24
24
|
const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACzCJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACAA;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;EACE;;;ACDF;EACE;;;ACDF;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
|
25
25
|
export {
|
package/dist/lib/esm/script-utils/bundlers/esbuild-impl/copyToObsidianPluginsFolderPlugin.mjs
CHANGED
|
@@ -85,7 +85,7 @@ async function enableCommunityPlugin(obsidianConfigFolder, pluginId) {
|
|
|
85
85
|
await evalObsidianCli({
|
|
86
86
|
args: [pluginId],
|
|
87
87
|
async fn(app, id) {
|
|
88
|
-
await app.plugins.
|
|
88
|
+
await app.plugins.enablePluginAndSave(id);
|
|
89
89
|
},
|
|
90
90
|
vaultPath: obsidianConfigFolder
|
|
91
91
|
});
|
|
@@ -102,4 +102,4 @@ async function enableCommunityPlugin(obsidianConfigFolder, pluginId) {
|
|
|
102
102
|
export {
|
|
103
103
|
copyToObsidianPluginsFolderPlugin
|
|
104
104
|
};
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBhdXRvbWF0aWNhbGx5IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0XG4gKiB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIgZHVyaW5nIGRldmVsb3BtZW50LiBUaGlzIHBsdWdpbiBoZWxwcyBzdHJlYW1saW5lXG4gKiB0aGUgZGV2ZWxvcG1lbnQgd29ya2Zsb3cgYnkgZW5zdXJpbmcgdGhhdCB0aGUgbGF0ZXN0IGJ1aWxkIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAqIGluIHRoZSBjb3JyZWN0IE9ic2lkaWFuIGZvbGRlciBmb3IgdGVzdGluZyBhbmQgdXNlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyBidWlsZCBvdXRwdXQgdG8gT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXI7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBqb2luLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuLi8uLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGV2YWxPYnNpZGlhbkNsaSB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWNsaS50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0IHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuXG4gKiBAcGFyYW0gZGlzdEZvbGRlciAtIFRoZSBmb2xkZXIgd2hlcmUgdGhlIGJ1aWx0IGZpbGVzIGFyZSBsb2NhdGVkLlxuICogQHBhcmFtIG9ic2lkaWFuQ29uZmlnRm9sZGVyIC0gVGhlIGZvbGRlciBvZiB0aGUgT2JzaWRpYW4gY29uZmlndXJhdGlvbi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgcGx1Z2luIHdpbGwgbm90IGNvcHkgZmlsZXMuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbihcbiAgaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW4sXG4gIGRpc3RGb2xkZXI6IHN0cmluZyxcbiAgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZyxcbiAgcGx1Z2luTmFtZTogc3RyaW5nXG4pOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9ic2lkaWFuQ29uZmlnRm9sZGVyKSB7XG4gICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ2NvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbicpKFxuICAgICAgICAgICAgJ05vIE9ic2lkaWFuIGNvbmZpZyBmb2xkZXIgY29uZmlndXJlZC4gYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgaW4gc3lzdGVtIG9yIGluIGAuZW52YCBmaWxlLiBUaGUgY29tcGlsZWQgcGx1Z2luIHdpbGwgbm90IGJlIGNvcGllZCBpbnRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyLidcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyID0gdG9Qb3NpeFBhdGgob2JzaWRpYW5Db25maWdGb2xkZXIpO1xuXG4gICAgICAgIGNvbnN0IHBsdWdpbkZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zJywgcGx1Z2luTmFtZSk7XG5cbiAgICAgICAgaWYgKCFleGlzdHNTeW5jKHBsdWdpbkZvbGRlcikpIHtcbiAgICAgICAgICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY3AoZGlzdEZvbGRlciwgcGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBob3RSZWxvYWRGb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucy9ob3QtcmVsb2FkJyk7XG4gICAgICAgIGlmICghZXhpc3RzU3luYyhob3RSZWxvYWRGb2xkZXIpKSB7XG4gICAgICAgICAgYXdhaXQgbWtkaXIoaG90UmVsb2FkRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBob3RSZWxvYWRSZXBvVXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9wamVieS9ob3QtcmVsb2FkL21hc3Rlci8nO1xuICAgICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgWydtYWluLmpzJywgJ21hbmlmZXN0Lmpzb24nXSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGhvdFJlbG9hZFJlcG9VcmwgKyBmaWxlTmFtZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmlsZVVybCk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oaG90UmVsb2FkRm9sZGVyLCBmaWxlTmFtZSksIHRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ2hvdC1yZWxvYWQnKTtcbiAgICAgICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmcsIHBsdWdpbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9idW5kbGVycy9lc2J1aWxkLWltcGwvY29weVRvT2JzaWRpYW5QbHVnaW5zRm9sZGVyUGx1Z2luLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFRoaXMgbW9kdWxlIGRlZmluZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBhdXRvbWF0aWNhbGx5IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0XG4gKiB0byB0aGUgT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXIgZHVyaW5nIGRldmVsb3BtZW50LiBUaGlzIHBsdWdpbiBoZWxwcyBzdHJlYW1saW5lXG4gKiB0aGUgZGV2ZWxvcG1lbnQgd29ya2Zsb3cgYnkgZW5zdXJpbmcgdGhhdCB0aGUgbGF0ZXN0IGJ1aWxkIGlzIGFsd2F5cyBhdmFpbGFibGVcbiAqIGluIHRoZSBjb3JyZWN0IE9ic2lkaWFuIGZvbGRlciBmb3IgdGVzdGluZyBhbmQgdXNlLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyBidWlsZCBvdXRwdXQgdG8gT2JzaWRpYW4gcGx1Z2lucyBmb2xkZXI7IHJlcXVpcmVzIGEgbGl2ZSBlc2J1aWxkIGNvbnRleHQuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luIH0gZnJvbSAnZXNidWlsZCc7XG5cbmltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7XG4gIGNwLFxuICBta2RpcixcbiAgcmVhZEZpbGUsXG4gIHdyaXRlRmlsZVxufSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBqb2luLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuLi8uLi8uLi9wYXRoLnRzJztcbmltcG9ydCB7IGV2YWxPYnNpZGlhbkNsaSB9IGZyb20gJy4uLy4uL29ic2lkaWFuLWNsaS50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlc2J1aWxkIHBsdWdpbiB0aGF0IGNvcGllcyB0aGUgYnVpbGQgb3V0cHV0IHRvIHRoZSBPYnNpZGlhbiBwbHVnaW5zIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gaXNQcm9kdWN0aW9uQnVpbGQgLSBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBidWlsZCBpcyBhIHByb2R1Y3Rpb24gYnVpbGQuXG4gKiBAcGFyYW0gZGlzdEZvbGRlciAtIFRoZSBmb2xkZXIgd2hlcmUgdGhlIGJ1aWx0IGZpbGVzIGFyZSBsb2NhdGVkLlxuICogQHBhcmFtIG9ic2lkaWFuQ29uZmlnRm9sZGVyIC0gVGhlIGZvbGRlciBvZiB0aGUgT2JzaWRpYW4gY29uZmlndXJhdGlvbi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgcGx1Z2luIHdpbGwgbm90IGNvcHkgZmlsZXMuXG4gKiBAcGFyYW0gcGx1Z2luTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBBbiBlc2J1aWxkIGBQbHVnaW5gIG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbihcbiAgaXNQcm9kdWN0aW9uQnVpbGQ6IGJvb2xlYW4sXG4gIGRpc3RGb2xkZXI6IHN0cmluZyxcbiAgb2JzaWRpYW5Db25maWdGb2xkZXI6IHN0cmluZyxcbiAgcGx1Z2luTmFtZTogc3RyaW5nXG4pOiBQbHVnaW4ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6ICdjb3B5LXRvLW9ic2lkaWFuLXBsdWdpbnMtZm9sZGVyJyxcbiAgICBzZXR1cChidWlsZCk6IHZvaWQge1xuICAgICAgYnVpbGQub25FbmQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoaXNQcm9kdWN0aW9uQnVpbGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW9ic2lkaWFuQ29uZmlnRm9sZGVyKSB7XG4gICAgICAgICAgZ2V0TGliRGVidWdnZXIoJ2NvcHlUb09ic2lkaWFuUGx1Z2luc0ZvbGRlclBsdWdpbicpKFxuICAgICAgICAgICAgJ05vIE9ic2lkaWFuIGNvbmZpZyBmb2xkZXIgY29uZmlndXJlZC4gYE9CU0lESUFOX0NPTkZJR19GT0xERVJgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQgaW4gc3lzdGVtIG9yIGluIGAuZW52YCBmaWxlLiBUaGUgY29tcGlsZWQgcGx1Z2luIHdpbGwgbm90IGJlIGNvcGllZCBpbnRvIE9ic2lkaWFuIHBsdWdpbnMgZm9sZGVyLidcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9ic2lkaWFuQ29uZmlnRm9sZGVyID0gdG9Qb3NpeFBhdGgob2JzaWRpYW5Db25maWdGb2xkZXIpO1xuXG4gICAgICAgIGNvbnN0IHBsdWdpbkZvbGRlciA9IGpvaW4ob2JzaWRpYW5Db25maWdGb2xkZXIsICdwbHVnaW5zJywgcGx1Z2luTmFtZSk7XG5cbiAgICAgICAgaWYgKCFleGlzdHNTeW5jKHBsdWdpbkZvbGRlcikpIHtcbiAgICAgICAgICBhd2FpdCBta2RpcihwbHVnaW5Gb2xkZXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgY3AoZGlzdEZvbGRlciwgcGx1Z2luRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgICAgICBjb25zdCBob3RSZWxvYWRGb2xkZXIgPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAncGx1Z2lucy9ob3QtcmVsb2FkJyk7XG4gICAgICAgIGlmICghZXhpc3RzU3luYyhob3RSZWxvYWRGb2xkZXIpKSB7XG4gICAgICAgICAgYXdhaXQgbWtkaXIoaG90UmVsb2FkRm9sZGVyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgICBjb25zdCBob3RSZWxvYWRSZXBvVXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9wamVieS9ob3QtcmVsb2FkL21hc3Rlci8nO1xuICAgICAgICAgIGZvciAoY29uc3QgZmlsZU5hbWUgb2YgWydtYWluLmpzJywgJ21hbmlmZXN0Lmpzb24nXSkge1xuICAgICAgICAgICAgY29uc3QgZmlsZVVybCA9IGhvdFJlbG9hZFJlcG9VcmwgKyBmaWxlTmFtZTtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goZmlsZVVybCk7XG4gICAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGpvaW4oaG90UmVsb2FkRm9sZGVyLCBmaWxlTmFtZSksIHRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IGVuYWJsZUNvbW11bml0eVBsdWdpbihvYnNpZGlhbkNvbmZpZ0ZvbGRlciwgJ2hvdC1yZWxvYWQnKTtcbiAgICAgICAgYXdhaXQgZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCBwbHVnaW5OYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5hYmxlQ29tbXVuaXR5UGx1Z2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyOiBzdHJpbmcsIHBsdWdpbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY29tbXVuaXR5UGx1Z2luc1BhdGggPSBqb2luKG9ic2lkaWFuQ29uZmlnRm9sZGVyLCAnY29tbXVuaXR5LXBsdWdpbnMuanNvbicpO1xuICBsZXQgcGx1Z2luczogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGV4aXN0c1N5bmMoY29tbXVuaXR5UGx1Z2luc1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNvbW11bml0eVBsdWdpbnNQYXRoLCAndXRmLTgnKTtcbiAgICBwbHVnaW5zID0gSlNPTi5wYXJzZShjb250ZW50KSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIGlmICghcGx1Z2lucy5pbmNsdWRlcyhwbHVnaW5JZCkpIHtcbiAgICBwbHVnaW5zLnB1c2gocGx1Z2luSWQpO1xuICAgIGNvbnN0IEpTT05fSU5ERU5UID0gMjtcbiAgICBhd2FpdCB3cml0ZUZpbGUoY29tbXVuaXR5UGx1Z2luc1BhdGgsIEpTT04uc3RyaW5naWZ5KHBsdWdpbnMsIG51bGwsIEpTT05fSU5ERU5UKSwgJ3V0Zi04Jyk7XG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGV2YWxPYnNpZGlhbkNsaSh7XG4gICAgICBhcmdzOiBbcGx1Z2luSWRdLFxuICAgICAgYXN5bmMgZm4oYXBwLCBpZCkge1xuICAgICAgICBhd2FpdCBhcHAucGx1Z2lucy5lbmFibGVQbHVnaW5BbmRTYXZlKGlkKTtcbiAgICAgIH0sXG4gICAgICB2YXVsdFBhdGg6IG9ic2lkaWFuQ29uZmlnRm9sZGVyXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSk7XG4gICAgY29uc3QgaXNOb3RGb3VuZCA9IGVycm9yTWVzc2FnZS5pbmNsdWRlcygnRU5PRU5UJykgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdub3QgZm91bmQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCByZWNvZ25pemVkJyk7XG4gICAgaWYgKGlzTm90Rm91bmQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE9ic2lkaWFuIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbHVnaW4gJyR7cGx1Z2luSWR9JyB3aWxsIGJlIGVuYWJsZWQgb24gbmV4dCB2YXVsdCBvcGVuLiBTZWUgaHR0cHM6Ly9oZWxwLm9ic2lkaWFuLm1kL2NsaWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZW5hYmxlIHBsdWdpbiAnJHtwbHVnaW5JZH0nIHZpYSBPYnNpZGlhbiBDTEkuYCwgZSk7XG4gICAgfVxuICB9XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSxTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyxzQkFBc0I7QUFDL0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQVd6QixTQUFTLGtDQUNkLG1CQUNBLFlBQ0Esc0JBQ0EsWUFDUTtBQUNSLFNBQU87QUFBQSxJQUNMLE1BQU07QUFBQSxJQUNOLE1BQU0sT0FBYTtBQUNqQixZQUFNLE1BQU0sWUFBWTtBQUN0QixZQUFJLG1CQUFtQjtBQUNyQjtBQUFBLFFBQ0Y7QUFFQSxZQUFJLENBQUMsc0JBQXNCO0FBQ3pCLHlCQUFlLG1DQUFtQztBQUFBLFlBQ2hEO0FBQUEsVUFDRjtBQUNBO0FBQUEsUUFDRjtBQUVBLCtCQUF1QixZQUFZLG9CQUFvQjtBQUV2RCxjQUFNLGVBQWUsS0FBSyxzQkFBc0IsV0FBVyxVQUFVO0FBRXJFLFlBQUksQ0FBQyxXQUFXLFlBQVksR0FBRztBQUM3QixnQkFBTSxNQUFNLGNBQWMsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUFBLFFBQy9DO0FBRUEsY0FBTSxHQUFHLFlBQVksY0FBYyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRXRELGNBQU0sa0JBQWtCLEtBQUssc0JBQXNCLG9CQUFvQjtBQUN2RSxZQUFJLENBQUMsV0FBVyxlQUFlLEdBQUc7QUFDaEMsZ0JBQU0sTUFBTSxpQkFBaUIsRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNoRCxnQkFBTSxtQkFBbUI7QUFDekIscUJBQVcsWUFBWSxDQUFDLFdBQVcsZUFBZSxHQUFHO0FBQ25ELGtCQUFNLFVBQVUsbUJBQW1CO0FBRW5DLGtCQUFNLFdBQVcsTUFBTSxNQUFNLE9BQU87QUFDcEMsa0JBQU0sT0FBTyxNQUFNLFNBQVMsS0FBSztBQUNqQyxrQkFBTSxVQUFVLEtBQUssaUJBQWlCLFFBQVEsR0FBRyxJQUFJO0FBQUEsVUFDdkQ7QUFBQSxRQUNGO0FBRUEsY0FBTSxzQkFBc0Isc0JBQXNCLFlBQVk7QUFDOUQsY0FBTSxzQkFBc0Isc0JBQXNCLFVBQVU7QUFBQSxNQUM5RCxDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLGVBQWUsc0JBQXNCLHNCQUE4QixVQUFpQztBQUNsRyxRQUFNLHVCQUF1QixLQUFLLHNCQUFzQix3QkFBd0I7QUFDaEYsTUFBSSxVQUFvQixDQUFDO0FBQ3pCLE1BQUksV0FBVyxvQkFBb0IsR0FBRztBQUNwQyxVQUFNLFVBQVUsTUFBTSxTQUFTLHNCQUFzQixPQUFPO0FBQzVELGNBQVUsS0FBSyxNQUFNLE9BQU87QUFBQSxFQUM5QjtBQUVBLE1BQUksQ0FBQyxRQUFRLFNBQVMsUUFBUSxHQUFHO0FBQy9CLFlBQVEsS0FBSyxRQUFRO0FBQ3JCLFVBQU0sY0FBYztBQUNwQixVQUFNLFVBQVUsc0JBQXNCLEtBQUssVUFBVSxTQUFTLE1BQU0sV0FBVyxHQUFHLE9BQU87QUFBQSxFQUMzRjtBQUVBLE1BQUk7QUFDRixVQUFNLGdCQUFnQjtBQUFBLE1BQ3BCLE1BQU0sQ0FBQyxRQUFRO0FBQUEsTUFDZixNQUFNLEdBQUcsS0FBSyxJQUFJO0FBQ2hCLGNBQU0sSUFBSSxRQUFRLG9CQUFvQixFQUFFO0FBQUEsTUFDMUM7QUFBQSxNQUNBLFdBQVc7QUFBQSxJQUNiLENBQUM7QUFBQSxFQUNILFNBQVMsR0FBWTtBQUNuQixVQUFNLGVBQWUsYUFBYSxRQUFRLEVBQUUsVUFBVSxPQUFPLENBQUM7QUFDOUQsVUFBTSxhQUFhLGFBQWEsU0FBUyxRQUFRLEtBQUssYUFBYSxTQUFTLFdBQVcsS0FBSyxhQUFhLFNBQVMsZ0JBQWdCO0FBQ2xJLFFBQUksWUFBWTtBQUNkLGNBQVEsTUFBTSwwQ0FBMEMsUUFBUSx3RUFBd0U7QUFBQSxJQUMxSSxPQUFPO0FBQ0wsY0FBUSxNQUFNLDRCQUE0QixRQUFRLHVCQUF1QixDQUFDO0FBQUEsSUFDNUU7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -29,6 +29,7 @@ import obsidianmd from "eslint-plugin-obsidianmd";
|
|
|
29
29
|
import { configs as perfectionistConfigs } from "eslint-plugin-perfectionist";
|
|
30
30
|
import { defineConfig } from "eslint/config";
|
|
31
31
|
import globals from "globals";
|
|
32
|
+
import { existsSync } from "node:fs";
|
|
32
33
|
import tseslint from "typescript-eslint";
|
|
33
34
|
import { ObsidianPluginRepoPaths } from "../../obsidian/plugin/obsidian-plugin-repo-paths.mjs";
|
|
34
35
|
import { join } from "../../path.mjs";
|
|
@@ -84,7 +85,7 @@ function defineEslintConfigs(params = {}) {
|
|
|
84
85
|
}
|
|
85
86
|
const customConfigs = params.customConfigs?.(context) ?? [];
|
|
86
87
|
return defineConfig(
|
|
87
|
-
|
|
88
|
+
...getGitIgnoreConfigs(),
|
|
88
89
|
...getEslintConfigs(context),
|
|
89
90
|
...getTseslintConfigs(context),
|
|
90
91
|
...getStylisticConfigs(context),
|
|
@@ -292,6 +293,13 @@ function getEslintImportResolverTypescriptConfigs() {
|
|
|
292
293
|
}
|
|
293
294
|
]);
|
|
294
295
|
}
|
|
296
|
+
function getGitIgnoreConfigs() {
|
|
297
|
+
const gitignorePath = join(getRootFolder() ?? "", ".gitignore");
|
|
298
|
+
if (!existsSync(gitignorePath)) {
|
|
299
|
+
return [];
|
|
300
|
+
}
|
|
301
|
+
return [includeIgnoreFile(gitignorePath)];
|
|
302
|
+
}
|
|
295
303
|
function getImportXConfigs(context) {
|
|
296
304
|
return defineConfig([
|
|
297
305
|
{
|
|
@@ -367,7 +375,7 @@ function getObsidianDevUtilsPluginConfigs(context) {
|
|
|
367
375
|
"obsidian-dev-utils": obsidianDevUtilsPlugin
|
|
368
376
|
},
|
|
369
377
|
rules: {
|
|
370
|
-
"obsidian-dev-utils/no-used-underscore-
|
|
378
|
+
"obsidian-dev-utils/no-used-underscore-variables": "error"
|
|
371
379
|
}
|
|
372
380
|
}
|
|
373
381
|
]);
|
|
@@ -518,7 +526,8 @@ function getTseslintConfigs(context) {
|
|
|
518
526
|
}
|
|
519
527
|
],
|
|
520
528
|
"@typescript-eslint/prefer-readonly": "error",
|
|
521
|
-
"obsidian-dev-utils/no-
|
|
529
|
+
"obsidian-dev-utils/no-async-callback-to-unsafe-return": "error",
|
|
530
|
+
"obsidian-dev-utils/no-used-underscore-variables": "error"
|
|
522
531
|
}
|
|
523
532
|
},
|
|
524
533
|
{
|
|
@@ -534,4 +543,4 @@ export {
|
|
|
534
543
|
EslintConfigContext,
|
|
535
544
|
defineEslintConfigs
|
|
536
545
|
};
|
|
537
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMgd2l0aCB2YXJpb3VzIHBsdWdpbnMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKiBzdWNoIGFzIGBAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyYCwgYEB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luYCxcbiAqIGBlc2xpbnQtcGx1Z2luLW1vZHVsZXMtbmV3bGluZXNgLCBgQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luYC5cbiAqIEl0IHNldHMgdXAgcGFyc2VycywgcGx1Z2lucywgYW5kIHJ1bGVzIGZvciBtYWludGFpbmluZyBjb2RlIHF1YWxpdHkgYW5kIGNvbnNpc3RlbmN5LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWNsYXJhdGl2ZSBFU0xpbnQgcnVsZS9wbHVnaW4gY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBFU0xpbnQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVTTGludCxcbiAgTGludGVyXG59IGZyb20gJ2VzbGludCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5pbXBvcnQgY29tbWVudHNDb25maWdzIGZyb20gJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1wbHVnaW4tZXNsaW50LWNvbW1lbnRzL2NvbmZpZ3MnO1xuaW1wb3J0IHsgaW5jbHVkZUlnbm9yZUZpbGUgfSBmcm9tICdAZXNsaW50L2NvbXBhdCc7XG5pbXBvcnQgZXNsaW50IGZyb20gJ0Blc2xpbnQvanMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgc3R5bGlzdGljIGZyb20gJ0BzdHlsaXN0aWMvZXNsaW50LXBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIgfSBmcm9tICdlc2xpbnQtaW1wb3J0LXJlc29sdmVyLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgZmxhdENvbmZpZ3MgYXMgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1pbXBvcnQteCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc1BsdWdpbiB9IGZyb20gJy4vZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMnO1xuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgYnVpbGRzIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgY3VzdG9tQ29uZmlncz8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGVkaXRzIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgZWRpdENvbnRleHQ/KGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2xpbnRDb25maWdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSByb290IGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdENvbmZpZ0ZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NyaXB0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjcmlwdEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVzdCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXN0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbGwgZmlsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhbGwgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYWxsRmlsZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy50ZXN0RmlsZXMsIC4uLnRoaXMuc2NyaXB0RmlsZXMsIC4uLnRoaXMucm9vdENvbmZpZ0ZpbGVzLCAuLi50aGlzLnNvdXJjZUZpbGVzXTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRXNsaW50Q29uZmlncyhwYXJhbXM6IERlZmluZUVzbGludENvbmZpZ3NQYXJhbXMgPSB7fSk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGNvbnRleHQgPSBuZXcgRXNsaW50Q29uZmlnQ29udGV4dCgpO1xuICBjb250ZXh0LnJvb3RDb25maWdGaWxlcy5wdXNoKFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNvbW1pdGxpbnRDb25maWdUcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVml0ZXN0Q29uZmlnVHNcbiAgKTtcbiAgY29udGV4dC5zY3JpcHRGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICk7XG4gIGNvbnRleHQuc291cmNlRmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUc3gpXG4gICk7XG4gIGNvbnRleHQudGVzdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5UZXN0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTW9ja3MsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VGVzdFRzKVxuICApO1xuXG4gIGlmIChwYXJhbXMuZWRpdENvbnRleHQpIHtcbiAgICBwYXJhbXMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gcGFyYW1zLmN1c3RvbUNvbmZpZ3M/Lihjb250ZXh0KSA/PyBbXTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIGluY2x1ZGVJZ25vcmVGaWxlKGpvaW4oZ2V0Um9vdEZvbGRlcigpID8/ICcnLCAnLmdpdGlnbm9yZScpKSxcbiAgICAuLi5nZXRFc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKS4gSW5pdGlhbGl6ZSB0aGUgZmllbGQgb3IgbWFrZSBpdCBvcHRpb25hbC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcGFyYW1ldGVycy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gSWRlbnRpZmllciBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcmV0dXJuIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJ1RTTWV0aG9kU2lnbmF0dXJlIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBhcyB0eXBlIGFyZ3VtZW50cy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhbm5vdGF0aW9ucy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MucmVjb21tZW5kZWQgYXMgTGludGVyLkNvbmZpZyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnR5cGVzY3JpcHQgYXMgTGludGVyLkNvbmZpZyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3Mud2FybmluZ3MgYXMgTGludGVyLkNvbmZpZ1xuICAgICAgXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvY29uc2lzdGVudC10eXBlLXNwZWNpZmllci1zdHlsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9leHRlbnNpb25zJzogWydlcnJvcicsICdpZ25vcmVQYWNrYWdlcyddLFxuICAgICAgICAnaW1wb3J0LXgvZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvaW1wb3J0cy1maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uZXdsaW5lLWFmdGVyLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hYnNvbHV0ZS1wYXRoJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFtZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY29tbW9uanMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY3ljbGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVwcmVjYXRlZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kdXBsaWNhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR5bmFtaWMtcmVxdWlyZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1lbXB0eS1uYW1lZC1ibG9ja3MnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8taW1wb3J0LW1vZHVsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW11dGFibGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lZC1kZWZhdWx0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVzcGFjZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZWxhdGl2ZS1wYWNrYWdlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZXN0cmljdGVkLXBhdGhzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXNlbGYtaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVuYXNzaWduZWQtaW1wb3J0JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyoqLyouY3NzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2FzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNjc3MnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW51c2VkLW1vZHVsZXMnOiAnb2ZmJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5zY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1xuICAgICAgICAuLi5jb250ZXh0LnJvb3RDb25maWdGaWxlcyxcbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcylcbiAgICAgIF0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNQbHVnaW5Db25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzJzogb2JzaWRpYW5EZXZVdGlsc1BsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXBhcmFtcyc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IEFycmF5LmZyb20ob2JzaWRpYW5tZC5jb25maWdzPy5bJ3JlY29tbWVuZGVkJ10gYXMgSXRlcmFibGU8TGludGVyLkNvbmZpZz4pO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICBpZiAoY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJykpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAgLi4uc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MsXG4gICAge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kOiBvYnNpZGlhbm1kIGFzIEVTTGludC5QbHVnaW5cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbe1xuICAgIGV4dGVuZHM6IFtwZXJmZWN0aW9uaXN0Q29uZmlnc1sncmVjb21tZW5kZWQtYWxwaGFiZXRpY2FsJ11dLFxuICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKClcbiAgfV0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2dlbmVyYXRvci1zdGFyLXNwYWNpbmcnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50JzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudC1iaW5hcnktb3BzJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2pzeC1vbmUtZXhwcmVzc2lvbi1wZXItbGluZSc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9uby1leHRyYS1zZW1pJzogJ2Vycm9yJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb2JqZWN0LWN1cmx5LW5ld2xpbmUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFeHBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL29wZXJhdG9yLWxpbmVicmVhayc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdiZWZvcmUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAnPSc6ICdhZnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL3F1b3Rlcyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdzaW5nbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93VGVtcGxhdGVMaXRlcmFsczogJ25ldmVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXBhcmFtcyc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgdmVyc2lvbjogJ2RldGVjdCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qIGVzbGludC1lbmFibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxPQUFPLHFCQUFxQjtBQUM1QixTQUFTLHlCQUF5QjtBQUNsQyxPQUFPLFlBQVk7QUFFbkIsT0FBTyxlQUFlO0FBQ3RCLFNBQVMsc0NBQXNDO0FBQy9DLFNBQVMsZUFBZSxzQ0FBc0M7QUFFOUQsT0FBTyxnQkFBZ0I7QUFDdkIsU0FBUyxXQUFXLDRCQUE0QjtBQUNoRCxTQUFTLG9CQUFvQjtBQUM3QixPQUFPLGFBQWE7QUFFcEIsT0FBTyxjQUFjO0FBRXJCLFNBQVMsK0JBQStCO0FBQ3hDLFNBQVMsWUFBWTtBQUNyQixTQUFTLHFCQUFxQjtBQUM5QixTQUFTLDhCQUE4QjtBQXlCaEMsTUFBTSxvQkFBb0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlmLGtCQUE0QixDQUFD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
|
|
546
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogRVNMaW50IGNvbmZpZ3VyYXRpb24gZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMgd2l0aCB2YXJpb3VzIHBsdWdpbnMuXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKiBzdWNoIGFzIGBAdHlwZXNjcmlwdC1lc2xpbnQvcGFyc2VyYCwgYEB0eXBlc2NyaXB0LWVzbGludC9lc2xpbnQtcGx1Z2luYCxcbiAqIGBlc2xpbnQtcGx1Z2luLW1vZHVsZXMtbmV3bGluZXNgLCBgQHN0eWxpc3RpYy9lc2xpbnQtcGx1Z2luYC5cbiAqIEl0IHNldHMgdXAgcGFyc2VycywgcGx1Z2lucywgYW5kIHJ1bGVzIGZvciBtYWludGFpbmluZyBjb2RlIHF1YWxpdHkgYW5kIGNvbnNpc3RlbmN5LlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWNsYXJhdGl2ZSBFU0xpbnQgcnVsZS9wbHVnaW4gY29uZmlndXJhdGlvbjsgY29ycmVjdG5lc3MgaXMgdmVyaWZpZWQgYnkgcnVubmluZyBFU0xpbnQsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEVTTGludCxcbiAgTGludGVyXG59IGZyb20gJ2VzbGludCc7XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLW1hZ2ljLW51bWJlcnMgLS0gV2UgZGlzYWJsZWQgbWFnaWMgbnVtYmVycyBiZWNhdXNlIHRoZXkgYXJlIHVzZWQgYWxsIG92ZXIgdGhlIGNvbmZpZ3MuICovXG5pbXBvcnQgY29tbWVudHNDb25maWdzIGZyb20gJ0Blc2xpbnQtY29tbXVuaXR5L2VzbGludC1wbHVnaW4tZXNsaW50LWNvbW1lbnRzL2NvbmZpZ3MnO1xuaW1wb3J0IHsgaW5jbHVkZUlnbm9yZUZpbGUgfSBmcm9tICdAZXNsaW50L2NvbXBhdCc7XG5pbXBvcnQgZXNsaW50IGZyb20gJ0Blc2xpbnQvanMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLXJlbmFtZS1kZWZhdWx0IC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGBwbHVnaW5gIGlzIHRvbyBjb25mdXNpbmcuXG5pbXBvcnQgc3R5bGlzdGljIGZyb20gJ0BzdHlsaXN0aWMvZXNsaW50LXBsdWdpbic7XG5pbXBvcnQgeyBjcmVhdGVUeXBlU2NyaXB0SW1wb3J0UmVzb2x2ZXIgfSBmcm9tICdlc2xpbnQtaW1wb3J0LXJlc29sdmVyLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgZmxhdENvbmZpZ3MgYXMgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1pbXBvcnQteCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYHBsdWdpbmAgaXMgdG9vIGNvbmZ1c2luZy5cbmltcG9ydCBvYnNpZGlhbm1kIGZyb20gJ2VzbGludC1wbHVnaW4tb2JzaWRpYW5tZCc7XG5pbXBvcnQgeyBjb25maWdzIGFzIHBlcmZlY3Rpb25pc3RDb25maWdzIH0gZnJvbSAnZXNsaW50LXBsdWdpbi1wZXJmZWN0aW9uaXN0JztcbmltcG9ydCB7IGRlZmluZUNvbmZpZyB9IGZyb20gJ2VzbGludC9jb25maWcnO1xuaW1wb3J0IGdsb2JhbHMgZnJvbSAnZ2xvYmFscyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tcmVuYW1lLWRlZmF1bHQgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuaW1wb3J0IHRzZXNsaW50IGZyb20gJ3R5cGVzY3JpcHQtZXNsaW50JztcblxuaW1wb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuLi8uLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJy4uLy4uL3BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0Um9vdEZvbGRlciB9IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHsgb2JzaWRpYW5EZXZVdGlsc1BsdWdpbiB9IGZyb20gJy4vZXNsaW50LXJ1bGVzL29ic2lkaWFuLWRldi11dGlscy1wbHVnaW4udHMnO1xuXG4vKipcbiAqIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmaW5lRXNsaW50Q29uZmlnc1BhcmFtcyB7XG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgYnVpbGRzIGN1c3RvbSBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIEVTTGludCBjb25maWd1cmF0aW9uIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICAgKi9cbiAgY3VzdG9tQ29uZmlncz8oY29udGV4dDogRXNsaW50Q29uZmlnQ29udGV4dCk6IExpbnRlci5Db25maWdbXTtcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGVkaXRzIHRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBFU0xpbnQgY29uZmlndXJhdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgZWRpdENvbnRleHQ/KGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBjb250ZXh0IGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFc2xpbnRDb25maWdDb250ZXh0IHtcbiAgLyoqXG4gICAqIFRoZSByb290IGNvbmZpZ3VyYXRpb24gZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9vdENvbmZpZ0ZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NyaXB0IGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNjcmlwdEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc291cmNlIGZpbGVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZUZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVzdCBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0ZXN0RmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbGwgZmlsZXMuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBhbGwgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYWxsRmlsZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4udGhpcy50ZXN0RmlsZXMsIC4uLnRoaXMuc2NyaXB0RmlsZXMsIC4uLnRoaXMucm9vdENvbmZpZ0ZpbGVzLCAuLi50aGlzLnNvdXJjZUZpbGVzXTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIEVTTGludCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyBFU0xpbnQgY29uZmlndXJhdGlvbnMgZm9yIFR5cGVTY3JpcHQgcHJvamVjdHMsIGludGVncmF0aW5nIG11bHRpcGxlIEVTTGludCBwbHVnaW5zXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBkZWZpbmluZyBFU0xpbnQgY29uZmlndXJhdGlvbnMuXG4gKiBAcmV0dXJucyBUaGUgRVNMaW50IGNvbmZpZ3VyYXRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRXNsaW50Q29uZmlncyhwYXJhbXM6IERlZmluZUVzbGludENvbmZpZ3NQYXJhbXMgPSB7fSk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGNvbnRleHQgPSBuZXcgRXNsaW50Q29uZmlnQ29udGV4dCgpO1xuICBjb250ZXh0LnJvb3RDb25maWdGaWxlcy5wdXNoKFxuICAgIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNvbW1pdGxpbnRDb25maWdUcyxcbiAgICBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5Fc2xpbnRDb25maWdNdHMsXG4gICAgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuVml0ZXN0Q29uZmlnVHNcbiAgKTtcbiAgY29udGV4dC5zY3JpcHRGaWxlcy5wdXNoKFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU2NyaXB0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpXG4gICk7XG4gIGNvbnRleHQuc291cmNlRmlsZXMucHVzaChcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuU3JjLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlQYXRoLCBPYnNpZGlhblBsdWdpblJlcG9QYXRocy5BbnlUc3gpXG4gICk7XG4gIGNvbnRleHQudGVzdEZpbGVzLnB1c2goXG4gICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5UZXN0cywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VHMpLFxuICAgIGpvaW4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTW9ja3MsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVBhdGgsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkFueVRzKSxcbiAgICBqb2luKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlNyYywgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55UGF0aCwgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQW55VGVzdFRzKVxuICApO1xuXG4gIGlmIChwYXJhbXMuZWRpdENvbnRleHQpIHtcbiAgICBwYXJhbXMuZWRpdENvbnRleHQoY29udGV4dCk7XG4gIH1cblxuICBjb25zdCBjdXN0b21Db25maWdzID0gcGFyYW1zLmN1c3RvbUNvbmZpZ3M/Lihjb250ZXh0KSA/PyBbXTtcblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKFxuICAgIC4uLmdldEdpdElnbm9yZUNvbmZpZ3MoKSxcbiAgICAuLi5nZXRFc2xpbnRDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQpLFxuICAgIC4uLmdldE9ic2lkaWFuTGludENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0SW1wb3J0WENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0UGVyZmVjdGlvbmlzdENvbmZpZ3MoY29udGV4dCksXG4gICAgLi4uZ2V0RXNsaW50SW1wb3J0UmVzb2x2ZXJUeXBlc2NyaXB0Q29uZmlncygpLFxuICAgIC4uLmdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5nZXRPYnNpZGlhbkRldlV0aWxzUGx1Z2luQ29uZmlncyhjb250ZXh0KSxcbiAgICAuLi5jdXN0b21Db25maWdzXG4gICk7XG59XG5cbmZ1bmN0aW9uIGdldEVzbGludENvbW1lbnRzQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC14L25vLW5hbWVkLWFzLWRlZmF1bHQtbWVtYmVyIC0tIFRoZSBkZWZhdWx0IGV4cG9ydCBuYW1lIGByZWNvbW1lbmRlZGAgaXMgdG9vIGNvbmZ1c2luZy5cbiAgICAgIGV4dGVuZHM6IFtjb21tZW50c0NvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAZXNsaW50LWNvbW11bml0eS9lc2xpbnQtY29tbWVudHMvcmVxdWlyZS1kZXNjcmlwdGlvbic6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbZXNsaW50LmNvbmZpZ3MucmVjb21tZW5kZWRdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdhY2Nlc3Nvci1wYWlycyc6ICdlcnJvcicsXG4gICAgICAgICdhcnJheS1jYWxsYmFjay1yZXR1cm4nOiAnZXJyb3InLFxuICAgICAgICAnY2FtZWxjYXNlJzogJ2Vycm9yJyxcbiAgICAgICAgJ2NhcGl0YWxpemVkLWNvbW1lbnRzJzogWydlcnJvcicsICdhbHdheXMnLCB7IGJsb2NrOiB7IGlnbm9yZVBhdHRlcm46ICd2OCcgfSB9XSxcbiAgICAgICAgJ2NvbXBsZXhpdHknOiAnZXJyb3InLFxuICAgICAgICAnY29uc2lzdGVudC10aGlzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2N1cmx5JzogJ2Vycm9yJyxcbiAgICAgICAgJ2RlZmF1bHQtY2FzZSc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LWNhc2UtbGFzdCc6ICdlcnJvcicsXG4gICAgICAgICdkZWZhdWx0LXBhcmFtLWxhc3QnOiAnZXJyb3InLFxuICAgICAgICAnZXFlcWVxJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtbmFtZS1tYXRjaGluZyc6ICdlcnJvcicsXG4gICAgICAgICdmdW5jLW5hbWVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2Z1bmMtc3R5bGUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAnZGVjbGFyYXRpb24nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93QXJyb3dGdW5jdGlvbnM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnZ3JvdXBlZC1hY2Nlc3Nvci1wYWlycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdnZXRCZWZvcmVTZXQnXG4gICAgICAgIF0sXG4gICAgICAgICdndWFyZC1mb3ItaW4nOiAnZXJyb3InLFxuICAgICAgICAnbm8tYWxlcnQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tYXJyYXktY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tYml0d2lzZSc6ICdlcnJvcicsXG4gICAgICAgICduby1jYWxsZXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tY29uc29sZSc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93OiBbXG4gICAgICAgICAgICAgICd3YXJuJyxcbiAgICAgICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLWNvbnN0cnVjdG9yLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICduby1kaXYtcmVnZXgnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZWxzZS1yZXR1cm4nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvd0Vsc2VJZjogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1lbXB0eS1mdW5jdGlvbic6ICdlcnJvcicsXG4gICAgICAgICduby1leHRlbmQtbmF0aXZlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWV4dHJhLWJpbmQnOiAnZXJyb3InLFxuICAgICAgICAnbm8tZXh0cmEtbGFiZWwnOiAnZXJyb3InLFxuICAgICAgICAnbm8taW1wbGljaXQtY29lcmNpb24nOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGxvdzogW1xuICAgICAgICAgICAgICAnISEnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnbm8taW1wbGllZC1ldmFsJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWlubmVyLWRlY2xhcmF0aW9ucyc6ICdlcnJvcicsXG4gICAgICAgICduby1pdGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICduby1sYWJlbC12YXInOiAnZXJyb3InLFxuICAgICAgICAnbm8tbGFiZWxzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmUtYmxvY2tzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLWxvbmVseS1pZic6ICdlcnJvcicsXG4gICAgICAgICduby1sb29wLWZ1bmMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tbWFnaWMtbnVtYmVycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRldGVjdE9iamVjdHM6IHRydWUsXG4gICAgICAgICAgICBlbmZvcmNlQ29uc3Q6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmU6IFtcbiAgICAgICAgICAgICAgLTEsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICduby1tdWx0aS1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tbXVsdGktc3RyJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lZ2F0ZWQtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5lc3RlZC10ZXJuYXJ5JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy1mdW5jJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLW5ldy13cmFwcGVycyc6ICdlcnJvcicsXG4gICAgICAgICduby1vYmplY3QtY29uc3RydWN0b3InOiAnZXJyb3InLFxuICAgICAgICAnbm8tb2N0YWwtZXNjYXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb21pc2UtZXhlY3V0b3ItcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXByb3RvJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXJlc3RyaWN0ZWQtc3ludGF4JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgZGVmaW5pdGUgYXNzaWdubWVudCBhc3NlcnRpb25zICghKS4gSW5pdGlhbGl6ZSB0aGUgZmllbGQgb3IgbWFrZSBpdCBvcHRpb25hbC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdQcm9wZXJ0eURlZmluaXRpb25bZGVmaW5pdGU9dHJ1ZV0nXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBkZWZpbml0ZSBhc3NpZ25tZW50IGFzc2VydGlvbnMgKCEpIG9uIGFic3RyYWN0IGZpZWxkcy4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICdUU0Fic3RyYWN0UHJvcGVydHlEZWZpbml0aW9uW2RlZmluaXRlPXRydWVdJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcGFyYW1ldGVycy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnOmZ1bmN0aW9uID4gSWRlbnRpZmllciBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gZnVuY3Rpb24gcmV0dXJuIHR5cGVzLiBEZWZpbmUgYSBuYW1lZCBpbnRlcmZhY2UgaW5zdGVhZC4nLFxuICAgICAgICAgICAgc2VsZWN0b3I6ICc6ZnVuY3Rpb24gPiBUU1R5cGVBbm5vdGF0aW9uIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBpbiBpbnRlcmZhY2UvbWV0aG9kIHNpZ25hdHVyZXMuIERlZmluZSBhIG5hbWVkIGludGVyZmFjZSBpbnN0ZWFkLicsXG4gICAgICAgICAgICBzZWxlY3RvcjogJ1RTTWV0aG9kU2lnbmF0dXJlIFRTVHlwZUxpdGVyYWwnXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtZXNzYWdlOiAnRG8gbm90IHVzZSBhbm9ueW1vdXMgaW5saW5lIG9iamVjdCB0eXBlcyBhcyB0eXBlIGFyZ3VtZW50cy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlUGFyYW1ldGVySW5zdGFudGlhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbWVzc2FnZTogJ0RvIG5vdCB1c2UgYW5vbnltb3VzIGlubGluZSBvYmplY3QgdHlwZXMgaW4gdHlwZSBhbm5vdGF0aW9ucy4gRGVmaW5lIGEgbmFtZWQgaW50ZXJmYWNlIGluc3RlYWQuJyxcbiAgICAgICAgICAgIHNlbGVjdG9yOiAnVFNUeXBlQW5ub3RhdGlvbiBUU1R5cGVMaXRlcmFsJ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgICAgJ25vLXJldHVybi1hc3NpZ24nOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2NyaXB0LXVybCc6ICdlcnJvcicsXG4gICAgICAgICduby1zZWxmLWNvbXBhcmUnOiAnZXJyb3InLFxuICAgICAgICAnbm8tc2VxdWVuY2VzJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXNoYWRvdyc6ICdlcnJvcicsXG4gICAgICAgICduby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmcnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdGhyb3ctbGl0ZXJhbCc6ICdlcnJvcicsXG4gICAgICAgICduby11bm1vZGlmaWVkLWxvb3AtY29uZGl0aW9uJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVubmVlZGVkLXRlcm5hcnknOiAnZXJyb3InLFxuICAgICAgICAnbm8tdW5yZWFjaGFibGUtbG9vcCc6ICdlcnJvcicsXG4gICAgICAgICduby11bnVzZWQtZXhwcmVzc2lvbnMnOiAnZXJyb3InLFxuICAgICAgICAnbm8tdXNlbGVzcy1hc3NpZ25tZW50JzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtY2FsbCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbXB1dGVkLWtleSc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbmNhdCc6ICdlcnJvcicsXG4gICAgICAgICduby11c2VsZXNzLWNvbnN0cnVjdG9yJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmVuYW1lJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXVzZWxlc3MtcmV0dXJuJzogJ2Vycm9yJyxcbiAgICAgICAgJ25vLXZhcic6ICdlcnJvcicsXG4gICAgICAgICduby12b2lkJzogJ2Vycm9yJyxcbiAgICAgICAgJ29iamVjdC1zaG9ydGhhbmQnOiAnZXJyb3InLFxuICAgICAgICAnb3BlcmF0b3ItYXNzaWdubWVudCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItYXJyb3ctY2FsbGJhY2snOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLWNvbnN0JzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1leHBvbmVudGlhdGlvbi1vcGVyYXRvcic6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbmFtZWQtY2FwdHVyZS1ncm91cCc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItbnVtZXJpYy1saXRlcmFscyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItb2JqZWN0LWhhcy1vd24nOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLW9iamVjdC1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXByb21pc2UtcmVqZWN0LWVycm9ycyc6ICdlcnJvcicsXG4gICAgICAgICdwcmVmZXItcmVnZXgtbGl0ZXJhbHMnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXJlc3QtcGFyYW1zJzogJ2Vycm9yJyxcbiAgICAgICAgJ3ByZWZlci1zcHJlYWQnOiAnZXJyb3InLFxuICAgICAgICAncHJlZmVyLXRlbXBsYXRlJzogJ2Vycm9yJyxcbiAgICAgICAgJ3JhZGl4JzogJ2Vycm9yJyxcbiAgICAgICAgJ3JlcXVpcmUtYXRvbWljLXVwZGF0ZXMnOiAnZXJyb3InLFxuICAgICAgICAncmVxdWlyZS1hd2FpdCc6ICdlcnJvcicsXG4gICAgICAgICdzeW1ib2wtZGVzY3JpcHRpb24nOiAnZXJyb3InLFxuICAgICAgICAndW5pY29kZS1ib20nOiAnZXJyb3InLFxuICAgICAgICAndmFycy1vbi10b3AnOiAnZXJyb3InLFxuICAgICAgICAneW9kYSc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRFc2xpbnRJbXBvcnRSZXNvbHZlclR5cGVzY3JpcHRDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIHJldHVybiBkZWZpbmVDb25maWcoW1xuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICdpbXBvcnQteC9yZXNvbHZlci1uZXh0JzogW1xuICAgICAgICAgIGNyZWF0ZVR5cGVTY3JpcHRJbXBvcnRSZXNvbHZlcih7XG4gICAgICAgICAgICBhbHdheXNUcnlUeXBlczogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRHaXRJZ25vcmVDb25maWdzKCk6IExpbnRlci5Db25maWdbXSB7XG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBqb2luKGdldFJvb3RGb2xkZXIoKSA/PyAnJywgJy5naXRpZ25vcmUnKTtcbiAgaWYgKCFleGlzdHNTeW5jKGdpdGlnbm9yZVBhdGgpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBbaW5jbHVkZUlnbm9yZUZpbGUoZ2l0aWdub3JlUGF0aCldO1xufVxuXG5mdW5jdGlvbiBnZXRJbXBvcnRYQ29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3MucmVjb21tZW5kZWQgYXMgTGludGVyLkNvbmZpZyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLnR5cGVzY3JpcHQgYXMgTGludGVyLkNvbmZpZyxcbiAgICAgICAgZXNsaW50UGx1Z2luSW1wb3J0WEZsYXRDb25maWdzLmVycm9ycyBhcyBMaW50ZXIuQ29uZmlnLFxuICAgICAgICBlc2xpbnRQbHVnaW5JbXBvcnRYRmxhdENvbmZpZ3Mud2FybmluZ3MgYXMgTGludGVyLkNvbmZpZ1xuICAgICAgXSxcbiAgICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKCksXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvY29uc2lzdGVudC10eXBlLXNwZWNpZmllci1zdHlsZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9leHRlbnNpb25zJzogWydlcnJvcicsICdpZ25vcmVQYWNrYWdlcyddLFxuICAgICAgICAnaW1wb3J0LXgvZmlyc3QnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvaW1wb3J0cy1maXJzdCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uZXdsaW5lLWFmdGVyLWltcG9ydCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hYnNvbHV0ZS1wYXRoJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWFtZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1hbm9ueW1vdXMtZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY29tbW9uanMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tY3ljbGUnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZGVwcmVjYXRlZCc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1kdXBsaWNhdGVzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLWR5bmFtaWMtcmVxdWlyZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1lbXB0eS1uYW1lZC1ibG9ja3MnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMnOiAnZXJyb3InLFxuICAgICAgICAnaW1wb3J0LXgvbm8taW1wb3J0LW1vZHVsZS1leHBvcnRzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW11dGFibGUtZXhwb3J0cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1uYW1lZC1kZWZhdWx0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLW5hbWVzcGFjZSc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZWxhdGl2ZS1wYWNrYWdlcyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby1yZXN0cmljdGVkLXBhdGhzJzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXNlbGYtaW1wb3J0JzogJ2Vycm9yJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVuYXNzaWduZWQtaW1wb3J0JzogW1xuICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWxsb3c6IFtcbiAgICAgICAgICAgICAgJyoqLyouY3NzJyxcbiAgICAgICAgICAgICAgJyoqLyouc2FzcycsXG4gICAgICAgICAgICAgICcqKi8qLnNjc3MnXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnaW1wb3J0LXgvbm8tdW51c2VkLW1vZHVsZXMnOiAnb2ZmJyxcbiAgICAgICAgJ2ltcG9ydC14L25vLXVzZWxlc3MtcGF0aC1zZWdtZW50cyc6ICdlcnJvcicsXG4gICAgICAgICdpbXBvcnQteC9uby13ZWJwYWNrLWxvYWRlci1zeW50YXgnOiAnZXJyb3InXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5zY3JpcHRGaWxlcyxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyc6ICdvZmYnXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBmaWxlczogW1xuICAgICAgICAuLi5jb250ZXh0LnJvb3RDb25maWdGaWxlcyxcbiAgICAgICAgam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5TcmMsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1haW5UcylcbiAgICAgIF0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnaW1wb3J0LXgvbm8tZGVmYXVsdC1leHBvcnQnOiAnb2ZmJ1xuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldE9ic2lkaWFuRGV2VXRpbHNQbHVnaW5Db25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBmaWxlczogY29udGV4dC5hbGxGaWxlcygpLFxuICAgICAgcGx1Z2luczoge1xuICAgICAgICAnb2JzaWRpYW4tZGV2LXV0aWxzJzogb2JzaWRpYW5EZXZVdGlsc1BsdWdpblxuICAgICAgfSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRPYnNpZGlhbkxpbnRDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBvYnNpZGlhblJlY29tbWVuZGVkQ29uZmlncyA9IEFycmF5LmZyb20ob2JzaWRpYW5tZC5jb25maWdzPy5bJ3JlY29tbWVuZGVkJ10gYXMgSXRlcmFibGU8TGludGVyLkNvbmZpZz4pO1xuXG4gIGNvbnN0IHNjb3BlZE9ic2lkaWFuUmVjb21tZW5kZWRDb25maWdzID0gb2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MubWFwKChjb25maWcpID0+IHtcbiAgICBpZiAoY29uZmlnLmZpbGVzPy5pbmNsdWRlcygncGFja2FnZS5qc29uJykpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGZpbGVzOiBjb250ZXh0LnNvdXJjZUZpbGVzXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAgLi4uc2NvcGVkT2JzaWRpYW5SZWNvbW1lbmRlZENvbmZpZ3MsXG4gICAge1xuICAgICAgcGx1Z2luczoge1xuICAgICAgICBvYnNpZGlhbm1kOiBvYnNpZGlhbm1kIGFzIEVTTGludC5QbHVnaW5cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBnbG9iYWxzOiB7XG4gICAgICAgICAgLi4uZ2xvYmFscy5icm93c2VyLFxuICAgICAgICAgIC4uLmdsb2JhbHMubm9kZSxcbiAgICAgICAgICBhY3RpdmVEb2N1bWVudDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhY3RpdmVXaW5kb3c6ICdyZWFkb25seScsXG4gICAgICAgICAgYWpheDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBhamF4UHJvbWlzZTogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVEaXY6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRWw6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlRnJhZ21lbnQ6ICdyZWFkb25seScsXG4gICAgICAgICAgY3JlYXRlU3BhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBjcmVhdGVTdmc6ICdyZWFkb25seScsXG4gICAgICAgICAgRG9tRWxlbWVudEluZm86ICdyZWFkb25seScsXG4gICAgICAgICAgZmlzaDogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBmaXNoQWxsOiAncmVhZG9ubHknLFxuICAgICAgICAgIGlzQm9vbGVhbjogJ3JlYWRvbmx5JyxcbiAgICAgICAgICBuZXh0RnJhbWU6ICdyZWFkb25seScsXG4gICAgICAgICAgTm9kZUpTOiAncmVhZG9ubHknLFxuICAgICAgICAgIHJlYWR5OiAncmVhZG9ubHknLFxuICAgICAgICAgIHNsZWVwOiAncmVhZG9ubHknXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRQZXJmZWN0aW9uaXN0Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbe1xuICAgIGV4dGVuZHM6IFtwZXJmZWN0aW9uaXN0Q29uZmlnc1sncmVjb21tZW5kZWQtYWxwaGFiZXRpY2FsJ11dLFxuICAgIGZpbGVzOiBjb250ZXh0LmFsbEZpbGVzKClcbiAgfV0pO1xufVxuXG5mdW5jdGlvbiBnZXRTdHlsaXN0aWNDb25maWdzKGNvbnRleHQ6IEVzbGludENvbmZpZ0NvbnRleHQpOiBMaW50ZXIuQ29uZmlnW10ge1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKFtcbiAgICB7XG4gICAgICBleHRlbmRzOiBbXG4gICAgICAgIHN0eWxpc3RpYy5jb25maWdzLnJlY29tbWVuZGVkLFxuICAgICAgICBzdHlsaXN0aWMuY29uZmlncy5jdXN0b21pemUoe1xuICAgICAgICAgIGFycm93UGFyZW5zOiB0cnVlLFxuICAgICAgICAgIGJyYWNlU3R5bGU6ICcxdGJzJyxcbiAgICAgICAgICBjb21tYURhbmdsZTogJ25ldmVyJyxcbiAgICAgICAgICBzZW1pOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIHJ1bGVzOiB7XG4gICAgICAgICdAc3R5bGlzdGljL2dlbmVyYXRvci1zdGFyLXNwYWNpbmcnOiAnb2ZmJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvaW5kZW50JzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2luZGVudC1iaW5hcnktb3BzJzogJ29mZicsXG4gICAgICAgICdAc3R5bGlzdGljL2pzeC1vbmUtZXhwcmVzc2lvbi1wZXItbGluZSc6ICdvZmYnLFxuICAgICAgICAnQHN0eWxpc3RpYy9uby1leHRyYS1zZW1pJzogJ2Vycm9yJyxcbiAgICAgICAgJ0BzdHlsaXN0aWMvb2JqZWN0LWN1cmx5LW5ld2xpbmUnOiBbXG4gICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBFeHBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBJbXBvcnREZWNsYXJhdGlvbjoge1xuICAgICAgICAgICAgICBtaW5Qcm9wZXJ0aWVzOiAyLFxuICAgICAgICAgICAgICBtdWx0aWxpbmU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL29wZXJhdG9yLWxpbmVicmVhayc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdiZWZvcmUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAgICAgICAnPSc6ICdhZnRlcidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgICdAc3R5bGlzdGljL3F1b3Rlcyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICdzaW5nbGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsbG93VGVtcGxhdGVMaXRlcmFsczogJ25ldmVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRzZXNsaW50Q29uZmlncyhjb250ZXh0OiBFc2xpbnRDb25maWdDb250ZXh0KTogTGludGVyLkNvbmZpZ1tdIHtcbiAgcmV0dXJuIGRlZmluZUNvbmZpZyhbXG4gICAge1xuICAgICAgZXh0ZW5kczogW1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0cmljdFR5cGVDaGVja2VkLFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0LXgvbm8tbmFtZWQtYXMtZGVmYXVsdC1tZW1iZXIgLS0gVGhlIGRlZmF1bHQgZXhwb3J0IG5hbWUgYF9kZWZhdWx0YCBpcyB0b28gY29uZnVzaW5nLlxuICAgICAgICAuLi50c2VzbGludC5jb25maWdzLnN0eWxpc3RpY1R5cGVDaGVja2VkXG4gICAgICBdLFxuICAgICAgZmlsZXM6IGNvbnRleHQuYWxsRmlsZXMoKSxcbiAgICAgIGxhbmd1YWdlT3B0aW9uczoge1xuICAgICAgICBwYXJzZXJPcHRpb25zOiB7XG4gICAgICAgICAgZWNtYUZlYXR1cmVzOiB7XG4gICAgICAgICAgICBqc3g6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByb2plY3RTZXJ2aWNlOiB0cnVlLFxuICAgICAgICAgIHRzY29uZmlnUm9vdERpcjogZ2V0Um9vdEZvbGRlcigpID8/ICcnXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBydWxlczoge1xuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L2V4cGxpY2l0LWZ1bmN0aW9uLXJldHVybi10eXBlJzogJ2Vycm9yJyxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tZW1iZXItYWNjZXNzaWJpbGl0eSc6ICdlcnJvcicsXG4gICAgICAgICdAdHlwZXNjcmlwdC1lc2xpbnQvbm8taW52YWxpZC12b2lkLXR5cGUnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93QXNUaGlzUGFyYW1ldGVyOiB0cnVlXG4gICAgICAgIH1dLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMnOiBbJ2Vycm9yJywge1xuICAgICAgICAgIGFsbG93ZWROYW1lczogW1xuICAgICAgICAgICAgJ3RoYXQnXG4gICAgICAgICAgXVxuICAgICAgICB9XSxcbiAgICAgICAgJ0B0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyc6IFtcbiAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFyZ3M6ICdhbGwnLFxuICAgICAgICAgICAgYXJnc0lnbm9yZVBhdHRlcm46ICdeXycsXG4gICAgICAgICAgICBjYXVnaHRFcnJvcnM6ICdhbGwnLFxuICAgICAgICAgICAgY2F1Z2h0RXJyb3JzSWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGRlc3RydWN0dXJlZEFycmF5SWdub3JlUGF0dGVybjogJ15fJyxcbiAgICAgICAgICAgIGlnbm9yZVJlc3RTaWJsaW5nczogdHJ1ZSxcbiAgICAgICAgICAgIHZhcnNJZ25vcmVQYXR0ZXJuOiAnXl8nXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICAnQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1yZWFkb25seSc6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tYXN5bmMtY2FsbGJhY2stdG8tdW5zYWZlLXJldHVybic6ICdlcnJvcicsXG4gICAgICAgICdvYnNpZGlhbi1kZXYtdXRpbHMvbm8tdXNlZC11bmRlcnNjb3JlLXZhcmlhYmxlcyc6ICdlcnJvcidcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHJlYWN0OiB7XG4gICAgICAgICAgdmVyc2lvbjogJ2RldGVjdCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXSk7XG59XG5cbi8qIGVzbGludC1lbmFibGUgbm8tbWFnaWMtbnVtYmVycyAtLSBXZSBkaXNhYmxlZCBtYWdpYyBudW1iZXJzIGJlY2F1c2UgdGhleSBhcmUgdXNlZCBhbGwgb3ZlciB0aGUgY29uZmlncy4gKi9cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW1CQSxPQUFPLHFC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
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export * as
|
|
1
|
+
export * as no_async_callback_to_unsafe_return from './no-async-callback-to-unsafe-return.mjs';
|
|
2
|
+
export * as no_used_underscore_variables from './no-used-underscore-variables.mjs';
|
|
2
3
|
export * as obsidian_dev_utils_plugin from './obsidian-dev-utils-plugin.mjs';
|
|
4
|
+
export * as rule_tester_helper from './rule-tester-helper.mjs';
|
|
@@ -19,10 +19,14 @@ if you want to view the source, please visit the github repository of this plugi
|
|
|
19
19
|
globalThis.process = browserProcess;
|
|
20
20
|
})();
|
|
21
21
|
|
|
22
|
-
import * as
|
|
22
|
+
import * as no_async_callback_to_unsafe_return from "./no-async-callback-to-unsafe-return.mjs";
|
|
23
|
+
import * as no_used_underscore_variables from "./no-used-underscore-variables.mjs";
|
|
23
24
|
import * as obsidian_dev_utils_plugin from "./obsidian-dev-utils-plugin.mjs";
|
|
25
|
+
import * as rule_tester_helper from "./rule-tester-helper.mjs";
|
|
24
26
|
export {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
no_async_callback_to_unsafe_return,
|
|
28
|
+
no_used_underscore_variables,
|
|
29
|
+
obsidian_dev_utils_plugin,
|
|
30
|
+
rule_tester_helper
|
|
27
31
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIG5vX2FzeW5jX2NhbGxiYWNrX3RvX3Vuc2FmZV9yZXR1cm4gZnJvbSAnLi9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzJztcbmV4cG9ydCAqIGFzIG5vX3VzZWRfdW5kZXJzY29yZV92YXJpYWJsZXMgZnJvbSAnLi9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzJztcbmV4cG9ydCAqIGFzIG9ic2lkaWFuX2Rldl91dGlsc19wbHVnaW4gZnJvbSAnLi9vYnNpZGlhbi1kZXYtdXRpbHMtcGx1Z2luLnRzJztcbmV4cG9ydCAqIGFzIHJ1bGVfdGVzdGVyX2hlbHBlciBmcm9tICcuL3J1bGUtdGVzdGVyLWhlbHBlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxZQUFZLHdDQUF3QztBQUNwRCxZQUFZLGtDQUFrQztBQUM5QyxZQUFZLCtCQUErQjtBQUMzQyxZQUFZLHdCQUF3QjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initEsm() {
|
|
7
|
+
if (globalThis.process) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const browserProcess = {
|
|
12
|
+
browser: true,
|
|
13
|
+
cwd() {
|
|
14
|
+
return '/';
|
|
15
|
+
},
|
|
16
|
+
env: {},
|
|
17
|
+
platform: 'android'
|
|
18
|
+
};
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
import {
|
|
23
|
+
isIdentifier,
|
|
24
|
+
isTypeAliasDeclaration,
|
|
25
|
+
isTypeReferenceNode,
|
|
26
|
+
isUnionTypeNode,
|
|
27
|
+
SymbolFlags,
|
|
28
|
+
TypeFlags
|
|
29
|
+
} from "typescript";
|
|
30
|
+
import { assertNonNullable } from "../../../type-guards.mjs";
|
|
31
|
+
const MESSAGE_ID = "noAsyncCallbackToUnsafeReturn";
|
|
32
|
+
function hasUnsafeReturnCallSignature(checker, type) {
|
|
33
|
+
return type.getCallSignatures().some((sig) => isUnsafeReturnSignature(checker, sig));
|
|
34
|
+
}
|
|
35
|
+
function isAsyncFunctionNode(node) {
|
|
36
|
+
return (node.type === "ArrowFunctionExpression" || node.type === "FunctionExpression") && node.async;
|
|
37
|
+
}
|
|
38
|
+
const UNSAFE_RETURN_FLAGS = TypeFlags.Any | TypeFlags.Unknown;
|
|
39
|
+
const PROMISE_TYPE_NAMES = /* @__PURE__ */ new Set(["Promise", "PromiseLike"]);
|
|
40
|
+
function containsPromiseReference(checker, node) {
|
|
41
|
+
if (isUnionTypeNode(node)) {
|
|
42
|
+
return node.types.some((member) => containsPromiseReference(checker, member));
|
|
43
|
+
}
|
|
44
|
+
if (isTypeReferenceNode(node)) {
|
|
45
|
+
const name = isIdentifier(node.typeName) ? node.typeName.text : "";
|
|
46
|
+
if (PROMISE_TYPE_NAMES.has(name)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
let symbol = checker.getSymbolAtLocation(node.typeName);
|
|
50
|
+
if (symbol && symbol.flags & SymbolFlags.Alias) {
|
|
51
|
+
symbol = checker.getAliasedSymbol(symbol);
|
|
52
|
+
}
|
|
53
|
+
const decl = symbol?.declarations?.[0];
|
|
54
|
+
if (decl && isTypeAliasDeclaration(decl)) {
|
|
55
|
+
return containsPromiseReference(checker, decl.type);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
function isUnsafeReturnSignature(checker, sig) {
|
|
61
|
+
const returnType = checker.getReturnTypeOfSignature(sig);
|
|
62
|
+
if (!(returnType.flags & UNSAFE_RETURN_FLAGS)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
const decl = sig.getDeclaration();
|
|
66
|
+
const returnTypeNode = decl.type;
|
|
67
|
+
assertNonNullable(returnTypeNode, "Signature declarations with any/unknown return always have a return type annotation");
|
|
68
|
+
return !containsPromiseReference(checker, returnTypeNode);
|
|
69
|
+
}
|
|
70
|
+
const noAsyncCallbackToUnsafeReturn = {
|
|
71
|
+
create(context) {
|
|
72
|
+
const services = context.sourceCode.parserServices;
|
|
73
|
+
const checker = services.program.getTypeChecker();
|
|
74
|
+
return {
|
|
75
|
+
CallExpression(node) {
|
|
76
|
+
const callNode = node;
|
|
77
|
+
for (let i = 0; i < callNode.arguments.length; i++) {
|
|
78
|
+
const arg = callNode.arguments[i];
|
|
79
|
+
if (!arg || !isAsyncFunctionNode(arg)) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const tsCalleeNode = services.esTreeNodeToTSNodeMap.get(callNode.callee);
|
|
83
|
+
const calleeType = checker.getTypeAtLocation(tsCalleeNode);
|
|
84
|
+
for (const sig of calleeType.getCallSignatures()) {
|
|
85
|
+
const param = sig.getParameters()[i];
|
|
86
|
+
if (!param) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const paramType = checker.getTypeOfSymbol(param);
|
|
90
|
+
if (hasUnsafeReturnCallSignature(checker, paramType)) {
|
|
91
|
+
context.report({
|
|
92
|
+
messageId: MESSAGE_ID,
|
|
93
|
+
node: arg
|
|
94
|
+
});
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
meta: {
|
|
103
|
+
docs: {
|
|
104
|
+
description: "Disallow passing async functions as callbacks to parameters with `any` or `unknown` return type"
|
|
105
|
+
},
|
|
106
|
+
messages: {
|
|
107
|
+
[MESSAGE_ID]: "Async function passed as callback to a parameter with `any`/`unknown` return type. This may cause unhandled promise rejections. Wrap the call: `(...args) => { yourAsyncFn(...args); }`."
|
|
108
|
+
},
|
|
109
|
+
schema: [],
|
|
110
|
+
type: "problem"
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
export {
|
|
114
|
+
MESSAGE_ID,
|
|
115
|
+
noAsyncCallbackToUnsafeReturn
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby1hc3luYy1jYWxsYmFjay10by11bnNhZmUtcmV0dXJuXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGFuIGFzeW5jIGZ1bmN0aW9uIGlzIHBhc3NlZCBhcyBhIGNhbGxiYWNrIGFyZ3VtZW50XG4gKiB0byBhIGZ1bmN0aW9uIHBhcmFtZXRlciB3aG9zZSByZXR1cm4gdHlwZSBpcyBgYW55YCBvciBgdW5rbm93bmAuIEJlY2F1c2VcbiAqIHRoZXNlIHR5cGVzIHNpbGVudGx5IGFjY2VwdCBgUHJvbWlzZTxUPmAsIHRoZSBjYWxsZXIgd29uJ3QgYXdhaXQgdGhlXG4gKiByZXN1bHQsIGxlYWRpbmcgdG8gdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucyBhdCBydW50aW1lLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBvbkNsaWNrKGZuOiAoZXZ0OiBNb3VzZUV2ZW50KSA9PiBhbnkpXG4gKiBidXR0b24ub25DbGljayhhc3luYyAoKSA9PiB7XG4gKiAgIGF3YWl0IHNvbWVGbigpOyAvLyBVbmhhbmRsZWQgcmVqZWN0aW9uIGlmIHNvbWVGbiB0aHJvd3NcbiAqIH0pO1xuICogYGBgXG4gKlxuICogYEB0eXBlc2NyaXB0LWVzbGludC9uby1taXN1c2VkLXByb21pc2VzYCBvbmx5IGNhdGNoZXMgYD0+IHZvaWRgIGNhbGxiYWNrcy5cbiAqIFRoaXMgcnVsZSBjbG9zZXMgdGhlIGdhcCBmb3IgYD0+IGFueWAgYW5kIGA9PiB1bmtub3duYCBjYWxsYmFja3MuXG4gKi9cbmltcG9ydCB0eXBlIHtcbiAgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uLFxuICBUU0VTVHJlZVxufSBmcm9tICdAdHlwZXNjcmlwdC1lc2xpbnQvdXRpbHMnO1xuaW1wb3J0IHR5cGUgeyBSdWxlIH0gZnJvbSAnZXNsaW50JztcbmltcG9ydCB0eXBlIHtcbiAgU2lnbmF0dXJlLFxuICBUeXBlLFxuICBUeXBlQ2hlY2tlcixcbiAgVHlwZU5vZGVcbn0gZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7XG4gIGlzSWRlbnRpZmllcixcbiAgaXNUeXBlQWxpYXNEZWNsYXJhdGlvbixcbiAgaXNUeXBlUmVmZXJlbmNlTm9kZSxcbiAgaXNVbmlvblR5cGVOb2RlLFxuICBTeW1ib2xGbGFncyxcbiAgVHlwZUZsYWdzXG59IGZyb20gJ3R5cGVzY3JpcHQnO1xuXG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAnbm9Bc3luY0NhbGxiYWNrVG9VbnNhZmVSZXR1cm4nO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBUeXBlU2NyaXB0IHR5cGUgaXMgYSBmdW5jdGlvbiB0eXBlIHdpdGggYW4gdW5zYWZlXG4gKiByZXR1cm4gdHlwZSBmb3IgYXN5bmMgY2FsbGJhY2tzLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gdHlwZSAtIFRoZSB0eXBlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHR5cGUgaGFzIGF0IGxlYXN0IG9uZSBjYWxsIHNpZ25hdHVyZSB3aXRoIGFuIHVuc2FmZSByZXR1cm4uXG4gKi9cbmZ1bmN0aW9uIGhhc1Vuc2FmZVJldHVybkNhbGxTaWduYXR1cmUoY2hlY2tlcjogVHlwZUNoZWNrZXIsIHR5cGU6IFR5cGUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGUuZ2V0Q2FsbFNpZ25hdHVyZXMoKS5zb21lKChzaWcpID0+IGlzVW5zYWZlUmV0dXJuU2lnbmF0dXJlKGNoZWNrZXIsIHNpZykpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgbm9kZSBpcyBhbiBhc3luYyBmdW5jdGlvbiBleHByZXNzaW9uIChhcnJvdyBvciByZWd1bGFyKS5cbiAqXG4gKiBAcGFyYW0gbm9kZSAtIEFTVCBub2RlIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGlzIGFuIGFzeW5jIGFycm93IG9yIGZ1bmN0aW9uIGV4cHJlc3Npb24uXG4gKi9cbmZ1bmN0aW9uIGlzQXN5bmNGdW5jdGlvbk5vZGUobm9kZTogVFNFU1RyZWUuTm9kZSk6IG5vZGUgaXMgVFNFU1RyZWUuQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24gfCBUU0VTVHJlZS5GdW5jdGlvbkV4cHJlc3Npb24ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1lbnVtLWNvbXBhcmlzb24gLS0gQVNUIG5vZGUgdHlwZSBzdHJpbmcgbGl0ZXJhbHMgbWF0Y2ggdGhlIFRTRVNUcmVlIGVudW0gdmFsdWVzLlxuICByZXR1cm4gKG5vZGUudHlwZSA9PT0gJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyB8fCBub2RlLnR5cGUgPT09ICdGdW5jdGlvbkV4cHJlc3Npb24nKSAmJiBub2RlLmFzeW5jO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZSAtLSBCaXR3aXNlIGZsYWcgbWFzayBpcyBpZGlvbWF0aWMgZm9yIFR5cGVTY3JpcHQgY29tcGlsZXIgQVBJLlxuY29uc3QgVU5TQUZFX1JFVFVSTl9GTEFHUyA9IFR5cGVGbGFncy5BbnkgfCBUeXBlRmxhZ3MuVW5rbm93bjtcblxuY29uc3QgUFJPTUlTRV9UWVBFX05BTUVTID0gbmV3IFNldChbJ1Byb21pc2UnLCAnUHJvbWlzZUxpa2UnXSk7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgYSB0eXBlIG5vZGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYFByb21pc2VgIG9yIGBQcm9taXNlTGlrZWAsXG4gKiBlaXRoZXIgZGlyZWN0bHkgb3IgdGhyb3VnaCBhIHR5cGUgYWxpYXMuIFRoaXMgaW5kaWNhdGVzIHRoZSBjYWxsZXIgZXhwbGljaXRseVxuICogYWNjb3VudHMgZm9yIHByb21pc2UgcmV0dXJucy5cbiAqXG4gKiBAcGFyYW0gY2hlY2tlciAtIFR5cGVTY3JpcHQgdHlwZSBjaGVja2VyLlxuICogQHBhcmFtIG5vZGUgLSBUaGUgdHlwZSBub2RlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG5vZGUgcmVmZXJlbmNlcyBgUHJvbWlzZWAgb3IgYFByb21pc2VMaWtlYC5cbiAqL1xuZnVuY3Rpb24gY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXI6IFR5cGVDaGVja2VyLCBub2RlOiBUeXBlTm9kZSk6IGJvb2xlYW4ge1xuICBpZiAoaXNVbmlvblR5cGVOb2RlKG5vZGUpKSB7XG4gICAgcmV0dXJuIG5vZGUudHlwZXMuc29tZSgobWVtYmVyKSA9PiBjb250YWluc1Byb21pc2VSZWZlcmVuY2UoY2hlY2tlciwgbWVtYmVyKSk7XG4gIH1cblxuICBpZiAoaXNUeXBlUmVmZXJlbmNlTm9kZShub2RlKSkge1xuICAgIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBRdWFsaWZpZWQgbmFtZXMgKGUuZy4sIG5zLlByb21pc2UpIGFuZCBpbXBvcnQgYWxpYXNlcyByZXF1aXJlIG11bHRpLWZpbGUgc2V0dXAgbm90IGF2YWlsYWJsZSBpbiBSdWxlVGVzdGVyLiAqL1xuICAgIGNvbnN0IG5hbWUgPSBpc0lkZW50aWZpZXIobm9kZS50eXBlTmFtZSkgPyBub2RlLnR5cGVOYW1lLnRleHQgOiAnJztcbiAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICAgIGlmIChQUk9NSVNFX1RZUEVfTkFNRVMuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIHR5cGUgYWxpYXMgKGZvbGxvd2luZyBpbXBvcnRzKSBhbmQgY2hlY2sgaXRzIGRlZmluaXRpb24gYm9keVxuICAgIGxldCBzeW1ib2wgPSBjaGVja2VyLmdldFN5bWJvbEF0TG9jYXRpb24obm9kZS50eXBlTmFtZSk7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEltcG9ydCBhbGlhc2VzIHJlcXVpcmUgbXVsdGktZmlsZSBzZXR1cCBub3QgYXZhaWxhYmxlIGluIFJ1bGVUZXN0ZXIuICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2UgLS0gQml0d2lzZSBmbGFnIGNoZWNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG4gICAgaWYgKHN5bWJvbCAmJiBzeW1ib2wuZmxhZ3MgJiBTeW1ib2xGbGFncy5BbGlhcykge1xuICAgICAgc3ltYm9sID0gY2hlY2tlci5nZXRBbGlhc2VkU3ltYm9sKHN5bWJvbCk7XG4gICAgfVxuICAgIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gICAgY29uc3QgZGVjbCA9IHN5bWJvbD8uZGVjbGFyYXRpb25zPy5bMF07XG4gICAgaWYgKGRlY2wgJiYgaXNUeXBlQWxpYXNEZWNsYXJhdGlvbihkZWNsKSkge1xuICAgICAgcmV0dXJuIGNvbnRhaW5zUHJvbWlzZVJlZmVyZW5jZShjaGVja2VyLCBkZWNsLnR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNhbGwgc2lnbmF0dXJlIGhhcyBhbiB1bnNhZmUgcmV0dXJuIHR5cGUgKGBhbnlgIG9yIGB1bmtub3duYClcbiAqIHdpdGhvdXQgZXhwbGljaXRseSBhY2NvdW50aW5nIGZvciBwcm9taXNlcy5cbiAqXG4gKiBGbGFncyBiYXJlIGBhbnlgLCBgdW5rbm93bmAsIGFuZCB1bmlvbnMgbGlrZSBgYW55IHwgc3RyaW5nYCB0aGF0IHJlc29sdmUgdG9cbiAqIGBhbnlgL2B1bmtub3duYCB3aXRob3V0IGluY2x1ZGluZyBgUHJvbWlzZWAvYFByb21pc2VMaWtlYC4gRG9lcyBOT1QgZmxhZyB0eXBlXG4gKiBhbGlhc2VzIGxpa2UgYEF3YWl0YWJsZTxUPmAgb3IgdW5pb25zIGxpa2UgYGFueSB8IFByb21pc2U8YW55PmAgdGhhdCBleHBsaWNpdGx5XG4gKiBoYW5kbGUgcHJvbWlzZSByZXR1cm5zLlxuICpcbiAqIEBwYXJhbSBjaGVja2VyIC0gVHlwZVNjcmlwdCB0eXBlIGNoZWNrZXIuXG4gKiBAcGFyYW0gc2lnIC0gVGhlIGNhbGwgc2lnbmF0dXJlIHRvIGluc3BlY3QuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJldHVybiB0eXBlIGlzIHVuc2FmZSBmb3IgYXN5bmMgY2FsbGJhY2tzLlxuICovXG5mdW5jdGlvbiBpc1Vuc2FmZVJldHVyblNpZ25hdHVyZShjaGVja2VyOiBUeXBlQ2hlY2tlciwgc2lnOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgY29uc3QgcmV0dXJuVHlwZSA9IGNoZWNrZXIuZ2V0UmV0dXJuVHlwZU9mU2lnbmF0dXJlKHNpZyk7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2UgLS0gQml0d2lzZSBmbGFnIGNoZWNrIGlzIGlkaW9tYXRpYyBmb3IgVHlwZVNjcmlwdCBjb21waWxlciBBUEkuXG4gIGlmICghKHJldHVyblR5cGUuZmxhZ3MgJiBVTlNBRkVfUkVUVVJOX0ZMQUdTKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIHRoZSBzeW50YWN0aWMgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbi4gSWYgaXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG9cbiAgLy8gUHJvbWlzZS9Qcm9taXNlTGlrZSAoZGlyZWN0bHkgb3IgdmlhIGEgdHlwZSBhbGlhcyksIHRoZSBjYWxsZXIgZXhwbGljaXRseVxuICAvLyBIYW5kbGVzIGFzeW5jIHJldHVybnMgYW5kIHNob3VsZCBub3QgYmUgZmxhZ2dlZC5cbiAgY29uc3QgZGVjbCA9IHNpZy5nZXREZWNsYXJhdGlvbigpO1xuICBjb25zdCByZXR1cm5UeXBlTm9kZSA9IGRlY2wudHlwZTtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUocmV0dXJuVHlwZU5vZGUsICdTaWduYXR1cmUgZGVjbGFyYXRpb25zIHdpdGggYW55L3Vua25vd24gcmV0dXJuIGFsd2F5cyBoYXZlIGEgcmV0dXJuIHR5cGUgYW5ub3RhdGlvbicpO1xuXG4gIHJldHVybiAhY29udGFpbnNQcm9taXNlUmVmZXJlbmNlKGNoZWNrZXIsIHJldHVyblR5cGVOb2RlKTtcbn1cblxuZXhwb3J0IGNvbnN0IG5vQXN5bmNDYWxsYmFja1RvVW5zYWZlUmV0dXJuOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBjb250ZXh0LnNvdXJjZUNvZGUucGFyc2VyU2VydmljZXMgYXMgUGFyc2VyU2VydmljZXNXaXRoVHlwZUluZm9ybWF0aW9uO1xuICAgIGNvbnN0IGNoZWNrZXIgPSBzZXJ2aWNlcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgQ2FsbEV4cHJlc3Npb24obm9kZTogUnVsZS5Ob2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNhbGxOb2RlID0gbm9kZSBhcyBUU0VTVHJlZS5DYWxsRXhwcmVzc2lvbjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGxOb2RlLmFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGNvbnN0IGFyZyA9IGNhbGxOb2RlLmFyZ3VtZW50c1tpXTtcbiAgICAgICAgICBpZiAoIWFyZyB8fCAhaXNBc3luY0Z1bmN0aW9uTm9kZShhcmcpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCB0c0NhbGxlZU5vZGUgPSBzZXJ2aWNlcy5lc1RyZWVOb2RlVG9UU05vZGVNYXAuZ2V0KGNhbGxOb2RlLmNhbGxlZSk7XG4gICAgICAgICAgY29uc3QgY2FsbGVlVHlwZSA9IGNoZWNrZXIuZ2V0VHlwZUF0TG9jYXRpb24odHNDYWxsZWVOb2RlKTtcblxuICAgICAgICAgIGZvciAoY29uc3Qgc2lnIG9mIGNhbGxlZVR5cGUuZ2V0Q2FsbFNpZ25hdHVyZXMoKSkge1xuICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBzaWcuZ2V0UGFyYW1ldGVycygpW2ldO1xuICAgICAgICAgICAgaWYgKCFwYXJhbSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcGFyYW1UeXBlID0gY2hlY2tlci5nZXRUeXBlT2ZTeW1ib2wocGFyYW0pO1xuXG4gICAgICAgICAgICBpZiAoaGFzVW5zYWZlUmV0dXJuQ2FsbFNpZ25hdHVyZShjaGVja2VyLCBwYXJhbVR5cGUpKSB7XG4gICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0KHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgICAgICAgbm9kZTogYXJnIGFzIFJ1bGUuTm9kZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgcGFzc2luZyBhc3luYyBmdW5jdGlvbnMgYXMgY2FsbGJhY2tzIHRvIHBhcmFtZXRlcnMgd2l0aCBgYW55YCBvciBgdW5rbm93bmAgcmV0dXJuIHR5cGUnXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW01FU1NBR0VfSURdOlxuICAgICAgICAnQXN5bmMgZnVuY3Rpb24gcGFzc2VkIGFzIGNhbGxiYWNrIHRvIGEgcGFyYW1ldGVyIHdpdGggYGFueWAvYHVua25vd25gIHJldHVybiB0eXBlLiBUaGlzIG1heSBjYXVzZSB1bmhhbmRsZWQgcHJvbWlzZSByZWplY3Rpb25zLiBXcmFwIHRoZSBjYWxsOiBgKC4uLmFyZ3MpID0+IHsgeW91ckFzeW5jRm4oLi4uYXJncyk7IH1gLidcbiAgICB9LFxuICAgIHNjaGVtYTogW10sXG4gICAgdHlwZTogJ3Byb2JsZW0nXG4gIH1cbn07XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQ0E7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRVAsU0FBUyx5QkFBeUI7QUFFM0IsTUFBTSxhQUFhO0FBVTFCLFNBQVMsNkJBQTZCLFNBQXNCLE1BQXFCO0FBQy9FLFNBQU8sS0FBSyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsUUFBUSx3QkFBd0IsU0FBUyxHQUFHLENBQUM7QUFDckY7QUFRQSxTQUFTLG9CQUFvQixNQUE2RjtBQUV4SCxVQUFRLEtBQUssU0FBUyw2QkFBNkIsS0FBSyxTQUFTLHlCQUF5QixLQUFLO0FBQ2pHO0FBR0EsTUFBTSxzQkFBc0IsVUFBVSxNQUFNLFVBQVU7QUFFdEQsTUFBTSxxQkFBcUIsb0JBQUksSUFBSSxDQUFDLFdBQVcsYUFBYSxDQUFDO0FBVzdELFNBQVMseUJBQXlCLFNBQXNCLE1BQXlCO0FBQy9FLE1BQUksZ0JBQWdCLElBQUksR0FBRztBQUN6QixXQUFPLEtBQUssTUFBTSxLQUFLLENBQUMsV0FBVyx5QkFBeUIsU0FBUyxNQUFNLENBQUM7QUFBQSxFQUM5RTtBQUVBLE1BQUksb0JBQW9CLElBQUksR0FBRztBQUU3QixVQUFNLE9BQU8sYUFBYSxLQUFLLFFBQVEsSUFBSSxLQUFLLFNBQVMsT0FBTztBQUVoRSxRQUFJLG1CQUFtQixJQUFJLElBQUksR0FBRztBQUNoQyxhQUFPO0FBQUEsSUFDVDtBQUdBLFFBQUksU0FBUyxRQUFRLG9CQUFvQixLQUFLLFFBQVE7QUFHdEQsUUFBSSxVQUFVLE9BQU8sUUFBUSxZQUFZLE9BQU87QUFDOUMsZUFBUyxRQUFRLGlCQUFpQixNQUFNO0FBQUEsSUFDMUM7QUFFQSxVQUFNLE9BQU8sUUFBUSxlQUFlLENBQUM7QUFDckMsUUFBSSxRQUFRLHVCQUF1QixJQUFJLEdBQUc7QUFDeEMsYUFBTyx5QkFBeUIsU0FBUyxLQUFLLElBQUk7QUFBQSxJQUNwRDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFlQSxTQUFTLHdCQUF3QixTQUFzQixLQUF5QjtBQUM5RSxRQUFNLGFBQWEsUUFBUSx5QkFBeUIsR0FBRztBQUd2RCxNQUFJLEVBQUUsV0FBVyxRQUFRLHNCQUFzQjtBQUM3QyxXQUFPO0FBQUEsRUFDVDtBQUtBLFFBQU0sT0FBTyxJQUFJLGVBQWU7QUFDaEMsUUFBTSxpQkFBaUIsS0FBSztBQUM1QixvQkFBa0IsZ0JBQWdCLHFGQUFxRjtBQUV2SCxTQUFPLENBQUMseUJBQXlCLFNBQVMsY0FBYztBQUMxRDtBQUVPLE1BQU0sZ0NBQWlEO0FBQUEsRUFDNUQsT0FBTyxTQUFTO0FBQ2QsVUFBTSxXQUFXLFFBQVEsV0FBVztBQUNwQyxVQUFNLFVBQVUsU0FBUyxRQUFRLGVBQWU7QUFFaEQsV0FBTztBQUFBLE1BQ0wsZUFBZSxNQUF1QjtBQUNwQyxjQUFNLFdBQVc7QUFFakIsaUJBQVMsSUFBSSxHQUFHLElBQUksU0FBUyxVQUFVLFFBQVEsS0FBSztBQUNsRCxnQkFBTSxNQUFNLFNBQVMsVUFBVSxDQUFDO0FBQ2hDLGNBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEdBQUcsR0FBRztBQUNyQztBQUFBLFVBQ0Y7QUFFQSxnQkFBTSxlQUFlLFNBQVMsc0JBQXNCLElBQUksU0FBUyxNQUFNO0FBQ3ZFLGdCQUFNLGFBQWEsUUFBUSxrQkFBa0IsWUFBWTtBQUV6RCxxQkFBVyxPQUFPLFdBQVcsa0JBQWtCLEdBQUc7QUFDaEQsa0JBQU0sUUFBUSxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ25DLGdCQUFJLENBQUMsT0FBTztBQUNWO0FBQUEsWUFDRjtBQUVBLGtCQUFNLFlBQVksUUFBUSxnQkFBZ0IsS0FBSztBQUUvQyxnQkFBSSw2QkFBNkIsU0FBUyxTQUFTLEdBQUc7QUFDcEQsc0JBQVEsT0FBTztBQUFBLGdCQUNiLFdBQVc7QUFBQSxnQkFDWCxNQUFNO0FBQUEsY0FDUixDQUFDO0FBQ0Q7QUFBQSxZQUNGO0FBQUEsVUFDRjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLE1BQU07QUFBQSxJQUNKLE1BQU07QUFBQSxNQUNKLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixDQUFDLFVBQVUsR0FDVDtBQUFBLElBQ0o7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @packageDocumentation
|
|
3
|
+
*
|
|
4
|
+
* ESLint rule: no-used-underscore-variables
|
|
5
|
+
*
|
|
6
|
+
* Reports an error when a parameter or local variable with a `_` prefix is
|
|
7
|
+
* actually referenced in the function body. The `_` prefix convention signals
|
|
8
|
+
* "this identifier is intentionally unused" — if it IS used, the prefix is
|
|
9
|
+
* misleading and should be removed.
|
|
10
|
+
*/
|
|
11
|
+
import type { Rule } from 'eslint';
|
|
12
|
+
export declare const MESSAGE_ID = "noUsedUnderscoreVariables";
|
|
13
|
+
export declare const noUsedUnderscoreVariables: Rule.RuleModule;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initEsm() {
|
|
7
|
+
if (globalThis.process) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const browserProcess = {
|
|
12
|
+
browser: true,
|
|
13
|
+
cwd() {
|
|
14
|
+
return '/';
|
|
15
|
+
},
|
|
16
|
+
env: {},
|
|
17
|
+
platform: 'android'
|
|
18
|
+
};
|
|
19
|
+
globalThis.process = browserProcess;
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
import { assertNonNullable } from "../../../type-guards.mjs";
|
|
23
|
+
const MESSAGE_ID = "noUsedUnderscoreVariables";
|
|
24
|
+
const noUsedUnderscoreVariables = {
|
|
25
|
+
create(context) {
|
|
26
|
+
return {
|
|
27
|
+
":function"(node) {
|
|
28
|
+
const scope = context.sourceCode.getScope(node);
|
|
29
|
+
for (const variable of scope.variables) {
|
|
30
|
+
if (!variable.name.startsWith("_")) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
const defNode = variable.defs[0];
|
|
34
|
+
assertNonNullable(defNode, "User-declared _-prefixed variables always have at least one definition");
|
|
35
|
+
const funcBody = node.body;
|
|
36
|
+
const bodyRange = funcBody?.range;
|
|
37
|
+
const isParam = defNode.type === "Parameter";
|
|
38
|
+
const hasBodyReferences = variable.references.some((ref) => {
|
|
39
|
+
if (!ref.isRead()) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (isParam && bodyRange && ref.identifier.range) {
|
|
43
|
+
return ref.identifier.range[0] >= bodyRange[0] && ref.identifier.range[1] <= bodyRange[1];
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
});
|
|
47
|
+
if (hasBodyReferences) {
|
|
48
|
+
context.report({
|
|
49
|
+
data: { name: variable.name },
|
|
50
|
+
messageId: MESSAGE_ID,
|
|
51
|
+
node: defNode.name
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
meta: {
|
|
59
|
+
docs: {
|
|
60
|
+
description: "Disallow `_`-prefixed parameters and local variables that are actually used"
|
|
61
|
+
},
|
|
62
|
+
messages: {
|
|
63
|
+
[MESSAGE_ID]: '"{{ name }}" has a `_` prefix but is used. Remove the `_` prefix since it is not unused (G10e).'
|
|
64
|
+
},
|
|
65
|
+
schema: [],
|
|
66
|
+
type: "problem"
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
export {
|
|
70
|
+
MESSAGE_ID,
|
|
71
|
+
noUsedUnderscoreVariables
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NjcmlwdC11dGlscy9saW50ZXJzL2VzbGludC1ydWxlcy9uby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIEVTTGludCBydWxlOiBuby11c2VkLXVuZGVyc2NvcmUtdmFyaWFibGVzXG4gKlxuICogUmVwb3J0cyBhbiBlcnJvciB3aGVuIGEgcGFyYW1ldGVyIG9yIGxvY2FsIHZhcmlhYmxlIHdpdGggYSBgX2AgcHJlZml4IGlzXG4gKiBhY3R1YWxseSByZWZlcmVuY2VkIGluIHRoZSBmdW5jdGlvbiBib2R5LiBUaGUgYF9gIHByZWZpeCBjb252ZW50aW9uIHNpZ25hbHNcbiAqIFwidGhpcyBpZGVudGlmaWVyIGlzIGludGVudGlvbmFsbHkgdW51c2VkXCIgXHUyMDE0IGlmIGl0IElTIHVzZWQsIHRoZSBwcmVmaXggaXNcbiAqIG1pc2xlYWRpbmcgYW5kIHNob3VsZCBiZSByZW1vdmVkLlxuICovXG5pbXBvcnQgdHlwZSB7IFJ1bGUgfSBmcm9tICdlc2xpbnQnO1xuXG5pbXBvcnQgeyBhc3NlcnROb25OdWxsYWJsZSB9IGZyb20gJy4uLy4uLy4uL3R5cGUtZ3VhcmRzLnRzJztcblxuZXhwb3J0IGNvbnN0IE1FU1NBR0VfSUQgPSAnbm9Vc2VkVW5kZXJzY29yZVZhcmlhYmxlcyc7XG5cbmV4cG9ydCBjb25zdCBub1VzZWRVbmRlcnNjb3JlVmFyaWFibGVzOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIGNyZWF0ZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICc6ZnVuY3Rpb24nKG5vZGU6IFJ1bGUuTm9kZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuc291cmNlQ29kZS5nZXRTY29wZShub2RlKTtcblxuICAgICAgICBmb3IgKGNvbnN0IHZhcmlhYmxlIG9mIHNjb3BlLnZhcmlhYmxlcykge1xuICAgICAgICAgIGlmICghdmFyaWFibGUubmFtZS5zdGFydHNXaXRoKCdfJykpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGRlZk5vZGUgPSB2YXJpYWJsZS5kZWZzWzBdO1xuICAgICAgICAgIGFzc2VydE5vbk51bGxhYmxlKGRlZk5vZGUsICdVc2VyLWRlY2xhcmVkIF8tcHJlZml4ZWQgdmFyaWFibGVzIGFsd2F5cyBoYXZlIGF0IGxlYXN0IG9uZSBkZWZpbml0aW9uJyk7XG5cbiAgICAgICAgICAvLyBGb3IgcGFyYW1ldGVycywgb25seSBjb3VudCByZWZlcmVuY2VzIGluc2lkZSB0aGUgZnVuY3Rpb24gYm9keVxuICAgICAgICAgIC8vIChub3QgaW4gdHlwZSBhbm5vdGF0aW9ucyBsaWtlIGBhc3NlcnRzIF9vYmogaXMgVGApLlxuICAgICAgICAgIC8vIEZvciBsb2NhbCB2YXJpYWJsZXMsIGFueSByZWFkIHJlZmVyZW5jZSBjb3VudHMuXG4gICAgICAgICAgY29uc3QgZnVuY0JvZHkgPSAobm9kZSBhcyB7IGJvZHk/OiBSdWxlLk5vZGUgfSkuYm9keTtcbiAgICAgICAgICBjb25zdCBib2R5UmFuZ2UgPSBmdW5jQm9keT8ucmFuZ2U7XG4gICAgICAgICAgY29uc3QgaXNQYXJhbSA9IGRlZk5vZGUudHlwZSA9PT0gJ1BhcmFtZXRlcic7XG4gICAgICAgICAgY29uc3QgaGFzQm9keVJlZmVyZW5jZXMgPSB2YXJpYWJsZS5yZWZlcmVuY2VzLnNvbWUoKHJlZikgPT4ge1xuICAgICAgICAgICAgaWYgKCFyZWYuaXNSZWFkKCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzUGFyYW0gJiYgYm9keVJhbmdlICYmIHJlZi5pZGVudGlmaWVyLnJhbmdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZWYuaWRlbnRpZmllci5yYW5nZVswXSA+PSBib2R5UmFuZ2VbMF1cbiAgICAgICAgICAgICAgICAmJiByZWYuaWRlbnRpZmllci5yYW5nZVsxXSA8PSBib2R5UmFuZ2VbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBMb2NhbCB2YXJpYWJsZXMgb3IgZmFsbGJhY2s6IGNvdW50IGFsbCByZWFkc1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGhhc0JvZHlSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICBjb250ZXh0LnJlcG9ydCh7XG4gICAgICAgICAgICAgIGRhdGE6IHsgbmFtZTogdmFyaWFibGUubmFtZSB9LFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IE1FU1NBR0VfSUQsXG4gICAgICAgICAgICAgIG5vZGU6IGRlZk5vZGUubmFtZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfSxcbiAgbWV0YToge1xuICAgIGRvY3M6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGlzYWxsb3cgYF9gLXByZWZpeGVkIHBhcmFtZXRlcnMgYW5kIGxvY2FsIHZhcmlhYmxlcyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkJ1xuICAgIH0sXG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIFtNRVNTQUdFX0lEXTogJ1wie3sgbmFtZSB9fVwiIGhhcyBhIGBfYCBwcmVmaXggYnV0IGlzIHVzZWQuIFJlbW92ZSB0aGUgYF9gIHByZWZpeCBzaW5jZSBpdCBpcyBub3QgdW51c2VkIChHMTBlKS4nXG4gICAgfSxcbiAgICBzY2hlbWE6IFtdLFxuICAgIHR5cGU6ICdwcm9ibGVtJ1xuICB9XG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWUEsU0FBUyx5QkFBeUI7QUFFM0IsTUFBTSxhQUFhO0FBRW5CLE1BQU0sNEJBQTZDO0FBQUEsRUFDeEQsT0FBTyxTQUFTO0FBQ2QsV0FBTztBQUFBLE1BQ0wsWUFBWSxNQUF1QjtBQUNqQyxjQUFNLFFBQVEsUUFBUSxXQUFXLFNBQVMsSUFBSTtBQUU5QyxtQkFBVyxZQUFZLE1BQU0sV0FBVztBQUN0QyxjQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsR0FBRyxHQUFHO0FBQ2xDO0FBQUEsVUFDRjtBQUVBLGdCQUFNLFVBQVUsU0FBUyxLQUFLLENBQUM7QUFDL0IsNEJBQWtCLFNBQVMsd0VBQXdFO0FBS25HLGdCQUFNLFdBQVksS0FBOEI7QUFDaEQsZ0JBQU0sWUFBWSxVQUFVO0FBQzVCLGdCQUFNLFVBQVUsUUFBUSxTQUFTO0FBQ2pDLGdCQUFNLG9CQUFvQixTQUFTLFdBQVcsS0FBSyxDQUFDLFFBQVE7QUFDMUQsZ0JBQUksQ0FBQyxJQUFJLE9BQU8sR0FBRztBQUNqQixxQkFBTztBQUFBLFlBQ1Q7QUFDQSxnQkFBSSxXQUFXLGFBQWEsSUFBSSxXQUFXLE9BQU87QUFDaEQscUJBQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUN4QyxJQUFJLFdBQVcsTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDO0FBQUEsWUFDN0M7QUFFQSxtQkFBTztBQUFBLFVBQ1QsQ0FBQztBQUNELGNBQUksbUJBQW1CO0FBQ3JCLG9CQUFRLE9BQU87QUFBQSxjQUNiLE1BQU0sRUFBRSxNQUFNLFNBQVMsS0FBSztBQUFBLGNBQzVCLFdBQVc7QUFBQSxjQUNYLE1BQU0sUUFBUTtBQUFBLFlBQ2hCLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0EsTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLENBQUMsVUFBVSxHQUFHO0FBQUEsSUFDaEI7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsTUFBTTtBQUFBLEVBQ1I7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|