UNPKG

@adv-ui/boros-tcf

Version:

Adevinta GDPR - Transparency and Consent Framework - API

115 lines (90 loc) 4.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.IABConsentEncoderService = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inheritsLoose")); var _core = require("@iabtcf/core"); var _ConsentEncoderService = require("../../domain/consent/ConsentEncoderService"); var _constants = require("../../core/constants"); var _ioc = require("../../core/ioc/ioc"); var _GVLFactory = require("../repository/iab/GVLFactory"); var IABConsentEncoderService = /*#__PURE__*/function (_ConsentEncoderServic) { (0, _inheritsLoose2["default"])(IABConsentEncoderService, _ConsentEncoderServic); function IABConsentEncoderService(_temp) { var _this; var _ref = _temp === void 0 ? {} : _temp, _ref$gvlFactory = _ref.gvlFactory, gvlFactory = _ref$gvlFactory === void 0 ? (0, _ioc.inject)(_GVLFactory.GVLFactory) : _ref$gvlFactory; _this = _ConsentEncoderServic.call(this) || this; _this._gvlFactory = gvlFactory; return _this; } var _proto = IABConsentEncoderService.prototype; _proto.encode = /*#__PURE__*/function () { var _encode = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(_temp2) { var _ref2, _ref2$consent, consent, vendorListVersion, _consent$vendor, vendor, _consent$purpose, purpose, _consent$specialFeatu, specialFeatures, created, tcModel, setIabVector; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _ref2 = _temp2 === void 0 ? {} : _temp2, _ref2$consent = _ref2.consent, consent = _ref2$consent === void 0 ? {} : _ref2$consent, vendorListVersion = _ref2.vendorListVersion; _consent$vendor = consent.vendor, vendor = _consent$vendor === void 0 ? {} : _consent$vendor, _consent$purpose = consent.purpose, purpose = _consent$purpose === void 0 ? {} : _consent$purpose, _consent$specialFeatu = consent.specialFeatures, specialFeatures = _consent$specialFeatu === void 0 ? {} : _consent$specialFeatu, created = consent.created; tcModel = new _core.TCModel(this._gvlFactory.create({ version: vendorListVersion })); tcModel.created = created || tcModel.created; tcModel.gdprApplies = true; tcModel.isServiceSpecific = true; tcModel.cmpId = _constants.BOROS_TCF_ID; tcModel.cmpVersion = _constants.BOROS_TCF_VERSION; tcModel.publisherCountryCode = _constants.PUBLISHER_CC; setIabVector = function setIabVector(_ref3) { var _ref3$value = _ref3.value, value = _ref3$value === void 0 ? {} : _ref3$value, vector = _ref3.vector; return Object.keys(value).forEach(function (k) { return value[k] ? vector.set(parseInt(k)) : vector.unset(parseInt(k)); }); }; setIabVector({ value: vendor.consents, vector: tcModel.vendorConsents }); setIabVector({ value: vendor.legitimateInterests, vector: tcModel.vendorLegitimateInterests }); setIabVector({ value: purpose.consents, vector: tcModel.purposeConsents }); setIabVector({ value: purpose.legitimateInterests, vector: tcModel.purposeLegitimateInterests }); setIabVector({ value: specialFeatures, vector: tcModel.specialFeatureOptins }); // Some fields will not be populated until a GVL is loaded return _context.abrupt("return", tcModel.gvl.readyPromise.then(function () { return _core.TCString.encode(tcModel); })); case 16: case "end": return _context.stop(); } } }, _callee, this); })); function encode(_x) { return _encode.apply(this, arguments); } return encode; }(); return IABConsentEncoderService; }(_ConsentEncoderService.ConsentEncoderService); exports.IABConsentEncoderService = IABConsentEncoderService;