UNPKG

@tkey/core

Version:
139 lines (130 loc) 4.53 kB
import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { TkeyError } from '@tkey/common-types'; /** * CoreError, extension for Error using CustomError * details: github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work * * Usage: * 1. throw CoreError.metadataUndefined() // regularly used errors * 2. throw CoreError.fromCode(1304); // throw via code * 3. throw new CoreError(1000, "share indexes should be unique"); // for scarce errors * * Guide: * 1000 - core * 2000 - security questions * 3000 - webstorage * 4000 - common types (code reserved for future implementation) * 5000 - private key * 6000 - seed phrase * 7000 - share serialization * 8000 - share transfer */ class CoreError extends TkeyError { constructor(code, message) { // takes care of stack and proto super(code, message); // Set name explicitly as minification can mangle class names Object.defineProperty(this, "name", { value: "CoreError" }); } static fromCode(code, extraMessage = "") { return new CoreError(code, `${CoreError.messages[code]} ${extraMessage}`); } static default(extraMessage = "") { return new CoreError(1000, `${CoreError.messages[1000]} ${extraMessage}`); } // Custom methods // Metadata static metadataUndefined(extraMessage = "") { return CoreError.fromCode(1101, extraMessage); } static delete1OutOf1OnlyManualSync(extraMessage = "") { return CoreError.fromCode(1601, extraMessage); } static metadataGetFailed(extraMessage = "") { return CoreError.fromCode(1102, extraMessage); } static metadataPostFailed(extraMessage = "") { return CoreError.fromCode(1103, extraMessage); } // TkeyData static tkeyStoreInvalid(extraMessage = "") { return CoreError.fromCode(1201, extraMessage); } static tkeyEncryptionFailed(extraMessage = "") { return CoreError.fromCode(1202, extraMessage); } static tkeyDecryptionFailed(extraMessage = "") { return CoreError.fromCode(1203, extraMessage); } // Shares static privateKeyUnavailable(extraMessage = "") { return CoreError.fromCode(1301, extraMessage); } static unableToReconstruct(extraMessage = "") { return CoreError.fromCode(1302, extraMessage); } static incorrectReconstruction(extraMessage = "") { return CoreError.fromCode(1303, extraMessage); } static encryptedShareStoreUnavailable(extraMessage = "") { return CoreError.fromCode(1306, extraMessage); } // Metadata locks static acquireLockFailed(extraMessage = "") { return CoreError.fromCode(1401, extraMessage); } static releaseLockFailed(extraMessage = "") { return CoreError.fromCode(1402, extraMessage); } // Authmetadata static privKeyUnavailable(extraMessage = "") { return CoreError.fromCode(1501, extraMessage); } static metadataPubKeyUnavailable(extraMessage = "") { return CoreError.fromCode(1502, extraMessage); } static authMetadataGetUnavailable(extraMessage = "") { return CoreError.fromCode(1503, extraMessage); } static authMetadataSetUnavailable(extraMessage = "") { return CoreError.fromCode(1504, extraMessage); } } _defineProperty(CoreError, "messages", { 1000: "Custom", // Misc 1001: "Unable to delete service provider share", 1002: "Wrong share index", 1003: "Unable to updateSDK", // metadata 1101: "metadata not found, SDK likely not initialized", 1102: "getMetadata errored", 1103: "setMetadata errored", 1104: "previouslyFetchedCloudMetadata provided in initialization is outdated", 1105: "previouslyFetchedCloudMetadata.nonce should never be higher than the latestShareDetails, please contact support", // tkeystore 1201: "Invalid tkeyStore", 1202: "Encryption failed", 1203: "Decryption failed", // shares 1301: "Private key not available. Please reconstruct key first", 1302: "Unable to reconstruct", 1303: "reconstructed key is not pub key", 1304: "Share found in unexpected polynomial", 1305: "Input is not supported", 1306: "no encrypted share store for share exists", 1307: "Share doesn't exist", 1308: "Share was deleted", // lock 1401: "Unable to acquire lock", 1402: "Unable to release lock", // auth metadata 1501: "privkey unavailable", 1502: "metadata pubkey unavailable", 1503: "getAuthMetadata errored", 1504: "setAuthMetadata errored", 1601: "delete1OutOf1 requires manualSync=true" }); export { CoreError as default };