@adv-ui/boros-tcf
Version:
Adevinta GDPR - Transparency and Consent Framework - API
115 lines (90 loc) • 4.66 kB
JavaScript
"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;