@iabtechlabtcf/core
Version:
Ensures consistent encoding and decoding of TC Signals for the iab. Transparency and Consent Framework (TCF).
1 lines • 1.87 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.SemanticPreEncoder=void 0;var index_js_1=require("../errors/index.js"),index_js_2=require("../model/index.js"),SemanticPreEncoder=function(){function e(){}return e.process=function(e,s){var n=e.gvl;if(!n)throw new index_js_1.EncodingError("Unable to encode TCModel without a GVL");if(!n.isReady)throw new index_js_1.EncodingError("Unable to encode TCModel tcModel.gvl.readyPromise is not resolved");(e=e.clone()).consentLanguage=n.language.slice(0,2).toUpperCase(),(null==s?void 0:s.version)>0&&(null==s?void 0:s.version)<=this.processor.length?e.version=s.version:e.version=this.processor.length;var r=e.version-1;if(!this.processor[r])throw new index_js_1.EncodingError("Invalid version: ".concat(e.version));return this.processor[r](e,n)},e.processor=[function(e){return e},function(e,s){e.publisherRestrictions.gvl=s,e.purposeLegitimateInterests.unset([1,3,4,5,6]);var n=new Map;return n.set("legIntPurposes",e.vendorLegitimateInterests),n.set("purposes",e.vendorConsents),n.forEach((function(n,r){n.forEach((function(o,t){if(o){var i=s.vendors[t];if(!i||i.deletedDate)n.unset(t);else if(0===i[r].length)if("legIntPurposes"===r&&0===i.purposes.length&&0===i.legIntPurposes.length&&i.specialPurposes.length>0)n.set(t);else if("legIntPurposes"===r&&i.purposes.length>0&&0===i.legIntPurposes.length&&i.specialPurposes.length>0)n.set(t);else if(e.isServiceSpecific)if(0===i.flexiblePurposes.length)n.unset(t);else{for(var l=e.publisherRestrictions.getRestrictions(t),c=!1,u=0,p=l.length;u<p&&!c;u++)c=l[u].restrictionType===index_js_2.RestrictionType.REQUIRE_CONSENT&&"purposes"===r||l[u].restrictionType===index_js_2.RestrictionType.REQUIRE_LI&&"legIntPurposes"===r;c||n.unset(t)}else n.unset(t)}}))})),e.vendorsDisclosed.set(s.vendors),e}],e}();exports.SemanticPreEncoder=SemanticPreEncoder;
;