sliftutils 1.7.129 → 1.7.131
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/index.d.ts +4 -51
- package/misc/dist/ownIPs.ts.cache +29 -3
- package/misc/dist/strings.ts.cache +2 -2
- package/misc/https/dist/certs.ts.cache +2 -2
- package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
- package/misc/ownIPs.ts +29 -1
- package/package.json +1 -1
- package/security/authorizedKeys/authorizedKeys.d.ts +37 -0
- package/security/authorizedKeys/daemon/changes.d.ts +17 -0
- package/security/authorizedKeys/daemon/dist/changes.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/git.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/notify.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/paths.ts.cache +4 -7
- package/security/authorizedKeys/daemon/dist/repoFiles.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/revocation.ts.cache +0 -0
- package/security/authorizedKeys/daemon/dist/sessions.ts.cache +2 -2
- package/security/authorizedKeys/daemon/dist/state.ts.cache +6 -4
- package/security/authorizedKeys/daemon/dist/trust.ts.cache +2 -2
- package/security/authorizedKeys/daemon/git.d.ts +35 -0
- package/security/authorizedKeys/daemon/notify.d.ts +8 -0
- package/security/authorizedKeys/daemon/paths.d.ts +15 -0
- package/security/authorizedKeys/daemon/paths.ts +0 -3
- package/security/authorizedKeys/daemon/repoFiles.d.ts +25 -0
- package/security/authorizedKeys/daemon/revocation.d.ts +74 -0
- package/security/authorizedKeys/daemon/revocation.ts +0 -0
- package/security/authorizedKeys/daemon/sessions.d.ts +19 -0
- package/security/authorizedKeys/daemon/state.d.ts +67 -0
- package/security/authorizedKeys/daemon/state.ts +4 -8
- package/security/authorizedKeys/daemon/trust.d.ts +20 -0
- package/security/authorizedKeys/dist/authorizedKeys.ts.cache +2 -2
- package/security/authorizedKeys/dist/keysRepo.ts.cache +111 -0
- package/security/authorizedKeys/dist/revokeSource.ts.cache +2 -2
- package/security/authorizedKeys/dist/secureSSH.ts.cache +147 -71
- package/security/authorizedKeys/dist/sources.ts.cache +2 -2
- package/security/authorizedKeys/dist/unrevoke.ts.cache +70 -51
- package/security/authorizedKeys/keysRepo.d.ts +10 -0
- package/security/authorizedKeys/keysRepo.ts +111 -0
- package/security/authorizedKeys/revokeSource.d.ts +13 -0
- package/security/authorizedKeys/secureSSH.ts +28 -38
- package/security/authorizedKeys/sources.d.ts +17 -0
- package/security/authorizedKeys/unrevoke.ts +9 -36
- package/security/helpers/dist/paths.ts.cache +2 -2
- package/security/helpers/dist/spawn.ts.cache +2 -2
- package/security/helpers/paths.d.ts +4 -0
- package/security/helpers/spawn.d.ts +16 -0
- package/security/keys/deriveKey.d.ts +16 -0
- package/security/keys/dist/deriveKey.ts.cache +2 -2
- package/security/keys/dist/sshKeyFile.ts.cache +2 -2
- package/security/keys/sshKeyFile.d.ts +18 -0
- package/security/machines/addMachine.ts +80 -27
- package/security/machines/dist/addMachine.ts.cache +6 -5
- package/security/machines/dist/machines.ts.cache +110 -101
- package/security/machines/machines.d.ts +81 -0
- package/security/machines/machines.ts +123 -99
- package/security/machines/trustServer.ts +5 -3
- package/security/notifications/discord.d.ts +36 -0
- package/security/notifications/dist/discord.ts.cache +2 -2
- package/security/notifications/dist/remoteWebhook.ts.cache +78 -0
- package/security/notifications/dist/setupNotify.ts.cache +39 -0
- package/security/signedFiles/dist/manifest.ts.cache +2 -2
- package/security/signedFiles/dist/signFiles.ts.cache +8 -10
- package/security/signedFiles/manifest.d.ts +44 -0
- package/security/signedFiles/signFiles.ts +6 -10
- package/storage/remoteStorage/ArchivesRemote.ts +8 -10
- package/storage/remoteStorage/accessPage.tsx +13 -90
- package/storage/remoteStorage/dist/ArchivesRemote.ts.cache +11 -12
- package/storage/remoteStorage/dist/serverConfig.ts.cache +7 -49
- package/storage/remoteStorage/dist/storageController.ts.cache +33 -114
- package/storage/remoteStorage/serverConfig.d.ts +0 -10
- package/storage/remoteStorage/serverConfig.ts +6 -48
- package/storage/remoteStorage/storageController.d.ts +4 -36
- package/storage/remoteStorage/storageController.ts +40 -126
- package/storage/remoteStorage/storageServer.ts +1 -8
- package/storage/remoteStorage/storageServerCli.ts +14 -0
- package/security/machines/trustState.ts +0 -53
- package/storage/remoteStorage/grantAccess.js +0 -4
- package/storage/remoteStorage/grantAccessCli.d.ts +0 -1
- package/storage/remoteStorage/grantAccessCli.ts +0 -25
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -111,4 +111,4 @@ async function listRepoDir(repo, directory) {
|
|
|
111
111
|
}
|
|
112
112
|
exports.listRepoDir = listRepoDir;
|
|
113
113
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb0ZpbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVwb0ZpbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJEQUE2QjtBQUM3QixnREFBd0I7QUFDeEIsa0RBQWlJO0FBQ2pJLHdDQUEwRTtBQUMxRSwrQkFBd0Q7QUFleEQsU0FBZ0IsVUFBVSxDQUFDLFNBQWlCO0lBQ3hDLE9BQU87UUFDSCxPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsSUFBQSx3QkFBYyxFQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUEsdUJBQWEsRUFBQyxTQUFTLENBQUMsSUFBSSxJQUFBLHVCQUFhLEVBQUMsU0FBUyxDQUFDO0tBQ2xGLENBQUM7QUFDTixDQUFDO0FBTkQsZ0NBTUM7QUFFRCxTQUFnQixVQUFVLENBQUMsU0FBaUI7SUFDeEMsT0FBTztRQUNILE9BQU8sRUFBRSxJQUFBLDRCQUFhLEVBQUMsU0FBUyxDQUFDO1FBQ2pDLFFBQVEsRUFBRSxJQUFBLDZCQUFjLEVBQUMsU0FBUyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0tBQzVDLENBQUM7QUFDTixDQUFDO0FBTkQsZ0NBTUM7QUFFRDsrREFDK0Q7QUFDeEQsS0FBSyxVQUFVLGVBQWUsQ0FBQyxTQUFpQjtJQUNuRCxJQUFJLFFBQVEsR0FBRyxNQUFNLElBQUEsNEJBQWEsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksU0FBUyxHQUFHLE1BQU0sSUFBQSx1QkFBYSxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLFNBQVMsT0FBTyxJQUFBLHVC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QUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNMLENBQUM7QUFQRCxvQ0FPQztBQUVELDBGQUEwRjtBQUNuRixLQUFLLFVBQVUsV0FBVyxDQUFDLElBQWEsRUFBRSxTQUFpQjtJQUM5RCxNQUFNLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixJQUFJLENBQUM7UUFDRCxPQUFPLENBQUMsTUFBTSxrQkFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0FBQ0wsQ0FBQztBQVBELGtDQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGRlcml2ZVJldm9rZUtleSwgZmluZFJldm9rZUtleSwgUkVWT0tFX0tFWV9MQUJFTCwgcmV2b2tlS2V5UGF0aCwgcmV2b2tlUmVwb1BhdGgsIHJldm9rZVJlcG9VUkwgfSBmcm9tIFwiLi4vcmV2b2tlU291cmNlXCI7XG5pbXBvcnQgeyBmaW5kU291cmNlS2V5LCBzb3VyY2VLZXlQYXRoLCBzb3VyY2VSZXBvUGF0aCB9IGZyb20gXCIuLi9zb3VyY2VzXCI7XG5pbXBvcnQgeyBjbG9uZVJlcG8sIHJlcG9Jc1VzYWJsZSwgcnVuR2l0IH0gZnJvbSBcIi4vZ2l0XCI7XG5cbi8qKiBSZWFkaW5nIGEgcmVwbywgbWFkZSB0byBsb29rIGxpa2UgcmVhZGluZyBhIGRpcmVjdG9yeS4gQSBjYWxsZXIgYXNrcyBmb3IgYSBmaWxlIGFuZCBnZXRzIGl0c1xuICAgIGNvbnRlbnRzOyBrZWVwaW5nIGEgY2hlY2tvdXQgb24gZGlzaywgY2xvbmluZyBpdCBvbmNlIGFuZCBwdWxsaW5nIGl0IHNpbmNlLCBpcyB0aGlzIG1vZHVsZSdzXG4gICAgYnVzaW5lc3MgYW5kIG5vYm9keSBlbHNlJ3MuXG5cbiAgICBOb3RoaW5nIGhlcmUgZXZlciBhbnN3ZXJzIFwidGhlcmUgaXMgbm90aGluZ1wiIHdoZW4gdGhlIHRydXRoIGlzIFwiSSBjb3VsZCBub3QgbG9va1wiLiBBIHJlcG8gdGhhdFxuICAgIGNhbm5vdCBiZSByZWFjaGVkIHRocm93cywgYW5kIHRoZSBjYWxsZXIgc2tpcHMgdGhhdCBzb3VyY2UsIGJlY2F1c2UgcmVhZGluZyBhbiB1bnJlYWNoYWJsZVxuICAgIHJldm9rZSByZXBvIGFzIGVtcHR5IHdvdWxkIHVuLXJldm9rZSBldmVyeSBrZXkgaW4gaXQuICovXG5leHBvcnQgdHlwZSBSZXBvUmVmID0ge1xuICAgIHJlcG9VUkw6IHN0cmluZztcbiAgICByZXBvUGF0aDogc3RyaW5nO1xuICAgIGtleVBhdGg6ICgpID0+IFByb21pc2U8c3RyaW5nPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VSZXBvKHNvdXJjZVVSTDogc3RyaW5nKTogUmVwb1JlZiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVwb1VSTDogc291cmNlVVJMLFxuICAgICAgICByZXBvUGF0aDogc291cmNlUmVwb1BhdGgoc291cmNlVVJMKSxcbiAgICAgICAga2V5UGF0aDogYXN5bmMgKCkgPT4gYXdhaXQgZmluZFNvdXJjZUtleShzb3VyY2VVUkwpIHx8IHNvdXJjZUtleVBhdGgoc291cmNlVVJMKSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV2b2tlUmVwbyhzb3VyY2VVUkw6IHN0cmluZyk6IFJlcG9SZWYge1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlcG9VUkw6IHJldm9rZVJlcG9VUkwoc291cmNlVVJMKSxcbiAgICAgICAgcmVwb1BhdGg6IHJldm9rZVJlcG9QYXRoKHNvdXJjZVVSTCksXG4gICAgICAgIGtleVBhdGg6ICgpID0+IGVuc3VyZVJldm9rZUtleShzb3VyY2VVUkwpLFxuICAgIH07XG59XG5cbi8qKiBUaGUgcmV2b2tlIHJlcG8ncyBrZXkgaXMgd29ya2VkIG91dCBmcm9tIHRoZSBzb3VyY2Uncywgc28gbm90aGluZyBleHRyYSBoYWQgdG8gYmUgdXBsb2FkZWQgYW5kXG4gICAgbm90aGluZyBleHRyYSBpcyBzdG9yZWQgYW55d2hlcmUgaXQgY291bGQgYmUgdGFrZW4gZnJvbS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVSZXZva2VLZXkoc291cmNlVVJMOiBzdHJpbmcpIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBhd2FpdCBmaW5kUmV2b2tlS2V5KHNvdXJjZVVSTCk7XG4gICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gICAgbGV0IHNvdXJjZUtleSA9IGF3YWl0IGZpbmRTb3VyY2VLZXkoc291cmNlVVJMKTtcbiAgICBpZiAoIXNvdXJjZUtleSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEga2V5IGZvciAke3NvdXJjZVVSTH0gYXQgJHtzb3VyY2VLZXlQYXRoKHNvdXJjZVVSTCl9LCBubyBzdWNoIGZpbGUgZXhpc3RzYCk7XG4gICAgfVxuICAgIGxldCBkZXJpdmVkID0gZGVyaXZlUmV2b2tlS2V5KGF3YWl0IGZzLnJlYWRGaWxlKHNvdXJjZUtleSwgXCJ1dGY4XCIpKTtcbiAgICBsZXQga2V5UGF0aCA9IHJldm9rZUtleVBhdGgoc291cmNlVVJMKTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoa2V5UGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlLCBtb2RlOiAwbzcwMCB9KTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoa2V5UGF0aCwgZGVyaXZlZC5wcml2YXRlS2V5RmlsZSwgeyBtb2RlOiAwbzYwMCB9KTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoYCR7a2V5UGF0aH0ucHViYCwgYCR7ZGVyaXZlZC5wdWJsaWNLZXl9ICR7UkVWT0tFX0tFWV9MQUJFTH1cXG5gLCB7IG1vZGU6IDBvNjQ0IH0pO1xuICAgIGNvbnNvbGUubG9nKGBEZXJpdmVkIHRoZSByZXZva2Uga2V5IGZvciAke3NvdXJjZVVSTH0gaW50byAke2tleVBhdGh9YCk7XG4gICAgcmV0dXJuIGtleVBhdGg7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhdGhFeGlzdHMoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZzLmFjY2VzcyhmaWxlUGF0aCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuLyoqIEJyaW5ncyB0aGUgY2hlY2tvdXQgaW4gbGluZSB3aXRoIHRoZSByZW1vdGUuIENsb25lZCB0aGUgZmlyc3QgdGltZSwgcHVsbGVkIGFmdGVyIHRoYXQsIGFuZCB0aGVcbiAgICB1c3VhbCBjYXNlIG9mIG5vdGhpbmcgaGF2aW5nIGNoYW5nZWQgY29zdHMgb25lIHJlZiBsaXN0aW5nIGFuZCBubyBvYmplY3RzLiBUaHJvd3MgaWYgdGhlIHJlcG9cbiAgICBjYW5ub3QgYmUgcmVhZCwgc28gYSBjYWxsZXIgY2Fubm90IG1pc3Rha2UgdGhhdCBmb3IgYW4gZW1wdHkgcmVwby4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzeW5jUmVwb0ZpbGVzKHJlcG86IFJlcG9SZWYpIHtcbiAgICBsZXQgeyByZXBvVVJMLCByZXBvUGF0aCB9ID0gcmVwbztcbiAgICBsZXQga2V5UGF0aCA9IGF3YWl0IHJlcG8ua2V5UGF0aCgpO1xuICAgIGlmICghYXdhaXQgcmVwb0lzVXNhYmxlKHsgcmVwb1BhdGgsIGtleVBhdGggfSkpIHtcbiAgICAgICAgYXdhaXQgY2xvbmVSZXBvKHsgcmVwb1VSTCwgcmVwb1BhdGgsIGtleVBhdGggfSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGxvY2FsSGVhZCA9IGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcInJldi1wYXJzZVwiLCBcIkhFQURcIl0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGgsIGFsbG93RmFpbHVyZTogdHJ1ZSB9KTtcbiAgICBpZiAobG9jYWxIZWFkLnN0YXR1cyAhPT0gMCkge1xuICAgICAgICAvLyBBIHJlcG8gd2l0aCBubyBjb21taXRzIHlldCwgd2hpY2ggaXMgdGhlIHN0YXRlIGV2ZXJ5IHJldm9rZSByZXBvIHN0YXJ0cyBpbi4gVGhlcmUgaXNcbiAgICAgICAgLy8gbm90aGluZyB0byBwdWxsIGFuZCBub3RoaW5nIHRvIHNheS5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgYnJhbmNoID0gKGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcInJldi1wYXJzZVwiLCBcIi0tYWJicmV2LXJlZlwiLCBcIkhFQURcIl0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGggfSkpLnN0ZG91dC50cmltKCk7XG4gICAgbGV0IGxpc3RpbmcgPSAoYXdhaXQgcnVuR2l0KHsgYXJnczogW1wibHMtcmVtb3RlXCIsIFwib3JpZ2luXCIsIGJyYW5jaF0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGggfSkpLnN0ZG91dDtcbiAgICBsZXQgcmVtb3RlU2hhID0gKGxpc3Rpbmcuc3BsaXQoL1xccysvKVswXSB8fCBcIlwiKS50cmltKCk7XG4gICAgaWYgKHJlbW90ZVNoYSAmJiByZW1vdGVTaGEgPT09IGxvY2FsSGVhZC5zdGRvdXQudHJpbSgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYXdhaXQgcnVuR2l0KHsgYXJnczogW1wiZmV0Y2hcIiwgXCItLXBydW5lXCIsIFwib3JpZ2luXCJdLCBjd2Q6IHJlcG9QYXRoLCBrZXlQYXRoIH0pO1xuICAgIGF3YWl0IHJ1bkdpdCh7IGFyZ3M6IFtcInJlc2V0XCIsIFwiLS1oYXJkXCIsIGBvcmlnaW4vJHticmFuY2h9YF0sIGN3ZDogcmVwb1BhdGgsIGtleVBhdGggfSk7XG4gICAgYXdhaXQgcnVuR2l0KHsgYXJnczogW1wiY2xlYW5cIiwgXCItZmR4XCJdLCBjd2Q6IHJlcG9QYXRoLCBrZXlQYXRoIH0pO1xufVxuXG4vKiogVGhyb3dzIHdoZW4gdGhlcmUgaXMgbm8gY2hlY2tvdXQgYXQgYWxsLiBcIkkgaGF2ZSBuZXZlciBtYW5hZ2VkIHRvIHJlYWQgdGhpcyByZXBvXCIgYW5kIFwidGhpc1xuICAgIHJlcG8gaXMgZW1wdHlcIiBhcmUgZGlmZmVyZW50IGFuc3dlcnMgYW5kIG11c3Qgbm90IGNvbGxhcHNlIGludG8gb25lLiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVxdWlyZUNoZWNrb3V0KHJlcG86IFJlcG9SZWYpIHtcbiAgICBpZiAoIWF3YWl0IHBhdGhFeGlzdHMocGF0aC5qb2luKHJlcG8ucmVwb1BhdGgsIFwiLmdpdFwiKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCBhIGNoZWNrb3V0IG9mICR7cmVwby5yZXBvVVJMfSBhdCAke3JlcG8ucmVwb1BhdGh9LCB0aGVyZSBpcyBub25lYCk7XG4gICAgfVxufVxuXG4vKiogT25lIGZpbGUgb3V0IG9mIHRoZSByZXBvLCBvciB1bmRlZmluZWQgaWYgdGhlIHJlcG8gZG9lcyBub3QgaGF2ZSB0aGF0IGZpbGUuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZFJlcG9GaWxlKHJlcG86IFJlcG9SZWYsIGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgICBhd2FpdCByZXF1aXJlQ2hlY2tvdXQocmVwbyk7XG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihyZXBvLnJlcG9QYXRoLCBmaWxlUGF0aCksIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxufVxuXG4vKiogVGhlIG5hbWVzIGluIG9uZSBvZiB0aGUgcmVwbydzIGRpcmVjdG9yaWVzLCBvciBub3RoaW5nIGlmIGl0IGhhcyBubyBzdWNoIGRpcmVjdG9yeS4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaXN0UmVwb0RpcihyZXBvOiBSZXBvUmVmLCBkaXJlY3Rvcnk6IHN0cmluZykge1xuICAgIGF3YWl0IHJlcXVpcmVDaGVja291dChyZXBvKTtcbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gKGF3YWl0IGZzLnJlYWRkaXIocGF0aC5qb2luKHJlcG8ucmVwb1BhdGgsIGRpcmVjdG9yeSkpKS5zb3J0KCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuIl19
|
|
114
|
-
/* _JS_SOURCE_HASH = "
|
|
114
|
+
/* _JS_SOURCE_HASH = "5db6cff8e354e36fbba4c0714ecad61ebda8484463fbf2e95738f6df8c215343"; */
|
|
Binary file
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -144,4 +144,4 @@ function describeEndedSessions(ended) {
|
|
|
144
144
|
}
|
|
145
145
|
exports.describeEndedSessions = describeEndedSessions;
|
|
146
146
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsK0NBQW1EO0FBQ25ELG1DQUF3QztBQUV4QyxtR0FBbUc7QUFDbkcsNkZBQTZGO0FBQzdGLHVDQUF1QztBQUN2QyxFQUFFO0FBQ0YsbUdBQW1HO0FBQ25HLDZFQUE2RTtBQUM3RSxNQUFNLFFBQVEsR0FBRyx5SEFBeUgsQ0FBQztBQUkzSSxTQUFnQixxQkFBcUIsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO0lBQ3ZFLElBQUksUUFBUSxHQUFpQixFQUFFLENBQUM7SUFDaEMsS0FBSyxJQUFJLElBQUksSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNyQyxTQUFTO1FBQ2IsQ0FBQztRQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQVZELHNEQVVDO0FBRUQ7aUZBQ2lGO0FBQ2pGLEtBQUssVUFBVSxZQUFZLENBQUMsU0FBaUI7SUFDekMsSUFBSSxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsTUFBTSxrQkFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFNBQVMsT0FB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SyxDQUFDLE1BQU0sb0JBQW9CLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBckJELDhDQXFCQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWU7SUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLHlCQUF5QixDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLHdEQUF3RCxLQUFLLENBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0YsQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsS0FBbUI7SUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLGlDQUFpQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0seUNBQXlDO1VBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2pHLENBQUM7QUFORCxzREFNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHNwYXduUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL3NwYXduXCI7XG5pbXBvcnQgeyBBVVRIX0xPR19QQVRIIH0gZnJvbSBcIi4vcGF0aHNcIjtcblxuLy8gVGFraW5nIGEga2V5IG91dCBvZiBhdXRob3JpemVkX2tleXMgb25seSBzdG9wcyB0aGUgbmV4dCBsb2dpbi4gV2hvZXZlciBpcyBhbHJlYWR5IGNvbm5lY3RlZCB3aXRoXG4vLyBpdCBzdGF5cyBjb25uZWN0ZWQgZm9yIGFzIGxvbmcgYXMgdGhleSBsaWtlLCB3aGljaCB3b3VsZCBtYWtlIHJldm9raW5nIGEga2V5IHRoYXQgaXMgYmVpbmdcbi8vIGFjdGl2ZWx5IG1pc3VzZWQgY2xvc2UgdG8gcG9pbnRsZXNzLlxuLy9cbi8vIHNzaGQgbmFtZXMgdGhlIGtleSBpdCBhY2NlcHRlZCBhbmQgdGhlIHByb2Nlc3MgaGFuZGxpbmcgdGhhdCBjb25uZWN0aW9uIG9uIHRoZSBzYW1lIGxpbmUsIHNvIHRoZVxuLy8gc2Vzc2lvbnMgYmVsb25naW5nIHRvIG9uZSBrZXkgY2FuIGJlIGVuZGVkIHdpdGhvdXQgdG91Y2hpbmcgYW55b25lIGVsc2Uncy5cbmNvbnN0IEFDQ0VQVEVEID0gLyg/OnNzaGR8c3NoZC1zZXNzaW9uKVxcWyhcXGQrKVxcXTpcXHMrQWNjZXB0ZWQgcHVibGlja2V5IGZvciAoXFxTKykgZnJvbSAoXFxTKykgcG9ydCAoXFxkKykgc3NoMjogXFxTKyAoU0hBMjU2OltBLVphLXowLTkrLz1dKykvO1xuXG5leHBvcnQgdHlwZSBLZXlTZXNzaW9uID0geyBwcm9jZXNzSWQ6IG51bWJlcjsgdXNlcjogc3RyaW5nOyBpcDogc3RyaW5nOyBwb3J0OiBzdHJpbmcgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhjb250ZW50czogc3RyaW5nLCBmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IHNlc3Npb25zOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBsaW5lIG9mIGNvbnRlbnRzLnNwbGl0KFwiXFxuXCIpKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IGxpbmUubWF0Y2goQUNDRVBURUQpO1xuICAgICAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzVdICE9PSBmaW5nZXJwcmludCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vzc2lvbnMucHVzaCh7IHByb2Nlc3NJZDogTnVtYmVyKG1hdGNoWzFdKSwgdXNlcjogbWF0Y2hbMl0sIGlwOiBtYXRjaFszXSwgcG9ydDogbWF0Y2hbNF0gfSk7XG4gICAgfVxuICAgIHJldHVybiBzZXNzaW9ucztcbn1cblxuLyoqIFByb2Nlc3MgaWRzIGFyZSByZXVzZWQsIHNvIG9uZSBpcyBvbmx5IGtpbGxlZCB3aGVuIGl0IGlzIHN0aWxsIGFuIHNzaCBzZXNzaW9uLiBLaWxsaW5nIHdoYXRldmVyXG4gICAgaGFwcGVucyB0byBob2xkIHRoYXQgbnVtYmVyIG5vdyB3b3VsZCBiZSBmYXIgd29yc2UgdGhhbiBtaXNzaW5nIGEgc2Vzc2lvbi4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzU1NIU2Vzc2lvbihwcm9jZXNzSWQ6IG51bWJlcikge1xuICAgIHRyeSB7XG4gICAgICAgIGxldCBuYW1lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jb21tYCwgXCJ1dGY4XCIpO1xuICAgICAgICByZXR1cm4gbmFtZS50cmltKCkuc3RhcnRzV2l0aChcInNzaGRcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vKiogVGhlIHdob2xlIGxvZywgbm90IG9ubHkgd2hhdCBpcyBuZXcsIGJlY2F1c2UgdGhlIHNlc3Npb24gYmVpbmcgZW5kZWQgbWF5IGhhdmUgYmVlbiBlc3RhYmxpc2hlZFxuICAgIGxvbmcgYmVmb3JlIHRoZSBrZXkgd2FzIG1pc3VzZWQuICovXG5hc3luYyBmdW5jdGlvbiByZWFkV2hvbGVBdXRoTG9nKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmcy5yZWFkRmlsZShBVVRIX0xPR19QQVRILCBcInV0ZjhcIik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiam91cm5hbGN0bFwiLFxuICAgICAgICAgICAgYXJnczogW1wiLXVcIiwgXCJzc2hcIiwgXCItdVwiLCBcInNzaGRcIiwgXCItLW5vLXBhZ2VyXCIsIFwiLS1zaW5jZVwiLCBcIi0zMGRheXNcIl0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0LnN0YXR1cyA9PT0gMCAmJiByZXN1bHQuc3Rkb3V0IHx8IFwiXCI7XG4gICAgfVxufVxuXG4vKiogRW5kcyBldmVyeSBsaXZlIHNlc3Npb24gdGhhdCBhdXRoZW50aWNhdGVkIHdpdGggdGhpcyBrZXkuIFJldHVybnMgd2hhdCB3YXMgZW5kZWQsIHNvIHRoZVxuICAgIHJldm9jYXRpb24gY2FuIHNheSBzbyByYXRoZXIgdGhhbiBsZWF2aW5nIGl0IHRvIGJlIGRpc2NvdmVyZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5kU2Vzc2lvbnNVc2luZ0tleShmaW5nZXJwcmludDogc3RyaW5nKSB7XG4gICAgbGV0IGVuZGVkOiBLZXlTZXNzaW9uW10gPSBbXTtcbiAgICBmb3IgKGxldCBzZXNzaW9uIG9mIHBhcnNlQWNjZXB0ZWRTZXNzaW9ucyhhd2FpdCByZWFkV2hvbGVBdXRoTG9nKCksIGZpbmdlcnByaW50KSkge1xuICAgICAgICBpZiAoc2Vzc2lvbi5wcm9jZXNzSWQgPD0gMSB8fCBzZXNzaW9uLnByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNTU0hTZXNzaW9uKHNlc3Npb24ucHJvY2Vzc0lkKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHByb2Nlc3Mua2lsbChzZXNzaW9uLnByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChzZXNzaW9uKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBFbmRlZCBzc2ggc2Vzc2lvbiAke3Nlc3Npb24ucHJvY2Vzc0lkfSAoJHtzZXNzaW9uLnVzZXJ9IGZyb20gJHtzZXNzaW9uLmlwfSksIGl0IHVzZWQgJHtmaW5nZXJwcmludH1gKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gR29uZSBiZXR3ZWVuIGxvb2tpbmcgYW5kIGtpbGxpbmcsIHdoaWNoIGlzIHRoZSBvdXRjb21lIHdlIHdhbnRlZCBhbnl3YXkuXG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG4vKiogV2hldGhlciB0aGlzIHByb2Nlc3MgaXMgb25lIGNvbm5lY3Rpb24uIFRoZSBsaXN0ZW5lciBpcyBub3QgYSBjb25uZWN0aW9uIC0gaXQgaXMgdGhlIHByb2Nlc3NcbiAgICB0aGF0IGFjY2VwdHMgdGhlbSAtIHNvIGl0IGlzIG5vdCBhIGNhbmRpZGF0ZSBoZXJlIGF0IGFsbC5cblxuICAgIEV2ZXJ5IG9wZW5zc2ggc2luY2UgOS44IHJ1bnMgZWFjaCBjb25uZWN0aW9uIGFzIGl0cyBvd24gc3NoZC1zZXNzaW9uLiBPbiBvbGRlciBvbmVzIGNvbm5lY3Rpb25zXG4gICAgYXJlIG5hbWVkIHNzaGQgdG9vLCBhbmQgdGhlIGxpc3RlbmVyIGlzIHRoZSBvbmUgc3lzdGVtZCBzdGFydGVkIGRpcmVjdGx5IHdpdGggLUQuICovXG5hc3luYyBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Qcm9jZXNzKHByb2Nlc3NJZDogbnVtYmVyKSB7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBuYW1lID0gKGF3YWl0IGZzLnJlYWRGaWxlKGAvcHJvYy8ke3Byb2Nlc3NJZH0vY29tbWAsIFwidXRmOFwiKSkudHJpbSgpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobmFtZSA9PT0gXCJzc2hkLXNlc3Npb25cIikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKG5hbWUgIT09IFwic3NoZFwiKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IGNvbW1hbmRMaW5lID0gYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9jbWRsaW5lYCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpO1xuICAgIGxldCBwYXJlbnRJZCA9IE51bWJlcigoYXdhaXQgZnMucmVhZEZpbGUoYC9wcm9jLyR7cHJvY2Vzc0lkfS9zdGF0YCwgXCJ1dGY4XCIpLmNhdGNoKCgpID0+IFwiXCIpKS5zcGxpdChcIikgXCIpWzFdPy5zcGxpdChcIiBcIilbMV0gfHwgMCk7XG4gICAgcmV0dXJuICFjb21tYW5kTGluZS5pbmNsdWRlcyhcIi1EXCIpICYmIHBhcmVudElkICE9PSAxO1xufVxuXG4vKiogRGlzY29ubmVjdHMgZXZlcnkgc3NoIHNlc3Npb24gb24gdGhlIG1hY2hpbmUuXG5cbiAgICBOb3Qgb25seSB0aGUgb25lcyB1c2luZyB0aGUga2V5IHRoYXQgd2FzIGp1c3QgdGFrZW4gYXdheTogYSBzZXNzaW9uIHRoYXQgcHJlZGF0ZXMgdGhlIGtleSBiZWluZ1xuICAgIHJlbW92ZWQgaXMgZXhhY3RseSBhcyBkYW5nZXJvdXMsIGFuZCB3b3JraW5nIG91dCB3aGljaCBzZXNzaW9ucyBhcmUgc3RpbGwgZW50aXRsZWQgdG8gYmUgaGVyZVxuICAgIGlzIGd1ZXNzd29yay4gQW55b25lIHdobyBzdGlsbCBoYXMgYWNjZXNzIGNhbiByZWNvbm5lY3QgaW4gYSBzZWNvbmQsIGFuZCBhbnlvbmUgd2hvIGRvZXMgbm90XG4gICAgc2hvdWxkIG5vdCBiZSBoZXJlLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuZEFsbFNTSFNlc3Npb25zKCkge1xuICAgIGxldCBlbmRlZDogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBlbnRyeSBvZiBhd2FpdCBmcy5yZWFkZGlyKFwiL3Byb2NcIikpIHtcbiAgICAgICAgbGV0IHByb2Nlc3NJZCA9IE51bWJlcihlbnRyeSk7XG4gICAgICAgIGlmICghcHJvY2Vzc0lkIHx8IHByb2Nlc3NJZCA8PSAxIHx8IHByb2Nlc3NJZCA9PT0gcHJvY2Vzcy5waWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXdhaXQgaXNDb25uZWN0aW9uUHJvY2Vzcyhwcm9jZXNzSWQpKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvY2Vzcy5raWxsKHByb2Nlc3NJZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgICAgICAgZW5kZWQucHVzaChwcm9jZXNzSWQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBHb25lIGJldHdlZW4gbG9va2luZyBhbmQga2lsbGluZywgd2hpY2ggaXMgdGhlIG91dGNvbWUgd2Ugd2FudGVkIGFueXdheS5cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5kZWQubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBEaXNjb25uZWN0ZWQgJHtlbmRlZC5sZW5ndGh9IHNzaCBzZXNzaW9uKHMpOiAke2VuZGVkLmpvaW4oXCIsIFwiKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVBbGxFbmRlZChlbmRlZDogbnVtYmVyW10pIHtcbiAgICBpZiAoIWVuZGVkLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gXCIgTm90aGluZyB3YXMgY29ubmVjdGVkLlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCBFdmVyeSBzc2ggc2Vzc2lvbiBvbiB0aGlzIG1hY2hpbmUgd2FzIGRpc2Nvbm5lY3RlZCwgJHtlbmRlZC5sZW5ndGh9IG9mIHRoZW0uYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlRW5kZWRTZXNzaW9ucyhlbmRlZDogS2V5U2Vzc2lvbltdKSB7XG4gICAgaWYgKCFlbmRlZC5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIFwiIE5vdGhpbmcgd2FzIGNvbm5lY3RlZCB3aXRoIGl0LlwiO1xuICAgIH1cbiAgICByZXR1cm4gYCAke2VuZGVkLmxlbmd0aH0gbGl2ZSBzZXNzaW9uKHMpIHVzaW5nIGl0IHdlcmUga2lsbGVkOiBgXG4gICAgICAgICsgZW5kZWQubWFwKHNlc3Npb24gPT4gYCR7c2Vzc2lvbi51c2VyfUAke3Nlc3Npb24uaXB9OiR7c2Vzc2lvbi5wb3J0fWApLmpvaW4oXCIsIFwiKSArIFwiLlwiO1xufVxuIl19
|
|
147
|
-
/* _JS_SOURCE_HASH = "
|
|
147
|
+
/* _JS_SOURCE_HASH = "3fdba65bc578afa19b2fc1e82c8cd4899acc9632928f659e04ec3a18cb525afa"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -11,7 +11,6 @@ let state = {
|
|
|
11
11
|
sources: {},
|
|
12
12
|
userKeyHashes: {},
|
|
13
13
|
revocations: {},
|
|
14
|
-
unrevokeFirstSeen: {},
|
|
15
14
|
pendingRevocations: [],
|
|
16
15
|
appliedKeys: [],
|
|
17
16
|
authLogOffset: 0,
|
|
@@ -56,6 +55,9 @@ async function loadState() {
|
|
|
56
55
|
// Revocations are held in memory only, so whatever an older version left on disk is not
|
|
57
56
|
// read back in. Starting the daemon is what forgets them.
|
|
58
57
|
delete loaded.revocations;
|
|
58
|
+
// Written by the versions that made an unrevoke wait an hour before it counted. Dropped
|
|
59
|
+
// rather than carried, so the file stops mentioning something nothing reads.
|
|
60
|
+
delete loaded.unrevokeFirstSeen;
|
|
59
61
|
state = Object.assign(state, loaded);
|
|
60
62
|
}
|
|
61
63
|
catch (e) {
|
|
@@ -70,5 +72,5 @@ async function saveState() {
|
|
|
70
72
|
await promises_1.default.writeFile(paths_1.STATE_PATH, JSON.stringify(persisted, undefined, 4), { mode: 0o600 });
|
|
71
73
|
}
|
|
72
74
|
exports.saveState = saveState;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsZ0RBQXdCO0FBQ3hCLG1DQUFxQztBQTZFckMsSUFBSSxLQUFLLEdBQWdCO0lBQ3JCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsYUFBYSxFQUFFLEVBQUU7SUFDakIsV0FBVyxFQUFFLEVBQUU7SUFDZixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLGtCQUFrQixFQUFFLEVBQUU7SUFDdEIsV0FBVyxFQUFFLEVBQUU7SUFDZixhQUFhLEVBQUUsQ0FBQztJQUNoQixnQkFBZ0IsRUFBRSxFQUFFO0NBQ3ZCLENBQUM7QUFFRixTQUFnQixRQUFRO0lBQ3BCLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFGRCw0QkFFQztBQUVELHNGQUFzRjtBQUN0RixTQUFnQixXQUFXLENBQUMsT0FBZTtJQUN2QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLElBQUksUUFBUSxFQUFFLENBQUM7UUFDWCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxPQUFPLEdBQWdCO1FBQ3ZCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsS0FBSztRQUNmLGNBQWMsRUFBRSxFQUFFO1FBQ2xCLFlBQVksRUFBRSxFQUFFO1FBQ2hCLG9CQUFvQixFQUFFLEVBQUU7UUFDeEIscUJBQXFCLEVBQUUsRUFBRTtRQUN6QixhQUFhLEVBQUUsRUFBRTtRQUNqQixZQUFZLEVBQUUsQ0FBQztRQUNmLGVBQWUsRUFBRSxFQUFFO0tBQ3RCLENBQUM7SUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNqQyxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBbkJELGtDQW1CQztBQUVNLEtBQUssVUFBVSxTQUFTO0lBQzNCLElBQUksUUFBUSxDQUFDO0lBQ2IsSUFBSSxDQUFDO1FBQ0QsUUFBUSxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsa0JBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNULE9BQU87SUFDWCxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyx3RkFBd0Y7UUFDeEYsMERBQTBEO1FBQzFELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMxQixLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCwyRkFBMkY7UUFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0Msa0JBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDTCxDQUFDO0FBakJELDhCQWlCQztBQUVNLEtBQUssVUFBVSxTQUFTO0lBQzNCLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDMUMsTUFBTSxrQkFBRSxDQUFDLEtBQUssQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsa0JBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU1RBVEVfUEFUSCB9IGZyb20gXCIuL3BhdGhzXCI7XG5cbi8qKiBXaGF0IHdlIGxhc3QgZGVjaWRlZCB0byB0cnVzdCBmb3Igb25lIHNvdXJjZSwga2VwdCBvbiBkaXNrIHNvIG5vYm9keSBjYW4gdGVsbCB1cyBhIGRpZmZlcmVudFxuICAgIHN0b3J5IGFib3V0IHdoYXQgd2Ugc2F3IGxhc3QgdGltZS4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVN0YXRlID0ge1xuICAgIGxhc3RTaGE6IHN0cmluZztcbiAgICBicmFuY2g6IHN0cmluZztcbiAgICBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBhY2NlcHRlZFNpZ25lcjogc3RyaW5nO1xuICAgIGFjY2VwdGVkS2V5czogc3RyaW5nW107XG4gICAgYWNjZXB0ZWRNYW5pZmVzdEhhc2g6IHN0cmluZztcbiAgICBhY2NlcHRlZFNpZ25hdHVyZUhhc2g6IHN0cmluZztcbiAgICBwZW5kaW5nU2lnbmVyOiBzdHJpbmc7XG4gICAgcGVuZGluZ1NpbmNlOiBudW1iZXI7XG4gICAgcmVwb3J0ZWRQcm9ibGVtOiBzdHJpbmc7XG59O1xuXG4vKiogT25lIHJldm9jYXRpb24gZXZlbnQ6IHRoaXMga2V5LCB1c2VkIGZyb20gdGhpcyBhZGRyZXNzLCBzbyBpdCBpcyBubyBsb25nZXIgYWNjZXB0ZWQuIEtlcHQgZXZlblxuICAgIHdoZW4gdGhlIHJldm9rZSByZXBvIG5vIGxvbmdlciBsaXN0cyBpdDogdGhlIGRlcGxveSBrZXkgdGhhdCB3cml0ZXMgcmV2b2NhdGlvbnMgbGl2ZXMgb24gZXZlcnlcbiAgICBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyIHdobyB0b29rIG9uZSBjb3VsZCBvdGhlcndpc2UgZGVsZXRlIHRoZSByZXZvY2F0aW9uIHRoYXQgbG9ja2VkIHRoZW0gb3V0LlxuXG4gICAgVGhlIGlkIGlzIHVuaXF1ZSB0byB0aGUgZXZlbnQsIG5ldmVyIGRlcml2ZWQgZnJvbSB0aGUga2V5LiBBIGtleSB0aGF0IGhhcyBiZWVuIGZvcmdpdmVuIGZvciBvbmVcbiAgICBhZGRyZXNzIGlzIHN0aWxsIGFuIG9yZGluYXJ5IGtleSwgYW5kIHVzaW5nIGl0IGZyb20gc29tZSBvdGhlciBhZGRyZXNzIHJldm9rZXMgaXQgYWdhaW4sIHdpdGggYVxuICAgIG5ldyBpZCB0aGF0IG5vIGV4aXN0aW5nIHVucmV2b2tlIG5hbWVzLiAqL1xuZXhwb3J0IHR5cGUgUmV2b2NhdGlvblN0YXRlID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAgLy8gVGhlIGFkZHJlc3MgaXQgd2FzIHVzZWQgZnJvbS4gSGFsZiBvZiB3aGF0IGEgcmV2b2NhdGlvbiBzYXlzLCBhbmQgdGhlIGhhbGYgYW4gdW5yZXZva2UgaGFzXG4gICAgLy8gdG8gbmFtZSB0byB1bmRvIGl0LlxuICAgIGlwOiBzdHJpbmc7XG4gICAgLy8gV2h5IHRoaXMga2V5IHdhcyByZXZva2VkLCBjYXJyaWVkIGZyb20gdGhlIHJldm9jYXRpb24gZmlsZSBzbyBhIG1hY2hpbmUgdGhhdCByZWFkcyBvbmVcbiAgICAvLyB3cml0dGVuIGVsc2V3aGVyZSBjYW4gc2F5IHdoYXQgaGFwcGVuZWQgcmF0aGVyIHRoYW4gb25seSB0aGF0IHNvbWV0aGluZyBkaWQuXG4gICAgcmV2b2tlZEF0OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5OiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgLy8gV2hpY2ggdW5yZXZva2UgYWxsb3dlZCB0aGlzIGtleSBmcm9tIHRoaXMgYWRkcmVzcywgb25jZSBvbmUgaGFzIGJlZW4gc2Vlbi4gV2hlbiB0aGUgd2FpdCBpdFxuICAgIC8vIHN0YXJ0ZWQgcnVucyBvdXQgaXMgaW4gdW5yZXZva2VGaXJzdFNlZW4sIHdoaWNoIG91dGxpdmVzIHRoZSBkYWVtb24uXG4gICAgdW5yZXZva2VJZDogc3RyaW5nO1xuICAgIHVucmV2b2tlZDogYm9vbGVhbjtcbiAgICAvLyBXaGV0aGVyIHdlIGhhdmUgc2FpZCB0aGF0IHRoaXMga2V5IGFjdHVhbGx5IGxlZnQgcm9vdCdzIGF1dGhvcml6ZWRfa2V5cy4gVGhlIHJlbW92YWwgaXMgdGhlXG4gICAgLy8gdGhpbmcgd29ydGggcmVwb3J0aW5nLCBhbmQgaXQgaXMgd29ydGggcmVwb3J0aW5nIGV4YWN0bHkgb25jZS5cbiAgICByZXBvcnRlZFJlbW92ZWQ6IGJvb2xlYW47XG59O1xuXG4vKiogQSByZWZ1c2FsIHdlIHNhdyBidXQgY291bGQgbm90IHdyaXRlIGRvd24geWV0LiBIZWxkIHVudGlsIGl0IGlzIHJlY29yZGVkLCBiZWNhdXNlIHRoZSBsb2cgaXNcbiAgICByZWFkIG9uY2UgYW5kIG1vdmVzIG9uOiBsb3Npbmcgb25lIG9mIHRoZXNlIHRvIGEgcmVwbyB0aGF0IGhhcHBlbmVkIHRvIGJlIHVucmVhY2hhYmxlIHdvdWxkXG4gICAgbGVhdmUgYSBrZXkgdGhhdCB3YXMgbWlzdXNlZCBhY2NlcHRlZCBmb3JldmVyLiAqL1xuZXhwb3J0IHR5cGUgUGVuZGluZ1Jldm9jYXRpb24gPSB7XG4gICAgZmluZ2VycHJpbnQ6IHN0cmluZztcbiAgICBrZXlMaW5lOiBzdHJpbmc7XG4gICAgc291cmNlVVJMOiBzdHJpbmc7XG4gICAgYXR0ZW1wdDogeyBpcDogc3RyaW5nOyB1c2VyOiBzdHJpbmc7IHBvcnQ6IHN0cmluZzsgcmVxdWlyZWQ6IHN0cmluZzsgbGluZTogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBEYWVtb25TdGF0ZSA9IHtcbiAgICBzb3VyY2VzOiB7IFtyZXBvVVJMOiBzdHJpbmddOiBTb3VyY2VTdGF0ZSB9O1xuICAgIHVzZXJLZXlIYXNoZXM6IHsgW3VzZXJOYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAvLyBIZWxkIGluIG1lbW9yeSBvbmx5LCBuZXZlciB3cml0dGVuIHRvIGRpc2suIERlbGV0aW5nIGEgcmV2b2NhdGlvbiBmcm9tIHRoZSByZXZva2UgcmVwbyBkb2VzXG4gICAgLy8gbm90IGJyaW5nIGEga2V5IGJhY2ssIGJlY2F1c2UgdGhpcyBtYWNoaW5lIHN0aWxsIHJlbWVtYmVycyBpdCAtIHRoZSBrZXkgdGhhdCB3cml0ZXNcbiAgICAvLyByZXZvY2F0aW9ucyBpcyBvbiBldmVyeSBzZXJ2ZXIsIHNvIHdob2V2ZXIgc3RvbGUgb25lIGNvdWxkIG90aGVyd2lzZSBlcmFzZSB0aGUgcmVjb3JkIHRoYXRcbiAgICAvLyBzaHV0IHRoZW0gb3V0LiBSZXN0YXJ0aW5nIHRoZSBkYWVtb24gZG9lcyBjbGVhciBpdCwgd2hpY2ggaXMgdGhlIHdheSBiYWNrIGZyb20gYSByZXZvY2F0aW9uXG4gICAgLy8gdGhhdCBzaG91bGQgbm90IGhhdmUgaGFwcGVuZWQuXG4gICAgcmV2b2NhdGlvbnM6IHsgW3Jldm9jYXRpb25JZDogc3RyaW5nXTogUmV2b2NhdGlvblN0YXRlIH07XG4gICAgLy8gV2hlbiB0aGlzIG1hY2hpbmUgZmlyc3Qgc2F3IGVhY2ggdW5yZXZva2UsIGJ5IHVucmV2b2tlIGlkLiBPbiBkaXNrLCB1bmxpa2UgdGhlIHJldm9jYXRpb25zXG4gICAgLy8gdGhlbXNlbHZlcywgYmVjYXVzZSBpdCBpcyB3aGF0IHRoZSBob3VyIGxvbmcgd2FpdCBpcyBjb3VudGVkIGZyb206IG1lYXN1cmluZyBmcm9tIGEgdGltZSB0aGVcbiAgICAvLyB1bnJldm9rZSBmaWxlIHN0YXRlcyB3b3VsZCBsZXQgd2hvZXZlciB3cm90ZSBpdCBiYWNrZGF0ZSB0aGUgZmlsZSBhbmQgc2tpcCB0aGUgd2FpdCwgYW5kXG4gICAgLy8gbWVhc3VyaW5nIGZyb20gcHJvY2VzcyBzdGFydCB3b3VsZCByZXN0YXJ0IHRoZSB3YWl0IG9uIGV2ZXJ5IHJlc3RhcnQuXG4gICAgdW5yZXZva2VGaXJzdFNlZW46IHsgW3VucmV2b2tlSWQ6IHN0cmluZ106IG51bWJlciB9O1xuICAgIHBlbmRpbmdSZXZvY2F0aW9uczogUGVuZGluZ1Jldm9jYXRpb25bXTtcbiAgICAvLyBUaGUga2V5cyB3ZSBsYXN0IHdyb3RlIG91dC4gV2hhdCB0ZWxscyBhIGNoYW5nZSB3ZSBtYWRlIGFwYXJ0IGZyb20gb25lIHNvbWVib2R5IGVsc2UgbWFkZTpcbiAgICAvLyBpZiB0aGlzIHN0aWxsIG1hdGNoZXMgd2hhdCB3ZSB3YW50LCBhbmQgdGhlIGZpbGUgZG9lcyBub3QsIHRoZSBmaWxlIHdhcyBlZGl0ZWQgYmVoaW5kIHVzLlxuICAgIGFwcGxpZWRLZXlzOiBzdHJpbmdbXTtcbiAgICAvLyBXaGVyZSB3ZSBoYWQgcmVhZCB1cCB0byBpbiB0aGUgYXV0aCBsb2csIHNvIGEgcmVzdGFydCBkb2VzIG5vdCByZS1yZXBvcnQgb2xkIGF0dGVtcHRzLlxuICAgIGF1dGhMb2dPZmZzZXQ6IG51bWJlcjtcbiAgICBhdXRoTG9nU2lnbmF0dXJlOiBzdHJpbmc7XG59O1xuXG5sZXQgc3RhdGU6IERhZW1vblN0YXRlID0ge1xuICAgIHNvdXJjZXM6IHt9LFxuICAgIHVzZXJLZXlIYXNoZXM6IHt9LFxuICAgIHJldm9jYXRpb25zOiB7fSxcbiAgICB1bnJldm9rZUZpcnN0U2Vlbjoge30sXG4gICAgcGVuZGluZ1Jldm9jYXRpb25zOiBbXSxcbiAgICBhcHBsaWVkS2V5czogW10sXG4gICAgYXV0aExvZ09mZnNldDogMCxcbiAgICBhdXRoTG9nU2lnbmF0dXJlOiBcIlwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBzdGF0ZTtcbn1cblxuLyoqIFBlciBzb3VyY2UgcHJvZ3Jlc3MsIGNyZWF0ZWQgb24gZmlyc3QgdXNlIHNvIGEgbmV3bHkgYWRkZWQgc291cmNlIHN0YXJ0cyBjbGVhbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VTdGF0ZShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBzdGF0ZS5zb3VyY2VzW3JlcG9VUkxdO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGxldCBjcmVhdGVkOiBTb3VyY2VTdGF0ZSA9IHtcbiAgICAgICAgbGFzdFNoYTogXCJcIixcbiAgICAgICAgYnJhbmNoOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZDogZmFsc2UsXG4gICAgICAgIGFjY2VwdGVkU2lnbmVyOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZEtleXM6IFtdLFxuICAgICAgICBhY2NlcHRlZE1hbmlmZXN0SGFzaDogXCJcIixcbiAgICAgICAgYWNjZXB0ZWRTaWduYXR1cmVIYXNoOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2lnbmVyOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2luY2U6IDAsXG4gICAgICAgIHJlcG9ydGVkUHJvYmxlbTogXCJcIixcbiAgICB9O1xuICAgIHN0YXRlLnNvdXJjZXNbcmVwb1VSTF0gPSBjcmVhdGVkO1xuICAgIHJldHVybiBjcmVhdGVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0YXRlKCkge1xuICAgIGxldCBjb250ZW50cztcbiAgICB0cnkge1xuICAgICAgICBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKFNUQVRFX1BBVEgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IGxvYWRlZCA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuICAgICAgICAvLyBSZXZvY2F0aW9ucyBhcmUgaGVsZCBpbiBtZW1vcnkgb25seSwgc28gd2hhdGV2ZXIgYW4gb2xkZXIgdmVyc2lvbiBsZWZ0IG9uIGRpc2sgaXMgbm90XG4gICAgICAgIC8vIHJlYWQgYmFjayBpbi4gU3RhcnRpbmcgdGhlIGRhZW1vbiBpcyB3aGF0IGZvcmdldHMgdGhlbS5cbiAgICAgICAgZGVsZXRlIGxvYWRlZC5yZXZvY2F0aW9ucztcbiAgICAgICAgc3RhdGUgPSBPYmplY3QuYXNzaWduKHN0YXRlLCBsb2FkZWQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQ29ycnVwdCBzdGF0ZSBvbmx5IGNvc3RzIHVzIG9uZSBkdXBsaWNhdGUgbm90aWZpY2F0aW9uLCBzbyBpdCBpcyBub3Qgd29ydGggZmFpbGluZyBvdmVyLlxuICAgICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgdW5yZWFkYWJsZSBzdGF0ZSBmaWxlICR7U1RBVEVfUEFUSH0uICR7ZX1gKTtcbiAgICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYXZlU3RhdGUoKSB7XG4gICAgbGV0IHsgcmV2b2NhdGlvbnMsIC4uLnBlcnNpc3RlZCB9ID0gc3RhdGU7XG4gICAgYXdhaXQgZnMubWtkaXIocGF0aC5kaXJuYW1lKFNUQVRFX1BBVEgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoU1RBVEVfUEFUSCwgSlNPTi5zdHJpbmdpZnkocGVyc2lzdGVkLCB1bmRlZmluZWQsIDQpLCB7IG1vZGU6IDBvNjAwIH0pO1xufVxuIl19
|
|
74
|
-
/* _JS_SOURCE_HASH = "
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwyREFBNkI7QUFDN0IsZ0RBQXdCO0FBQ3hCLG1DQUFxQztBQXVFckMsSUFBSSxLQUFLLEdBQWdCO0lBQ3JCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsYUFBYSxFQUFFLEVBQUU7SUFDakIsV0FBVyxFQUFFLEVBQUU7SUFDZixrQkFBa0IsRUFBRSxFQUFFO0lBQ3RCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsYUFBYSxFQUFFLENBQUM7SUFDaEIsZ0JBQWdCLEVBQUUsRUFBRTtDQUN2QixDQUFDO0FBRUYsU0FBZ0IsUUFBUTtJQUNwQixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRkQsNEJBRUM7QUFFRCxzRkFBc0Y7QUFDdEYsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDdkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ1gsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksT0FBTyxHQUFnQjtRQUN2QixPQUFPLEVBQUUsRUFBRTtRQUNYLE1BQU0sRUFBRSxFQUFFO1FBQ1YsUUFBUSxFQUFFLEtBQUs7UUFDZixjQUFjLEVBQUUsRUFBRTtRQUNsQixZQUFZLEVBQUUsRUFBRTtRQUNoQixvQkFBb0IsRUFBRSxFQUFFO1FBQ3hCLHFCQUFxQixFQUFFLEVBQUU7UUFDekIsYUFBYSxFQUFFLEVBQUU7UUFDakIsWUFBWSxFQUFFLENBQUM7UUFDZixlQUFlLEVBQUUsRUFBRTtLQUN0QixDQUFDO0lBQ0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDakMsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQztBQW5CRCxrQ0FtQkM7QUFFTSxLQUFLLFVBQVUsU0FBUztJQUMzQixJQUFJLFFBQVEsQ0FBQztJQUNiLElBQUksQ0FBQztRQUNELFFBQVEsR0FBRyxNQUFNLGtCQUFFLENBQUMsUUFBUSxDQUFDLGtCQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxPQUFPO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsd0ZBQXdGO1FBQ3hGLDBEQUEwRDtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDMUIsd0ZBQXdGO1FBQ3hGLDZFQUE2RTtRQUM3RSxPQUFPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNoQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCwyRkFBMkY7UUFDM0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0Msa0JBQVUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDTCxDQUFDO0FBcEJELDhCQW9CQztBQUVNLEtBQUssVUFBVSxTQUFTO0lBQzNCLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDMUMsTUFBTSxrQkFBRSxDQUFDLEtBQUssQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFVLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sa0JBQUUsQ0FBQyxTQUFTLENBQUMsa0JBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU1RBVEVfUEFUSCB9IGZyb20gXCIuL3BhdGhzXCI7XG5cbi8qKiBXaGF0IHdlIGxhc3QgZGVjaWRlZCB0byB0cnVzdCBmb3Igb25lIHNvdXJjZSwga2VwdCBvbiBkaXNrIHNvIG5vYm9keSBjYW4gdGVsbCB1cyBhIGRpZmZlcmVudFxuICAgIHN0b3J5IGFib3V0IHdoYXQgd2Ugc2F3IGxhc3QgdGltZS4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVN0YXRlID0ge1xuICAgIGxhc3RTaGE6IHN0cmluZztcbiAgICBicmFuY2g6IHN0cmluZztcbiAgICBhY2NlcHRlZDogYm9vbGVhbjtcbiAgICBhY2NlcHRlZFNpZ25lcjogc3RyaW5nO1xuICAgIGFjY2VwdGVkS2V5czogc3RyaW5nW107XG4gICAgYWNjZXB0ZWRNYW5pZmVzdEhhc2g6IHN0cmluZztcbiAgICBhY2NlcHRlZFNpZ25hdHVyZUhhc2g6IHN0cmluZztcbiAgICBwZW5kaW5nU2lnbmVyOiBzdHJpbmc7XG4gICAgcGVuZGluZ1NpbmNlOiBudW1iZXI7XG4gICAgcmVwb3J0ZWRQcm9ibGVtOiBzdHJpbmc7XG59O1xuXG4vKiogT25lIHJldm9jYXRpb24gZXZlbnQ6IHRoaXMga2V5LCB1c2VkIGZyb20gdGhpcyBhZGRyZXNzLCBzbyBpdCBpcyBubyBsb25nZXIgYWNjZXB0ZWQuIEtlcHQgZXZlblxuICAgIHdoZW4gdGhlIHJldm9rZSByZXBvIG5vIGxvbmdlciBsaXN0cyBpdDogdGhlIGRlcGxveSBrZXkgdGhhdCB3cml0ZXMgcmV2b2NhdGlvbnMgbGl2ZXMgb24gZXZlcnlcbiAgICBzZXJ2ZXIsIHNvIGFuIGF0dGFja2VyIHdobyB0b29rIG9uZSBjb3VsZCBvdGhlcndpc2UgZGVsZXRlIHRoZSByZXZvY2F0aW9uIHRoYXQgbG9ja2VkIHRoZW0gb3V0LlxuXG4gICAgVGhlIGlkIGlzIHVuaXF1ZSB0byB0aGUgZXZlbnQsIG5ldmVyIGRlcml2ZWQgZnJvbSB0aGUga2V5LiBBIGtleSB0aGF0IGhhcyBiZWVuIGZvcmdpdmVuIGZvciBvbmVcbiAgICBhZGRyZXNzIGlzIHN0aWxsIGFuIG9yZGluYXJ5IGtleSwgYW5kIHVzaW5nIGl0IGZyb20gc29tZSBvdGhlciBhZGRyZXNzIHJldm9rZXMgaXQgYWdhaW4sIHdpdGggYVxuICAgIG5ldyBpZCB0aGF0IG5vIGV4aXN0aW5nIHVucmV2b2tlIG5hbWVzLiAqL1xuZXhwb3J0IHR5cGUgUmV2b2NhdGlvblN0YXRlID0ge1xuICAgIHJldm9jYXRpb25JZDogc3RyaW5nO1xuICAgIGZpbmdlcnByaW50OiBzdHJpbmc7XG4gICAgLy8gVGhlIGFkZHJlc3MgaXQgd2FzIHVzZWQgZnJvbS4gSGFsZiBvZiB3aGF0IGEgcmV2b2NhdGlvbiBzYXlzLCBhbmQgdGhlIGhhbGYgYW4gdW5yZXZva2UgaGFzXG4gICAgLy8gdG8gbmFtZSB0byB1bmRvIGl0LlxuICAgIGlwOiBzdHJpbmc7XG4gICAgLy8gV2h5IHRoaXMga2V5IHdhcyByZXZva2VkLCBjYXJyaWVkIGZyb20gdGhlIHJldm9jYXRpb24gZmlsZSBzbyBhIG1hY2hpbmUgdGhhdCByZWFkcyBvbmVcbiAgICAvLyB3cml0dGVuIGVsc2V3aGVyZSBjYW4gc2F5IHdoYXQgaGFwcGVuZWQgcmF0aGVyIHRoYW4gb25seSB0aGF0IHNvbWV0aGluZyBkaWQuXG4gICAgcmV2b2tlZEF0OiBzdHJpbmc7XG4gICAgcmV2b2tlZEJ5OiBzdHJpbmc7XG4gICAgcmVhc29uOiBzdHJpbmc7XG4gICAgLy8gV2hpY2ggdW5yZXZva2UgYWxsb3dlZCB0aGlzIGtleSBmcm9tIHRoaXMgYWRkcmVzcywgb25jZSBvbmUgaGFzIGJlZW4gc2Vlbi5cbiAgICB1bnJldm9rZUlkOiBzdHJpbmc7XG4gICAgdW5yZXZva2VkOiBib29sZWFuO1xuICAgIC8vIFdoZXRoZXIgd2UgaGF2ZSBzYWlkIHRoYXQgdGhpcyBrZXkgYWN0dWFsbHkgbGVmdCByb290J3MgYXV0aG9yaXplZF9rZXlzLiBUaGUgcmVtb3ZhbCBpcyB0aGVcbiAgICAvLyB0aGluZyB3b3J0aCByZXBvcnRpbmcsIGFuZCBpdCBpcyB3b3J0aCByZXBvcnRpbmcgZXhhY3RseSBvbmNlLlxuICAgIHJlcG9ydGVkUmVtb3ZlZDogYm9vbGVhbjtcbn07XG5cbi8qKiBBIHJlZnVzYWwgd2Ugc2F3IGJ1dCBjb3VsZCBub3Qgd3JpdGUgZG93biB5ZXQuIEhlbGQgdW50aWwgaXQgaXMgcmVjb3JkZWQsIGJlY2F1c2UgdGhlIGxvZyBpc1xuICAgIHJlYWQgb25jZSBhbmQgbW92ZXMgb246IGxvc2luZyBvbmUgb2YgdGhlc2UgdG8gYSByZXBvIHRoYXQgaGFwcGVuZWQgdG8gYmUgdW5yZWFjaGFibGUgd291bGRcbiAgICBsZWF2ZSBhIGtleSB0aGF0IHdhcyBtaXN1c2VkIGFjY2VwdGVkIGZvcmV2ZXIuICovXG5leHBvcnQgdHlwZSBQZW5kaW5nUmV2b2NhdGlvbiA9IHtcbiAgICBmaW5nZXJwcmludDogc3RyaW5nO1xuICAgIGtleUxpbmU6IHN0cmluZztcbiAgICBzb3VyY2VVUkw6IHN0cmluZztcbiAgICBhdHRlbXB0OiB7IGlwOiBzdHJpbmc7IHVzZXI6IHN0cmluZzsgcG9ydDogc3RyaW5nOyByZXF1aXJlZDogc3RyaW5nOyBsaW5lOiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIERhZW1vblN0YXRlID0ge1xuICAgIHNvdXJjZXM6IHsgW3JlcG9VUkw6IHN0cmluZ106IFNvdXJjZVN0YXRlIH07XG4gICAgdXNlcktleUhhc2hlczogeyBbdXNlck5hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIC8vIEhlbGQgaW4gbWVtb3J5IG9ubHksIG5ldmVyIHdyaXR0ZW4gdG8gZGlzay4gRGVsZXRpbmcgYSByZXZvY2F0aW9uIGZyb20gdGhlIHJldm9rZSByZXBvIGRvZXNcbiAgICAvLyBub3QgYnJpbmcgYSBrZXkgYmFjaywgYmVjYXVzZSB0aGlzIG1hY2hpbmUgc3RpbGwgcmVtZW1iZXJzIGl0IC0gdGhlIGtleSB0aGF0IHdyaXRlc1xuICAgIC8vIHJldm9jYXRpb25zIGlzIG9uIGV2ZXJ5IHNlcnZlciwgc28gd2hvZXZlciBzdG9sZSBvbmUgY291bGQgb3RoZXJ3aXNlIGVyYXNlIHRoZSByZWNvcmQgdGhhdFxuICAgIC8vIHNodXQgdGhlbSBvdXQuIFJlc3RhcnRpbmcgdGhlIGRhZW1vbiBkb2VzIGNsZWFyIGl0LCB3aGljaCBpcyB0aGUgd2F5IGJhY2sgZnJvbSBhIHJldm9jYXRpb25cbiAgICAvLyB0aGF0IHNob3VsZCBub3QgaGF2ZSBoYXBwZW5lZC5cbiAgICByZXZvY2F0aW9uczogeyBbcmV2b2NhdGlvbklkOiBzdHJpbmddOiBSZXZvY2F0aW9uU3RhdGUgfTtcbiAgICBwZW5kaW5nUmV2b2NhdGlvbnM6IFBlbmRpbmdSZXZvY2F0aW9uW107XG4gICAgLy8gVGhlIGtleXMgd2UgbGFzdCB3cm90ZSBvdXQuIFdoYXQgdGVsbHMgYSBjaGFuZ2Ugd2UgbWFkZSBhcGFydCBmcm9tIG9uZSBzb21lYm9keSBlbHNlIG1hZGU6XG4gICAgLy8gaWYgdGhpcyBzdGlsbCBtYXRjaGVzIHdoYXQgd2Ugd2FudCwgYW5kIHRoZSBmaWxlIGRvZXMgbm90LCB0aGUgZmlsZSB3YXMgZWRpdGVkIGJlaGluZCB1cy5cbiAgICBhcHBsaWVkS2V5czogc3RyaW5nW107XG4gICAgLy8gV2hlcmUgd2UgaGFkIHJlYWQgdXAgdG8gaW4gdGhlIGF1dGggbG9nLCBzbyBhIHJlc3RhcnQgZG9lcyBub3QgcmUtcmVwb3J0IG9sZCBhdHRlbXB0cy5cbiAgICBhdXRoTG9nT2Zmc2V0OiBudW1iZXI7XG4gICAgYXV0aExvZ1NpZ25hdHVyZTogc3RyaW5nO1xufTtcblxubGV0IHN0YXRlOiBEYWVtb25TdGF0ZSA9IHtcbiAgICBzb3VyY2VzOiB7fSxcbiAgICB1c2VyS2V5SGFzaGVzOiB7fSxcbiAgICByZXZvY2F0aW9uczoge30sXG4gICAgcGVuZGluZ1Jldm9jYXRpb25zOiBbXSxcbiAgICBhcHBsaWVkS2V5czogW10sXG4gICAgYXV0aExvZ09mZnNldDogMCxcbiAgICBhdXRoTG9nU2lnbmF0dXJlOiBcIlwiLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlKCkge1xuICAgIHJldHVybiBzdGF0ZTtcbn1cblxuLyoqIFBlciBzb3VyY2UgcHJvZ3Jlc3MsIGNyZWF0ZWQgb24gZmlyc3QgdXNlIHNvIGEgbmV3bHkgYWRkZWQgc291cmNlIHN0YXJ0cyBjbGVhbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3VyY2VTdGF0ZShyZXBvVVJMOiBzdHJpbmcpIHtcbiAgICBsZXQgZXhpc3RpbmcgPSBzdGF0ZS5zb3VyY2VzW3JlcG9VUkxdO1xuICAgIGlmIChleGlzdGluZykge1xuICAgICAgICByZXR1cm4gZXhpc3Rpbmc7XG4gICAgfVxuICAgIGxldCBjcmVhdGVkOiBTb3VyY2VTdGF0ZSA9IHtcbiAgICAgICAgbGFzdFNoYTogXCJcIixcbiAgICAgICAgYnJhbmNoOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZDogZmFsc2UsXG4gICAgICAgIGFjY2VwdGVkU2lnbmVyOiBcIlwiLFxuICAgICAgICBhY2NlcHRlZEtleXM6IFtdLFxuICAgICAgICBhY2NlcHRlZE1hbmlmZXN0SGFzaDogXCJcIixcbiAgICAgICAgYWNjZXB0ZWRTaWduYXR1cmVIYXNoOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2lnbmVyOiBcIlwiLFxuICAgICAgICBwZW5kaW5nU2luY2U6IDAsXG4gICAgICAgIHJlcG9ydGVkUHJvYmxlbTogXCJcIixcbiAgICB9O1xuICAgIHN0YXRlLnNvdXJjZXNbcmVwb1VSTF0gPSBjcmVhdGVkO1xuICAgIHJldHVybiBjcmVhdGVkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFN0YXRlKCkge1xuICAgIGxldCBjb250ZW50cztcbiAgICB0cnkge1xuICAgICAgICBjb250ZW50cyA9IGF3YWl0IGZzLnJlYWRGaWxlKFNUQVRFX1BBVEgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgbGV0IGxvYWRlZCA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuICAgICAgICAvLyBSZXZvY2F0aW9ucyBhcmUgaGVsZCBpbiBtZW1vcnkgb25seSwgc28gd2hhdGV2ZXIgYW4gb2xkZXIgdmVyc2lvbiBsZWZ0IG9uIGRpc2sgaXMgbm90XG4gICAgICAgIC8vIHJlYWQgYmFjayBpbi4gU3RhcnRpbmcgdGhlIGRhZW1vbiBpcyB3aGF0IGZvcmdldHMgdGhlbS5cbiAgICAgICAgZGVsZXRlIGxvYWRlZC5yZXZvY2F0aW9ucztcbiAgICAgICAgLy8gV3JpdHRlbiBieSB0aGUgdmVyc2lvbnMgdGhhdCBtYWRlIGFuIHVucmV2b2tlIHdhaXQgYW4gaG91ciBiZWZvcmUgaXQgY291bnRlZC4gRHJvcHBlZFxuICAgICAgICAvLyByYXRoZXIgdGhhbiBjYXJyaWVkLCBzbyB0aGUgZmlsZSBzdG9wcyBtZW50aW9uaW5nIHNvbWV0aGluZyBub3RoaW5nIHJlYWRzLlxuICAgICAgICBkZWxldGUgbG9hZGVkLnVucmV2b2tlRmlyc3RTZWVuO1xuICAgICAgICBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oc3RhdGUsIGxvYWRlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBDb3JydXB0IHN0YXRlIG9ubHkgY29zdHMgdXMgb25lIGR1cGxpY2F0ZSBub3RpZmljYXRpb24sIHNvIGl0IGlzIG5vdCB3b3J0aCBmYWlsaW5nIG92ZXIuXG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB1bnJlYWRhYmxlIHN0YXRlIGZpbGUgJHtTVEFURV9QQVRIfS4gJHtlfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVTdGF0ZSgpIHtcbiAgICBsZXQgeyByZXZvY2F0aW9ucywgLi4ucGVyc2lzdGVkIH0gPSBzdGF0ZTtcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmRpcm5hbWUoU1RBVEVfUEFUSCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShTVEFURV9QQVRILCBKU09OLnN0cmluZ2lmeShwZXJzaXN0ZWQsIHVuZGVmaW5lZCwgNCksIHsgbW9kZTogMG82MDAgfSk7XG59XG4iXX0=
|
|
76
|
+
/* _JS_SOURCE_HASH = "5c562bbe0b50cdf343b74a1cb1c3d5526a7ef87a0c8305381c8edd29d97fc5e0"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -292,4 +292,4 @@ async function resolveSourceKeys(repoURL) {
|
|
|
292
292
|
}
|
|
293
293
|
exports.resolveSourceKeys = resolveSourceKeys;
|
|
294
294
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1c3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0cnVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsMkRBQTZCO0FBQzdCLGdEQUF3QjtBQUN4QiwrQ0FBbUQ7QUFDbkQsc0RBQWtEO0FBQ2xELHdDQUE0QztBQUM1Qyx5REFBNkc7QUFDN0csbUNBQXFFO0FBQ3JFLHFDQUFrQztBQUNsQyxtQ0FBaUQ7QUFFakQsaUdBQWlHO0FBQ2pHLG1EQUFtRDtBQUNuRCxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDcEIsNkZBQTZGO0FBQzdGLGtDQUFrQztBQUNsQyxNQUFNLFlBQVksR0FBRyxvQkFBb0IsQ0FBQztBQUUxQyxLQUFLLFVBQVUsVUFBVSxDQUFDLFFBQWdCO0lBQ3RDLElBQUksQ0FBQztRQUNELE1BQU0sa0JBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ2pELElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7MkVBQzJFO0FBQzNFLFNBQWdCLHNCQUFzQixDQUFDLGFBQXFCO0lBQ3hELElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FB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QUMzQyxNQUFNLElBQUEsaUJBQVMsR0FBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBQSxlQUFNLEVBQUMsb0NBQW9DLEVBQzdDLDhCQUE4QixPQUFPLGtEQUFrRDtjQUNyRixxRkFBcUY7Y0FDckYsMkJBQTJCO2NBQzNCLG1FQUFtRTtjQUNuRSx3QkFBd0IsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJO2NBQ2xELHlCQUF5QixjQUFjLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDakYsQ0FBQztRQUNGLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsMkJBQW1CLEVBQUUsQ0FBQztRQUNuRSxPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDO0lBRUQsMERBQTBEO0lBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsT0FBTyxjQUFjLDJCQUFtQixTQUFTLENBQUMsQ0FBQztJQUMxRyxPQUFPLE1BQU0sTUFBTSxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQTFHRCw4Q0EwR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3J5cHRvIGZyb20gXCJjcnlwdG9cIjtcbmltcG9ydCBmcyBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBzcGF3blByb21pc2UgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9zcGF3blwiO1xuaW1wb3J0IHsgbm9ybWFsaXplS2V5cyB9IGZyb20gXCIuLi9hdXRob3JpemVkS2V5c1wiO1xuaW1wb3J0IHsgc291cmNlUmVwb1BhdGggfSBmcm9tIFwiLi4vc291cmNlc1wiO1xuaW1wb3J0IHsgTUFOSUZFU1RfTkFNRSwgbm9ybWFsaXplQ29udGVudCwgU0lHTl9OQU1FU1BBQ0UsIFNJR05BVFVSRV9OQU1FIH0gZnJvbSBcIi4uLy4uL3NpZ25lZEZpbGVzL21hbmlmZXN0XCI7XG5pbXBvcnQgeyBNQVhfRVJST1JfQk9EWV9MRU5HVEgsIFNJR05FUl9DSEFOR0VfREVMQVkgfSBmcm9tIFwiLi9wYXRoc1wiO1xuaW1wb3J0IHsgbm90aWZ5IH0gZnJvbSBcIi4vbm90aWZ5XCI7XG5pbXBvcnQgeyBzYXZlU3RhdGUsIHNvdXJjZVN0YXRlIH0gZnJvbSBcIi4vc3RhdGVcIjtcblxuLy8gQSBzb3VyY2UgdGhhdCBoYXMgbmV2ZXIgYmVlbiBzaWduZWQgcmVhZHMgYXMgdGhpcywgc28gbG9zaW5nIGEgc2lnbmF0dXJlIGNvdW50cyBhcyBhIGNoYW5nZSBvZlxuLy8gc2lnbmVyIHJhdGhlciB0aGFuIGFzIHNvbWV0aGluZyB0byB3YXZlIHRocm91Z2guXG5jb25zdCBVTlNJR05FRCA9IFwiXCI7XG4vLyBXaGF0IGZpeGVzIGJvdGggb2YgdGhlIHNpZ25hdHVyZSBwcm9ibGVtcyB3ZSByZXBvcnQsIHNvIHRoZSBtZXNzYWdlIGNhbiBzYXkgc28gcmF0aGVyIHRoYW5cbi8vIGxlYXZpbmcgc29tZW9uZSB0byB3b3JrIGl0IG91dC5cbmNvbnN0IFNJR05fQ09NTUFORCA9IFwieWFybiBzaWduZmlsZXMgZ2l0XCI7XG5cbmFzeW5jIGZ1bmN0aW9uIHBhdGhFeGlzdHMoZmlsZVBhdGg6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGZzLmFjY2VzcyhmaWxlUGF0aCk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcmVhZFNTSFN0cmluZyhidWZmZXI6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpIHtcbiAgICBsZXQgbGVuZ3RoID0gYnVmZmVyLnJlYWRVSW50MzJCRShvZmZzZXQpO1xuICAgIHJldHVybiBidWZmZXIuc3ViYXJyYXkob2Zmc2V0ICsgNCwgb2Zmc2V0ICsgNCArIGxlbmd0aCk7XG59XG5cbi8qKiBUaGUgc2lnbmF0dXJlIGNhcnJpZXMgdGhlIHB1YmxpYyBrZXkgdGhhdCBtYWRlIGl0LCBzbyB0aGUga2V5IGl0c2VsZiBjYW4gYmUgcmVwb3J0ZWQgcmF0aGVyXG4gICAgdGhhbiBvbmx5IGEgZmluZ2VycHJpbnQuIFJldHVybnMgaXQgaW4gdGhlIHVzdWFsIFwidHlwZSBiYXNlNjRcIiBmb3JtLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1YmxpY0tleUZyb21TaWduYXR1cmUoc2lnbmF0dXJlVGV4dDogc3RyaW5nKSB7XG4gICAgbGV0IGJvZHkgPSBzaWduYXR1cmVUZXh0LnNwbGl0KFwiXFxuXCIpLmZpbHRlcihsaW5lID0+IGxpbmUgJiYgIWxpbmUuc3RhcnRzV2l0aChcIi0tLS0tXCIpKS5qb2luKFwiXCIpO1xuICAgIGxldCBibG9iID0gQnVmZmVyLmZyb20oYm9keSwgXCJiYXNlNjRcIik7XG4gICAgaWYgKGJsb2Iuc3ViYXJyYXkoMCwgNikudG9TdHJpbmcoKSAhPT0gXCJTU0hTSUdcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGFuIFNTSFNJRyBzaWduYXR1cmUsIHN0YXJ0ZWQgd2l0aCAke2Jsb2Iuc3ViYXJyYXkoMCwgNikudG9TdHJpbmcoKX1gKTtcbiAgICB9XG4gICAgLy8gVGhlIG1hZ2ljLCB0aGVuIGEgdWludDMyIHZlcnNpb24sIHRoZW4gdGhlIHB1YmxpYyBrZXkuXG4gICAgbGV0IHB1YmxpY0tleSA9IHJlYWRTU0hTdHJpbmcoYmxvYiwgNiArIDQpO1xuICAgIGxldCBrZXlUeXBlID0gcmVhZFNTSFN0cmluZyhwdWJsaWNLZXksIDApLnRvU3RyaW5nKCk7XG4gICAgbGV0IGZpbmdlcnByaW50ID0gXCJTSEEyNTY6XCIgKyBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUocHVibGljS2V5KS5kaWdlc3QoXCJiYXNlNjRcIikucmVwbGFjZSgvPSskLywgXCJcIik7XG4gICAgcmV0dXJuIHsgcHVibGljS2V5OiBgJHtrZXlUeXBlfSAke3B1YmxpY0tleS50b1N0cmluZyhcImJhc2U2NFwiKX1gLCBmaW5nZXJwcmludCB9O1xufVxuXG4vKiogUmVhZHMgb25lIGNoZWNrb3V0J3Mga2V5cy4gUHJlZmVycyBhIHRvcCBsZXZlbCBhdXRob3JpemVkX2tleXMgZmlsZSBhbmQgb3RoZXJ3aXNlIGNvbmNhdGVuYXRlc1xuICAgIGV2ZXJ5IC5wdWIgYXQgdGhlIHRvcCBsZXZlbC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkQ2hlY2tvdXRLZXlzKHJlcG9QYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tYmluZWRQYXRoID0gcGF0aC5qb2luKHJlcG9QYXRoLCBcImF1dGhvcml6ZWRfa2V5c1wiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhjb21iaW5lZFBhdGgpKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVLZXlzKGF3YWl0IGZzLnJlYWRGaWxlKGNvbWJpbmVkUGF0aCwgXCJ1dGY4XCIpKTtcbiAgICB9XG4gICAgbGV0IHB1YkZpbGVzID0gKGF3YWl0IGZzLnJlYWRkaXIocmVwb1BhdGgpKS5maWx0ZXIobmFtZSA9PiBuYW1lLmVuZHNXaXRoKFwiLnB1YlwiKSkuc29ydCgpO1xuICAgIGlmICghcHViRmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYXV0aG9yaXplZF9rZXlzIG9yIGF0IGxlYXN0IG9uZSAucHViIGZpbGUgaW4gJHtyZXBvUGF0aH0sIGZvdW5kIG5laXRoZXJgKTtcbiAgICB9XG4gICAgbGV0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgbmFtZSBvZiBwdWJGaWxlcykge1xuICAgICAgICBrZXlzLnB1c2goLi4ubm9ybWFsaXplS2V5cyhhd2FpdCBmcy5yZWFkRmlsZShwYXRoLmpvaW4ocmVwb1BhdGgsIG5hbWUpLCBcInV0ZjhcIikpKTtcbiAgICB9XG4gICAgcmV0dXJuIGtleXM7XG59XG5cbi8qKiBFdmVyeSBmaWxlIGluIGEgY2hlY2tvdXQsIG90aGVyIHRoYW4gZ2l0J3Mgb3duIGRpcmVjdG9yeSBhbmQgdGhlIHNpZ25hdHVyZSBmaWxlcywgd2hpY2ggY2Fubm90XG4gICAgZGVzY3JpYmUgdGhlbXNlbHZlcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIGxpc3RDaGVja291dEZpbGVzKHJlcG9QYXRoOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChsZXQgZW50cnkgb2YgYXdhaXQgZnMucmVhZGRpcihwYXRoLmpvaW4ocmVwb1BhdGgsIHByZWZpeCB8fCBcIlwiKSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pKSB7XG4gICAgICAgIGxldCByZWxhdGl2ZVBhdGggPSBwcmVmaXggJiYgYCR7cHJlZml4fS8ke2VudHJ5Lm5hbWV9YCB8fCBlbnRyeS5uYW1lO1xuICAgICAgICBpZiAoZW50cnkubmFtZSA9PT0gXCIuZ2l0XCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcHJlZml4ICYmIChlbnRyeS5uYW1lID09PSBNQU5JRkVTVF9OQU1FIHx8IGVudHJ5Lm5hbWUgPT09IFNJR05BVFVSRV9OQU1FKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVudHJ5LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgICAgIGZpbGVzLnB1c2goLi4uYXdhaXQgbGlzdENoZWNrb3V0RmlsZXMocmVwb1BhdGgsIHJlbGF0aXZlUGF0aCkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgZmlsZXMucHVzaChyZWxhdGl2ZVBhdGgpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZXMuc29ydCgpO1xufVxuXG4vKiogVGhlIHNpZ25hdHVyZSBvbmx5IGNvdmVycyB0aGUgbWFuaWZlc3QsIHNvIHRoZSBtYW5pZmVzdCBoYXMgdG8gYmUgY2hlY2tlZCBhZ2FpbnN0IHdoYXQgaXNcbiAgICBhY3R1YWxseSBvbiBkaXNrLiBCb3RoIGRpcmVjdGlvbnMgbWF0dGVyOiBhIG1pc3NpbmcgZmlsZSBjaGFuZ2VzIHdoYXQgdGhlIGtleXMgbWVhbiwgYW5kIGFuXG4gICAgZXh0cmEgdW5saXN0ZWQgZmlsZSBjb3VsZCBhZGQga2V5cyBub2JvZHkgc2lnbmVkIGZvci4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeU1hbmlmZXN0TWF0Y2hlc0ZpbGVzKHJlcG9QYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgbWFuaWZlc3QgPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKHBhdGguam9pbihyZXBvUGF0aCwgTUFOSUZFU1RfTkFNRSksIFwidXRmOFwiKSk7XG4gICAgbGV0IGxpc3RlZCA9IG5ldyBNYXA8c3RyaW5nLCB7IHBhdGg6IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBzaGEyNTY6IHN0cmluZyB9PihcbiAgICAgICAgKG1hbmlmZXN0LmZpbGVzIHx8IFtdKS5tYXAoKGZpbGU6IHsgcGF0aDogc3RyaW5nIH0pID0+IFtmaWxlLnBhdGgsIGZpbGVdKVxuICAgICk7XG4gICAgbGV0IGFjdHVhbCA9IGF3YWl0IGxpc3RDaGVja291dEZpbGVzKHJlcG9QYXRoKTtcblxuICAgIGxldCBtaXNzaW5nID0gWy4uLmxpc3RlZC5rZXlzKCldLmZpbHRlcihmaWxlUGF0aCA9PiAhYWN0dWFsLmluY2x1ZGVzKGZpbGVQYXRoKSk7XG4gICAgaWYgKG1pc3NpbmcubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgdGhlIHNpZ25lZCBmaWxlcyB0byBiZSBwcmVzZW50LCAke21pc3NpbmcubGVuZ3RofSBtaXNzaW5nLCBmaXJzdCAke21pc3NpbmdbMF19YCk7XG4gICAgfVxuICAgIGxldCBleHRyYSA9IGFjdHVhbC5maWx0ZXIoZmlsZVBhdGggPT4gIWxpc3RlZC5oYXMoZmlsZVBhdGgpKTtcbiAgICBpZiAoZXh0cmEubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgb25seSBzaWduZWQgZmlsZXMgdG8gYmUgcHJlc2VudCwgJHtleHRyYS5sZW5ndGh9IGV4dHJhLCBmaXJzdCAke2V4dHJhWzBdfWApO1xuICAgIH1cbiAgICBmb3IgKGxldCBmaWxlUGF0aCBvZiBhY3R1YWwpIHtcbiAgICAgICAgbGV0IGV4cGVjdGVkID0gbGlzdGVkLmdldChmaWxlUGF0aCk7XG4gICAgICAgIGlmICghZXhwZWN0ZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjb250ZW50cyA9IG5vcm1hbGl6ZUNvbnRlbnQoYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHJlcG9QYXRoLCBmaWxlUGF0aCkpKTtcbiAgICAgICAgaWYgKGNvbnRlbnRzLmxlbmd0aCAhPT0gZXhwZWN0ZWQuc2l6ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2ZpbGVQYXRofSB0byBiZSAke2V4cGVjdGVkLnNpemV9IGJ5dGVzLCB3YXMgJHtjb250ZW50cy5sZW5ndGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUoY29udGVudHMpLmRpZ2VzdChcImhleFwiKTtcbiAgICAgICAgaWYgKGhhc2ggIT09IGV4cGVjdGVkLnNoYTI1Nikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeHBlY3RlZCAke2ZpbGVQYXRofSB0byBoYXNoIHRvICR7ZXhwZWN0ZWQuc2hhMjU2fSwgd2FzICR7aGFzaH1gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIFRoZSBtYW5pZmVzdCBhbmQgc2lnbmF0dXJlIGFzIHRoZXkgc3RhbmQsIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGFueSBnb29kLiBUaGUgaGFzaGVzIGFyZVxuICAgIHdoYXQgdGVsbCBhIHNpZ25hdHVyZSB0aGF0IHdhcyBuZXZlciB1cGRhdGVkIGFwYXJ0IGZyb20gb25lIHRoYXQgaXMgYnJva2VuLiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVhZFNpZ25hdHVyZUZpbGVzKHJlcG9QYXRoOiBzdHJpbmcpIHtcbiAgICBsZXQgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKHJlcG9QYXRoLCBNQU5JRkVTVF9OQU1FKTtcbiAgICBsZXQgc2lnbmF0dXJlUGF0aCA9IHBhdGguam9pbihyZXBvUGF0aCwgU0lHTkFUVVJFX05BTUUpO1xuICAgIGxldCBtYW5pZmVzdCA9IGF3YWl0IHBhdGhFeGlzdHMobWFuaWZlc3RQYXRoKSAmJiBhd2FpdCBmcy5yZWFkRmlsZShtYW5pZmVzdFBhdGgpIHx8IHVuZGVmaW5lZDtcbiAgICBsZXQgc2lnbmF0dXJlID0gYXdhaXQgcGF0aEV4aXN0cyhzaWduYXR1cmVQYXRoKSAmJiBhd2FpdCBmcy5yZWFkRmlsZShzaWduYXR1cmVQYXRoKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIHNpZ25hdHVyZSxcbiAgICAgICAgbWFuaWZlc3RIYXNoOiBtYW5pZmVzdCAmJiBjcnlwdG8uY3JlYXRlSGFzaChcInNoYTI1NlwiKS51cGRhdGUobWFuaWZlc3QpLmRpZ2VzdChcImhleFwiKSB8fCBcIlwiLFxuICAgICAgICBzaWduYXR1cmVIYXNoOiBzaWduYXR1cmUgJiYgY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIikudXBkYXRlKHNpZ25hdHVyZSkuZGlnZXN0KFwiaGV4XCIpIHx8IFwiXCIsXG4gICAgfTtcbn1cblxuLyoqIFdobyBzaWduZWQgdGhpcyBjaGVja291dC4gUmV0dXJucyBVTlNJR05FRCB3aGVuIHRoZXJlIGlzIG5vIHNpZ25hdHVyZSBhdCBhbGwsIGFuZCB0aHJvd3Mgd2hlblxuICAgIHRoZXJlIGlzIG9uZSB0aGF0IGRvZXMgbm90IGhvbGQgdXAgLSBhbiB1bnZlcmlmaWFibGUgc2lnbmF0dXJlIGlzIG5ldmVyIHRyZWF0ZWQgYXMgYW4gaWRlbnRpdHksXG4gICAgc28gaXQgY2FuIG5ldmVyIGJlY29tZSBzb21ldGhpbmcgd2UgYWNjZXB0LiAqL1xuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q2hlY2tvdXRTaWduZXIoY29uZmlnOiB7XG4gICAgcmVwb1BhdGg6IHN0cmluZztcbiAgICBmaWxlczogeyBtYW5pZmVzdD86IEJ1ZmZlcjsgc2lnbmF0dXJlPzogQnVmZmVyIH07XG59KSB7XG4gICAgbGV0IHsgcmVwb1BhdGgsIGZpbGVzIH0gPSBjb25maWc7XG4gICAgaWYgKCFmaWxlcy5tYW5pZmVzdCAmJiAhZmlsZXMuc2lnbmF0dXJlKSB7XG4gICAgICAgIHJldHVybiBVTlNJR05FRDtcbiAgICB9XG4gICAgaWYgKCFmaWxlcy5tYW5pZmVzdCB8fCAhZmlsZXMuc2lnbmF0dXJlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYm90aCAke01BTklGRVNUX05BTUV9IGFuZCAke1NJR05BVFVSRV9OQU1FfSwgb25seSBvbmUgaXMgcHJlc2VudGApO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gYXdhaXQgc3Bhd25Qcm9taXNlKHtcbiAgICAgICAgY29tbWFuZDogXCJzc2gta2V5Z2VuXCIsXG4gICAgICAgIGFyZ3M6IFtcIi1ZXCIsIFwiY2hlY2stbm92YWxpZGF0ZVwiLCBcIi1uXCIsIFNJR05fTkFNRVNQQUNFLCBcIi1zXCIsIHBhdGguam9pbihyZXBvUGF0aCwgU0lHTkFUVVJFX05BTUUpXSxcbiAgICAgICAgLy8gVGhlIHNpZ25hdHVyZSBjb3ZlcnMgdGhlIG5vcm1hbGlzZWQgYnl0ZXMsIHNvIGEgY2hlY2tvdXQgdGhhdCBhcnJpdmVkIHdpdGggQ1JMRiBzdGlsbFxuICAgICAgICAvLyB2ZXJpZmllcyByYXRoZXIgdGhhbiBsb29raW5nIGxpa2UgdGFtcGVyaW5nLlxuICAgICAgICBpbnB1dDogbm9ybWFsaXplQ29udGVudChmaWxlcy5tYW5pZmVzdCkudG9TdHJpbmcoXCJ1dGY4XCIpLFxuICAgIH0pO1xuICAgIGlmIChyZXN1bHQuc3RhdHVzICE9PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGB0aGUgc2lnbmF0dXJlIG92ZXIgJHtNQU5JRkVTVF9OQU1FfSBkb2VzIG5vdCB2ZXJpZnk6IGBcbiAgICAgICAgICAgICsgYCR7KHJlc3VsdC5zdGRvdXQgKyByZXN1bHQuc3RkZXJyKS50cmltKCkuc2xpY2UoMCwgTUFYX0VSUk9SX0JPRFlfTEVOR1RIKX1gXG4gICAgICAgICk7XG4gICAgfVxuICAgIGxldCByZXBvcnRlZCA9IGAke3Jlc3VsdC5zdGRvdXR9ICR7cmVzdWx0LnN0ZGVycn1gLm1hdGNoKC8oU0hBMjU2OltBLVphLXowLTkrLz1dKykvKTtcbiAgICBpZiAoIXJlcG9ydGVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgc3NoLWtleWdlbiByZXBvcnRlZCBubyBzaWduZXIgZmluZ2VycHJpbnQsIHNhaWQgJHtyZXN1bHQuc3Rkb3V0LnNsaWNlKDAsIE1BWF9FUlJPUl9CT0RZX0xFTkdUSCl9YCk7XG4gICAgfVxuICAgIGxldCB7IHB1YmxpY0tleSwgZmluZ2VycHJpbnQgfSA9IHB1YmxpY0tleUZyb21TaWduYXR1cmUoZmlsZXMuc2lnbmF0dXJlLnRvU3RyaW5nKFwidXRmOFwiKSk7XG4gICAgLy8gVGhlIGtleSB3ZSByZWFkIG91dCBvZiB0aGUgc2lnbmF0dXJlIGhhcyB0byBiZSB0aGUgb25lIHNzaC1rZXlnZW4ganVzdCBjaGVja2VkIGFnYWluc3QsXG4gICAgLy8gb3RoZXJ3aXNlIHdlIHdvdWxkIGJlIHJlcG9ydGluZyBhbiBpZGVudGl0eSB0aGF0IGRpZCBub3Qgc2lnbiBhbnl0aGluZy5cbiAgICBpZiAoZmluZ2VycHJpbnQgIT09IHJlcG9ydGVkWzFdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgdGhlIHNpZ25pbmcga2V5IHJlYWRzIGFzICR7ZmluZ2VycHJpbnR9IGJ1dCBzc2gta2V5Z2VuIHZlcmlmaWVkICR7cmVwb3J0ZWRbMV19YCk7XG4gICAgfVxuICAgIGF3YWl0IHZlcmlmeU1hbmlmZXN0TWF0Y2hlc0ZpbGVzKHJlcG9QYXRoKTtcbiAgICByZXR1cm4gcHVibGljS2V5O1xufVxuXG4vKiogUHJvdmVzIGEgY2hlY2tvdXQgb24gZGlzayB3YXMgc2lnbmVkLCBhbmQgdGhhdCB0aGUgZmlsZXMgaW4gaXQgYXJlIHRoZSBvbmVzIHRoYXQgd2VyZSBzaWduZWQuXG4gICAgUmV0dXJucyB0aGUgc2lnbmVyLCBhbmQgdGhyb3dzIGlmIGFueXRoaW5nIGFib3V0IHRoYXQgZG9lcyBub3QgaG9sZC5cblxuICAgIEFueXRoaW5nIHJlYWRpbmcgYSByZXBvIGZvciBzb21ldGhpbmcgb3RoZXIgdGhhbiBzc2gga2V5cyBnb2VzIHRocm91Z2ggdGhpcyBmaXJzdDogdGhlIHdob2xlXG4gICAgY2hlY2tvdXQgaXMgY292ZXJlZCBieSBvbmUgbWFuaWZlc3QsIHNvIGEgbWFjaGluZSBsaXN0IGlzIGV4YWN0bHkgYXMgdHJ1c3R3b3J0aHkgYXMgdGhlIGtleXNcbiAgICBiZXNpZGUgaXQsIGFuZCBuZWl0aGVyIGlzIHdvcnRoIHJlYWRpbmcgdW5zaWduZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdmVyaWZ5Q2hlY2tvdXQocmVwb1BhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB2ZXJpZnlDaGVja291dFNpZ25lcih7IHJlcG9QYXRoLCBmaWxlczogYXdhaXQgcmVhZFNpZ25hdHVyZUZpbGVzKHJlcG9QYXRoKSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NyaWJlU2lnbmVyKHNpZ25lcjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNpZ25lciA9PT0gVU5TSUdORUQgJiYgXCI8bm8gcHVibGljIGtleT5cIiB8fCBzaWduZXI7XG59XG5cbi8qKiBSZXBvcnRzIGEgcHJvYmxlbSB3aXRoIGEgc291cmNlJ3Mgc2lnbmF0dXJlLCBidXQgb25seSB3aGVuIGl0IGlzIG5vdCB0aGUgc2FtZSBwcm9ibGVtIHdlXG4gICAgYWxyZWFkeSByZXBvcnRlZCwgc28gYSBmYXVsdCB0aGF0IHBlcnNpc3RzIGRvZXMgbm90IHJlcGVhdCBldmVyeSBjaGVjay4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcG9ydFByb2JsZW0oY29uZmlnOiB7IHJlcG9VUkw6IHN0cmluZzsgcHJvYmxlbTogc3RyaW5nOyBoZWFkbGluZTogc3RyaW5nOyBib2R5OiBzdHJpbmcgfSkge1xuICAgIGxldCB7IHJlcG9VUkwsIHByb2JsZW0sIGhlYWRsaW5lLCBib2R5IH0gPSBjb25maWc7XG4gICAgbGV0IHNvdXJjZVN0YXRlVmFsdWUgPSBzb3VyY2VTdGF0ZShyZXBvVVJMKTtcbiAgICBpZiAoc291cmNlU3RhdGVWYWx1ZS5yZXBvcnRlZFByb2JsZW0gPT09IHByb2JsZW0pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzb3VyY2VTdGF0ZVZhbHVlLnJlcG9ydGVkUHJvYmxlbSA9IHByb2JsZW07XG4gICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgYXdhaXQgbm90aWZ5KGhlYWRsaW5lLCBib2R5KTtcbn1cblxuLyoqIFRoZSBrZXlzIGEgc291cmNlIGlzIGFsbG93ZWQgdG8gY29udHJpYnV0ZSByaWdodCBub3cuIEEgc291cmNlIHNpZ25lZCBieSBzb21lb25lIHdlIGhhdmUgbm90XG4gICAgYWNjZXB0ZWQga2VlcHMgY29udHJpYnV0aW5nIHRoZSBrZXlzIHdlIGxhc3QgYWNjZXB0ZWQsIHVudGlsIHRoZSBkZWxheSBoYXMgcGFzc2VkLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVTb3VyY2VLZXlzKHJlcG9VUkw6IHN0cmluZykge1xuICAgIGxldCBzb3VyY2VTdGF0ZVZhbHVlID0gc291cmNlU3RhdGUocmVwb1VSTCk7XG4gICAgbGV0IHJlcG9QYXRoID0gc291cmNlUmVwb1BhdGgocmVwb1VSTCk7XG4gICAgbGV0IGZpbGVzID0gYXdhaXQgcmVhZFNpZ25hdHVyZUZpbGVzKHJlcG9QYXRoKTtcblxuICAgIGxldCBzaWduZXI6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgICBzaWduZXIgPSBhd2FpdCB2ZXJpZnlDaGVja291dFNpZ25lcih7IHJlcG9QYXRoLCBmaWxlcyB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIE5vdGhpbmcgaGVyZSBpcyB0cnVzdHdvcnRoeSwgc28gbm90aGluZyBoZXJlIGlzIHVzZWQuIFdoaWNoIG9mIHRoZSB0d28gcHJvYmxlbXMgaXQgaXNcbiAgICAgICAgLy8gZGVwZW5kcyBvbiB3aGV0aGVyIHRoZSBzaWduYXR1cmUgaXMgc2ltcGx5IHRoZSBvbmUgd2UgYWxyZWFkeSBhY2NlcHRlZC5cbiAgICAgICAgbGV0IHVuY2hhbmdlZCA9IGZpbGVzLm1hbmlmZXN0SGFzaCA9PT0gc291cmNlU3RhdGVWYWx1ZS5hY2NlcHRlZE1hbmlmZXN0SGFzaFxuICAgICAgICAgICAgJiYgZmlsZXMuc2lnbmF0dXJlSGFzaCA9PT0gc291cmNlU3RhdGVWYWx1ZS5hY2NlcHRlZFNpZ25hdHVyZUhhc2g7XG4gICAgICAgIGlmICh1bmNoYW5nZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlcG9ydFByb2JsZW0oe1xuICAgICAgICAgICAgICAgIHJlcG9VUkwsXG4gICAgICAgICAgICAgICAgcHJvYmxlbTogXCJzdGFsZVwiLFxuICAgICAgICAgICAgICAgIGhlYWRsaW5lOiBgS0VZIFJFUE8gQ0hBTkdFRCBXSVRIT1VUIEJFSU5HIFNJR05FRGAsXG4gICAgICAgICAgICAgICAgYm9keTogYFxcYCR7cmVwb1VSTH1cXGAgY2hhbmdlZCwgYnV0IG5vYm9keSBzaWduZWQgdGhlIGNoYW5nZSwgc28gaXQgaXMgYmVpbmcgaWdub3JlZGBcbiAgICAgICAgICAgICAgICAgICAgKyBgIGFuZCB0aGlzIG1hY2hpbmUgaXMgc3RpbGwgdXNpbmcgdGhlIGtleXMgc2lnbmVkIGJ5YFxuICAgICAgICAgICAgICAgICAgICArIGAgXFxgJHtkZXNjcmliZVNpZ25lcihzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkU2lnbmVyKX1cXGAuYFxuICAgICAgICAgICAgICAgICAgICArIGBcXG5cXG5UbyBtYWtlIHRoZSBjaGFuZ2UgdGFrZSBlZmZlY3QsIHJ1biB0aGlzIGluIHRoYXQgcmVwbzpgXG4gICAgICAgICAgICAgICAgICAgICsgYFxcblxcYFxcYFxcYFxcbiR7U0lHTl9DT01NQU5EfVxcblxcYFxcYFxcYGAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHJlcG9ydFByb2JsZW0oe1xuICAgICAgICAgICAgICAgIHJlcG9VUkwsXG4gICAgICAgICAgICAgICAgcHJvYmxlbTogXCJjb3JydXB0XCIsXG4gICAgICAgICAgICAgICAgaGVhZGxpbmU6IGBLRVkgUkVQTyBTSUdOQVRVUkUgSVMgQlJPS0VOYCxcbiAgICAgICAgICAgICAgICBib2R5OiBgVGhlIHNpZ25hdHVyZSBvbiBcXGAke3JlcG9VUkx9XFxgIGRvZXMgbm90IGNoZWNrIG91dCwgc28gZXZlcnl0aGluZyBpbiBpdCBpc2BcbiAgICAgICAgICAgICAgICAgICAgKyBgIGJlaW5nIGlnbm9yZWQgYW5kIHRoaXMgbWFjaGluZSBpcyBzdGlsbCB1c2luZyB0aGUga2V5cyBzaWduZWQgYnlgXG4gICAgICAgICAgICAgICAgICAgICsgYCBcXGAke2Rlc2NyaWJlU2lnbmVyKHNvdXJjZVN0YXRlVmFsdWUuYWNjZXB0ZWRTaWduZXIpfVxcYC5gXG4gICAgICAgICAgICAgICAgICAgICsgYFxcblxcbiR7ZX1gXG4gICAgICAgICAgICAgICAgICAgICsgYFxcblxcblRvIHJlcGxhY2UgdGhlIHNpZ25hdHVyZSwgcnVuIHRoaXMgaW4gdGhhdCByZXBvOmBcbiAgICAgICAgICAgICAgICAgICAgKyBgXFxuXFxgXFxgXFxgXFxuJHtTSUdOX0NPTU1BTkR9XFxuXFxgXFxgXFxgYCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkS2V5cztcbiAgICB9XG4gICAgaWYgKHNvdXJjZVN0YXRlVmFsdWUucmVwb3J0ZWRQcm9ibGVtKSB7XG4gICAgICAgIHNvdXJjZVN0YXRlVmFsdWUucmVwb3J0ZWRQcm9ibGVtID0gXCJcIjtcbiAgICAgICAgYXdhaXQgc2F2ZVN0YXRlKCk7XG4gICAgfVxuICAgIGxldCBjaGVja291dEtleXMgPSBhd2FpdCByZWFkQ2hlY2tvdXRLZXlzKHJlcG9QYXRoKTtcblxuICAgIGxldCBhY2NlcHQgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNvdXJjZVN0YXRlVmFsdWUuYWNjZXB0ZWQgPSB0cnVlO1xuICAgICAgICBzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkU2lnbmVyID0gc2lnbmVyO1xuICAgICAgICBzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkS2V5cyA9IGNoZWNrb3V0S2V5cztcbiAgICAgICAgc291cmNlU3RhdGVWYWx1ZS5hY2NlcHRlZE1hbmlmZXN0SGFzaCA9IGZpbGVzLm1hbmlmZXN0SGFzaDtcbiAgICAgICAgc291cmNlU3RhdGVWYWx1ZS5hY2NlcHRlZFNpZ25hdHVyZUhhc2ggPSBmaWxlcy5zaWduYXR1cmVIYXNoO1xuICAgICAgICBzb3VyY2VTdGF0ZVZhbHVlLnBlbmRpbmdTaWduZXIgPSBVTlNJR05FRDtcbiAgICAgICAgc291cmNlU3RhdGVWYWx1ZS5wZW5kaW5nU2luY2UgPSAwO1xuICAgICAgICBhd2FpdCBzYXZlU3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGNoZWNrb3V0S2V5cztcbiAgICB9O1xuXG4gICAgLy8gTm90aGluZyBoYXMgZXZlciBiZWVuIGFjY2VwdGVkIGZyb20gdGhpcyBzb3VyY2UsIHNvIHRoaXMgaXMgd2hhdCB3ZSBzdGFydCB0cnVzdGluZy5cbiAgICBpZiAoIXNvdXJjZVN0YXRlVmFsdWUuYWNjZXB0ZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFRydXN0aW5nICR7cmVwb1VSTH0gYXMgc2lnbmVkIGJ5ICR7ZGVzY3JpYmVTaWduZXIoc2lnbmVyKX1gKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGFjY2VwdCgpO1xuICAgIH1cblxuICAgIGlmIChzaWduZXIgPT09IHNvdXJjZVN0YXRlVmFsdWUuYWNjZXB0ZWRTaWduZXIpIHtcbiAgICAgICAgLy8gQmFjayB0byB0aGUgc2lnbmVyIHdlIGFscmVhZHkgdHJ1c3QsIHNvIGFueXRoaW5nIHdlIHdlcmUgd2FpdGluZyBvbiBpcyBtb290LlxuICAgICAgICBpZiAoc291cmNlU3RhdGVWYWx1ZS5wZW5kaW5nU2luY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAke3JlcG9VUkx9IGlzIHNpZ25lZCBieSBpdHMgYWNjZXB0ZWQga2V5IGFnYWluLCBkcm9wcGluZyB0aGUgcGVuZGluZyBjaGFuZ2VgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgYWNjZXB0KCk7XG4gICAgfVxuXG4gICAgLy8gR29pbmcgZnJvbSBub3RoaW5nIHRvIHNvbWV0aGluZyBzaWduZWQgaXMgb25seSBldmVyIGFuIGltcHJvdmVtZW50LCBzbyBpdCBkb2VzIG5vdCB3YWl0LlxuICAgIGlmIChzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkU2lnbmVyID09PSBVTlNJR05FRCkge1xuICAgICAgICBhd2FpdCBub3RpZnkoYEtFWSBSRVBPIElTIE5PVyBTSUdORURgLFxuICAgICAgICAgICAgYFxcYCR7cmVwb1VSTH1cXGAgd2FzIG5vdCBzaWduZWQgYXQgYWxsIGJlZm9yZSwgc28gdGhpcyBpcyBhbiBpbXByb3ZlbWVudCBhbmQgaXRzIGtleXNgXG4gICAgICAgICAgICArIGAgYXJlIGJlaW5nIGFwcGxpZWQgcmlnaHQgYXdheS5gXG4gICAgICAgICAgICArIGBcXG5cXG5zaWduZWQgYnk6IFxcYCR7c2lnbmVyfVxcYGBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGFjY2VwdCgpO1xuICAgIH1cblxuICAgIC8vIEEgc2lnbmVyIHdlIGhhdmUgbm90IGFjY2VwdGVkLiBBbnl0aGluZyBuZXcgcmVzdGFydHMgdGhlIHdhaXQsIHNvIHB1Ymxpc2hpbmcgdHdpY2UgaW4gYSByb3dcbiAgICAvLyBnYWlucyBhbiBhdHRhY2tlciBub3RoaW5nLiBwZW5kaW5nU2luY2UgaXMgd2hhdCBtYXJrcyBhIHdhaXQgYXMgcnVubmluZywgYmVjYXVzZSBhbiB1bnNpZ25lZFxuICAgIC8vIGNoZWNrb3V0IGlzIGl0c2VsZiBhIHNpZ25lciB2YWx1ZSBhbmQgY2Fubm90IGRvdWJsZSBhcyBcIm5vdGhpbmcgcGVuZGluZ1wiLlxuICAgIGlmICghc291cmNlU3RhdGVWYWx1ZS5wZW5kaW5nU2luY2UgfHwgc2lnbmVyICE9PSBzb3VyY2VTdGF0ZVZhbHVlLnBlbmRpbmdTaWduZXIpIHtcbiAgICAgICAgc291cmNlU3RhdGVWYWx1ZS5wZW5kaW5nU2lnbmVyID0gc2lnbmVyO1xuICAgICAgICBzb3VyY2VTdGF0ZVZhbHVlLnBlbmRpbmdTaW5jZSA9IERhdGUubm93KCk7XG4gICAgICAgIGF3YWl0IHNhdmVTdGF0ZSgpO1xuICAgICAgICBhd2FpdCBub3RpZnkoYEtFWSBSRVBPIFNJR05FRCBCWSBBIERJRkZFUkVOVCBLRVlgLFxuICAgICAgICAgICAgYFNvbWVib2R5IGVsc2UgaXMgc2lnbmluZyBcXGAke3JlcG9VUkx9XFxgIG5vdy4gSXRzIGtleXMgYXJlIE5PVCBiZWluZyBhcHBsaWVkLCBhbmQgdGhpc2BcbiAgICAgICAgICAgICsgYCBtYWNoaW5lIGlzIHN0aWxsIHVzaW5nIHRoZSBvbmVzIGl0IGFscmVhZHkgaGFkLiBJZiBub3RoaW5nIGNoYW5nZXMsIHRoZSBuZXcgc2lnbmVyYFxuICAgICAgICAgICAgKyBgIGlzIGFjY2VwdGVkIGluIDI0IGhvdXJzLmBcbiAgICAgICAgICAgICsgYFxcblxcbklmIHRoYXQgd2FzIG5vdCB5b3UsIGZpeCB0aGUgcmVwbyBiZWZvcmUgdGhlIDI0IGhvdXJzIGFyZSB1cC5gXG4gICAgICAgICAgICArIGBcXG5cXG5zaWduZWQgYnkgbm93OiBcXGAke2Rlc2NyaWJlU2lnbmVyKHNpZ25lcil9XFxgYFxuICAgICAgICAgICAgKyBgXFxuc2lnbmVkIGJ5IGJlZm9yZTogXFxgJHtkZXNjcmliZVNpZ25lcihzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkU2lnbmVyKX1cXGBgXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBzb3VyY2VTdGF0ZVZhbHVlLmFjY2VwdGVkS2V5cztcbiAgICB9XG5cbiAgICBpZiAoRGF0ZS5ub3coKSAtIHNvdXJjZVN0YXRlVmFsdWUucGVuZGluZ1NpbmNlIDwgU0lHTkVSX0NIQU5HRV9ERUxBWSkge1xuICAgICAgICByZXR1cm4gc291cmNlU3RhdGVWYWx1ZS5hY2NlcHRlZEtleXM7XG4gICAgfVxuXG4gICAgLy8gU2FtZSBuZXcgc2lnbmVyLCAyNCBob3VycyBsYXRlciwgYW5kIG5vYm9keSBzdG9wcGVkIGl0LlxuICAgIGNvbnNvbGUubG9nKGBBY2NlcHRpbmcgJHtkZXNjcmliZVNpZ25lcihzaWduZXIpfSBmb3IgJHtyZXBvVVJMfSBhZnRlciB0aGUgJHtTSUdORVJfQ0hBTkdFX0RFTEFZfW1zIHdhaXRgKTtcbiAgICByZXR1cm4gYXdhaXQgYWNjZXB0KCk7XG59XG4iXX0=
|
|
295
|
-
/* _JS_SOURCE_HASH = "
|
|
295
|
+
/* _JS_SOURCE_HASH = "c5b35133cfc3e039a97b86b731f6c956728a1abe86833adac7079eb141094603"; */
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** core.sshCommand keeps the key selection with the command instead of in the environment. */
|
|
2
|
+
export declare function runGit(config: {
|
|
3
|
+
args: string[];
|
|
4
|
+
cwd?: string;
|
|
5
|
+
keyPath: string;
|
|
6
|
+
allowFailure?: boolean;
|
|
7
|
+
}): Promise<{
|
|
8
|
+
stdout: string;
|
|
9
|
+
stderr: string;
|
|
10
|
+
status: number | undefined;
|
|
11
|
+
error: Error | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function repoIsUsable(config: {
|
|
14
|
+
repoPath: string;
|
|
15
|
+
keyPath: string;
|
|
16
|
+
}): Promise<boolean>;
|
|
17
|
+
/** Cloned beside the old checkout and swapped in, so a clone that fails leaves the copy we are
|
|
18
|
+
already using untouched rather than deleting the only keys we have. */
|
|
19
|
+
export declare function cloneRepo(config: {
|
|
20
|
+
repoURL: string;
|
|
21
|
+
repoPath: string;
|
|
22
|
+
keyPath: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export declare function currentBranch(config: {
|
|
25
|
+
repoPath: string;
|
|
26
|
+
keyPath: string;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
/** Returns what changed, so the caller can report it. A rewritten history is called out
|
|
29
|
+
separately - it means the remote no longer contains the commits we already had. */
|
|
30
|
+
export declare function syncRepo(repoURL: string): Promise<{
|
|
31
|
+
changed: boolean;
|
|
32
|
+
historyRewritten: boolean;
|
|
33
|
+
remoteSha: string;
|
|
34
|
+
previousSha: string;
|
|
35
|
+
}>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function setHostLabel(value: string): void;
|
|
2
|
+
/** A headline and the rest.
|
|
3
|
+
|
|
4
|
+
The headline is all a phone shows. It gets the whole preview to itself: no product name, no
|
|
5
|
+
host, no timestamp in front of it, because a person glancing at their lock screen needs to read
|
|
6
|
+
what happened, not which machine said it or when. Those go at the end, where they are there for
|
|
7
|
+
whoever opens the message and out of the way of whoever does not. */
|
|
8
|
+
export declare function notify(headline: string, body: string): Promise<void>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const CONFIG_PATH = "/etc/portsecure/daemon.json";
|
|
2
|
+
export declare const STATE_PATH = "/var/lib/portsecure/state.json";
|
|
3
|
+
export declare const KEYS_HISTORY_PATH = "/var/lib/portsecure/authorized-keys-history";
|
|
4
|
+
export declare const ROOT_AUTHORIZED_KEYS = "/root/.ssh/authorized_keys";
|
|
5
|
+
export declare const SSHD_CONFIG_PATH = "/etc/ssh/sshd_config";
|
|
6
|
+
export declare const SSHD_DROPIN_DIR = "/etc/ssh/sshd_config.d";
|
|
7
|
+
export declare const SSHD_DROPIN_PATH = "/etc/ssh/sshd_config.d/00-portsecure.conf";
|
|
8
|
+
export declare const PASSWD_PATH = "/etc/passwd";
|
|
9
|
+
export declare const AUTH_LOG_PATH = "/var/log/auth.log";
|
|
10
|
+
export declare const CHECK_INTERVAL: number;
|
|
11
|
+
export declare const WEBHOOK_CHECK_INTERVAL: number;
|
|
12
|
+
export declare const GIT_TIMEOUT: number;
|
|
13
|
+
export declare const MAX_ERROR_BODY_LENGTH = 500;
|
|
14
|
+
export declare const SIGNER_CHANGE_DELAY: number;
|
|
15
|
+
export declare const MAX_REPO_FAILURES_BEFORE_RECLONE = 15;
|
|
@@ -18,9 +18,6 @@ export const MAX_ERROR_BODY_LENGTH = 500;
|
|
|
18
18
|
// A source that starts being signed by someone new is held at arm's length for this long, so a
|
|
19
19
|
// stolen signing key cannot push keys onto a machine before anyone notices the warning.
|
|
20
20
|
export const SIGNER_CHANGE_DELAY = 24 * 60 * 60 * 1000;
|
|
21
|
-
// An unrevoke waits this long before taking effect, so a compromised signing key cannot instantly
|
|
22
|
-
// undo the revocation that locked it out.
|
|
23
|
-
export const UNREVOKE_DELAY = 60 * 60 * 1000;
|
|
24
21
|
// After this many consecutive failures a repo is thrown away and cloned from scratch, which
|
|
25
22
|
// recovers from corruption and interrupted fetches. Counted in checks, so about a quarter hour.
|
|
26
23
|
export const MAX_REPO_FAILURES_BEFORE_RECLONE = 15;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Reading a repo, made to look like reading a directory. A caller asks for a file and gets its
|
|
2
|
+
contents; keeping a checkout on disk, cloning it once and pulling it since, is this module's
|
|
3
|
+
business and nobody else's.
|
|
4
|
+
|
|
5
|
+
Nothing here ever answers "there is nothing" when the truth is "I could not look". A repo that
|
|
6
|
+
cannot be reached throws, and the caller skips that source, because reading an unreachable
|
|
7
|
+
revoke repo as empty would un-revoke every key in it. */
|
|
8
|
+
export type RepoRef = {
|
|
9
|
+
repoURL: string;
|
|
10
|
+
repoPath: string;
|
|
11
|
+
keyPath: () => Promise<string>;
|
|
12
|
+
};
|
|
13
|
+
export declare function sourceRepo(sourceURL: string): RepoRef;
|
|
14
|
+
export declare function revokeRepo(sourceURL: string): RepoRef;
|
|
15
|
+
/** The revoke repo's key is worked out from the source's, so nothing extra had to be uploaded and
|
|
16
|
+
nothing extra is stored anywhere it could be taken from. */
|
|
17
|
+
export declare function ensureRevokeKey(sourceURL: string): Promise<string>;
|
|
18
|
+
/** Brings the checkout in line with the remote. Cloned the first time, pulled after that, and the
|
|
19
|
+
usual case of nothing having changed costs one ref listing and no objects. Throws if the repo
|
|
20
|
+
cannot be read, so a caller cannot mistake that for an empty repo. */
|
|
21
|
+
export declare function syncRepoFiles(repo: RepoRef): Promise<void>;
|
|
22
|
+
/** One file out of the repo, or undefined if the repo does not have that file. */
|
|
23
|
+
export declare function readRepoFile(repo: RepoRef, filePath: string): Promise<string | undefined>;
|
|
24
|
+
/** The names in one of the repo's directories, or nothing if it has no such directory. */
|
|
25
|
+
export declare function listRepoDir(repo: RepoRef, directory: string): Promise<string[]>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type Attempt = {
|
|
2
|
+
ip: string;
|
|
3
|
+
user: string;
|
|
4
|
+
port: string;
|
|
5
|
+
required: string;
|
|
6
|
+
line: string;
|
|
7
|
+
};
|
|
8
|
+
/** What an unrevoke has to name to undo a revocation, and what stops a second revocation of the
|
|
9
|
+
same key from the same address. */
|
|
10
|
+
export declare function pairKey(config: {
|
|
11
|
+
fingerprint: string;
|
|
12
|
+
ip: string;
|
|
13
|
+
}): string;
|
|
14
|
+
/** Unique to the event. The time is there to read, the random half is there to be unique. */
|
|
15
|
+
export declare function newRevocationId(fingerprint: string): string;
|
|
16
|
+
export type RevocationFile = {
|
|
17
|
+
revocationId: string;
|
|
18
|
+
fingerprint: string;
|
|
19
|
+
ip: string;
|
|
20
|
+
revokedAt: string;
|
|
21
|
+
revokedBy: string;
|
|
22
|
+
reason: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function readRevocationFiles(sourceURL: string): Promise<RevocationFile[]>;
|
|
25
|
+
/** Which key is allowed from which address. Unrevokes live in the source repo, so they are covered
|
|
26
|
+
by its signature, and nothing is read out of them but the pairs they allow and, for files
|
|
27
|
+
written before pairs existed, the revocation ids they name. */
|
|
28
|
+
export type Unrevokes = {
|
|
29
|
+
pairs: Map<string, string[]>;
|
|
30
|
+
legacyIds: Map<string, string[]>;
|
|
31
|
+
};
|
|
32
|
+
export declare function readUnrevokes(sourceURL: string): Promise<Unrevokes>;
|
|
33
|
+
/** Every unrevoke covering one revocation: by the pair it is about, and by its id for the files
|
|
34
|
+
written before pairs existed. */
|
|
35
|
+
export declare function unrevokesFor(unrevokes: Unrevokes, revocation: {
|
|
36
|
+
revocationId: string;
|
|
37
|
+
fingerprint: string;
|
|
38
|
+
ip: string;
|
|
39
|
+
}): string[];
|
|
40
|
+
/** Writes a revocation, unless this key is already revoked for this address. Checked twice:
|
|
41
|
+
against what this machine already knows, which needs no network, and again against the repo
|
|
42
|
+
after pulling it, so a flood of unknown keys cannot turn into a flood of commits.
|
|
43
|
+
|
|
44
|
+
Deduplication is on the pair. The same key from a second address is a second event and gets its
|
|
45
|
+
own revocation, because an unrevoke only ever forgives the pair it names. */
|
|
46
|
+
export declare function recordRevocation(config: {
|
|
47
|
+
sourceURL: string;
|
|
48
|
+
fingerprint: string;
|
|
49
|
+
keyLine: string;
|
|
50
|
+
attempt: Attempt;
|
|
51
|
+
hostLabel: string;
|
|
52
|
+
}): Promise<boolean>;
|
|
53
|
+
/** Takes everything the revoke repos list into local state. Once here a revocation never leaves,
|
|
54
|
+
even if the file is deleted: the key that writes revocations is on every server, so an attacker
|
|
55
|
+
holding it could otherwise erase the record that locked them out. */
|
|
56
|
+
export declare function absorbRevocations(sourceURLs: string[]): Promise<void>;
|
|
57
|
+
/** An unrevoke counts the moment it is seen.
|
|
58
|
+
|
|
59
|
+
There used to be an hour's wait before honouring one, against a signing key that had itself
|
|
60
|
+
been stolen. It was never worth it: an unrevoke has to be signed, so writing one already takes
|
|
61
|
+
the hardware key, and anyone holding that can sign a new authorized_keys naming whatever they
|
|
62
|
+
like - they have no reason to go near an unrevoke. Meanwhile the wait cost real access, and a
|
|
63
|
+
machine deployed after an incident would freeze keys it had never had a problem with, for an
|
|
64
|
+
hour, because it was seeing the unrevoke for the first time.
|
|
65
|
+
|
|
66
|
+
What still protects a stolen signing key is the 24 hours before a NEW signer is accepted. */
|
|
67
|
+
export declare function applyUnrevokes(sourceURLs: string[]): Promise<void>;
|
|
68
|
+
/** Every key held out of authorized_keys: one that has at least one revocation nothing has
|
|
69
|
+
forgiven. A key forgiven for one address is an ordinary key again, and revoking it from another
|
|
70
|
+
address puts it back in here. */
|
|
71
|
+
export declare function revokedFingerprints(): Set<string>;
|
|
72
|
+
/** Drops revoked keys from the merged set, and says so the first time a key actually disappears -
|
|
73
|
+
which is the thing worth knowing, rather than the mere existence of a revocation. */
|
|
74
|
+
export declare function removeRevokedKeys(keys: string[]): Promise<string[]>;
|
|
Binary file
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type KeySession = {
|
|
2
|
+
processId: number;
|
|
3
|
+
user: string;
|
|
4
|
+
ip: string;
|
|
5
|
+
port: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function parseAcceptedSessions(contents: string, fingerprint: string): KeySession[];
|
|
8
|
+
/** Ends every live session that authenticated with this key. Returns what was ended, so the
|
|
9
|
+
revocation can say so rather than leaving it to be discovered. */
|
|
10
|
+
export declare function endSessionsUsingKey(fingerprint: string): Promise<KeySession[]>;
|
|
11
|
+
/** Disconnects every ssh session on the machine.
|
|
12
|
+
|
|
13
|
+
Not only the ones using the key that was just taken away: a session that predates the key being
|
|
14
|
+
removed is exactly as dangerous, and working out which sessions are still entitled to be here
|
|
15
|
+
is guesswork. Anyone who still has access can reconnect in a second, and anyone who does not
|
|
16
|
+
should not be here. */
|
|
17
|
+
export declare function endAllSSHSessions(): Promise<number[]>;
|
|
18
|
+
export declare function describeAllEnded(ended: number[]): string;
|
|
19
|
+
export declare function describeEndedSessions(ended: KeySession[]): string;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** What we last decided to trust for one source, kept on disk so nobody can tell us a different
|
|
2
|
+
story about what we saw last time. */
|
|
3
|
+
export type SourceState = {
|
|
4
|
+
lastSha: string;
|
|
5
|
+
branch: string;
|
|
6
|
+
accepted: boolean;
|
|
7
|
+
acceptedSigner: string;
|
|
8
|
+
acceptedKeys: string[];
|
|
9
|
+
acceptedManifestHash: string;
|
|
10
|
+
acceptedSignatureHash: string;
|
|
11
|
+
pendingSigner: string;
|
|
12
|
+
pendingSince: number;
|
|
13
|
+
reportedProblem: string;
|
|
14
|
+
};
|
|
15
|
+
/** One revocation event: this key, used from this address, so it is no longer accepted. Kept even
|
|
16
|
+
when the revoke repo no longer lists it: the deploy key that writes revocations lives on every
|
|
17
|
+
server, so an attacker who took one could otherwise delete the revocation that locked them out.
|
|
18
|
+
|
|
19
|
+
The id is unique to the event, never derived from the key. A key that has been forgiven for one
|
|
20
|
+
address is still an ordinary key, and using it from some other address revokes it again, with a
|
|
21
|
+
new id that no existing unrevoke names. */
|
|
22
|
+
export type RevocationState = {
|
|
23
|
+
revocationId: string;
|
|
24
|
+
fingerprint: string;
|
|
25
|
+
ip: string;
|
|
26
|
+
revokedAt: string;
|
|
27
|
+
revokedBy: string;
|
|
28
|
+
reason: string;
|
|
29
|
+
unrevokeId: string;
|
|
30
|
+
unrevoked: boolean;
|
|
31
|
+
reportedRemoved: boolean;
|
|
32
|
+
};
|
|
33
|
+
/** A refusal we saw but could not write down yet. Held until it is recorded, because the log is
|
|
34
|
+
read once and moves on: losing one of these to a repo that happened to be unreachable would
|
|
35
|
+
leave a key that was misused accepted forever. */
|
|
36
|
+
export type PendingRevocation = {
|
|
37
|
+
fingerprint: string;
|
|
38
|
+
keyLine: string;
|
|
39
|
+
sourceURL: string;
|
|
40
|
+
attempt: {
|
|
41
|
+
ip: string;
|
|
42
|
+
user: string;
|
|
43
|
+
port: string;
|
|
44
|
+
required: string;
|
|
45
|
+
line: string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export type DaemonState = {
|
|
49
|
+
sources: {
|
|
50
|
+
[repoURL: string]: SourceState;
|
|
51
|
+
};
|
|
52
|
+
userKeyHashes: {
|
|
53
|
+
[userName: string]: string;
|
|
54
|
+
};
|
|
55
|
+
revocations: {
|
|
56
|
+
[revocationId: string]: RevocationState;
|
|
57
|
+
};
|
|
58
|
+
pendingRevocations: PendingRevocation[];
|
|
59
|
+
appliedKeys: string[];
|
|
60
|
+
authLogOffset: number;
|
|
61
|
+
authLogSignature: string;
|
|
62
|
+
};
|
|
63
|
+
export declare function getState(): DaemonState;
|
|
64
|
+
/** Per source progress, created on first use so a newly added source starts clean. */
|
|
65
|
+
export declare function sourceState(repoURL: string): SourceState;
|
|
66
|
+
export declare function loadState(): Promise<void>;
|
|
67
|
+
export declare function saveState(): Promise<void>;
|
|
@@ -35,8 +35,7 @@ export type RevocationState = {
|
|
|
35
35
|
revokedAt: string;
|
|
36
36
|
revokedBy: string;
|
|
37
37
|
reason: string;
|
|
38
|
-
// Which unrevoke allowed this key from this address, once one has been seen.
|
|
39
|
-
// started runs out is in unrevokeFirstSeen, which outlives the daemon.
|
|
38
|
+
// Which unrevoke allowed this key from this address, once one has been seen.
|
|
40
39
|
unrevokeId: string;
|
|
41
40
|
unrevoked: boolean;
|
|
42
41
|
// Whether we have said that this key actually left root's authorized_keys. The removal is the
|
|
@@ -63,11 +62,6 @@ export type DaemonState = {
|
|
|
63
62
|
// shut them out. Restarting the daemon does clear it, which is the way back from a revocation
|
|
64
63
|
// that should not have happened.
|
|
65
64
|
revocations: { [revocationId: string]: RevocationState };
|
|
66
|
-
// When this machine first saw each unrevoke, by unrevoke id. On disk, unlike the revocations
|
|
67
|
-
// themselves, because it is what the hour long wait is counted from: measuring from a time the
|
|
68
|
-
// unrevoke file states would let whoever wrote it backdate the file and skip the wait, and
|
|
69
|
-
// measuring from process start would restart the wait on every restart.
|
|
70
|
-
unrevokeFirstSeen: { [unrevokeId: string]: number };
|
|
71
65
|
pendingRevocations: PendingRevocation[];
|
|
72
66
|
// The keys we last wrote out. What tells a change we made apart from one somebody else made:
|
|
73
67
|
// if this still matches what we want, and the file does not, the file was edited behind us.
|
|
@@ -81,7 +75,6 @@ let state: DaemonState = {
|
|
|
81
75
|
sources: {},
|
|
82
76
|
userKeyHashes: {},
|
|
83
77
|
revocations: {},
|
|
84
|
-
unrevokeFirstSeen: {},
|
|
85
78
|
pendingRevocations: [],
|
|
86
79
|
appliedKeys: [],
|
|
87
80
|
authLogOffset: 0,
|
|
@@ -126,6 +119,9 @@ export async function loadState() {
|
|
|
126
119
|
// Revocations are held in memory only, so whatever an older version left on disk is not
|
|
127
120
|
// read back in. Starting the daemon is what forgets them.
|
|
128
121
|
delete loaded.revocations;
|
|
122
|
+
// Written by the versions that made an unrevoke wait an hour before it counted. Dropped
|
|
123
|
+
// rather than carried, so the file stops mentioning something nothing reads.
|
|
124
|
+
delete loaded.unrevokeFirstSeen;
|
|
129
125
|
state = Object.assign(state, loaded);
|
|
130
126
|
} catch (e) {
|
|
131
127
|
// Corrupt state only costs us one duplicate notification, so it is not worth failing over.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** The signature carries the public key that made it, so the key itself can be reported rather
|
|
2
|
+
than only a fingerprint. Returns it in the usual "type base64" form. */
|
|
3
|
+
export declare function publicKeyFromSignature(signatureText: string): {
|
|
4
|
+
publicKey: string;
|
|
5
|
+
fingerprint: string;
|
|
6
|
+
};
|
|
7
|
+
/** Reads one checkout's keys. Prefers a top level authorized_keys file and otherwise concatenates
|
|
8
|
+
every .pub at the top level. */
|
|
9
|
+
export declare function readCheckoutKeys(repoPath: string): Promise<string[]>;
|
|
10
|
+
/** Proves a checkout on disk was signed, and that the files in it are the ones that were signed.
|
|
11
|
+
Returns the signer, and throws if anything about that does not hold.
|
|
12
|
+
|
|
13
|
+
Anything reading a repo for something other than ssh keys goes through this first: the whole
|
|
14
|
+
checkout is covered by one manifest, so a machine list is exactly as trustworthy as the keys
|
|
15
|
+
beside it, and neither is worth reading unsigned. */
|
|
16
|
+
export declare function verifyCheckout(repoPath: string): Promise<string>;
|
|
17
|
+
export declare function describeSigner(signer: string): string;
|
|
18
|
+
/** The keys a source is allowed to contribute right now. A source signed by someone we have not
|
|
19
|
+
accepted keeps contributing the keys we last accepted, until the delay has passed. */
|
|
20
|
+
export declare function resolveSourceKeys(repoURL: string): Promise<string[]>;
|