@trustcaptcha/trustcaptcha-nodejs
Version:
Trustcaptcha library for nodejs with JavaScript/TypeScript
38 lines (37 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VerificationToken = void 0;
var uuid_1 = require("uuid");
var captchaManager_1 = require("../captchaManager");
var VerificationToken = /** @class */ (function () {
function VerificationToken(apiEndpoint, verificationId) {
if (!(0, uuid_1.validate)(verificationId) && !verificationId.startsWith('00000000-0000-0000-0000-00000000000')) {
throw new captchaManager_1.VerificationTokenInvalidException('Invalid UUID in verification token');
}
this.apiEndpoint = apiEndpoint;
this.verificationId = verificationId;
}
VerificationToken.fromBase64 = function (base64String) {
try {
var jsonString = Buffer.from(base64String, 'base64').toString('utf-8');
var jsonObject = JSON.parse(jsonString);
if (!jsonObject.apiEndpoint || !jsonObject.verificationId) {
throw new captchaManager_1.VerificationTokenInvalidException('Missing required fields in verification token');
}
return new VerificationToken(jsonObject.apiEndpoint, jsonObject.verificationId);
}
catch (e) {
if (e instanceof SyntaxError) {
throw new captchaManager_1.VerificationTokenInvalidException('Invalid Base64-encoded JSON');
}
else if (e instanceof Error) {
throw new captchaManager_1.VerificationTokenInvalidException(e.message);
}
else {
throw new captchaManager_1.VerificationTokenInvalidException('Unknown error');
}
}
};
return VerificationToken;
}());
exports.VerificationToken = VerificationToken;