UNPKG

@trustcaptcha/trustcaptcha-nodejs

Version:

Trustcaptcha library for nodejs with JavaScript/TypeScript

38 lines (37 loc) 1.74 kB
"use strict"; 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;