@mnaoumov/typescript-dev-toolkit 1.2.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/cli-utils.cjs +3 -9
- package/dist/lib/cjs/cli-utils.d.cts +1 -1
- package/dist/lib/cjs/env-toggle.cjs +12 -1
- package/dist/lib/cjs/env-toggle.d.cts +7 -0
- package/dist/lib/cjs/git.cjs +42 -3
- package/dist/lib/cjs/git.d.cts +29 -0
- package/dist/lib/cjs/linters/markdownlint.cjs +7 -3
- package/dist/lib/cjs/linters/markdownlint.d.cts +11 -0
- package/dist/lib/esm/cli-utils.d.mts +1 -1
- package/dist/lib/esm/cli-utils.mjs +4 -10
- package/dist/lib/esm/env-toggle.d.mts +7 -0
- package/dist/lib/esm/env-toggle.mjs +11 -1
- package/dist/lib/esm/git.d.mts +29 -0
- package/dist/lib/esm/git.mjs +40 -2
- package/dist/lib/esm/linters/markdownlint.d.mts +11 -0
- package/dist/lib/esm/linters/markdownlint.mjs +11 -4
- package/package.json +2 -2
|
@@ -224,20 +224,14 @@ function cmdEscapeCommandLine(commandLine) {
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
async function wrapCliTask(taskFunction) {
|
|
227
|
-
|
|
228
|
-
if (disabledScriptEnvVariableName !== null) {
|
|
229
|
-
import_node_process.default.stdout.write(`Skipped (${disabledScriptEnvVariableName} is off).
|
|
230
|
-
`);
|
|
231
|
-
CliTaskResult.Success().exit();
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
227
|
+
(0, import_env_toggle.exitIfScriptDisabled)();
|
|
234
228
|
(0, import_debug.enableLibraryDebuggers)();
|
|
235
229
|
const result = await wrapResult(taskFunction);
|
|
236
230
|
result.exit();
|
|
237
231
|
}
|
|
238
232
|
async function wrapResult(taskFunction) {
|
|
239
233
|
try {
|
|
240
|
-
return await taskFunction() ?? CliTaskResult.
|
|
234
|
+
return await taskFunction() ?? CliTaskResult.FromExitCode(Number(import_node_process.default.exitCode ?? 0));
|
|
241
235
|
} catch (error) {
|
|
242
236
|
(0, import_error.printError)(new Error("An error occurred during task execution", { cause: error }));
|
|
243
237
|
return CliTaskResult.Failure();
|
|
@@ -251,4 +245,4 @@ async function wrapResult(taskFunction) {
|
|
|
251
245
|
toPosixCommandLine,
|
|
252
246
|
wrapCliTask
|
|
253
247
|
});
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGktdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB0YXNrIHJlc3VsdHMsIGluY2x1ZGluZ1xuICogc3VjY2VzcywgZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIG11bHRpcGxlIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBlbmFibGVMaWJyYXJ5RGVidWdnZXJzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBnZXREaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZSB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgYSB0YXNrLiBJbmNsdWRlcyBtZXRob2RzIGZvciBoYW5kbGluZyBzdWNjZXNzLFxuICogZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBDaGFpbnMgbXVsdGlwbGUgdGFza3MgdG9nZXRoZXIsIGV4ZWN1dGluZyB0aGVtIHNlcXVlbnRpYWxseSB1bnRpbCBvbmUgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyAtIEFuIGFycmF5IG9mIHRhc2sgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGB2b2lkYC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaXJzdCBmYWlsZWQge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGEgc3VjY2VzcyByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNoYWluKHRhc2tzOiAoKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pW10pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFzayk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb05vdEV4aXQoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBEb05vdEV4aXRUYXNrUmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQSBmYWlsdXJlIHJlc3VsdCBvZiBhIENMSSB0YXNrLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmFpbHVyZSByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZhaWx1cmUoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuU3VjY2VzcyhmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBiYXNlZCBvbiBhbiBleGl0IGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBleGl0Q29kZSAtIFRoZSBleGl0IGNvZGUgdG8gcmVwcmVzZW50LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRnJvbUV4aXRDb2RlKGV4aXRDb2RlOiBudW1iZXIpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IEV4aXRDb2RlVGFza1Jlc3VsdChleGl0Q29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsaVRhc2tSZXN1bHQgcmVwcmVzZW50aW5nIGEgc3VjY2Vzc2Z1bCB0YXNrIHJlc3VsdC5cbiAgICpcbiAgICogQHBhcmFtIGlzU3VjY2VzcyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBAcmV0dXJucyBBIENsaVRhc2tSZXN1bHQgb2JqZWN0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFN1Y2Nlc3MoaXNTdWNjZXNzID0gdHJ1ZSk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgU3VjY2Vzc1Rhc2tSZXN1bHQoaXNTdWNjZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXhpdCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHRhc2sgd2FzIG5vdCBzdWNjZXNzZnVsLlxuICAgKi9cbiAgcHVibGljIHRocm93T25GYWlsdXJlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYXNrIGZhaWxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5jbGFzcyBEb05vdEV4aXRUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBEb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICovXG5jbGFzcyBFeGl0Q29kZVRhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIHByb2Nlc3MuZXhpdCh0aGlzLmV4aXRDb2RlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhpdENvZGUgPT09IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAqL1xuY2xhc3MgU3VjY2Vzc1Rhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2lzU3VjY2Vzc2Z1bDogYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHN1Y2Nlc3Mgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5faXNTdWNjZXNzZnVsID8gMCA6IDEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNTdWNjZXNzZnVsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBzdHJpbmdcbiAqIHVzaW5nIHRoZSBgQ29tbWFuZExpbmVUb0FyZ3ZXYCBjb252ZW50aW9uICh0aGUgc3RhbmRhcmQgdXNlZCBieSB0aGVcbiAqIE1pY3Jvc29mdCBDIHJ1bnRpbWUgYW5kIG1vc3QgV2luZG93cyBwcm9ncmFtcykuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX06XG4gKiBiYWNrc2xhc2hlcyBiZWZvcmUgcXVvdGVzIGFuZCBhdCB0aGUgZW5kIG9mIGEgcXVvdGVkIGFyZ3VtZW50IGFyZSBkb3VibGVkLlxuICpcbiAqIFRoaXMgcHJvZHVjZXMgYSBzaGVsbC1hZ25vc3RpYyBjb21tYW5kIGxpbmUuIENhbGxlcnMgdGhhdCByb3V0ZSB0aHJvdWdoXG4gKiBhIHNwZWNpZmljIHNoZWxsIChjbWQuZXhlLCBQb3dlclNoZWxsLCBzaCkgbXVzdCBhcHBseSBzaGVsbC1zcGVjaWZpY1xuICogZXNjYXBpbmcgb24gdG9wIOKAlCBzZWUge0BsaW5rIGNtZEVzY2FwZUNvbW1hbmRMaW5lfS5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tYW5kTGluZSgkYXJndW1lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiAkYXJndW1lbnRzLm1hcCgoYXJndW1lbnQpID0+IGFyZ3ZRdW90ZShhcmd1bWVudCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZ1xuICogcXVvdGVkIGZvciBhIFBPU0lYIHNoZWxsIChgc2hgLCBgYmFzaGAsIGB6c2hgLCAuLi4pLlxuICpcbiAqIEVhY2ggYXJndW1lbnQgaXMgd3JhcHBlZCBpbiBzaW5nbGUgcXVvdGVzIHVubGVzcyBpdCBjb25zaXN0cyBzb2xlbHkgb2ZcbiAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2FmZSB1bnF1b3RlZCwgbWlycm9yaW5nIFB5dGhvbidzIGBzaGxleC5xdW90ZWAuIEEgbGl0ZXJhbFxuICogc2luZ2xlIHF1b3RlIGluc2lkZSBhbiBhcmd1bWVudCBpcyBlbWl0dGVkIGFzIHRoZSBgJ1xcJydgIGlkaW9tIChjbG9zZSB0aGVcbiAqIHF1b3RlZCBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4pLCBzbyB0aGUgc2hlbGwgcmVwcm9kdWNlcyB0aGVcbiAqIGFyZ3VtZW50IHZlcmJhdGltIOKAlCBubyB2YXJpYWJsZSBleHBhbnNpb24gKGAkYCksIGNvbW1hbmQgc3Vic3RpdHV0aW9uXG4gKiAoYGAgYCBgYCksIGdsb2JiaW5nIChgKmAsIGA/YCwgYFtgKSwgb3Igd29yZCBzcGxpdHRpbmcuXG4gKlxuICogVXNlIHRoaXMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIHRocm91Z2ggYHNoIC1jYC4gT25cbiAqIFdpbmRvd3MsIHVzZSB7QGxpbmsgdG9Db21tYW5kTGluZX0gcGx1cyB7QGxpbmsgY21kRXNjYXBlQ29tbWFuZExpbmV9IGluc3RlYWQg4oCUXG4gKiB0aGUgdHdvIGNvbnZlbnRpb25zIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZC1saW5lIGludm9jYXRpb24gZm9yIGEgUE9TSVggc2hlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4Q29tbWFuZExpbmUoJGFyZ3VtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gJGFyZ3VtZW50cy5tYXAoKGFyZ3VtZW50KSA9PiBwb3NpeFF1b3RlKGFyZ3VtZW50KSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYW4gYXJndW1lbnQgdGhhdCBpcyBlbnRpcmVseSBjb21wb3NlZCBvZiBjaGFyYWN0ZXJzIHNhZmUgdG8gcGFzcyB0byBhXG4gKiBQT1NJWCBzaGVsbCB1bnF1b3RlZC4gTWlycm9ycyB0aGUgc2FmZSBzZXQgdXNlZCBieSBQeXRob24ncyBgc2hsZXgucXVvdGVgLlxuICovXG5jb25zdCBQT1NJWF9TQUZFX0FSR19SRSA9IC9eW1xcd0AlKz06LC4vLV0rJC87XG5cbi8qKlxuICogTWF0Y2hlcyBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlLCBmb3IgcmVwbGFjaW5nIGl0IHdpdGggdGhlIGAnXFwnJ2AgaWRpb20uXG4gKi9cbmNvbnN0IFNJTkdMRV9RVU9URV9SRSA9IC8nL2c7XG5cbi8qKlxuICogVGhlIHJlcGxhY2VtZW50IGZvciBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlIGluc2lkZSBhIHNpbmdsZS1xdW90ZWQgUE9TSVggc3BhbjpcbiAqIGNsb3NlIHRoZSBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4gdGhlIHNwYW4uXG4gKi9cbmNvbnN0IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFID0gU3RyaW5nLnJhd2AnXFwnJ2A7XG5cbi8qKlxuICogUXVvdGVzIGEgc2luZ2xlIGFyZ3VtZW50IHNvIHRoYXQgYENvbW1hbmRMaW5lVG9Bcmd2V2Agd2lsbCBkZWNvZGUgaXRcbiAqIHVuY2hhbmdlZC4gSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX0uXG4gKlxuICogQHBhcmFtIGFyZ3VtZW50IC0gVGhlIHJhdyBhcmd1bWVudCBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgcXVvdGVkIGFyZ3VtZW50IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYXJndlF1b3RlKGFyZ3VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXJndW1lbnQubGVuZ3RoID4gMCAmJiAhL1tcXHNcXHRcXG5cXHZcIl0vLnRlc3QoYXJndW1lbnQpKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50O1xuICB9XG5cbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IgPSAyO1xuICBsZXQgcmVzdWx0ID0gJ1wiJztcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3VtZW50Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGxldCBudW1iZXJCYWNrc2xhc2hlcyA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgYXJndW1lbnQubGVuZ3RoICYmIGFyZ3VtZW50W2luZGV4XSA9PT0gJ1xcXFwnKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbnVtYmVyQmFja3NsYXNoZXMrKztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPT09IGFyZ3VtZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ICs9ICdcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMgKiBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUik7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IGFyZ3VtZW50LmNoYXJBdChpbmRleCk7XG4gICAgcmVzdWx0ICs9IGNoID09PSAnXCInID8gYCR7J1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcyAqIEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SICsgMSl9XCJgIDogJ1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcykgKyBjaDtcbiAgfVxuXG4gIHJlc3VsdCArPSAnXCInO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBmb3IgYSBQT1NJWCBzaGVsbCBzbyBpdCBpcyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqIEFuIGVtcHR5IGFyZ3VtZW50IGJlY29tZXMgYCcnYDsgYW4gYXJndW1lbnQgb2Ygb25seSBzYWZlIGNoYXJhY3RlcnMgaXNcbiAqIHJldHVybmVkIHVuY2hhbmdlZDsgYW55dGhpbmcgZWxzZSBpcyBzaW5nbGUtcXVvdGVkLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l4UXVvdGUoYXJndW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBQT1NJWF9TQUZFX0FSR19SRS50ZXN0KGFyZ3VtZW50KSA/IGFyZ3VtZW50IDogYCcke3JlcGxhY2VBbGwoeyAkc3RyaW5nOiBhcmd1bWVudCwgcmVwbGFjZXI6IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFLCBzZWFyY2hWYWx1ZTogU0lOR0xFX1FVT1RFX1JFIH0pfSdgO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZSBgXmAtZXNjYXBlZC5cbiAqL1xuY29uc3QgQ01EX01FVEFfUkUgPSAvWygpJSFeXCI8PiZ8XS9nO1xuXG4vKipcbiAqIEVzY2FwZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHdpdGggYF5gIHNvIHRoYXQgYGNtZC5leGVgIHBhc3NlcyB0aGVtXG4gKiB0aHJvdWdoIGxpdGVyYWxseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBgY21kLmV4ZWAncyBgXCJgIGhhbmRsaW5nXG4gKiBkaWZmZXJzIGZyb20gYENvbW1hbmRMaW5lVG9Bcmd2V2AgYW5kIGNhbm5vdCBiZSByZWxpZWQgdXBvbi5cbiAqXG4gKiBBcHBseSB0aGlzIHRvIGEgY29tbWFuZCBsaW5lIHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgdmlhIGBjbWQuZXhlYFxuICogKGUuZy4sIGBzcGF3bihjbWQsIFtdLCB7IHNoZWxsOiB0cnVlIH0pYCBvbiBXaW5kb3dzKS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZExpbmUgLSBUaGUgYWxyZWFkeS1xdW90ZWQgY29tbWFuZCBsaW5lIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgd2l0aCBhbGwgY21kIG1ldGFjaGFyYWN0ZXJzIGBeYC1lc2NhcGVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgY21kYCBuYW1lcyBXaW5kb3dzIGBjbWQuZXhlYCwgbm90IGFuIGFiYnJldmlhdGlvbiBvZiBgY29tbWFuZGAuXG5leHBvcnQgZnVuY3Rpb24gY21kRXNjYXBlQ29tbWFuZExpbmUoY29tbWFuZExpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBjb21tYW5kTGluZSxcbiAgICByZXBsYWNlcjogJ14kJicsXG4gICAgc2VhcmNoVmFsdWU6IENNRF9NRVRBX1JFXG4gIH0pO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgQ0xJIHRhc2sgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJ1bnMgc2FmZWx5IGFuZCBoYW5kbGVzIGl0cyB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uXG4gKlxuICogSG9ub3JzIHRoZSBwZXItc2NyaXB0IG9mZiBzd2l0Y2ggZmlyc3Q6IHdoZW4gdGhlIG5wbSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcgaGFzIGJlZW4gc3dpdGNoZWQgb2ZmIOKAlFxuICogYExJTlRfTUQ9MCBucG0gcnVuIGxpbnQ6bWRgLCBzZWUge0BsaW5rIGdldERpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lfSDigJQgdGhlIHRhc2sgaXMgbm90IGV4ZWN1dGVkIGFuZFxuICogdGhlIHByb2Nlc3MgZXhpdHMgc3VjY2Vzc2Z1bGx5LiBCZWNhdXNlIGV2ZXJ5IGBzY3JpcHRzLyoudHNgIGVudHJ5IHBvaW50IGFscmVhZHkgZnVubmVscyB0aHJvdWdoIGhlcmUsIG5vXG4gKiBzY3JpcHQgaGFzIHRvIG9wdCBpbiwgYW5kIGVhY2ggYG5wbSBydW5gIHN1Yi1zdGVwIG9mIGEgY29tcG9zaXRlIHNjcmlwdCAoZS5nLiBgYnVpbGRgKSBjYXJyaWVzIGl0cyBvd25cbiAqIHN3aXRjaC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSwgd2hpY2ggbWF5IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkIGFuZCBleGl0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwQ2xpVGFzayh0YXNrRnVuY3Rpb246ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID0gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTtcbiAgaWYgKGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lICE9PSBudWxsKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFNraXBwZWQgKCR7ZGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWV9IGlzIG9mZikuXFxuYCk7XG4gICAgQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKCkuZXhpdCgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMoKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd3JhcFJlc3VsdCh0YXNrRnVuY3Rpb24pO1xuICByZXN1bHQuZXhpdCgpO1xufVxuXG4vKipcbiAqIFNhZmVseSBleGVjdXRlcyBhIHRhc2sgZnVuY3Rpb24gYW5kIHJldHVybnMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uIElmIHRoZSB0YXNrIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvcixcbiAqIEFuIGVycm9yIGlzIGNhdWdodCwgYW5kIGEgZmFpbHVyZSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHRhc2tGdW5jdGlvbiAtIFRoZSB0YXNrIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gcmVwcmVzZW50aW5nIHRoZSBvdXRjb21lIG9mIHRoZSB0YXNrLlxuICovXG5hc3luYyBmdW5jdGlvbiB3cmFwUmVzdWx0KHRhc2tGdW5jdGlvbjogKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IHRhc2tGdW5jdGlvbigpKSBhcyBDbGlUYXNrUmVzdWx0IHwgdW5kZWZpbmVkID8/IENsaVRhc2tSZXN1bHQuU3VjY2VzcygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGFzayBleGVjdXRpb24nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuRmFpbHVyZSgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFB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
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGktdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB0YXNrIHJlc3VsdHMsIGluY2x1ZGluZ1xuICogc3VjY2VzcywgZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIG11bHRpcGxlIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBlbmFibGVMaWJyYXJ5RGVidWdnZXJzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBleGl0SWZTY3JpcHREaXNhYmxlZCB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgYSB0YXNrLiBJbmNsdWRlcyBtZXRob2RzIGZvciBoYW5kbGluZyBzdWNjZXNzLFxuICogZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBDaGFpbnMgbXVsdGlwbGUgdGFza3MgdG9nZXRoZXIsIGV4ZWN1dGluZyB0aGVtIHNlcXVlbnRpYWxseSB1bnRpbCBvbmUgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyAtIEFuIGFycmF5IG9mIHRhc2sgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGB2b2lkYC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaXJzdCBmYWlsZWQge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGEgc3VjY2VzcyByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNoYWluKHRhc2tzOiAoKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pW10pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFzayk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb05vdEV4aXQoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBEb05vdEV4aXRUYXNrUmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQSBmYWlsdXJlIHJlc3VsdCBvZiBhIENMSSB0YXNrLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmFpbHVyZSByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZhaWx1cmUoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuU3VjY2VzcyhmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBiYXNlZCBvbiBhbiBleGl0IGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBleGl0Q29kZSAtIFRoZSBleGl0IGNvZGUgdG8gcmVwcmVzZW50LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRnJvbUV4aXRDb2RlKGV4aXRDb2RlOiBudW1iZXIpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IEV4aXRDb2RlVGFza1Jlc3VsdChleGl0Q29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsaVRhc2tSZXN1bHQgcmVwcmVzZW50aW5nIGEgc3VjY2Vzc2Z1bCB0YXNrIHJlc3VsdC5cbiAgICpcbiAgICogQHBhcmFtIGlzU3VjY2VzcyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBAcmV0dXJucyBBIENsaVRhc2tSZXN1bHQgb2JqZWN0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFN1Y2Nlc3MoaXNTdWNjZXNzID0gdHJ1ZSk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgU3VjY2Vzc1Rhc2tSZXN1bHQoaXNTdWNjZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXhpdCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHRhc2sgd2FzIG5vdCBzdWNjZXNzZnVsLlxuICAgKi9cbiAgcHVibGljIHRocm93T25GYWlsdXJlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYXNrIGZhaWxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5jbGFzcyBEb05vdEV4aXRUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBEb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICovXG5jbGFzcyBFeGl0Q29kZVRhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIHByb2Nlc3MuZXhpdCh0aGlzLmV4aXRDb2RlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhpdENvZGUgPT09IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAqL1xuY2xhc3MgU3VjY2Vzc1Rhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2lzU3VjY2Vzc2Z1bDogYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHN1Y2Nlc3Mgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5faXNTdWNjZXNzZnVsID8gMCA6IDEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNTdWNjZXNzZnVsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBzdHJpbmdcbiAqIHVzaW5nIHRoZSBgQ29tbWFuZExpbmVUb0FyZ3ZXYCBjb252ZW50aW9uICh0aGUgc3RhbmRhcmQgdXNlZCBieSB0aGVcbiAqIE1pY3Jvc29mdCBDIHJ1bnRpbWUgYW5kIG1vc3QgV2luZG93cyBwcm9ncmFtcykuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX06XG4gKiBiYWNrc2xhc2hlcyBiZWZvcmUgcXVvdGVzIGFuZCBhdCB0aGUgZW5kIG9mIGEgcXVvdGVkIGFyZ3VtZW50IGFyZSBkb3VibGVkLlxuICpcbiAqIFRoaXMgcHJvZHVjZXMgYSBzaGVsbC1hZ25vc3RpYyBjb21tYW5kIGxpbmUuIENhbGxlcnMgdGhhdCByb3V0ZSB0aHJvdWdoXG4gKiBhIHNwZWNpZmljIHNoZWxsIChjbWQuZXhlLCBQb3dlclNoZWxsLCBzaCkgbXVzdCBhcHBseSBzaGVsbC1zcGVjaWZpY1xuICogZXNjYXBpbmcgb24gdG9wIOKAlCBzZWUge0BsaW5rIGNtZEVzY2FwZUNvbW1hbmRMaW5lfS5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tYW5kTGluZSgkYXJndW1lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiAkYXJndW1lbnRzLm1hcCgoYXJndW1lbnQpID0+IGFyZ3ZRdW90ZShhcmd1bWVudCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZ1xuICogcXVvdGVkIGZvciBhIFBPU0lYIHNoZWxsIChgc2hgLCBgYmFzaGAsIGB6c2hgLCAuLi4pLlxuICpcbiAqIEVhY2ggYXJndW1lbnQgaXMgd3JhcHBlZCBpbiBzaW5nbGUgcXVvdGVzIHVubGVzcyBpdCBjb25zaXN0cyBzb2xlbHkgb2ZcbiAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2FmZSB1bnF1b3RlZCwgbWlycm9yaW5nIFB5dGhvbidzIGBzaGxleC5xdW90ZWAuIEEgbGl0ZXJhbFxuICogc2luZ2xlIHF1b3RlIGluc2lkZSBhbiBhcmd1bWVudCBpcyBlbWl0dGVkIGFzIHRoZSBgJ1xcJydgIGlkaW9tIChjbG9zZSB0aGVcbiAqIHF1b3RlZCBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4pLCBzbyB0aGUgc2hlbGwgcmVwcm9kdWNlcyB0aGVcbiAqIGFyZ3VtZW50IHZlcmJhdGltIOKAlCBubyB2YXJpYWJsZSBleHBhbnNpb24gKGAkYCksIGNvbW1hbmQgc3Vic3RpdHV0aW9uXG4gKiAoYGAgYCBgYCksIGdsb2JiaW5nIChgKmAsIGA/YCwgYFtgKSwgb3Igd29yZCBzcGxpdHRpbmcuXG4gKlxuICogVXNlIHRoaXMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIHRocm91Z2ggYHNoIC1jYC4gT25cbiAqIFdpbmRvd3MsIHVzZSB7QGxpbmsgdG9Db21tYW5kTGluZX0gcGx1cyB7QGxpbmsgY21kRXNjYXBlQ29tbWFuZExpbmV9IGluc3RlYWQg4oCUXG4gKiB0aGUgdHdvIGNvbnZlbnRpb25zIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZC1saW5lIGludm9jYXRpb24gZm9yIGEgUE9TSVggc2hlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4Q29tbWFuZExpbmUoJGFyZ3VtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gJGFyZ3VtZW50cy5tYXAoKGFyZ3VtZW50KSA9PiBwb3NpeFF1b3RlKGFyZ3VtZW50KSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYW4gYXJndW1lbnQgdGhhdCBpcyBlbnRpcmVseSBjb21wb3NlZCBvZiBjaGFyYWN0ZXJzIHNhZmUgdG8gcGFzcyB0byBhXG4gKiBQT1NJWCBzaGVsbCB1bnF1b3RlZC4gTWlycm9ycyB0aGUgc2FmZSBzZXQgdXNlZCBieSBQeXRob24ncyBgc2hsZXgucXVvdGVgLlxuICovXG5jb25zdCBQT1NJWF9TQUZFX0FSR19SRSA9IC9eW1xcd0AlKz06LC4vLV0rJC87XG5cbi8qKlxuICogTWF0Y2hlcyBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlLCBmb3IgcmVwbGFjaW5nIGl0IHdpdGggdGhlIGAnXFwnJ2AgaWRpb20uXG4gKi9cbmNvbnN0IFNJTkdMRV9RVU9URV9SRSA9IC8nL2c7XG5cbi8qKlxuICogVGhlIHJlcGxhY2VtZW50IGZvciBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlIGluc2lkZSBhIHNpbmdsZS1xdW90ZWQgUE9TSVggc3BhbjpcbiAqIGNsb3NlIHRoZSBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4gdGhlIHNwYW4uXG4gKi9cbmNvbnN0IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFID0gU3RyaW5nLnJhd2AnXFwnJ2A7XG5cbi8qKlxuICogUXVvdGVzIGEgc2luZ2xlIGFyZ3VtZW50IHNvIHRoYXQgYENvbW1hbmRMaW5lVG9Bcmd2V2Agd2lsbCBkZWNvZGUgaXRcbiAqIHVuY2hhbmdlZC4gSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX0uXG4gKlxuICogQHBhcmFtIGFyZ3VtZW50IC0gVGhlIHJhdyBhcmd1bWVudCBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgcXVvdGVkIGFyZ3VtZW50IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYXJndlF1b3RlKGFyZ3VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXJndW1lbnQubGVuZ3RoID4gMCAmJiAhL1tcXHNcXHRcXG5cXHZcIl0vLnRlc3QoYXJndW1lbnQpKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50O1xuICB9XG5cbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IgPSAyO1xuICBsZXQgcmVzdWx0ID0gJ1wiJztcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3VtZW50Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGxldCBudW1iZXJCYWNrc2xhc2hlcyA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgYXJndW1lbnQubGVuZ3RoICYmIGFyZ3VtZW50W2luZGV4XSA9PT0gJ1xcXFwnKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbnVtYmVyQmFja3NsYXNoZXMrKztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPT09IGFyZ3VtZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ICs9ICdcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMgKiBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUik7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IGFyZ3VtZW50LmNoYXJBdChpbmRleCk7XG4gICAgcmVzdWx0ICs9IGNoID09PSAnXCInID8gYCR7J1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcyAqIEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SICsgMSl9XCJgIDogJ1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcykgKyBjaDtcbiAgfVxuXG4gIHJlc3VsdCArPSAnXCInO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBmb3IgYSBQT1NJWCBzaGVsbCBzbyBpdCBpcyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqIEFuIGVtcHR5IGFyZ3VtZW50IGJlY29tZXMgYCcnYDsgYW4gYXJndW1lbnQgb2Ygb25seSBzYWZlIGNoYXJhY3RlcnMgaXNcbiAqIHJldHVybmVkIHVuY2hhbmdlZDsgYW55dGhpbmcgZWxzZSBpcyBzaW5nbGUtcXVvdGVkLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l4UXVvdGUoYXJndW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBQT1NJWF9TQUZFX0FSR19SRS50ZXN0KGFyZ3VtZW50KSA/IGFyZ3VtZW50IDogYCcke3JlcGxhY2VBbGwoeyAkc3RyaW5nOiBhcmd1bWVudCwgcmVwbGFjZXI6IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFLCBzZWFyY2hWYWx1ZTogU0lOR0xFX1FVT1RFX1JFIH0pfSdgO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZSBgXmAtZXNjYXBlZC5cbiAqL1xuY29uc3QgQ01EX01FVEFfUkUgPSAvWygpJSFeXCI8PiZ8XS9nO1xuXG4vKipcbiAqIEVzY2FwZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHdpdGggYF5gIHNvIHRoYXQgYGNtZC5leGVgIHBhc3NlcyB0aGVtXG4gKiB0aHJvdWdoIGxpdGVyYWxseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBgY21kLmV4ZWAncyBgXCJgIGhhbmRsaW5nXG4gKiBkaWZmZXJzIGZyb20gYENvbW1hbmRMaW5lVG9Bcmd2V2AgYW5kIGNhbm5vdCBiZSByZWxpZWQgdXBvbi5cbiAqXG4gKiBBcHBseSB0aGlzIHRvIGEgY29tbWFuZCBsaW5lIHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgdmlhIGBjbWQuZXhlYFxuICogKGUuZy4sIGBzcGF3bihjbWQsIFtdLCB7IHNoZWxsOiB0cnVlIH0pYCBvbiBXaW5kb3dzKS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZExpbmUgLSBUaGUgYWxyZWFkeS1xdW90ZWQgY29tbWFuZCBsaW5lIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgd2l0aCBhbGwgY21kIG1ldGFjaGFyYWN0ZXJzIGBeYC1lc2NhcGVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgY21kYCBuYW1lcyBXaW5kb3dzIGBjbWQuZXhlYCwgbm90IGFuIGFiYnJldmlhdGlvbiBvZiBgY29tbWFuZGAuXG5leHBvcnQgZnVuY3Rpb24gY21kRXNjYXBlQ29tbWFuZExpbmUoY29tbWFuZExpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBjb21tYW5kTGluZSxcbiAgICByZXBsYWNlcjogJ14kJicsXG4gICAgc2VhcmNoVmFsdWU6IENNRF9NRVRBX1JFXG4gIH0pO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgQ0xJIHRhc2sgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJ1bnMgc2FmZWx5IGFuZCBoYW5kbGVzIGl0cyB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uXG4gKlxuICogSG9ub3JzIHRoZSBwZXItc2NyaXB0IG9mZiBzd2l0Y2ggZmlyc3Q6IHdoZW4gdGhlIG5wbSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcgaGFzIGJlZW4gc3dpdGNoZWQgb2ZmIOKAlFxuICogYExJTlRfTUQ9MCBucG0gcnVuIGxpbnQ6bWRgLCBzZWUge0BsaW5rIGV4aXRJZlNjcmlwdERpc2FibGVkfSDigJQgdGhlIHRhc2sgaXMgbm90IGV4ZWN1dGVkIGFuZFxuICogdGhlIHByb2Nlc3MgZXhpdHMgc3VjY2Vzc2Z1bGx5LiBCZWNhdXNlIGV2ZXJ5IGBzY3JpcHRzLyoudHNgIGVudHJ5IHBvaW50IGFscmVhZHkgZnVubmVscyB0aHJvdWdoIGhlcmUsIG5vXG4gKiBzY3JpcHQgaGFzIHRvIG9wdCBpbiwgYW5kIGVhY2ggYG5wbSBydW5gIHN1Yi1zdGVwIG9mIGEgY29tcG9zaXRlIHNjcmlwdCAoZS5nLiBgYnVpbGRgKSBjYXJyaWVzIGl0cyBvd25cbiAqIHN3aXRjaC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSwgd2hpY2ggbWF5IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkIGFuZCBleGl0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwQ2xpVGFzayh0YXNrRnVuY3Rpb246ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGV4aXRJZlNjcmlwdERpc2FibGVkKCk7XG5cbiAgZW5hYmxlTGlicmFyeURlYnVnZ2VycygpO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCB3cmFwUmVzdWx0KHRhc2tGdW5jdGlvbik7XG4gIHJlc3VsdC5leGl0KCk7XG59XG5cbi8qKlxuICogU2FmZWx5IGV4ZWN1dGVzIGEgdGFzayBmdW5jdGlvbiBhbmQgcmV0dXJucyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fS4gSWYgdGhlIHRhc2sgZnVuY3Rpb24gdGhyb3dzIGFuIGVycm9yLFxuICogQW4gZXJyb3IgaXMgY2F1Z2h0LCBhbmQgYSBmYWlsdXJlIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpcyByZXR1cm5lZC5cbiAqXG4gKiBBIHRhc2sgdGhhdCByZXR1cm5zIG5vdGhpbmcgZW5kcyB3aXRoIHRoZSBgcHJvY2Vzcy5leGl0Q29kZWAgaXQgbGVmdCBiZWhpbmQsIHNvIHRoZSBjb21tb24gTm9kZSBzaGFwZSDigJQgcmVwb3J0XG4gKiB0aGUgZmluZGluZ3MsIHNldCBgcHJvY2Vzcy5leGl0Q29kZSA9IDFgLCByZXR1cm4g4oCUIHN0aWxsIGZhaWxzOiB7QGxpbmsgQ2xpVGFza1Jlc3VsdC5leGl0fSBjYWxscyBgcHJvY2Vzcy5leGl0YCxcbiAqIHdob3NlIGFyZ3VtZW50IHdvdWxkIG90aGVyd2lzZSBvdmVycmlkZSBpdCB3aXRoIGAwYC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIG91dGNvbWUgb2YgdGhlIHRhc2suXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdyYXBSZXN1bHQodGFza0Z1bmN0aW9uOiAoKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPENsaVRhc2tSZXN1bHQ+Pik6IFByb21pc2U8Q2xpVGFza1Jlc3VsdD4ge1xuICB0cnkge1xuICAgIHJldHVybiAoYXdhaXQgdGFza0Z1bmN0aW9uKCkpIGFzIENsaVRhc2tSZXN1bHQgfCB1bmRlZmluZWQgPz8gQ2xpVGFza1Jlc3VsdC5Gcm9tRXhpdENvZGUoTnVtYmVyKHByb2Nlc3MuZXhpdENvZGUgPz8gMCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGFzayBleGVjdXRpb24nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuRmFpbHVyZSgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7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
|
|
@@ -112,7 +112,7 @@ export declare function cmdEscapeCommandLine(commandLine: string): string;
|
|
|
112
112
|
* Wraps a CLI task function to ensure it runs safely and handles its {@link CliTaskResult}.
|
|
113
113
|
*
|
|
114
114
|
* Honors the per-script off switch first: when the npm script currently running has been switched off —
|
|
115
|
-
* `LINT_MD=0 npm run lint:md`, see {@link
|
|
115
|
+
* `LINT_MD=0 npm run lint:md`, see {@link exitIfScriptDisabled} — the task is not executed and
|
|
116
116
|
* the process exits successfully. Because every `scripts/*.ts` entry point already funnels through here, no
|
|
117
117
|
* script has to opt in, and each `npm run` sub-step of a composite script (e.g. `build`) carries its own
|
|
118
118
|
* switch.
|
|
@@ -66,6 +66,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
66
66
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
67
67
|
var env_toggle_exports = {};
|
|
68
68
|
__export(env_toggle_exports, {
|
|
69
|
+
exitIfScriptDisabled: () => exitIfScriptDisabled,
|
|
69
70
|
getDisabledScriptEnvVariableName: () => getDisabledScriptEnvVariableName,
|
|
70
71
|
isEnvVariableOff: () => isEnvVariableOff,
|
|
71
72
|
loadEnvFileIfExists: () => loadEnvFileIfExists
|
|
@@ -78,6 +79,15 @@ const OFF_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
|
|
|
78
79
|
const ENV_FILE_PATH = ".env";
|
|
79
80
|
const NON_ALPHANUMERIC_REG_EXP = /[^a-z0-9]+/gi;
|
|
80
81
|
const NPM_SCRIPT_NAME_ENV_VARIABLE = "npm_lifecycle_event";
|
|
82
|
+
function exitIfScriptDisabled() {
|
|
83
|
+
const disabledScriptEnvVariableName = getDisabledScriptEnvVariableName();
|
|
84
|
+
if (disabledScriptEnvVariableName === null) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
import_node_process.default.stdout.write(`Skipped (${disabledScriptEnvVariableName} is off).
|
|
88
|
+
`);
|
|
89
|
+
import_node_process.default.exit(0);
|
|
90
|
+
}
|
|
81
91
|
function getDisabledScriptEnvVariableName() {
|
|
82
92
|
loadEnvFileIfExists();
|
|
83
93
|
const scriptName = import_node_process.default.env[NPM_SCRIPT_NAME_ENV_VARIABLE];
|
|
@@ -104,8 +114,9 @@ function toEnvVariableName(scriptName) {
|
|
|
104
114
|
}
|
|
105
115
|
// Annotate the CommonJS export names for ESM import in node:
|
|
106
116
|
0 && (module.exports = {
|
|
117
|
+
exitIfScriptDisabled,
|
|
107
118
|
getDisabledScriptEnvVariableName,
|
|
108
119
|
isEnvVariableOff,
|
|
109
120
|
loadEnvFileIfExists
|
|
110
121
|
});
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnYtdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgZW52aXJvbm1lbnQtdmFyaWFibGUgb2ZmIHN3aXRjaGVzIGZvciB0aGUgQ0xJIHNjcmlwdHMuXG4gKlxuICogRXZlcnkgbnBtIHNjcmlwdCBjYW4gYmUgc2tpcHBlZCBieSBzZXR0aW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGFmdGVyIGl0IOKAlCB0aGUgc2NyaXB0IG5hbWVcbiAqIHVwcGVyY2FzZWQsIHdpdGggZXZlcnkgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXIgcmVwbGFjZWQgYnkgYF9gOlxuICpcbiAqIHwgU2NyaXB0ICAgICAgICAgICAgICB8IFN3aXRjaCAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IGBsaW50YCAgICAgICAgICAgICAgfCBgTElOVD0wYCAgICAgICAgICAgIHxcbiAqIHwgYGxpbnQ6bWQ6Zml4YCAgICAgICB8IGBMSU5UX01EX0ZJWD0wYCAgICAgfFxuICogfCBgZm9ybWF0OmNoZWNrYCAgICAgIHwgYEZPUk1BVF9DSEVDSz0wYCAgICB8XG4gKiB8IGBmaW5kLW92ZXJleHBvc2VkYCAgfCBgRklORF9PVkVSRVhQT1NFRD0wYHxcbiAqXG4gKiBUaGlzIG1pcnJvcnMgdGhlIHByZS1leGlzdGluZyBgTkFOT19TVEFHRUQ9MGAgLyBgSFVTS1k9MGAgZXNjYXBlIGhhdGNoZXMsIGFuZCByZXVzZXMgdGhlaXIgbm90aW9uIG9mIGFuXG4gKiBcIm9mZlwiIHZhbHVlLCBzbyB0aGVyZSBpcyBhIHNpbmdsZSBhbnN3ZXIgdG8gd2hhdCBjb3VudHMgYXMgb2ZmIGFjcm9zcyB0aGUgd2hvbGUgdG9vbCBzZXQuXG4gKi9cblxuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuLyoqXG4gKiBUaGUgdmFsdWVzIHRoYXQgc3dpdGNoIGEgdmFyaWFibGUgb2ZmLiBBbnl0aGluZyBlbHNlIOKAlCBpbmNsdWRpbmcgYW4gdW5zZXQgdmFyaWFibGUg4oCUIGxlYXZlcyBpdCBvbiwgc28gdGhlXG4gKiBkZWZhdWx0IGlzIGFsd2F5cyBcInJ1biB0aGUgc2NyaXB0XCIuXG4gKi9cbmNvbnN0IE9GRl9WQUxVRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnMCcsICdmYWxzZScsICdubycsICdvZmYnXSk7XG5cbi8qKlxuICogVGhlIG9wdGlvbmFsIHBlci1kZXZlbG9wZXIgZW52aXJvbm1lbnQgZmlsZS4gTG9hZGVkIHZpYSBOb2RlJ3Mgb3duIGBwcm9jZXNzLmxvYWRFbnZGaWxlYCwgc28gaXQgYmVoYXZlc1xuICogdGhlIHNhbWUgb24gZXZlcnkgcGxhdGZvcm0gYW5kIHNoZWxsLlxuICovXG5jb25zdCBFTlZfRklMRV9QQVRIID0gJy5lbnYnO1xuXG4vKipcbiAqIE1hdGNoZXMgZXZlcnkgcnVuIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW5ub3QgYXBwZWFyIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUuXG4gKi9cbmNvbnN0IE5PTl9BTFBIQU5VTUVSSUNfUkVHX0VYUCA9IC9bXmEtejAtOV0rL2dpO1xuXG4vKipcbiAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBucG0gc2V0cyB0byB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0IGl0IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG5jb25zdCBOUE1fU0NSSVBUX05BTUVfRU5WX1ZBUklBQkxFID0gJ25wbV9saWZlY3ljbGVfZXZlbnQnO1xuXG4vKipcbiAqIEV4aXRzIHRoZSBwcm9jZXNzIHN1Y2Nlc3NmdWxseSwgYmVmb3JlIGFueSB3b3JrLCB3aGVuIHRoZSBucG0gc2NyaXB0IGN1cnJlbnRseSBydW5uaW5nIGhhcyBiZWVuIHN3aXRjaGVkXG4gKiBvZmY6IGl0IHdyaXRlcyBgU2tpcHBlZCAoPFZBUj4gaXMgb2ZmKS5gIGFuZCBjYWxscyBgcHJvY2Vzcy5leGl0KDApYC5cbiAqXG4gKiBDYWxsIGl0IGZpcnN0IGluIGEgc2NyaXB0IGVudHJ5IHBvaW50IHRoYXQgZG9lcyBub3QgZ28gdGhyb3VnaCBgd3JhcENsaVRhc2tgLCB3aGljaCBhbHJlYWR5IGNhbGxzIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhpdElmU2NyaXB0RGlzYWJsZWQoKTogdm9pZCB7XG4gIGNvbnN0IGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID0gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTtcbiAgaWYgKGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFNraXBwZWQgKCR7ZGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWV9IGlzIG9mZikuXFxuYCk7XG4gIHByb2Nlc3MuZXhpdCgwKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgb2ZmIHN3aXRjaCBmb3IgdGhlIG5wbSBzY3JpcHQgdGhhdCBpcyBjdXJyZW50bHkgcnVubmluZywgbG9hZGluZyB7QGxpbmsgRU5WX0ZJTEVfUEFUSH0gZmlyc3QuXG4gKlxuICogVGhlIHNjcmlwdCBuYW1lIGNvbWVzIGZyb20gbnBtIGl0c2VsZiwgc28gbm8gc2NyaXB0IGhhcyB0byBkZWNsYXJlIGl0cyBvd24gc3dpdGNoLiBXaGVuIHRoZSBzY3JpcHQgd2FzXG4gKiBzdGFydGVkIGRpcmVjdGx5IHJhdGhlciB0aGFuIHRocm91Z2ggbnBtLCB0aGVyZSBpcyBubyBuYW1lIHRvIGRlcml2ZSBmcm9tIGFuZCBub3RoaW5nIGlzIGV2ZXIgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdGhhdCBzd2l0Y2hlZCB0aGUgY3VycmVudCBzY3JpcHQgb2ZmLCBvciBgbnVsbGAgd2hlbiB0aGVcbiAqIHNjcmlwdCBzaG91bGQgcnVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTogbnVsbCB8IHN0cmluZyB7XG4gIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTtcbiAgY29uc3Qgc2NyaXB0TmFtZSA9IHByb2Nlc3MuZW52W05QTV9TQ1JJUFRfTkFNRV9FTlZfVkFSSUFCTEVdO1xuICBpZiAoIXNjcmlwdE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGVudlZhcmlhYmxlTmFtZSA9IHRvRW52VmFyaWFibGVOYW1lKHNjcmlwdE5hbWUpO1xuICByZXR1cm4gaXNFbnZWYXJpYWJsZU9mZihlbnZWYXJpYWJsZU5hbWUpID8gZW52VmFyaWFibGVOYW1lIDogbnVsbDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byBhbiBvZmYgdmFsdWUgKGAwYCwgYGZhbHNlYCwgYG5vYCwgb3IgYG9mZmAsXG4gKiBjYXNlLWluc2Vuc2l0aXZlbHkgYW5kIGlnbm9yaW5nIHN1cnJvdW5kaW5nIHdoaXRlc3BhY2UpLlxuICpcbiAqIEBwYXJhbSBlbnZWYXJpYWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB2YXJpYWJsZSBpcyBzZXQgdG8gYW4gb2ZmIHZhbHVlLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW52VmFyaWFibGVPZmYoZW52VmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9GRl9WQUxVRVMuaGFzKChwcm9jZXNzLmVudltlbnZWYXJpYWJsZU5hbWVdID8/ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIG9wdGlvbmFsIHtAbGluayBFTlZfRklMRV9QQVRIfSBmaWxlIGludG8gYHByb2Nlc3MuZW52YCB3aGVuIGl0IGV4aXN0cywgc28gYSBkZXZlbG9wZXIgY2FuIHBhcmsgYVxuICogc3dpdGNoIHN1Y2ggYXMgYExJTlRfTUQ9MGAgdGhlcmUgaW5zdGVhZCBvZiBwcmVmaXhpbmcgZXZlcnkgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTogdm9pZCB7XG4gIGlmIChleGlzdHNTeW5jKEVOVl9GSUxFX1BBVEgpKSB7XG4gICAgcHJvY2Vzcy5sb2FkRW52RmlsZShFTlZfRklMRV9QQVRIKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG5wbSBzY3JpcHQgbmFtZSBpbnRvIHRoZSBuYW1lIG9mIGl0cyBvZmYgc3dpdGNoLlxuICpcbiAqIEBwYXJhbSBzY3JpcHROYW1lIC0gVGhlIG5wbSBzY3JpcHQgbmFtZSwgZS5nLiBgbGludDptZDpmaXhgLlxuICogQHJldHVybnMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUsIGUuZy4gYExJTlRfTURfRklYYC5cbiAqL1xuZnVuY3Rpb24gdG9FbnZWYXJpYWJsZU5hbWUoc2NyaXB0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHNjcmlwdE5hbWUsXG4gICAgcmVwbGFjZXI6ICdfJyxcbiAgICBzZWFyY2hWYWx1ZTogTk9OX0FMUEhBTlVNRVJJQ19SRUdfRVhQXG4gIH0pLnRvVXBwZXJDYXNlKCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQkEsb0JBQTJCO0FBQzNCLHFCQUEyQjtBQUMzQiwwQkFBb0I7QUFNcEIsTUFBTSxhQUFrQyxvQkFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLE1BQU0sS0FBSyxDQUFDO0FBTTNFLE1BQU0sZ0JBQWdCO0FBS3RCLE1BQU0sMkJBQTJCO0FBS2pDLE1BQU0sK0JBQStCO0FBUTlCLFNBQVMsdUJBQTZCO0FBQzNDLFFBQU0sZ0NBQWdDLGlDQUFpQztBQUN2RSxNQUFJLGtDQUFrQyxNQUFNO0FBQzFDO0FBQUEsRUFDRjtBQUVBLHNCQUFBQSxRQUFRLE9BQU8sTUFBTSxZQUFZLDZCQUE2QjtBQUFBLENBQWE7QUFDM0Usc0JBQUFBLFFBQVEsS0FBSyxDQUFDO0FBQ2hCO0FBV08sU0FBUyxtQ0FBa0Q7QUFDaEUsc0JBQW9CO0FBQ3BCLFFBQU0sYUFBYSxvQkFBQUEsUUFBUSxJQUFJLDRCQUE0QjtBQUMzRCxNQUFJLENBQUMsWUFBWTtBQUNmLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxrQkFBa0Isa0JBQWtCLFVBQVU7QUFDcEQsU0FBTyxpQkFBaUIsZUFBZSxJQUFJLGtCQUFrQjtBQUMvRDtBQVNPLFNBQVMsaUJBQWlCLGlCQUFrQztBQUNqRSxTQUFPLFdBQVcsS0FBSyxvQkFBQUEsUUFBUSxJQUFJLGVBQWUsS0FBSyxJQUFJLEtBQUssRUFBRSxZQUFZLENBQUM7QUFDakY7QUFNTyxTQUFTLHNCQUE0QjtBQUMxQyxVQUFJLDJCQUFXLGFBQWEsR0FBRztBQUM3Qix3QkFBQUEsUUFBUSxZQUFZLGFBQWE7QUFBQSxFQUNuQztBQUNGO0FBUUEsU0FBUyxrQkFBa0IsWUFBNEI7QUFDckQsYUFBTywwQkFBVztBQUFBLElBQ2hCLFNBQVM7QUFBQSxJQUNULFVBQVU7QUFBQSxJQUNWLGFBQWE7QUFBQSxFQUNmLENBQUMsRUFBRSxZQUFZO0FBQ2pCOyIsIm5hbWVzIjpbInByb2Nlc3MiXX0=
|
|
@@ -17,6 +17,13 @@
|
|
|
17
17
|
* This mirrors the pre-existing `NANO_STAGED=0` / `HUSKY=0` escape hatches, and reuses their notion of an
|
|
18
18
|
* "off" value, so there is a single answer to what counts as off across the whole tool set.
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Exits the process successfully, before any work, when the npm script currently running has been switched
|
|
22
|
+
* off: it writes `Skipped (<VAR> is off).` and calls `process.exit(0)`.
|
|
23
|
+
*
|
|
24
|
+
* Call it first in a script entry point that does not go through `wrapCliTask`, which already calls it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function exitIfScriptDisabled(): void;
|
|
20
27
|
/**
|
|
21
28
|
* Resolves the off switch for the npm script that is currently running, loading {@link ENV_FILE_PATH} first.
|
|
22
29
|
*
|
package/dist/lib/cjs/git.cjs
CHANGED
|
@@ -23,9 +23,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
23
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
24
|
var git_exports = {};
|
|
25
25
|
__export(git_exports, {
|
|
26
|
-
getNonIgnoredFiles: () => getNonIgnoredFiles
|
|
26
|
+
getNonIgnoredFiles: () => getNonIgnoredFiles,
|
|
27
|
+
readIndexContent: () => readIndexContent
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(git_exports);
|
|
30
|
+
var import_node_buffer = require('node:buffer');
|
|
31
|
+
var import_node_child_process = require('node:child_process');
|
|
29
32
|
var import_root = require('./root.cjs');
|
|
30
33
|
const NUL_SEPARATOR = "\0";
|
|
31
34
|
async function getNonIgnoredFiles(options) {
|
|
@@ -47,8 +50,44 @@ async function getNonIgnoredFiles(options) {
|
|
|
47
50
|
}
|
|
48
51
|
return [...new Set(stdout.split(NUL_SEPARATOR).filter((path) => path !== ""))];
|
|
49
52
|
}
|
|
53
|
+
function readIndexContent(root, repoRelativePath) {
|
|
54
|
+
return new Promise((resolve, reject) => {
|
|
55
|
+
const child = (0, import_node_child_process.spawn)("git", ["-C", root, "cat-file", "blob", `:./${repoRelativePath}`], {
|
|
56
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
57
|
+
windowsHide: true
|
|
58
|
+
});
|
|
59
|
+
const chunks = [];
|
|
60
|
+
let stderr = "";
|
|
61
|
+
child.stdout.on("data", (chunk) => {
|
|
62
|
+
chunks.push(chunk);
|
|
63
|
+
});
|
|
64
|
+
child.stderr.on("data", (chunk) => {
|
|
65
|
+
stderr += chunk.toString("utf-8");
|
|
66
|
+
});
|
|
67
|
+
child.on("error", (error) => {
|
|
68
|
+
reject(new Error(`Could not run \`git cat-file\` for ${repoRelativePath}.`, { cause: error }));
|
|
69
|
+
});
|
|
70
|
+
child.on("close", (exitCode) => {
|
|
71
|
+
if (exitCode === 0) {
|
|
72
|
+
resolve(import_node_buffer.Buffer.concat(chunks));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (isMissingIndexPath(stderr)) {
|
|
76
|
+
resolve(null);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const exitCodeText = exitCode === null ? "(null)" : String(exitCode);
|
|
80
|
+
reject(new Error(`\`git cat-file blob :./${repoRelativePath}\` failed with exit code ${exitCodeText}:
|
|
81
|
+
${stderr.trim()}`));
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function isMissingIndexPath(stderr) {
|
|
86
|
+
return stderr.includes("does not exist") || stderr.includes("not in the index") || stderr.includes("Not a valid object name");
|
|
87
|
+
}
|
|
50
88
|
// Annotate the CommonJS export names for ESM import in node:
|
|
51
89
|
0 && (module.exports = {
|
|
52
|
-
getNonIgnoredFiles
|
|
90
|
+
getNonIgnoredFiles,
|
|
91
|
+
readIndexContent
|
|
53
92
|
});
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldE5vbklnbm9yZWRGaWxlc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXQgcGF0aHNwZWNzIGxpbWl0aW5nIHRoZSBsaXN0aW5nLCBlLmcuIGBbJyoubWQnXWAuIFdoZW4gb21pdHRlZCwgZXZlcnkgbm9uLWlnbm9yZWQgZmlsZSBpcyBsaXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm5zPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2VwYXJhdGVzIHRoZSBwYXRocyBpbiBgZ2l0IGxzLWZpbGVzIC16YCBvdXRwdXQuIFVzaW5nIHRoZSBOVUwgZm9ybSBhdm9pZHMgZ2l0J3MgcXVvdGluZyBvZiBwYXRocyB0aGF0XG4gKiBjb250YWluIHVudXN1YWwgY2hhcmFjdGVycywgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmUgdW5lc2NhcGVkLlxuICovXG5jb25zdCBOVUxfU0VQQVJBVE9SID0gJ1xcMCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIHJlcG9zaXRvcnkgZmlsZXMgdGhhdCBgLmdpdGlnbm9yZWAgZG9lcyBub3QgZXhjbHVkZS5cbiAqXG4gKiBDb3ZlcnMgYm90aCB0cmFja2VkIGZpbGVzIGFuZCB1bnRyYWNrZWQtYnV0LW5vdC1pZ25vcmVkIG9uZXMsIHNvIGEgYnJhbmQtbmV3IGZpbGUgaXMgY2hlY2tlZCBiZWZvcmUgaXQgaXNcbiAqIGV2ZXIgY29tbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbWF0Y2hpbmcgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHNlcGFyYXRlZCBieSBgL2A7IG9yIHdpdGggYG51bGxgIHdoZW4gZ2l0IGNhbm5vdCBhbnN3ZXIgXHUyMDE0IGl0IGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBwcm9qZWN0IGlzIG5vdCBhXG4gKiBnaXQgcmVwb3NpdG9yeSAoYSB0YXJiYWxsIGNoZWNrb3V0LCBmb3IgaW5zdGFuY2UpLiBDYWxsZXJzIGZhbGwgYmFjayB0byB0aGVpciBvd24gbGlzdGluZyBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROb25JZ25vcmVkRmlsZXMob3B0aW9ucz86IEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmdbXT4ge1xuICBjb25zdCB7IHBhdHRlcm5zID0gW10gfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgJ2dpdCcsXG4gICAgJ2xzLWZpbGVzJyxcbiAgICAnLS1jYWNoZWQnLFxuICAgICctLW90aGVycycsXG4gICAgJy0tZXhjbHVkZS1zdGFuZGFyZCcsXG4gICAgJy16JyxcbiAgICAuLi5wYXR0ZXJucy5sZW5ndGggPiAwID8gWyctLScsIC4uLnBhdHRlcm5zXSA6IFtdXG4gIF07XG5cbiAgbGV0IHN0ZG91dDogc3RyaW5nO1xuICB0cnkge1xuICAgIHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdChjb21tYW5kLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYC0tY2FjaGVkIC0tb3RoZXJzYCBjYW4gbmFtZSB0aGUgc2FtZSBwYXRoIHR3aWNlIChlLmcuIGEgZmlsZSBzdGFnZWQgZm9yIGRlbGV0aW9uIHRoYXQgaXMgc3RpbGwgb24gZGlzaykuXG4gIHJldHVybiBbLi4ubmV3IFNldChzdGRvdXQuc3BsaXQoTlVMX1NFUEFSQVRPUikuZmlsdGVyKChwYXRoKSA9PiBwYXRoICE9PSAnJykpXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWNBLGtCQUE2QjtBQWtCN0IsTUFBTSxnQkFBZ0I7QUFhdEIsZUFBc0IsbUJBQW1CLFNBQStEO0FBQ3RHLFFBQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQztBQUN0QyxRQUFNLFVBQVU7QUFBQSxJQUNkO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUcsU0FBUyxTQUFTLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxJQUFJLENBQUM7QUFBQSxFQUNsRDtBQUVBLE1BQUk7QUFDSixNQUFJO0FBQ0YsYUFBUyxVQUFNLDBCQUFhLFNBQVMsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUFBLEVBQ3hELFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUdBLFNBQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxPQUFPLE1BQU0sYUFBYSxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDL0U7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICpcbiAqIEl0IGFsc28gcmVhZHMgYSB0cmFja2VkIGZpbGUgYXMgaXQgaXMgYWJvdXQgdG8gYmUgQ09NTUlUVEVEICh7QGxpbmsgcmVhZEluZGV4Q29udGVudH0pLCBmb3IgYSBnYXRlIHRoYXRcbiAqIGFzc2VydHMgc29tZXRoaW5nIGFib3V0IHRob3NlIGJ5dGVzLiBTdWNoIGEgZ2F0ZSB0eXBpY2FsbHkgcnVucyBmcm9tIGBuYW5vLXN0YWdlZGAgYmVzaWRlIGBsaW50OmZpeGAgYW5kXG4gKiBgZm9ybWF0YCwgd2hpY2ggcmV3cml0ZSBzdGFnZWQgZmlsZXMgaW4gcGxhY2UsIGFuZCBuYW5vLXN0YWdlZCBydW5zIGl0cyBwZXItcGF0dGVybiB0YXNrIGdyb3VwcyB3aXRoXG4gKiBgUHJvbWlzZS5hbGxgLCBzbyBhIGdhdGUgcmVhZGluZyB0aGUgd29ya2luZyB0cmVlIHJhY2VzIHRoZSBmaXhlci4gUmVhZGluZyB0aGUgaW5kZXggbWFrZXMgdGhlIG9yZGVyaW5nXG4gKiBpcnJlbGV2YW50IHJhdGhlciB0aGFuIGVuZm9yY2VkLlxuICovXG5cbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ25vZGU6YnVmZmVyJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZ2V0Tm9uSWdub3JlZEZpbGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdpdCBwYXRoc3BlY3MgbGltaXRpbmcgdGhlIGxpc3RpbmcsIGUuZy4gYFsnKi5tZCddYC4gV2hlbiBvbWl0dGVkLCBldmVyeSBub24taWdub3JlZCBmaWxlIGlzIGxpc3RlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYFtdYFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0dGVybnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBTZXBhcmF0ZXMgdGhlIHBhdGhzIGluIGBnaXQgbHMtZmlsZXMgLXpgIG91dHB1dC4gVXNpbmcgdGhlIE5VTCBmb3JtIGF2b2lkcyBnaXQncyBxdW90aW5nIG9mIHBhdGhzIHRoYXRcbiAqIGNvbnRhaW4gdW51c3VhbCBjaGFyYWN0ZXJzLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBiZSB1bmVzY2FwZWQuXG4gKi9cbmNvbnN0IE5VTF9TRVBBUkFUT1IgPSAnXFwwJztcblxuLyoqXG4gKiBMaXN0cyB0aGUgcmVwb3NpdG9yeSBmaWxlcyB0aGF0IGAuZ2l0aWdub3JlYCBkb2VzIG5vdCBleGNsdWRlLlxuICpcbiAqIENvdmVycyBib3RoIHRyYWNrZWQgZmlsZXMgYW5kIHVudHJhY2tlZC1idXQtbm90LWlnbm9yZWQgb25lcywgc28gYSBicmFuZC1uZXcgZmlsZSBpcyBjaGVja2VkIGJlZm9yZSBpdCBpc1xuICogZXZlciBjb21taXR0ZWQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBtYXRjaGluZyBwYXRocywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyIGFuZFxuICogc2VwYXJhdGVkIGJ5IGAvYDsgb3Igd2l0aCBgbnVsbGAgd2hlbiBnaXQgY2Fubm90IGFuc3dlciBcdTIwMTQgaXQgaXMgbm90IGluc3RhbGxlZCwgb3IgdGhlIHByb2plY3QgaXMgbm90IGFcbiAqIGdpdCByZXBvc2l0b3J5IChhIHRhcmJhbGwgY2hlY2tvdXQsIGZvciBpbnN0YW5jZSkuIENhbGxlcnMgZmFsbCBiYWNrIHRvIHRoZWlyIG93biBsaXN0aW5nIGluIHRoYXQgY2FzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE5vbklnbm9yZWRGaWxlcyhvcHRpb25zPzogR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyk6IFByb21pc2U8bnVsbCB8IHN0cmluZ1tdPiB7XG4gIGNvbnN0IHsgcGF0dGVybnMgPSBbXSB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3QgY29tbWFuZCA9IFtcbiAgICAnZ2l0JyxcbiAgICAnbHMtZmlsZXMnLFxuICAgICctLWNhY2hlZCcsXG4gICAgJy0tb3RoZXJzJyxcbiAgICAnLS1leGNsdWRlLXN0YW5kYXJkJyxcbiAgICAnLXonLFxuICAgIC4uLnBhdHRlcm5zLmxlbmd0aCA+IDAgPyBbJy0tJywgLi4ucGF0dGVybnNdIDogW11cbiAgXTtcblxuICBsZXQgc3Rkb3V0OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgc3Rkb3V0ID0gYXdhaXQgZXhlY0Zyb21Sb290KGNvbW1hbmQsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBgLS1jYWNoZWQgLS1vdGhlcnNgIGNhbiBuYW1lIHRoZSBzYW1lIHBhdGggdHdpY2UgKGUuZy4gYSBmaWxlIHN0YWdlZCBmb3IgZGVsZXRpb24gdGhhdCBpcyBzdGlsbCBvbiBkaXNrKS5cbiAgcmV0dXJuIFsuLi5uZXcgU2V0KHN0ZG91dC5zcGxpdChOVUxfU0VQQVJBVE9SKS5maWx0ZXIoKHBhdGgpID0+IHBhdGggIT09ICcnKSldO1xufVxuXG4vKipcbiAqIFJlYWRzIG9uZSB0cmFja2VkIGZpbGUncyBjb250ZW50IG91dCBvZiB0aGUgZ2l0IGluZGV4IC0gc3RhZ2UgMCwgdGhlIGJ5dGVzIGBnaXQgY29tbWl0YCB3b3VsZCB3cml0ZS5cbiAqXG4gKiBUaGlzIHNwYXducyBgZ2l0YCBkaXJlY3RseSByYXRoZXIgdGhhbiBnb2luZyB0aHJvdWdoIGBleGVjRnJvbVJvb3RgLCBmb3IgdHdvIHJlYXNvbnMsIGVpdGhlciBvZiB3aGljaCBhbG9uZVxuICogd291bGQgYmUgZW5vdWdoOiBgZXhlY0Zyb21Sb290YCBkZWNvZGVzIHN0ZG91dCBhcyBVVEYtOCwgd2hpY2ggYSBiaW5hcnkgYmxvYiBkb2VzIG5vdCBzdXJ2aXZlLCBhbmQgaXQgc3RyaXBzXG4gKiBvbmUgdHJhaWxpbmcgbmV3bGluZSwgc28gZXZlcnkgdGV4dCBmaWxlIHdvdWxkIHJlYWQgYXMgZGlmZmVyaW5nIGZyb20gaXRzIHNvdXJjZSBieSBpdHMgbGFzdCBsaW5lLlxuICpcbiAqIFRoZSBwYXRoIGlzIHBhc3NlZCBpbiB0aGUgYDouLzxwYXRoPmAgZm9ybSwgd2hpY2ggZ2l0IHJlc29sdmVzIGFnYWluc3QgdGhlIGRpcmVjdG9yeSBpdCBydW5zIGZyb20gcmF0aGVyXG4gKiB0aGFuIGFnYWluc3QgdGhlIHRvcCBvZiB0aGUgd29ya2luZyB0cmVlLCBzbyB0aGlzIHN0YXlzIGNvcnJlY3Qgd2hlbiBgcm9vdGAgaXMgYSBzdWJwYWNrYWdlIG9mIHRoZVxuICogcmVwb3NpdG9yeSByYXRoZXIgdGhhbiBpdHMgdG9wLlxuICpcbiAqIE5vIHNtdWRnZSBmaWx0ZXIgb3IgbGluZS1lbmRpbmcgY29udmVyc2lvbiBpcyBhcHBsaWVkOiBgZ2l0IGNhdC1maWxlIGJsb2JgIGhhbmRzIHRoZSBibG9iIGJhY2sgdmVyYmF0aW0uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgZGlyZWN0b3J5IHRoZSBwYXRoIGlzIHJlbGF0aXZlIHRvLCB3aGljaCBpcyBhbHNvIHRoZSBkaXJlY3RvcnkgZ2l0IGlzIHJ1biBmcm9tLlxuICogQHBhcmFtIHJlcG9SZWxhdGl2ZVBhdGggLSBUaGUgZmlsZSdzIHBhdGggcmVsYXRpdmUgdG8gYHJvb3RgLCBwb3NpeC1zcGVsbGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzdGFnZWQgYnl0ZXMsIG9yIHdpdGggYG51bGxgIHdoZW4gdGhlIHBhdGggaGFzIG5vIHN0YWdlLTBcbiAqIGluZGV4IGVudHJ5IC0gaXQgaXMgdW50cmFja2VkLCBzdGFnZWQgZm9yIGRlbGV0aW9uLCBvciB1bm1lcmdlZC4gSXQgcmVqZWN0cyBvbiBhbnkgb3RoZXIgZ2l0IGZhaWx1cmUsIGBub3QgYVxuICogZ2l0IHJlcG9zaXRvcnlgIGFtb25nIHRoZW0sIGJlY2F1c2UgdGhlIGJ5dGVzIGEgY29tbWl0IHdvdWxkIHdyaXRlIGhhdmUgbm8gaG9uZXN0IGFuc3dlciB3aGVyZSB0aGVyZSBhcmUgbm9cbiAqIGNvbW1pdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkSW5kZXhDb250ZW50KHJvb3Q6IHN0cmluZywgcmVwb1JlbGF0aXZlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLypcbiAgICAgKiBObyBzaGVsbDogYSBwYXRoIGlzIHBhc3NlZCBhcyBhbiBhcmd2IGVudHJ5IHJhdGhlciB0aGFuIGFzIHRleHQgc29tZXRoaW5nIGhhcyB0byBxdW90ZSwgYW5kIHRoZVxuICAgICAqIGxlYWRpbmcgYDpgIGlzIGEgZ2l0IHJldmlzaW9uIHNpZ2lsIHRoYXQgYSBzaGVsbCB3b3VsZCBiZSBmcmVlIHRvIHJlYWQgYXMgaXRzIG93bi5cbiAgICAgKi9cbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKCdnaXQnLCBbJy1DJywgcm9vdCwgJ2NhdC1maWxlJywgJ2Jsb2InLCBgOi4vJHtyZXBvUmVsYXRpdmVQYXRofWBdLCB7XG4gICAgICBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdwaXBlJ10sXG4gICAgICB3aW5kb3dzSGlkZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3QgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICAgIGxldCBzdGRlcnIgPSAnJztcblxuICAgIGNoaWxkLnN0ZG91dC5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgc3RkZXJyICs9IGNodW5rLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Vycm9yJywgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ291bGQgbm90IHJ1biBcXGBnaXQgY2F0LWZpbGVcXGAgZm9yICR7cmVwb1JlbGF0aXZlUGF0aH0uYCwgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Nsb3NlJywgKGV4aXRDb2RlOiBudWxsIHwgbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoZXhpdENvZGUgPT09IDApIHtcbiAgICAgICAgcmVzb2x2ZShCdWZmZXIuY29uY2F0KGNodW5rcykpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8qXG4gICAgICAgKiBHaXQgYW5zd2VycyBhIHBhdGggaXQgY2Fubm90IGZpbmQgaW4gdGhlIGluZGV4IHdpdGggZXhpdCAxMjggYW5kIGEgYGZhdGFsOmAgbGluZSwgYW5kIHNvIGRvZXMgYSBmb2xkZXJcbiAgICAgICAqIHRoYXQgaXMgbm90IGEgcmVwb3NpdG9yeSwgc28gdGhlIHN0ZGVyciB0ZXh0IGlzIHdoYXQgc2VwYXJhdGVzIHRoZSBhYnNlbmNlIG9mIGEgc3RhZ2VkIGJsb2IgZnJvbVxuICAgICAgICogZXZlcnl0aGluZyBlbHNlLlxuICAgICAgICovXG4gICAgICBpZiAoaXNNaXNzaW5nSW5kZXhQYXRoKHN0ZGVycikpIHtcbiAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBleGl0Q29kZVRleHQgPSBleGl0Q29kZSA9PT0gbnVsbCA/ICcobnVsbCknIDogU3RyaW5nKGV4aXRDb2RlKTtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoYFxcYGdpdCBjYXQtZmlsZSBibG9iIDouLyR7cmVwb1JlbGF0aXZlUGF0aH1cXGAgZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7ZXhpdENvZGVUZXh0fTpcXG4ke3N0ZGVyci50cmltKCl9YCkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNNaXNzaW5nSW5kZXhQYXRoKHN0ZGVycjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGRlcnIuaW5jbHVkZXMoJ2RvZXMgbm90IGV4aXN0JykgfHwgc3RkZXJyLmluY2x1ZGVzKCdub3QgaW4gdGhlIGluZGV4JykgfHwgc3RkZXJyLmluY2x1ZGVzKCdOb3QgYSB2YWxpZCBvYmplY3QgbmFtZScpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFvQkEseUJBQXVCO0FBQ3ZCLGdDQUFzQjtBQUV0QixrQkFBNkI7QUFrQjdCLE1BQU0sZ0JBQWdCO0FBYXRCLGVBQXNCLG1CQUFtQixTQUErRDtBQUN0RyxRQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7QUFDdEMsUUFBTSxVQUFVO0FBQUEsSUFDZDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLFNBQVMsU0FBUyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDbEQ7QUFFQSxNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsVUFBTSwwQkFBYSxTQUFTLEVBQUUsU0FBUyxLQUFLLENBQUM7QUFBQSxFQUN4RCxRQUFRO0FBQ04sV0FBTztBQUFBLEVBQ1Q7QUFHQSxTQUFPLENBQUMsR0FBRyxJQUFJLElBQUksT0FBTyxNQUFNLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQy9FO0FBc0JPLFNBQVMsaUJBQWlCLE1BQWMsa0JBQWtEO0FBQy9GLFNBQU8sSUFBSSxRQUFRLENBQUMsU0FBUyxXQUFXO0FBS3RDLFVBQU0sWUFBUSxpQ0FBTSxPQUFPLENBQUMsTUFBTSxNQUFNLFlBQVksUUFBUSxNQUFNLGdCQUFnQixFQUFFLEdBQUc7QUFBQSxNQUNyRixPQUFPLENBQUMsVUFBVSxRQUFRLE1BQU07QUFBQSxNQUNoQyxhQUFhO0FBQUEsSUFDZixDQUFDO0FBRUQsVUFBTSxTQUFtQixDQUFDO0FBQzFCLFFBQUksU0FBUztBQUViLFVBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFrQjtBQUN6QyxhQUFPLEtBQUssS0FBSztBQUFBLElBQ25CLENBQUM7QUFFRCxVQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBa0I7QUFDekMsZ0JBQVUsTUFBTSxTQUFTLE9BQU87QUFBQSxJQUNsQyxDQUFDO0FBRUQsVUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFpQjtBQUNsQyxhQUFPLElBQUksTUFBTSxzQ0FBc0MsZ0JBQWdCLEtBQUssRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQUEsSUFDL0YsQ0FBQztBQUVELFVBQU0sR0FBRyxTQUFTLENBQUMsYUFBNEI7QUFDN0MsVUFBSSxhQUFhLEdBQUc7QUFDbEIsZ0JBQVEsMEJBQU8sT0FBTyxNQUFNLENBQUM7QUFDN0I7QUFBQSxNQUNGO0FBT0EsVUFBSSxtQkFBbUIsTUFBTSxHQUFHO0FBQzlCLGdCQUFRLElBQUk7QUFDWjtBQUFBLE1BQ0Y7QUFFQSxZQUFNLGVBQWUsYUFBYSxPQUFPLFdBQVcsT0FBTyxRQUFRO0FBQ25FLGFBQU8sSUFBSSxNQUFNLDBCQUEwQixnQkFBZ0IsNEJBQTRCLFlBQVk7QUFBQSxFQUFNLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUFBLElBQzNILENBQUM7QUFBQSxFQUNILENBQUM7QUFDSDtBQUVBLFNBQVMsbUJBQW1CLFFBQXlCO0FBQ25ELFNBQU8sT0FBTyxTQUFTLGdCQUFnQixLQUFLLE9BQU8sU0FBUyxrQkFBa0IsS0FBSyxPQUFPLFNBQVMseUJBQXlCO0FBQzlIOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/lib/cjs/git.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference path="./library-references.d.cts" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
/**
|
|
3
4
|
* @file
|
|
4
5
|
*
|
|
@@ -11,7 +12,14 @@
|
|
|
11
12
|
*
|
|
12
13
|
* Asking git rather than parsing `.gitignore` is deliberate: it honors nested ignore files, `!` negations,
|
|
13
14
|
* `.git/info/exclude`, and the user's global excludes, at no cost to us.
|
|
15
|
+
*
|
|
16
|
+
* It also reads a tracked file as it is about to be COMMITTED ({@link readIndexContent}), for a gate that
|
|
17
|
+
* asserts something about those bytes. Such a gate typically runs from `nano-staged` beside `lint:fix` and
|
|
18
|
+
* `format`, which rewrite staged files in place, and nano-staged runs its per-pattern task groups with
|
|
19
|
+
* `Promise.all`, so a gate reading the working tree races the fixer. Reading the index makes the ordering
|
|
20
|
+
* irrelevant rather than enforced.
|
|
14
21
|
*/
|
|
22
|
+
import { Buffer } from 'node:buffer';
|
|
15
23
|
/**
|
|
16
24
|
* Options for {@link getNonIgnoredFiles}.
|
|
17
25
|
*/
|
|
@@ -35,3 +43,24 @@ export interface GetNonIgnoredFilesOptions {
|
|
|
35
43
|
* git repository (a tarball checkout, for instance). Callers fall back to their own listing in that case.
|
|
36
44
|
*/
|
|
37
45
|
export declare function getNonIgnoredFiles(options?: GetNonIgnoredFilesOptions): Promise<null | string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Reads one tracked file's content out of the git index - stage 0, the bytes `git commit` would write.
|
|
48
|
+
*
|
|
49
|
+
* This spawns `git` directly rather than going through `execFromRoot`, for two reasons, either of which alone
|
|
50
|
+
* would be enough: `execFromRoot` decodes stdout as UTF-8, which a binary blob does not survive, and it strips
|
|
51
|
+
* one trailing newline, so every text file would read as differing from its source by its last line.
|
|
52
|
+
*
|
|
53
|
+
* The path is passed in the `:./<path>` form, which git resolves against the directory it runs from rather
|
|
54
|
+
* than against the top of the working tree, so this stays correct when `root` is a subpackage of the
|
|
55
|
+
* repository rather than its top.
|
|
56
|
+
*
|
|
57
|
+
* No smudge filter or line-ending conversion is applied: `git cat-file blob` hands the blob back verbatim.
|
|
58
|
+
*
|
|
59
|
+
* @param root - The directory the path is relative to, which is also the directory git is run from.
|
|
60
|
+
* @param repoRelativePath - The file's path relative to `root`, posix-spelled.
|
|
61
|
+
* @returns A {@link Promise} that resolves with the staged bytes, or with `null` when the path has no stage-0
|
|
62
|
+
* index entry - it is untracked, staged for deletion, or unmerged. It rejects on any other git failure, `not a
|
|
63
|
+
* git repository` among them, because the bytes a commit would write have no honest answer where there are no
|
|
64
|
+
* commits.
|
|
65
|
+
*/
|
|
66
|
+
export declare function readIndexContent(root: string, repoRelativePath: string): Promise<Buffer | null>;
|
|
@@ -71,7 +71,7 @@ var import_repo_paths = require('../repo-paths.cjs');
|
|
|
71
71
|
var import_root = require('../root.cjs');
|
|
72
72
|
var import_markdownlint_ignores = require('./markdownlint-ignores.cjs');
|
|
73
73
|
async function lint(options) {
|
|
74
|
-
const { defaultConfigFilePath, paths, shouldFix = false } = options ?? {};
|
|
74
|
+
const { defaultConfigFilePath, linkCheckExcludeGlobs = [], paths, shouldFix = false } = options ?? {};
|
|
75
75
|
const configFiles = [
|
|
76
76
|
import_repo_paths.RepoPaths.MarkdownlintCli2ConfigJsonc,
|
|
77
77
|
import_repo_paths.RepoPaths.MarkdownlintCli2ConfigYaml,
|
|
@@ -96,6 +96,10 @@ async function lint(options) {
|
|
|
96
96
|
await (0, import_root.execFromRoot)([...(0, import_package_manager.resolveToolCommand)({ tool: "markdownlint-cli2" }), ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
|
|
97
97
|
const rootFolder = (0, import_root.getRootFolder)() ?? process.cwd();
|
|
98
98
|
const mdFiles = paths?.length ? paths.map((p) => (0, import_node_path.relative)(rootFolder, p).replaceAll("\\", "/") || p) : await getMarkdownFiles();
|
|
99
|
+
const linkCheckFiles = mdFiles.filter((mdFile) => linkCheckExcludeGlobs.every((excludeGlob) => !(0, import_node_path.matchesGlob)(mdFile, excludeGlob)));
|
|
100
|
+
if (linkCheckFiles.length === 0) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
99
103
|
await (0, import_root.execFromRoot)([
|
|
100
104
|
...(0, import_package_manager.resolveToolCommand)({ tool: "linkinator" }),
|
|
101
105
|
"--retry",
|
|
@@ -108,7 +112,7 @@ async function lint(options) {
|
|
|
108
112
|
String.raw`https://www\.npmjs\.com/package/`,
|
|
109
113
|
"--url-rewrite-replace",
|
|
110
114
|
"https://registry.npmjs.org/",
|
|
111
|
-
{ batchedArguments:
|
|
115
|
+
{ batchedArguments: linkCheckFiles }
|
|
112
116
|
]);
|
|
113
117
|
}
|
|
114
118
|
const MARKDOWN_PATHSPEC = "*.md";
|
|
@@ -126,4 +130,4 @@ async function getMarkdownFiles() {
|
|
|
126
130
|
0 && (module.exports = {
|
|
127
131
|
lint
|
|
128
132
|
});
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7IGdldE5vbklnbm9yZWRGaWxlcyB9IGZyb20gJy4uL2dpdC50cyc7XG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHtcbiAgY2hlY2tJc0luTm9kZU1vZHVsZXMsXG4gIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxufSBmcm9tICcuL21hcmtkb3dubGludC1pZ25vcmVzLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gV2l0aG91dCBpdCxcbiAgICogYG1hcmtkb3dubGludC1jbGkyYCBydW5zIHdpdGggaXRzIG93biBkZWZhdWx0cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgc2hvdWxkRml4ID0gZmFsc2UgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdZYW1sLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdKc29uYyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbixcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWW1sLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdDanMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ01qc1xuICBdO1xuXG4gIGNvbnN0IGRvZXNDb25maWdGaWxlRXhpc3QgPSBjb25maWdGaWxlcy5zb21lKChjb25maWdGaWxlKSA9PiB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGNvbmZpZ0ZpbGUgfSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWRvZXNDb25maWdGaWxlRXhpc3QgJiYgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ21hcmtkb3dubGludDpsaW50JykoJ21hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZy4uLicpO1xuICAgIGF3YWl0IGNwKGRlZmF1bHRDb25maWdGaWxlUGF0aCwgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBiYXNlbmFtZShkZWZhdWx0Q29uZmlnRmlsZVBhdGgpIH0pKTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgcGF0aHMtcHJvdmlkZWQgYnJhbmNoZXMgYXJlIG9ubHkgZXhlcmNpc2VkIGJ5IGNvbnN1bWVyIHByb2plY3RzIHBhc3NpbmcgZmlsZSBsaXN0cy4gKi9cbiAgY29uc3QgdGFyZ2V0cyA9IHBhdGhzPy5sZW5ndGggPyBwYXRocyA6IFtSZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbLi4ucmVzb2x2ZVRvb2xDb21tYW5kKHsgdG9vbDogJ21hcmtkb3dubGludC1jbGkyJyB9KSwgLi4uKHNob3VsZEZpeCA/IFsnLS1maXgnXSA6IFtdKSwgeyBiYXRjaGVkQXJndW1lbnRzOiB0YXJnZXRzIH1dKTtcblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaCBpcyBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHJvb3RGb2xkZXIgPSBnZXRSb290Rm9sZGVyKCkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgbWRGaWxlcyA9IHBhdGhzPy5sZW5ndGhcbiAgICA/IHBhdGhzLm1hcCgocCkgPT4gcmVsYXRpdmUocm9vdEZvbGRlciwgcCkucmVwbGFjZUFsbCgnXFxcXCcsICcvJykgfHwgcClcbiAgICA6IGF3YWl0IGdldE1hcmtkb3duRmlsZXMoKTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAnbGlua2luYXRvcicgfSksXG4gICAgJy0tcmV0cnknLFxuICAgICctLXJldHJ5LWVycm9ycycsXG4gICAgJy0tcmV0cnktZXJyb3JzLWNvdW50JyxcbiAgICAnMycsXG4gICAgJy0tcmV0cnktZXJyb3JzLWppdHRlcicsXG4gICAgJzUnLFxuICAgICctLXVybC1yZXdyaXRlLXNlYXJjaCcsXG4gICAgU3RyaW5nLnJhd2BodHRwczovL3d3d1xcLm5wbWpzXFwuY29tL3BhY2thZ2UvYCxcbiAgICAnLS11cmwtcmV3cml0ZS1yZXBsYWNlJyxcbiAgICAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJyxcbiAgICB7IGJhdGNoZWRBcmd1bWVudHM6IG1kRmlsZXMgfVxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2l0IHBhdGhzcGVjIG1hdGNoaW5nIGV2ZXJ5IG1hcmtkb3duIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnksIGF0IGFueSBkZXB0aC5cbiAqL1xuY29uc3QgTUFSS0RPV05fUEFUSFNQRUMgPSAnKi5tZCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIG1hcmtkb3duIGZpbGVzIHRvIGhhbmQgdG8gYGxpbmtpbmF0b3JgLlxuICpcbiAqIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCByYXRoZXIgdGhhbiBhbiBpZ25vcmUgY29uZmlndXJhdGlvbiwgc28gdGhlIGdpdGlnbm9yZWQgZmlsZXMgaGF2ZSB0byBiZVxuICogZHJvcHBlZCBiZWZvcmUgaXQgaXMgaW52b2tlZC4gR2l0IGl0c2VsZiBhbnN3ZXJzIHRoYXQgKG5lc3RlZCBpZ25vcmUgZmlsZXMsIGAhYCBuZWdhdGlvbnMgYW5kIGFsbCk7IHRoZVxuICogaGFuZC1tYWludGFpbmVkIGdsb2IgZXhjbHVzaW9ucyBiZWxvdyBhcmUgb25seSB0aGUgZmFsbGJhY2sgZm9yIGEgY2hlY2tvdXQgd2l0aG91dCBnaXQsIGFuZCB0aGV5IGFyZSB0aGVcbiAqIHZlcnkgbGlzdHMgdGhpcyBpbmRpcmVjdGlvbiBleGlzdHMgdG8gc3RvcCBmcm9tIGRyaWZ0aW5nLlxuICpcbiAqIFRoZSBgbm9kZV9tb2R1bGVzYCBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUgZ2l0LWRlcml2ZWQgbGlzdCB0b28sIGFuZCBkZWxpYmVyYXRlbHkgc286IGdpdCBvbmx5IHNraXBzXG4gKiB3aGF0IHRoZSByZXBvc2l0b3J5IGFza2VkIGl0IHRvIHNraXAsIGFuZCBhIHJlcG9zaXRvcnkgY2FuIGRlbGliZXJhdGVseSBUUkFDSyBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgXG4gKiB0cmVlLiBUaGF0IGlzIHRoZSBvbmUgZXhjbHVzaW9uIGAuZ2l0aWdub3JlYCBjYW5ub3QgYW5zd2VyIOKAlCBzZWUgYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC4gQXBwbHlpbmcgaXRcbiAqIGhlcmUga2VlcHMgYGxpbmtpbmF0b3JgIGluIHN0ZXAgd2l0aCB0aGUgbWFya2Rvd25saW50IGhhbGYsIHdoaWNoIGlnbm9yZXMgdGhlIHNhbWUgcGF0aHMgYnkgZ2xvYi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG1hcmtkb3duIGZpbGUgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25GaWxlcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG5vbklnbm9yZWRGaWxlcyA9IGF3YWl0IGdldE5vbklnbm9yZWRGaWxlcyh7IHBhdHRlcm5zOiBbTUFSS0RPV05fUEFUSFNQRUNdIH0pO1xuICByZXR1cm4gbm9uSWdub3JlZEZpbGVzXG4gICAgPyBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpXG4gICAgOiAoYXdhaXQgdG9BcnJheShnbG9iKFsnKiovKi5tZCddLCB7XG4gICAgICBleGNsdWRlOiBbXG4gICAgICAgICcuZ2l0LyoqJyxcbiAgICAgICAgJ2Rpc3QvKionLFxuICAgICAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgICAgIF1cbiAgICB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBd0I7QUFDeEIsbUJBQStCO0FBQy9CLGtCQUF5QjtBQUN6QixxQkFBMkI7QUFDM0Isc0JBR087QUFDUCx1QkFBeUI7QUFFekIsaUJBQW1DO0FBQ25DLDZCQUFtQztBQUNuQyx3QkFBMEI7QUFDMUIsa0JBSU87QUFDUCxrQ0FHTztBQThCUCxlQUFzQixLQUFLLFNBQXNDO0FBQy9ELFFBQU0sRUFBRSx1QkFBdUIsT0FBTyxZQUFZLE1BQU0sSUFBSSxXQUFXLENBQUM7QUFDeEUsUUFBTSxjQUFjO0FBQUEsSUFDbEIsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxJQUNWLDRCQUFVO0FBQUEsSUFDViw0QkFBVTtBQUFBLElBQ1YsNEJBQVU7QUFBQSxFQUNaO0FBRUEsUUFBTSxzQkFBc0IsWUFBWSxLQUFLLENBQUMsZUFBZTtBQUMzRCxVQUFNLHFCQUFpQixxQ0FBd0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRSxlQUFPLDJCQUFXLGNBQWM7QUFBQSxFQUNsQyxDQUFDO0FBRUQsTUFBSSxDQUFDLHVCQUF1Qix1QkFBdUI7QUFDakQscUNBQWUsbUJBQW1CLEVBQUUsdUVBQXVFO0FBQzNHLGNBQU0sb0JBQUcsMkJBQXVCLHFDQUF3QixFQUFFLFVBQU0sc0JBQVMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0FBQUEsRUFDcEc7QUFHQSxRQUFNLFVBQVUsT0FBTyxTQUFTLFFBQVEsQ0FBQyw0QkFBVSxhQUFhO0FBRWhFLFlBQU0sMEJBQWEsQ0FBQyxPQUFHLDJDQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUMsR0FBRyxHQUFJLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFJLEVBQUUsa0JBQWtCLFFBQVEsQ0FBQyxDQUFDO0FBR3pJLFFBQU0saUJBQWEsMkJBQWMsS0FBSyxRQUFRLElBQUk7QUFDbEQsUUFBTSxVQUFVLE9BQU8sU0FDbkIsTUFBTSxJQUFJLENBQUMsVUFBTSwyQkFBUyxZQUFZLENBQUMsRUFBRSxXQUFXLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFDbkUsTUFBTSxpQkFBaUI7QUFFM0IsWUFBTSwwQkFBYTtBQUFBLElBQ2pCLE9BQUcsMkNBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFBQSxJQUM1QztBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsT0FBTztBQUFBLElBQ1A7QUFBQSxJQUNBO0FBQUEsSUFDQSxFQUFFLGtCQUFrQixRQUFRO0FBQUEsRUFDOUIsQ0FBQztBQUNIO0FBS0EsTUFBTSxvQkFBb0I7QUFpQjFCLGVBQWUsbUJBQXNDO0FBQ25ELFFBQU0sa0JBQWtCLFVBQU0sK0JBQW1CLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7QUFDbEYsU0FBTyxrQkFDSCxnQkFBZ0IsT0FBTyxDQUFDLFNBQVMsS0FBQyxrREFBcUIsSUFBSSxDQUFDLElBQzNELFVBQU0sMEJBQVEsc0JBQUssQ0FBQyxTQUFTLEdBQUc7QUFBQSxJQUNqQyxTQUFTO0FBQUEsTUFDUDtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQyxDQUFDO0FBQ047IiwibmFtZXMiOltdfQ==
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBtYXRjaGVzR2xvYixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgZ2V0Tm9uSWdub3JlZEZpbGVzIH0gZnJvbSAnLi4vZ2l0LnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQge1xuICBjaGVja0lzSW5Ob2RlTW9kdWxlcyxcbiAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG59IGZyb20gJy4vbWFya2Rvd25saW50LWlnbm9yZXMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLiBXaXRob3V0IGl0LFxuICAgKiBgbWFya2Rvd25saW50LWNsaTJgIHJ1bnMgd2l0aCBpdHMgb3duIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHbG9icywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCBvZiBtYXJrZG93biBmaWxlcyB0byBsZWF2ZSBvdXQgb2YgdGhlIGBsaW5raW5hdG9yYCBwYXNzIG9ubHk7XG4gICAqIGBtYXJrZG93bmxpbnQtY2xpMmAgc3RpbGwgbGludHMgdGhlbS5cbiAgICpcbiAgICogRm9yIGEgZG9jdW1lbnRhdGlvbiBzaXRlIHdob3NlIHBhZ2VzIGxpbmsgdG8gZWFjaCBvdGhlciBiYXNlLWFic29sdXRlbHkgKGAvPHNpdGUtYmFzZT4vZ3VpZGVzLy4uLmApOiB0aG9zZVxuICAgKiBsaW5rcyByZXNvbHZlIG9ubHkgYWdhaW5zdCB0aGUgQlVJTFQgc2l0ZSwgc28gYGxpbmtpbmF0b3JgIHJlcG9ydHMgZWFjaCBvbmUgYXMgYSA0MDQsIGFuZCB0aGUgc2l0ZSdzIG93blxuICAgKiBidWlsZCBpcyB3aGF0IGNoZWNrcyB0aGVtLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgWydkb2NzLyoqJ11gXG4gICAqL1xuICByZWFkb25seSBsaW5rQ2hlY2tFeGNsdWRlR2xvYnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBsaW5rQ2hlY2tFeGNsdWRlR2xvYnMgPSBbXSwgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0pzb25jLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb24sXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1lhbWwsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1ltbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdNanNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0ICYmIGRlZmF1bHRDb25maWdGaWxlUGF0aCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludCcpKCdtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBhd2FpdCBjcChkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogYmFzZW5hbWUoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB9KSk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaGVzIGFyZSBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdtYXJrZG93bmxpbnQtY2xpMicgfSksIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGNvbnN0IGxpbmtDaGVja0ZpbGVzID0gbWRGaWxlcy5maWx0ZXIoKG1kRmlsZSkgPT4gbGlua0NoZWNrRXhjbHVkZUdsb2JzLmV2ZXJ5KChleGNsdWRlR2xvYikgPT4gIW1hdGNoZXNHbG9iKG1kRmlsZSwgZXhjbHVkZUdsb2IpKSk7XG4gIC8vIGBsaW5raW5hdG9yYCB3aXRoIG5vIExPQ0FUSU9OIHByaW50cyBpdHMgdXNhZ2UgYW5kIGV4aXRzIG5vbi16ZXJvLCBzbyBhIGxpc3QgZW1wdGllZCBieSB0aGUgZXhjbHVzaW9ucyBoYXMgbm90aGluZyB0byBjaGVjay5cbiAgaWYgKGxpbmtDaGVja0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdsaW5raW5hdG9yJyB9KSxcbiAgICAnLS1yZXRyeScsXG4gICAgJy0tcmV0cnktZXJyb3JzJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtY291bnQnLFxuICAgICczJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtaml0dGVyJyxcbiAgICAnNScsXG4gICAgJy0tdXJsLXJld3JpdGUtc2VhcmNoJyxcbiAgICBTdHJpbmcucmF3YGh0dHBzOi8vd3d3XFwubnBtanNcXC5jb20vcGFja2FnZS9gLFxuICAgICctLXVybC1yZXdyaXRlLXJlcGxhY2UnLFxuICAgICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nLFxuICAgIHsgYmF0Y2hlZEFyZ3VtZW50czogbGlua0NoZWNrRmlsZXMgfVxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2l0IHBhdGhzcGVjIG1hdGNoaW5nIGV2ZXJ5IG1hcmtkb3duIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnksIGF0IGFueSBkZXB0aC5cbiAqL1xuY29uc3QgTUFSS0RPV05fUEFUSFNQRUMgPSAnKi5tZCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIG1hcmtkb3duIGZpbGVzIHRvIGhhbmQgdG8gYGxpbmtpbmF0b3JgLlxuICpcbiAqIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCByYXRoZXIgdGhhbiBhbiBpZ25vcmUgY29uZmlndXJhdGlvbiwgc28gdGhlIGdpdGlnbm9yZWQgZmlsZXMgaGF2ZSB0byBiZVxuICogZHJvcHBlZCBiZWZvcmUgaXQgaXMgaW52b2tlZC4gR2l0IGl0c2VsZiBhbnN3ZXJzIHRoYXQgKG5lc3RlZCBpZ25vcmUgZmlsZXMsIGAhYCBuZWdhdGlvbnMgYW5kIGFsbCk7IHRoZVxuICogaGFuZC1tYWludGFpbmVkIGdsb2IgZXhjbHVzaW9ucyBiZWxvdyBhcmUgb25seSB0aGUgZmFsbGJhY2sgZm9yIGEgY2hlY2tvdXQgd2l0aG91dCBnaXQsIGFuZCB0aGV5IGFyZSB0aGVcbiAqIHZlcnkgbGlzdHMgdGhpcyBpbmRpcmVjdGlvbiBleGlzdHMgdG8gc3RvcCBmcm9tIGRyaWZ0aW5nLlxuICpcbiAqIFRoZSBgbm9kZV9tb2R1bGVzYCBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUgZ2l0LWRlcml2ZWQgbGlzdCB0b28sIGFuZCBkZWxpYmVyYXRlbHkgc286IGdpdCBvbmx5IHNraXBzXG4gKiB3aGF0IHRoZSByZXBvc2l0b3J5IGFza2VkIGl0IHRvIHNraXAsIGFuZCBhIHJlcG9zaXRvcnkgY2FuIGRlbGliZXJhdGVseSBUUkFDSyBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgXG4gKiB0cmVlLiBUaGF0IGlzIHRoZSBvbmUgZXhjbHVzaW9uIGAuZ2l0aWdub3JlYCBjYW5ub3QgYW5zd2VyIOKAlCBzZWUgYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC4gQXBwbHlpbmcgaXRcbiAqIGhlcmUga2VlcHMgYGxpbmtpbmF0b3JgIGluIHN0ZXAgd2l0aCB0aGUgbWFya2Rvd25saW50IGhhbGYsIHdoaWNoIGlnbm9yZXMgdGhlIHNhbWUgcGF0aHMgYnkgZ2xvYi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG1hcmtkb3duIGZpbGUgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25GaWxlcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG5vbklnbm9yZWRGaWxlcyA9IGF3YWl0IGdldE5vbklnbm9yZWRGaWxlcyh7IHBhdHRlcm5zOiBbTUFSS0RPV05fUEFUSFNQRUNdIH0pO1xuICByZXR1cm4gbm9uSWdub3JlZEZpbGVzXG4gICAgPyBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpXG4gICAgOiAoYXdhaXQgdG9BcnJheShnbG9iKFsnKiovKi5tZCddLCB7XG4gICAgICBleGNsdWRlOiBbXG4gICAgICAgICcuZ2l0LyoqJyxcbiAgICAgICAgJ2Rpc3QvKionLFxuICAgICAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgICAgIF1cbiAgICB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSxtQkFBd0I7QUFDeEIsbUJBQStCO0FBQy9CLGtCQUF5QjtBQUN6QixxQkFBMkI7QUFDM0Isc0JBR087QUFD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
|
|
@@ -13,6 +13,17 @@ export interface LintOptions {
|
|
|
13
13
|
* `markdownlint-cli2` runs with its own defaults.
|
|
14
14
|
*/
|
|
15
15
|
readonly defaultConfigFilePath?: string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Globs, relative to the root folder, of markdown files to leave out of the `linkinator` pass only;
|
|
18
|
+
* `markdownlint-cli2` still lints them.
|
|
19
|
+
*
|
|
20
|
+
* For a documentation site whose pages link to each other base-absolutely (`/<site-base>/guides/...`): those
|
|
21
|
+
* links resolve only against the BUILT site, so `linkinator` reports each one as a 404, and the site's own
|
|
22
|
+
* build is what checks them.
|
|
23
|
+
*
|
|
24
|
+
* @example `['docs/**']`
|
|
25
|
+
*/
|
|
26
|
+
readonly linkCheckExcludeGlobs?: readonly string[] | undefined;
|
|
16
27
|
/**
|
|
17
28
|
* Optional file paths to lint. If omitted, lints the entire project.
|
|
18
29
|
*/
|
|
@@ -112,7 +112,7 @@ export declare function cmdEscapeCommandLine(commandLine: string): string;
|
|
|
112
112
|
* Wraps a CLI task function to ensure it runs safely and handles its {@link CliTaskResult}.
|
|
113
113
|
*
|
|
114
114
|
* Honors the per-script off switch first: when the npm script currently running has been switched off —
|
|
115
|
-
* `LINT_MD=0 npm run lint:md`, see {@link
|
|
115
|
+
* `LINT_MD=0 npm run lint:md`, see {@link exitIfScriptDisabled} — the task is not executed and
|
|
116
116
|
* the process exits successfully. Because every `scripts/*.ts` entry point already funnels through here, no
|
|
117
117
|
* script has to opt in, and each `npm run` sub-step of a composite script (e.g. `build`) carries its own
|
|
118
118
|
* switch.
|
|
@@ -41,7 +41,7 @@ import { printError } from "@mnaoumov/typescript-lib/error";
|
|
|
41
41
|
import { noop } from "@mnaoumov/typescript-lib/function";
|
|
42
42
|
import { replaceAll } from "@mnaoumov/typescript-lib/string";
|
|
43
43
|
import process from "node:process";
|
|
44
|
-
import {
|
|
44
|
+
import { exitIfScriptDisabled } from "./env-toggle.mjs";
|
|
45
45
|
class CliTaskResult {
|
|
46
46
|
/**
|
|
47
47
|
* Chains multiple tasks together, executing them sequentially until one fails.
|
|
@@ -187,20 +187,14 @@ function cmdEscapeCommandLine(commandLine) {
|
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
async function wrapCliTask(taskFunction) {
|
|
190
|
-
|
|
191
|
-
if (disabledScriptEnvVariableName !== null) {
|
|
192
|
-
process.stdout.write(`Skipped (${disabledScriptEnvVariableName} is off).
|
|
193
|
-
`);
|
|
194
|
-
CliTaskResult.Success().exit();
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
190
|
+
exitIfScriptDisabled();
|
|
197
191
|
enableLibraryDebuggers();
|
|
198
192
|
const result = await wrapResult(taskFunction);
|
|
199
193
|
result.exit();
|
|
200
194
|
}
|
|
201
195
|
async function wrapResult(taskFunction) {
|
|
202
196
|
try {
|
|
203
|
-
return await taskFunction() ?? CliTaskResult.
|
|
197
|
+
return await taskFunction() ?? CliTaskResult.FromExitCode(Number(process.exitCode ?? 0));
|
|
204
198
|
} catch (error) {
|
|
205
199
|
printError(new Error("An error occurred during task execution", { cause: error }));
|
|
206
200
|
return CliTaskResult.Failure();
|
|
@@ -213,4 +207,4 @@ export {
|
|
|
213
207
|
toPosixCommandLine,
|
|
214
208
|
wrapCliTask
|
|
215
209
|
};
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGktdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB0YXNrIHJlc3VsdHMsIGluY2x1ZGluZ1xuICogc3VjY2VzcywgZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIG11bHRpcGxlIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBlbmFibGVMaWJyYXJ5RGVidWdnZXJzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBnZXREaXNhYmxlZFNjcmlwdEVudlZhcmlhYmxlTmFtZSB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgYSB0YXNrLiBJbmNsdWRlcyBtZXRob2RzIGZvciBoYW5kbGluZyBzdWNjZXNzLFxuICogZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBDaGFpbnMgbXVsdGlwbGUgdGFza3MgdG9nZXRoZXIsIGV4ZWN1dGluZyB0aGVtIHNlcXVlbnRpYWxseSB1bnRpbCBvbmUgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyAtIEFuIGFycmF5IG9mIHRhc2sgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGB2b2lkYC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaXJzdCBmYWlsZWQge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGEgc3VjY2VzcyByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNoYWluKHRhc2tzOiAoKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pW10pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFzayk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb05vdEV4aXQoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBEb05vdEV4aXRUYXNrUmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQSBmYWlsdXJlIHJlc3VsdCBvZiBhIENMSSB0YXNrLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmFpbHVyZSByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZhaWx1cmUoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuU3VjY2VzcyhmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBiYXNlZCBvbiBhbiBleGl0IGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBleGl0Q29kZSAtIFRoZSBleGl0IGNvZGUgdG8gcmVwcmVzZW50LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRnJvbUV4aXRDb2RlKGV4aXRDb2RlOiBudW1iZXIpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IEV4aXRDb2RlVGFza1Jlc3VsdChleGl0Q29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsaVRhc2tSZXN1bHQgcmVwcmVzZW50aW5nIGEgc3VjY2Vzc2Z1bCB0YXNrIHJlc3VsdC5cbiAgICpcbiAgICogQHBhcmFtIGlzU3VjY2VzcyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBAcmV0dXJucyBBIENsaVRhc2tSZXN1bHQgb2JqZWN0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFN1Y2Nlc3MoaXNTdWNjZXNzID0gdHJ1ZSk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgU3VjY2Vzc1Rhc2tSZXN1bHQoaXNTdWNjZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXhpdCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHRhc2sgd2FzIG5vdCBzdWNjZXNzZnVsLlxuICAgKi9cbiAgcHVibGljIHRocm93T25GYWlsdXJlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYXNrIGZhaWxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5jbGFzcyBEb05vdEV4aXRUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBEb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICovXG5jbGFzcyBFeGl0Q29kZVRhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIHByb2Nlc3MuZXhpdCh0aGlzLmV4aXRDb2RlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhpdENvZGUgPT09IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAqL1xuY2xhc3MgU3VjY2Vzc1Rhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2lzU3VjY2Vzc2Z1bDogYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHN1Y2Nlc3Mgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5faXNTdWNjZXNzZnVsID8gMCA6IDEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNTdWNjZXNzZnVsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBzdHJpbmdcbiAqIHVzaW5nIHRoZSBgQ29tbWFuZExpbmVUb0FyZ3ZXYCBjb252ZW50aW9uICh0aGUgc3RhbmRhcmQgdXNlZCBieSB0aGVcbiAqIE1pY3Jvc29mdCBDIHJ1bnRpbWUgYW5kIG1vc3QgV2luZG93cyBwcm9ncmFtcykuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX06XG4gKiBiYWNrc2xhc2hlcyBiZWZvcmUgcXVvdGVzIGFuZCBhdCB0aGUgZW5kIG9mIGEgcXVvdGVkIGFyZ3VtZW50IGFyZSBkb3VibGVkLlxuICpcbiAqIFRoaXMgcHJvZHVjZXMgYSBzaGVsbC1hZ25vc3RpYyBjb21tYW5kIGxpbmUuIENhbGxlcnMgdGhhdCByb3V0ZSB0aHJvdWdoXG4gKiBhIHNwZWNpZmljIHNoZWxsIChjbWQuZXhlLCBQb3dlclNoZWxsLCBzaCkgbXVzdCBhcHBseSBzaGVsbC1zcGVjaWZpY1xuICogZXNjYXBpbmcgb24gdG9wIOKAlCBzZWUge0BsaW5rIGNtZEVzY2FwZUNvbW1hbmRMaW5lfS5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tYW5kTGluZSgkYXJndW1lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiAkYXJndW1lbnRzLm1hcCgoYXJndW1lbnQpID0+IGFyZ3ZRdW90ZShhcmd1bWVudCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZ1xuICogcXVvdGVkIGZvciBhIFBPU0lYIHNoZWxsIChgc2hgLCBgYmFzaGAsIGB6c2hgLCAuLi4pLlxuICpcbiAqIEVhY2ggYXJndW1lbnQgaXMgd3JhcHBlZCBpbiBzaW5nbGUgcXVvdGVzIHVubGVzcyBpdCBjb25zaXN0cyBzb2xlbHkgb2ZcbiAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2FmZSB1bnF1b3RlZCwgbWlycm9yaW5nIFB5dGhvbidzIGBzaGxleC5xdW90ZWAuIEEgbGl0ZXJhbFxuICogc2luZ2xlIHF1b3RlIGluc2lkZSBhbiBhcmd1bWVudCBpcyBlbWl0dGVkIGFzIHRoZSBgJ1xcJydgIGlkaW9tIChjbG9zZSB0aGVcbiAqIHF1b3RlZCBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4pLCBzbyB0aGUgc2hlbGwgcmVwcm9kdWNlcyB0aGVcbiAqIGFyZ3VtZW50IHZlcmJhdGltIOKAlCBubyB2YXJpYWJsZSBleHBhbnNpb24gKGAkYCksIGNvbW1hbmQgc3Vic3RpdHV0aW9uXG4gKiAoYGAgYCBgYCksIGdsb2JiaW5nIChgKmAsIGA/YCwgYFtgKSwgb3Igd29yZCBzcGxpdHRpbmcuXG4gKlxuICogVXNlIHRoaXMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIHRocm91Z2ggYHNoIC1jYC4gT25cbiAqIFdpbmRvd3MsIHVzZSB7QGxpbmsgdG9Db21tYW5kTGluZX0gcGx1cyB7QGxpbmsgY21kRXNjYXBlQ29tbWFuZExpbmV9IGluc3RlYWQg4oCUXG4gKiB0aGUgdHdvIGNvbnZlbnRpb25zIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZC1saW5lIGludm9jYXRpb24gZm9yIGEgUE9TSVggc2hlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4Q29tbWFuZExpbmUoJGFyZ3VtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gJGFyZ3VtZW50cy5tYXAoKGFyZ3VtZW50KSA9PiBwb3NpeFF1b3RlKGFyZ3VtZW50KSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYW4gYXJndW1lbnQgdGhhdCBpcyBlbnRpcmVseSBjb21wb3NlZCBvZiBjaGFyYWN0ZXJzIHNhZmUgdG8gcGFzcyB0byBhXG4gKiBQT1NJWCBzaGVsbCB1bnF1b3RlZC4gTWlycm9ycyB0aGUgc2FmZSBzZXQgdXNlZCBieSBQeXRob24ncyBgc2hsZXgucXVvdGVgLlxuICovXG5jb25zdCBQT1NJWF9TQUZFX0FSR19SRSA9IC9eW1xcd0AlKz06LC4vLV0rJC87XG5cbi8qKlxuICogTWF0Y2hlcyBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlLCBmb3IgcmVwbGFjaW5nIGl0IHdpdGggdGhlIGAnXFwnJ2AgaWRpb20uXG4gKi9cbmNvbnN0IFNJTkdMRV9RVU9URV9SRSA9IC8nL2c7XG5cbi8qKlxuICogVGhlIHJlcGxhY2VtZW50IGZvciBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlIGluc2lkZSBhIHNpbmdsZS1xdW90ZWQgUE9TSVggc3BhbjpcbiAqIGNsb3NlIHRoZSBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4gdGhlIHNwYW4uXG4gKi9cbmNvbnN0IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFID0gU3RyaW5nLnJhd2AnXFwnJ2A7XG5cbi8qKlxuICogUXVvdGVzIGEgc2luZ2xlIGFyZ3VtZW50IHNvIHRoYXQgYENvbW1hbmRMaW5lVG9Bcmd2V2Agd2lsbCBkZWNvZGUgaXRcbiAqIHVuY2hhbmdlZC4gSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX0uXG4gKlxuICogQHBhcmFtIGFyZ3VtZW50IC0gVGhlIHJhdyBhcmd1bWVudCBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgcXVvdGVkIGFyZ3VtZW50IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYXJndlF1b3RlKGFyZ3VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXJndW1lbnQubGVuZ3RoID4gMCAmJiAhL1tcXHNcXHRcXG5cXHZcIl0vLnRlc3QoYXJndW1lbnQpKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50O1xuICB9XG5cbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IgPSAyO1xuICBsZXQgcmVzdWx0ID0gJ1wiJztcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3VtZW50Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGxldCBudW1iZXJCYWNrc2xhc2hlcyA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgYXJndW1lbnQubGVuZ3RoICYmIGFyZ3VtZW50W2luZGV4XSA9PT0gJ1xcXFwnKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbnVtYmVyQmFja3NsYXNoZXMrKztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPT09IGFyZ3VtZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ICs9ICdcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMgKiBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUik7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IGFyZ3VtZW50LmNoYXJBdChpbmRleCk7XG4gICAgcmVzdWx0ICs9IGNoID09PSAnXCInID8gYCR7J1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcyAqIEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SICsgMSl9XCJgIDogJ1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcykgKyBjaDtcbiAgfVxuXG4gIHJlc3VsdCArPSAnXCInO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBmb3IgYSBQT1NJWCBzaGVsbCBzbyBpdCBpcyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqIEFuIGVtcHR5IGFyZ3VtZW50IGJlY29tZXMgYCcnYDsgYW4gYXJndW1lbnQgb2Ygb25seSBzYWZlIGNoYXJhY3RlcnMgaXNcbiAqIHJldHVybmVkIHVuY2hhbmdlZDsgYW55dGhpbmcgZWxzZSBpcyBzaW5nbGUtcXVvdGVkLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l4UXVvdGUoYXJndW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBQT1NJWF9TQUZFX0FSR19SRS50ZXN0KGFyZ3VtZW50KSA/IGFyZ3VtZW50IDogYCcke3JlcGxhY2VBbGwoeyAkc3RyaW5nOiBhcmd1bWVudCwgcmVwbGFjZXI6IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFLCBzZWFyY2hWYWx1ZTogU0lOR0xFX1FVT1RFX1JFIH0pfSdgO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZSBgXmAtZXNjYXBlZC5cbiAqL1xuY29uc3QgQ01EX01FVEFfUkUgPSAvWygpJSFeXCI8PiZ8XS9nO1xuXG4vKipcbiAqIEVzY2FwZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHdpdGggYF5gIHNvIHRoYXQgYGNtZC5leGVgIHBhc3NlcyB0aGVtXG4gKiB0aHJvdWdoIGxpdGVyYWxseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBgY21kLmV4ZWAncyBgXCJgIGhhbmRsaW5nXG4gKiBkaWZmZXJzIGZyb20gYENvbW1hbmRMaW5lVG9Bcmd2V2AgYW5kIGNhbm5vdCBiZSByZWxpZWQgdXBvbi5cbiAqXG4gKiBBcHBseSB0aGlzIHRvIGEgY29tbWFuZCBsaW5lIHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgdmlhIGBjbWQuZXhlYFxuICogKGUuZy4sIGBzcGF3bihjbWQsIFtdLCB7IHNoZWxsOiB0cnVlIH0pYCBvbiBXaW5kb3dzKS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZExpbmUgLSBUaGUgYWxyZWFkeS1xdW90ZWQgY29tbWFuZCBsaW5lIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgd2l0aCBhbGwgY21kIG1ldGFjaGFyYWN0ZXJzIGBeYC1lc2NhcGVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgY21kYCBuYW1lcyBXaW5kb3dzIGBjbWQuZXhlYCwgbm90IGFuIGFiYnJldmlhdGlvbiBvZiBgY29tbWFuZGAuXG5leHBvcnQgZnVuY3Rpb24gY21kRXNjYXBlQ29tbWFuZExpbmUoY29tbWFuZExpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBjb21tYW5kTGluZSxcbiAgICByZXBsYWNlcjogJ14kJicsXG4gICAgc2VhcmNoVmFsdWU6IENNRF9NRVRBX1JFXG4gIH0pO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgQ0xJIHRhc2sgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJ1bnMgc2FmZWx5IGFuZCBoYW5kbGVzIGl0cyB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uXG4gKlxuICogSG9ub3JzIHRoZSBwZXItc2NyaXB0IG9mZiBzd2l0Y2ggZmlyc3Q6IHdoZW4gdGhlIG5wbSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcgaGFzIGJlZW4gc3dpdGNoZWQgb2ZmIOKAlFxuICogYExJTlRfTUQ9MCBucG0gcnVuIGxpbnQ6bWRgLCBzZWUge0BsaW5rIGdldERpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lfSDigJQgdGhlIHRhc2sgaXMgbm90IGV4ZWN1dGVkIGFuZFxuICogdGhlIHByb2Nlc3MgZXhpdHMgc3VjY2Vzc2Z1bGx5LiBCZWNhdXNlIGV2ZXJ5IGBzY3JpcHRzLyoudHNgIGVudHJ5IHBvaW50IGFscmVhZHkgZnVubmVscyB0aHJvdWdoIGhlcmUsIG5vXG4gKiBzY3JpcHQgaGFzIHRvIG9wdCBpbiwgYW5kIGVhY2ggYG5wbSBydW5gIHN1Yi1zdGVwIG9mIGEgY29tcG9zaXRlIHNjcmlwdCAoZS5nLiBgYnVpbGRgKSBjYXJyaWVzIGl0cyBvd25cbiAqIHN3aXRjaC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSwgd2hpY2ggbWF5IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkIGFuZCBleGl0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwQ2xpVGFzayh0YXNrRnVuY3Rpb246ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID0gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTtcbiAgaWYgKGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lICE9PSBudWxsKSB7XG4gICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFNraXBwZWQgKCR7ZGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWV9IGlzIG9mZikuXFxuYCk7XG4gICAgQ2xpVGFza1Jlc3VsdC5TdWNjZXNzKCkuZXhpdCgpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGVuYWJsZUxpYnJhcnlEZWJ1Z2dlcnMoKTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgd3JhcFJlc3VsdCh0YXNrRnVuY3Rpb24pO1xuICByZXN1bHQuZXhpdCgpO1xufVxuXG4vKipcbiAqIFNhZmVseSBleGVjdXRlcyBhIHRhc2sgZnVuY3Rpb24gYW5kIHJldHVybnMgYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uIElmIHRoZSB0YXNrIGZ1bmN0aW9uIHRocm93cyBhbiBlcnJvcixcbiAqIEFuIGVycm9yIGlzIGNhdWdodCwgYW5kIGEgZmFpbHVyZSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHRhc2tGdW5jdGlvbiAtIFRoZSB0YXNrIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggYSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gcmVwcmVzZW50aW5nIHRoZSBvdXRjb21lIG9mIHRoZSB0YXNrLlxuICovXG5hc3luYyBmdW5jdGlvbiB3cmFwUmVzdWx0KHRhc2tGdW5jdGlvbjogKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IHRhc2tGdW5jdGlvbigpKSBhcyBDbGlUYXNrUmVzdWx0IHwgdW5kZWZpbmVkID8/IENsaVRhc2tSZXN1bHQuU3VjY2VzcygpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGFzayBleGVjdXRpb24nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuRmFpbHVyZSgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVUEsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyxrQkFB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
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGktdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbnRhaW5zIHV0aWxpdHkgY2xhc3NlcyBhbmQgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB0YXNrIHJlc3VsdHMsIGluY2x1ZGluZ1xuICogc3VjY2VzcywgZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIG11bHRpcGxlIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdHlwZSc7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBlbmFibGVMaWJyYXJ5RGVidWdnZXJzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZXJyb3InO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3N0cmluZyc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBleGl0SWZTY3JpcHREaXNhYmxlZCB9IGZyb20gJy4vZW52LXRvZ2dsZS50cyc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgb2YgYSB0YXNrLiBJbmNsdWRlcyBtZXRob2RzIGZvciBoYW5kbGluZyBzdWNjZXNzLFxuICogZXhpdCBjb2RlcywgYW5kIGNoYWluaW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBDaGFpbnMgbXVsdGlwbGUgdGFza3MgdG9nZXRoZXIsIGV4ZWN1dGluZyB0aGVtIHNlcXVlbnRpYWxseSB1bnRpbCBvbmUgZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB0YXNrcyAtIEFuIGFycmF5IG9mIHRhc2sgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGB2b2lkYC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaXJzdCBmYWlsZWQge0BsaW5rIENsaVRhc2tSZXN1bHR9IG9yIGEgc3VjY2VzcyByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGNoYWluKHRhc2tzOiAoKCkgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxDbGlUYXNrUmVzdWx0Pj4pW10pOiBQcm9taXNlPENsaVRhc2tSZXN1bHQ+IHtcbiAgICBmb3IgKGNvbnN0IHRhc2sgb2YgdGFza3MpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdyYXBSZXN1bHQodGFzayk7XG4gICAgICBpZiAoIXJlc3VsdC5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLlN1Y2Nlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEge0BsaW5rIENsaVRhc2tSZXN1bHR9IHRoYXQgZG9lcyBub3QgZXhpdCB0aGUgcHJvY2Vzcy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0gdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBEb05vdEV4aXQoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIG5ldyBEb05vdEV4aXRUYXNrUmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQSBmYWlsdXJlIHJlc3VsdCBvZiBhIENMSSB0YXNrLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmFpbHVyZSByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIEZhaWx1cmUoKTogQ2xpVGFza1Jlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuU3VjY2VzcyhmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBiYXNlZCBvbiBhbiBleGl0IGNvZGUuXG4gICAqXG4gICAqIEBwYXJhbSBleGl0Q29kZSAtIFRoZSBleGl0IGNvZGUgdG8gcmVwcmVzZW50LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgRnJvbUV4aXRDb2RlKGV4aXRDb2RlOiBudW1iZXIpOiBDbGlUYXNrUmVzdWx0IHtcbiAgICByZXR1cm4gbmV3IEV4aXRDb2RlVGFza1Jlc3VsdChleGl0Q29kZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsaVRhc2tSZXN1bHQgcmVwcmVzZW50aW5nIGEgc3VjY2Vzc2Z1bCB0YXNrIHJlc3VsdC5cbiAgICpcbiAgICogQHBhcmFtIGlzU3VjY2VzcyAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKiBAcmV0dXJucyBBIENsaVRhc2tSZXN1bHQgb2JqZWN0IHJlcHJlc2VudGluZyBhIHN1Y2Nlc3NmdWwgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIFN1Y2Nlc3MoaXNTdWNjZXNzID0gdHJ1ZSk6IENsaVRhc2tSZXN1bHQge1xuICAgIHJldHVybiBuZXcgU3VjY2Vzc1Rhc2tSZXN1bHQoaXNTdWNjZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGl0cyB0aGUgcHJvY2VzcyBiYXNlZCBvbiB0aGUgdGFzayByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZXhpdCgpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHRhc2sgd2FzIG5vdCBzdWNjZXNzZnVsLlxuICAgKi9cbiAgcHVibGljIHRocm93T25GYWlsdXJlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1N1Y2Nlc3NmdWwoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYXNrIGZhaWxlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSB0YXNrIHdhcyBzdWNjZXNzZnVsLlxuICAgKlxuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhc2sgd2FzIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgdGhhdCBkb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICovXG5jbGFzcyBEb05vdEV4aXRUYXNrUmVzdWx0IGV4dGVuZHMgQ2xpVGFza1Jlc3VsdCB7XG4gIC8qKlxuICAgKiBEb2VzIG5vdCBleGl0IHRoZSBwcm9jZXNzLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGV4aXQoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEEgdGFzayByZXN1bHQgYmFzZWQgb24gYW4gZXhpdCBjb2RlLlxuICovXG5jbGFzcyBFeGl0Q29kZVRhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZXhpdENvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGV4aXQgY29kZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBleGl0KCk6IHZvaWQge1xuICAgIHByb2Nlc3MuZXhpdCh0aGlzLmV4aXRDb2RlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpc1N1Y2Nlc3NmdWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhpdENvZGUgPT09IDA7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHRhc2sgcmVzdWx0IGJhc2VkIG9uIHN1Y2Nlc3Mgb3IgZmFpbHVyZS5cbiAqL1xuY2xhc3MgU3VjY2Vzc1Rhc2tSZXN1bHQgZXh0ZW5kcyBDbGlUYXNrUmVzdWx0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2lzU3VjY2Vzc2Z1bDogYm9vbGVhbikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogRXhpdHMgdGhlIHByb2Nlc3MgYmFzZWQgb24gdGhlIHN1Y2Nlc3Mgb2YgdGhlIHRhc2suXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZXhpdCgpOiB2b2lkIHtcbiAgICBwcm9jZXNzLmV4aXQodGhpcy5faXNTdWNjZXNzZnVsID8gMCA6IDEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGlzU3VjY2Vzc2Z1bCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNTdWNjZXNzZnVsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgb2YgY29tbWFuZC1saW5lIGFyZ3VtZW50cyBpbnRvIGEgc2luZ2xlIGNvbW1hbmQtbGluZSBzdHJpbmdcbiAqIHVzaW5nIHRoZSBgQ29tbWFuZExpbmVUb0FyZ3ZXYCBjb252ZW50aW9uICh0aGUgc3RhbmRhcmQgdXNlZCBieSB0aGVcbiAqIE1pY3Jvc29mdCBDIHJ1bnRpbWUgYW5kIG1vc3QgV2luZG93cyBwcm9ncmFtcykuXG4gKlxuICogSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX06XG4gKiBiYWNrc2xhc2hlcyBiZWZvcmUgcXVvdGVzIGFuZCBhdCB0aGUgZW5kIG9mIGEgcXVvdGVkIGFyZ3VtZW50IGFyZSBkb3VibGVkLlxuICpcbiAqIFRoaXMgcHJvZHVjZXMgYSBzaGVsbC1hZ25vc3RpYyBjb21tYW5kIGxpbmUuIENhbGxlcnMgdGhhdCByb3V0ZSB0aHJvdWdoXG4gKiBhIHNwZWNpZmljIHNoZWxsIChjbWQuZXhlLCBQb3dlclNoZWxsLCBzaCkgbXVzdCBhcHBseSBzaGVsbC1zcGVjaWZpY1xuICogZXNjYXBpbmcgb24gdG9wIOKAlCBzZWUge0BsaW5rIGNtZEVzY2FwZUNvbW1hbmRMaW5lfS5cbiAqXG4gKiBAcGFyYW0gJGFyZ3VtZW50cyAtIFRoZSBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbW1hbmQtbGluZSBpbnZvY2F0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9Db21tYW5kTGluZSgkYXJndW1lbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiAkYXJndW1lbnRzLm1hcCgoYXJndW1lbnQpID0+IGFyZ3ZRdW90ZShhcmd1bWVudCkpLmpvaW4oJyAnKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBjb21tYW5kLWxpbmUgYXJndW1lbnRzIGludG8gYSBzaW5nbGUgY29tbWFuZC1saW5lIHN0cmluZ1xuICogcXVvdGVkIGZvciBhIFBPU0lYIHNoZWxsIChgc2hgLCBgYmFzaGAsIGB6c2hgLCAuLi4pLlxuICpcbiAqIEVhY2ggYXJndW1lbnQgaXMgd3JhcHBlZCBpbiBzaW5nbGUgcXVvdGVzIHVubGVzcyBpdCBjb25zaXN0cyBzb2xlbHkgb2ZcbiAqIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2FmZSB1bnF1b3RlZCwgbWlycm9yaW5nIFB5dGhvbidzIGBzaGxleC5xdW90ZWAuIEEgbGl0ZXJhbFxuICogc2luZ2xlIHF1b3RlIGluc2lkZSBhbiBhcmd1bWVudCBpcyBlbWl0dGVkIGFzIHRoZSBgJ1xcJydgIGlkaW9tIChjbG9zZSB0aGVcbiAqIHF1b3RlZCBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4pLCBzbyB0aGUgc2hlbGwgcmVwcm9kdWNlcyB0aGVcbiAqIGFyZ3VtZW50IHZlcmJhdGltIOKAlCBubyB2YXJpYWJsZSBleHBhbnNpb24gKGAkYCksIGNvbW1hbmQgc3Vic3RpdHV0aW9uXG4gKiAoYGAgYCBgYCksIGdsb2JiaW5nIChgKmAsIGA/YCwgYFtgKSwgb3Igd29yZCBzcGxpdHRpbmcuXG4gKlxuICogVXNlIHRoaXMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBjb21tYW5kIGlzIGV4ZWN1dGVkIHRocm91Z2ggYHNoIC1jYC4gT25cbiAqIFdpbmRvd3MsIHVzZSB7QGxpbmsgdG9Db21tYW5kTGluZX0gcGx1cyB7QGxpbmsgY21kRXNjYXBlQ29tbWFuZExpbmV9IGluc3RlYWQg4oCUXG4gKiB0aGUgdHdvIGNvbnZlbnRpb25zIGFyZSBub3QgaW50ZXJjaGFuZ2VhYmxlLlxuICpcbiAqIEBwYXJhbSAkYXJndW1lbnRzIC0gVGhlIGFycmF5IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY29tbWFuZC1saW5lIGludm9jYXRpb24gZm9yIGEgUE9TSVggc2hlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1Bvc2l4Q29tbWFuZExpbmUoJGFyZ3VtZW50czogc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gJGFyZ3VtZW50cy5tYXAoKGFyZ3VtZW50KSA9PiBwb3NpeFF1b3RlKGFyZ3VtZW50KSkuam9pbignICcpO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYW4gYXJndW1lbnQgdGhhdCBpcyBlbnRpcmVseSBjb21wb3NlZCBvZiBjaGFyYWN0ZXJzIHNhZmUgdG8gcGFzcyB0byBhXG4gKiBQT1NJWCBzaGVsbCB1bnF1b3RlZC4gTWlycm9ycyB0aGUgc2FmZSBzZXQgdXNlZCBieSBQeXRob24ncyBgc2hsZXgucXVvdGVgLlxuICovXG5jb25zdCBQT1NJWF9TQUZFX0FSR19SRSA9IC9eW1xcd0AlKz06LC4vLV0rJC87XG5cbi8qKlxuICogTWF0Y2hlcyBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlLCBmb3IgcmVwbGFjaW5nIGl0IHdpdGggdGhlIGAnXFwnJ2AgaWRpb20uXG4gKi9cbmNvbnN0IFNJTkdMRV9RVU9URV9SRSA9IC8nL2c7XG5cbi8qKlxuICogVGhlIHJlcGxhY2VtZW50IGZvciBhIGxpdGVyYWwgc2luZ2xlIHF1b3RlIGluc2lkZSBhIHNpbmdsZS1xdW90ZWQgUE9TSVggc3BhbjpcbiAqIGNsb3NlIHRoZSBzcGFuLCBhZGQgYW4gZXNjYXBlZCBsaXRlcmFsIHF1b3RlLCByZW9wZW4gdGhlIHNwYW4uXG4gKi9cbmNvbnN0IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFID0gU3RyaW5nLnJhd2AnXFwnJ2A7XG5cbi8qKlxuICogUXVvdGVzIGEgc2luZ2xlIGFyZ3VtZW50IHNvIHRoYXQgYENvbW1hbmRMaW5lVG9Bcmd2V2Agd2lsbCBkZWNvZGUgaXRcbiAqIHVuY2hhbmdlZC4gSW1wbGVtZW50cyB0aGUgQXJndlF1b3RlIGFsZ29yaXRobSBmcm9tXG4gKiB7QGxpbmsgaHR0cHM6Ly9sZWFybi5taWNyb3NvZnQuY29tL2FyY2hpdmUvYmxvZ3MvdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS9ldmVyeW9uZS1xdW90ZXMtY29tbWFuZC1saW5lLWFyZ3VtZW50cy10aGUtd3Jvbmctd2F5IHwgRXZlcnlvbmUgcXVvdGVzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdGhlIHdyb25nIHdheX0uXG4gKlxuICogQHBhcmFtIGFyZ3VtZW50IC0gVGhlIHJhdyBhcmd1bWVudCBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgcXVvdGVkIGFyZ3VtZW50IHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYXJndlF1b3RlKGFyZ3VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXJndW1lbnQubGVuZ3RoID4gMCAmJiAhL1tcXHNcXHRcXG5cXHZcIl0vLnRlc3QoYXJndW1lbnQpKSB7XG4gICAgcmV0dXJuIGFyZ3VtZW50O1xuICB9XG5cbiAgY29uc3QgQkFDS1NMQVNIX0VTQ0FQRV9GQUNUT1IgPSAyO1xuICBsZXQgcmVzdWx0ID0gJ1wiJztcbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFyZ3VtZW50Lmxlbmd0aDsgaW5kZXgrKykge1xuICAgIGxldCBudW1iZXJCYWNrc2xhc2hlcyA9IDA7XG4gICAgd2hpbGUgKGluZGV4IDwgYXJndW1lbnQubGVuZ3RoICYmIGFyZ3VtZW50W2luZGV4XSA9PT0gJ1xcXFwnKSB7XG4gICAgICBpbmRleCsrO1xuICAgICAgbnVtYmVyQmFja3NsYXNoZXMrKztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPT09IGFyZ3VtZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ICs9ICdcXFxcJy5yZXBlYXQobnVtYmVyQmFja3NsYXNoZXMgKiBCQUNLU0xBU0hfRVNDQVBFX0ZBQ1RPUik7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCBjaCA9IGFyZ3VtZW50LmNoYXJBdChpbmRleCk7XG4gICAgcmVzdWx0ICs9IGNoID09PSAnXCInID8gYCR7J1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcyAqIEJBQ0tTTEFTSF9FU0NBUEVfRkFDVE9SICsgMSl9XCJgIDogJ1xcXFwnLnJlcGVhdChudW1iZXJCYWNrc2xhc2hlcykgKyBjaDtcbiAgfVxuXG4gIHJlc3VsdCArPSAnXCInO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFF1b3RlcyBhIHNpbmdsZSBhcmd1bWVudCBmb3IgYSBQT1NJWCBzaGVsbCBzbyBpdCBpcyBwYXNzZWQgdGhyb3VnaCB2ZXJiYXRpbS5cbiAqIEFuIGVtcHR5IGFyZ3VtZW50IGJlY29tZXMgYCcnYDsgYW4gYXJndW1lbnQgb2Ygb25seSBzYWZlIGNoYXJhY3RlcnMgaXNcbiAqIHJldHVybmVkIHVuY2hhbmdlZDsgYW55dGhpbmcgZWxzZSBpcyBzaW5nbGUtcXVvdGVkLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSByYXcgYXJndW1lbnQgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIHF1b3RlZCBhcmd1bWVudCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHBvc2l4UXVvdGUoYXJndW1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBQT1NJWF9TQUZFX0FSR19SRS50ZXN0KGFyZ3VtZW50KSA/IGFyZ3VtZW50IDogYCcke3JlcGxhY2VBbGwoeyAkc3RyaW5nOiBhcmd1bWVudCwgcmVwbGFjZXI6IFBPU0lYX0VTQ0FQRURfU0lOR0xFX1FVT1RFLCBzZWFyY2hWYWx1ZTogU0lOR0xFX1FVT1RFX1JFIH0pfSdgO1xufVxuXG4vKipcbiAqIE1hdGNoZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHRoYXQgbXVzdCBiZSBgXmAtZXNjYXBlZC5cbiAqL1xuY29uc3QgQ01EX01FVEFfUkUgPSAvWygpJSFeXCI8PiZ8XS9nO1xuXG4vKipcbiAqIEVzY2FwZXMgYGNtZC5leGVgIG1ldGFjaGFyYWN0ZXJzIHdpdGggYF5gIHNvIHRoYXQgYGNtZC5leGVgIHBhc3NlcyB0aGVtXG4gKiB0aHJvdWdoIGxpdGVyYWxseS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBgY21kLmV4ZWAncyBgXCJgIGhhbmRsaW5nXG4gKiBkaWZmZXJzIGZyb20gYENvbW1hbmRMaW5lVG9Bcmd2V2AgYW5kIGNhbm5vdCBiZSByZWxpZWQgdXBvbi5cbiAqXG4gKiBBcHBseSB0aGlzIHRvIGEgY29tbWFuZCBsaW5lIHN0cmluZyB0aGF0IHdpbGwgYmUgZXhlY3V0ZWQgdmlhIGBjbWQuZXhlYFxuICogKGUuZy4sIGBzcGF3bihjbWQsIFtdLCB7IHNoZWxsOiB0cnVlIH0pYCBvbiBXaW5kb3dzKS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZExpbmUgLSBUaGUgYWxyZWFkeS1xdW90ZWQgY29tbWFuZCBsaW5lIHN0cmluZy5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgd2l0aCBhbGwgY21kIG1ldGFjaGFyYWN0ZXJzIGBeYC1lc2NhcGVkLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uYW1lLXJlcGxhY2VtZW50cyAtLSBgY21kYCBuYW1lcyBXaW5kb3dzIGBjbWQuZXhlYCwgbm90IGFuIGFiYnJldmlhdGlvbiBvZiBgY29tbWFuZGAuXG5leHBvcnQgZnVuY3Rpb24gY21kRXNjYXBlQ29tbWFuZExpbmUoY29tbWFuZExpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHtcbiAgICAkc3RyaW5nOiBjb21tYW5kTGluZSxcbiAgICByZXBsYWNlcjogJ14kJicsXG4gICAgc2VhcmNoVmFsdWU6IENNRF9NRVRBX1JFXG4gIH0pO1xufVxuXG4vKipcbiAqIFdyYXBzIGEgQ0xJIHRhc2sgZnVuY3Rpb24gdG8gZW5zdXJlIGl0IHJ1bnMgc2FmZWx5IGFuZCBoYW5kbGVzIGl0cyB7QGxpbmsgQ2xpVGFza1Jlc3VsdH0uXG4gKlxuICogSG9ub3JzIHRoZSBwZXItc2NyaXB0IG9mZiBzd2l0Y2ggZmlyc3Q6IHdoZW4gdGhlIG5wbSBzY3JpcHQgY3VycmVudGx5IHJ1bm5pbmcgaGFzIGJlZW4gc3dpdGNoZWQgb2ZmIOKAlFxuICogYExJTlRfTUQ9MCBucG0gcnVuIGxpbnQ6bWRgLCBzZWUge0BsaW5rIGV4aXRJZlNjcmlwdERpc2FibGVkfSDigJQgdGhlIHRhc2sgaXMgbm90IGV4ZWN1dGVkIGFuZFxuICogdGhlIHByb2Nlc3MgZXhpdHMgc3VjY2Vzc2Z1bGx5LiBCZWNhdXNlIGV2ZXJ5IGBzY3JpcHRzLyoudHNgIGVudHJ5IHBvaW50IGFscmVhZHkgZnVubmVscyB0aHJvdWdoIGhlcmUsIG5vXG4gKiBzY3JpcHQgaGFzIHRvIG9wdCBpbiwgYW5kIGVhY2ggYG5wbSBydW5gIHN1Yi1zdGVwIG9mIGEgY29tcG9zaXRlIHNjcmlwdCAoZS5nLiBgYnVpbGRgKSBjYXJyaWVzIGl0cyBvd25cbiAqIHN3aXRjaC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZSwgd2hpY2ggbWF5IHJldHVybiBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSBvciBgdm9pZGAuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHRhc2sgaXMgY29tcGxldGVkIGFuZCBleGl0cyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdGF0dXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cmFwQ2xpVGFzayh0YXNrRnVuY3Rpb246ICgpID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48Q2xpVGFza1Jlc3VsdD4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGV4aXRJZlNjcmlwdERpc2FibGVkKCk7XG5cbiAgZW5hYmxlTGlicmFyeURlYnVnZ2VycygpO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCB3cmFwUmVzdWx0KHRhc2tGdW5jdGlvbik7XG4gIHJlc3VsdC5leGl0KCk7XG59XG5cbi8qKlxuICogU2FmZWx5IGV4ZWN1dGVzIGEgdGFzayBmdW5jdGlvbiBhbmQgcmV0dXJucyBhIHtAbGluayBDbGlUYXNrUmVzdWx0fS4gSWYgdGhlIHRhc2sgZnVuY3Rpb24gdGhyb3dzIGFuIGVycm9yLFxuICogQW4gZXJyb3IgaXMgY2F1Z2h0LCBhbmQgYSBmYWlsdXJlIHtAbGluayBDbGlUYXNrUmVzdWx0fSBpcyByZXR1cm5lZC5cbiAqXG4gKiBBIHRhc2sgdGhhdCByZXR1cm5zIG5vdGhpbmcgZW5kcyB3aXRoIHRoZSBgcHJvY2Vzcy5leGl0Q29kZWAgaXQgbGVmdCBiZWhpbmQsIHNvIHRoZSBjb21tb24gTm9kZSBzaGFwZSDigJQgcmVwb3J0XG4gKiB0aGUgZmluZGluZ3MsIHNldCBgcHJvY2Vzcy5leGl0Q29kZSA9IDFgLCByZXR1cm4g4oCUIHN0aWxsIGZhaWxzOiB7QGxpbmsgQ2xpVGFza1Jlc3VsdC5leGl0fSBjYWxscyBgcHJvY2Vzcy5leGl0YCxcbiAqIHdob3NlIGFyZ3VtZW50IHdvdWxkIG90aGVyd2lzZSBvdmVycmlkZSBpdCB3aXRoIGAwYC5cbiAqXG4gKiBAcGFyYW0gdGFza0Z1bmN0aW9uIC0gVGhlIHRhc2sgZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCBhIHtAbGluayBDbGlUYXNrUmVzdWx0fSByZXByZXNlbnRpbmcgdGhlIG91dGNvbWUgb2YgdGhlIHRhc2suXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHdyYXBSZXN1bHQodGFza0Z1bmN0aW9uOiAoKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPENsaVRhc2tSZXN1bHQ+Pik6IFByb21pc2U8Q2xpVGFza1Jlc3VsdD4ge1xuICB0cnkge1xuICAgIHJldHVybiAoYXdhaXQgdGFza0Z1bmN0aW9uKCkpIGFzIENsaVRhc2tSZXN1bHQgfCB1bmRlZmluZWQgPz8gQ2xpVGFza1Jlc3VsdC5Gcm9tRXhpdENvZGUoTnVtYmVyKHByb2Nlc3MuZXhpdENvZGUgPz8gMCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IobmV3IEVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGFzayBleGVjdXRpb24nLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgcmV0dXJuIENsaVRhc2tSZXN1bHQuRmFpbHVyZSgpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7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
|
|
@@ -17,6 +17,13 @@
|
|
|
17
17
|
* This mirrors the pre-existing `NANO_STAGED=0` / `HUSKY=0` escape hatches, and reuses their notion of an
|
|
18
18
|
* "off" value, so there is a single answer to what counts as off across the whole tool set.
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Exits the process successfully, before any work, when the npm script currently running has been switched
|
|
22
|
+
* off: it writes `Skipped (<VAR> is off).` and calls `process.exit(0)`.
|
|
23
|
+
*
|
|
24
|
+
* Call it first in a script entry point that does not go through `wrapCliTask`, which already calls it.
|
|
25
|
+
*/
|
|
26
|
+
export declare function exitIfScriptDisabled(): void;
|
|
20
27
|
/**
|
|
21
28
|
* Resolves the off switch for the npm script that is currently running, loading {@link ENV_FILE_PATH} first.
|
|
22
29
|
*
|
|
@@ -43,6 +43,15 @@ const OFF_VALUES = /* @__PURE__ */ new Set(["0", "false", "no", "off"]);
|
|
|
43
43
|
const ENV_FILE_PATH = ".env";
|
|
44
44
|
const NON_ALPHANUMERIC_REG_EXP = /[^a-z0-9]+/gi;
|
|
45
45
|
const NPM_SCRIPT_NAME_ENV_VARIABLE = "npm_lifecycle_event";
|
|
46
|
+
function exitIfScriptDisabled() {
|
|
47
|
+
const disabledScriptEnvVariableName = getDisabledScriptEnvVariableName();
|
|
48
|
+
if (disabledScriptEnvVariableName === null) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
process.stdout.write(`Skipped (${disabledScriptEnvVariableName} is off).
|
|
52
|
+
`);
|
|
53
|
+
process.exit(0);
|
|
54
|
+
}
|
|
46
55
|
function getDisabledScriptEnvVariableName() {
|
|
47
56
|
loadEnvFileIfExists();
|
|
48
57
|
const scriptName = process.env[NPM_SCRIPT_NAME_ENV_VARIABLE];
|
|
@@ -68,8 +77,9 @@ function toEnvVariableName(scriptName) {
|
|
|
68
77
|
}).toUpperCase();
|
|
69
78
|
}
|
|
70
79
|
export {
|
|
80
|
+
exitIfScriptDisabled,
|
|
71
81
|
getDisabledScriptEnvVariableName,
|
|
72
82
|
isEnvVariableOff,
|
|
73
83
|
loadEnvFileIfExists
|
|
74
84
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnYtdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBTaGFyZWQgZW52aXJvbm1lbnQtdmFyaWFibGUgb2ZmIHN3aXRjaGVzIGZvciB0aGUgQ0xJIHNjcmlwdHMuXG4gKlxuICogRXZlcnkgbnBtIHNjcmlwdCBjYW4gYmUgc2tpcHBlZCBieSBzZXR0aW5nIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVkIGFmdGVyIGl0IOKAlCB0aGUgc2NyaXB0IG5hbWVcbiAqIHVwcGVyY2FzZWQsIHdpdGggZXZlcnkgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXIgcmVwbGFjZWQgYnkgYF9gOlxuICpcbiAqIHwgU2NyaXB0ICAgICAgICAgICAgICB8IFN3aXRjaCAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IGBsaW50YCAgICAgICAgICAgICAgfCBgTElOVD0wYCAgICAgICAgICAgIHxcbiAqIHwgYGxpbnQ6bWQ6Zml4YCAgICAgICB8IGBMSU5UX01EX0ZJWD0wYCAgICAgfFxuICogfCBgZm9ybWF0OmNoZWNrYCAgICAgIHwgYEZPUk1BVF9DSEVDSz0wYCAgICB8XG4gKiB8IGBmaW5kLW92ZXJleHBvc2VkYCAgfCBgRklORF9PVkVSRVhQT1NFRD0wYHxcbiAqXG4gKiBUaGlzIG1pcnJvcnMgdGhlIHByZS1leGlzdGluZyBgTkFOT19TVEFHRUQ9MGAgLyBgSFVTS1k9MGAgZXNjYXBlIGhhdGNoZXMsIGFuZCByZXVzZXMgdGhlaXIgbm90aW9uIG9mIGFuXG4gKiBcIm9mZlwiIHZhbHVlLCBzbyB0aGVyZSBpcyBhIHNpbmdsZSBhbnN3ZXIgdG8gd2hhdCBjb3VudHMgYXMgb2ZmIGFjcm9zcyB0aGUgd2hvbGUgdG9vbCBzZXQuXG4gKi9cblxuaW1wb3J0IHsgcmVwbGFjZUFsbCB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9zdHJpbmcnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHByb2Nlc3MgZnJvbSAnbm9kZTpwcm9jZXNzJztcblxuLyoqXG4gKiBUaGUgdmFsdWVzIHRoYXQgc3dpdGNoIGEgdmFyaWFibGUgb2ZmLiBBbnl0aGluZyBlbHNlIOKAlCBpbmNsdWRpbmcgYW4gdW5zZXQgdmFyaWFibGUg4oCUIGxlYXZlcyBpdCBvbiwgc28gdGhlXG4gKiBkZWZhdWx0IGlzIGFsd2F5cyBcInJ1biB0aGUgc2NyaXB0XCIuXG4gKi9cbmNvbnN0IE9GRl9WQUxVRVM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFsnMCcsICdmYWxzZScsICdubycsICdvZmYnXSk7XG5cbi8qKlxuICogVGhlIG9wdGlvbmFsIHBlci1kZXZlbG9wZXIgZW52aXJvbm1lbnQgZmlsZS4gTG9hZGVkIHZpYSBOb2RlJ3Mgb3duIGBwcm9jZXNzLmxvYWRFbnZGaWxlYCwgc28gaXQgYmVoYXZlc1xuICogdGhlIHNhbWUgb24gZXZlcnkgcGxhdGZvcm0gYW5kIHNoZWxsLlxuICovXG5jb25zdCBFTlZfRklMRV9QQVRIID0gJy5lbnYnO1xuXG4vKipcbiAqIE1hdGNoZXMgZXZlcnkgcnVuIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW5ub3QgYXBwZWFyIGluIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUuXG4gKi9cbmNvbnN0IE5PTl9BTFBIQU5VTUVSSUNfUkVHX0VYUCA9IC9bXmEtejAtOV0rL2dpO1xuXG4vKipcbiAqIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBucG0gc2V0cyB0byB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0IGl0IGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG5jb25zdCBOUE1fU0NSSVBUX05BTUVfRU5WX1ZBUklBQkxFID0gJ25wbV9saWZlY3ljbGVfZXZlbnQnO1xuXG4vKipcbiAqIEV4aXRzIHRoZSBwcm9jZXNzIHN1Y2Nlc3NmdWxseSwgYmVmb3JlIGFueSB3b3JrLCB3aGVuIHRoZSBucG0gc2NyaXB0IGN1cnJlbnRseSBydW5uaW5nIGhhcyBiZWVuIHN3aXRjaGVkXG4gKiBvZmY6IGl0IHdyaXRlcyBgU2tpcHBlZCAoPFZBUj4gaXMgb2ZmKS5gIGFuZCBjYWxscyBgcHJvY2Vzcy5leGl0KDApYC5cbiAqXG4gKiBDYWxsIGl0IGZpcnN0IGluIGEgc2NyaXB0IGVudHJ5IHBvaW50IHRoYXQgZG9lcyBub3QgZ28gdGhyb3VnaCBgd3JhcENsaVRhc2tgLCB3aGljaCBhbHJlYWR5IGNhbGxzIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhpdElmU2NyaXB0RGlzYWJsZWQoKTogdm9pZCB7XG4gIGNvbnN0IGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID0gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTtcbiAgaWYgKGRpc2FibGVkU2NyaXB0RW52VmFyaWFibGVOYW1lID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYFNraXBwZWQgKCR7ZGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWV9IGlzIG9mZikuXFxuYCk7XG4gIHByb2Nlc3MuZXhpdCgwKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgb2ZmIHN3aXRjaCBmb3IgdGhlIG5wbSBzY3JpcHQgdGhhdCBpcyBjdXJyZW50bHkgcnVubmluZywgbG9hZGluZyB7QGxpbmsgRU5WX0ZJTEVfUEFUSH0gZmlyc3QuXG4gKlxuICogVGhlIHNjcmlwdCBuYW1lIGNvbWVzIGZyb20gbnBtIGl0c2VsZiwgc28gbm8gc2NyaXB0IGhhcyB0byBkZWNsYXJlIGl0cyBvd24gc3dpdGNoLiBXaGVuIHRoZSBzY3JpcHQgd2FzXG4gKiBzdGFydGVkIGRpcmVjdGx5IHJhdGhlciB0aGFuIHRocm91Z2ggbnBtLCB0aGVyZSBpcyBubyBuYW1lIHRvIGRlcml2ZSBmcm9tIGFuZCBub3RoaW5nIGlzIGV2ZXIgc2tpcHBlZC5cbiAqXG4gKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdGhhdCBzd2l0Y2hlZCB0aGUgY3VycmVudCBzY3JpcHQgb2ZmLCBvciBgbnVsbGAgd2hlbiB0aGVcbiAqIHNjcmlwdCBzaG91bGQgcnVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzYWJsZWRTY3JpcHRFbnZWYXJpYWJsZU5hbWUoKTogbnVsbCB8IHN0cmluZyB7XG4gIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTtcbiAgY29uc3Qgc2NyaXB0TmFtZSA9IHByb2Nlc3MuZW52W05QTV9TQ1JJUFRfTkFNRV9FTlZfVkFSSUFCTEVdO1xuICBpZiAoIXNjcmlwdE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGVudlZhcmlhYmxlTmFtZSA9IHRvRW52VmFyaWFibGVOYW1lKHNjcmlwdE5hbWUpO1xuICByZXR1cm4gaXNFbnZWYXJpYWJsZU9mZihlbnZWYXJpYWJsZU5hbWUpID8gZW52VmFyaWFibGVOYW1lIDogbnVsbDtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCB0byBhbiBvZmYgdmFsdWUgKGAwYCwgYGZhbHNlYCwgYG5vYCwgb3IgYG9mZmAsXG4gKiBjYXNlLWluc2Vuc2l0aXZlbHkgYW5kIGlnbm9yaW5nIHN1cnJvdW5kaW5nIHdoaXRlc3BhY2UpLlxuICpcbiAqIEBwYXJhbSBlbnZWYXJpYWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gaW5zcGVjdC5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIHRoZSB2YXJpYWJsZSBpcyBzZXQgdG8gYW4gb2ZmIHZhbHVlLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW52VmFyaWFibGVPZmYoZW52VmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9GRl9WQUxVRVMuaGFzKChwcm9jZXNzLmVudltlbnZWYXJpYWJsZU5hbWVdID8/ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8qKlxuICogTG9hZHMgdGhlIG9wdGlvbmFsIHtAbGluayBFTlZfRklMRV9QQVRIfSBmaWxlIGludG8gYHByb2Nlc3MuZW52YCB3aGVuIGl0IGV4aXN0cywgc28gYSBkZXZlbG9wZXIgY2FuIHBhcmsgYVxuICogc3dpdGNoIHN1Y2ggYXMgYExJTlRfTUQ9MGAgdGhlcmUgaW5zdGVhZCBvZiBwcmVmaXhpbmcgZXZlcnkgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvYWRFbnZGaWxlSWZFeGlzdHMoKTogdm9pZCB7XG4gIGlmIChleGlzdHNTeW5jKEVOVl9GSUxFX1BBVEgpKSB7XG4gICAgcHJvY2Vzcy5sb2FkRW52RmlsZShFTlZfRklMRV9QQVRIKTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG5wbSBzY3JpcHQgbmFtZSBpbnRvIHRoZSBuYW1lIG9mIGl0cyBvZmYgc3dpdGNoLlxuICpcbiAqIEBwYXJhbSBzY3JpcHROYW1lIC0gVGhlIG5wbSBzY3JpcHQgbmFtZSwgZS5nLiBgbGludDptZDpmaXhgLlxuICogQHJldHVybnMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUsIGUuZy4gYExJTlRfTURfRklYYC5cbiAqL1xuZnVuY3Rpb24gdG9FbnZWYXJpYWJsZU5hbWUoc2NyaXB0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2VBbGwoe1xuICAgICRzdHJpbmc6IHNjcmlwdE5hbWUsXG4gICAgcmVwbGFjZXI6ICdfJyxcbiAgICBzZWFyY2hWYWx1ZTogTk9OX0FMUEhBTlVNRVJJQ19SRUdfRVhQXG4gIH0pLnRvVXBwZXJDYXNlKCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUJBLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsa0JBQWtCO0FBQzNCLE9BQU8sYUFBYTtBQU1wQixNQUFNLGFBQWtDLG9CQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsTUFBTSxLQUFLLENBQUM7QUFNM0UsTUFBTSxnQkFBZ0I7QUFLdEIsTUFBTSwyQkFBMkI7QUFLakMsTUFBTSwrQkFBK0I7QUFROUIsU0FBUyx1QkFBNkI7QUFDM0MsUUFBTSxnQ0FBZ0MsaUNBQWlDO0FBQ3ZFLE1BQUksa0NBQWtDLE1BQU07QUFDMUM7QUFBQSxFQUNGO0FBRUEsVUFBUSxPQUFPLE1BQU0sWUFBWSw2QkFBNkI7QUFBQSxDQUFhO0FBQzNFLFVBQVEsS0FBSyxDQUFDO0FBQ2hCO0FBV08sU0FBUyxtQ0FBa0Q7QUFDaEUsc0JBQW9CO0FBQ3BCLFFBQU0sYUFBYSxRQUFRLElBQUksNEJBQTRCO0FBQzNELE1BQUksQ0FBQyxZQUFZO0FBQ2YsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGtCQUFrQixrQkFBa0IsVUFBVTtBQUNwRCxTQUFPLGlCQUFpQixlQUFlLElBQUksa0JBQWtCO0FBQy9EO0FBU08sU0FBUyxpQkFBaUIsaUJBQWtDO0FBQ2pFLFNBQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxlQUFlLEtBQUssSUFBSSxLQUFLLEVBQUUsWUFBWSxDQUFDO0FBQ2pGO0FBTU8sU0FBUyxzQkFBNEI7QUFDMUMsTUFBSSxXQUFXLGFBQWEsR0FBRztBQUM3QixZQUFRLFlBQVksYUFBYTtBQUFBLEVBQ25DO0FBQ0Y7QUFRQSxTQUFTLGtCQUFrQixZQUE0QjtBQUNyRCxTQUFPLFdBQVc7QUFBQSxJQUNoQixTQUFTO0FBQUEsSUFDVCxVQUFVO0FBQUEsSUFDVixhQUFhO0FBQUEsRUFDZixDQUFDLEVBQUUsWUFBWTtBQUNqQjsiLCJuYW1lcyI6W119
|
package/dist/lib/esm/git.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/// <reference path="./library-references.d.mts" />
|
|
2
|
+
/// <reference types="node" />
|
|
2
3
|
/**
|
|
3
4
|
* @file
|
|
4
5
|
*
|
|
@@ -11,7 +12,14 @@
|
|
|
11
12
|
*
|
|
12
13
|
* Asking git rather than parsing `.gitignore` is deliberate: it honors nested ignore files, `!` negations,
|
|
13
14
|
* `.git/info/exclude`, and the user's global excludes, at no cost to us.
|
|
15
|
+
*
|
|
16
|
+
* It also reads a tracked file as it is about to be COMMITTED ({@link readIndexContent}), for a gate that
|
|
17
|
+
* asserts something about those bytes. Such a gate typically runs from `nano-staged` beside `lint:fix` and
|
|
18
|
+
* `format`, which rewrite staged files in place, and nano-staged runs its per-pattern task groups with
|
|
19
|
+
* `Promise.all`, so a gate reading the working tree races the fixer. Reading the index makes the ordering
|
|
20
|
+
* irrelevant rather than enforced.
|
|
14
21
|
*/
|
|
22
|
+
import { Buffer } from 'node:buffer';
|
|
15
23
|
/**
|
|
16
24
|
* Options for {@link getNonIgnoredFiles}.
|
|
17
25
|
*/
|
|
@@ -35,3 +43,24 @@ export interface GetNonIgnoredFilesOptions {
|
|
|
35
43
|
* git repository (a tarball checkout, for instance). Callers fall back to their own listing in that case.
|
|
36
44
|
*/
|
|
37
45
|
export declare function getNonIgnoredFiles(options?: GetNonIgnoredFilesOptions): Promise<null | string[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Reads one tracked file's content out of the git index - stage 0, the bytes `git commit` would write.
|
|
48
|
+
*
|
|
49
|
+
* This spawns `git` directly rather than going through `execFromRoot`, for two reasons, either of which alone
|
|
50
|
+
* would be enough: `execFromRoot` decodes stdout as UTF-8, which a binary blob does not survive, and it strips
|
|
51
|
+
* one trailing newline, so every text file would read as differing from its source by its last line.
|
|
52
|
+
*
|
|
53
|
+
* The path is passed in the `:./<path>` form, which git resolves against the directory it runs from rather
|
|
54
|
+
* than against the top of the working tree, so this stays correct when `root` is a subpackage of the
|
|
55
|
+
* repository rather than its top.
|
|
56
|
+
*
|
|
57
|
+
* No smudge filter or line-ending conversion is applied: `git cat-file blob` hands the blob back verbatim.
|
|
58
|
+
*
|
|
59
|
+
* @param root - The directory the path is relative to, which is also the directory git is run from.
|
|
60
|
+
* @param repoRelativePath - The file's path relative to `root`, posix-spelled.
|
|
61
|
+
* @returns A {@link Promise} that resolves with the staged bytes, or with `null` when the path has no stage-0
|
|
62
|
+
* index entry - it is untracked, staged for deletion, or unmerged. It rejects on any other git failure, `not a
|
|
63
|
+
* git repository` among them, because the bytes a commit would write have no honest answer where there are no
|
|
64
|
+
* commits.
|
|
65
|
+
*/
|
|
66
|
+
export declare function readIndexContent(root: string, repoRelativePath: string): Promise<Buffer | null>;
|
package/dist/lib/esm/git.mjs
CHANGED
|
@@ -3,6 +3,8 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { Buffer } from "node:buffer";
|
|
7
|
+
import { spawn } from "node:child_process";
|
|
6
8
|
import { execFromRoot } from "./root.mjs";
|
|
7
9
|
const NUL_SEPARATOR = "\0";
|
|
8
10
|
async function getNonIgnoredFiles(options) {
|
|
@@ -24,7 +26,43 @@ async function getNonIgnoredFiles(options) {
|
|
|
24
26
|
}
|
|
25
27
|
return [...new Set(stdout.split(NUL_SEPARATOR).filter((path) => path !== ""))];
|
|
26
28
|
}
|
|
29
|
+
function readIndexContent(root, repoRelativePath) {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
const child = spawn("git", ["-C", root, "cat-file", "blob", `:./${repoRelativePath}`], {
|
|
32
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
33
|
+
windowsHide: true
|
|
34
|
+
});
|
|
35
|
+
const chunks = [];
|
|
36
|
+
let stderr = "";
|
|
37
|
+
child.stdout.on("data", (chunk) => {
|
|
38
|
+
chunks.push(chunk);
|
|
39
|
+
});
|
|
40
|
+
child.stderr.on("data", (chunk) => {
|
|
41
|
+
stderr += chunk.toString("utf-8");
|
|
42
|
+
});
|
|
43
|
+
child.on("error", (error) => {
|
|
44
|
+
reject(new Error(`Could not run \`git cat-file\` for ${repoRelativePath}.`, { cause: error }));
|
|
45
|
+
});
|
|
46
|
+
child.on("close", (exitCode) => {
|
|
47
|
+
if (exitCode === 0) {
|
|
48
|
+
resolve(Buffer.concat(chunks));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (isMissingIndexPath(stderr)) {
|
|
52
|
+
resolve(null);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const exitCodeText = exitCode === null ? "(null)" : String(exitCode);
|
|
56
|
+
reject(new Error(`\`git cat-file blob :./${repoRelativePath}\` failed with exit code ${exitCodeText}:
|
|
57
|
+
${stderr.trim()}`));
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function isMissingIndexPath(stderr) {
|
|
62
|
+
return stderr.includes("does not exist") || stderr.includes("not in the index") || stderr.includes("Not a valid object name");
|
|
63
|
+
}
|
|
27
64
|
export {
|
|
28
|
-
getNonIgnoredFiles
|
|
65
|
+
getNonIgnoredFiles,
|
|
66
|
+
readIndexContent
|
|
29
67
|
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICovXG5cbmltcG9ydCB7IGV4ZWNGcm9tUm9vdCB9IGZyb20gJy4vcm9vdC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIGdldE5vbklnbm9yZWRGaWxlc30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXQgcGF0aHNwZWNzIGxpbWl0aW5nIHRoZSBsaXN0aW5nLCBlLmcuIGBbJyoubWQnXWAuIFdoZW4gb21pdHRlZCwgZXZlcnkgbm9uLWlnbm9yZWQgZmlsZSBpcyBsaXN0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBbXWBcbiAgICovXG4gIHJlYWRvbmx5IHBhdHRlcm5zPzogcmVhZG9ubHkgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogU2VwYXJhdGVzIHRoZSBwYXRocyBpbiBgZ2l0IGxzLWZpbGVzIC16YCBvdXRwdXQuIFVzaW5nIHRoZSBOVUwgZm9ybSBhdm9pZHMgZ2l0J3MgcXVvdGluZyBvZiBwYXRocyB0aGF0XG4gKiBjb250YWluIHVudXN1YWwgY2hhcmFjdGVycywgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gYmUgdW5lc2NhcGVkLlxuICovXG5jb25zdCBOVUxfU0VQQVJBVE9SID0gJ1xcMCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIHJlcG9zaXRvcnkgZmlsZXMgdGhhdCBgLmdpdGlnbm9yZWAgZG9lcyBub3QgZXhjbHVkZS5cbiAqXG4gKiBDb3ZlcnMgYm90aCB0cmFja2VkIGZpbGVzIGFuZCB1bnRyYWNrZWQtYnV0LW5vdC1pZ25vcmVkIG9uZXMsIHNvIGEgYnJhbmQtbmV3IGZpbGUgaXMgY2hlY2tlZCBiZWZvcmUgaXQgaXNcbiAqIGV2ZXIgY29tbWl0dGVkLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgbWF0Y2hpbmcgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlciBhbmRcbiAqIHNlcGFyYXRlZCBieSBgL2A7IG9yIHdpdGggYG51bGxgIHdoZW4gZ2l0IGNhbm5vdCBhbnN3ZXIgXHUyMDE0IGl0IGlzIG5vdCBpbnN0YWxsZWQsIG9yIHRoZSBwcm9qZWN0IGlzIG5vdCBhXG4gKiBnaXQgcmVwb3NpdG9yeSAoYSB0YXJiYWxsIGNoZWNrb3V0LCBmb3IgaW5zdGFuY2UpLiBDYWxsZXJzIGZhbGwgYmFjayB0byB0aGVpciBvd24gbGlzdGluZyBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROb25JZ25vcmVkRmlsZXMob3B0aW9ucz86IEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmdbXT4ge1xuICBjb25zdCB7IHBhdHRlcm5zID0gW10gfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgJ2dpdCcsXG4gICAgJ2xzLWZpbGVzJyxcbiAgICAnLS1jYWNoZWQnLFxuICAgICctLW90aGVycycsXG4gICAgJy0tZXhjbHVkZS1zdGFuZGFyZCcsXG4gICAgJy16JyxcbiAgICAuLi5wYXR0ZXJucy5sZW5ndGggPiAwID8gWyctLScsIC4uLnBhdHRlcm5zXSA6IFtdXG4gIF07XG5cbiAgbGV0IHN0ZG91dDogc3RyaW5nO1xuICB0cnkge1xuICAgIHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdChjb21tYW5kLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYC0tY2FjaGVkIC0tb3RoZXJzYCBjYW4gbmFtZSB0aGUgc2FtZSBwYXRoIHR3aWNlIChlLmcuIGEgZmlsZSBzdGFnZWQgZm9yIGRlbGV0aW9uIHRoYXQgaXMgc3RpbGwgb24gZGlzaykuXG4gIHJldHVybiBbLi4ubmV3IFNldChzdGRvdXQuc3BsaXQoTlVMX1NFUEFSQVRPUikuZmlsdGVyKChwYXRoKSA9PiBwYXRoICE9PSAnJykpXTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7O0FBY0EsU0FBUyxvQkFBb0I7QUFrQjdCLE1BQU0sZ0JBQWdCO0FBYXRCLGVBQXNCLG1CQUFtQixTQUErRDtBQUN0RyxRQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxXQUFXLENBQUM7QUFDdEMsUUFBTSxVQUFVO0FBQUEsSUFDZDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHLFNBQVMsU0FBUyxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsSUFBSSxDQUFDO0FBQUEsRUFDbEQ7QUFFQSxNQUFJO0FBQ0osTUFBSTtBQUNGLGFBQVMsTUFBTSxhQUFhLFNBQVMsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUFBLEVBQ3hELFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUdBLFNBQU8sQ0FBQyxHQUFHLElBQUksSUFBSSxPQUFPLE1BQU0sYUFBYSxFQUFFLE9BQU8sQ0FBQyxTQUFTLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDL0U7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2dpdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEdpdC1kZXJpdmVkIGZpbGUgbGlzdGluZ3MgZm9yIHRoZSByZXBvLXdhbGtpbmcgc2NyaXB0cy5cbiAqXG4gKiBUb29saW5nIHRoYXQgd2Fsa3MgdGhlIHJlcG9zaXRvcnkgbXVzdCBza2lwIHdoYXRldmVyIGAuZ2l0aWdub3JlYCBza2lwcyBcdTIwMTQgb3RoZXJ3aXNlIGV2ZXJ5IHNjcmlwdCBncm93cyBpdHNcbiAqIG93biBoYW5kLW1haW50YWluZWQgaWdub3JlIGxpc3QsIHRoZSBsaXN0cyBkcmlmdCBhcGFydCwgYW5kIGEgcGF0aCB0aGF0IGlzIGdpdGlnbm9yZWQgYnV0IG5vdCBlbnVtZXJhdGVkXG4gKiAoYSBuZXN0ZWQgYG5vZGVfbW9kdWxlc2AgdW5kZXIgYSB0ZXN0IGZpeHR1cmUsIHNheSkgaXMgd2Fsa2VkIGFueXdheS4gTW9zdCB0b29scyBoYXZlIGEgbmF0aXZlIHN3aXRjaCBmb3JcbiAqIHRoaXM7IHRoZSBvbmVzIHRoYXQgZG8gbm90IHRha2UgYSBmaWxlIGxpc3QgaW5zdGVhZCwgYW5kIHRoYXQgaXMgd2hhdCB0aGlzIG1vZHVsZSBwcm9kdWNlcy5cbiAqXG4gKiBBc2tpbmcgZ2l0IHJhdGhlciB0aGFuIHBhcnNpbmcgYC5naXRpZ25vcmVgIGlzIGRlbGliZXJhdGU6IGl0IGhvbm9ycyBuZXN0ZWQgaWdub3JlIGZpbGVzLCBgIWAgbmVnYXRpb25zLFxuICogYC5naXQvaW5mby9leGNsdWRlYCwgYW5kIHRoZSB1c2VyJ3MgZ2xvYmFsIGV4Y2x1ZGVzLCBhdCBubyBjb3N0IHRvIHVzLlxuICpcbiAqIEl0IGFsc28gcmVhZHMgYSB0cmFja2VkIGZpbGUgYXMgaXQgaXMgYWJvdXQgdG8gYmUgQ09NTUlUVEVEICh7QGxpbmsgcmVhZEluZGV4Q29udGVudH0pLCBmb3IgYSBnYXRlIHRoYXRcbiAqIGFzc2VydHMgc29tZXRoaW5nIGFib3V0IHRob3NlIGJ5dGVzLiBTdWNoIGEgZ2F0ZSB0eXBpY2FsbHkgcnVucyBmcm9tIGBuYW5vLXN0YWdlZGAgYmVzaWRlIGBsaW50OmZpeGAgYW5kXG4gKiBgZm9ybWF0YCwgd2hpY2ggcmV3cml0ZSBzdGFnZWQgZmlsZXMgaW4gcGxhY2UsIGFuZCBuYW5vLXN0YWdlZCBydW5zIGl0cyBwZXItcGF0dGVybiB0YXNrIGdyb3VwcyB3aXRoXG4gKiBgUHJvbWlzZS5hbGxgLCBzbyBhIGdhdGUgcmVhZGluZyB0aGUgd29ya2luZyB0cmVlIHJhY2VzIHRoZSBmaXhlci4gUmVhZGluZyB0aGUgaW5kZXggbWFrZXMgdGhlIG9yZGVyaW5nXG4gKiBpcnJlbGV2YW50IHJhdGhlciB0aGFuIGVuZm9yY2VkLlxuICovXG5cbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ25vZGU6YnVmZmVyJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnbm9kZTpjaGlsZF9wcm9jZXNzJztcblxuaW1wb3J0IHsgZXhlY0Zyb21Sb290IH0gZnJvbSAnLi9yb290LnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgZ2V0Tm9uSWdub3JlZEZpbGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXROb25JZ25vcmVkRmlsZXNPcHRpb25zIHtcbiAgLyoqXG4gICAqIEdpdCBwYXRoc3BlY3MgbGltaXRpbmcgdGhlIGxpc3RpbmcsIGUuZy4gYFsnKi5tZCddYC4gV2hlbiBvbWl0dGVkLCBldmVyeSBub24taWdub3JlZCBmaWxlIGlzIGxpc3RlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYFtdYFxuICAgKi9cbiAgcmVhZG9ubHkgcGF0dGVybnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBTZXBhcmF0ZXMgdGhlIHBhdGhzIGluIGBnaXQgbHMtZmlsZXMgLXpgIG91dHB1dC4gVXNpbmcgdGhlIE5VTCBmb3JtIGF2b2lkcyBnaXQncyBxdW90aW5nIG9mIHBhdGhzIHRoYXRcbiAqIGNvbnRhaW4gdW51c3VhbCBjaGFyYWN0ZXJzLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byBiZSB1bmVzY2FwZWQuXG4gKi9cbmNvbnN0IE5VTF9TRVBBUkFUT1IgPSAnXFwwJztcblxuLyoqXG4gKiBMaXN0cyB0aGUgcmVwb3NpdG9yeSBmaWxlcyB0aGF0IGAuZ2l0aWdub3JlYCBkb2VzIG5vdCBleGNsdWRlLlxuICpcbiAqIENvdmVycyBib3RoIHRyYWNrZWQgZmlsZXMgYW5kIHVudHJhY2tlZC1idXQtbm90LWlnbm9yZWQgb25lcywgc28gYSBicmFuZC1uZXcgZmlsZSBpcyBjaGVja2VkIGJlZm9yZSBpdCBpc1xuICogZXZlciBjb21taXR0ZWQuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIEdldE5vbklnbm9yZWRGaWxlc09wdGlvbnN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBtYXRjaGluZyBwYXRocywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyIGFuZFxuICogc2VwYXJhdGVkIGJ5IGAvYDsgb3Igd2l0aCBgbnVsbGAgd2hlbiBnaXQgY2Fubm90IGFuc3dlciBcdTIwMTQgaXQgaXMgbm90IGluc3RhbGxlZCwgb3IgdGhlIHByb2plY3QgaXMgbm90IGFcbiAqIGdpdCByZXBvc2l0b3J5IChhIHRhcmJhbGwgY2hlY2tvdXQsIGZvciBpbnN0YW5jZSkuIENhbGxlcnMgZmFsbCBiYWNrIHRvIHRoZWlyIG93biBsaXN0aW5nIGluIHRoYXQgY2FzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE5vbklnbm9yZWRGaWxlcyhvcHRpb25zPzogR2V0Tm9uSWdub3JlZEZpbGVzT3B0aW9ucyk6IFByb21pc2U8bnVsbCB8IHN0cmluZ1tdPiB7XG4gIGNvbnN0IHsgcGF0dGVybnMgPSBbXSB9ID0gb3B0aW9ucyA/PyB7fTtcbiAgY29uc3QgY29tbWFuZCA9IFtcbiAgICAnZ2l0JyxcbiAgICAnbHMtZmlsZXMnLFxuICAgICctLWNhY2hlZCcsXG4gICAgJy0tb3RoZXJzJyxcbiAgICAnLS1leGNsdWRlLXN0YW5kYXJkJyxcbiAgICAnLXonLFxuICAgIC4uLnBhdHRlcm5zLmxlbmd0aCA+IDAgPyBbJy0tJywgLi4ucGF0dGVybnNdIDogW11cbiAgXTtcblxuICBsZXQgc3Rkb3V0OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgc3Rkb3V0ID0gYXdhaXQgZXhlY0Zyb21Sb290KGNvbW1hbmQsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBgLS1jYWNoZWQgLS1vdGhlcnNgIGNhbiBuYW1lIHRoZSBzYW1lIHBhdGggdHdpY2UgKGUuZy4gYSBmaWxlIHN0YWdlZCBmb3IgZGVsZXRpb24gdGhhdCBpcyBzdGlsbCBvbiBkaXNrKS5cbiAgcmV0dXJuIFsuLi5uZXcgU2V0KHN0ZG91dC5zcGxpdChOVUxfU0VQQVJBVE9SKS5maWx0ZXIoKHBhdGgpID0+IHBhdGggIT09ICcnKSldO1xufVxuXG4vKipcbiAqIFJlYWRzIG9uZSB0cmFja2VkIGZpbGUncyBjb250ZW50IG91dCBvZiB0aGUgZ2l0IGluZGV4IC0gc3RhZ2UgMCwgdGhlIGJ5dGVzIGBnaXQgY29tbWl0YCB3b3VsZCB3cml0ZS5cbiAqXG4gKiBUaGlzIHNwYXducyBgZ2l0YCBkaXJlY3RseSByYXRoZXIgdGhhbiBnb2luZyB0aHJvdWdoIGBleGVjRnJvbVJvb3RgLCBmb3IgdHdvIHJlYXNvbnMsIGVpdGhlciBvZiB3aGljaCBhbG9uZVxuICogd291bGQgYmUgZW5vdWdoOiBgZXhlY0Zyb21Sb290YCBkZWNvZGVzIHN0ZG91dCBhcyBVVEYtOCwgd2hpY2ggYSBiaW5hcnkgYmxvYiBkb2VzIG5vdCBzdXJ2aXZlLCBhbmQgaXQgc3RyaXBzXG4gKiBvbmUgdHJhaWxpbmcgbmV3bGluZSwgc28gZXZlcnkgdGV4dCBmaWxlIHdvdWxkIHJlYWQgYXMgZGlmZmVyaW5nIGZyb20gaXRzIHNvdXJjZSBieSBpdHMgbGFzdCBsaW5lLlxuICpcbiAqIFRoZSBwYXRoIGlzIHBhc3NlZCBpbiB0aGUgYDouLzxwYXRoPmAgZm9ybSwgd2hpY2ggZ2l0IHJlc29sdmVzIGFnYWluc3QgdGhlIGRpcmVjdG9yeSBpdCBydW5zIGZyb20gcmF0aGVyXG4gKiB0aGFuIGFnYWluc3QgdGhlIHRvcCBvZiB0aGUgd29ya2luZyB0cmVlLCBzbyB0aGlzIHN0YXlzIGNvcnJlY3Qgd2hlbiBgcm9vdGAgaXMgYSBzdWJwYWNrYWdlIG9mIHRoZVxuICogcmVwb3NpdG9yeSByYXRoZXIgdGhhbiBpdHMgdG9wLlxuICpcbiAqIE5vIHNtdWRnZSBmaWx0ZXIgb3IgbGluZS1lbmRpbmcgY29udmVyc2lvbiBpcyBhcHBsaWVkOiBgZ2l0IGNhdC1maWxlIGJsb2JgIGhhbmRzIHRoZSBibG9iIGJhY2sgdmVyYmF0aW0uXG4gKlxuICogQHBhcmFtIHJvb3QgLSBUaGUgZGlyZWN0b3J5IHRoZSBwYXRoIGlzIHJlbGF0aXZlIHRvLCB3aGljaCBpcyBhbHNvIHRoZSBkaXJlY3RvcnkgZ2l0IGlzIHJ1biBmcm9tLlxuICogQHBhcmFtIHJlcG9SZWxhdGl2ZVBhdGggLSBUaGUgZmlsZSdzIHBhdGggcmVsYXRpdmUgdG8gYHJvb3RgLCBwb3NpeC1zcGVsbGVkLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzdGFnZWQgYnl0ZXMsIG9yIHdpdGggYG51bGxgIHdoZW4gdGhlIHBhdGggaGFzIG5vIHN0YWdlLTBcbiAqIGluZGV4IGVudHJ5IC0gaXQgaXMgdW50cmFja2VkLCBzdGFnZWQgZm9yIGRlbGV0aW9uLCBvciB1bm1lcmdlZC4gSXQgcmVqZWN0cyBvbiBhbnkgb3RoZXIgZ2l0IGZhaWx1cmUsIGBub3QgYVxuICogZ2l0IHJlcG9zaXRvcnlgIGFtb25nIHRoZW0sIGJlY2F1c2UgdGhlIGJ5dGVzIGEgY29tbWl0IHdvdWxkIHdyaXRlIGhhdmUgbm8gaG9uZXN0IGFuc3dlciB3aGVyZSB0aGVyZSBhcmUgbm9cbiAqIGNvbW1pdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkSW5kZXhDb250ZW50KHJvb3Q6IHN0cmluZywgcmVwb1JlbGF0aXZlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgLypcbiAgICAgKiBObyBzaGVsbDogYSBwYXRoIGlzIHBhc3NlZCBhcyBhbiBhcmd2IGVudHJ5IHJhdGhlciB0aGFuIGFzIHRleHQgc29tZXRoaW5nIGhhcyB0byBxdW90ZSwgYW5kIHRoZVxuICAgICAqIGxlYWRpbmcgYDpgIGlzIGEgZ2l0IHJldmlzaW9uIHNpZ2lsIHRoYXQgYSBzaGVsbCB3b3VsZCBiZSBmcmVlIHRvIHJlYWQgYXMgaXRzIG93bi5cbiAgICAgKi9cbiAgICBjb25zdCBjaGlsZCA9IHNwYXduKCdnaXQnLCBbJy1DJywgcm9vdCwgJ2NhdC1maWxlJywgJ2Jsb2InLCBgOi4vJHtyZXBvUmVsYXRpdmVQYXRofWBdLCB7XG4gICAgICBzdGRpbzogWydpZ25vcmUnLCAncGlwZScsICdwaXBlJ10sXG4gICAgICB3aW5kb3dzSGlkZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3QgY2h1bmtzOiBCdWZmZXJbXSA9IFtdO1xuICAgIGxldCBzdGRlcnIgPSAnJztcblxuICAgIGNoaWxkLnN0ZG91dC5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiB7XG4gICAgICBjaHVua3MucHVzaChjaHVuayk7XG4gICAgfSk7XG5cbiAgICBjaGlsZC5zdGRlcnIub24oJ2RhdGEnLCAoY2h1bms6IEJ1ZmZlcikgPT4ge1xuICAgICAgc3RkZXJyICs9IGNodW5rLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Vycm9yJywgKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgcmVqZWN0KG5ldyBFcnJvcihgQ291bGQgbm90IHJ1biBcXGBnaXQgY2F0LWZpbGVcXGAgZm9yICR7cmVwb1JlbGF0aXZlUGF0aH0uYCwgeyBjYXVzZTogZXJyb3IgfSkpO1xuICAgIH0pO1xuXG4gICAgY2hpbGQub24oJ2Nsb3NlJywgKGV4aXRDb2RlOiBudWxsIHwgbnVtYmVyKSA9PiB7XG4gICAgICBpZiAoZXhpdENvZGUgPT09IDApIHtcbiAgICAgICAgcmVzb2x2ZShCdWZmZXIuY29uY2F0KGNodW5rcykpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8qXG4gICAgICAgKiBHaXQgYW5zd2VycyBhIHBhdGggaXQgY2Fubm90IGZpbmQgaW4gdGhlIGluZGV4IHdpdGggZXhpdCAxMjggYW5kIGEgYGZhdGFsOmAgbGluZSwgYW5kIHNvIGRvZXMgYSBmb2xkZXJcbiAgICAgICAqIHRoYXQgaXMgbm90IGEgcmVwb3NpdG9yeSwgc28gdGhlIHN0ZGVyciB0ZXh0IGlzIHdoYXQgc2VwYXJhdGVzIHRoZSBhYnNlbmNlIG9mIGEgc3RhZ2VkIGJsb2IgZnJvbVxuICAgICAgICogZXZlcnl0aGluZyBlbHNlLlxuICAgICAgICovXG4gICAgICBpZiAoaXNNaXNzaW5nSW5kZXhQYXRoKHN0ZGVycikpIHtcbiAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBleGl0Q29kZVRleHQgPSBleGl0Q29kZSA9PT0gbnVsbCA/ICcobnVsbCknIDogU3RyaW5nKGV4aXRDb2RlKTtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoYFxcYGdpdCBjYXQtZmlsZSBibG9iIDouLyR7cmVwb1JlbGF0aXZlUGF0aH1cXGAgZmFpbGVkIHdpdGggZXhpdCBjb2RlICR7ZXhpdENvZGVUZXh0fTpcXG4ke3N0ZGVyci50cmltKCl9YCkpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaXNNaXNzaW5nSW5kZXhQYXRoKHN0ZGVycjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBzdGRlcnIuaW5jbHVkZXMoJ2RvZXMgbm90IGV4aXN0JykgfHwgc3RkZXJyLmluY2x1ZGVzKCdub3QgaW4gdGhlIGluZGV4JykgfHwgc3RkZXJyLmluY2x1ZGVzKCdOb3QgYSB2YWxpZCBvYmplY3QgbmFtZScpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFvQkEsU0FBUyxjQUFjO0FBQ3ZCLFNBQVMsYUFBYTtBQUV0QixTQUFTLG9CQUFvQjtBQWtCN0IsTUFBTSxnQkFBZ0I7QUFhdEIsZUFBc0IsbUJBQW1CLFNBQStEO0FBQ3RHLFFBQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxJQUFJLFdBQVcsQ0FBQztBQUN0QyxRQUFNLFVBQVU7QUFBQSxJQUNkO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUcsU0FBUyxTQUFTLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxJQUFJLENBQUM7QUFBQSxFQUNsRDtBQUVBLE1BQUk7QUFDSixNQUFJO0FBQ0YsYUFBUyxNQUFNLGFBQWEsU0FBUyxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQUEsRUFDeEQsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBR0EsU0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLE9BQU8sTUFBTSxhQUFhLEVBQUUsT0FBTyxDQUFDLFNBQVMsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUMvRTtBQXNCTyxTQUFTLGlCQUFpQixNQUFjLGtCQUFrRDtBQUMvRixTQUFPLElBQUksUUFBUSxDQUFDLFNBQVMsV0FBVztBQUt0QyxVQUFNLFFBQVEsTUFBTSxPQUFPLENBQUMsTUFBTSxNQUFNLFlBQVksUUFBUSxNQUFNLGdCQUFnQixFQUFFLEdBQUc7QUFBQSxNQUNyRixPQUFPLENBQUMsVUFBVSxRQUFRLE1BQU07QUFBQSxNQUNoQyxhQUFhO0FBQUEsSUFDZixDQUFDO0FBRUQsVUFBTSxTQUFtQixDQUFDO0FBQzFCLFFBQUksU0FBUztBQUViLFVBQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFrQjtBQUN6QyxhQUFPLEtBQUssS0FBSztBQUFBLElBQ25CLENBQUM7QUFFRCxVQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBa0I7QUFDekMsZ0JBQVUsTUFBTSxTQUFTLE9BQU87QUFBQSxJQUNsQyxDQUFDO0FBRUQsVUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFpQjtBQUNsQyxhQUFPLElBQUksTUFBTSxzQ0FBc0MsZ0JBQWdCLEtBQUssRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDO0FBQUEsSUFDL0YsQ0FBQztBQUVELFVBQU0sR0FBRyxTQUFTLENBQUMsYUFBNEI7QUFDN0MsVUFBSSxhQUFhLEdBQUc7QUFDbEIsZ0JBQVEsT0FBTyxPQUFPLE1BQU0sQ0FBQztBQUM3QjtBQUFBLE1BQ0Y7QUFPQSxVQUFJLG1CQUFtQixNQUFNLEdBQUc7QUFDOUIsZ0JBQVEsSUFBSTtBQUNaO0FBQUEsTUFDRjtBQUVBLFlBQU0sZUFBZSxhQUFhLE9BQU8sV0FBVyxPQUFPLFFBQVE7QUFDbkUsYUFBTyxJQUFJLE1BQU0sMEJBQTBCLGdCQUFnQiw0QkFBNEIsWUFBWTtBQUFBLEVBQU0sT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQUEsSUFDM0gsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIO0FBRUEsU0FBUyxtQkFBbUIsUUFBeUI7QUFDbkQsU0FBTyxPQUFPLFNBQVMsZ0JBQWdCLEtBQUssT0FBTyxTQUFTLGtCQUFrQixLQUFLLE9BQU8sU0FBUyx5QkFBeUI7QUFDOUg7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -13,6 +13,17 @@ export interface LintOptions {
|
|
|
13
13
|
* `markdownlint-cli2` runs with its own defaults.
|
|
14
14
|
*/
|
|
15
15
|
readonly defaultConfigFilePath?: string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Globs, relative to the root folder, of markdown files to leave out of the `linkinator` pass only;
|
|
18
|
+
* `markdownlint-cli2` still lints them.
|
|
19
|
+
*
|
|
20
|
+
* For a documentation site whose pages link to each other base-absolutely (`/<site-base>/guides/...`): those
|
|
21
|
+
* links resolve only against the BUILT site, so `linkinator` reports each one as a 404, and the site's own
|
|
22
|
+
* build is what checks them.
|
|
23
|
+
*
|
|
24
|
+
* @example `['docs/**']`
|
|
25
|
+
*/
|
|
26
|
+
readonly linkCheckExcludeGlobs?: readonly string[] | undefined;
|
|
16
27
|
/**
|
|
17
28
|
* Optional file paths to lint. If omitted, lints the entire project.
|
|
18
29
|
*/
|
|
@@ -44,7 +44,10 @@ import {
|
|
|
44
44
|
cp,
|
|
45
45
|
glob
|
|
46
46
|
} from "node:fs/promises";
|
|
47
|
-
import {
|
|
47
|
+
import {
|
|
48
|
+
matchesGlob,
|
|
49
|
+
relative
|
|
50
|
+
} from "node:path";
|
|
48
51
|
import { getNonIgnoredFiles } from "../git.mjs";
|
|
49
52
|
import { resolveToolCommand } from "../package-manager.mjs";
|
|
50
53
|
import { RepoPaths } from "../repo-paths.mjs";
|
|
@@ -58,7 +61,7 @@ import {
|
|
|
58
61
|
NODE_MODULES_IGNORE_GLOB
|
|
59
62
|
} from "./markdownlint-ignores.mjs";
|
|
60
63
|
async function lint(options) {
|
|
61
|
-
const { defaultConfigFilePath, paths, shouldFix = false } = options ?? {};
|
|
64
|
+
const { defaultConfigFilePath, linkCheckExcludeGlobs = [], paths, shouldFix = false } = options ?? {};
|
|
62
65
|
const configFiles = [
|
|
63
66
|
RepoPaths.MarkdownlintCli2ConfigJsonc,
|
|
64
67
|
RepoPaths.MarkdownlintCli2ConfigYaml,
|
|
@@ -83,6 +86,10 @@ async function lint(options) {
|
|
|
83
86
|
await execFromRoot([...resolveToolCommand({ tool: "markdownlint-cli2" }), ...shouldFix ? ["--fix"] : [], { batchedArguments: targets }]);
|
|
84
87
|
const rootFolder = getRootFolder() ?? process.cwd();
|
|
85
88
|
const mdFiles = paths?.length ? paths.map((p) => relative(rootFolder, p).replaceAll("\\", "/") || p) : await getMarkdownFiles();
|
|
89
|
+
const linkCheckFiles = mdFiles.filter((mdFile) => linkCheckExcludeGlobs.every((excludeGlob) => !matchesGlob(mdFile, excludeGlob)));
|
|
90
|
+
if (linkCheckFiles.length === 0) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
86
93
|
await execFromRoot([
|
|
87
94
|
...resolveToolCommand({ tool: "linkinator" }),
|
|
88
95
|
"--retry",
|
|
@@ -95,7 +102,7 @@ async function lint(options) {
|
|
|
95
102
|
String.raw`https://www\.npmjs\.com/package/`,
|
|
96
103
|
"--url-rewrite-replace",
|
|
97
104
|
"https://registry.npmjs.org/",
|
|
98
|
-
{ batchedArguments:
|
|
105
|
+
{ batchedArguments: linkCheckFiles }
|
|
99
106
|
]);
|
|
100
107
|
}
|
|
101
108
|
const MARKDOWN_PATHSPEC = "*.md";
|
|
@@ -112,4 +119,4 @@ async function getMarkdownFiles() {
|
|
|
112
119
|
export {
|
|
113
120
|
lint
|
|
114
121
|
};
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmltcG9ydCB7IGdldE5vbklnbm9yZWRGaWxlcyB9IGZyb20gJy4uL2dpdC50cyc7XG5pbXBvcnQgeyByZXNvbHZlVG9vbENvbW1hbmQgfSBmcm9tICcuLi9wYWNrYWdlLW1hbmFnZXIudHMnO1xuaW1wb3J0IHsgUmVwb1BhdGhzIH0gZnJvbSAnLi4vcmVwby1wYXRocy50cyc7XG5pbXBvcnQge1xuICBleGVjRnJvbVJvb3QsXG4gIGdldFJvb3RGb2xkZXIsXG4gIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlXG59IGZyb20gJy4uL3Jvb3QudHMnO1xuaW1wb3J0IHtcbiAgY2hlY2tJc0luTm9kZU1vZHVsZXMsXG4gIE5PREVfTU9EVUxFU19JR05PUkVfR0xPQlxufSBmcm9tICcuL21hcmtkb3dubGludC1pZ25vcmVzLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB0aGUge0BsaW5rIGxpbnR9IGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbnRPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgY29waWVkIHRvIHRoZSBwcm9qZWN0IHJvb3Qgd2hlbiB0aGUgcHJvamVjdCBoYXMgbm9uZS4gV2l0aG91dCBpdCxcbiAgICogYG1hcmtkb3dubGludC1jbGkyYCBydW5zIHdpdGggaXRzIG93biBkZWZhdWx0cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRDb25maWdGaWxlUGF0aD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBwYXRocywgc2hvdWxkRml4ID0gZmFsc2UgfSA9IG9wdGlvbnMgPz8ge307XG4gIGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENsaTJDb25maWdZYW1sLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnTWpzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdKc29uYyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbixcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnWW1sLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdDanMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ01qc1xuICBdO1xuXG4gIGNvbnN0IGRvZXNDb25maWdGaWxlRXhpc3QgPSBjb25maWdGaWxlcy5zb21lKChjb25maWdGaWxlKSA9PiB7XG4gICAgY29uc3QgY29uZmlnRmlsZVBhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZSh7IHBhdGg6IGNvbmZpZ0ZpbGUgfSk7XG4gICAgcmV0dXJuIGV4aXN0c1N5bmMoY29uZmlnRmlsZVBhdGgpO1xuICB9KTtcblxuICBpZiAoIWRvZXNDb25maWdGaWxlRXhpc3QgJiYgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB7XG4gICAgZ2V0TGliRGVidWdnZXIoJ21hcmtkb3dubGludDpsaW50JykoJ21hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUgbm90IGZvdW5kLiBDcmVhdGluZyBkZWZhdWx0IGNvbmZpZy4uLicpO1xuICAgIGF3YWl0IGNwKGRlZmF1bHRDb25maWdGaWxlUGF0aCwgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBiYXNlbmFtZShkZWZhdWx0Q29uZmlnRmlsZVBhdGgpIH0pKTtcbiAgfVxuXG4gIC8qIHY4IGlnbm9yZSBzdGFydCAtLSBUaGUgcGF0aHMtcHJvdmlkZWQgYnJhbmNoZXMgYXJlIG9ubHkgZXhlcmNpc2VkIGJ5IGNvbnN1bWVyIHByb2plY3RzIHBhc3NpbmcgZmlsZSBsaXN0cy4gKi9cbiAgY29uc3QgdGFyZ2V0cyA9IHBhdGhzPy5sZW5ndGggPyBwYXRocyA6IFtSZXBvUGF0aHMuQ3VycmVudEZvbGRlcl07XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbLi4ucmVzb2x2ZVRvb2xDb21tYW5kKHsgdG9vbDogJ21hcmtkb3dubGludC1jbGkyJyB9KSwgLi4uKHNob3VsZEZpeCA/IFsnLS1maXgnXSA6IFtdKSwgeyBiYXRjaGVkQXJndW1lbnRzOiB0YXJnZXRzIH1dKTtcblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaCBpcyBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHJvb3RGb2xkZXIgPSBnZXRSb290Rm9sZGVyKCkgPz8gcHJvY2Vzcy5jd2QoKTtcbiAgY29uc3QgbWRGaWxlcyA9IHBhdGhzPy5sZW5ndGhcbiAgICA/IHBhdGhzLm1hcCgocCkgPT4gcmVsYXRpdmUocm9vdEZvbGRlciwgcCkucmVwbGFjZUFsbCgnXFxcXCcsICcvJykgfHwgcClcbiAgICA6IGF3YWl0IGdldE1hcmtkb3duRmlsZXMoKTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgYXdhaXQgZXhlY0Zyb21Sb290KFtcbiAgICAuLi5yZXNvbHZlVG9vbENvbW1hbmQoeyB0b29sOiAnbGlua2luYXRvcicgfSksXG4gICAgJy0tcmV0cnknLFxuICAgICctLXJldHJ5LWVycm9ycycsXG4gICAgJy0tcmV0cnktZXJyb3JzLWNvdW50JyxcbiAgICAnMycsXG4gICAgJy0tcmV0cnktZXJyb3JzLWppdHRlcicsXG4gICAgJzUnLFxuICAgICctLXVybC1yZXdyaXRlLXNlYXJjaCcsXG4gICAgU3RyaW5nLnJhd2BodHRwczovL3d3d1xcLm5wbWpzXFwuY29tL3BhY2thZ2UvYCxcbiAgICAnLS11cmwtcmV3cml0ZS1yZXBsYWNlJyxcbiAgICAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJyxcbiAgICB7IGJhdGNoZWRBcmd1bWVudHM6IG1kRmlsZXMgfVxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2l0IHBhdGhzcGVjIG1hdGNoaW5nIGV2ZXJ5IG1hcmtkb3duIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnksIGF0IGFueSBkZXB0aC5cbiAqL1xuY29uc3QgTUFSS0RPV05fUEFUSFNQRUMgPSAnKi5tZCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIG1hcmtkb3duIGZpbGVzIHRvIGhhbmQgdG8gYGxpbmtpbmF0b3JgLlxuICpcbiAqIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCByYXRoZXIgdGhhbiBhbiBpZ25vcmUgY29uZmlndXJhdGlvbiwgc28gdGhlIGdpdGlnbm9yZWQgZmlsZXMgaGF2ZSB0byBiZVxuICogZHJvcHBlZCBiZWZvcmUgaXQgaXMgaW52b2tlZC4gR2l0IGl0c2VsZiBhbnN3ZXJzIHRoYXQgKG5lc3RlZCBpZ25vcmUgZmlsZXMsIGAhYCBuZWdhdGlvbnMgYW5kIGFsbCk7IHRoZVxuICogaGFuZC1tYWludGFpbmVkIGdsb2IgZXhjbHVzaW9ucyBiZWxvdyBhcmUgb25seSB0aGUgZmFsbGJhY2sgZm9yIGEgY2hlY2tvdXQgd2l0aG91dCBnaXQsIGFuZCB0aGV5IGFyZSB0aGVcbiAqIHZlcnkgbGlzdHMgdGhpcyBpbmRpcmVjdGlvbiBleGlzdHMgdG8gc3RvcCBmcm9tIGRyaWZ0aW5nLlxuICpcbiAqIFRoZSBgbm9kZV9tb2R1bGVzYCBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUgZ2l0LWRlcml2ZWQgbGlzdCB0b28sIGFuZCBkZWxpYmVyYXRlbHkgc286IGdpdCBvbmx5IHNraXBzXG4gKiB3aGF0IHRoZSByZXBvc2l0b3J5IGFza2VkIGl0IHRvIHNraXAsIGFuZCBhIHJlcG9zaXRvcnkgY2FuIGRlbGliZXJhdGVseSBUUkFDSyBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgXG4gKiB0cmVlLiBUaGF0IGlzIHRoZSBvbmUgZXhjbHVzaW9uIGAuZ2l0aWdub3JlYCBjYW5ub3QgYW5zd2VyIOKAlCBzZWUgYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC4gQXBwbHlpbmcgaXRcbiAqIGhlcmUga2VlcHMgYGxpbmtpbmF0b3JgIGluIHN0ZXAgd2l0aCB0aGUgbWFya2Rvd25saW50IGhhbGYsIHdoaWNoIGlnbm9yZXMgdGhlIHNhbWUgcGF0aHMgYnkgZ2xvYi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG1hcmtkb3duIGZpbGUgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25GaWxlcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG5vbklnbm9yZWRGaWxlcyA9IGF3YWl0IGdldE5vbklnbm9yZWRGaWxlcyh7IHBhdHRlcm5zOiBbTUFSS0RPV05fUEFUSFNQRUNdIH0pO1xuICByZXR1cm4gbm9uSWdub3JlZEZpbGVzXG4gICAgPyBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpXG4gICAgOiAoYXdhaXQgdG9BcnJheShnbG9iKFsnKiovKi5tZCddLCB7XG4gICAgICBleGNsdWRlOiBbXG4gICAgICAgICcuZ2l0LyoqJyxcbiAgICAgICAgJ2Rpc3QvKionLFxuICAgICAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgICAgIF1cbiAgICB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsZUFBZTtBQUN4QixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGdCQUFnQjtBQUN6QixTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsZ0JBQWdCO0FBRXpCLFNBQVMsMEJBQTBCO0FBQ25DLFNBQVMsMEJBQTBCO0FBQ25DLFNBQVMsaUJBQWlCO0FBQzFCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBOEJQLGVBQXNCLEtBQUssU0FBc0M7QUFDL0QsUUFBTSxFQUFFLHVCQUF1QixPQUFPLFlBQVksTUFBTSxJQUFJLFdBQVcsQ0FBQztBQUN4RSxRQUFNLGNBQWM7QUFBQSxJQUNsQixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsSUFDVixVQUFVO0FBQUEsRUFDWjtBQUVBLFFBQU0sc0JBQXNCLFlBQVksS0FBSyxDQUFDLGVBQWU7QUFDM0QsVUFBTSxpQkFBaUIsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkUsV0FBTyxXQUFXLGNBQWM7QUFBQSxFQUNsQyxDQUFDO0FBRUQsTUFBSSxDQUFDLHVCQUF1Qix1QkFBdUI7QUFDakQsbUJBQWUsbUJBQW1CLEVBQUUsdUVBQXVFO0FBQzNHLFVBQU0sR0FBRyx1QkFBdUIsd0JBQXdCLEVBQUUsTUFBTSxTQUFTLHFCQUFxQixFQUFFLENBQUMsQ0FBQztBQUFBLEVBQ3BHO0FBR0EsUUFBTSxVQUFVLE9BQU8sU0FBUyxRQUFRLENBQUMsVUFBVSxhQUFhO0FBRWhFLFFBQU0sYUFBYSxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyxHQUFHLEdBQUksWUFBWSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUksRUFBRSxrQkFBa0IsUUFBUSxDQUFDLENBQUM7QUFHekksUUFBTSxhQUFhLGNBQWMsS0FBSyxRQUFRLElBQUk7QUFDbEQsUUFBTSxVQUFVLE9BQU8sU0FDbkIsTUFBTSxJQUFJLENBQUMsTUFBTSxTQUFTLFlBQVksQ0FBQyxFQUFFLFdBQVcsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUNuRSxNQUFNLGlCQUFpQjtBQUUzQixRQUFNLGFBQWE7QUFBQSxJQUNqQixHQUFHLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQUEsSUFDNUM7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLE9BQU87QUFBQSxJQUNQO0FBQUEsSUFDQTtBQUFBLElBQ0EsRUFBRSxrQkFBa0IsUUFBUTtBQUFBLEVBQzlCLENBQUM7QUFDSDtBQUtBLE1BQU0sb0JBQW9CO0FBaUIxQixlQUFlLG1CQUFzQztBQUNuRCxRQUFNLGtCQUFrQixNQUFNLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0FBQ2xGLFNBQU8sa0JBQ0gsZ0JBQWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUMzRCxNQUFNLFFBQVEsS0FBSyxDQUFDLFNBQVMsR0FBRztBQUFBLElBQ2pDLFNBQVM7QUFBQSxNQUNQO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRixDQUFDLENBQUM7QUFDTjsiLCJuYW1lcyI6W119
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saW50ZXJzL21hcmtkb3dubGludC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogTGludCBtYXJrZG93biBkb2N1bWVudGF0aW9uIHVzaW5nIGBtYXJrZG93bmxpbnQtY2xpMmAgYW5kIGBsaW5raW5hdG9yYC5cbiAqL1xuXG5pbXBvcnQgeyB0b0FycmF5IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jJztcbmltcG9ydCB7IGdldExpYkRlYnVnZ2VyIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2RlYnVnJztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL3BhdGgnO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGdsb2Jcbn0gZnJvbSAnbm9kZTpmcy9wcm9taXNlcyc7XG5pbXBvcnQge1xuICBtYXRjaGVzR2xvYixcbiAgcmVsYXRpdmVcbn0gZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgZ2V0Tm9uSWdub3JlZEZpbGVzIH0gZnJvbSAnLi4vZ2l0LnRzJztcbmltcG9ydCB7IHJlc29sdmVUb29sQ29tbWFuZCB9IGZyb20gJy4uL3BhY2thZ2UtbWFuYWdlci50cyc7XG5pbXBvcnQgeyBSZXBvUGF0aHMgfSBmcm9tICcuLi9yZXBvLXBhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdEZvbGRlcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi4vcm9vdC50cyc7XG5pbXBvcnQge1xuICBjaGVja0lzSW5Ob2RlTW9kdWxlcyxcbiAgTk9ERV9NT0RVTEVTX0lHTk9SRV9HTE9CXG59IGZyb20gJy4vbWFya2Rvd25saW50LWlnbm9yZXMudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHRoZSB7QGxpbmsgbGludH0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGludE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjb3BpZWQgdG8gdGhlIHByb2plY3Qgcm9vdCB3aGVuIHRoZSBwcm9qZWN0IGhhcyBub25lLiBXaXRob3V0IGl0LFxuICAgKiBgbWFya2Rvd25saW50LWNsaTJgIHJ1bnMgd2l0aCBpdHMgb3duIGRlZmF1bHRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBHbG9icywgcmVsYXRpdmUgdG8gdGhlIHJvb3QgZm9sZGVyLCBvZiBtYXJrZG93biBmaWxlcyB0byBsZWF2ZSBvdXQgb2YgdGhlIGBsaW5raW5hdG9yYCBwYXNzIG9ubHk7XG4gICAqIGBtYXJrZG93bmxpbnQtY2xpMmAgc3RpbGwgbGludHMgdGhlbS5cbiAgICpcbiAgICogRm9yIGEgZG9jdW1lbnRhdGlvbiBzaXRlIHdob3NlIHBhZ2VzIGxpbmsgdG8gZWFjaCBvdGhlciBiYXNlLWFic29sdXRlbHkgKGAvPHNpdGUtYmFzZT4vZ3VpZGVzLy4uLmApOiB0aG9zZVxuICAgKiBsaW5rcyByZXNvbHZlIG9ubHkgYWdhaW5zdCB0aGUgQlVJTFQgc2l0ZSwgc28gYGxpbmtpbmF0b3JgIHJlcG9ydHMgZWFjaCBvbmUgYXMgYSA0MDQsIGFuZCB0aGUgc2l0ZSdzIG93blxuICAgKiBidWlsZCBpcyB3aGF0IGNoZWNrcyB0aGVtLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgWydkb2NzLyoqJ11gXG4gICAqL1xuICByZWFkb25seSBsaW5rQ2hlY2tFeGNsdWRlR2xvYnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZmlsZSBwYXRocyB0byBsaW50LiBJZiBvbWl0dGVkLCBsaW50cyB0aGUgZW50aXJlIHByb2plY3QuXG4gICAqL1xuICByZWFkb25seSBwYXRocz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZpeCBsaW50aW5nIGlzc3VlcyBhdXRvbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICByZWFkb25seSBzaG91bGRGaXg/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIExpbnQgbWFya2Rvd24gZG9jdW1lbnRhdGlvbiB1c2luZyBgbWFya2Rvd25saW50LWNsaTJgIGFuZCBgbGlua2luYXRvcmAuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIExpbnRPcHRpb25zfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpbnQob3B0aW9ucz86IExpbnRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgZGVmYXVsdENvbmZpZ0ZpbGVQYXRoLCBsaW5rQ2hlY2tFeGNsdWRlR2xvYnMgPSBbXSwgcGF0aHMsIHNob3VsZEZpeCA9IGZhbHNlIH0gPSBvcHRpb25zID8/IHt9O1xuICBjb25zdCBjb25maWdGaWxlcyA9IFtcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0pzb25jLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDbGkyQ29uZmlnWWFtbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ0NqcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q2xpMkNvbmZpZ01qcyxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnSnNvbmMsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ0pzb24sXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1lhbWwsXG4gICAgUmVwb1BhdGhzLk1hcmtkb3dubGludENvbmZpZ1ltbCxcbiAgICBSZXBvUGF0aHMuTWFya2Rvd25saW50Q29uZmlnQ2pzLFxuICAgIFJlcG9QYXRocy5NYXJrZG93bmxpbnRDb25maWdNanNcbiAgXTtcblxuICBjb25zdCBkb2VzQ29uZmlnRmlsZUV4aXN0ID0gY29uZmlnRmlsZXMuc29tZSgoY29uZmlnRmlsZSkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoeyBwYXRoOiBjb25maWdGaWxlIH0pO1xuICAgIHJldHVybiBleGlzdHNTeW5jKGNvbmZpZ0ZpbGVQYXRoKTtcbiAgfSk7XG5cbiAgaWYgKCFkb2VzQ29uZmlnRmlsZUV4aXN0ICYmIGRlZmF1bHRDb25maWdGaWxlUGF0aCkge1xuICAgIGdldExpYkRlYnVnZ2VyKCdtYXJrZG93bmxpbnQ6bGludCcpKCdtYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlIG5vdCBmb3VuZC4gQ3JlYXRpbmcgZGVmYXVsdCBjb25maWcuLi4nKTtcbiAgICBhd2FpdCBjcChkZWZhdWx0Q29uZmlnRmlsZVBhdGgsIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKHsgcGF0aDogYmFzZW5hbWUoZGVmYXVsdENvbmZpZ0ZpbGVQYXRoKSB9KSk7XG4gIH1cblxuICAvKiB2OCBpZ25vcmUgc3RhcnQgLS0gVGhlIHBhdGhzLXByb3ZpZGVkIGJyYW5jaGVzIGFyZSBvbmx5IGV4ZXJjaXNlZCBieSBjb25zdW1lciBwcm9qZWN0cyBwYXNzaW5nIGZpbGUgbGlzdHMuICovXG4gIGNvbnN0IHRhcmdldHMgPSBwYXRocz8ubGVuZ3RoID8gcGF0aHMgOiBbUmVwb1BhdGhzLkN1cnJlbnRGb2xkZXJdO1xuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWy4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdtYXJrZG93bmxpbnQtY2xpMicgfSksIC4uLihzaG91bGRGaXggPyBbJy0tZml4J10gOiBbXSksIHsgYmF0Y2hlZEFyZ3VtZW50czogdGFyZ2V0cyB9XSk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFRoZSBwYXRocy1wcm92aWRlZCBicmFuY2ggaXMgb25seSBleGVyY2lzZWQgYnkgY29uc3VtZXIgcHJvamVjdHMgcGFzc2luZyBmaWxlIGxpc3RzLiAqL1xuICBjb25zdCByb290Rm9sZGVyID0gZ2V0Um9vdEZvbGRlcigpID8/IHByb2Nlc3MuY3dkKCk7XG4gIGNvbnN0IG1kRmlsZXMgPSBwYXRocz8ubGVuZ3RoXG4gICAgPyBwYXRocy5tYXAoKHApID0+IHJlbGF0aXZlKHJvb3RGb2xkZXIsIHApLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpIHx8IHApXG4gICAgOiBhd2FpdCBnZXRNYXJrZG93bkZpbGVzKCk7XG4gIC8qIHY4IGlnbm9yZSBzdG9wICovXG4gIGNvbnN0IGxpbmtDaGVja0ZpbGVzID0gbWRGaWxlcy5maWx0ZXIoKG1kRmlsZSkgPT4gbGlua0NoZWNrRXhjbHVkZUdsb2JzLmV2ZXJ5KChleGNsdWRlR2xvYikgPT4gIW1hdGNoZXNHbG9iKG1kRmlsZSwgZXhjbHVkZUdsb2IpKSk7XG4gIC8vIGBsaW5raW5hdG9yYCB3aXRoIG5vIExPQ0FUSU9OIHByaW50cyBpdHMgdXNhZ2UgYW5kIGV4aXRzIG5vbi16ZXJvLCBzbyBhIGxpc3QgZW1wdGllZCBieSB0aGUgZXhjbHVzaW9ucyBoYXMgbm90aGluZyB0byBjaGVjay5cbiAgaWYgKGxpbmtDaGVja0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgIC4uLnJlc29sdmVUb29sQ29tbWFuZCh7IHRvb2w6ICdsaW5raW5hdG9yJyB9KSxcbiAgICAnLS1yZXRyeScsXG4gICAgJy0tcmV0cnktZXJyb3JzJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtY291bnQnLFxuICAgICczJyxcbiAgICAnLS1yZXRyeS1lcnJvcnMtaml0dGVyJyxcbiAgICAnNScsXG4gICAgJy0tdXJsLXJld3JpdGUtc2VhcmNoJyxcbiAgICBTdHJpbmcucmF3YGh0dHBzOi8vd3d3XFwubnBtanNcXC5jb20vcGFja2FnZS9gLFxuICAgICctLXVybC1yZXdyaXRlLXJlcGxhY2UnLFxuICAgICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nLFxuICAgIHsgYmF0Y2hlZEFyZ3VtZW50czogbGlua0NoZWNrRmlsZXMgfVxuICBdKTtcbn1cblxuLyoqXG4gKiBUaGUgZ2l0IHBhdGhzcGVjIG1hdGNoaW5nIGV2ZXJ5IG1hcmtkb3duIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnksIGF0IGFueSBkZXB0aC5cbiAqL1xuY29uc3QgTUFSS0RPV05fUEFUSFNQRUMgPSAnKi5tZCc7XG5cbi8qKlxuICogTGlzdHMgdGhlIG1hcmtkb3duIGZpbGVzIHRvIGhhbmQgdG8gYGxpbmtpbmF0b3JgLlxuICpcbiAqIGBsaW5raW5hdG9yYCB0YWtlcyBhIGZpbGUgbGlzdCByYXRoZXIgdGhhbiBhbiBpZ25vcmUgY29uZmlndXJhdGlvbiwgc28gdGhlIGdpdGlnbm9yZWQgZmlsZXMgaGF2ZSB0byBiZVxuICogZHJvcHBlZCBiZWZvcmUgaXQgaXMgaW52b2tlZC4gR2l0IGl0c2VsZiBhbnN3ZXJzIHRoYXQgKG5lc3RlZCBpZ25vcmUgZmlsZXMsIGAhYCBuZWdhdGlvbnMgYW5kIGFsbCk7IHRoZVxuICogaGFuZC1tYWludGFpbmVkIGdsb2IgZXhjbHVzaW9ucyBiZWxvdyBhcmUgb25seSB0aGUgZmFsbGJhY2sgZm9yIGEgY2hlY2tvdXQgd2l0aG91dCBnaXQsIGFuZCB0aGV5IGFyZSB0aGVcbiAqIHZlcnkgbGlzdHMgdGhpcyBpbmRpcmVjdGlvbiBleGlzdHMgdG8gc3RvcCBmcm9tIGRyaWZ0aW5nLlxuICpcbiAqIFRoZSBgbm9kZV9tb2R1bGVzYCBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUgZ2l0LWRlcml2ZWQgbGlzdCB0b28sIGFuZCBkZWxpYmVyYXRlbHkgc286IGdpdCBvbmx5IHNraXBzXG4gKiB3aGF0IHRoZSByZXBvc2l0b3J5IGFza2VkIGl0IHRvIHNraXAsIGFuZCBhIHJlcG9zaXRvcnkgY2FuIGRlbGliZXJhdGVseSBUUkFDSyBhIHZlbmRvcmVkIGBub2RlX21vZHVsZXNgXG4gKiB0cmVlLiBUaGF0IGlzIHRoZSBvbmUgZXhjbHVzaW9uIGAuZ2l0aWdub3JlYCBjYW5ub3QgYW5zd2VyIOKAlCBzZWUgYG1hcmtkb3dubGludC1pZ25vcmVzLnRzYC4gQXBwbHlpbmcgaXRcbiAqIGhlcmUga2VlcHMgYGxpbmtpbmF0b3JgIGluIHN0ZXAgd2l0aCB0aGUgbWFya2Rvd25saW50IGhhbGYsIHdoaWNoIGlnbm9yZXMgdGhlIHNhbWUgcGF0aHMgYnkgZ2xvYi5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIG1hcmtkb3duIGZpbGUgcGF0aHMsIHJlbGF0aXZlIHRvIHRoZSByb290IGZvbGRlci5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TWFya2Rvd25GaWxlcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG5vbklnbm9yZWRGaWxlcyA9IGF3YWl0IGdldE5vbklnbm9yZWRGaWxlcyh7IHBhdHRlcm5zOiBbTUFSS0RPV05fUEFUSFNQRUNdIH0pO1xuICByZXR1cm4gbm9uSWdub3JlZEZpbGVzXG4gICAgPyBub25JZ25vcmVkRmlsZXMuZmlsdGVyKChwYXRoKSA9PiAhY2hlY2tJc0luTm9kZU1vZHVsZXMocGF0aCkpXG4gICAgOiAoYXdhaXQgdG9BcnJheShnbG9iKFsnKiovKi5tZCddLCB7XG4gICAgICBleGNsdWRlOiBbXG4gICAgICAgICcuZ2l0LyoqJyxcbiAgICAgICAgJ2Rpc3QvKionLFxuICAgICAgICBOT0RFX01PRFVMRVNfSUdOT1JFX0dMT0JcbiAgICAgIF1cbiAgICB9KSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLFNBQVMsZUFBZTtBQUN4QixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLGdCQUFnQjtBQUN6QixTQUFTLGtCQUFrQjtBQUMzQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQ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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mnaoumov/typescript-dev-toolkit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Generic TypeScript project tooling: build, lint, format, spellcheck, test, gate and release scripts.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
}
|
|
312
312
|
},
|
|
313
313
|
"engines": {
|
|
314
|
-
"node": ">=22.
|
|
314
|
+
"node": ">=22.5.0"
|
|
315
315
|
},
|
|
316
316
|
"publishConfig": {
|
|
317
317
|
"access": "public"
|