import { appendAPIURL, getHeaders } from "./apiUtils.js"; import { getObjectKeys, removeDoubleSlash } from "../utils.js"; import { getSecretMetadata } from "./getSecretMetadata"; export async function undeleteSecret(baseMount, secretPath, name, version = null) { let secretURL = `/v1/${baseMount}/undelete/${secretPath.join("/")}/${name}`; secretURL = removeDoubleSlash(secretURL).replace(/\/$/, ""); if (version == null) { let meta = await getSecretMetadata( baseMount, secretPath, name ); let versions = getObjectKeys(meta.versions); version = String(versions[versions.length - 1]); } let request = new Request(appendAPIURL(secretURL), { method: "POST", headers: { ...getHeaders(), 'Content-Type': 'application/json', }, body: JSON.stringify({ "versions": [version] }) }); let response = await fetch(request); if (!response.ok) { let json = await response.json(); throw new Error(json.errors[0]); } }