{"version":3,"file":"index.js","mappings":"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","sources":["webpack:///@mol-ads/mol-ads-tcfv2/./src/cmp/stub.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/lodash.pick/index.js","webpack:///@mol-ads/mol-ads-tcfv2/webpack/bootstrap","webpack:///@mol-ads/mol-ads-tcfv2/webpack/runtime/compat get default export","webpack:///@mol-ads/mol-ads-tcfv2/webpack/runtime/define property getters","webpack:///@mol-ads/mol-ads-tcfv2/webpack/runtime/global","webpack:///@mol-ads/mol-ads-tcfv2/webpack/runtime/hasOwnProperty shorthand","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/whatwg-fetch/fetch.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/utils/broker.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/TCFCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/status/CmpStatus.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/status/DisplayStatus.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/status/EventStatus.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/Command.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/GetTCDataCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/EventListenerQueue.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/CmpApiModel.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/response/Response.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/response/Disabled.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/AdditionalModel.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/response/TCData.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/response/InAppTCData.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/response/Ping.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/PingCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/GetInAppTCDataCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/errors/EncodingError.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/errors/DecodingError.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/Base64Url.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/ConsentLanguages.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/Fields.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/Cloneable.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/errors/TCModelError.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/RestrictionType.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/PurposeRestriction.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/BinarySearchTree.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/PurposeRestrictionVector.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/DeviceDisclosureStorageAccessType.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/Segment.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/SegmentIDs.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/model/Vector.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/BitLength.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/BooleanEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/IntEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/DateEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/FixedVectorEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/LangEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/PurposeRestrictionVectorEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/VectorEncodingType.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/VendorVectorEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/field/FieldEncoderMap.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/sequence/FieldSequence.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/sequence/SegmentSequence.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/SegmentEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/encoder/SemanticPreEncoder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/errors/GVLError.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/Json.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/GVL.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/TCModel.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-core/lib/mjs/TCString.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/GetVendorListCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/AddEventListenerCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/RemoveEventListenerCommand.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/command/CommandMap.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/SupportedVersions.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/CallResponder.js","webpack:///@mol-ads/mol-ads-tcfv2/./node_modules/@mol-ads/tcf-cmpapi/lib/mjs/CmpApi.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/utils/logger.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/utils/policyVersion.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/ui/display-purposes.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/cmp/tcModel.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/cmp/TcModelFactory.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/cmp/NonIABModel.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/utils/fetch-vendor-lists.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/cmp/Cmp.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/ui/user-preference.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/ui/model.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/ui/Ui.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/clientApi.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/storage-iframe.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/persist/Persist.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/config/vendorListVersions.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/config/publisherRestrictions.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/config/config.js","webpack:///@mol-ads/mol-ads-tcfv2/./src/index.js"],"sourcesContent":["(function () {\n const TCF_LOCATOR_NAME = '__tcfapiLocator'\n\n function makeStub () {\n const queue = []\n const currentWindow = window\n let frameLocator = window\n let hasEventListener = false\n let cmpFrame\n\n function addFrame () {\n const doc = currentWindow.document\n\n if (!currentWindow.frames[TCF_LOCATOR_NAME]) {\n if (doc.readyState === 'interactive' || doc.readyState === 'complete') {\n const iframe = doc.createElement('iframe')\n\n iframe.style.display = 'none'\n iframe.name = TCF_LOCATOR_NAME\n doc.body.appendChild(iframe)\n\n if (hasEventListener) {\n doc.removeEventListener('readystatechange', addFrame)\n hasEventListener = false\n }\n } else if (typeof doc.addEventListener === 'function') {\n doc.addEventListener('readystatechange', addFrame)\n hasEventListener = true\n } else {\n setTimeout(addFrame, 5)\n }\n }\n }\n\n function tcfAPIHandler (...args) {\n let gdprApplies\n\n if (!args.length) {\n /**\n * shortcut to get the queue when the full CMP\n * implementation loads; it can call tcfapiHandler()\n * with no arguments to get the queued arguments\n */\n return queue\n }\n\n const callbackFn = args[2]\n\n switch (args[0]) {\n case 'setGdprApplies':\n /**\n * shortcut to set gdprApplies if the publisher\n * knows that they apply GDPR rules to all\n * traffic (see the section on \"What does the\n * gdprApplies value mean\") for more\n */\n if (args.length > 3 && parseInt(args[1], 10) === 2 && typeof args[3] === 'boolean') {\n gdprApplies = args[3]\n\n if (typeof callbackFn === 'function') {\n callbackFn('set', true)\n }\n }\n break\n case 'ping':\n /**\n * Only supported method; give PingReturn\n * object as response\n */\n if (typeof callbackFn === 'function') {\n callbackFn({\n gdprApplies,\n cmpLoaded: false,\n cmpStatus: 'stub'\n })\n }\n break\n default:\n /**\n * some other method, just queue it for the\n * full CMP implementation to deal with\n */\n queue.push(args)\n break\n }\n }\n\n function postMessageEventHandler (event) {\n if (!event || !event.source || !event.source.postMessage) {\n /**\n * either invalid function call or \"postMessage\"\n * isn't available on calling side\n * either way return early\n */\n return\n }\n\n const msgIsString = typeof event.data === 'string'\n let json = event.data\n\n if (msgIsString) {\n try {\n /**\n * Try to parse the data from the event. This is important\n * to have in a try/catch because often messages may come\n * through that are not JSON\n */\n json = JSON.parse(event.data)\n } catch (ignore) {\n /**\n * Since it's not possible to parse the given message\n * return early\n */\n return\n }\n }\n\n if (typeof json === 'object' && json.__tcfapiCall) {\n const payload = json.__tcfapiCall\n\n window.__tcfapi(\n payload.command,\n payload.version,\n (retValue, success) => {\n const returnMsg = {\n __tcfapiReturn: {\n returnValue: retValue,\n success,\n callId: payload.callId\n }\n }\n\n event.source.postMessage(\n (msgIsString) ? JSON.stringify(returnMsg) : returnMsg,\n '*'\n )\n },\n payload.parameter\n )\n }\n }\n\n /**\n * Iterate up to the top window checking for an already-created\n * \"__tcfapilLocator\" frame on every level. If one exists already then we are\n * not the master CMP and will not queue commands.\n */\n while (frameLocator) {\n try {\n if (frameLocator.frames[TCF_LOCATOR_NAME]) {\n cmpFrame = frameLocator\n break\n }\n } catch (ignore) { }\n\n // if we're at the top and no cmpFrame\n if (frameLocator === currentWindow.top) {\n break\n }\n\n // Move up\n frameLocator = frameLocator.parent\n }\n\n if (!cmpFrame) {\n // we have recur'd up the windows and have found no __tcfapiLocator frame\n addFrame()\n currentWindow.__tcfapi = tcfAPIHandler\n currentWindow.addEventListener('message', postMessageEventHandler, false)\n }\n };\n\n if (typeof module !== 'undefined') {\n module.exports = makeStub\n } else {\n makeStub()\n }\n})()\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, props) {\n object = Object(object);\n return basePickBy(object, props, function(value, key) {\n return key in object;\n });\n}\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} props The property identifiers to pick from.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, props, predicate) {\n var index = -1,\n length = props.length,\n result = {};\n\n while (++index < length) {\n var key = props[index],\n value = object[key];\n\n if (predicate(value, key)) {\n result[key] = value;\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [props] The property identifiers to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = baseRest(function(object, props) {\n return object == null ? {} : basePick(object, arrayMap(baseFlatten(props, 1), toKey));\n});\n\nmodule.exports = pick;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.ok = false\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","const target = window\n\nexport class Broker {\n constructor (ns, sender = 'app', id) {\n this.ns = ns\n this.id = id && String(id) || Math.random().toString(36).substring(2)\n this.sender = sender\n }\n\n emit (action, payload = {}) {\n const message = {\n ns: this.ns,\n id: this.id,\n sender: this.sender,\n action,\n payload\n }\n\n target.postMessage(message, '*')\n }\n\n on (action, cb) {\n const handleMessage = (event) => {\n const data = event.data\n if (data.ns === this.ns && data.id === this.id && data.action === action && data.sender !== this.sender) {\n cb(data.payload, action)\n }\n }\n\n target.addEventListener('message', handleMessage)\n\n return () => target.removeEventListener('message', handleMessage)\n }\n\n once (action, cb) {\n const cancel = this.on(action, () => {\n cb()\n cancel()\n })\n }\n}\n","export var TCFCommand;\n(function (TCFCommand) {\n TCFCommand[\"PING\"] = \"ping\";\n TCFCommand[\"GET_TC_DATA\"] = \"getTCData\";\n TCFCommand[\"GET_IN_APP_TC_DATA\"] = \"getInAppTCData\";\n TCFCommand[\"GET_VENDOR_LIST\"] = \"getVendorList\";\n TCFCommand[\"ADD_EVENT_LISTENER\"] = \"addEventListener\";\n TCFCommand[\"REMOVE_EVENT_LISTENER\"] = \"removeEventListener\";\n})(TCFCommand || (TCFCommand = {}));\n","/**\n * An enum representing all the possible statuses for the cmpStatus returned\n * through the CMP API\n *\n * @readonly\n * @enum {string}\n */\nexport var CmpStatus;\n(function (CmpStatus) {\n /**\n * CMP not yet loaded – stub still in place\n * @type {string}\n */\n CmpStatus[\"STUB\"] = \"stub\";\n /**\n * CMP is loading\n * @type {string}\n */\n CmpStatus[\"LOADING\"] = \"loading\";\n /**\n * CMP is finished loading\n * @type {string}\n */\n CmpStatus[\"LOADED\"] = \"loaded\";\n /**\n * CMP is in an error state. A CMP shall not respond to any other API requests if this cmpStatus is present.\n * A CMP may set this status if, for any reason, it is unable to perform the operations in compliance with the TCF.\n * @type {string}\n */\n CmpStatus[\"ERROR\"] = \"error\";\n})(CmpStatus || (CmpStatus = {}));\n","/**\n * An enum representing all the possible statuses for the displayStatus\n * returned through the CMP API\n *\n * @readonly\n * @enum {string}\n */\nexport var DisplayStatus;\n(function (DisplayStatus) {\n /**\n * User interface is currently displayed\n * @type {string}\n */\n DisplayStatus[\"VISIBLE\"] = \"visible\";\n /**\n * User interface is not yet or no longer displayed\n * @type {string}\n */\n DisplayStatus[\"HIDDEN\"] = \"hidden\";\n /**\n * User interface will not show (e.g. GDPR does not apply or TC data is current and does not need renewal)\n * @type {string}\n */\n DisplayStatus[\"DISABLED\"] = \"disabled\";\n})(DisplayStatus || (DisplayStatus = {}));\n","/**\n * EventStatus enum represents the possible values of the eventStatus property of the TCData\n */\nexport var EventStatus;\n(function (EventStatus) {\n /**\n * A CMP is loaded and is prepared to surface a TC String to any calling scripts on the page\n * @type {string}\n */\n EventStatus[\"TC_LOADED\"] = \"tcloaded\";\n /**\n * The UI is surfaced or re-surfaced\n * And TC String is available and has rendered \"Transparency\" in accordance with the TCF Policy.\n * @type {string}\n */\n EventStatus[\"CMP_UI_SHOWN\"] = \"cmpuishown\";\n /**\n * User has confirmed or re-confirmed their choices in accordance with TCF Policy\n * and a CMP is prepared to respond to any calling scripts with the corresponding TC String.\n * @type {string}\n */\n EventStatus[\"USER_ACTION_COMPLETE\"] = \"useractioncomplete\";\n})(EventStatus || (EventStatus = {}));\n","export class Command {\n listenerId;\n callback;\n next;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n param;\n success = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(callback, param, listenerId, next) {\n Object.assign(this, {\n callback,\n listenerId,\n param,\n next,\n });\n try {\n this.respond();\n }\n catch (error) {\n this.invokeCallback(null);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n invokeCallback(response) {\n const success = response !== null;\n if (typeof this.next === 'function') {\n this.callback(this.next, response, success);\n }\n else {\n this.callback(response, success);\n }\n }\n}\n","import { Command } from './Command.js';\nimport { TCData } from '../response/index.js';\nexport class GetTCDataCommand extends Command {\n respond() {\n this.throwIfParamInvalid();\n this.invokeCallback(new TCData(this.param, this.listenerId));\n }\n throwIfParamInvalid() {\n /**\n * if they have passed something in as a parameter we'll need to see if\n * it's usable. If not then we'll need to throw an error. Check to see if\n * the array is not undefined and is an array of integers, otherwise it's\n * unusable\n */\n if (this.param !== undefined &&\n (!Array.isArray(this.param) ||\n !this.param.every(Number.isInteger))) {\n throw new Error('Invalid Parameter');\n }\n }\n}\n","import { GetTCDataCommand } from './command/GetTCDataCommand.js';\nexport class EventListenerQueue {\n eventQueue = new Map();\n queueNumber = 0;\n add(eventItems) {\n this.eventQueue.set(this.queueNumber, eventItems);\n return this.queueNumber++;\n }\n remove(listenerId) {\n return this.eventQueue.delete(listenerId);\n }\n exec() {\n this.eventQueue.forEach((eventItem, listenerId) => {\n new GetTCDataCommand(eventItem.callback, eventItem.param, listenerId, eventItem.next);\n });\n }\n clear() {\n this.queueNumber = 0;\n this.eventQueue.clear();\n }\n get size() {\n return this.eventQueue.size;\n }\n}\n","import { CmpStatus, DisplayStatus } from './status/index.js';\nimport { EventListenerQueue } from './EventListenerQueue.js';\n/**\n * Class holds shareable data across cmp api and provides change event listener for TcModel.\n * Within the context of the CmpApi, this class acts much like a global state or database,\n * where CmpApi sets data and Commands read the data.\n */\nexport class CmpApiModel {\n static apiVersion = '2';\n static tcfPolicyVersion;\n static eventQueue = new EventListenerQueue();\n static cmpStatus = CmpStatus.LOADING;\n static disabled = false;\n static displayStatus = DisplayStatus.HIDDEN;\n static cmpId;\n static cmpVersion;\n static eventStatus;\n static gdprApplies;\n static tcModel;\n static tcString;\n static reset() {\n delete this.cmpId;\n delete this.cmpVersion;\n delete this.eventStatus;\n delete this.gdprApplies;\n delete this.tcModel;\n delete this.tcString;\n delete this.tcfPolicyVersion;\n this.cmpStatus = CmpStatus.LOADING;\n this.disabled = false;\n this.displayStatus = DisplayStatus.HIDDEN;\n this.eventQueue.clear();\n }\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nexport class Response {\n cmpId = CmpApiModel.cmpId;\n cmpVersion = CmpApiModel.cmpVersion;\n gdprApplies = CmpApiModel.gdprApplies;\n tcfPolicyVersion = CmpApiModel.tcfPolicyVersion;\n}\n","import { Response } from './Response.js';\nimport { CmpStatus } from '../status/index.js';\nexport class Disabled extends Response {\n cmpStatus = CmpStatus.ERROR;\n}\n","export class AdditionalModel {\n static addtlConsent;\n static acmVersion;\n static molGvlVersion;\n static nrvString;\n static nrvVersion;\n static repromptVersion;\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nimport { Response } from './Response.js';\nimport { AdditionalModel } from '../AdditionalModel.js';\nexport class TCData extends Response {\n tcString;\n listenerId;\n eventStatus;\n cmpStatus;\n isServiceSpecific;\n useNonStandardStacks;\n publisherCC;\n purposeOneTreatment;\n addtlConsent;\n acmVersion;\n molGvlVersion;\n nrvString;\n nrvVersion;\n repromptVersion;\n outOfBand;\n purpose;\n vendor;\n specialFeatureOptins;\n publisher;\n /**\n * Constructor to create a TCData object from a TCModel\n * @param {number[]} vendorIds - if not undefined, will be used to filter vendor ids\n * @param {number} listenerId - if there is a listenerId to add\n */\n constructor(vendorIds, listenerId) {\n super();\n this.eventStatus = CmpApiModel.eventStatus;\n this.cmpStatus = CmpApiModel.cmpStatus;\n this.listenerId = listenerId;\n if (CmpApiModel.gdprApplies) {\n const tcModel = CmpApiModel.tcModel;\n const addtlConsent = AdditionalModel.addtlConsent;\n const acmVersion = AdditionalModel.acmVersion;\n const molGvlVersion = AdditionalModel.molGvlVersion;\n const nrvString = AdditionalModel.nrvString;\n const nrvVersion = AdditionalModel.nrvVersion;\n const repromptVersion = AdditionalModel.repromptVersion;\n this.tcString = CmpApiModel.tcString;\n this.isServiceSpecific = tcModel.isServiceSpecific;\n this.useNonStandardStacks = tcModel.useNonStandardStacks;\n this.purposeOneTreatment = tcModel.purposeOneTreatment;\n this.publisherCC = tcModel.publisherCountryCode;\n this.addtlConsent = addtlConsent;\n this.acmVersion = acmVersion;\n this.molGvlVersion = molGvlVersion;\n this.nrvString = nrvString;\n this.nrvVersion = nrvVersion;\n this.repromptVersion = repromptVersion;\n this.outOfBand = {\n allowedVendors: this.createVectorField(tcModel.vendorsAllowed, vendorIds),\n disclosedVendors: this.createVectorField(tcModel.vendorsDisclosed, vendorIds),\n };\n this.purpose = {\n consents: this.createVectorField(tcModel.purposeConsents),\n legitimateInterests: this.createVectorField(tcModel.purposeLegitimateInterests),\n };\n this.vendor = {\n consents: this.createVectorField(tcModel.vendorConsents, vendorIds),\n legitimateInterests: this.createVectorField(tcModel.vendorLegitimateInterests, vendorIds),\n };\n this.specialFeatureOptins = this.createVectorField(tcModel.specialFeatureOptins);\n this.publisher = {\n consents: this.createVectorField(tcModel.publisherConsents),\n legitimateInterests: this.createVectorField(tcModel.publisherLegitimateInterests),\n customPurpose: {\n consents: this.createVectorField(tcModel.publisherCustomConsents),\n legitimateInterests: this.createVectorField(tcModel.publisherCustomLegitimateInterests),\n },\n restrictions: this.createRestrictions(tcModel.publisherRestrictions),\n };\n }\n }\n /**\n * Creates a restrictions object given a PurposeRestrictionVector\n * @param {PurposeRestrictionVector} purpRestrictions\n * @return {Restrictions}\n */\n createRestrictions(purpRestrictions) {\n const retr = {};\n if (purpRestrictions.numRestrictions > 0) {\n const max = purpRestrictions.getMaxVendorId();\n for (let vendorId = 1; vendorId <= max; vendorId++) {\n const strVendorId = vendorId.toString();\n // vendors restrictions\n purpRestrictions.getRestrictions(vendorId).forEach((pRestrict) => {\n const strPurpId = pRestrict.purposeId.toString();\n if (!retr[strPurpId]) {\n retr[strPurpId] = {};\n }\n retr[strPurpId][strVendorId] = pRestrict.restrictionType;\n });\n }\n }\n return retr;\n }\n ;\n /**\n * Creates a string bit field with a value for each id where each value is\n * '1' if its id is in the passed in vector Can be overwritten to return a\n * string\n * @param {Vector} vector\n * @param {number[]} ids filter\n * @return {BooleanVector | string}\n */\n createVectorField(vector, ids) {\n if (ids) {\n return ids.reduce((booleanVector, obj) => {\n booleanVector[String(obj)] = vector.has(Number(obj));\n return booleanVector;\n }, {});\n }\n return [...vector].reduce((booleanVector, keys) => {\n booleanVector[keys[0].toString(10)] = keys[1];\n return booleanVector;\n }, {});\n }\n}\n","import { TCData } from './TCData.js';\n/**\n * InAppTCData response builder\n */\nexport class InAppTCData extends TCData {\n constructor(vendorIds) {\n super(vendorIds);\n delete this.outOfBand;\n }\n /**\n * Creates a string bit field with a value for each id where each value is '1' if its id is in the passed in vector\n * @override\n * @param {Vector} vector\n * @return {string}\n */\n createVectorField(vector) {\n return [...vector].reduce((str, tpl) => {\n str += tpl[1] ? '1' : '0';\n return str;\n }, '');\n }\n /**\n * Creates a restrictions object given a PurposeRestrictionVector\n * @override\n * @param {PurposeRestrictionVector} purpRestrictions\n * @return {Restrictions}\n */\n createRestrictions(purpRestrictions) {\n const retr = {};\n if (purpRestrictions.numRestrictions > 0) {\n const maxVendorId = purpRestrictions.getMaxVendorId();\n /**\n * First create a string of empty values for each purpose that is long\n * enough to contain up to the max vendor id\n */\n purpRestrictions.getRestrictions().forEach((pRestrict) => {\n retr[pRestrict.purposeId.toString()] = '_'.repeat(maxVendorId);\n });\n /**\n * go through all of the vendor ids and insert their restriction type\n * number at the index of their vendor id on the purposeID string\n */\n for (let i = 0; i < maxVendorId; i++) {\n // offset by one\n const vendorId = i + 1;\n // Gets a list of purpose restrictions for this vendor\n purpRestrictions.getRestrictions(vendorId).forEach((pRestrict) => {\n const strType = pRestrict.restrictionType.toString();\n const strPurp = pRestrict.purposeId.toString();\n // insert the restriction type at the index of the vendor ID\n const firstPart = retr[strPurp].substr(0, i);\n const lastPart = retr[strPurp].substr(i + 1);\n retr[strPurp] = firstPart + strType + lastPart;\n });\n }\n }\n return retr;\n }\n ;\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nimport { Response } from './Response.js';\n/**\n * Ping response builder\n */\nexport class Ping extends Response {\n /**\n * true - CMP main script is loaded\n * false - still running stub\n */\n cmpLoaded = true;\n /**\n * see Ping Status Codes in following table\n */\n cmpStatus = CmpApiModel.cmpStatus;\n /**\n * see Ping Status Codes in following table\n */\n displayStatus = CmpApiModel.displayStatus;\n /**\n * version of the CMP API that is supported; e.g. “2”\n */\n apiVersion = String(CmpApiModel.apiVersion);\n /**\n * Version of the GVL currently loaded by the CMP\n * undefined if still the stub\n */\n gvlVersion;\n constructor() {\n super();\n // only if the tcModel is defined\n if (CmpApiModel.tcModel && CmpApiModel.tcModel.vendorListVersion) {\n this.gvlVersion = +CmpApiModel.tcModel.vendorListVersion;\n }\n }\n}\n","import { Ping } from '../response/index.js';\nimport { Command } from './Command.js';\nexport class PingCommand extends Command {\n respond() {\n this.invokeCallback(new Ping());\n }\n}\n","import { GetTCDataCommand } from './GetTCDataCommand.js';\nimport { InAppTCData } from '../response/index.js';\nexport class GetInAppTCDataCommand extends GetTCDataCommand {\n respond() {\n this.throwIfParamInvalid();\n this.invokeCallback(new InAppTCData(this.param));\n }\n}\n","/**\n * class for encoding errors\n *\n * @extends {Error}\n */\nclass EncodingError extends Error {\n /**\n * constructor - constructs an EncodingError\n *\n * @param {string} msg - Encoding Error Message\n * @return {undefined}\n */\n constructor(msg) {\n super(msg);\n this.name = 'EncodingError';\n }\n}\nexport { EncodingError };\n","/**\n * class for decoding errors\n *\n * @extends {Error}\n */\nclass DecodingError extends Error {\n /**\n * constructor - constructs an DecodingError\n *\n * @param {string} msg - Decoding Error Message\n * @return {undefined}\n */\n constructor(msg) {\n super(msg);\n this.name = 'DecodingError';\n }\n}\nexport { DecodingError };\n","import { DecodingError, EncodingError } from '../errors/index.js';\nexport class Base64Url {\n /**\n * Base 64 URL character set. Different from standard Base64 char set\n * in that '+' and '/' are replaced with '-' and '_'.\n */\n static DICT = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';\n static REVERSE_DICT = new Map([\n ['A', 0], ['B', 1], ['C', 2], ['D', 3], ['E', 4], ['F', 5],\n ['G', 6], ['H', 7], ['I', 8], ['J', 9], ['K', 10], ['L', 11],\n ['M', 12], ['N', 13], ['O', 14], ['P', 15], ['Q', 16], ['R', 17],\n ['S', 18], ['T', 19], ['U', 20], ['V', 21], ['W', 22], ['X', 23],\n ['Y', 24], ['Z', 25], ['a', 26], ['b', 27], ['c', 28], ['d', 29],\n ['e', 30], ['f', 31], ['g', 32], ['h', 33], ['i', 34], ['j', 35],\n ['k', 36], ['l', 37], ['m', 38], ['n', 39], ['o', 40], ['p', 41],\n ['q', 42], ['r', 43], ['s', 44], ['t', 45], ['u', 46], ['v', 47],\n ['w', 48], ['x', 49], ['y', 50], ['z', 51], ['0', 52], ['1', 53],\n ['2', 54], ['3', 55], ['4', 56], ['5', 57], ['6', 58], ['7', 59],\n ['8', 60], ['9', 61], ['-', 62], ['_', 63],\n ]);\n /**\n * log2(64) = 6\n */\n static BASIS = 6;\n static LCM = 24;\n /**\n * encodes an arbitrary-length bitfield string into base64url\n *\n * @static\n * @param {string} str - arbitrary-length bitfield string to be encoded to base64url\n * @return {string} - base64url encoded result\n */\n static encode(str) {\n /**\n * should only be 0 or 1\n */\n if (!/^[0-1]+$/.test(str)) {\n throw new EncodingError('Invalid bitField');\n }\n /**\n * Pad the end of the string to the least common mutliple of 6 (basis for\n * base64) and 8 (one byte)\n */\n const padding = str.length % this.LCM;\n str += padding ? '0'.repeat(this.LCM - padding) : '';\n let result = '';\n for (let i = 0; i < str.length; i += this.BASIS) {\n result += this.DICT[parseInt(str.substr(i, this.BASIS), 2)];\n }\n return result;\n }\n /**\n * decodes a base64url encoded bitfield string\n *\n * @static\n * @param {string} str - base64url encoded bitfield string to be decoded\n * @return {string} - bitfield string\n */\n static decode(str) {\n /**\n * should contain only characters from the base64url set\n */\n if (!/^[A-Za-z0-9\\-_]+$/.test(str)) {\n throw new DecodingError('Invalidly encoded Base64URL string');\n }\n let result = '';\n for (let i = 0; i < str.length; i++) {\n /**\n * index the binary value of the character from out reverse map\n */\n const strBits = this.REVERSE_DICT.get(str[i]).toString(2);\n /**\n * Since a bit string converted to an integer on encoding will lose\n * leading zeros – pad to the left for those missing leading zeros\n */\n result += '0'.repeat(this.BASIS - strBits.length) + strBits;\n }\n return result;\n }\n}\n","export class ConsentLanguages {\n static langSet = new Set([\n 'BG',\n 'CA',\n 'CS',\n 'DA',\n 'DE',\n 'EL',\n 'EN',\n 'ES',\n 'ET',\n 'FI',\n 'FR',\n 'HR',\n 'HU',\n 'IT',\n 'JA',\n 'LT',\n 'LV',\n 'MT',\n 'NL',\n 'NO',\n 'PL',\n 'PT',\n 'RO',\n 'RU',\n 'SK',\n 'SL',\n 'SV',\n 'TR',\n 'ZH',\n ]);\n has(key) {\n return ConsentLanguages.langSet.has(key);\n }\n forEach(callback) {\n ConsentLanguages.langSet.forEach(callback);\n }\n get size() {\n return ConsentLanguages.langSet.size;\n }\n}\n","export class Fields {\n static cmpId = 'cmpId';\n static cmpVersion = 'cmpVersion';\n static consentLanguage = 'consentLanguage';\n static consentScreen = 'consentScreen';\n static created = 'created';\n static supportOOB = 'supportOOB';\n static isServiceSpecific = 'isServiceSpecific';\n static lastUpdated = 'lastUpdated';\n static numCustomPurposes = 'numCustomPurposes';\n static policyVersion = 'policyVersion';\n static publisherCountryCode = 'publisherCountryCode';\n static publisherCustomConsents = 'publisherCustomConsents';\n static publisherCustomLegitimateInterests = 'publisherCustomLegitimateInterests';\n static publisherLegitimateInterests = 'publisherLegitimateInterests';\n static publisherConsents = 'publisherConsents';\n static publisherRestrictions = 'publisherRestrictions';\n static purposeConsents = 'purposeConsents';\n static purposeLegitimateInterests = 'purposeLegitimateInterests';\n static purposeOneTreatment = 'purposeOneTreatment';\n static specialFeatureOptins = 'specialFeatureOptins';\n static useNonStandardStacks = 'useNonStandardStacks';\n static vendorConsents = 'vendorConsents';\n static vendorLegitimateInterests = 'vendorLegitimateInterests';\n static vendorListVersion = 'vendorListVersion';\n static vendorsAllowed = 'vendorsAllowed';\n static vendorsDisclosed = 'vendorsDisclosed';\n static version = 'version';\n}\n","/**\n * Abstract Class Cloneable can be extended to give the child class the ability to clone its self.\n * The child class must pass its class to super. You can then pass any needed arguments to help build\n * the cloned class to the protected _clone() method.\n *\n * Example:\n *\n * class Example extends Cloneable {\n *\n * }\n * Todo: There must be more non primitive build in types to check. But for our current purposes, this works great.\n */\nexport class Cloneable {\n /**\n * clone - returns a copy of the classes with new values and not references\n *\n * @return {T}\n */\n clone() {\n const myClone = new this.constructor();\n const keys = Object.keys(this);\n keys.forEach((key) => {\n const value = this.deepClone(this[key]);\n if (value !== undefined) {\n myClone[key] = value;\n }\n });\n return myClone;\n }\n ;\n /**\n * deepClone - recursive function that makes copies of reference values\n *\n * @param {unknown} item\n * @return {unknown}\n */\n deepClone(item) {\n const itsType = typeof item;\n if (itsType === 'number' || itsType === 'string' || itsType === 'boolean') {\n return item;\n }\n else if (item !== null && itsType === 'object') {\n if (typeof item.clone === 'function') {\n return item.clone();\n }\n else if (item instanceof Date) {\n return new Date(item.getTime());\n }\n else if (item[Symbol.iterator] !== undefined) {\n const ar = [];\n for (const subItem of item) {\n ar.push(this.deepClone(subItem));\n }\n if (item instanceof Array) {\n return ar;\n }\n else {\n return new item.constructor(ar);\n }\n }\n else {\n const retr = {};\n for (const prop in item) {\n if (item.hasOwnProperty(prop)) {\n retr[prop] = this.deepClone(item[prop]);\n }\n }\n return retr;\n }\n }\n /**\n * ignore functions because those will be initialized with the cloning\n * process\n */\n }\n}\n","/**\n * class for decoding errors\n *\n * @extends {Error}\n */\nclass TCModelError extends Error {\n /**\n * constructor - constructs an TCModelError\n *\n * @param {string} fieldName - the errored field\n * @param {string} passedValue - what was passed\n * @return {undefined}\n */\n constructor(fieldName, passedValue, msg = '') {\n super(`invalid value ${passedValue} passed for ${fieldName} ${msg}`);\n this.name = 'TCModelError';\n }\n}\nexport { TCModelError };\n","/**\n * if a Vendor has declared flexible purposes (see: [[Vendor]] under\n * `flexiblePurposeIds`) on the Global Vendor List ([[Declarations]]) a CMP may\n * change their legal basis for processing in the encoding.\n */\nexport var RestrictionType;\n(function (RestrictionType) {\n /**\n * under no circumstances is this purpose allowed.\n */\n RestrictionType[RestrictionType[\"NOT_ALLOWED\"] = 0] = \"NOT_ALLOWED\";\n /**\n * if the default declaration is legitimate interest then this flips the purpose to consent in the encoding.\n */\n RestrictionType[RestrictionType[\"REQUIRE_CONSENT\"] = 1] = \"REQUIRE_CONSENT\";\n /**\n * if the default declaration is consent then this flips the purpose to Legitimate Interest in the encoding.\n */\n RestrictionType[RestrictionType[\"REQUIRE_LI\"] = 2] = \"REQUIRE_LI\";\n})(RestrictionType || (RestrictionType = {}));\n","import { Cloneable } from '../Cloneable.js';\nimport { TCModelError } from '../errors/index.js';\nimport { RestrictionType } from './RestrictionType.js';\nexport class PurposeRestriction extends Cloneable {\n static hashSeparator = '-';\n purposeId_;\n restrictionType;\n /**\n * constructor\n *\n * @param {number} purposeId? - may optionally pass the purposeId into the\n * constructor\n * @param {RestrictionType} restrictionType? - may\n * optionally pass the restrictionType into the constructor\n * @return {undefined}\n */\n constructor(purposeId, restrictionType) {\n super();\n if (purposeId !== undefined) {\n this.purposeId = purposeId;\n }\n if (restrictionType !== undefined) {\n this.restrictionType = restrictionType;\n }\n }\n static unHash(hash) {\n const splitUp = hash.split(this.hashSeparator);\n const purpRestriction = new PurposeRestriction();\n if (splitUp.length !== 2) {\n throw new TCModelError('hash', hash);\n }\n purpRestriction.purposeId = parseInt(splitUp[0], 10);\n purpRestriction.restrictionType = parseInt(splitUp[1], 10);\n return purpRestriction;\n }\n get hash() {\n if (!this.isValid()) {\n throw new Error('cannot hash invalid PurposeRestriction');\n }\n return `${this.purposeId}${PurposeRestriction.hashSeparator}${this.restrictionType}`;\n }\n /**\n * @return {number} The purpose Id associated with a publisher\n * purpose-by-vendor restriction that resulted in a different consent or LI\n * status than the consent or LI purposes allowed lists.\n */\n get purposeId() {\n return this.purposeId_;\n }\n /**\n * @param {number} idNum - The purpose Id associated with a publisher\n * purpose-by-vendor restriction that resulted in a different consent or LI\n * status than the consent or LI purposes allowed lists.\n */\n set purposeId(idNum) {\n this.purposeId_ = idNum;\n }\n isValid() {\n return (Number.isInteger(this.purposeId) &&\n this.purposeId > 0 &&\n (this.restrictionType === RestrictionType.NOT_ALLOWED ||\n this.restrictionType === RestrictionType.REQUIRE_CONSENT ||\n this.restrictionType === RestrictionType.REQUIRE_LI));\n }\n isSameAs(otherPR) {\n return (this.purposeId === otherPR.purposeId &&\n this.restrictionType === otherPR.restrictionType);\n }\n}\n","import { Cloneable } from '../Cloneable.js';\nexport class BinarySearchTree extends Cloneable {\n root = null;\n getRoot() {\n return this.root;\n }\n isEmpty() {\n // if root is undefined or null then by definition this is empty\n return !(this.root);\n }\n add(value) {\n // create new node object\n const node = {\n value: value,\n left: null,\n right: null,\n };\n let current;\n // first item?\n if (this.isEmpty()) {\n this.root = node;\n }\n else {\n // start at the root\n current = this.root;\n // infinite loop, figure out where to put it\n while (true) {\n // if the value is less than current value; go left\n if (value < current.value) {\n // if it's empty, we can insert\n if (current.left === null) {\n // insert on the left\n current.left = node;\n // our work is done here\n break;\n }\n else {\n /**\n * if there's something there already, we'll reset the pointer and\n * wait for the next loop to do something ie. keep traversing\n */\n current = current.left;\n }\n }\n else if (value > current.value) {\n // if the value is greater than our current value; go right\n if (current.right === null) {\n // there's nothing to the right, so put it here\n current.right = node;\n break;\n }\n else {\n /**\n * if there's something there already, we'll reset the pointer and\n * wait for the next loop to do something ie. keep traversing\n */\n current = current.right;\n }\n }\n else {\n /**\n * If it's neither greater than the right or less than the right then\n * it is equal to the current nodes value. In that case we won't do\n * anything with it because we will only insert unique values.\n */\n break;\n }\n }\n }\n }\n /**\n * performs Morris in-order traversal\n * @return {number[]} sorted array\n */\n get() {\n const retr = [];\n let current = this.root;\n while (current) {\n if (!current.left) {\n retr.push(current.value); // if there is no left child, visit current node\n current = current.right; // then we go the right branch\n }\n else {\n // find the right most leaf of root.left node.\n let pre = current.left;\n // when pre.right == null, it means we go to the right most leaf\n // when pre.right == current, it means the right most leaf has been visited in the last round\n while (pre.right && pre.right != current) {\n pre = pre.right;\n }\n // this means the pre.right has been set, it's time to go to current node\n if (pre.right == current) {\n pre.right = null;\n // means the current node is pointed by left right most child\n // the left branch has been visited, it's time to push the current node\n retr.push(current.value);\n current = current.right;\n }\n else {\n // the fist time to visit the pre node, make its right child point to current node\n pre.right = current;\n current = current.left;\n }\n }\n }\n return retr;\n }\n contains(value) {\n let retr = false;\n let current = this.root;\n while (current) {\n if (current.value === value) {\n retr = true;\n break;\n }\n else if (value > current.value) {\n current = current.right;\n }\n else if (value < current.value) {\n current = current.left;\n }\n }\n return retr;\n }\n min(current = this.root) {\n let retr;\n while (current) {\n if (current.left) {\n current = current.left;\n }\n else {\n retr = current.value;\n current = null;\n }\n }\n return retr;\n }\n max(current = this.root) {\n let retr;\n while (current) {\n if (current.right) {\n current = current.right;\n }\n else {\n retr = current.value;\n current = null;\n }\n }\n return retr;\n }\n remove(value, current = this.root) {\n // we start at the root, so the parent is null\n let parent = null;\n let parentSide = 'left';\n while (current) {\n if (value < current.value) {\n // set our parent to the current value\n parent = current;\n // value is less than current value, so go left\n current = current.left;\n parentSide = 'left';\n }\n else if (value > current.value) {\n // set our parent to the current value\n parent = current;\n // value is greater than current value, so go right\n current = current.right;\n parentSide = 'right';\n }\n else {\n /**\n * if it's neither greater than or less than, then it's equal so BINGO!\n * we've found it\n *\n * If we have children, we've got to figure out what to do with\n * them once we are no longer around... Woah, code is like real\n * life...\n *\n * There are three cases we care about when it comes to this removal\n * process:\n *\n * 1. No children -- If not children we just delete an do nothing\n * else, no harm no foul.\n *\n * 2. One child -- Just link the parent's link to current to the\n * child.\n *\n * 3. Two children -- Find the minimum value from the right subtree\n * replace us with the minimum value and of course remove that\n * minimum value from the right stubtree\n */\n if (!current.left && !current.right) {\n // case 1 there are no children easy peasy lemon squeezy\n if (parent) {\n parent[parentSide] = null;\n }\n else {\n this.root = null;\n }\n }\n else if (!current.left) {\n // no left side only right, so link right\n if (parent) {\n parent[parentSide] = current.right;\n }\n else {\n this.root = current.right;\n }\n }\n else if (!current.right) {\n // no right side only left, so link left\n if (parent) {\n parent[parentSide] = current.left;\n }\n else {\n this.root = current.left;\n }\n }\n else {\n /**\n * case 3 just like real life, if you delete a parent the more kids\n * that parent has the more complicated things get... in this case we\n * have two children. We're gonna have to figure out who goes where.\n */\n const minVal = this.min(current.right);\n // little bit of recursion...\n this.remove(minVal, current.right);\n current.value = minVal;\n }\n current = null;\n }\n }\n }\n /**\n * Build Binary Search Tree from the ordered number array.\n * The depth of the tree will be the `log2` of the array length.\n * @param {number[]} values number array in ascending order\n * @return {BinarySearchTree} Binary Search Tree\n */\n static build(values) {\n if (!values || values.length === 0) {\n return null;\n }\n else if (values.length === 1) {\n const tree = new BinarySearchTree();\n tree.add(values[0]);\n return tree;\n }\n else {\n const rootIndex = values.length >> 1;\n const tree = new BinarySearchTree();\n tree.add(values[rootIndex]);\n const root = tree.getRoot();\n if (root) {\n if (rootIndex + 1 < values.length) {\n const rightTree = BinarySearchTree.build(values.slice(rootIndex + 1));\n root.right = rightTree ? rightTree.getRoot() : null;\n }\n if (rootIndex - 1 > 0) {\n const leftTree = BinarySearchTree.build(values.slice(0, rootIndex - 1));\n root.left = leftTree ? leftTree.getRoot() : null;\n }\n }\n return tree;\n }\n }\n}\n","import { PurposeRestriction } from './PurposeRestriction.js';\nimport { BinarySearchTree } from './BinarySearchTree.js';\nimport { RestrictionType } from './RestrictionType.js';\nimport { Cloneable } from '../Cloneable.js';\nexport class PurposeRestrictionVector extends Cloneable {\n /**\n * if this originatd from an encoded string we'll need a place to store the\n * bit length; it can be set and got from here\n */\n bitLength = 0;\n /**\n * a map indexed by a string which will be a 'hash' of the purpose and\n * restriction type.\n *\n * Using a BST to keep vendors in a sorted order for encoding later\n */\n map = new Map();\n gvl_;\n has(hash) {\n return this.map.has(hash);\n }\n isOkToHave(restrictionType, purposeId, vendorId) {\n let result = true;\n /**\n * without a gvl set, there's no way to know... in that case we'll return\n * true but once the GVL is set later we'll go through these and clean up\n * the mess.\n */\n if (this.gvl?.vendors) {\n const vendor = this.gvl.vendors[vendorId];\n if (vendor) {\n if (restrictionType === RestrictionType.NOT_ALLOWED) {\n /**\n * if it's \"not allowed\" then flexible declaration is ignored but if\n * if it isn't even listed as one of the purposes the vendor uses,\n * then there is no reason to encode the value so check both arrays\n * to see if it exists. If it does then we can restrict it.\n */\n result = (vendor.legIntPurposes.includes(purposeId) || vendor.purposes.includes(purposeId));\n }\n else if (vendor.flexiblePurposes.length) {\n switch (restrictionType) {\n /**\n * If the vendor has the purposeId in flexiblePurposes and it is\n * listed as a legitimate interest purpose we can set the\n * override to require consent.\n */\n case RestrictionType.REQUIRE_CONSENT:\n result = (vendor.flexiblePurposes.includes(purposeId) && vendor.legIntPurposes.includes(purposeId));\n break;\n /**\n * If the vendor has the purposeId in flexiblePurposes and it is\n * listed as a consent purpose we can set the\n * override to require legitimate interest.\n */\n case RestrictionType.REQUIRE_LI:\n result = (vendor.flexiblePurposes.includes(purposeId) && vendor.purposes.includes(purposeId));\n break;\n }\n }\n else {\n result = false;\n }\n }\n else {\n // this vendor doesn't exist\n result = false;\n }\n }\n // if the gvl isn't defined, we can't do anything until later\n return result;\n }\n /**\n * add - adds a given Vendor ID under a given Purpose Restriction\n *\n * @param {number} vendorId\n * @param {PurposeRestriction} purposeRestriction\n * @return {void}\n */\n add(vendorId, purposeRestriction) {\n if (this.isOkToHave(purposeRestriction.restrictionType, purposeRestriction.purposeId, vendorId)) {\n const hash = purposeRestriction.hash;\n if (!this.has(hash)) {\n this.map.set(hash, new BinarySearchTree());\n this.bitLength = 0;\n }\n /**\n * Previously I had a check here to remove a duplicate value, but because\n * we're using a tree the value is guaranteed to be unique so there is no\n * need to add an additional de-duplication here.\n */\n this.map.get(hash).add(vendorId);\n }\n }\n /**\n * restrictPurposeToLegalBasis - adds all Vendors under a given Purpose Restriction\n *\n * @param {PurposeRestriction} purposeRestriction\n * @return {void}\n */\n restrictPurposeToLegalBasis(purposeRestriction) {\n const vendors = this.gvl.vendorIds;\n const hash = purposeRestriction.hash;\n const lastEntry = (function () {\n let value;\n for (value of vendors)\n ;\n return value;\n })();\n /**\n * Create an ordered array of vendor IDs from `1` (the minimum value for Vendor ID) to `lastEntry`\n */\n const values = [...Array(lastEntry).keys()].map((i) => i + 1);\n for (let i = 1; i <= lastEntry; i++) {\n if (!this.has(hash)) {\n this.map.set(hash, BinarySearchTree.build(values)); // use static method `build` to create a `BST` from the ordered array of IDs\n this.bitLength = 0;\n }\n /**\n * Previously I had a check here to remove a duplicate value, but because\n * we're using a tree the value is guaranteed to be unique so there is no\n * need to add an additional de-duplication here.\n */\n this.map.get(hash).add(i);\n }\n }\n /**\n * getVendors - returns array of vendor ids optionally narrowed by a given\n * Purpose Restriction. If no purpose restriction is passed then all vendor\n * ids will be returned. One can expect this result to be a unique set of\n * ids no duplicates.\n *\n * @param {PurposeRestriction} [purposeRestriction] - optionally passed to\n * get only Vendor IDs restricted under the given Purpose Restriction\n * @return {number[]} - Unique ID set of vendors\n */\n getVendors(purposeRestriction) {\n let vendorIds = [];\n if (purposeRestriction) {\n const hash = purposeRestriction.hash;\n if (this.has(hash)) {\n vendorIds = this.map.get(hash).get();\n }\n }\n else {\n const vendorSet = new Set();\n this.map.forEach((bst) => {\n bst.get().forEach((vendorId) => {\n vendorSet.add(vendorId);\n });\n });\n vendorIds = Array.from(vendorSet);\n }\n return vendorIds;\n }\n getRestrictionType(vendorId, purposeId) {\n let rType;\n this.getRestrictions(vendorId).forEach((purposeRestriction) => {\n if (purposeRestriction.purposeId === purposeId) {\n if (rType === undefined || rType > purposeRestriction.restrictionType) {\n rType = purposeRestriction.restrictionType;\n }\n }\n });\n return rType;\n }\n /**\n * vendorHasRestriction - determines whether a given Vendor ID is under a\n * given Purpose Restriction\n *\n * @param {number} vendorId\n * @param {PurposeRestriction} purposeRestriction\n * @return {boolean} - true if the give Vendor ID is under the given Purpose\n * Restriction\n */\n vendorHasRestriction(vendorId, purposeRestriction) {\n let has = false;\n const restrictions = this.getRestrictions(vendorId);\n for (let i = 0; i < restrictions.length && !has; i++) {\n has = purposeRestriction.isSameAs(restrictions[i]);\n }\n return has;\n }\n /**\n * getMaxVendorId - gets the Maximum Vendor ID regardless of Purpose\n * Restriction\n *\n * @return {number} - maximum Vendor ID\n */\n getMaxVendorId() {\n let retr = 0;\n this.map.forEach((bst) => {\n retr = Math.max(bst.max(), retr);\n });\n return retr;\n }\n getRestrictions(vendorId) {\n const retr = [];\n this.map.forEach((bst, hash) => {\n if (vendorId) {\n if (bst.contains(vendorId)) {\n retr.push(PurposeRestriction.unHash(hash));\n }\n }\n else {\n retr.push(PurposeRestriction.unHash(hash));\n }\n });\n return retr;\n }\n getPurposes() {\n const purposeIds = new Set();\n this.map.forEach((bst, hash) => {\n purposeIds.add(PurposeRestriction.unHash(hash).purposeId);\n });\n return Array.from(purposeIds);\n }\n /**\n * remove - removes Vendor ID from a Purpose Restriction\n *\n * @param {number} vendorId\n * @param {PurposeRestriction} purposeRestriction\n * @return {void}\n */\n remove(vendorId, purposeRestriction) {\n const hash = purposeRestriction.hash;\n const bst = this.map.get(hash);\n if (bst) {\n bst.remove(vendorId);\n // if it's empty let's delete the key so it doesn't show up empty\n if (bst.isEmpty()) {\n this.map.delete(hash);\n this.bitLength = 0;\n }\n }\n }\n /**\n * Essential for being able to determine whether we can actually set a\n * purpose restriction since they have to have a flexible legal basis\n *\n * @param {GVL} value - the GVL instance\n */\n set gvl(value) {\n if (!this.gvl_) {\n this.gvl_ = value;\n /**\n * if we have restrictions set before the gvl is set then we'll have to\n * go through and remove some if they're not valid\n */\n this.map.forEach((bst, hash) => {\n const purposeRestriction = PurposeRestriction.unHash(hash);\n const vendors = bst.get();\n vendors.forEach((vendorId) => {\n if (!this.isOkToHave(purposeRestriction.restrictionType, purposeRestriction.purposeId, vendorId)) {\n bst.remove(vendorId);\n }\n });\n });\n }\n }\n /**\n * gvl returns local copy of the GVL these restrictions apply to\n *\n * @return {GVL}\n */\n get gvl() {\n return this.gvl_;\n }\n /**\n * isEmpty - whether or not this vector has any restrictions in it\n *\n * @return {boolean}\n */\n isEmpty() {\n return this.map.size === 0;\n }\n ;\n /**\n * numRestrictions - returns the number of Purpose Restrictions.\n *\n * @return {number}\n */\n get numRestrictions() {\n return this.map.size;\n }\n}\n","export var DeviceDisclosureStorageAccessType;\n(function (DeviceDisclosureStorageAccessType) {\n DeviceDisclosureStorageAccessType[\"COOKIE\"] = \"cookie\";\n DeviceDisclosureStorageAccessType[\"WEB\"] = \"web\";\n DeviceDisclosureStorageAccessType[\"APP\"] = \"app\";\n})(DeviceDisclosureStorageAccessType || (DeviceDisclosureStorageAccessType = {}));\n","export var Segment;\n(function (Segment) {\n Segment[\"CORE\"] = \"core\";\n Segment[\"VENDORS_DISCLOSED\"] = \"vendorsDisclosed\";\n Segment[\"VENDORS_ALLOWED\"] = \"vendorsAllowed\";\n Segment[\"PUBLISHER_TC\"] = \"publisherTC\";\n})(Segment || (Segment = {}));\n","import { Segment } from './Segment.js';\nexport class SegmentIDs {\n /**\n * 0 = default - reserved for core string (does not need to be present in the core string)\n * 1 = OOB vendors disclosed\n * 2 = OOB vendors allowed\n * 3 = PublisherTC\n */\n static ID_TO_KEY = [\n Segment.CORE,\n Segment.VENDORS_DISCLOSED,\n Segment.VENDORS_ALLOWED,\n Segment.PUBLISHER_TC,\n ];\n static KEY_TO_ID = {\n [Segment.CORE]: 0,\n [Segment.VENDORS_DISCLOSED]: 1,\n [Segment.VENDORS_ALLOWED]: 2,\n [Segment.PUBLISHER_TC]: 3,\n };\n}\n","import { Cloneable } from '../Cloneable.js';\nimport { TCModelError } from '../errors/index.js';\n/**\n * Vector class is like a Set except it keeps track of a max id\n */\nexport class Vector extends Cloneable {\n /**\n * if this originatd from an encoded string we'll need a place to store the\n * bit length; it can be set and got from here\n */\n bitLength = 0;\n maxId_ = 0;\n set_ = new Set();\n *[Symbol.iterator]() {\n for (let i = 1; i <= this.maxId; i++) {\n yield [i, this.has(i)];\n }\n }\n /**\n * values()\n *\n * @return {IterableIterator} - returns an iterator of the positive\n * values in the set\n */\n values() {\n return this.set_.values();\n }\n /**\n * maxId\n *\n * @return {number} - the highest id in this Vector\n */\n get maxId() {\n return this.maxId_;\n }\n /**\n * get\n *\n * @param {number} id - key for value to check\n * @return {boolean} - value of that key, if never set it will be false\n */\n has(id) {\n /**\n * if it exists in the set we'll return true\n */\n return this.set_.has(id);\n }\n /**\n * unset\n *\n * @param {SingleIDOrCollection} id - id or ids to unset\n * @return {void}\n */\n unset(id) {\n if (Array.isArray(id)) {\n id.forEach((id) => this.unset(id));\n }\n else if (typeof id === 'object') {\n this.unset(Object.keys(id).map((strId) => Number(strId)));\n }\n else {\n this.set_.delete(Number(id));\n /**\n * if bitLength was set before, it must now be unset\n */\n this.bitLength = 0;\n if (id === this.maxId) {\n /**\n * aww bummer we lost our maxId... now we've got to search through\n * all the ids and find the biggest one.\n */\n this.maxId_ = 0;\n this.set_.forEach((id) => {\n this.maxId_ = Math.max(this.maxId, id);\n });\n }\n }\n }\n isIntMap(item) {\n let result = (typeof item === 'object');\n result = (result && Object.keys(item).every((key) => {\n let itemResult = Number.isInteger(parseInt(key, 10));\n itemResult = (itemResult && this.isValidNumber(item[key].id));\n itemResult = (itemResult && item[key].name !== undefined);\n return itemResult;\n }));\n return result;\n }\n isValidNumber(item) {\n return (parseInt(item, 10) > 0);\n }\n isSet(item) {\n let result = false;\n if (item instanceof Set) {\n result = Array.from(item).every(this.isValidNumber);\n }\n return result;\n }\n /**\n * set - sets an item assumed to be a truthy value by its presence\n *\n * @param {SingleIDOrCollection} item - May be a single id (positive integer)\n * or collection of ids in a set, GVL Int Map, or Array.\n *\n * @return {void}\n */\n set(item) {\n /**\n * strategy here is to just recursively call set if it's a collection until\n * we get to the final integer ID\n */\n if (Array.isArray(item)) {\n item.forEach((item) => this.set(item));\n }\n else if (this.isSet(item)) {\n this.set(Array.from(item));\n }\n else if (this.isIntMap(item)) {\n this.set(Object.keys(item).map((strId) => Number(strId)));\n }\n else if (this.isValidNumber(item)) {\n this.set_.add(item);\n this.maxId_ = Math.max(this.maxId, item);\n /**\n * if bitLength was set before, it must now be unset\n */\n this.bitLength = 0;\n }\n else {\n /**\n * Super not cool to try and set something that's not valid\n */\n throw new TCModelError('set()', item, 'must be positive integer array, positive integer, Set, or IntMap');\n }\n }\n empty() {\n this.set_ = new Set();\n }\n /**\n * forEach - to traverse from id=1 to id=maxId in a sequential non-sparse manner\n *\n *\n * @param {forEachCallback} callback - callback to execute\n * @return {void}\n *\n * @callback forEachCallback\n * @param {boolean} value - whether or not this id exists in the vector\n * @param {number} id - the id number of the current iteration\n */\n forEach(callback) {\n for (let i = 1; i <= this.maxId; i++) {\n callback(this.has(i), i);\n }\n }\n get size() {\n return this.set_.size;\n }\n setAll(intMap) {\n this.set(intMap);\n }\n}\n","import { Fields } from '../model/index.js';\nexport class BitLength {\n static [Fields.cmpId] = 12;\n static [Fields.cmpVersion] = 12;\n static [Fields.consentLanguage] = 12;\n static [Fields.consentScreen] = 6;\n static [Fields.created] = 36;\n static [Fields.isServiceSpecific] = 1;\n static [Fields.lastUpdated] = 36;\n static [Fields.policyVersion] = 6;\n static [Fields.publisherCountryCode] = 12;\n static [Fields.publisherLegitimateInterests] = 24;\n static [Fields.publisherConsents] = 24;\n static [Fields.purposeConsents] = 24;\n static [Fields.purposeLegitimateInterests] = 24;\n static [Fields.purposeOneTreatment] = 1;\n static [Fields.specialFeatureOptins] = 12;\n static [Fields.useNonStandardStacks] = 1;\n static [Fields.vendorListVersion] = 12;\n static [Fields.version] = 6;\n static anyBoolean = 1;\n static encodingType = 1;\n static maxId = 16;\n static numCustomPurposes = 6;\n static numEntries = 12;\n static numRestrictions = 12;\n static purposeId = 6;\n static restrictionType = 2;\n static segmentType = 3;\n static singleOrRange = 1;\n static vendorId = 16;\n}\n","export class BooleanEncoder {\n static encode(value) {\n return String(Number(value));\n }\n static decode(value) {\n // less operations than !!parseInt(value, 2)\n return value === '1';\n }\n}\n","import { EncodingError, DecodingError, } from '../../errors/index.js';\nexport class IntEncoder {\n static encode(value, numBits) {\n let bitString;\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n bitString = value.toString(2);\n if (bitString.length > numBits || value < 0) {\n throw new EncodingError(`${value} too large to encode into ${numBits}`);\n }\n // Pad the string if not filling all bits\n if (bitString.length < numBits) {\n // pad left\n bitString = '0'.repeat(numBits - bitString.length) + bitString;\n }\n return bitString;\n }\n static decode(value, numBits) {\n if (numBits !== value.length) {\n throw new DecodingError('invalid bit length');\n }\n return parseInt(value, 2);\n }\n}\n","import { IntEncoder, } from './IntEncoder.js';\nimport { DecodingError, } from '../../errors/index.js';\nexport class DateEncoder {\n static encode(value, numBits) {\n return IntEncoder.encode(Math.round(value.getTime() / 100), numBits);\n }\n static decode(value, numBits) {\n if (numBits !== value.length) {\n throw new DecodingError('invalid bit length');\n }\n const date = new Date();\n date.setTime(IntEncoder.decode(value, numBits) * 100);\n return date;\n }\n}\n","import { BooleanEncoder } from './BooleanEncoder.js';\nimport { DecodingError } from '../../errors/index.js';\nimport { Vector } from '../../model/index.js';\nexport class FixedVectorEncoder {\n static encode(value, numBits) {\n let bitString = '';\n for (let i = 1; i <= numBits; i++) {\n bitString += BooleanEncoder.encode(value.has(i));\n }\n return bitString;\n }\n static decode(value, numBits) {\n if (value.length !== numBits) {\n throw new DecodingError('bitfield encoding length mismatch');\n }\n const vector = new Vector();\n for (let i = 1; i <= numBits; i++) {\n if (BooleanEncoder.decode(value[i - 1])) {\n vector.set(i);\n }\n }\n vector.bitLength = value.length;\n return vector;\n }\n}\n","import { IntEncoder, } from './IntEncoder.js';\nimport { DecodingError, EncodingError, } from '../../errors/index.js';\nexport class LangEncoder {\n static encode(value, numBits) {\n value = value.toUpperCase();\n const ASCII_START = 65;\n const firstLetter = value.charCodeAt(0) - ASCII_START;\n const secondLetter = value.charCodeAt(1) - ASCII_START;\n // check some things to throw some good errors\n if (firstLetter < 0 || firstLetter > 25 || secondLetter < 0 || secondLetter > 25) {\n throw new EncodingError(`invalid language code: ${value}`);\n }\n if (numBits % 2 === 1) {\n throw new EncodingError(`numBits must be even, ${numBits} is not valid`);\n }\n numBits = numBits / 2;\n const firstLetterBString = IntEncoder.encode(firstLetter, numBits);\n const secondLetterBString = IntEncoder.encode(secondLetter, numBits);\n return firstLetterBString + secondLetterBString;\n }\n static decode(value, numBits) {\n let retr;\n // is it an even number of bits? we have to divide it\n if (numBits === value.length && !(value.length % 2)) {\n const ASCII_START = 65;\n const mid = value.length / 2;\n const firstLetter = IntEncoder.decode(value.slice(0, mid), mid) + ASCII_START;\n const secondLetter = IntEncoder.decode(value.slice(mid), mid) + ASCII_START;\n retr = String.fromCharCode(firstLetter) + String.fromCharCode(secondLetter);\n }\n else {\n throw new DecodingError('invalid bit length for language');\n }\n return retr;\n }\n}\n","import { BitLength } from '../BitLength.js';\nimport { BooleanEncoder } from './BooleanEncoder.js';\nimport { DecodingError } from '../../errors/index.js';\nimport { IntEncoder } from './IntEncoder.js';\nimport { PurposeRestrictionVector, PurposeRestriction } from '../../model/index.js';\nexport class PurposeRestrictionVectorEncoder {\n static encode(prVector) {\n // start with the number of restrictions\n let bitString = IntEncoder.encode(prVector.numRestrictions, BitLength.numRestrictions);\n // if the vector is empty we'll just return a string with just the numRestricitons being 0\n if (!prVector.isEmpty()) {\n // create each restriction group\n prVector.getRestrictions().forEach((purpRestriction) => {\n // every restriction group has the purposeId and the restrictionType;\n bitString += IntEncoder.encode(purpRestriction.purposeId, BitLength.purposeId);\n bitString += IntEncoder.encode(purpRestriction.restrictionType, BitLength.restrictionType);\n // now get all the vendors under that restriction\n const vendors = prVector.getVendors(purpRestriction);\n const len = vendors.length;\n /**\n * numEntries comes first so we will have to keep a counter and the do\n * the encoding at the end\n */\n let numEntries = 0;\n let startId = 0;\n let rangeField = '';\n for (let i = 0; i < len; i++) {\n const vendorId = vendors[i];\n if (startId === 0) {\n numEntries++;\n startId = vendorId;\n }\n // we know that `len` is greater than zero because we entered the loop\n const lastVendorId = vendors[len - 1];\n const gvlVendorIds = prVector.gvl.vendorIds;\n const nextGvlVendor = (vendorId) => {\n while (++vendorId <= lastVendorId && !gvlVendorIds.has(vendorId)) {\n }\n return vendorId;\n };\n /**\n * either end of the loop or there are GVL vendor IDs before the next one\n */\n if (i === len - 1 || vendors[i + 1] > nextGvlVendor(vendorId)) {\n /**\n * it's a range entry if we've got something other than the start\n * ID\n */\n const isRange = !(vendorId === startId);\n // 0 means single 1 means range\n rangeField += BooleanEncoder.encode(isRange);\n rangeField += IntEncoder.encode(startId, BitLength.vendorId);\n if (isRange) {\n rangeField += IntEncoder.encode(vendorId, BitLength.vendorId);\n }\n // reset the startId so we grab the next id in the list\n startId = 0;\n }\n }\n /**\n * now that the range encoding is built, encode the number of ranges\n * and then append the range field to the bitString.\n */\n bitString += IntEncoder.encode(numEntries, BitLength.numEntries);\n bitString += rangeField;\n });\n }\n return bitString;\n }\n static decode(encodedString) {\n let index = 0;\n const vector = new PurposeRestrictionVector();\n const numRestrictions = IntEncoder.decode(encodedString.substr(index, BitLength.numRestrictions), BitLength.numRestrictions);\n index += BitLength.numRestrictions;\n for (let i = 0; i < numRestrictions; i++) {\n // First is purpose ID\n const purposeId = IntEncoder.decode(encodedString.substr(index, BitLength.purposeId), BitLength.purposeId);\n index += BitLength.purposeId;\n // Second Restriction Type\n const restrictionType = IntEncoder.decode(encodedString.substr(index, BitLength.restrictionType), BitLength.restrictionType);\n index += BitLength.restrictionType;\n const purposeRestriction = new PurposeRestriction(purposeId, restrictionType);\n // Num Entries (number of vendors)\n const numEntries = IntEncoder.decode(encodedString.substr(index, BitLength.numEntries), BitLength.numEntries);\n index += BitLength.numEntries;\n for (let j = 0; j < numEntries; j++) {\n const isARange = BooleanEncoder.decode(encodedString.substr(index, BitLength.anyBoolean));\n index += BitLength.anyBoolean;\n const startOrOnlyVendorId = IntEncoder.decode(encodedString.substr(index, BitLength.vendorId), BitLength.vendorId);\n index += BitLength.vendorId;\n if (isARange) {\n const endVendorId = IntEncoder.decode(encodedString.substr(index, BitLength.vendorId), BitLength.vendorId);\n index += BitLength.vendorId;\n if (endVendorId < startOrOnlyVendorId) {\n throw new DecodingError(`Invalid RangeEntry: endVendorId ${endVendorId} is less than ${startOrOnlyVendorId}`);\n }\n for (let k = startOrOnlyVendorId; k <= endVendorId; k++) {\n vector.add(k, purposeRestriction);\n }\n }\n else {\n vector.add(startOrOnlyVendorId, purposeRestriction);\n }\n }\n }\n vector.bitLength = index;\n return vector;\n }\n}\n","export var VectorEncodingType;\n(function (VectorEncodingType) {\n VectorEncodingType[VectorEncodingType[\"FIELD\"] = 0] = \"FIELD\";\n VectorEncodingType[VectorEncodingType[\"RANGE\"] = 1] = \"RANGE\";\n})(VectorEncodingType || (VectorEncodingType = {}));\n","import { Vector } from '../../model/index.js';\nimport { BitLength } from '../index.js';\nimport { IntEncoder } from './IntEncoder.js';\nimport { BooleanEncoder } from './BooleanEncoder.js';\nimport { FixedVectorEncoder } from './FixedVectorEncoder.js';\nimport { VectorEncodingType } from './VectorEncodingType.js';\nimport { DecodingError } from '../../errors/index.js';\nexport class VendorVectorEncoder {\n static encode(value) {\n // collectors for range encoding\n const ranges = [];\n let range = [];\n // since both encodings need the maxId, start with that\n let retrString = IntEncoder.encode(value.maxId, BitLength.maxId);\n // bit field will be just the vendors as we walk through the vector\n let bitField = '';\n let rangeIsSmaller;\n // some math\n const headerLength = BitLength.maxId + BitLength.encodingType;\n const bitFieldLength = headerLength + value.maxId;\n const minRangeLength = (BitLength.vendorId * 2 + BitLength.singleOrRange + BitLength.numEntries);\n // gets larger as we walk through the vector\n let rangeLength = headerLength + BitLength.numEntries;\n // walk through every value in the vector\n value.forEach((curValue, i) => {\n // build our bitfield no matter what\n bitField += BooleanEncoder.encode(curValue);\n /**\n * A range is a minimum of 45 bits, if the number of vendors in this\n * vector is less than 45 then we know that a bitfield encoding will be\n * shorter than any range encoding.\n *\n * The second check checks while we walk through the vector and abandons\n * building the ranges once it becomes larger\n */\n rangeIsSmaller = (value.maxId > minRangeLength && rangeLength < bitFieldLength);\n /**\n * if the curValue is true and our rangeLength is less than the bitField\n * length, we'll continue to push these ranges into the array. Once the\n * ranges become a larger encoding there is no reason to continue\n * building the structure because we will be choosing the bitfield\n * encoding\n */\n if (rangeIsSmaller && curValue) {\n /**\n * Look ahead to see if this is the last value in our range\n */\n const nextValue = value.has(i + 1);\n // if there isn't a next value, then we'll wrap up this range\n if (!nextValue) {\n /**\n * this is the last value of the range, so we'll push it on to the\n * end into position 1\n */\n range.push(i);\n // add to the range length the additional vendorId\n rangeLength += BitLength.vendorId;\n // store the array in our bigger array\n ranges.push(range);\n // clear the array for the next range\n range = [];\n }\n else if (range.length === 0) {\n // this is the first value for this range\n range.push(i);\n // update our count with new range overhead\n rangeLength += BitLength.singleOrRange;\n rangeLength += BitLength.vendorId;\n }\n }\n });\n if (rangeIsSmaller) {\n retrString += String(VectorEncodingType.RANGE);\n retrString += this.buildRangeEncoding(ranges);\n }\n else {\n retrString += String(VectorEncodingType.FIELD);\n retrString += bitField;\n }\n return retrString;\n }\n static decode(value, version) {\n let vector;\n let index = 0;\n const maxId = IntEncoder.decode(value.substr(index, BitLength.maxId), BitLength.maxId);\n index += BitLength.maxId;\n const encodingType = IntEncoder.decode(value.charAt(index), BitLength.encodingType);\n index += BitLength.encodingType;\n /**\n * Range is handled in batches so we'll need a different decoding scheme\n */\n if (encodingType === VectorEncodingType.RANGE) {\n vector = new Vector();\n if (version === 1) {\n if (value.substr(index, 1) === '1') {\n throw new DecodingError('Unable to decode default consent=1');\n }\n // jump over the default encoding\n index++;\n }\n const numEntries = IntEncoder.decode(value.substr(index, BitLength.numEntries), BitLength.numEntries);\n index += BitLength.numEntries;\n // loop through each group of entries\n for (let i = 0; i < numEntries; i++) {\n // Ranges can represent a single id or a range of ids.\n const isIdRange = BooleanEncoder.decode(value.charAt(index));\n index += BitLength.singleOrRange;\n /**\n * regardless of whether or not it's a single entry or range, the next\n * set of bits is a vendor ID\n */\n const firstId = IntEncoder.decode(value.substr(index, BitLength.vendorId), BitLength.vendorId);\n index += BitLength.vendorId;\n // if it's a range, the next set of bits is the second id\n if (isIdRange) {\n const secondId = IntEncoder.decode(value.substr(index, BitLength.vendorId), BitLength.vendorId);\n index += BitLength.vendorId;\n // we'll need to set or unset all the vendor ids between the first and second\n for (let j = firstId; j <= secondId; j++) {\n vector.set(j);\n }\n }\n else {\n vector.set(firstId);\n }\n }\n }\n else {\n const bitField = value.substr(index, maxId);\n index += maxId;\n vector = FixedVectorEncoder.decode(bitField, maxId);\n }\n vector.bitLength = index;\n return vector;\n }\n static buildRangeEncoding(ranges) {\n // describe the number of entries to follow\n const numEntries = ranges.length;\n let rangeString = IntEncoder.encode(numEntries, BitLength.numEntries);\n // each range\n ranges.forEach((range) => {\n // is this range a single?\n const single = (range.length === 1);\n // first is the indicator of whether this is a single id or range (two)\n // 0 is single and range is 1\n rangeString += BooleanEncoder.encode(!single);\n // second is the first (or only) vendorId\n rangeString += IntEncoder.encode(range[0], BitLength.vendorId);\n if (!single) {\n // add the second id if it exists\n rangeString += IntEncoder.encode(range[1], BitLength.vendorId);\n }\n });\n return rangeString;\n }\n}\n","import { Fields } from '../../model/index.js';\nimport { BooleanEncoder } from './BooleanEncoder.js';\nimport { DateEncoder } from './DateEncoder.js';\nimport { FixedVectorEncoder } from './FixedVectorEncoder.js';\nimport { IntEncoder } from './IntEncoder.js';\nimport { LangEncoder } from './LangEncoder.js';\nimport { PurposeRestrictionVectorEncoder } from './PurposeRestrictionVectorEncoder.js';\nimport { VendorVectorEncoder } from './VendorVectorEncoder.js';\nexport function FieldEncoderMap() {\n return {\n [Fields.version]: IntEncoder,\n [Fields.created]: DateEncoder,\n [Fields.lastUpdated]: DateEncoder,\n [Fields.cmpId]: IntEncoder,\n [Fields.cmpVersion]: IntEncoder,\n [Fields.consentScreen]: IntEncoder,\n [Fields.consentLanguage]: LangEncoder,\n [Fields.vendorListVersion]: IntEncoder,\n [Fields.policyVersion]: IntEncoder,\n [Fields.isServiceSpecific]: BooleanEncoder,\n [Fields.useNonStandardStacks]: BooleanEncoder,\n [Fields.specialFeatureOptins]: FixedVectorEncoder,\n [Fields.purposeConsents]: FixedVectorEncoder,\n [Fields.purposeLegitimateInterests]: FixedVectorEncoder,\n [Fields.purposeOneTreatment]: BooleanEncoder,\n [Fields.publisherCountryCode]: LangEncoder,\n [Fields.vendorConsents]: VendorVectorEncoder,\n [Fields.vendorLegitimateInterests]: VendorVectorEncoder,\n [Fields.publisherRestrictions]: PurposeRestrictionVectorEncoder,\n segmentType: IntEncoder,\n [Fields.vendorsDisclosed]: VendorVectorEncoder,\n [Fields.vendorsAllowed]: VendorVectorEncoder,\n [Fields.publisherConsents]: FixedVectorEncoder,\n [Fields.publisherLegitimateInterests]: FixedVectorEncoder,\n [Fields.numCustomPurposes]: IntEncoder,\n [Fields.publisherCustomConsents]: FixedVectorEncoder,\n [Fields.publisherCustomLegitimateInterests]: FixedVectorEncoder,\n };\n}\n","import { Segment, Fields } from '../../model/index.js';\nexport class FieldSequence {\n '1' = {\n [Segment.CORE]: [\n Fields.version,\n Fields.created,\n Fields.lastUpdated,\n Fields.cmpId,\n Fields.cmpVersion,\n Fields.consentScreen,\n Fields.consentLanguage,\n Fields.vendorListVersion,\n Fields.purposeConsents,\n Fields.vendorConsents,\n ],\n };\n '2' = {\n [Segment.CORE]: [\n Fields.version,\n Fields.created,\n Fields.lastUpdated,\n Fields.cmpId,\n Fields.cmpVersion,\n Fields.consentScreen,\n Fields.consentLanguage,\n Fields.vendorListVersion,\n Fields.policyVersion,\n Fields.isServiceSpecific,\n Fields.useNonStandardStacks,\n Fields.specialFeatureOptins,\n Fields.purposeConsents,\n Fields.purposeLegitimateInterests,\n Fields.purposeOneTreatment,\n Fields.publisherCountryCode,\n Fields.vendorConsents,\n Fields.vendorLegitimateInterests,\n Fields.publisherRestrictions,\n ],\n [Segment.PUBLISHER_TC]: [\n Fields.publisherConsents,\n Fields.publisherLegitimateInterests,\n Fields.numCustomPurposes,\n Fields.publisherCustomConsents,\n Fields.publisherCustomLegitimateInterests,\n ],\n [Segment.VENDORS_ALLOWED]: [\n Fields.vendorsAllowed,\n ],\n [Segment.VENDORS_DISCLOSED]: [\n Fields.vendorsDisclosed,\n ],\n };\n}\n","import { Segment, Fields, } from '../../model/index.js';\nexport class SegmentSequence {\n '1' = [\n Segment.CORE,\n ];\n '2' = [\n Segment.CORE,\n ];\n constructor(tcModel, options) {\n if (tcModel.version === 2) {\n if (tcModel.isServiceSpecific) {\n /**\n * If it's service specific only, then the publisher TC String can be\n * stored in the cookie and would be transmitted if it's not for\n * storage. So it's included regardless of whether or not it's for\n * saving or the cmp api to surface.\n */\n this['2'].push(Segment.PUBLISHER_TC);\n }\n else {\n const isForVendors = !!(options && options.isForVendors);\n /**\n * including vendors disclosed only if it is for saving (to the global\n * scope and not for vendors through the CMP API) or supportOOB is\n * turned on (either or both). The compliment of this being not for\n * saving (surfaced to CMP) and no support of OOB.\n */\n if (!isForVendors || tcModel[Fields.supportOOB] === true) {\n this['2'].push(Segment.VENDORS_DISCLOSED);\n }\n if (isForVendors) {\n /**\n * If a publisher does support OOB and they have narrowed the allowed\n * vendors to utilize it, then we should include the vendors allowed\n * segment. If it is empty then there are no restrictions, if that\n * is intended to mean no support for OOB, then the flag should be\n * set for that instead.\n *\n */\n if (tcModel[Fields.supportOOB] && tcModel[Fields.vendorsAllowed].size > 0) {\n this['2'].push(Segment.VENDORS_ALLOWED);\n }\n /**\n * Always include the publisher TC segment as long as this TC string\n * is not intended to be saved in the global scope.\n */\n this['2'].push(Segment.PUBLISHER_TC);\n }\n }\n }\n }\n}\n","import { Base64Url } from './Base64Url.js';\nimport { BitLength } from './BitLength.js';\nimport { FieldEncoderMap, IntEncoder, VendorVectorEncoder } from './field/index.js';\nimport { FieldSequence } from './sequence/index.js';\nimport { EncodingError, DecodingError } from '../errors/index.js';\nimport { Fields } from '../model/Fields.js';\nimport { Segment, SegmentIDs } from '../model/index.js';\nexport class SegmentEncoder {\n static fieldSequence = new FieldSequence();\n static encode(tcModel, segment) {\n let sequence;\n try {\n sequence = this.fieldSequence[String(tcModel.version)][segment];\n }\n catch (err) {\n throw new EncodingError(`Unable to encode version: ${tcModel.version}, segment: ${segment}`);\n }\n let bitField = '';\n /**\n * If this is anything other than the core segment we have a \"segment id\"\n * to append to the front of the string\n */\n if (segment !== Segment.CORE) {\n bitField = IntEncoder.encode(SegmentIDs.KEY_TO_ID[segment], BitLength.segmentType);\n }\n const fieldEncoderMap = FieldEncoderMap();\n sequence.forEach((key) => {\n const value = tcModel[key];\n const encoder = fieldEncoderMap[key];\n let numBits = BitLength[key];\n if (numBits === undefined) {\n if (this.isPublisherCustom(key)) {\n /**\n * publisherCustom[Consents | LegitimateInterests] are an edge case\n * because they are of variable length. The length is defined in a\n * separate field named numCustomPurposes.\n */\n numBits = Number(tcModel[Fields.numCustomPurposes]);\n }\n }\n try {\n bitField += encoder.encode(value, numBits);\n }\n catch (err) {\n throw new EncodingError(`Error encoding ${segment}->${key}: ${err.message}`);\n }\n });\n // base64url encode the string and return\n return Base64Url.encode(bitField);\n }\n static decode(encodedString, tcModel, segment) {\n const bitField = Base64Url.decode(encodedString);\n let bStringIdx = 0;\n if (segment === Segment.CORE) {\n tcModel.version = IntEncoder.decode(bitField.substr(bStringIdx, BitLength[Fields.version]), BitLength[Fields.version]);\n }\n if (segment !== Segment.CORE) {\n bStringIdx += BitLength.segmentType;\n }\n const sequence = this.fieldSequence[String(tcModel.version)][segment];\n const fieldEncoderMap = FieldEncoderMap();\n sequence.forEach((key) => {\n const encoder = fieldEncoderMap[key];\n let numBits = BitLength[key];\n if (numBits === undefined) {\n if (this.isPublisherCustom(key)) {\n /**\n * publisherCustom[Consents | LegitimateInterests] are an edge case\n * because they are of variable length. The length is defined in a\n * separate field named numCustomPurposes.\n */\n numBits = Number(tcModel[Fields.numCustomPurposes]);\n }\n }\n if (numBits !== 0) {\n /**\n * numBits could be 0 if this is a publisher custom purposes field and\n * no custom purposes are defined. If that is the case, we don't need\n * to gather no bits and we don't need to increment our bStringIdx\n * pointer because those would all be 0 increments and would mess up\n * the next logical if statement.\n */\n const bits = bitField.substr(bStringIdx, numBits);\n if (encoder === VendorVectorEncoder) {\n tcModel[key] = encoder.decode(bits, tcModel.version);\n }\n else {\n tcModel[key] = encoder.decode(bits, numBits);\n }\n if (Number.isInteger(numBits)) {\n bStringIdx += numBits;\n }\n else if (Number.isInteger(tcModel[key].bitLength)) {\n bStringIdx += tcModel[key].bitLength;\n }\n else {\n throw new DecodingError(key);\n }\n }\n });\n return tcModel;\n }\n static isPublisherCustom(key) {\n return key.indexOf('publisherCustom') === 0;\n }\n}\n","import { EncodingError } from '../errors/index.js';\nimport { RestrictionType } from '../model/index.js';\nexport class SemanticPreEncoder {\n static processor = [\n (tcModel) => tcModel,\n (tcModel, gvl) => {\n /**\n * in case this wasn't set previously. This should filter out invalid\n * purpose restrictions.\n */\n tcModel.publisherRestrictions.gvl = gvl;\n /**\n * Purpose 1 is never allowed to be true for legitimate interest\n */\n tcModel.purposeLegitimateInterests.unset(1);\n /**\n * If a Vendor does not declare a purpose for consent or legitimate\n * interest they should not have a positive signal for it. This code\n * removes positive signals created mistakingly.\n */\n const vectorToIntMap = new Map();\n vectorToIntMap.set('legIntPurposes', tcModel.vendorLegitimateInterests);\n vectorToIntMap.set('purposes', tcModel.vendorConsents);\n vectorToIntMap.forEach((vector, gvlVendorKey) => {\n vector.forEach((value, vendorId) => {\n if (value) {\n const vendor = gvl.vendors[vendorId];\n if (!vendor || vendor.deletedDate) {\n /**\n * If the vendor doesn't exist, then they should not receive a\n * positive signal\n */\n vector.unset(vendorId);\n }\n else if (vendor[gvlVendorKey].length === 0) {\n if (gvlVendorKey === 'legIntPurposes' && vendor['purposes'].length === 0 && vendor['legIntPurposes'].length === 0 && vendor['specialPurposes'].length > 0) {\n /**\n * Per June 2021 Policy change, Vendors declaring only Special Purposes must\n * have their legitimate interest Vendor bit set if they have been disclosed.\n * This empty block ensures their LI bit remains set\n */\n }\n else {\n /**\n * If the vendor does exist, but they haven't declared any\n * purposes for this legal basis, then we need to see if they can\n * possibly have the legal basis from their flexible purposes.\n */\n if (tcModel.isServiceSpecific) {\n if (vendor.flexiblePurposes.length === 0) {\n /**\n * No flexible basis for any purposes, so we can safely remove\n * this vendor from the legal basis.\n */\n vector.unset(vendorId);\n }\n else {\n /**\n * They have some flexible purposes, we should check for a\n * publisher restriction value that would enable this vendor to\n * have the override-preferred basis.\n */\n const restrictions = tcModel.publisherRestrictions.getRestrictions(vendorId);\n let isValid = false;\n for (let i = 0, len = restrictions.length; i < len && !isValid; i++) {\n /**\n * If this condition is true the loop will break. If we are\n * dealing with the consent purposes ('purposes') and the\n * publisher restriction overrides to consent then it is\n * valid for the vendor to have a positive signal for\n * consent. Likewise for legitimate interest purposes\n * ('legIntPurposes') and requiring legitimate interest.\n */\n isValid = ((restrictions[i].restrictionType === RestrictionType.REQUIRE_CONSENT &&\n gvlVendorKey === 'purposes') ||\n (restrictions[i].restrictionType === RestrictionType.REQUIRE_LI &&\n gvlVendorKey === 'legIntPurposes'));\n }\n if (!isValid) {\n /**\n * if we came through the previous loop without finding a\n * valid reasing: no overriding restrictions (changes in\n * legal basis) then it's not valid for this vendor to have\n * this legal basis.\n */\n vector.unset(vendorId);\n }\n }\n }\n else {\n /**\n * This is a globally-scoped string so flexible purposes will not\n * be able to change this value because purposeRestrictions only\n * apply to service-specific strings.\n */\n vector.unset(vendorId);\n }\n }\n }\n }\n });\n });\n tcModel.vendorsDisclosed.set(gvl.vendors);\n return tcModel;\n },\n ];\n static process(tcModel, options) {\n const gvl = tcModel.gvl;\n if (!gvl) {\n throw new EncodingError('Unable to encode TCModel without a GVL');\n }\n if (!gvl.isReady) {\n throw new EncodingError('Unable to encode TCModel tcModel.gvl.readyPromise is not resolved');\n }\n tcModel = tcModel.clone();\n tcModel.consentLanguage = gvl.language.toUpperCase();\n if (options?.version > 0 && options?.version <= this.processor.length) {\n tcModel.version = options.version;\n }\n else {\n /**\n * this is equal to the latest or most current version\n */\n tcModel.version = this.processor.length;\n }\n const processorFunctionIndex = tcModel.version - 1;\n if (!this.processor[processorFunctionIndex]) {\n throw new EncodingError(`Invalid version: ${tcModel.version}`);\n }\n return this.processor[processorFunctionIndex](tcModel, gvl);\n }\n}\n","/**\n * class for General GVL Errors\n *\n * @extends {Error}\n */\nclass GVLError extends Error {\n /**\n * constructor - constructs a GVLError\n *\n * @param {string} msg - Error message to display\n * @return {undefined}\n */\n constructor(msg) {\n super(msg);\n this.name = 'GVLError';\n }\n}\nexport { GVLError };\n","export class Json {\n static absCall(url, body, sendCookies, timeout) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest();\n const onLoad = () => {\n // is the response done\n if (req.readyState == XMLHttpRequest.DONE) {\n /**\n * For our purposes if it's not a 200 range response, then it's a\n * failure.\n */\n if (req.status >= 200 && req.status < 300) {\n let response = req.response;\n if (typeof response === 'string') {\n try {\n response = JSON.parse(response);\n }\n catch (e) { }\n }\n resolve(response);\n }\n else {\n reject(new Error(`HTTP Status: ${req.status} response type: ${req.responseType}`));\n }\n }\n };\n const onError = () => {\n reject(new Error('error'));\n };\n const onAbort = () => {\n reject(new Error('aborted'));\n };\n const onTimeout = () => {\n reject(new Error('Timeout ' + timeout + 'ms ' + url));\n };\n req.withCredentials = sendCookies;\n req.addEventListener('load', onLoad);\n req.addEventListener('error', onError);\n req.addEventListener('abort', onAbort);\n if (body === null) {\n req.open('GET', url, true);\n }\n else {\n req.open('POST', url, true);\n }\n req.responseType = 'json';\n // IE has a problem if this is before the open\n req.timeout = timeout;\n req.ontimeout = onTimeout;\n req.send(body);\n });\n }\n /**\n * @static\n * @param {string} url - full path to POST to\n * @param {object} body - JSON object to post\n * @param {boolean} sendCookies - Whether or not to send the XMLHttpRequest with credentials or not\n * @param {number} [timeout] - optional timeout in milliseconds\n * @return {Promise} - if the server responds the response will be returned here\n */\n static post(url, body, sendCookies = false, timeout = 0) {\n return this.absCall(url, JSON.stringify(body), sendCookies, timeout);\n }\n /**\n * @static\n * @param {string} url - full path to the json\n * @param {boolean} sendCookies - Whether or not to send the XMLHttpRequest with credentials or not\n * @param {number} [timeout] - optional timeout in milliseconds\n * @return {Promise} - resolves with parsed JSON\n */\n static fetch(url, sendCookies = false, timeout = 0) {\n return this.absCall(url, null, sendCookies, timeout);\n }\n}\n","import { Cloneable } from './Cloneable.js';\nimport { GVLError } from './errors/index.js';\nimport { Json } from './Json.js';\nimport { ConsentLanguages } from './model/index.js';\n/**\n * class with utilities for managing the global vendor list. Will use JSON to\n * fetch the vendor list from specified url and will serialize it into this\n * object and provide accessors. Provides ways to group vendors on the list by\n * purpose and feature.\n */\nexport class GVL extends Cloneable {\n static LANGUAGE_CACHE = new Map();\n static CACHE = new Map();\n static LATEST_CACHE_KEY = 0;\n static DEFAULT_LANGUAGE = 'EN';\n /**\n * Set of available consent languages published by the IAB\n */\n static consentLanguages = new ConsentLanguages();\n static baseUrl_;\n /**\n * baseUrl - Entities using the vendor-list.json are required by the iab to\n * host their own copy of it to reduce the load on the iab's infrastructure\n * so a 'base' url must be set to be put together with the versioning scheme\n * of the filenames.\n *\n * @static\n * @param {string} url - the base url to load the vendor-list.json from. This is\n * broken out from the filename because it follows a different scheme for\n * latest file vs versioned files.\n *\n * @throws {GVLError} - If the url is http[s]://vendorlist.consensu.org/...\n * this will throw an error. IAB Europe requires that that CMPs and Vendors\n * cache their own copies of the GVL to minimize load on their\n * infrastructure. For more information regarding caching of the\n * vendor-list.json, please see [the TCF documentation on 'Caching the Global\n * Vendor List'\n * ](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20Consent%20string%20and%20vendor%20list%20formats%20v2.md#caching-the-global-vendor-list)\n */\n static set baseUrl(url) {\n const notValid = /^https?:\\/\\/vendorlist\\.consensu\\.org\\//;\n if (notValid.test(url)) {\n throw new GVLError('Invalid baseUrl! You may not pull directly from vendorlist.consensu.org and must provide your own cache');\n }\n // if a trailing slash was forgotten\n if (url.length > 0 && url[url.length - 1] !== '/') {\n url += '/';\n }\n this.baseUrl_ = url;\n }\n ;\n /**\n * baseUrl - Entities using the vendor-list.json are required by the iab to\n * host their own copy of it to reduce the load on the iab's infrastructure\n * so a 'base' url must be set to be put together with the versioning scheme\n * of the filenames.\n *\n * @static\n * @return {string} - returns the previously set baseUrl, the default is\n * `undefined`\n */\n static get baseUrl() {\n return this.baseUrl_;\n }\n /**\n * @static\n * @param {string} - the latest is assumed to be vendor-list.json because\n * that is what the iab uses, but it could be different... if you want\n */\n static latestFilename = 'vendor-list.json';\n /**\n * @static\n * @param {string} - the versioned name is assumed to be\n * vendor-list-v[VERSION].json where [VERSION] will be replaced with the\n * specified version. But it could be different... if you want just make\n * sure to include the [VERSION] macro if you have a numbering scheme, it's a\n * simple string substitution.\n *\n * eg.\n * ```javascript\n * GVL.baseUrl = \"http://www.mydomain.com/iabcmp/\";\n * GVL.versionedFilename = \"vendorlist?getVersion=[VERSION]\";\n * ```\n */\n static versionedFilename = 'archives/vendor-list-v[VERSION].json';\n /**\n * @param {string} - Translations of the names and descriptions for Purposes,\n * Special Purposes, Features, and Special Features to non-English languages\n * are contained in a file where attributes containing English content\n * (except vendor declaration information) are translated. The iab publishes\n * one following the scheme below where the LANG is the iso639-1 language\n * code. For a list of available translations\n * [please go here](https://register.consensu.org/Translation).\n *\n * eg.\n * ```javascript\n * GVL.baseUrl = \"http://www.mydomain.com/iabcmp/\";\n * GVL.languageFilename = \"purposes?getPurposes=[LANG]\";\n * ```\n */\n static languageFilename = 'purposes-[LANG].json';\n /**\n * @param {Promise} resolved when this GVL object is populated with the data\n * or rejected if there is an error.\n */\n readyPromise;\n /**\n * @param {number} gvlSpecificationVersion - schema version for the GVL that is used\n */\n gvlSpecificationVersion;\n /**\n * @param {number} incremented with each published file change\n */\n vendorListVersion;\n /**\n * @param {number} tcfPolicyVersion - The TCF MO will increment this value\n * whenever a GVL change (such as adding a new Purpose or Feature or a change\n * in Purpose wording) legally invalidates existing TC Strings and requires\n * CMPs to re-establish transparency and consent from users. If the policy\n * version number in the latest GVL is different from the value in your TC\n * String, then you need to re-establish transparency and consent for that\n * user. A version 1 format TC String is considered to have a version value\n * of 1.\n */\n tcfPolicyVersion;\n /**\n * @param {string | Date} lastUpdated - the date in which the vendor list\n * json file was last updated.\n */\n lastUpdated;\n /**\n * @param {IntMap} a collection of [[Purpose]]s\n */\n purposes;\n /**\n * @param {IntMap} a collection of [[Purpose]]s\n */\n specialPurposes;\n /**\n * @param {IntMap} a collection of [[Feature]]s\n */\n features;\n /**\n * @param {IntMap} a collection of [[Feature]]s\n */\n specialFeatures;\n /**\n * @param {boolean} internal reference of when the GVL is ready to be used\n */\n isReady_ = false;\n /**\n * @param {IntMap} a collection of [[Vendor]]s\n */\n vendors_;\n vendorIds;\n /**\n * @param {IntMap} a collection of [[Vendor]]. Used as a backup if a whitelist is sets\n */\n fullVendorList;\n /**\n * @param {ByPurposeVendorMap} vendors by purpose\n */\n byPurposeVendorMap;\n /**\n * @param {IDSetMap} vendors by special purpose\n */\n bySpecialPurposeVendorMap;\n /**\n * @param {IDSetMap} vendors by feature\n */\n byFeatureVendorMap;\n /**\n * @param {IDSetMap} vendors by special feature\n */\n bySpecialFeatureVendorMap;\n /**\n * @param {IntMap} a collection of [[Stack]]s\n */\n stacks;\n /**\n * @param {IntMap} a collection of [[DataCategory]]s\n */\n dataCategories;\n lang_;\n isLatest = false;\n /**\n * @param {VersionOrVendorList} [versionOrVendorList] - can be either a\n * [[VendorList]] object or a version number represented as a string or\n * number to download. If nothing is passed the latest version of the GVL\n * will be loaded\n */\n constructor(versionOrVendorList) {\n super();\n /**\n * should have been configured before and instance was created and will\n * persist through the app\n */\n let url = GVL.baseUrl;\n this.lang_ = GVL.DEFAULT_LANGUAGE;\n if (this.isVendorList(versionOrVendorList)) {\n this.populate(versionOrVendorList);\n this.readyPromise = Promise.resolve();\n }\n else {\n if (!url) {\n throw new GVLError('must specify GVL.baseUrl before loading GVL json');\n }\n if (versionOrVendorList > 0) {\n const version = versionOrVendorList;\n if (GVL.CACHE.has(version)) {\n this.populate(GVL.CACHE.get(version));\n this.readyPromise = Promise.resolve();\n }\n else {\n // load version specified\n url += GVL.versionedFilename.replace('[VERSION]', String(version));\n this.readyPromise = this.fetchJson(url);\n }\n }\n else {\n /**\n * whatever it is (or isn't)... it doesn't matter we'll just get the\n * latest. In this case we may have cached the latest version at key 0.\n * If we have then we'll just use that instead of making a request.\n * Otherwise we'll have to load it (and then we'll cache it for next\n * time)\n */\n if (GVL.CACHE.has(GVL.LATEST_CACHE_KEY)) {\n this.populate(GVL.CACHE.get(GVL.LATEST_CACHE_KEY));\n this.readyPromise = Promise.resolve();\n }\n else {\n this.isLatest = true;\n this.readyPromise = this.fetchJson(url + GVL.latestFilename);\n }\n }\n }\n }\n /**\n * emptyLanguageCache\n *\n * @param {string} [lang] - Optional ISO 639-1 langauge code to remove from\n * the cache. Should be one of the languages in GVL.consentLanguages set.\n * If not then the whole cache will be deleted.\n * @return {boolean} - true if anything was deleted from the cache\n */\n static emptyLanguageCache(lang) {\n let retr = false;\n if (lang === undefined && GVL.LANGUAGE_CACHE.size > 0) {\n GVL.LANGUAGE_CACHE = new Map();\n retr = true;\n }\n else if (typeof lang === 'string' && this.consentLanguages.has(lang.toUpperCase())) {\n GVL.LANGUAGE_CACHE.delete(lang.toUpperCase());\n retr = true;\n }\n return retr;\n }\n /**\n * emptyCache\n *\n * @param {number} [vendorListVersion] - version of the vendor list to delete\n * from the cache. If none is specified then the whole cache is deleted.\n * @return {boolean} - true if anything was deleted from the cache\n */\n static emptyCache(vendorListVersion) {\n let retr = false;\n if (Number.isInteger(vendorListVersion) && vendorListVersion >= 0) {\n GVL.CACHE.delete(vendorListVersion);\n retr = true;\n }\n else if (vendorListVersion === undefined) {\n GVL.CACHE = new Map();\n retr = true;\n }\n return retr;\n }\n cacheLanguage() {\n if (!GVL.LANGUAGE_CACHE.has(this.lang_)) {\n GVL.LANGUAGE_CACHE.set(this.lang_, {\n purposes: this.purposes,\n specialPurposes: this.specialPurposes,\n features: this.features,\n specialFeatures: this.specialFeatures,\n stacks: this.stacks,\n dataCategories: this.dataCategories,\n });\n }\n }\n async fetchJson(url) {\n try {\n this.populate(await Json.fetch(url));\n }\n catch (err) {\n throw new GVLError(err.message);\n }\n }\n /**\n * getJson - Method for getting the JSON that was downloaded to created this\n * `GVL` object\n *\n * @return {VendorList} - The basic JSON structure without the extra\n * functionality and methods of this class.\n */\n getJson() {\n return JSON.parse(JSON.stringify({\n gvlSpecificationVersion: this.gvlSpecificationVersion,\n vendorListVersion: this.vendorListVersion,\n tcfPolicyVersion: this.tcfPolicyVersion,\n lastUpdated: this.lastUpdated,\n purposes: this.purposes,\n specialPurposes: this.specialPurposes,\n features: this.features,\n specialFeatures: this.specialFeatures,\n stacks: this.stacks,\n dataCategories: this.dataCategories,\n vendors: this.fullVendorList,\n }));\n }\n /**\n * changeLanguage - retrieves the purpose language translation and sets the\n * internal language variable\n *\n * @param {string} lang - ISO 639-1 langauge code to change language to\n * @return {Promise} - returns the `readyPromise` and\n * resolves when this GVL is populated with the data from the language file.\n */\n async changeLanguage(lang) {\n const langUpper = lang.toUpperCase();\n if (GVL.consentLanguages.has(langUpper)) {\n if (langUpper !== this.lang_) {\n this.lang_ = langUpper;\n if (GVL.LANGUAGE_CACHE.has(langUpper)) {\n const cached = GVL.LANGUAGE_CACHE.get(langUpper);\n for (const prop in cached) {\n if (cached.hasOwnProperty(prop)) {\n this[prop] = cached[prop];\n }\n }\n }\n else {\n // load Language specified\n const url = GVL.baseUrl + GVL.languageFilename.replace('[LANG]', lang);\n try {\n await this.fetchJson(url);\n this.cacheLanguage();\n }\n catch (err) {\n throw new GVLError('unable to load language: ' + err.message);\n }\n }\n }\n }\n else {\n throw new GVLError(`unsupported language ${lang}`);\n }\n }\n get language() {\n return this.lang_;\n }\n isVendorList(gvlObject) {\n return gvlObject !== undefined && gvlObject.vendors !== undefined;\n }\n populate(gvlObject) {\n /**\n * these are populated regardless of whether it's a Declarations file or\n * a VendorList\n */\n this.purposes = gvlObject.purposes;\n this.specialPurposes = gvlObject.specialPurposes;\n this.features = gvlObject.features;\n this.specialFeatures = gvlObject.specialFeatures;\n this.stacks = gvlObject.stacks;\n this.dataCategories = gvlObject.dataCategories;\n if (this.isVendorList(gvlObject)) {\n this.gvlSpecificationVersion = gvlObject.gvlSpecificationVersion;\n this.tcfPolicyVersion = gvlObject.tcfPolicyVersion;\n this.vendorListVersion = gvlObject.vendorListVersion;\n this.lastUpdated = gvlObject.lastUpdated;\n if (typeof this.lastUpdated === 'string') {\n this.lastUpdated = new Date(this.lastUpdated);\n }\n this.vendors_ = gvlObject.vendors;\n this.fullVendorList = gvlObject.vendors;\n this.mapVendors();\n this.isReady_ = true;\n if (this.isLatest) {\n /**\n * If the \"LATEST\" was requested then this flag will be set to true.\n * In that case we'll cache the GVL at the special key\n */\n GVL.CACHE.set(GVL.LATEST_CACHE_KEY, this.getJson());\n }\n /**\n * Whether or not it's the \"LATEST\" we'll cache the gvl at the version it\n * is declared to be (if it's not already). to avoid downloading it again\n * in the future.\n */\n if (!GVL.CACHE.has(this.vendorListVersion)) {\n GVL.CACHE.set(this.vendorListVersion, this.getJson());\n }\n }\n this.cacheLanguage();\n }\n mapVendors(vendorIds) {\n // create new instances of the maps\n this.byPurposeVendorMap = {};\n this.bySpecialPurposeVendorMap = {};\n this.byFeatureVendorMap = {};\n this.bySpecialFeatureVendorMap = {};\n // initializes data structure for purpose map\n Object.keys(this.purposes).forEach((purposeId) => {\n this.byPurposeVendorMap[purposeId] = {\n legInt: new Set(),\n consent: new Set(),\n flexible: new Set(),\n };\n });\n // initializes data structure for special purpose map\n Object.keys(this.specialPurposes).forEach((purposeId) => {\n this.bySpecialPurposeVendorMap[purposeId] = new Set();\n });\n // initializes data structure for feature map\n Object.keys(this.features).forEach((featureId) => {\n this.byFeatureVendorMap[featureId] = new Set();\n });\n // initializes data structure for feature map\n Object.keys(this.specialFeatures).forEach((featureId) => {\n this.bySpecialFeatureVendorMap[featureId] = new Set();\n });\n if (!Array.isArray(vendorIds)) {\n vendorIds = Object.keys(this.fullVendorList).map((vId) => +vId);\n }\n this.vendorIds = new Set(vendorIds);\n // assigns vendor ids to their respective maps\n this.vendors_ = vendorIds.reduce((vendors, vendorId) => {\n const vendor = this.vendors_[String(vendorId)];\n if (vendor && vendor.deletedDate === undefined) {\n vendor.purposes.forEach((purposeId) => {\n const purpGroup = this.byPurposeVendorMap[String(purposeId)];\n purpGroup.consent.add(vendorId);\n });\n vendor.specialPurposes.forEach((purposeId) => {\n this.bySpecialPurposeVendorMap[String(purposeId)].add(vendorId);\n });\n vendor.legIntPurposes.forEach((purposeId) => {\n this.byPurposeVendorMap[String(purposeId)].legInt.add(vendorId);\n });\n // could not be there\n if (vendor.flexiblePurposes) {\n vendor.flexiblePurposes.forEach((purposeId) => {\n this.byPurposeVendorMap[String(purposeId)].flexible.add(vendorId);\n });\n }\n vendor.features.forEach((featureId) => {\n this.byFeatureVendorMap[String(featureId)].add(vendorId);\n });\n vendor.specialFeatures.forEach((featureId) => {\n this.bySpecialFeatureVendorMap[String(featureId)].add(vendorId);\n });\n vendors[vendorId] = vendor;\n }\n return vendors;\n }, {});\n }\n getFilteredVendors(purposeOrFeature, id, subType, special) {\n const properPurposeOrFeature = purposeOrFeature.charAt(0).toUpperCase() + purposeOrFeature.slice(1);\n let vendorSet;\n const retr = {};\n if (purposeOrFeature === 'purpose' && subType) {\n vendorSet = this['by' + properPurposeOrFeature + 'VendorMap'][String(id)][subType];\n }\n else {\n vendorSet = this['by' + (special ? 'Special' : '') + properPurposeOrFeature + 'VendorMap'][String(id)];\n }\n vendorSet.forEach((vendorId) => {\n retr[String(vendorId)] = this.vendors[String(vendorId)];\n });\n return retr;\n }\n /**\n * getVendorsWithConsentPurpose\n *\n * @param {number} purposeId\n * @return {IntMap} - list of vendors that have declared the consent purpose id\n */\n getVendorsWithConsentPurpose(purposeId) {\n return this.getFilteredVendors('purpose', purposeId, 'consent');\n }\n /**\n * getVendorsWithLegIntPurpose\n *\n * @param {number} purposeId\n * @return {IntMap} - list of vendors that have declared the legInt (Legitimate Interest) purpose id\n */\n getVendorsWithLegIntPurpose(purposeId) {\n return this.getFilteredVendors('purpose', purposeId, 'legInt');\n }\n /**\n * getVendorsWithFlexiblePurpose\n *\n * @param {number} purposeId\n * @return {IntMap} - list of vendors that have declared the flexible purpose id\n */\n getVendorsWithFlexiblePurpose(purposeId) {\n return this.getFilteredVendors('purpose', purposeId, 'flexible');\n }\n /**\n * getVendorsWithSpecialPurpose\n *\n * @param {number} specialPurposeId\n * @return {IntMap} - list of vendors that have declared the special purpose id\n */\n getVendorsWithSpecialPurpose(specialPurposeId) {\n return this.getFilteredVendors('purpose', specialPurposeId, undefined, true);\n }\n /**\n * getVendorsWithFeature\n *\n * @param {number} featureId\n * @return {IntMap} - list of vendors that have declared the feature id\n */\n getVendorsWithFeature(featureId) {\n return this.getFilteredVendors('feature', featureId);\n }\n /**\n * getVendorsWithSpecialFeature\n *\n * @param {number} specialFeatureId\n * @return {IntMap} - list of vendors that have declared the special feature id\n */\n getVendorsWithSpecialFeature(specialFeatureId) {\n return this.getFilteredVendors('feature', specialFeatureId, undefined, true);\n }\n /**\n * vendors\n *\n * @return {IntMap} - the list of vendors as it would on the JSON file\n * except if `narrowVendorsTo` was called, it would be that narrowed list\n */\n get vendors() {\n return this.vendors_;\n }\n /**\n * narrowVendorsTo - narrows vendors represented in this GVL to the list of ids passed in\n *\n * @param {number[]} vendorIds - list of ids to narrow this GVL to\n * @return {void}\n */\n narrowVendorsTo(vendorIds) {\n this.mapVendors(vendorIds);\n }\n /**\n * isReady - Whether or not this instance is ready to be used. This will be\n * immediately and synchronously true if a vendorlist object is passed into\n * the constructor or once the JSON vendorllist is retrieved.\n *\n * @return {boolean} whether or not the instance is ready to be interacted\n * with and all the data is populated\n */\n get isReady() {\n return this.isReady_;\n }\n /**\n * clone - overrides base `clone()` method since GVL is a special class that\n * represents a JSON structure with some additional functionality.\n *\n * @return {GVL}\n */\n clone() {\n const result = new GVL(this.getJson());\n /*\n * If the current language of the GVL is not the default language, we set the language of\n * the clone to the current language since a new GVL is always created with the default\n * language. */\n if (this.lang_ !== GVL.DEFAULT_LANGUAGE) {\n /*\n * Since the GVL language was changed, this means that an asynchronous changeLanguage\n * call was made prior to cloning the GVL. The new language specified has been cached\n * by the GVL and this changeLanguage call made as a part of cloning the GVL will be\n * synchronous. The code will look for the language definitions in the cache instead\n * of creating a http request. */\n result.changeLanguage(this.lang_);\n }\n return result;\n }\n static isInstanceOf(questionableInstance) {\n const isSo = typeof questionableInstance === 'object';\n return (isSo && typeof questionableInstance.narrowVendorsTo === 'function');\n }\n}\n","import { Cloneable } from './Cloneable.js';\nimport { TCModelError } from './errors/index.js';\nimport { GVL } from './GVL.js';\nimport { PurposeRestrictionVector, Vector } from './model/index.js';\nexport class TCModel extends Cloneable {\n /**\n * Set of available consent languages published by the IAB\n */\n static consentLanguages = GVL.consentLanguages;\n isServiceSpecific_ = false;\n supportOOB_ = true;\n useNonStandardStacks_ = false;\n purposeOneTreatment_ = false;\n publisherCountryCode_ = 'AA';\n version_ = 2;\n consentScreen_ = 0;\n policyVersion_ = 2;\n consentLanguage_ = 'EN';\n cmpId_ = 0;\n cmpVersion_ = 0;\n vendorListVersion_ = 0;\n numCustomPurposes_ = 0;\n // Member Variable for GVL\n gvl_;\n created;\n lastUpdated;\n /**\n * The TCF designates certain Features as special, that is, a CMP must afford\n * the user a means to opt in to their use. These Special Features are\n * published and numbered in the GVL separately from normal Features.\n * Provides for up to 12 special features.\n */\n specialFeatureOptins = new Vector();\n /**\n * Renamed from `PurposesAllowed` in TCF v1.1\n * The user’s consent value for each Purpose established on the legal basis\n * of consent. Purposes are published in the Global Vendor List (see. [[GVL]]).\n */\n purposeConsents = new Vector();\n /**\n * The user’s permission for each Purpose established on the legal basis of\n * legitimate interest. If the user has exercised right-to-object for a\n * purpose.\n */\n purposeLegitimateInterests = new Vector();\n /**\n * The user’s consent value for each Purpose established on the legal basis\n * of consent, for the publisher. Purposes are published in the Global\n * Vendor List.\n */\n publisherConsents = new Vector();\n /**\n * The user’s permission for each Purpose established on the legal basis of\n * legitimate interest. If the user has exercised right-to-object for a\n * purpose.\n */\n publisherLegitimateInterests = new Vector();\n /**\n * The user’s consent value for each Purpose established on the legal basis\n * of consent, for the publisher. Purposes are published in the Global\n * Vendor List.\n */\n publisherCustomConsents = new Vector();\n /**\n * The user’s permission for each Purpose established on the legal basis of\n * legitimate interest. If the user has exercised right-to-object for a\n * purpose that is established in the publisher's custom purposes.\n */\n publisherCustomLegitimateInterests = new Vector();\n /**\n * set by a publisher if they wish to collect consent and LI Transparency for\n * purposes outside of the TCF\n */\n customPurposes;\n /**\n * Each [[Vendor]] is keyed by id. Their consent value is true if it is in\n * the Vector\n */\n vendorConsents = new Vector();\n /**\n * Each [[Vendor]] is keyed by id. Whether their Legitimate Interests\n * Disclosures have been established is stored as boolean.\n * see: [[Vector]]\n */\n vendorLegitimateInterests = new Vector();\n /**\n * The value included for disclosed vendors signals which vendors have been\n * disclosed to the user in the interface surfaced by the CMP. This section\n * content is required when writing a TC string to the global (consensu)\n * scope. When a CMP has read from and is updating a TC string from the\n * global consensu.org storage, the CMP MUST retain the existing disclosure\n * information and only add information for vendors that it has disclosed\n * that had not been disclosed by other CMPs in prior interactions with this\n * device/user agent.\n */\n vendorsDisclosed = new Vector();\n /**\n * Signals which vendors the publisher permits to use OOB legal bases.\n */\n vendorsAllowed = new Vector();\n publisherRestrictions = new PurposeRestrictionVector();\n /**\n * Constructs the TCModel. Passing a [[GVL]] is optional when constructing\n * as this TCModel may be constructed from decoding an existing encoded\n * TCString.\n *\n * @param {GVL} [gvl]\n */\n constructor(gvl) {\n super();\n if (gvl) {\n this.gvl = gvl;\n }\n this.updated();\n }\n /**\n * sets the [[GVL]] with side effects of also setting the `vendorListVersion`, `policyVersion`, and `consentLanguage`\n * @param {GVL} gvl\n */\n set gvl(gvl) {\n /**\n * set the reference, but make sure it's our GVL wrapper class.\n */\n if (!(GVL.isInstanceOf(gvl))) {\n gvl = new GVL(gvl);\n }\n this.gvl_ = gvl;\n this.publisherRestrictions.gvl = gvl;\n }\n /**\n * @return {GVL} the gvl instance set on this TCModel instance\n */\n get gvl() {\n return this.gvl_;\n }\n /**\n * @param {number} integer - A unique ID will be assigned to each Consent\n * Manager Provider (CMP) from the iab.\n *\n * @throws {TCModelError} if the value is not an integer greater than 1 as those are not valid.\n */\n set cmpId(integer) {\n integer = Number(integer);\n if (Number.isInteger(integer) && integer > 1) {\n this.cmpId_ = integer;\n }\n else {\n throw new TCModelError('cmpId', integer);\n }\n }\n get cmpId() {\n return this.cmpId_;\n }\n /**\n * Each change to an operating CMP should receive a\n * new version number, for logging proof of consent. CmpVersion defined by\n * each CMP.\n *\n * @param {number} integer\n *\n * @throws {TCModelError} if the value is not an integer greater than 1 as those are not valid.\n */\n set cmpVersion(integer) {\n integer = Number(integer);\n if (Number.isInteger(integer) && integer > -1) {\n this.cmpVersion_ = integer;\n }\n else {\n throw new TCModelError('cmpVersion', integer);\n }\n }\n get cmpVersion() {\n return this.cmpVersion_;\n }\n /**\n * The screen number is CMP and CmpVersion\n * specific, and is for logging proof of consent.(For example, a CMP could\n * keep records so that a publisher can request information about the context\n * in which consent was gathered.)\n *\n * @param {number} integer\n *\n * @throws {TCModelError} if the value is not an integer greater than 0 as those are not valid.\n */\n set consentScreen(integer) {\n integer = Number(integer);\n if (Number.isInteger(integer) && integer > -1) {\n this.consentScreen_ = integer;\n }\n else {\n throw new TCModelError('consentScreen', integer);\n }\n }\n get consentScreen() {\n return this.consentScreen_;\n }\n /**\n * @param {string} lang - [two-letter ISO 639-1 language\n * code](http://www.loc.gov/standards/iso639-2/php/code_list.php) in which\n * the CMP UI was presented\n *\n * @throws {TCModelError} if the value is not a length-2 string of alpha characters\n */\n set consentLanguage(lang) {\n this.consentLanguage_ = lang;\n }\n get consentLanguage() {\n return this.consentLanguage_;\n }\n /**\n * @param {string} countryCode - [two-letter ISO 3166-1 alpha-2 country\n * code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the publisher,\n * determined by the CMP-settings of the publisher.\n *\n * @throws {TCModelError} if the value is not a length-2 string of alpha characters\n */\n set publisherCountryCode(countryCode) {\n if (/^([A-z]){2}$/.test(countryCode)) {\n this.publisherCountryCode_ = countryCode.toUpperCase();\n }\n else {\n throw new TCModelError('publisherCountryCode', countryCode);\n }\n }\n get publisherCountryCode() {\n return this.publisherCountryCode_;\n }\n /**\n * Version of the GVL used to create this TCModel. Global\n * Vendor List versions will be released periodically.\n *\n * @param {number} integer\n *\n * @throws {TCModelError} if the value is not an integer greater than 0 as those are not valid.\n */\n set vendorListVersion(integer) {\n /**\n * first coerce to a number via leading '+' then take the integer value by\n * bitshifting to the right. This works on all types in JavaScript and if\n * it's not valid then value will be 0.\n */\n integer = Number(integer) >> 0;\n if (integer < 0) {\n throw new TCModelError('vendorListVersion', integer);\n }\n else {\n this.vendorListVersion_ = integer;\n }\n }\n get vendorListVersion() {\n if (this.gvl) {\n return this.gvl.vendorListVersion;\n }\n else {\n return this.vendorListVersion_;\n }\n }\n /**\n * From the corresponding field in the GVL that was\n * used for obtaining consent. A new policy version invalidates existing\n * strings and requires CMPs to re-establish transparency and consent from\n * users.\n *\n * If a TCF policy version number is different from the one from the latest\n * GVL, the CMP must re-establish transparency and consent.\n *\n * @param {number} num - You do not need to set this. This comes\n * directly from the [[GVL]].\n *\n */\n set policyVersion(num) {\n this.policyVersion_ = parseInt(num, 10);\n if (this.policyVersion_ < 0) {\n throw new TCModelError('policyVersion', num);\n }\n }\n get policyVersion() {\n if (this.gvl) {\n return this.gvl.tcfPolicyVersion;\n }\n else {\n return this.policyVersion_;\n }\n }\n set version(num) {\n this.version_ = parseInt(num, 10);\n }\n get version() {\n return this.version_;\n }\n /**\n * Whether the signals encoded in this TC String were from site-specific\n * storage `true` versus ‘global’ consensu.org shared storage `false`. A\n * string intended to be stored in global/shared scope but the CMP is unable\n * to store due to a user agent not accepting third-party cookies would be\n * considered site-specific `true`.\n *\n * @param {boolean} bool - value to set. Some changes to other fields in this\n * model will automatically change this value like adding publisher\n * restrictions.\n */\n set isServiceSpecific(bool) {\n this.isServiceSpecific_ = bool;\n }\n get isServiceSpecific() {\n return this.isServiceSpecific_;\n }\n /**\n * Non-standard stacks means that a CMP is using publisher-customized stack\n * descriptions. Stacks (in terms of purposes in a stack) are pre-set by the\n * IAB. As are titles. Descriptions are pre-set, but publishers can customize\n * them. If they do, they need to set this bit to indicate that they've\n * customized descriptions.\n *\n * @param {boolean} bool - value to set\n */\n set useNonStandardStacks(bool) {\n this.useNonStandardStacks_ = bool;\n }\n get useNonStandardStacks() {\n return this.useNonStandardStacks_;\n }\n /**\n * Whether or not this publisher supports OOB signaling. On Global TC String\n * OOB Vendors Disclosed will be included if the publish wishes to no allow\n * these vendors they should set this to false.\n * @param {boolean} bool - value to set\n */\n set supportOOB(bool) {\n this.supportOOB_ = bool;\n }\n get supportOOB() {\n return this.supportOOB_;\n }\n /**\n * `false` There is no special Purpose 1 status.\n * Purpose 1 was disclosed normally (consent) as expected by Policy. `true`\n * Purpose 1 not disclosed at all. CMPs use PublisherCC to indicate the\n * publisher’s country of establishment to help Vendors determine whether the\n * vendor requires Purpose 1 consent. In global scope TC strings, this field\n * must always have a value of `false`. When a CMP encounters a global scope\n * string with `purposeOneTreatment=true` then that string should be\n * considered invalid and the CMP must re-establish transparency and consent.\n *\n * @param {boolean} bool\n */\n set purposeOneTreatment(bool) {\n this.purposeOneTreatment_ = bool;\n }\n get purposeOneTreatment() {\n return this.purposeOneTreatment_;\n }\n /**\n * setAllVendorConsents - sets all vendors on the GVL Consent (true)\n *\n * @return {void}\n */\n setAllVendorConsents() {\n this.vendorConsents.set(this.gvl.vendors);\n }\n /**\n * unsetAllVendorConsents - unsets all vendors on the GVL Consent (false)\n *\n * @return {void}\n */\n unsetAllVendorConsents() {\n this.vendorConsents.empty();\n }\n /**\n * setAllVendorsDisclosed - sets all vendors on the GVL Vendors Disclosed (true)\n *\n * @return {void}\n */\n setAllVendorsDisclosed() {\n this.vendorsDisclosed.set(this.gvl.vendors);\n }\n /**\n * unsetAllVendorsDisclosed - unsets all vendors on the GVL Consent (false)\n *\n * @return {void}\n */\n unsetAllVendorsDisclosed() {\n this.vendorsDisclosed.empty();\n }\n /**\n * setAllVendorsAllowed - sets all vendors on the GVL Consent (true)\n *\n * @return {void}\n */\n setAllVendorsAllowed() {\n this.vendorsAllowed.set(this.gvl.vendors);\n }\n /**\n * unsetAllVendorsAllowed - unsets all vendors on the GVL Consent (false)\n *\n * @return {void}\n */\n unsetAllVendorsAllowed() {\n this.vendorsAllowed.empty();\n }\n /**\n * setAllVendorLegitimateInterests - sets all vendors on the GVL LegitimateInterests (true)\n *\n * @return {void}\n */\n setAllVendorLegitimateInterests() {\n this.vendorLegitimateInterests.set(this.gvl.vendors);\n }\n /**\n * unsetAllVendorLegitimateInterests - unsets all vendors on the GVL LegitimateInterests (false)\n *\n * @return {void}\n */\n unsetAllVendorLegitimateInterests() {\n this.vendorLegitimateInterests.empty();\n }\n /**\n * setAllPurposeConsents - sets all purposes on the GVL Consent (true)\n *\n * @return {void}\n */\n setAllPurposeConsents() {\n this.purposeConsents.set(this.gvl.purposes);\n }\n /**\n * unsetAllPurposeConsents - unsets all purposes on the GVL Consent (false)\n *\n * @return {void}\n */\n unsetAllPurposeConsents() {\n this.purposeConsents.empty();\n }\n /**\n * setAllPurposeLegitimateInterests - sets all purposes on the GVL LI Transparency (true)\n *\n * @return {void}\n */\n setAllPurposeLegitimateInterests() {\n this.purposeLegitimateInterests.set(this.gvl.purposes);\n }\n /**\n * unsetAllPurposeLegitimateInterests - unsets all purposes on the GVL LI Transparency (false)\n *\n * @return {void}\n */\n unsetAllPurposeLegitimateInterests() {\n this.purposeLegitimateInterests.empty();\n }\n /**\n * setAllSpecialFeatureOptins - sets all special featuresOptins on the GVL (true)\n *\n * @return {void}\n */\n setAllSpecialFeatureOptins() {\n this.specialFeatureOptins.set(this.gvl.specialFeatures);\n }\n /**\n * unsetAllSpecialFeatureOptins - unsets all special featuresOptins on the GVL (true)\n *\n * @return {void}\n */\n unsetAllSpecialFeatureOptins() {\n this.specialFeatureOptins.empty();\n }\n setAll() {\n this.setAllVendorConsents();\n this.setAllPurposeLegitimateInterests();\n this.setAllSpecialFeatureOptins();\n this.setAllPurposeConsents();\n this.setAllVendorLegitimateInterests();\n }\n unsetAll() {\n this.unsetAllVendorConsents();\n this.unsetAllPurposeLegitimateInterests();\n this.unsetAllSpecialFeatureOptins();\n this.unsetAllPurposeConsents();\n this.unsetAllVendorLegitimateInterests();\n }\n get numCustomPurposes() {\n let len = this.numCustomPurposes_;\n if (typeof this.customPurposes === 'object') {\n /**\n * Keys are not guaranteed to be in order and likewise there is no\n * requirement that the customPurposes be non-sparse. So we have to sort\n * and take the highest value. Even if the set only contains 3 purposes\n * but goes to ID 6 we need to set the number to 6 for the encoding to\n * work properly since it's positional.\n */\n const purposeIds = Object.keys(this.customPurposes)\n .sort((a, b) => Number(a) - Number(b));\n len = parseInt(purposeIds.pop(), 10);\n }\n return len;\n }\n set numCustomPurposes(num) {\n this.numCustomPurposes_ = parseInt(num, 10);\n if (this.numCustomPurposes_ < 0) {\n throw new TCModelError('numCustomPurposes', num);\n }\n }\n /**\n * updated - updates the created and lastUpdated dates with a 'now' day-level UTC timestamp\n *\n * @return {void}\n */\n updated() {\n const date = new Date();\n const utcDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n this.created = utcDate;\n this.lastUpdated = utcDate;\n }\n}\n","import { Base64Url, BitLength, SegmentEncoder, SegmentSequence, SemanticPreEncoder, } from './encoder/index.js';\nimport { SegmentIDs } from './model/index.js';\nimport { IntEncoder } from './encoder/field/IntEncoder.js';\nimport { TCModel } from './TCModel.js';\n/**\n * Main class for encoding and decoding a\n * TCF Transparency and Consent String\n */\nexport class TCString {\n /**\n * encodes a model into a TCString\n *\n * @param {TCModel} tcModel - model to convert into encoded string\n * @param {EncodingOptions} options - for encoding options other than default\n * @return {string} - base64url encoded Transparency and Consent String\n */\n static encode(tcModel, options) {\n let out = '';\n let sequence;\n tcModel = SemanticPreEncoder.process(tcModel, options);\n /**\n * If they pass in a special segment sequence.\n */\n if (Array.isArray(options?.segments)) {\n sequence = options.segments;\n }\n else {\n sequence = new SegmentSequence(tcModel, options)['' + tcModel.version];\n }\n sequence.forEach((segment, idx) => {\n let dotMaybe = '';\n if (idx < sequence.length - 1) {\n dotMaybe = '.';\n }\n out += SegmentEncoder.encode(tcModel, segment) + dotMaybe;\n });\n return out;\n }\n /**\n * Decodes a string into a TCModel\n *\n * @param {string} encodedTCString - base64url encoded Transparency and\n * Consent String to decode - can also be a single or group of segments of\n * the string\n * @param {string} [tcModel] - model to enhance with the information. If\n * none is passed a new instance of TCModel will be created.\n * @return {TCModel} - Returns populated TCModel\n */\n static decode(encodedTCString, tcModel) {\n const segments = encodedTCString.split('.');\n const len = segments.length;\n if (!tcModel) {\n tcModel = new TCModel();\n }\n for (let i = 0; i < len; i++) {\n const segString = segments[i];\n /**\n * first char will contain 6 bits, we only need the first 3. In version 1\n * and 2 of the TC string there is no segment type for the CORE string.\n * Instead the first 6 bits are reserved for the encoding version, but\n * because we're only on a maximum of encoding version 2 the first 3 bits\n * in the core segment will evaluate to 0.\n */\n const firstChar = Base64Url.decode(segString.charAt(0));\n const segTypeBits = firstChar.substr(0, BitLength.segmentType);\n const segment = SegmentIDs.ID_TO_KEY[IntEncoder.decode(segTypeBits, BitLength.segmentType).toString()];\n SegmentEncoder.decode(segString, tcModel, segment);\n }\n return tcModel;\n }\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nimport { Command } from './Command.js';\nimport { GVL } from '@mol-ads/tcf-core';\n/**\n * Gets a version of the Global Vendors List\n */\nexport class GetVendorListCommand extends Command {\n respond() {\n const tcModel = CmpApiModel.tcModel;\n const tcModelVersion = tcModel.vendorListVersion;\n let gvl;\n if (this.param === undefined) {\n this.param = tcModelVersion;\n }\n if (this.param === tcModelVersion && tcModel.gvl) {\n gvl = tcModel.gvl;\n }\n else {\n gvl = new GVL(this.param);\n }\n gvl.readyPromise.then(() => {\n this.invokeCallback(gvl.getJson());\n });\n }\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nimport { GetTCDataCommand } from './GetTCDataCommand.js';\nexport class AddEventListenerCommand extends GetTCDataCommand {\n respond() {\n this.listenerId = CmpApiModel.eventQueue.add({\n callback: this.callback,\n param: this.param,\n next: this.next,\n });\n super.respond();\n }\n}\n","import { CmpApiModel } from '../CmpApiModel.js';\nimport { Command } from './Command.js';\nexport class RemoveEventListenerCommand extends Command {\n respond() {\n this.invokeCallback(CmpApiModel.eventQueue.remove(this.param));\n }\n}\n","import { PingCommand } from './PingCommand.js';\nimport { GetTCDataCommand } from './GetTCDataCommand.js';\nimport { GetInAppTCDataCommand } from './GetInAppTCDataCommand.js';\nimport { GetVendorListCommand } from './GetVendorListCommand.js';\nimport { AddEventListenerCommand } from './AddEventListenerCommand.js';\nimport { RemoveEventListenerCommand } from './RemoveEventListenerCommand.js';\nimport { TCFCommand } from './TCFCommand.js';\nexport class CommandMap {\n static [TCFCommand.PING] = PingCommand;\n static [TCFCommand.GET_TC_DATA] = GetTCDataCommand;\n static [TCFCommand.GET_IN_APP_TC_DATA] = GetInAppTCDataCommand;\n static [TCFCommand.GET_VENDOR_LIST] = GetVendorListCommand;\n static [TCFCommand.ADD_EVENT_LISTENER] = AddEventListenerCommand;\n static [TCFCommand.REMOVE_EVENT_LISTENER] = RemoveEventListenerCommand;\n}\n","export class SupportedVersions {\n static set_ = new Set([0, 2, undefined, null]);\n static has(value) {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return this.set_.has(value);\n }\n}\n","import { TCFCommand } from './command/index.js';\nimport { CommandMap } from './command/CommandMap.js';\nimport { CmpApiModel } from './CmpApiModel.js';\nimport { Disabled } from './response/Disabled.js';\nimport { SupportedVersions } from './SupportedVersions.js';\nexport const API_KEY = '__tcfapi';\nexport class CallResponder {\n callQueue;\n customCommands;\n constructor(customCommands) {\n if (customCommands) {\n /**\n * The addEventListener command and removeEventListener are the only ones\n * that shouldn't be overwritten. The addEventListener command utilizes\n * getTCData command, so overridding the TCData response should happen\n * there.\n */\n let command = TCFCommand.ADD_EVENT_LISTENER;\n if (customCommands?.[command]) {\n throw new Error(`Built-In Custom Commmand for ${command} not allowed: Use ${TCFCommand.GET_TC_DATA} instead`);\n }\n command = TCFCommand.REMOVE_EVENT_LISTENER;\n if (customCommands?.[command]) {\n throw new Error(`Built-In Custom Commmand for ${command} not allowed`);\n }\n /**\n * If `getTCData` custom command handler is specified, we should use it\n * for `addEventListener` and `removeEventListener` commands.\n */\n if (customCommands?.[TCFCommand.GET_TC_DATA]) {\n customCommands[TCFCommand.ADD_EVENT_LISTENER] = customCommands[TCFCommand.GET_TC_DATA];\n customCommands[TCFCommand.REMOVE_EVENT_LISTENER] = customCommands[TCFCommand.GET_TC_DATA];\n }\n this.customCommands = customCommands;\n }\n /**\n * Attempt to grab the queue – we could call ping and see if it is the stub,\n * but instead we'll just a feature-detection method of just trying to get\n * a queue by calling the function with no parameters and see if we get a\n * queue back. If there is no stub or the stub doesn't return the queue by\n * calling with no arguments, then we'll just move on and create our\n * function.\n */\n try {\n // get queued commands\n this.callQueue = window[API_KEY]() || [];\n }\n catch (err) {\n this.callQueue = [];\n }\n finally {\n window[API_KEY] = this.apiCall.bind(this);\n this.purgeQueuedCalls();\n }\n }\n /**\n * Handler for all page call commands\n * @param {string} command\n * @param {number} version\n * @param {CommandCallback} callback\n * @param {any} params\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n apiCall(command, version, callback, ...params) {\n if (typeof command !== 'string') {\n callback(null, false);\n }\n else if (!SupportedVersions.has(version)) {\n /**\n * Loosely checking version here on purpose. If a string is passed\n * that's probably ok, we don't need strict adherence here.\n */\n callback(null, false);\n }\n else if (typeof callback !== 'function') {\n throw new Error('invalid callback function');\n }\n else if (CmpApiModel.disabled) {\n callback(new Disabled(), false);\n }\n else if (!this.isCustomCommand(command) && !this.isBuiltInCommand(command)) {\n /**\n * This check is here just because the call shouldn't be queued if it's\n * something we know isn't going to work. It's kind of like breaking off a bad\n * relationshipthe instant you know things are not going to work out\n * instead of letting it linger.\n */\n callback(null, false);\n }\n else if (this.isCustomCommand(command) && !this.isBuiltInCommand(command)) {\n this.customCommands[command](callback, ...params);\n }\n else if (command === TCFCommand.PING) {\n /**\n * if it's a ping we always respond right away regardless of our tcModel\n * status or other things.\n */\n if (this.isCustomCommand(command)) {\n new CommandMap[command](this.customCommands[command], params[0], null, callback);\n }\n else {\n new CommandMap[command](callback, params[0]);\n }\n /**\n * tcModel will be either:\n * 1. undefined - update has not been called\n * 2. null - gdpr does not apply\n * 3. Valid TCModel - gdpr applies and update was called\n */\n }\n else if (CmpApiModel.tcModel === undefined) {\n /**\n * If we are still waiting for the TC data to be set we can push this\n * onto the queue that we have and once the model is set it'll be called\n */\n this.callQueue.push([command, version, callback, ...params]);\n }\n else if (this.isCustomCommand(command) && this.isBuiltInCommand(command)) {\n new CommandMap[command](this.customCommands[command], params[0], null, callback);\n }\n else {\n /**\n * at this point we know the command exists and we are free to call it\n */\n new CommandMap[command](callback, params[0]);\n }\n }\n /**\n * purgeQueuedCalls - if there have been calls that are queued up this method\n * will go through and call them in a FIFO order\n *\n * @return {void}\n */\n purgeQueuedCalls() {\n const queueCopy = this.callQueue;\n this.callQueue = [];\n queueCopy.forEach((args) => {\n window[API_KEY](...args);\n });\n }\n /**\n * Checks to see if the command exists in the set of custom commands\n *\n * @param {string} command - command to check\n * @return {boolean} - whether or not this command is a custom command\n */\n isCustomCommand(command) {\n return ((this.customCommands && typeof this.customCommands[command] === 'function'));\n }\n /**\n * Checks to see if the command exists in the set of TCF Commands\n *\n * @param {string} command - command to check\n * @return {boolean} - whether or not this command is a built-in command\n */\n isBuiltInCommand(command) {\n return ((CommandMap[command] !== undefined));\n }\n}\n","import { CmpApiModel } from './CmpApiModel.js';\nimport { CmpStatus, DisplayStatus, EventStatus } from './status/index.js';\nimport { CallResponder } from './CallResponder.js';\nimport { TCString, TCModel } from '@mol-ads/tcf-core';\nimport { AdditionalModel } from './AdditionalModel.js';\nexport class CmpApi {\n callResponder;\n isServiceSpecific;\n numUpdates = 0;\n /**\n * @param {number} cmpId - IAB assigned CMP ID\n * @param {number} cmpVersion - integer version of the CMP\n * @param {boolean} isServiceSpecific - whether or not this cmp is configured to be service specific\n * @param {CustomCommands} [customCommands] - custom commands from the cmp\n */\n constructor(cmpId, cmpVersion, isServiceSpecific = false, customCommands) {\n this.throwIfInvalidInt(cmpId, 'cmpId', 2);\n this.throwIfInvalidInt(cmpVersion, 'cmpVersion', 0);\n CmpApiModel.cmpId = cmpId;\n CmpApiModel.cmpVersion = cmpVersion;\n CmpApiModel.tcfPolicyVersion = 2;\n this.isServiceSpecific = !!isServiceSpecific;\n this.callResponder = new CallResponder(customCommands);\n }\n throwIfInvalidInt(value, name, minValue) {\n if (!(typeof value === 'number' && Number.isInteger(value) && value >= minValue)) {\n throw new Error(`Invalid ${name}: ${value}`);\n }\n }\n /**\n * update - When the state of a CMP changes this function should be called\n * with the updated tc string and whether or not the UI is visible or not\n *\n * @param {string|null} encodedTCString - set a string to signal that\n * gdprApplies and that an encoded tc string is being passed. If GDPR does\n * not apply, set to null.\n * @param {boolean} uiVisible - default false. set to true if the ui is\n * being shown with this tc string update, this will set the correct values\n * for eventStatus and displayStatus.\n * @param {AdditionalModel} additionalModel - additonal data added to tcData\n * @return {void}\n */\n update(encodedTCString, uiVisible = false, additionalModel = {\n addtlConsent: '',\n acmVersion: undefined,\n molGvlVersion: '',\n nrvString: '',\n nrvVersion: undefined,\n repromptVersion: 1,\n }) {\n if (CmpApiModel.disabled) {\n throw new Error('CmpApi Disabled');\n }\n CmpApiModel.cmpStatus = CmpStatus.LOADED;\n if (uiVisible) {\n CmpApiModel.displayStatus = DisplayStatus.VISIBLE;\n CmpApiModel.eventStatus = EventStatus.CMP_UI_SHOWN;\n }\n else {\n if (CmpApiModel.tcModel === undefined) {\n CmpApiModel.displayStatus = DisplayStatus.DISABLED;\n CmpApiModel.eventStatus = EventStatus.TC_LOADED;\n }\n else {\n CmpApiModel.displayStatus = DisplayStatus.HIDDEN;\n CmpApiModel.eventStatus = EventStatus.USER_ACTION_COMPLETE;\n }\n }\n CmpApiModel.gdprApplies = (encodedTCString !== null);\n if (!CmpApiModel.gdprApplies) {\n CmpApiModel.tcModel = null;\n }\n else {\n if (encodedTCString === '') {\n CmpApiModel.tcModel = new TCModel();\n CmpApiModel.tcModel.cmpId = CmpApiModel.cmpId;\n CmpApiModel.tcModel.cmpVersion = CmpApiModel.cmpVersion;\n }\n else {\n CmpApiModel.tcModel = TCString.decode(encodedTCString);\n }\n CmpApiModel.tcModel.isServiceSpecific = this.isServiceSpecific;\n CmpApiModel.tcfPolicyVersion = Number(CmpApiModel.tcModel.policyVersion);\n CmpApiModel.tcString = encodedTCString;\n AdditionalModel.addtlConsent = additionalModel.addtlConsent;\n AdditionalModel.acmVersion = additionalModel.acmVersion;\n AdditionalModel.molGvlVersion = additionalModel.molGvlVersion;\n AdditionalModel.nrvString = additionalModel.nrvString;\n AdditionalModel.repromptVersion = additionalModel.repromptVersion;\n AdditionalModel.nrvVersion = additionalModel.nrvVersion;\n }\n if (this.numUpdates === 0) {\n /**\n * Will make AddEventListener Commands respond immediately.\n */\n this.callResponder.purgeQueuedCalls();\n }\n else {\n /**\n * Should be no queued calls and only any addEventListener commands\n */\n CmpApiModel.eventQueue.exec();\n }\n this.numUpdates++;\n }\n /**\n * Disables the CmpApi from serving anything but ping and custom commands\n * Cannot be undone\n *\n * @return {void}\n */\n disable() {\n CmpApiModel.disabled = true;\n CmpApiModel.cmpStatus = CmpStatus.ERROR;\n }\n}\n","export const debugEnabled = global.location?.search?.substr(1)?.split('&')?.some(searchParam => {\n const [key, value] = searchParam.split('=')\n return decodeURIComponent(key) === 'adsDebug' && (value === true || value === 'all' || decodeURIComponent(value).split(',').includes('tcfv2'))\n})\n\nexport function createLog () {\n return debugEnabled ? (...args) => console.log('[mol-ads-cmp]', ...args) : () => {}\n}\n","/* eslint-disable camelcase */\n// @ts-check\n\n/**\n * @param {number} tcfPolicyVersion\n * @returns {boolean}\n */\nexport const isTCFVersion2_2 = (tcfPolicyVersion) => tcfPolicyVersion > 3\n\nexport const TCFVersion2_2_SupportedPurposeLI = [2, 7, 8, 9, 10, 11]\n","/**\n * @type {Array}\n */\nexport const consentOrPayDisplayPurposes = [\n {\n type: 'purposes',\n id: 1,\n isConsentImmutable: true\n },\n {\n type: 'stacks',\n id: 10,\n isConsentImmutable: true,\n isLIImmutable: false\n },\n {\n type: 'stacks',\n id: 45,\n isConsentImmutable: true,\n isLIImmutable: false\n },\n {\n type: 'stacks',\n id: 14,\n isConsentImmutable: false,\n isLIImmutable: false\n },\n {\n type: 'specialFeatures',\n id: 1,\n isOptInImmutable: true\n },\n {\n type: 'specialFeatures',\n id: 2,\n isOptInImmutable: true\n }\n]\n\n/**\n * @type {Array}\n */\nexport const nonConsentOrPayDisplayPurposes = [\n {\n type: 'purposes',\n id: 1\n },\n {\n type: 'stacks',\n id: 42\n }\n]\n\n/**\n * @typedef {{type: 'purposes'|'stacks'|'specialFeatures', id: number, isConsentImmutable?: boolean, isLIImmutable?: boolean, isOptInImmutable:? boolean}} DisplayPurposes\n */\n","/* eslint-disable camelcase */\n// @ts-check\n\nimport { TCString } from '@mol-ads/tcf-core'\nimport { createLog } from '../utils/logger'\nimport * as TcModelFactory from './TcModelFactory'\nimport {\n TCFVersion2_2_SupportedPurposeLI,\n isTCFVersion2_2\n} from '../utils/policyVersion'\nimport { consentOrPayDisplayPurposes } from '../ui/display-purposes'\n\nconst log = createLog()\n\nexport class TcModel {\n /**\n * @param {TcModelOpts} opts\n */\n constructor({ gvl, molGvlVersion, model, specialPurposeOnlyDeclared = [] }) {\n this.gvl = gvl\n /**\n * @type {TCModel}\n */\n this.model = model\n this.molGvlVersion = molGvlVersion.replace(/\\//g, '.')\n this.specialPurposeOnlyDeclared = specialPurposeOnlyDeclared\n this.byPurposeVendorMap = this.byPurposeVendorMap.bind(this)\n this.gvlIsReady = this.gvlIsReady.bind(this)\n this.updated = this.updated.bind(this)\n this.tcString = this.tcString.bind(this)\n this.updateUserPreferences = this.updateUserPreferences.bind(this)\n this.consentAll = this.consentAll.bind(this)\n this.dissentAll = this.dissentAll.bind(this)\n this.hasUserDissentedToAll = this.hasUserDissentedToAll.bind(this)\n this.hasUserConsentedToAll = this.hasUserConsentedToAll.bind(this)\n this.consentedVendorCheck = this.consentedVendorCheck.bind(this)\n }\n\n reload(tcString) {\n const [newModel, specialPurposeOnlyDeclared] =\n TcModelFactory.createModelFromTcString(this.gvl, tcString)\n log('reloading tcModel', tcString, newModel)\n\n this.model = newModel\n this.specialPurposeOnlyDeclared = specialPurposeOnlyDeclared\n }\n\n byPurposeVendorMap() {\n return this.model.gvl.byPurposeVendorMap\n }\n\n gvlIsReady() {\n return this.model.gvl.readyPromise\n }\n\n updated() {\n this.model.updated()\n }\n\n tcString() {\n log('encoding', this.model)\n return TCString.encode(this.model)\n }\n\n updateUserPreferences({\n vendorConsents,\n vendorLegitimateInterests,\n purposeConsents,\n purposeLegitimateInterests,\n specialFeatureOptins,\n consentScreen,\n created,\n lastUpdated\n }) {\n this.model.vendorConsents.empty()\n this.model.vendorConsents.set(vendorConsents)\n\n this.model.vendorLegitimateInterests.empty()\n this.model.vendorLegitimateInterests.set(vendorLegitimateInterests)\n this.model.vendorLegitimateInterests.set(\n this.specialPurposeOnlyDeclared.map(({ id }) => id)\n )\n\n this.model.purposeConsents.empty()\n this.model.purposeConsents.set(purposeConsents)\n this.model.purposeLegitimateInterests.empty()\n this.model.purposeLegitimateInterests.set(purposeLegitimateInterests)\n\n this.model.specialFeatureOptins.empty()\n this.model.specialFeatureOptins.set(specialFeatureOptins)\n\n this.model.consentScreen = consentScreen\n\n this.model.updated()\n\n if (created) {\n this.model.created = created\n }\n\n if (lastUpdated) {\n this.model.lastUpdated = lastUpdated\n }\n\n this.model = TCString.decode(TCString.encode(this.model))\n this.model.gvl = this.gvl\n }\n\n consentAll({ consentScreen }) {\n this.model.setAll()\n if (isTCFVersion2_2(this.model.gvl.tcfPolicyVersion)) {\n this.model.unsetAllPurposeLegitimateInterests()\n this.model.purposeLegitimateInterests.set(\n TCFVersion2_2_SupportedPurposeLI\n )\n }\n this.model.consentScreen = consentScreen\n this.model.updated()\n this.model = TCString.decode(TCString.encode(this.model))\n this.model.gvl = this.gvl\n }\n\n dissentAll({ consentScreen }) {\n this.model.unsetAll()\n if (isTCFVersion2_2(this.model.gvl.tcfPolicyVersion)) {\n this.model.unsetAllPurposeLegitimateInterests()\n this.model.purposeLegitimateInterests.set(\n TCFVersion2_2_SupportedPurposeLI\n )\n } else {\n this.model.setAllPurposeLegitimateInterests()\n }\n this.model.setAllVendorLegitimateInterests()\n this.model.consentScreen = consentScreen\n this.model.updated()\n this.model = TCString.decode(TCString.encode(this.model))\n this.model.gvl = this.gvl\n }\n\n hasUserDissentedToAll() {\n return (\n !this.model.specialFeatureOptins.size &&\n !this.model.purposeConsents.size &&\n !this.model.vendorConsents.size\n )\n }\n\n hasUserConsentedToAll() {\n return (\n this.#hasUserConsentedToAllVendors() &&\n this.#hasUserConsentedToAllPurposes() &&\n this.#hasConsentedToAllSpecialFeatureOptins()\n )\n }\n\n hasUserConsentedToMandatory() {\n const purposesFromDisplayPurposes = consentOrPayDisplayPurposes\n .filter(({ type }) => type === 'purposes')\n .map(({ id }) => id)\n const immutableStacksFromDisplayPurposes =\n consentOrPayDisplayPurposes.filter(\n ({ type, isConsentImmutable }) =>\n type === 'stacks' && isConsentImmutable\n )\n const purposesFromStacks = immutableStacksFromDisplayPurposes\n .map(({ id }) => this.model.gvl.stacks[id].purposes)\n .flat()\n\n const consentedToAllPurposes = [\n ...purposesFromDisplayPurposes,\n ...purposesFromStacks\n ].every((id) => this.model.purposeConsents.has(id))\n return (\n this.#hasUserConsentedToAllVendors() &&\n consentedToAllPurposes &&\n this.#hasConsentedToAllSpecialFeatureOptins()\n )\n }\n\n #hasUserConsentedToAllVendors() {\n const vendorsWithPurposes = Object.keys(this.model.gvl.vendors)\n .filter((id) => this.model.gvl.vendors[id].purposes.length > 0)\n .map((id) => parseInt(id))\n\n return vendorsWithPurposes.every((id) => this.model.vendorConsents.has(id))\n }\n\n #hasUserConsentedToAllPurposes() {\n const purposesIds = Object.keys(this.model.gvl.purposes).map((id) =>\n parseInt(id)\n )\n return purposesIds.every((id) => this.model.purposeConsents.has(id))\n }\n\n #hasConsentedToAllSpecialFeatureOptins() {\n const specialFeatureOptinIds = Object.keys(\n this.model.gvl.specialFeatures\n ).map((id) => parseInt(id))\n return specialFeatureOptinIds.every((id) =>\n this.model.specialFeatureOptins.has(id)\n )\n }\n\n consentedVendorCheck() {\n const purposesIds = Object.keys(this.model.gvl.purposes).map((id) =>\n parseInt(id)\n )\n const purposeRestrictions =\n this.model.publisherRestrictions.getRestrictions()\n const model = TCString.decode(TCString.encode(this.model))\n model.gvl = this.gvl\n const vendorIdsDissentedByPurpose = new Set(\n purposesIds\n .filter((id) => !model.purposeConsents.has(id))\n .map((id) =>\n Array.from(\n (this.model.gvl.byPurposeVendorMap[id] &&\n this.model.gvl.byPurposeVendorMap[id].consent) ||\n []\n )\n )\n .flat()\n )\n const vendorIdDissentedByFlexiblePurpose = (id) => {\n return purposeRestrictions.some((restriction) => {\n return (\n model.publisherRestrictions.vendorHasRestriction(id, restriction) &&\n !model.purposeConsents.has(restriction.purposeId)\n )\n })\n }\n const preferenceForIds = Array.from(this.model.gvl.vendorIds).map((id) => {\n const constrainedByFlexPurpose = vendorIdDissentedByFlexiblePurpose(id)\n const vendorRestrictedToConsent = purposeRestrictions.some(\n (restriction) =>\n model.publisherRestrictions.vendorHasRestriction(id, restriction)\n )\n const hasConsented =\n (vendorRestrictedToConsent\n ? model.vendorConsents.has(id)\n : model.vendorConsents.has(id) ||\n model.vendorLegitimateInterests.has(id)) &&\n !vendorIdsDissentedByPurpose.has(id) &&\n !constrainedByFlexPurpose\n\n return {\n id,\n hasConsented,\n consentedTests: {\n consented: model.vendorConsents.has(id),\n legitimateInterest: model.vendorLegitimateInterests.has(id),\n vendorRestrictedToConsent,\n dissentedByPurpose: vendorIdsDissentedByPurpose.has(id),\n constrainedByFlexPurpose\n }\n }\n })\n return preferenceForIds\n }\n\n consentedVendors() {\n return this.consentedVendorCheck()\n .filter(({ hasConsented }) => hasConsented)\n .map(({ id }) => id)\n }\n\n consentedVendorsDetails() {\n return this.consentedVendorCheck()\n }\n}\n\n/**\n * @typedef {Object} TcModelOpts\n * @property {GVL} gvl\n * @property {string} molGvlVersion\n * @property {TCModel} model\n * @property {Array} specialPurposeOnlyDeclared\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').TCModel} TCModel\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').GVL} GVL\n */\n","// @ts-check\nimport {\n GVL,\n PurposeRestriction,\n RestrictionType,\n TCModel,\n TCString\n} from '@mol-ads/tcf-core'\nimport { createLog } from '../utils/logger'\nimport { TcModel } from './tcModel'\nimport packageJson from '../../package.json'\n\nconst { cmp } = packageJson\nconst log = createLog()\n\n/**\n * @param {{gvlRaw: GVLRaw, publisherConsents: PublisherConsents, publisherRestrictions: Array}} opts\n * @returns {Promise}\n */\nasync function createTcModelFromGvl({\n gvlRaw,\n publisherConsents,\n publisherRestrictions\n}) {\n log('creating TCModel for new user')\n const tcModel = new TCModel()\n tcModel.cmpId = 27\n tcModel.cmpVersion = cmp.version || 2\n // siteSpecific Storage (ie not global)\n tcModel.isServiceSpecific = true\n tcModel.publisherCountryCode = 'GB'\n const gvl = new GVL(gvlRaw.json)\n tcModel.gvl = gvl\n tcModel.publisherConsents.set(\n publisherConsents.purposes || [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n )\n tcModel.publisherLegitimateInterests.set(\n publisherConsents.legIntPurposes || [5, 6, 8, 10]\n )\n\n await tcModel.gvl.readyPromise\n\n const vendors = Object.values(tcModel.gvl.vendors).map(\n ({ id, flexiblePurposes, legIntPurposes }) => ({\n vendorId: id,\n flexiblePurposes: new Set(flexiblePurposes),\n legIntPurposes: new Set(legIntPurposes)\n })\n )\n\n if (gvl.tcfPolicyVersion === 2) {\n publisherRestrictions.forEach((purposeId) => {\n const purposeRestriction = new PurposeRestriction()\n purposeRestriction.purposeId = purposeId\n purposeRestriction.restrictionType = RestrictionType.REQUIRE_CONSENT\n vendors.forEach(({ vendorId, flexiblePurposes, legIntPurposes }) => {\n try {\n if (\n flexiblePurposes.has(purposeId) &&\n legIntPurposes.has(purposeId)\n ) {\n // vendorID and restriction\n log(`restricting purposeId: ${purposeId} for vendorId: ${vendorId}`)\n tcModel.publisherRestrictions.add(vendorId, purposeRestriction)\n }\n } catch (e) {\n log('unable to restrict', purposeId, vendorId)\n }\n })\n })\n }\n\n const specialPurposeOnlyDeclared = Object.values(tcModel.gvl.vendors).filter(\n (v) =>\n v.purposes.length === 0 &&\n v.legIntPurposes.length === 0 &&\n v.specialPurposes.length > 0\n )\n log('specialPurposeOnly', specialPurposeOnlyDeclared)\n\n return new TcModel({\n gvl,\n molGvlVersion: gvlRaw.version.toString(),\n model: tcModel,\n specialPurposeOnlyDeclared\n })\n}\n\n/**\n * @param {GVLRaw} gvlRaw\n * @param {string} tcString\n * @returns {TcModel}\n */\nfunction createTcModelFromTcString(gvlRaw, tcString) {\n const gvl = new GVL(gvlRaw.json)\n const [tcModel, specialPurposeOnlyDeclared] = createModelFromTcString(\n gvl,\n tcString\n )\n return new TcModel({\n gvl,\n molGvlVersion: gvlRaw.version.toString(),\n model: tcModel,\n specialPurposeOnlyDeclared\n })\n}\n\n/**\n * @param {{gvlRaw: GVLRaw, existingTcModel: TcModel, keepDate: boolean, publisherRestrictions: Array, publisherConsents: PublisherConsents}} tcModelOpts\n * @returns {Promise}\n */\nasync function createTcModelForRepromptedUser({\n gvlRaw,\n existingTcModel,\n keepDate = false,\n publisherRestrictions,\n publisherConsents\n}) {\n const tcModel = await createTcModelFromGvl({\n gvlRaw,\n publisherRestrictions,\n publisherConsents\n })\n let opts = formPreferenceOpts(existingTcModel)\n if (keepDate) {\n opts = {\n ...opts,\n created: existingTcModel.model.created,\n lastUpdated: existingTcModel.model.lastUpdated\n }\n }\n tcModel.updateUserPreferences(opts)\n return tcModel\n}\n\n/**\n * @param {TcModel} existingTcModel\n * @returns {PreferenceOpts}\n */\nfunction formPreferenceOpts(existingTcModel) {\n return {\n consentScreen: existingTcModel.model.consentScreen,\n vendorConsents: getPreferencesOpt('vendorConsents'),\n vendorLegitimateInterests: getPreferencesOpt('vendorLegitimateInterests'),\n purposeConsents: getPreferencesOpt('purposeConsents'),\n purposeLegitimateInterests: getPreferencesOpt('purposeLegitimateInterests'),\n specialFeatureOptins: getPreferencesOpt('specialFeatureOptins')\n }\n\n /**\n * @param {keyof TCModel} key\n */\n function getPreferencesOpt(key) {\n return Array.from(existingTcModel.model[key].set_).map((v) => parseInt(v))\n }\n}\n\n/**\n * @param {{existingGvlRaw: GVLRaw, newGvlRaw: GVLRaw, tcString: string}} opts\n */\nfunction createTcModelForExitingUserSimplifiedGvl({\n existingGvlRaw,\n newGvlRaw,\n tcString\n}) {\n const existingTcModel = createTcModelFromTcString(existingGvlRaw, tcString)\n // need to use existing restricted purposes, and existing publisher consents\n // existingTcModel.model.publisherConsents\n\n const publisherConsents = {\n purposes: [...existingTcModel.model.publisherConsents.values()],\n legIntPurposes: [...existingTcModel.model.publisherLegitimateInterests.values()]\n }\n\n const publisherRestrictions =\n existingTcModel.model.publisherRestrictions.getPurposes()\n return createTcModelForRepromptedUser({\n gvlRaw: newGvlRaw,\n existingTcModel,\n keepDate: true,\n publisherRestrictions,\n publisherConsents\n })\n}\n\n/**\n * @param {GVL} gvl\n * @param {string} tcString\n * @returns {[TCModel, Array]}\n */\nexport function createModelFromTcString(gvl, tcString) {\n log('creating TCModel from tcString')\n\n const tcModel = TCString.decode(tcString)\n\n // controller was originally released with consentScreen=0, this hack will update all those users\n if (tcModel.consentScreen === 0) {\n tcModel.consentScreen = 1\n }\n tcModel.gvl = gvl\n const specialPurposeOnlyDeclared = Object.values(tcModel.gvl.vendors).filter(\n (v) =>\n v.purposes.length === 0 &&\n v.legIntPurposes.length === 0 &&\n v.specialPurposes.length > 0\n )\n log('specialPurposeOnly', specialPurposeOnlyDeclared)\n return [tcModel, specialPurposeOnlyDeclared]\n}\n\n/**\n * @param {TCModelFactoryOpts} opts\n * @returns {Promise}\n */\nexport const create = async ({\n gvl,\n newGvl,\n type,\n tcString,\n existingTcModel,\n publisherRestrictions,\n publisherConsents\n}) => {\n switch (type) {\n case 'newUser':\n if (gvl) {\n log('newUser')\n return createTcModelFromGvl({\n gvlRaw: gvl,\n publisherConsents,\n publisherRestrictions\n })\n }\n break\n\n case 'existingUser':\n if (gvl && tcString) {\n log('existingUser')\n return createTcModelFromTcString(gvl, tcString)\n }\n break\n\n case 'repromptedUser':\n if (newGvl && existingTcModel) {\n log('repromptedUser')\n return createTcModelForRepromptedUser({\n gvlRaw: newGvl,\n existingTcModel,\n keepDate: false,\n publisherRestrictions,\n publisherConsents\n })\n }\n break\n\n case 'exitingUserSimplifiedGvl':\n if (gvl && newGvl && tcString) {\n log('exitingUserSimplifiedGvl')\n return createTcModelForExitingUserSimplifiedGvl({\n existingGvlRaw: gvl,\n newGvlRaw: newGvl,\n tcString\n })\n }\n break\n }\n return createTcModelFromGvl({\n gvlRaw: gvl,\n publisherRestrictions,\n publisherConsents\n })\n}\n\n/**\n * @typedef {import('../utils/fetch-vendor-lists').GVLRaw} GVLRaw\n */\n/**\n * @typedef {Object} TCModelFactoryOpts\n * @property {UserType} type\n * @property {GVLRaw} [gvl]\n * @property {GVLRaw} [newGvl]\n * @property {string} [tcString]\n * @property {TcModel} [existingTcModel]\n * @property {Array} publisherRestrictions\n * @property {PublisherConsents} publisherConsents\n */\n\n/**\n * @typedef {'newUser'|'existingUser'|'repromptedUser'|'exitingUserSimplifiedGvl'} UserType\n */\n\n/**\n * @typedef {Object} PreferenceOpts\n * @property {Array} vendorConsents\n * @property {Array} vendorLegitimateInterests\n * @property {Array} purposeConsents\n * @property {Array} purposeLegitimateInterests\n * @property {Array} specialFeatureOptins\n * @property {string|number} consentScreen\n **/\n\n/**\n * @typedef {import('../config/config').PublisherConsents} PublisherConsents\n */\n","/* eslint-disable camelcase */\n// @ts-check\n\n/**\n * @param {Array} cvl\n * @returns {NonIABVendorList}\n */\nconst parseVendors = (cvl) => {\n return cvl.reduce(\n (acc, { provider_id, provider_name, policy_url }) => ({\n ...acc,\n [provider_id]: {\n id: provider_id,\n name: provider_name,\n policyUrl: policy_url\n }\n }),\n {}\n )\n}\n\nexport class NonIABModel {\n /**\n * @type {Consents}\n */\n #consents\n\n /**\n * @type {string}\n */\n #consentString\n\n /**\n * @type {NonIABVendorList}\n */\n #cvl\n\n /**\n * @type {number|string}\n */\n #vendorListVersion\n\n /**\n * @type {Array}\n */\n #vendorIds\n\n /**\n * @param {Object} opts\n * @param {Array} opts.vendorList\n * @param {string} [opts.consentString]\n * @param {number|string} opts.vendorListVersion\n */\n constructor({ vendorList, consentString, vendorListVersion }) {\n /**\n * @type {NonIABVendorList}\n */\n this.#cvl = parseVendors(vendorList)\n this.#vendorIds = Object.keys(this.#cvl).map((id) => parseInt(id))\n const vendorIds = new Set(this.#vendorIds)\n this.#consents = {}\n this.updateModel = this.updateModel.bind(this)\n this.getConsents = this.getConsents.bind(this)\n this.#consentString = `1~${\n consentString\n ? consentString\n .substr(2)\n .split('.')\n .map((id) => parseInt(id))\n .filter((id) => id)\n .filter((id) => vendorIds.has(id))\n .join('.')\n : ''\n }`\n this.#consents = this.#decode()\n this.#vendorListVersion = vendorListVersion\n }\n\n #encode() {\n const isEmpty = (obj) => !Object.keys(obj).length\n if (isEmpty(this.#consents)) return '1~'\n\n const ids = Object.entries(this.#consents)\n .filter(([ignore, { consent }]) => consent)\n .map(([id, ignore]) => id)\n .join('.')\n return `1~${ids}`\n }\n\n #decode() {\n if (this.#consentString === '1~') return {}\n\n const consentedVendorIds = this.#consentString\n .substr(2)\n .split('.')\n .map((id) => parseInt(id))\n .filter((id) => id)\n const consentMap = consentedVendorIds.reduce(\n (acc, id) => ({ ...acc, ...{ [id]: { consent: true } } }),\n {}\n )\n return consentMap\n }\n\n updateModel(consents) {\n this.#consents = consents\n this.#consentString = this.#encode()\n }\n\n getConsents() {\n return this.#consents\n }\n\n getConsentString() {\n return this.#consentString\n }\n\n consentToAll() {\n this.#consents = Object.keys(this.#cvl).reduce(\n (acc, id) => ({ ...acc, [id]: { consent: true } }),\n {}\n )\n this.#consentString = this.#encode()\n }\n\n dissentToAll() {\n this.#consents = {}\n this.#consentString = this.#encode()\n }\n\n hasUserConsentedToAll() {\n const cvlIds = Object.keys(this.#cvl)\n return cvlIds.every(\n (id) => this.#consents[id] && this.#consents[id].consent\n )\n }\n\n hasUserDissentedToAll() {\n const cvlIds = Object.keys(this.#cvl)\n return cvlIds.every(\n (id) => !(this.#consents[id] && this.#consents[id].consent)\n )\n }\n\n /**\n * @returns {UiModel}\n */\n getUiModel() {\n return {\n cvl: this.#cvl,\n consents: this.getConsents(),\n vendorIds: this.#vendorIds\n }\n }\n\n getVendors() {\n return this.#cvl\n }\n\n getVendorListVersion() {\n return this.#vendorListVersion\n }\n}\n\n/**\n * @typedef {Object} UiModel\n * @property {NonIABVendorList} cvl\n * @property {Consents} consents\n * @property {Array} vendorIds\n */\n\n/** @typedef {Record} Consents */\n\n/**\n * @typedef {Object} Vendor\n * @property {string} provider_name\n * @property {string} provider_id\n * @property {string} policy_url\n */\n\n/** @typedef {Record} NonIABVendorList */\n","// @ts-check\nimport { createLog } from './logger'\nconst log = createLog()\n/**\n * @param {Array<{key: keyof FetchVendorListsResponse, url: string, version: number|string}>} urls\n * @returns {FetchVendorListResponse}\n */\nasync function fetchVendor (urls) {\n const key = urls[0].key\n try {\n for (const { key, url, version } of urls.filter(u => u)) {\n const response = await fetch(url)\n if (response.status === 404) {\n log('unable to find', url)\n continue\n } else {\n return [key, { json: await response.json(), version }]\n }\n }\n } catch (e) {\n console.error('error fetch vendor-list:', e.message)\n return [key, 'error']\n }\n return [key, 'error']\n}\n\nconst gvlUrlBase = '//cmp.dmgmediaprivacy.co.uk/gvl'\nconst fileName = 'vendor-list.json'\n\n/**\n * @param {keyof FetchVendorListsResponse} key\n * @param {number|string} gvlVersion\n * @returns {Promise<[keyof FetchVendorListsResponse, FetchResponse|GVLFetchResponse]>}\n */\nexport async function fetchGvl (key, gvlVersion) {\n const versionParts = gvlVersion.toString().split('/')\n const fallbackUrlVersion = versionParts.length === 3 && versionParts[0]\n const url = `${gvlUrlBase}/${gvlVersion}/${fileName}`\n const urls = [{ key, url, version: gvlVersion }]\n if (fallbackUrlVersion) {\n urls.push({ key, url: `${gvlUrlBase}/${fallbackUrlVersion}/${fileName}`, version: fallbackUrlVersion })\n }\n return fetchVendor(urls)\n}\n\n/**\n * @param {FetchVendorListOpts} opts\n * @returns {Promise}\n */\nexport async function fetchVendorLists ({ gvlVersion, cvlVersion, nrvVersion, migratedGvlVersion }) {\n const cvlUrl = `//cmp.dmgmediaprivacy.co.uk/custom/${cvlVersion}/vendor-list.json`\n const nrvUrl = `//cmp.dmgmediaprivacy.co.uk/nrv/${nrvVersion}/vendor-list.json`\n /**\n * @type {Array>}\n */\n const vendorLists = [\n fetchGvl('gvl', gvlVersion),\n fetchVendor([{ key: 'cvl', url: cvlUrl, version: cvlVersion }]),\n fetchVendor([{ key: 'nrv', url: nrvUrl, version: nrvVersion }])\n ]\n\n if (migratedGvlVersion) {\n vendorLists.push(fetchGvl('newGvl', migratedGvlVersion))\n }\n return /** @type FetchVendorListsResponse */ (Object.fromEntries(await Promise.all(vendorLists)))\n}\n\n/**\n * @typedef {Object} FetchVendorListOpts\n * @property {string|number} gvlVersion\n * @property {string|number} cvlVersion\n * @property {string|number} nrvVersion\n * @property {string|undefined} migratedGvlVersion\n */\n\n/**\n * @typedef {Promise<[keyof FetchVendorListsResponse, FetchResponse|GVLFetchResponse]>} FetchVendorListResponse\n */\n\n/**\n * @typedef {VendorListRaw|string} FetchResponse\n */\n\n/**\n * @typedef {GVLRaw|string} GVLFetchResponse\n */\n\n/**\n * @typedef {{json: Record, version: number|string}} VendorListRaw\n */\n\n/**\n * @typedef {{json: VendorList, version: number|string}} GVLRaw\n */\n\n/**\n * @typedef {{ gvl: GVLFetchResponse, cvl: FetchResponse, nrv: FetchResponse, newGvl?: GVLFetchResponse }} FetchVendorListsResponse\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core/lib/mjs/model/gvl').VendorList} VendorList\n */\n","// @ts-check\n\nimport { CmpApi, CmpApiModel } from '@mol-ads/tcf-cmpapi'\n// using the following until the bug is fixed in @iabtcf/stub\n// https://raw.githubusercontent.com/InteractiveAdvertisingBureau/iabtcf-es/95c5585d26e751b173e98ce830da2fa2dd5e5368/modules/stub/src/stub.js\n// https://github.com/InteractiveAdvertisingBureau/iabtcf-es/pull/192\nimport cmpstub from './stub'\nimport { createLog } from '../utils/logger'\nimport * as TcModelFactory from './TcModelFactory'\nimport { NonIABModel } from './NonIABModel'\nimport { fetchGvl } from '../utils/fetch-vendor-lists'\nimport packageJson from '../../package.json'\n\nconst log = createLog()\n\nconst { cmp: packageJsonCmp } = packageJson\nexport class Cmp {\n /**\n * @param {CmpOpts} cmpOpts\n */\n constructor({\n tcModel,\n cvlJson = {},\n nrvJson = {},\n tcString,\n addtlConsent,\n storeTcString,\n persist,\n ui,\n uuid,\n gvlVersion,\n gvlUiVersion,\n repromptVersion,\n nextRepromptVersion,\n nrvString,\n nrvVersion,\n nrvUiVersion,\n cvlVersion,\n cvlUiVersion,\n publisherRestrictions,\n publisherConsents\n }) {\n cmpstub()\n this.tcModel = tcModel\n this.hasUserSelectedTheirPreference = !!tcString\n this.notifyModelUpdate = this.notifyModelUpdate.bind(this)\n this.isReady = this.isReady.bind(this)\n this.openUi = this.openUi.bind(this)\n this.notifyUsersPreferences = this.notifyUsersPreferences.bind(this)\n this.hasUserConsentedToAll = this.hasUserConsentedToAll.bind(this)\n this.getGvl = this.getGvl.bind(this)\n this.consentToAll = this.consentToAll.bind(this)\n this.dissentToAll = this.dissentToAll.bind(this)\n this.hasUserConsentedToMandatory =\n this.hasUserConsentedToMandatory.bind(this)\n this.updateConsent = this.updateConsent.bind(this)\n this.reloadTcModel = this.reloadTcModel.bind(this)\n this.levelChanged = this.levelChanged.bind(this)\n this.runApiMethod = this.runApiMethod.bind(this)\n this.getPurposesByVendorMap = this.getPurposesByVendorMap.bind(this)\n this.getNonRegisteredVendors = this.getNonRegisteredVendors.bind(this)\n this.storeTcString = storeTcString\n this.persist = persist\n this.publisherConsents = publisherConsents\n this.publisherRestrictions = publisherRestrictions\n this.ui = ui\n this.uuid = uuid\n this.lastKnownConsentScreen = undefined\n this.gvlVersion = gvlVersion\n this.gvlUiVersion = gvlUiVersion\n this.acmModel = new NonIABModel({\n vendorList: Object.values(cvlJson),\n consentString: addtlConsent,\n vendorListVersion: cvlVersion\n })\n this.cvlUiVersion = cvlUiVersion\n this.nrvModel = new NonIABModel({\n vendorList: Object.values(nrvJson),\n consentString: nrvString,\n vendorListVersion: nrvVersion\n })\n this.nrvUiVersion = nrvUiVersion\n this.repromptVersion = repromptVersion\n this.nextRepromptVersion = nextRepromptVersion\n\n const validTCDataP = () =>\n new Promise((resolve) => {\n this.tcModel.gvlIsReady().then(() => {\n let resolved = false\n const done = (tcData) => {\n if (!resolved) {\n resolved = true\n resolve(tcData)\n }\n }\n global.__tcfapi('addEventListener', 2, (tcData) => {\n if (tcData.tcString.length) {\n global.__tcfapi(\n 'removeEventListener',\n 2,\n () => {},\n tcData.listenerId\n )\n done(tcData)\n }\n })\n global.__tcfapi('getTCData', 2, (tcData) => {\n if (tcData.tcString.length) {\n done(tcData)\n }\n })\n })\n })\n\n const cmpVersion = Number(this.tcModel.model.cmpVersion)\n this.api = new CmpApi(27, cmpVersion, true, {\n hasUserConsentedToAll: async (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.hasUserConsentedToAll()\n }, callback)\n },\n hasUserDissentedToAll: async (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.hasUserDissentedToAll()\n }, callback)\n },\n getPurposesByVendorMap: async (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.getPurposesByVendorMap()\n }, callback)\n },\n getCustomVendorsConsents: async (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.getCustomVendorsConsents()\n }, callback)\n },\n getNonRegisteredVendorsConsents: (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.getNonRegisteredVendorsConsents()\n }, callback)\n },\n getConsentDegree: async (callback) => {\n this.runApiMethod(async () => this.getConsentDegree(), callback)\n },\n setUserId: (callback, uuid) => {\n this.runApiMethod(() => {\n this.uuid = uuid\n return null\n }, callback)\n },\n openUi: (callback, { uiLevel, uuid = this.uuid }) => {\n this.runApiMethod(() => {\n this.uuid = uuid\n this.openUi(uiLevel)\n }, callback)\n },\n getValidTCData: async (callback) => {\n this.runApiMethod(async () => validTCDataP(), callback)\n },\n consentedVendors: async (callback) => {\n this.runApiMethod(async () => this.consentedVendors(), callback)\n },\n consentedVendorsDetails: async (callback) => {\n this.runApiMethod(async () => this.consentedVendorsDetails(), callback)\n },\n getStoredRepromptVersion: (callback) => {\n this.runApiMethod(() => this.repromptVersion, callback)\n },\n getNonRegisteredVendors: (callback) => {\n this.runApiMethod(() => this.getNonRegisteredVendors(), callback)\n },\n hasUserConsentedToMandatory: async (callback) => {\n this.runApiMethod(async () => {\n await this.tcModel.gvlIsReady()\n return this.hasUserConsentedToMandatory()\n }, callback)\n }\n })\n }\n\n async runApiMethod(fn, callback) {\n try {\n const resp = await fn()\n callback(resp, true)\n } catch (e) {\n log(e)\n callback(null, false)\n }\n }\n\n getGvl() {\n return this.tcModel.gvl\n }\n\n async notifyModelUpdate() {\n const tcString = this.tcModel.tcString()\n this.hasUserSelectedTheirPreference = true\n const consentDegree = await this.getConsentDegree()\n const addtlConsent = this.acmModel.getConsentString()\n const acmVersion = this.acmModel.getVendorListVersion()\n const nrvString = this.nrvModel.getConsentString()\n const nrvVersion = this.nrvModel.getVendorListVersion()\n const molGvlVersion = this.tcModel.molGvlVersion\n\n /**\n * @type {import('../persist/Persist').SaveOpts}\n */\n const persistOpts = {\n uuid: this.uuid,\n tcString,\n consentDegree,\n addtlConsent,\n nrvString\n }\n await this.persist.saveTCString(persistOpts)\n this.repromptVersion = this.nextRepromptVersion\n this.api.update(tcString, false, {\n addtlConsent,\n acmVersion,\n nrvString,\n nrvVersion,\n repromptVersion: this.repromptVersion,\n molGvlVersion\n })\n }\n\n updateConsent(data) {\n log('data', data)\n\n const formConsentAndLegInt = (pref, keyPrefix) => {\n const consentKey = `${keyPrefix}Consents`\n const legIntKey = `${keyPrefix}LegitimateInterests`\n return Object.entries(pref).reduce(\n (acc, [id, userPreference]) => {\n const { consent, legInterest } = userPreference\n const _id = parseInt(id)\n if (consent) {\n acc[consentKey].push(_id)\n }\n if (legInterest) {\n acc[legIntKey].push(_id)\n }\n return acc\n },\n { [consentKey]: [], [legIntKey]: [] }\n )\n }\n\n const {\n purposes = {},\n specialFeatures = {},\n vendors = {},\n nonTcfVendors = {},\n nonRegisteredVendors = {}\n } = data\n const { vendorConsents, vendorLegitimateInterests } = formConsentAndLegInt(\n vendors,\n 'vendor'\n )\n const { purposeConsents, purposeLegitimateInterests } =\n formConsentAndLegInt(purposes, 'purpose')\n const specialFeatureOptins = Object.entries(specialFeatures).reduce(\n (acc, [specialFeatureId, userPreference]) => {\n const id = parseInt(specialFeatureId)\n if (userPreference.optIn) {\n acc.push(id)\n }\n return acc\n },\n []\n )\n\n this.acmModel.updateModel(nonTcfVendors)\n this.nrvModel.updateModel(nonRegisteredVendors)\n const options = {\n vendorConsents,\n vendorLegitimateInterests,\n purposeConsents,\n purposeLegitimateInterests,\n specialFeatureOptins,\n consentScreen: this.lastKnownConsentScreen\n }\n log('options:', options)\n this.tcModel.updateUserPreferences(options)\n CmpApiModel.cmpVersion = packageJsonCmp.version\n this.notifyModelUpdate()\n log(\n 'model updates',\n vendorConsents,\n vendorLegitimateInterests,\n purposeConsents,\n purposeLegitimateInterests,\n this.acmModel.getConsents(),\n this.nrvModel.getConsents()\n )\n }\n\n consentToAll() {\n log('user consenting to all')\n this.acmModel.consentToAll()\n this.nrvModel.consentToAll()\n this.tcModel.consentAll({ consentScreen: this.lastKnownConsentScreen })\n CmpApiModel.cmpVersion = packageJsonCmp.version\n this.notifyModelUpdate()\n }\n\n dissentToAll() {\n log('user dissenting to all')\n this.acmModel.dissentToAll()\n this.nrvModel.dissentToAll()\n this.tcModel.dissentAll({ consentScreen: this.lastKnownConsentScreen })\n CmpApiModel.cmpVersion = packageJsonCmp.version\n this.notifyModelUpdate()\n }\n\n levelChanged({ currentLevel }) {\n try {\n this.setCurrentLevel(currentLevel)\n log('last known consent screen:', this.lastKnownConsentScreen)\n } catch (e) {\n log(e.message)\n }\n }\n\n setCurrentLevel(currentLevel) {\n const screen = currentLevel.match(/\\d/)\n if (typeof screen[0] === 'undefined') {\n throw new Error('Unknown level: ' + currentLevel)\n }\n this.lastKnownConsentScreen = screen[0]\n }\n\n isReady() {\n return this.tcModel.gvlIsReady()\n }\n\n hasUserConsentedToAll() {\n if (!this.hasUserSelectedTheirPreference) return false\n return (\n this.tcModel.hasUserConsentedToAll() &&\n this.acmModel.hasUserConsentedToAll() &&\n this.nrvModel.hasUserConsentedToAll()\n )\n }\n\n hasUserDissentedToAll() {\n if (!this.hasUserSelectedTheirPreference) return false\n return (\n this.tcModel.hasUserDissentedToAll() &&\n this.acmModel.hasUserDissentedToAll() &&\n this.nrvModel.hasUserDissentedToAll()\n )\n }\n\n hasUserConsentedToMandatory() {\n if (!this.hasUserSelectedTheirPreference) return false\n return (\n this.tcModel.hasUserConsentedToMandatory() &&\n this.acmModel.hasUserConsentedToAll() &&\n this.nrvModel.hasUserConsentedToAll()\n )\n }\n\n getCustomVendorsConsents() {\n return this.acmModel.getConsents()\n }\n\n getNonRegisteredVendorsConsents() {\n return this.nrvModel.getConsents()\n }\n\n async getConsentDegree() {\n await this.tcModel.gvlIsReady()\n return this.hasUserSelectedTheirPreference\n ? (this.hasUserConsentedToAll() && 'yes') ||\n (this.hasUserDissentedToAll() && 'no') ||\n 'partial'\n : undefined\n }\n\n async consentedVendors() {\n await this.tcModel.gvlIsReady()\n return this.tcModel.consentedVendors()\n }\n\n async consentedVendorsDetails() {\n await this.tcModel.gvlIsReady()\n return this.tcModel.consentedVendorsDetails()\n }\n\n getPurposesByVendorMap() {\n const entries = Object.entries(this.tcModel.byPurposeVendorMap())\n const purposesByVendorMap = entries.reduce(\n (acc, [purpose, { consent: vendorIds }]) => {\n vendorIds.forEach((vendorId) =>\n (acc[vendorId] = acc[vendorId] || []).push(purpose)\n )\n return acc\n },\n {}\n )\n return purposesByVendorMap\n }\n\n getNonRegisteredVendors() {\n return this.nrvModel.getVendors()\n }\n\n /**\n * @param {UiLevel} uiLevel\n */\n async openUi(uiLevel) {\n if (this.gvlVersion !== this.gvlUiVersion) {\n log(\n `openUi, gvlVersion: ${this.gvlVersion}, gvlUiVersion: ${this.gvlUiVersion}`\n )\n const [, gvl] = /** @type {[string, GVLFetchResponse]} */ (\n await fetchGvl('gvl', this.gvlUiVersion)\n )\n if (typeof gvl === 'string') {\n throw new Error(`unable to download GVL version: ${this.gvlUiVersion}`)\n }\n const tcModel = await TcModelFactory.create({\n type: 'repromptedUser',\n newGvl: gvl,\n existingTcModel: this.tcModel,\n publisherRestrictions: this.publisherRestrictions,\n publisherConsents: this.publisherConsents\n })\n this.tcModel = tcModel\n this.gvlVersion = gvl.version\n this.gvlUiVersion = gvl.version\n }\n\n if (this.acmModel.getVendorListVersion() !== this.cvlUiVersion) {\n const url = `//cmp.dmgmediaprivacy.co.uk/custom/${this.cvlUiVersion}/vendor-list.json`\n const response = await fetch(url)\n const cvlJson = await response.json()\n this.acmModel = new NonIABModel({\n vendorList: Object.values(cvlJson),\n consentString: this.acmModel.getConsentString(),\n vendorListVersion: this.cvlUiVersion\n })\n }\n\n if (this.nrvModel.getVendorListVersion() !== this.nrvUiVersion) {\n const url = `//cmp.dmgmediaprivacy.co.uk/nrv/${this.nrvUiVersion}/vendor-list.json`\n const response = await fetch(url)\n const nrvJson = await response.json()\n this.nrvModel = new NonIABModel({\n vendorList: Object.values(nrvJson),\n consentString: this.nrvModel.getConsentString(),\n vendorListVersion: this.nrvUiVersion\n })\n }\n\n const consentString = this.hasUserSelectedTheirPreference\n ? this.tcModel.tcString()\n : ''\n const cmpModel = {\n tcModel: this.tcModel.model,\n hasUserSelectedTheirPreference: this.hasUserSelectedTheirPreference,\n acmVendors: this.acmModel.getUiModel(),\n nonRegisteredVendors: this.nrvModel.getUiModel()\n }\n const cmpUpdateHandlers = {\n reloadTcModel: this.reloadTcModel,\n updateConsent: this.updateConsent,\n consentToAll: this.consentToAll,\n dissentToAll: this.dissentToAll,\n levelChanged: this.levelChanged\n }\n\n log('opening UI')\n this.setCurrentLevel(uiLevel)\n this.ui.open(uiLevel, {\n cmpModel,\n cmpUpdateHandlers,\n isNewUser: !this.hasUserSelectedTheirPreference\n })\n this.api.update(consentString, true, {\n addtlConsent: this.acmModel.getConsentString(),\n acmVersion: this.acmModel.getVendorListVersion().toString(),\n nrvString: this.nrvModel.getConsentString(),\n nrvVersion: Number(this.nrvModel.getVendorListVersion()),\n repromptVersion: this.repromptVersion,\n molGvlVersion: this.tcModel.molGvlVersion\n })\n }\n\n notifyUsersPreferences() {\n const consentString = this.hasUserSelectedTheirPreference\n ? this.tcModel.tcString()\n : ''\n log('notifying users')\n this.api.update(consentString, false, {\n addtlConsent: this.acmModel.getConsentString(),\n acmVersion: this.acmModel.getVendorListVersion().toString(),\n nrvString: this.nrvModel.getConsentString(),\n nrvVersion: Number(this.nrvModel.getVendorListVersion()),\n repromptVersion: this.repromptVersion,\n molGvlVersion: this.tcModel.molGvlVersion\n })\n }\n\n reloadTcModel(tcString) {\n this.tcModel.reload(tcString)\n this.isReady().then(() => {\n this.hasUserSelectedTheirPreference = true\n this.notifyUsersPreferences()\n })\n }\n\n setUuid(uuid) {\n this.uuid = uuid\n }\n}\n\n/**\n * @param {CreateCmpOpts} opts\n * @returns {Promise}\n */\nexport async function createCmp({\n gvlRaw,\n cvlJson = {},\n nrvJson = {},\n tcString,\n addtlConsent,\n storeTcString,\n persist,\n ui,\n uuid,\n gvlVersion,\n gvlUiVersion,\n repromptVersion,\n nextRepromptVersion,\n nrvString,\n nrvVersion,\n nrvUiVersion,\n cvlVersion,\n cvlUiVersion,\n migrateUserGvl,\n existingUser,\n newGvlRaw,\n publisherRestrictions,\n publisherConsents\n}) {\n const userType = migrateUserGvl\n ? 'exitingUserSimplifiedGvl'\n : existingUser\n ? 'existingUser'\n : 'newUser'\n const tcModel = await TcModelFactory.create({\n type: userType,\n gvl: gvlRaw,\n tcString,\n newGvl: newGvlRaw,\n publisherRestrictions,\n publisherConsents\n })\n return new Cmp({\n tcModel,\n cvlJson,\n nrvJson,\n tcString,\n addtlConsent,\n storeTcString,\n persist,\n ui,\n uuid,\n gvlVersion,\n gvlUiVersion,\n repromptVersion,\n nextRepromptVersion,\n nrvString,\n nrvVersion,\n nrvUiVersion,\n cvlVersion,\n cvlUiVersion,\n publisherRestrictions,\n publisherConsents\n })\n}\n\n/**\n * @typedef {Omit & {tcModel: import('./tcModel').TcModel}} CmpOpts\n */\n\n/**\n * @typedef {Object} CreateCmpOpts\n * @property {GVLRaw} gvlRaw\n * @property {Record} cvlJson\n * @property {Record} nrvJson\n * @property {string} [tcString]\n * @property {string} [addtlConsent]\n * @property {boolean} storeTcString\n * @property {*} persist\n * @property {*} ui\n * @property {string|undefined} uuid\n * @property {number|string} gvlVersion\n * @property {number|string} gvlUiVersion\n * @property {number} repromptVersion\n * @property {number} nextRepromptVersion\n * @property {string} [nrvString]\n * @property {number} nrvVersion\n * @property {number} nrvUiVersion\n * @property {number|string} cvlVersion\n * @property {number} cvlUiVersion\n * @property {boolean} migrateUserGvl\n * @property {boolean} existingUser\n * @property {GVLRaw|undefined} newGvlRaw\n * @property {Array} publisherRestrictions\n * @property {import('../config/config').PublisherConsents} publisherConsents\n */\n\n/**\n * @typedef {'Level1'|'Level2'} UiLevel\n */\n\n/**\n * @typedef {import('../utils/fetch-vendor-lists').GVLRaw} GVLRaw\n */\n\n/**\n * @typedef {import('../utils/fetch-vendor-lists').GVLFetchResponse} GVLFetchResponse\n */\n","/* eslint-disable camelcase */\n// @ts-check\nimport { Vector } from '@mol-ads/tcf-core'\nimport {\n isTCFVersion2_2,\n TCFVersion2_2_SupportedPurposeLI\n} from '../utils/policyVersion'\nimport { consentOrPayDisplayPurposes } from './display-purposes'\n\n/**\n * @param {PreferenceVectors} model\n * @returns {IABUserPrefs}\n */\nfunction userPreferenceModel(model) {\n const setIfConsented =\n (id) =>\n (obj, [key, vector]) => {\n if (vector.has(id)) {\n obj[key] = true\n }\n return obj\n }\n const vectorToPrefArr = (vector) => {\n const pref = []\n vector.forEach((state, index) => {\n if (state) {\n pref.push(index)\n }\n })\n return pref\n }\n\n const consentedIds = (obj) =>\n Array.from(new Set(Object.values(obj).map(vectorToPrefArr).flat()))\n\n // preferences keys: consents, legInterest, optIn\n const idsForUserPreference = (preferences) => {\n const ids = consentedIds(preferences)\n return ids.reduce((acc, id) => {\n acc[id] = Object.entries(preferences).reduce(setIfConsented(id), {})\n return acc\n }, {})\n }\n\n // key: vendors, purposes, specialFeatures\n return Object.entries(model).reduce(\n (acc, [key, preferences]) => {\n acc[key] = idsForUserPreference(preferences)\n return acc\n },\n { vendors: {}, purposes: {}, specialFeatures: {} }\n )\n}\n\n/**\n * @param {UserPreferenceVectors} userPreferenceVectors\n * @returns {PreferenceVectors}\n */\nconst userPreferenceVectors = ({\n vendorConsents,\n vendorLegitimateInterests,\n purposeConsents,\n purposeLegitimateInterests,\n specialFeatureOptins\n}) => {\n return {\n vendors: {\n consent: vendorConsents,\n legInterest: vendorLegitimateInterests\n },\n purposes: {\n consent: purposeConsents,\n legInterest: purposeLegitimateInterests\n },\n specialFeatures: {\n optIn: specialFeatureOptins\n }\n }\n}\n\n/**\n * @param {import('@mol-ads/tcf-core').TCModel} tcModel\n * @param {boolean} hasUserSelectedTheirPreference\n * @returns {{vendorLegitimateInterests: Vector, purposeLegitimateInterests: Vector}}\n */\nfunction legitimateInterestPreferences(\n tcModel,\n hasUserSelectedTheirPreference\n) {\n const defaultLegitimateInterests = () => {\n const getTCFV2_2LegIntPurposes = () =>\n Object.values(tcModel.gvl.purposes)\n .map(({ id }) => id)\n .filter((id) => TCFVersion2_2_SupportedPurposeLI.includes(id))\n\n const purposeLegitimateInterests = new Vector()\n\n const legIntPurposes = isTCFVersion2_2(tcModel.gvl.tcfPolicyVersion)\n ? getTCFV2_2LegIntPurposes()\n : tcModel.gvl.purposes\n\n purposeLegitimateInterests.set(legIntPurposes)\n const vendorLegitimateInterests = new Vector()\n vendorLegitimateInterests.setAll(tcModel.gvl.vendors)\n return { vendorLegitimateInterests, purposeLegitimateInterests }\n }\n\n const userSelectedLegitimateInterests = () => ({\n purposeLegitimateInterests: tcModel.purposeLegitimateInterests,\n vendorLegitimateInterests: tcModel.vendorLegitimateInterests\n })\n\n return hasUserSelectedTheirPreference\n ? userSelectedLegitimateInterests()\n : defaultLegitimateInterests()\n}\n\n/**\n * @param {import('../ui/Ui').CmpModelForUi} cmpModel\n * @returns {UserPrefs}\n */\nexport function createUserPreference(cmpModel) {\n const { vendorConsents, purposeConsents, specialFeatureOptins } =\n cmpModel.tcModel\n const { vendorLegitimateInterests, purposeLegitimateInterests } =\n legitimateInterestPreferences(\n cmpModel.tcModel,\n cmpModel.hasUserSelectedTheirPreference\n )\n const iabUserPrefs = userPreferenceModel(\n userPreferenceVectors({\n vendorConsents,\n vendorLegitimateInterests,\n purposeConsents,\n purposeLegitimateInterests,\n specialFeatureOptins\n })\n )\n return {\n ...iabUserPrefs,\n nonTcfVendors: cmpModel.acmVendors.consents || {},\n nonRegisteredVendors: cmpModel.nonRegisteredVendors.consents || {}\n }\n}\n\n/**\n * @param {import('../ui/Ui').CmpModelForUi} cmpModel\n * @returns {UserPrefs}\n */\nexport const consentOrPayPreferences = (cmpModel) => {\n const mutablePurposes = consentOrPayDisplayPurposes\n .filter(\n ({ type, isConsentImmutable }) => type === 'stacks' && !isConsentImmutable\n )\n .map(({ id }) => cmpModel.tcModel.gvl.stacks[id].purposes)\n .flat()\n .map(String)\n\n const purposes = Object.keys(cmpModel.tcModel.gvl.purposes).reduce(\n (acc, id) => {\n const consent = !mutablePurposes.includes(id)\n acc[id] = TCFVersion2_2_SupportedPurposeLI.includes(parseInt(id))\n ? { consent, legInterest: true }\n : { consent }\n return acc\n },\n {}\n )\n\n const vendors = Object.values(cmpModel.tcModel.gvl.vendors)\n .filter(({ deletedDate }) => !deletedDate)\n .reduce((acc, vendor) => {\n acc[vendor.id] = {}\n if (vendor.legIntPurposes.length) {\n acc[vendor.id].legInterest = true\n }\n if (vendor.purposes.length) {\n acc[vendor.id].consent = true\n }\n return acc\n }, {})\n\n return {\n purposes,\n vendors,\n nonTcfVendors: cmpModel.acmVendors.vendorIds.reduce((acc, id) => {\n acc[id] = { consent: true }\n return acc\n }, {}),\n nonRegisteredVendors: cmpModel.nonRegisteredVendors.vendorIds.reduce(\n (acc, id) => {\n acc[id] = { consent: true }\n return acc\n },\n {}\n ),\n specialFeatures: {\n 1: { optIn: true },\n 2: { optIn: true }\n }\n }\n}\n\n/**\n * @typedef {Object} IABUserPrefs\n * @property {PurposePreference} purposes\n * @property {SpecialFeaturePreference} specialFeatures\n * @property {VendorsPreference} vendors\n */\n\n/**\n * @typedef {Object} NonIABUserPrefs\n * @property {import('../cmp/NonIABModel').Consents} nonTcfVendors\n * @property {import('../cmp/NonIABModel').Consents} nonRegisteredVendors\n */\n\n/** @typedef {IABUserPrefs & NonIABUserPrefs} UserPrefs */\n\n/**\n * @typedef {Object} Preference\n * @property {boolean} [consent]\n * @property {boolean} [legInterest]\n */\n\n/** @typedef {Record} PurposePreference */\n/** @typedef {Record} SpecialFeaturePreference */\n\n/**\n * @typedef {Object} UserPreferenceVectors\n * @property {import('@mol-ads/tcf-core').Vector} vendorConsents\n * @property {import('@mol-ads/tcf-core').Vector} vendorLegitimateInterests\n * @property {import('@mol-ads/tcf-core').Vector} purposeConsents\n * @property {import('@mol-ads/tcf-core').Vector} purposeLegitimateInterests\n * @property {import('@mol-ads/tcf-core').Vector} specialFeatureOptins\n */\n\n/**\n * @typedef {Object} PreferenceVectors\n * @property {{consent: Vector, legInterest: Vector}} vendors\n * @property {{consent: Vector, legInterest: Vector}} purposes\n * @property {{optIn: Vector}} specialFeatures\n */\n","// @ts-check\nimport {\n consentOrPayPreferences,\n createUserPreference\n} from './user-preference'\nimport pick from 'lodash.pick'\nimport {\n consentOrPayDisplayPurposes,\n nonConsentOrPayDisplayPurposes\n} from './display-purposes'\n\n/**\n * @param {IntMap} vendors\n * @param {(...any) => void} log\n * @returns {IntMap}\n */\nfunction removeUnconsentableVendors(vendors, log) {\n const consentableVendors = Object.values(vendors).filter((vendor) => {\n const consentable =\n vendor.purposes.length !== 0 ||\n vendor.legIntPurposes.length !== 0 ||\n vendor.specialPurposes.length !== 0\n !consentable && log('removing', vendor.id, vendor.name)\n return consentable\n })\n return consentableVendors.reduce((acc, vendor) => {\n acc[vendor.id] = vendor\n return acc\n }, {})\n}\n\n/**\n * @param {IntMap} vendors\n * @param {Array} publisherRestrictions\n * @returns {IntMap}\n */\nfunction applyFlexiblePurposes(vendors, publisherRestrictions) {\n const restrictPurposeIds = new Set([...publisherRestrictions])\n return Object.entries(vendors).reduce((acc, [id, v]) => {\n v.purposes = Array.from(\n new Set([\n ...v.purposes,\n ...v.flexiblePurposes.filter((purposeId) =>\n restrictPurposeIds.has(purposeId)\n )\n ])\n )\n v.legIntPurposes = v.legIntPurposes.filter(\n (purposeId) => !restrictPurposeIds.has(purposeId)\n )\n acc[id] = v\n return acc\n }, {})\n}\n\n/**\n * @param {Array} displayPurposes\n * @returns {Array}\n */\nconst getStackIds = (displayPurposes) =>\n displayPurposes\n .filter((purpose) => purpose.type === 'stacks')\n .map(({ id }) => id)\n\n/**\n * @param {UIModelOpts} opts\n * @returns {UIModel}\n */\nexport function createModel({\n cmpModel,\n currentLevel,\n log,\n uiLevel,\n consentOrPay,\n isMailEssentialSubscriber,\n consentOrPaySubscriptionURL,\n isUserLoggedIn,\n isNewUser\n}) {\n const gvl = cmpModel.tcModel.gvl\n const {\n purposes,\n specialPurposes,\n features,\n specialFeatures,\n dataCategories\n } = gvl\n const stacks = consentOrPay\n ? pick(gvl.stacks, getStackIds(consentOrPayDisplayPurposes))\n : pick(gvl.stacks, getStackIds(nonConsentOrPayDisplayPurposes))\n\n const displayPurposes = consentOrPay\n ? consentOrPayDisplayPurposes\n : nonConsentOrPayDisplayPurposes\n const vendors = applyFlexiblePurposes(\n removeUnconsentableVendors(JSON.parse(JSON.stringify(gvl.vendors)), log),\n cmpModel.tcModel.publisherRestrictions\n .getRestrictions()\n .map((restriction) => restriction.purposeId)\n )\n\n const userPrefs =\n consentOrPay && isNewUser\n ? consentOrPayPreferences(cmpModel)\n : createUserPreference(cmpModel)\n const nonTcfVendors = cmpModel.acmVendors.cvl\n const nonRegisteredVendors = cmpModel.nonRegisteredVendors.cvl\n return {\n config: {\n hash: {\n purposes,\n specialPurposes,\n features,\n specialFeatures,\n vendors,\n stacks,\n nonTcfVendors,\n nonRegisteredVendors,\n dataCategories\n },\n userPrefs,\n displayPurposes,\n consentOrPay,\n consentOrPaySubscriptionURL,\n isMailEssentialSubscriber,\n isUserLoggedIn\n },\n currentLevel: uiLevel || currentLevel\n }\n}\n\n/**\n * @typedef {Object} UIModelOpts\n * @property {import('./Ui').UiLevel} currentLevel\n * @property {import('./Ui').UiLevel} uiLevel\n * @property {import('./Ui').CmpModelForUi} cmpModel\n * @property {boolean} consentOrPay\n * @property {boolean} isMailEssentialSubscriber\n * @property {string} [consentOrPaySubscriptionURL]\n * @property {boolean} isUserLoggedIn\n * @property {boolean} isNewUser\n * @property {(...any) => void} log\n */\n\n/**\n * @typedef {Object} UIModel\n * @property {UIModelConfig} config\n * @property {import('./Ui').UiLevel} currentLevel\n */\n\n/**\n * @typedef {Object} UIModelConfig\n * @property {UIGVLModel} hash\n * @property {import('./user-preference').UserPrefs} userPrefs\n * @property {DisplayPurposes} displayPurposes\n * @property {boolean} consentOrPay\n * @property {string|undefined} consentOrPaySubscriptionURL\n * @property {boolean} isMailEssentialSubscriber\n * @property {boolean} isUserLoggedIn\n */\n/**\n * @typedef {Object} UIGVLModel\n * @property {IntMap} purposes\n * @property {IntMap} specialPurposes\n * @property {IntMap} features\n * @property {IntMap} specialFeatures\n * @property {IntMap} vendors\n * @property {IntMap} stacks\n * @property {IntMap } [dataCategories]\n * @property {import('../cmp/NonIABModel').NonIABVendorList} nonTcfVendors\n * @property {import('../cmp/NonIABModel').NonIABVendorList} nonRegisteredVendors\n */\n\n/**\n * @template T\n * @typedef {import('@mol-ads/tcf-core').IntMap} IntMap\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').Purpose} Purpose\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').Feature} Feature\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').Vendor} Vendor\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').Stack} Stack\n */\n\n/**\n * @typedef {Array<{type: string, id: number, isConsentImmutable?: boolean, isLIImmutable?: boolean}>} DisplayPurposes\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').DataCategory} DataCategory\n */\n","// @ts-check\n\nimport { createLog } from '../utils/logger'\nimport { Broker } from '../utils/broker'\nimport { createModel } from './model'\n\nconst log = createLog()\n\nconst uiNamespace = '@mol-fe/mol-fe-cmp'\n\nfunction loadScript(uiScriptBase, appState) {\n log('loadScript', appState)\n const script = (src) => {\n const script = document.createElement('script')\n script.dataset.state = JSON.stringify(appState)\n script.src = src\n script.id = 'mol-fe-cmp-script'\n return script\n }\n\n const src = uiScriptBase\n document.body.appendChild(script(src))\n}\n\nfunction uiHandlers(\n broker,\n clientBroker,\n cmpUpdateHandlers,\n removeStorageListener\n) {\n const handler =\n (h) =>\n (...args) => {\n if (removeStorageListener) {\n removeStorageListener()\n removeStorageListener = null\n }\n h(...args)\n }\n\n broker.on(\n 'close',\n handler((data) => {\n cmpUpdateHandlers.updateConsent(data)\n })\n )\n broker.on(\n 'close:allow_all',\n handler(() => {\n cmpUpdateHandlers.consentToAll()\n })\n )\n broker.on(\n 'close:deny_all',\n handler(() => {\n cmpUpdateHandlers.dissentToAll()\n })\n )\n broker.on('close:allow_essential', cmpUpdateHandlers.dissentToAll)\n\n broker.on('level_changed', (data) => {\n log('level_changed', data)\n cmpUpdateHandlers.levelChanged(data)\n clientBroker.emit('level_changed', data)\n })\n}\n\nfunction handleExternalPreferenceUpdate(broker, reloadTcModel) {\n const handler = ({ key, newValue }) => {\n if (key !== 'mol.ads.cmp.tcf.client') return\n remove()\n const tcString = newValue\n try {\n reloadTcModel(tcString)\n broker.emit('close')\n } catch (error) {\n console.error(error)\n }\n }\n\n window.addEventListener('storage', handler)\n\n const remove = () => {\n window.removeEventListener('storage', handler)\n }\n return remove\n}\n\nexport default class Ui {\n /**\n * @type {Promise|undefined}\n */\n #pBannerIsReady\n\n /** @type {boolean} */\n #scriptLoaded\n\n /** @type {import('../config/config').Brand|undefined} */\n #brand\n\n /** @type {string} */\n #uiScriptUrl\n\n /** @type {'mobile'|'desktop'|undefined} */\n #renderPlatform\n\n /** @type {UiLevel|undefined} */\n #uiLevel\n\n /** @type {Broker} */\n #clientBroker\n\n /** @type {string} */\n #brokerId\n\n /** @type {Broker} */\n #broker\n\n /** @type {boolean} */\n #consentOrPay\n\n /** @type {boolean} */\n #isMailEssentialSubscriber\n\n /** @type {string|undefined} */\n #consentOrPaySubscriptionURL\n\n /** @type {boolean} */\n #isUserLoggedIn\n\n /**\n * @param {UiOpts} opts\n */\n constructor({\n brand,\n uiScriptUrl,\n renderPlatform,\n uiLevel,\n clientBroker,\n consentOrPay,\n isMailEssentialSubscriber,\n consentOrPaySubscriptionURL,\n isUserLoggedIn\n }) {\n this.#scriptLoaded = false\n this.#brand = brand\n this.#uiScriptUrl = uiScriptUrl\n this.#renderPlatform = renderPlatform\n this.#uiLevel = uiLevel\n this.#clientBroker = clientBroker\n this.#consentOrPay = !!consentOrPay\n this.#isMailEssentialSubscriber = !!isMailEssentialSubscriber\n this.#consentOrPaySubscriptionURL = consentOrPaySubscriptionURL\n this.#isUserLoggedIn = !!isUserLoggedIn\n this.#brokerId = Math.random().toString(36).substring(2)\n this.#broker = new Broker(\n uiNamespace,\n '@mol-ads/mol-ads-tcf',\n this.#brokerId\n )\n this.#pBannerIsReady = undefined\n }\n\n /**\n * @param {*} uiLevel\n * @param {{cmpModel: CmpModelForUi, cmpUpdateHandlers: CmpUpdateHandlers, isNewUser: boolean}} opts\n */\n open = (uiLevel, { cmpModel, cmpUpdateHandlers, isNewUser }) => {\n const model = createModel({\n cmpModel,\n currentLevel: this.#uiLevel,\n log,\n uiLevel,\n consentOrPay: this.#consentOrPay,\n isMailEssentialSubscriber: this.#isMailEssentialSubscriber,\n consentOrPaySubscriptionURL: this.#consentOrPaySubscriptionURL,\n isUserLoggedIn: this.#isUserLoggedIn,\n isNewUser\n })\n log('open', model)\n\n this.#pBannerIsReady = new Promise((resolve) => {\n this.#broker.once('is_ready', () => {\n resolve()\n })\n })\n\n if (!this.#scriptLoaded) {\n const removeStorageListener = handleExternalPreferenceUpdate(\n this.#broker,\n cmpUpdateHandlers.reloadTcModel\n )\n uiHandlers(\n this.#broker,\n this.#clientBroker,\n cmpUpdateHandlers,\n removeStorageListener\n )\n loadScript(this.#uiScriptUrl, {\n ...model,\n renderPlatform: this.#renderPlatform,\n brand: this.#brand,\n id: this.#brokerId\n })\n this.#scriptLoaded = true\n } else {\n this.#broker.emit('open', model)\n }\n }\n\n close = () => {\n log('closing UI')\n if (this.#pBannerIsReady) {\n this.#pBannerIsReady.then(() => {\n this.#broker.emit('close')\n })\n }\n }\n\n notifyUserPreferenceCaptured = () => {\n log('publishing user_consent_captured')\n this.#broker.emit('user_consent_captured')\n }\n}\n\n/**\n * @typedef {Object} CmpModelForUi\n * @property {import('@mol-ads/tcf-core').TCModel} tcModel\n * @property {boolean} hasUserSelectedTheirPreference\n * @property {import('../cmp/NonIABModel').UiModel} acmVendors\n * @property {import('../cmp/NonIABModel').UiModel} nonRegisteredVendors\n */\n\n/**\n * @typedef {Recordvoid>} CmpUpdateHandlers\n */\n\n/**\n * @typedef {import('../config/config').UILevel} UiLevel\n */\n\n/**\n * @typedef {Pick & { clientBroker: Broker}} UiOpts\n */\n","// @ts-check\n/**\n * @param {import('./utils/broker').Broker} broker\n * @param {import('./cmp/Cmp').Cmp} cmp\n * @param {import('./ui/Ui').default} ui\n */\nexport default function clientApi (broker, cmp, ui) {\n broker.on('open', ({ uiLevel, uuid }) => {\n if (uuid) {\n cmp.setUuid(uuid)\n }\n cmp.openUi(uiLevel)\n })\n\n broker.on('dissentToAll', ({ uuid }) => {\n ui.close()\n cmp.setUuid(uuid)\n cmp.setCurrentLevel('Level1')\n cmp.dissentToAll()\n })\n\n broker.on('consentToAll', ({ uuid }) => {\n ui.close()\n cmp.setUuid(uuid)\n cmp.setCurrentLevel('Level1')\n cmp.consentToAll()\n })\n\n broker.on('ads-initialised', () => {\n // send message to Ui\n ui.notifyUserPreferenceCaptured()\n })\n}\n","import { createLog, debugEnabled } from './utils/logger'\n\nconst log = createLog()\n\nconst onContentLoaded = handler => {\n if (['complete', 'loaded', 'interactive'].includes(document.readyState)) {\n handler()\n } else {\n document.addEventListener('DOMContentLoaded', handler)\n }\n}\n\nexport default async function loadStorage (broker, brokerId, scriptBase) {\n return new Promise((resolve, reject) => {\n const path = `${scriptBase}/storage/index.html`\n const srcPath = debugEnabled ? `${path}?adsDebug=tcfv2` : path\n const iframe = document.createElement('iframe')\n iframe.style.display = 'none'\n iframe.title = 'TCFV2 Storage'\n iframe.src = `${srcPath}#brokerId=${brokerId}`\n\n const onLoad = async () => {\n log('loaded')\n const { contentWindow } = iframe\n\n iframe.removeEventListener('load', onLoad)\n\n if (!contentWindow) {\n reject(new Error('Couldn\\'t successfully create CMP'))\n }\n }\n\n iframe.addEventListener('load', onLoad)\n iframe.addEventListener('error', reject)\n\n broker.on('storageLoaded', data => {\n log('storage', data)\n if (!data.canStoreUserPreference) {\n const parent = iframe.parentNode\n if (parent) {\n log('unloading iframe')\n parent.removeChild(iframe)\n }\n resolve({ tcData: data.tcData })\n return\n }\n resolve({ iframe, tcData: data.tcData })\n })\n\n onContentLoaded(() => document.body.appendChild(iframe))\n })\n}\n","// @ts-check\nimport { createLog } from '../utils/logger'\n\nconst log = createLog()\n\nclass TimeoutError extends Error {\n constructor(ms) {\n super(`Exceeded ${ms}`)\n }\n}\n\nconst timeout = (ms) => new Promise((resolve) => setTimeout(resolve, ms))\n\nconst errorAfter = async (ms, error = new TimeoutError(ms)) => {\n await timeout(ms)\n throw error\n}\n\nconst raceWithin = (ms, promise, error) =>\n Promise.race([promise, errorAfter(ms, error)])\n\nconst repeatUntil = (\n predicate,\n interval = 10,\n timeout = Number.MAX_SAFE_INTEGER\n) =>\n new Promise((resolve, reject) => {\n const start = Date.now()\n const check = async () => {\n const result = await predicate()\n if (!result) {\n if (Date.now() - start < timeout) {\n setTimeout(check, interval)\n } else {\n reject(new Error(`Timeout: exceeded ${timeout}ms`))\n }\n } else {\n resolve(result)\n }\n }\n check()\n })\n\nconst request = (opts) => {\n let method = 'GET'\n let url\n let timeout = 3000\n let headers = {}\n let data\n if (typeof opts === 'string') {\n url = opts\n } else {\n ;({ method = 'GET', url, timeout = 3000, headers = {}, data } = opts)\n }\n const xhttp = new XMLHttpRequest()\n\n const promise = new Promise((resolve, reject) => {\n xhttp.onreadystatechange = function () {\n if (this.readyState === 4) {\n if (this.status > 199 && this.status < 300) {\n resolve(this.responseText)\n } else {\n reject(new Error(`Error status ${this.status}: ${this.statusText}`))\n }\n }\n }\n xhttp.open(method, url, true)\n Object.entries(headers).forEach(([k, v]) => xhttp.setRequestHeader(k, v))\n if (data) {\n xhttp.send(data)\n } else {\n xhttp.send()\n }\n })\n\n return timeout ? raceWithin(timeout, promise) : promise\n}\n\nexport default class Persist {\n /**\n * @type {string|undefined}\n */\n #backendUrl\n\n /**\n * @type {string|undefined}\n */\n #channel\n\n /**\n * @type {string|undefined}\n */\n #platform\n\n /**\n * @type {string}\n */\n #domain\n\n /**\n * @type {'tcfv2'|'lgpd'}\n */\n #cmpModel\n\n /**\n * @type {Array|undefined}\n */\n #tags\n\n /**\n * @param {PersistOpts} opts\n */\n constructor({\n backendUrl,\n channel,\n platform,\n domain = location.host,\n cmpModel = 'tcfv2',\n tags\n }) {\n this.#backendUrl = backendUrl\n this.#channel = channel\n this.#platform = platform\n this.#domain = domain\n this.#cmpModel = cmpModel\n this.#tags = tags\n }\n\n /**\n * @param {SaveOpts} opts\n */\n saveTCString = async ({\n uuid,\n tcString,\n consentDegree,\n nrvString,\n addtlConsent\n }) => {\n if (!this.#backendUrl) {\n log('backendUrl not defined, will not update backend')\n return\n }\n\n const tryToSend = async (data) => {\n try {\n log('trying to send update to backend. payload:', data)\n await request({\n method: 'POST',\n url: this.#backendUrl,\n headers: {\n 'Content-Type': 'application/json'\n },\n data: JSON.stringify(data)\n })\n log('update sent to backend successfully')\n return true\n } catch (e) {\n log('send to backend failed with:', e.message)\n log('send to backend rescheduled 5s')\n }\n }\n /**\n * @type {PersistPayload}\n */\n const value = {\n addtlConsent,\n consent: consentDegree,\n domain: this.#domain,\n euconsent: tcString,\n nrvString,\n platform: this.#platform,\n uuid,\n version: 0,\n cmp: this.#cmpModel\n }\n if (this.#channel) {\n value.channel = this.#channel\n }\n if (this.#tags) {\n value.tags = this.#tags\n }\n\n await repeatUntil(() => tryToSend(value), 10000)\n }\n}\n\n/**\n * @typedef {Object} SaveOpts\n * @property {string} uuid\n * @property {string} tcString\n * @property {'yes'|'no'|'partial'} consentDegree\n * @property {string} addtlConsent\n * @property {string} nrvString\n */\n\n/**\n * @typedef {Object} PersistOpts\n * @property {string|undefined} backendUrl\n * @property {string|undefined} channel\n * @property {string|undefined} platform\n * @property {string} [domain]\n * @property {CmpModel} cmpModel\n * @property {Array} [tags]\n */\n\n/**\n * @typedef {Object} PersistPayload\n * @property {string} addtlConsent\n * @property {'yes'|'no'|'partial'} consent\n * @property {string} domain\n * @property {string} euconsent\n * @property {string} nrvString\n * @property {string|undefined} platform\n * @property {string} uuid\n * @property {number} version\n * @property {string} [channel]\n * @property {CmpModel} cmp\n * @property {Array} [tags]\n */\n\n/**\n * @typedef {'tcfv2'|'lgpd'|undefined} CmpModel\n */\n","/* eslint-disable camelcase */\n// @ts-check\nimport { createLog } from '../utils/logger'\nimport { TCString } from '@mol-ads/tcf-core'\nimport { isTCFVersion2_2 } from '../utils/policyVersion'\nconst log = createLog()\n\n/**\n * @type {Record}\n */\nconst gvlSpecForTcfPolicyLookup = {\n 4: '3'\n}\n\n/**\n * @param {Array} clientGVLUIVersionParts\n * @returns {boolean}\n */\nconst isClientGVLVersionGVLSpec3OrAbove = (clientGVLUIVersionParts) =>\n clientGVLUIVersionParts.length === 2\n\n/**\n * @param {string} gvlSpecificationVersion\n * @param {string} clientGvlSpecVersion\n * @returns {boolean}\n */\nconst gvlUiVersionAndTcStringGVLSpecMatch = (\n gvlSpecificationVersion,\n clientGvlSpecVersion\n) => `v${gvlSpecificationVersion}` === clientGvlSpecVersion\n/**\n * @param {string|undefined} tcString\n * @param {string|number} clientGvlUiVersion\n * @return {{gvlVersion: string, gvlUiVersion: string}}\n */\nfunction getGVLVersions(tcString, clientGvlUiVersion) {\n if (!tcString) {\n log('no tcString, returning configured gvlUiVersion', clientGvlUiVersion)\n return {\n gvlVersion: `${clientGvlUiVersion}`,\n gvlUiVersion: `${clientGvlUiVersion}`\n }\n }\n\n /** @type {TCModel} */\n const tcModel = TCString.decode(tcString)\n const { vendorListVersion } = tcModel\n const tcStringTCFPolicyVersion = Number(tcModel.policyVersion)\n const gvlSpecificationVersion =\n gvlSpecForTcfPolicyLookup[tcStringTCFPolicyVersion] || ''\n const gvlVersion = parseInt(vendorListVersion.toString())\n\n log('gvlVersion from tcString', gvlVersion)\n\n const clientGvlUiVersionParts = clientGvlUiVersion.toString().split('/')\n\n if (isClientGVLVersionGVLSpec3OrAbove(clientGvlUiVersionParts)) {\n const [clientGvlSpecVersion, clientGvlVersion] = clientGvlUiVersionParts\n const gvlUiVersion = Number(clientGvlVersion)\n\n return gvlUiVersionAndTcStringGVLSpecMatch(\n gvlSpecificationVersion,\n clientGvlSpecVersion\n )\n ? {\n gvlVersion: `v${gvlSpecificationVersion}/${gvlVersion}`,\n gvlUiVersion: `v${gvlSpecificationVersion}/${Math.max(\n gvlVersion,\n gvlUiVersion\n )}`\n }\n : {\n gvlVersion: isTCFVersion2_2(tcStringTCFPolicyVersion)\n ? `v3/${gvlVersion}`\n : `${gvlVersion}`,\n gvlUiVersion: `${clientGvlUiVersion}`\n }\n } else {\n return isTCFVersion2_2(tcStringTCFPolicyVersion)\n ? {\n gvlVersion: `v3/${gvlVersion}`,\n gvlUiVersion: `${clientGvlUiVersion}`\n }\n : {\n gvlVersion: `${gvlVersion}`,\n gvlUiVersion: `${Math.max(gvlVersion, Number(clientGvlUiVersion))}`\n }\n }\n}\n\n/**\n * @param {string|number|undefined} _nrvVersion\n * @param {string} nrvUiVersionFromClient\n * @return {{nrvVersion: number, nrvUiVersion: number}}\n */\nfunction getNrvVersions(_nrvVersion, nrvUiVersionFromClient) {\n const nrvVersion = _nrvVersion\n ? Number(_nrvVersion)\n : Number(nrvUiVersionFromClient)\n let nrvUiVersion = parseInt(nrvUiVersionFromClient)\n nrvUiVersion = nrvVersion ? Math.max(nrvVersion, nrvUiVersion) : nrvUiVersion\n log('selected nrvVersions', { nrvVersion, nrvUiVersion })\n return { nrvVersion, nrvUiVersion }\n}\n\n/**\n * @param {string|number|undefined} _cvlVersion\n * @param {string|number} cvlUiVersionFromClient\n * @return {{cvlVersion: string|number, cvlUiVersion: number}}\n */\nfunction getCvlVersions(_cvlVersion, cvlUiVersionFromClient) {\n let cvlUiVersion = Number(cvlUiVersionFromClient)\n /** @type {string|number} */\n let cvlVersion\n // this is only necessary because the initial version '0.0.1', all following versions are integers\n if (_cvlVersion && !Number(_cvlVersion)) {\n cvlVersion = _cvlVersion\n } else if (cvlUiVersionFromClient && !Number(cvlUiVersionFromClient)) {\n cvlVersion = cvlUiVersionFromClient\n } else {\n cvlVersion = _cvlVersion\n ? Number(_cvlVersion)\n : cvlUiVersionFromClient\n ? Number(cvlUiVersionFromClient)\n : cvlUiVersion\n cvlUiVersion = cvlVersion\n ? Math.max(cvlVersion, cvlUiVersion)\n : cvlUiVersion\n }\n log('selected cvlVersions', { cvlVersion, cvlUiVersion })\n return { cvlVersion, cvlUiVersion }\n}\n\n/**\n * @param {OverrideableByStoredConfigItems} selectedTCDataItems\n * @param {ClientConfig} clientConfig\n * @return {{gvlVersion: string, gvlUiVersion: string, nrvVersion: number, nrvUiVersion: number, cvlVersion: string|number, cvlUiVersion: number}}\n */\nfunction getVendorListVersions(selectedTCDataItems, clientConfig) {\n const { tcString, nrvVersion, cvlVersion } = selectedTCDataItems\n const { gvlUiVersion, nrvUiVersion, cvlUiVersion } = clientConfig\n return {\n ...getGVLVersions(tcString, gvlUiVersion),\n ...getNrvVersions(nrvVersion, nrvUiVersion),\n ...getCvlVersions(cvlVersion, cvlUiVersion)\n }\n}\n\nconst setGvlVersionByMolGvlVersion =\n /** @type {(molGvlVersion: string) => string} */\n (molGvlVersion) => molGvlVersion?.replace(/\\./g, '/')\n\nconst setGvlVersionByClientConfig =\n /** @type {(version: string, geo: string|undefined, gvlEnvironment: string|undefined) => string } */\n (version, geo, gvlEnvironment) =>\n geo && gvlEnvironment ? `${version}/${geo}/${gvlEnvironment}` : version\n\n/**\n * @param {ClientConfig} clientConfig\n * @param {string|undefined} molGvlVersion\n * @param {boolean} existingUser\n * @param {string} _gvlVersion\n * @param {string} _gvlUiVersion\n * @returns {{gvlVersion: number|string, gvlUiVersion: number|string, migratedGvlVersion: string|undefined, migrateUserGvl: boolean}}\n **/\nfunction applyMigrationConfig(\n clientConfig,\n molGvlVersion = '',\n existingUser,\n _gvlVersion,\n _gvlUiVersion\n) {\n const newUser = !clientConfig.tcString\n\n const gvlSpec2MigrationPattern = 'gvlVersion.Country.platform'.split('.')\n const gvlSpec3MigrationPattern = 'gvlSpec.gvlVersion.Country.platform'.split(\n '.'\n )\n const userMigratedToGvlVariant =\n molGvlVersion?.split('.').length === gvlSpec2MigrationPattern.length ||\n molGvlVersion?.split('.').length === gvlSpec3MigrationPattern.length\n\n const { gvlEnvironment, geo, useGeoDeviceVariantGVL = false } = clientConfig\n const migrateUserGvl =\n useGeoDeviceVariantGVL && !userMigratedToGvlVariant && existingUser\n\n const gvlVersion = userMigratedToGvlVariant\n ? setGvlVersionByMolGvlVersion(molGvlVersion)\n : newUser && useGeoDeviceVariantGVL\n ? setGvlVersionByClientConfig(_gvlVersion, geo, gvlEnvironment)\n : _gvlVersion\n\n const migratedGvlVersion =\n (!userMigratedToGvlVariant &&\n useGeoDeviceVariantGVL &&\n existingUser &&\n setGvlVersionByClientConfig(_gvlVersion, geo, gvlEnvironment)) ||\n undefined\n\n const gvlUiVersion =\n userMigratedToGvlVariant || useGeoDeviceVariantGVL\n ? setGvlVersionByClientConfig(_gvlUiVersion, geo, gvlEnvironment)\n : _gvlUiVersion\n\n return {\n gvlVersion,\n gvlUiVersion,\n migratedGvlVersion,\n migrateUserGvl\n }\n}\n\n/**\n * @param {OverrideableByStoredConfigItems} selectedTCDataItems\n * @param {ClientConfig} clientConfig\n * @param {boolean} existingUser\n */\nexport function getVendorListsAndMigrationVersions(\n selectedTCDataItems,\n clientConfig,\n existingUser\n) {\n const { molGvlVersion } = selectedTCDataItems\n const {\n gvlVersion: _gvlVersion,\n gvlUiVersion: _gvlUiVersion,\n ...nonTCFVendorListVersions\n } = getVendorListVersions(selectedTCDataItems, clientConfig)\n\n const { gvlVersion, gvlUiVersion, migratedGvlVersion, migrateUserGvl } =\n applyMigrationConfig(\n clientConfig,\n molGvlVersion,\n existingUser,\n _gvlVersion,\n _gvlUiVersion\n )\n\n return {\n ...nonTCFVendorListVersions,\n gvlVersion,\n gvlUiVersion,\n migratedGvlVersion,\n migrateUserGvl\n }\n}\n\n/**\n * @typedef {Object} OverrideableByStoredConfigItems\n * @property {string|undefined} tcString\n * @property {string|undefined} addtlConsent\n * @property {string|number|undefined} cvlVersion\n * @property {string|undefined} nrvString\n * @property {string|number|undefined} nrvVersion\n * @property {string|undefined} molGvlVersion\n * @property {number} nextRepromptVersion\n * @property {number} repromptVersion\n */\n\n/**\n * @typedef {import('./config').ClientConfig} ClientConfig\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-core').TCModel} TCModel\n */\n","export const publisherRestrictionPurposeIds = [3, 4]\n","// @ts-check\nimport { createLog } from '../utils/logger'\nimport { TCString } from '@mol-ads/tcf-core'\nimport { getVendorListsAndMigrationVersions } from './vendorListVersions'\nimport { publisherRestrictionPurposeIds as defaultPublisherRestrictionPurposeIds } from './publisherRestrictions'\n\nconst log = createLog()\n\n/**\n * @template T\n */\nexport class Config {\n /**\n * @type {T}\n */\n #config\n /**\n * @param {T} config\n */\n constructor(config) {\n this.#config = config\n }\n\n /**\n * @template {keyof T} K\n * @overload\n * @param {K} key\n * @return {T[K]|void}\n */\n /**\n * @overload\n * @return {T}\n */\n /**\n * @template {keyof T} K\n * @param {K} [key]\n * @return {T[K]|T|void}\n */\n get(key) {\n if (!key) return this.#config\n\n if (Object.prototype.hasOwnProperty.call(this.#config, key)) {\n return this.#config[key]\n }\n }\n}\n\n/**\n * @param {ClientConfig} clientConfig\n * @return {CmpFromClientConfig}\n */\nfunction getCmpConfigFromClientConfig(clientConfig) {\n const {\n backendUrl,\n brand,\n brokerId,\n controllerScriptBase,\n renderPlatform,\n showUi,\n uiLevel,\n uiScriptUrl,\n uuid,\n platform,\n publisherRestrictions\n } = clientConfig\n\n const publisherConsents = {\n purposes: brand?.primaryVendor.purposes || [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n legIntPurposes: brand?.primaryVendor.legIntPurposes || [5, 6, 8, 10]\n }\n\n return {\n backendUrl,\n brand,\n brokerId,\n controllerScriptBase,\n renderPlatform,\n showUi,\n uiLevel,\n uiScriptUrl,\n uuid,\n platform,\n publisherRestrictions:\n publisherRestrictions || defaultPublisherRestrictionPurposeIds,\n publisherConsents\n }\n}\n\n/**\n * @param {ClientConfig} clientConfig\n * @param {TCData|undefined} tcDataFromStorage\n * @return {{nextRepromptVersion: number, repromptVersion: number}}\n */\nfunction selectRepromptVersions(clientConfig, tcDataFromStorage) {\n const {\n repromptVersion: currentRepromptVersionFromClient,\n nextRepromptVersion: nextRepromptVersionFromClient\n } = clientConfig\n const { repromptVersion: repromptVersionFromStorage = 0 } =\n tcDataFromStorage || {}\n const repromptVersion = Math.max(\n currentRepromptVersionFromClient,\n repromptVersionFromStorage\n )\n const nextRepromptVersion = Math.max(\n repromptVersion,\n nextRepromptVersionFromClient\n )\n log('nextRepromptVersion', nextRepromptVersion)\n return { nextRepromptVersion, repromptVersion }\n}\n\n/**\n * @param {ClientConfig} clientConfig\n * @param {TCData|undefined} tcDataFromStorage\n * @return {OverrideableByStoredConfigItems}\n */\nfunction selectConfigBasedOnTCDataFromLocalStorage(\n clientConfig,\n tcDataFromStorage\n) {\n const {\n tcString: tcStringFromStorage = undefined,\n nrvString: nrvStringFromStorage = undefined,\n nrvVersion: nrvVersionFromStorage = undefined,\n addtlConsent: addtlConsentFromStorage = undefined,\n acmVersion: cvlVersionFromStorage,\n molGvlVersion: molGvlVersionFromStorage = undefined\n } = tcDataFromStorage || {}\n\n const {\n tcString: tcStringFromClient,\n addtlConsent: addtlConsentFromClient,\n cvlVersion: cvlVersionFromClient,\n nrvString: nrvStringFromClient,\n nrvVersion: nrvVersionFromClient,\n molGvlVersion: molGvlVersionFromClient\n } = clientConfig || {}\n\n const repromptVersions = selectRepromptVersions(\n clientConfig,\n tcDataFromStorage\n )\n\n const configFromStorage = {\n tcString: tcStringFromStorage,\n nrvString: nrvStringFromStorage,\n nrvVersion: nrvVersionFromStorage,\n addtlConsent: addtlConsentFromStorage,\n cvlVersion: cvlVersionFromStorage,\n molGvlVersion: molGvlVersionFromStorage,\n ...repromptVersions\n }\n const configFromClient = {\n tcString: tcStringFromClient,\n nrvString: nrvStringFromClient,\n nrvVersion: nrvVersionFromClient,\n addtlConsent: addtlConsentFromClient,\n cvlVersion: cvlVersionFromClient,\n molGvlVersion: molGvlVersionFromClient,\n ...repromptVersions\n }\n log('clientString', tcStringFromClient)\n log('storedString', tcStringFromStorage)\n const selectStrings = (tcStringFromStorage, tcStringFromClient) => {\n const stored = TCString.decode(tcStringFromStorage).lastUpdated\n const client = TCString.decode(tcStringFromClient).lastUpdated\n log('stored', stored)\n log('client', client)\n return stored > client ? configFromStorage : configFromClient\n }\n\n if (tcStringFromClient && tcStringFromStorage) {\n return selectStrings(tcStringFromStorage, tcStringFromClient)\n } else if (tcStringFromClient) {\n return configFromClient\n } else {\n return configFromStorage\n }\n}\n\n/**\n * @param {Config} config\n * @param {TCData} [tcDataFromLocalStorage]\n * @return {Config}\n */\nexport function createCmpConfig(config, tcDataFromLocalStorage) {\n const clientConfig = config.get()\n const selectedTCDataItems = selectConfigBasedOnTCDataFromLocalStorage(\n clientConfig,\n tcDataFromLocalStorage\n )\n\n const {\n addtlConsent,\n nrvString,\n nextRepromptVersion,\n repromptVersion,\n tcString\n } = selectedTCDataItems\n\n const existingUser = !!clientConfig.tcString\n\n const {\n gvlVersion,\n gvlUiVersion,\n migratedGvlVersion,\n migrateUserGvl,\n ...nonTCFVendorListVersions\n } = getVendorListsAndMigrationVersions(\n selectedTCDataItems,\n clientConfig,\n existingUser\n )\n\n /**\n * @type {Config}\n */\n return new Config({\n ...getCmpConfigFromClientConfig(clientConfig),\n addtlConsent,\n tcString,\n nrvString,\n nextRepromptVersion,\n repromptVersion,\n ...nonTCFVendorListVersions,\n gvlVersion,\n gvlUiVersion,\n migratedGvlVersion,\n existingUser,\n migrateUserGvl\n })\n}\n\n/**\n * @template {ClientConfig} T\n * @param {T} config\n * @return {Config}\n */\nexport function createClientConfig(config) {\n log('config', config)\n return new Config({ cmpModel: 'tcfv2', ...config })\n}\n\n/**\n * @typedef {CmpFromClientConfig &\n * Pick &\n * Pick &\n * {gvlVersion: string|number, gvlUiVersion: string|number, migratedGvlVersion: string|undefined, existingUser: boolean, migrateUserGvl: boolean, publisherConsents: PublisherConsents}\n * } CMPConfig\n */\n\n/**\n * @typedef {Object} VendorListVersions\n * @property {number} gvlVersion\n * @property {number} gvlUiVersion\n * @property {number} nrvVersion\n * @property {number} nrvUiVersion\n * @property {string|number} cvlVersion\n * @property {number} cvlUiVersion\n */\n\n/**\n * @typedef {Omit & {migratedGvlVersion: string|undefined, existingUser: boolean, migrateUserGvl: boolean, gvlUiVersion: string}} _CMPConfig\n */\n\n/**\n * @typedef {Object} ClientConfig\n * @property {string} [addtlConsent]\n * @property {string} [backendUrl]\n * @property {Brand} [brand]\n * @property {string} [brokerId]\n * @property {string} [channel]\n * @property {string} controllerScriptBase\n * @property {string|number} cvlVersion\n * @property {string|number} cvlUiVersion\n * @property {string} [gvlEnvironment]\n * @property {string|number} gvlUiVersion\n * @property {string|number} gvlVersion\n * @property {number} nextRepromptVersion\n * @property {'mobile'|'desktop'} [renderPlatform]\n * @property {number} repromptVersion\n * @property {boolean|string} [showUi]\n * @property {boolean} [storeUserPreference]\n * @property {string} [tcString]\n * @property {UILevel} [uiLevel]\n * @property {string} uiScriptUrl\n * @property {string} [uuid]\n * @property {string} platform\n * @property {string} [nrvString]\n * @property {string} nrvUiVersion\n * @property {string|number} nrvVersion\n * @property {boolean} [useGeoDeviceVariantGVL]\n * @property {string} [molGvlVersion]\n * @property {string} [geo]\n * @property {'tcfv2'|'lgpd'} [cmpModel]\n * @property {Array} [publisherRestrictions]\n * @property {boolean} [consentOrPay]\n * @property {string} [consentOrPaySubscriptionURL]\n * @property {boolean} [dissentUser]\n * @property {boolean} [isUserLoggedIn]\n * @property {string} [domain]\n * @property {boolean} [isMailEssentialSubscriber]\n * @property {Array} [persistTags]\n */\n\n/**\n * @typedef {'Level1' | 'Level2'} UILevel\n */\n\n/**\n * @typedef {import('@mol-ads/tcf-cmpapi').TCData} TCData\n */\n\n/**\n * @typedef {Object} OverrideableByStoredConfigItems\n * @property {string|undefined} tcString\n * @property {string|undefined} addtlConsent\n * @property {string|number|undefined} cvlVersion\n * @property {string|undefined} nrvString\n * @property {string|number|undefined} nrvVersion\n * @property {string|undefined} molGvlVersion\n * @property {number} nextRepromptVersion\n * @property {number} repromptVersion\n */\n\n/**\n * @typedef {Pick & {publisherConsents: PublisherConsents}} CmpFromClientConfig\n */\n\n/**\n * @typedef {{level1Paragraphs: Array, primaryVendor: PrimaryVendor}} Brand\n */\n\n/**\n * @typedef {Object} PrimaryVendor\n * @property {Array} dataDeclaration\n * @property {Array} features\n * @property {Array} flexiblePurposes\n * @property {string} headingName\n * @property {Array} legIntPurposes\n * @property {string} name\n * @property {string} policyUrl\n * @property {Array} purposes\n * @property {Array} specialFeatures\n * @property {Array} specialPurposes\n */\n\n/**\n * @typedef {{purposes: Array, legIntPurposes: Array}} PublisherConsents\n */\n","// @ts-check\nimport 'whatwg-fetch'\nimport { Broker } from './utils/broker'\nimport { createCmp } from './cmp/Cmp'\nimport Ui from './ui/Ui'\nimport { createLog } from './utils/logger'\nimport clientApi from './clientApi'\nimport loadStorageIframe from './storage-iframe'\nimport Persist from './persist/Persist'\nimport * as Config from './config/config'\nimport { fetchVendorLists } from './utils/fetch-vendor-lists'\n\n// https://vendorlist.consensu.org/v3/vendor-list.json\n\nconst log = createLog()\n\n/**\n * @param {Broker} broker\n * @param {Config.Config} config\n */\nfunction createUi(broker, config) {\n const {\n uiLevel,\n renderPlatform,\n brand,\n uiScriptUrl,\n consentOrPay,\n isMailEssentialSubscriber,\n consentOrPaySubscriptionURL,\n isUserLoggedIn\n } = config.get()\n return new Ui({\n uiLevel,\n renderPlatform,\n brand,\n uiScriptUrl,\n clientBroker: broker,\n consentOrPay,\n isMailEssentialSubscriber,\n consentOrPaySubscriptionURL,\n isUserLoggedIn\n })\n}\n\n/**\n * @param {Broker} broker\n * @param {Config.Config} clientConfig\n */\nasync function launch(broker, clientConfig) {\n const {\n brokerId,\n controllerScriptBase,\n backendUrl,\n channel,\n platform,\n renderPlatform,\n storeUserPreference,\n uuid,\n showUi,\n uiLevel,\n cmpModel,\n consentOrPay,\n dissentUser,\n domain,\n persistTags\n } = clientConfig.get()\n const { tcData, iframe } =\n !!storeUserPreference &&\n (await loadStorageIframe(broker, brokerId, controllerScriptBase))\n const cmpConfig = Config.createCmpConfig(clientConfig, tcData)\n const {\n gvlVersion,\n cvlVersion,\n nrvVersion,\n migratedGvlVersion,\n ...remainingCmpConfig\n } = cmpConfig.get()\n const { gvl, cvl, nrv, newGvl } = await fetchVendorLists({\n gvlVersion,\n cvlVersion,\n nrvVersion,\n migratedGvlVersion\n })\n\n if (typeof gvl === 'string') {\n throw new Error(`unable to download GVL version: ${gvlVersion}`)\n }\n\n if (typeof cvl === 'string') {\n throw new Error(`unable to download CVL version: ${cvlVersion}`)\n }\n\n if (typeof nrv === 'string') {\n throw new Error(`unable to download NVL version: ${nrvVersion}`)\n }\n\n const newGvlRaw = newGvl && typeof newGvl !== 'string' ? newGvl : undefined\n\n log('gvlJson', gvl.version, gvl.json)\n log('cvlJson', cvl.json)\n log('nrvJson', nrv.json)\n log('newGvlJson', newGvlRaw?.json)\n\n const persist = new Persist({\n backendUrl,\n channel,\n platform: platform || renderPlatform,\n cmpModel,\n domain,\n tags: persistTags\n })\n const ui = createUi(broker, clientConfig)\n /**\n * @type import('./cmp/Cmp').CreateCmpOpts\n */\n const cmpOpts = {\n cvlJson: cvl.json,\n cvlVersion,\n gvlRaw: gvl,\n gvlVersion: gvl.version,\n newGvlRaw,\n nrvJson: nrv.json,\n nrvVersion,\n persist,\n storeTcString: !!storeUserPreference,\n ui,\n uuid,\n ...remainingCmpConfig\n }\n const cmp = await createCmp(cmpOpts)\n const _showUi = showUi === 'true' || showUi === true\n broker.emit('is_loaded')\n const message = {\n ns: '@mol-ads/mol-ads-cmp',\n id: brokerId,\n sender: 'mol-ads/mol-ads-cmp',\n action: 'is_loaded'\n }\n if (iframe) {\n iframe.contentWindow.postMessage(message, '*')\n }\n\n await cmp.isReady()\n clientApi(broker, cmp, ui)\n if (_showUi) {\n cmp.openUi(uiLevel)\n } else if (consentOrPay && dissentUser) {\n log('dissenting user')\n cmp.setCurrentLevel('Level 1')\n cmp.dissentToAll()\n cmp.notifyUsersPreferences()\n } else {\n cmp.notifyUsersPreferences()\n }\n broker.emit('is_ready')\n}\n\nsetTimeout(() => {\n const scriptTag = document.getElementById('mol-ads-tcfv2-script')\n /**\n * @type {Config.Config}\n **/\n const config = Config.createClientConfig(\n JSON.parse(scriptTag?.dataset.opts || '{}')\n )\n const { brokerId } = config.get()\n const broker = new Broker('@mol-ads/mol-ads-cmp', 'mol-ads-cmp', brokerId)\n launch(broker, config)\n}, 10)\n\n/**\n * @typedef {import('./config/config').ClientConfig} ClientConfig\n */\n"],"names":["TCF_LOCATOR_NAME","module","exports","cmpFrame","queue","currentWindow","window","frameLocator","hasEventListener","frames","ignore","top","parent","addFrame","doc","document","readyState","iframe","createElement","style","display","name","body","appendChild","removeEventListener","addEventListener","setTimeout","__tcfapi","gdprApplies","_len","arguments","length","args","Array","_key","callbackFn","parseInt","cmpLoaded","cmpStatus","push","event","source","postMessage","msgIsString","data","json","JSON","parse","_typeof","__tcfapiCall","payload","command","version","retValue","success","returnMsg","__tcfapiReturn","returnValue","callId","stringify","parameter","MAX_SAFE_INTEGER","argsTag","funcTag","genTag","freeGlobal","g","Object","freeSelf","self","root","Function","arrayPush","array","values","index","offset","objectProto","prototype","hasOwnProperty","objectToString","toString","Symbol","propertyIsEnumerable","spreadableSymbol","isConcatSpreadable","undefined","nativeMax","Math","max","baseFlatten","depth","predicate","isStrict","result","isFlattenable","value","isArray","isObjectLike","isLength","tag","type","isObject","call","isFunction","isArrayLike","isArrayLikeObject","isArguments","toKey","isSymbol","func","start","pick","object","props","key","basePickBy","basePick","iteratee","arrayMap","otherArgs","thisArg","apply","this","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","globalThis","e","obj","prop","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","indexOf","normalizeName","String","test","TypeError","toLowerCase","normalizeValue","iteratorFor","items","iterator","next","shift","done","Headers","headers","map","forEach","append","header","getOwnPropertyNames","consumed","_noBody","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","Error","arrayBuffer","byteOffset","then","text","match","encoding","exec","readAsText","chars","i","fromCharCode","join","readArrayBufferAsText","formData","decode","oldValue","has","callback","keys","entries","methods","Request","input","options","method","upcased","url","credentials","mode","signal","toUpperCase","AbortController","referrer","cache","reParamSearch","replace","Date","getTime","form","trim","split","bytes","decodeURIComponent","Response","bodyInit","status","RangeError","ok","statusText","clone","response","redirectStatuses","redirect","location","DOMException","err","message","stack","create","constructor","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","console","warn","responseURL","responseText","ontimeout","onabort","open","href","fixUrl","withCredentials","responseType","names","setRequestHeader","onreadystatechange","send","polyfill","fetch","TCFCommand","CmpStatus","DisplayStatus","EventStatus","target","Broker","ns","sender","id","_classCallCheck","random","substring","action","cb","_this","handleMessage","cancel","on","Command","param","listenerId","_defineProperty","assign","respond","invokeCallback","GetTCDataCommand","_Command","_callSuper","_inherits","throwIfParamInvalid","TCData","every","Number","isInteger","EventListenerQueue","Map","eventItems","eventQueue","queueNumber","eventItem","clear","size","CmpApiModel","cmpId","cmpVersion","eventStatus","tcModel","tcString","tcfPolicyVersion","LOADING","disabled","displayStatus","HIDDEN","_createClass","Disabled","_Response","concat","ERROR","AdditionalModel","vendorIds","addtlConsent","acmVersion","molGvlVersion","nrvString","nrvVersion","repromptVersion","isServiceSpecific","useNonStandardStacks","purposeOneTreatment","publisherCC","publisherCountryCode","outOfBand","allowedVendors","createVectorField","vendorsAllowed","disclosedVendors","vendorsDisclosed","purpose","consents","purposeConsents","legitimateInterests","purposeLegitimateInterests","vendor","vendorConsents","vendorLegitimateInterests","specialFeatureOptins","publisher","publisherConsents","publisherLegitimateInterests","customPurpose","publisherCustomConsents","publisherCustomLegitimateInterests","restrictions","createRestrictions","publisherRestrictions","purpRestrictions","retr","numRestrictions","getMaxVendorId","_loop","strVendorId","vendorId","getRestrictions","pRestrict","strPurpId","purposeId","restrictionType","vector","ids","reduce","booleanVector","_toConsumableArray","InAppTCData","_TCData","str","tpl","maxVendorId","repeat","strType","strPurp","firstPart","lastPart","Ping","apiVersion","vendorListVersion","gvlVersion","PingCommand","GetInAppTCDataCommand","_GetTCDataCommand","EncodingError","_Error","msg","_wrapNativeSuper","DecodingError","Base64Url","padding","LCM","BASIS","DICT","strBits","REVERSE_DICT","ConsentLanguages","langSet","Set","Fields","Cloneable","myClone","deepClone","item","itsType","_step","ar","_iterator","_createForOfIteratorHelper","s","subItem","f","RestrictionType","TCModelError","fieldName","passedValue","PurposeRestriction","_Cloneable","isValid","hashSeparator","purposeId_","idNum","NOT_ALLOWED","REQUIRE_CONSENT","REQUIRE_LI","otherPR","hash","splitUp","purpRestriction","BinarySearchTree","current","node","left","right","isEmpty","pre","parentSide","minVal","min","remove","tree","add","rootIndex","getRoot","rightTree","build","leftTree","DeviceDisclosureStorageAccessType","Segment","PurposeRestrictionVector","_this$gvl","gvl","vendors","legIntPurposes","includes","purposes","flexiblePurposes","purposeRestriction","isOkToHave","bitLength","lastEntry","vendorSet","bst","from","rType","isSameAs","contains","unHash","purposeIds","gvl_","_this2","SegmentIDs","_regeneratorRuntime","t","r","c","asyncIterator","u","toStringTag","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","arg","h","l","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","_defineProperties","_toPropertyKey","_getPrototypeOf","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","Boolean","valueOf","bind","_setPrototypeOf","toPrimitive","_toPrimitive","CORE","VENDORS_DISCLOSED","VENDORS_ALLOWED","PUBLISHER_TC","Vector","_context","maxId","set_","maxId_","unset","strId","_this3","itemResult","isValidNumber","_this4","isSet","isIntMap","intMap","_Fields$cmpId","_Fields$cmpVersion","_Fields$consentLangua","consentLanguage","_Fields$consentScreen","consentScreen","_Fields$created","created","_Fields$isServiceSpec","_Fields$lastUpdated","lastUpdated","_Fields$policyVersion","policyVersion","_Fields$publisherCoun","_Fields$publisherLegi","_Fields$publisherCons","_Fields$purposeConsen","_Fields$purposeLegiti","_Fields$purposeOneTre","_Fields$specialFeatur","_Fields$useNonStandar","_Fields$vendorListVer","_Fields$version","BitLength","BooleanEncoder","IntEncoder","numBits","bitString","DateEncoder","encode","round","date","setTime","FixedVectorEncoder","LangEncoder","firstLetter","charCodeAt","secondLetter","mid","VectorEncodingType","PurposeRestrictionVectorEncoder","prVector","getVendors","len","numEntries","startId","rangeField","lastVendorId","gvlVendorIds","nextGvlVendor","isRange","encodedString","j","isARange","anyBoolean","startOrOnlyVendorId","endVendorId","k","VendorVectorEncoder","rangeIsSmaller","ranges","range","retrString","bitField","headerLength","encodingType","bitFieldLength","minRangeLength","singleOrRange","rangeLength","curValue","RANGE","buildRangeEncoding","FIELD","isIdRange","firstId","secondId","rangeString","single","FieldEncoderMap","_ref","numCustomPurposes","FieldSequence","SegmentSequence","isForVendors","supportOOB","SegmentEncoder","segment","sequence","fieldSequence","KEY_TO_ID","segmentType","fieldEncoderMap","encoder","isPublisherCustom","bStringIdx","bits","SemanticPreEncoder","isReady","language","processor","processorFunctionIndex","vectorToIntMap","gvlVendorKey","deletedDate","GVLError","Json","sendCookies","timeout","req","DONE","absCall","asyncGeneratorStep","_asyncToGenerator","_next","_throw","GVL","versionOrVendorList","baseUrl","lang_","DEFAULT_LANGUAGE","isVendorList","populate","readyPromise","CACHE","versionedFilename","fetchJson","LATEST_CACHE_KEY","isLatest","latestFilename","LANGUAGE_CACHE","specialPurposes","features","specialFeatures","stacks","dataCategories","_fetchJson","_callee","t0","t1","t2","_x","gvlSpecificationVersion","fullVendorList","_changeLanguage","_callee2","lang","langUpper","cached","_context2","consentLanguages","languageFilename","cacheLanguage","_x2","gvlObject","vendors_","mapVendors","isReady_","getJson","byPurposeVendorMap","bySpecialPurposeVendorMap","byFeatureVendorMap","bySpecialFeatureVendorMap","legInt","consent","flexible","featureId","vId","purposeOrFeature","subType","special","properPurposeOrFeature","getFilteredVendors","specialPurposeId","specialFeatureId","changeLanguage","baseUrl_","questionableInstance","narrowVendorsTo","TCModel","updated","isInstanceOf","cmpId_","integer","cmpVersion_","consentScreen_","consentLanguage_","publisherCountryCode_","countryCode","vendorListVersion_","policyVersion_","num","version_","isServiceSpecific_","bool","useNonStandardStacks_","supportOOB_","purposeOneTreatment_","empty","setAllVendorConsents","setAllPurposeLegitimateInterests","setAllSpecialFeatureOptins","setAllPurposeConsents","setAllVendorLegitimateInterests","unsetAllVendorConsents","unsetAllPurposeLegitimateInterests","unsetAllSpecialFeatureOptins","unsetAllPurposeConsents","unsetAllVendorLegitimateInterests","numCustomPurposes_","customPurposes","sort","b","utcDate","UTC","getUTCFullYear","getUTCMonth","getUTCDate","TCString","out","process","segments","idx","dotMaybe","encodedTCString","segString","segTypeBits","ID_TO_KEY","GetVendorListCommand","tcModelVersion","AddEventListenerCommand","_get","RemoveEventListenerCommand","_TCFCommand$PING","PING","_TCFCommand$GET_TC_DA","GET_TC_DATA","_TCFCommand$GET_IN_AP","GET_IN_APP_TC_DATA","_TCFCommand$GET_VENDO","GET_VENDOR_LIST","_TCFCommand$ADD_EVENT","ADD_EVENT_LISTENER","_TCFCommand$REMOVE_EV","REMOVE_EVENT_LISTENER","CommandMap","SupportedVersions","API_KEY","CallResponder","customCommands","callQueue","apiCall","purgeQueuedCalls","params","isCustomCommand","isBuiltInCommand","_this$customCommands","queueCopy","_window","CmpApi","throwIfInvalidInt","callResponder","minValue","uiVisible","additionalModel","LOADED","VISIBLE","CMP_UI_SHOWN","DISABLED","TC_LOADED","USER_ACTION_COMPLETE","numUpdates","debugEnabled","_global$location","global","search","some","searchParam","_searchParam$split2","_slicedToArray","createLog","_console","log","isTCFVersion2_2","TCFVersion2_2_SupportedPurposeLI","consentOrPayDisplayPurposes","isConsentImmutable","isLIImmutable","isOptInImmutable","nonConsentOrPayDisplayPurposes","_TcModel_brand","WeakSet","TcModel","model","_ref$specialPurposeOn","specialPurposeOnlyDeclared","_classPrivateMethodInitSpec","gvlIsReady","updateUserPreferences","consentAll","dissentAll","hasUserDissentedToAll","hasUserConsentedToAll","consentedVendorCheck","_TcModelFactory$creat2","TcModelFactory","newModel","_ref2","_ref3","_ref4","setAll","_ref5","unsetAll","_assertClassBrand","_hasUserConsentedToAllVendors","_hasUserConsentedToAllPurposes","_hasConsentedToAllSpecialFeatureOptins","purposesFromDisplayPurposes","filter","_ref6","_ref7","purposesFromStacks","_ref8","_ref9","flat","consentedToAllPurposes","purposesIds","purposeRestrictions","vendorIdsDissentedByPurpose","constrainedByFlexPurpose","restriction","vendorHasRestriction","vendorIdDissentedByFlexiblePurpose","vendorRestrictedToConsent","hasConsented","consentedTests","consented","legitimateInterest","dissentedByPurpose","_ref10","_ref11","_this5","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","cmp","packageJson","createTcModelFromGvl","_createTcModelFromGvl","gvlRaw","createTcModelFromTcString","_createModelFromTcStr2","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","createModelFromTcString","createTcModelForRepromptedUser","_createTcModelForRepromptedUser","_callee3","existingTcModel","_ref2$keepDate","keepDate","opts","_context3","formPreferenceOpts","_objectSpread","getPreferencesOpt","createTcModelForExitingUserSimplifiedGvl","existingGvlRaw","newGvlRaw","getPurposes","newGvl","_x3","_consents","WeakMap","_consentString","_cvl","_vendorListVersion","_vendorIds","_NonIABModel_brand","NonIABModel","vendorList","consentString","_classPrivateFieldInitSpec","_classPrivateFieldSet","acc","provider_id","provider_name","policy_url","policyUrl","_classPrivateFieldGet","updateModel","getConsents","_decode","_encode","cvl","_n","F","fetchVendor","_fetchVendor","urls","_step$value","t3","t4","t5","gvlUrlBase","fileName","fetchGvl","_fetchGvl","versionParts","fallbackUrlVersion","fetchVendorLists","_x4","_fetchVendorLists","cvlVersion","migratedGvlVersion","cvlUrl","nrvUrl","vendorLists","all","fromEntries","packageJsonCmp","Cmp","_ref$cvlJson","cvlJson","_ref$nrvJson","nrvJson","storeTcString","persist","ui","uuid","gvlUiVersion","nextRepromptVersion","nrvUiVersion","cvlUiVersion","cmpstub","hasUserSelectedTheirPreference","notifyModelUpdate","openUi","notifyUsersPreferences","getGvl","consentToAll","dissentToAll","hasUserConsentedToMandatory","updateConsent","reloadTcModel","levelChanged","runApiMethod","getPurposesByVendorMap","getNonRegisteredVendors","lastKnownConsentScreen","acmModel","nrvModel","_hasUserConsentedToMandatory","_consentedVendorsDetails","_consentedVendors","_getValidTCData","_getConsentDegree","_getCustomVendorsConsents","_getPurposesByVendorMap","_hasUserDissentedToAll","_hasUserConsentedToAll","api","_callee4","_context4","_callee6","_context6","_callee5","_context5","getCustomVendorsConsents","_callee8","_context8","_callee7","_context7","getNonRegisteredVendorsConsents","_callee9","_context9","getConsentDegree","_callee11","_context11","_callee10","_context10","_x5","setUserId","uiLevel","_ref8$uuid","getValidTCData","_callee13","_context13","_callee12","_context12","resolved","tcData","_x6","consentedVendors","_callee15","_context15","_callee14","_context14","_x7","consentedVendorsDetails","_callee17","_context17","_callee16","_context16","_x8","getStoredRepromptVersion","_callee19","_context19","_callee18","_context18","_x9","_runApiMethod","_callee20","fn","resp","_context20","_x10","_x11","_notifyModelUpdate","_callee21","consentDegree","persistOpts","_context21","getConsentString","getVendorListVersion","saveTCString","update","formConsentAndLegInt","pref","keyPrefix","consentKey","legIntKey","_ref13","_ref14","userPreference","legInterest","_id","_data$purposes","_data$specialFeatures","_data$vendors","_data$nonTcfVendors","nonTcfVendors","_data$nonRegisteredVe","nonRegisteredVendors","_formConsentAndLegInt","_formConsentAndLegInt2","_ref15","_ref16","optIn","_ref17","currentLevel","setCurrentLevel","screen","_getConsentDegree2","_callee22","_context22","_consentedVendors2","_callee23","_context23","_consentedVendorsDetails2","_callee24","_context24","_ref18","_ref19","_openUi","_callee25","_yield$fetchGvl","_yield$fetchGvl2","_url","_response","cmpModel","cmpUpdateHandlers","_context25","acmVendors","getUiModel","isNewUser","_x12","reload","createCmp","_x13","_createCmp","_callee26","_ref20","_ref20$cvlJson","_ref20$nrvJson","migrateUserGvl","existingUser","userType","_context26","userPreferenceModel","vectorToPrefArr","state","preferences","setIfConsented","idsForUserPreference","userPreferenceVectors","getStackIds","displayPurposes","createModel","consentOrPay","isMailEssentialSubscriber","consentOrPaySubscriptionURL","isUserLoggedIn","restrictPurposeIds","applyFlexiblePurposes","consentable","removeUnconsentableVendors","userPrefs","mutablePurposes","consentOrPayPreferences","_cmpModel$tcModel","_legitimateInterestPr","defaultLegitimateInterests","createUserPreference","config","_pBannerIsReady","_scriptLoaded","_brand","_uiScriptUrl","_renderPlatform","_uiLevel","_clientBroker","_brokerId","_broker","_consentOrPay","_isMailEssentialSubscriber","_consentOrPaySubscriptionURL","_isUserLoggedIn","Ui","brand","uiScriptUrl","renderPlatform","clientBroker","once","emit","removeStorageListener","broker","handler","newValue","handleExternalPreferenceUpdate","uiHandlers","uiScriptBase","appState","src","script","dataset","loadScript","clientApi","setUuid","close","notifyUserPreferenceCaptured","onContentLoaded","loadStorage","_loadStorage","brokerId","scriptBase","path","srcPath","title","onLoad","contentWindow","canStoreUserPreference","parentNode","removeChild","_isNativeFunction","Wrapper","_construct","TimeoutError","ms","errorAfter","_args","repeatUntil","interval","now","check","_opts$method","_opts$timeout","_opts$headers","xhttp","race","raceWithin","_backendUrl","_channel","_platform","_domain","_cmpModel","_tags","Persist","backendUrl","channel","platform","_ref5$domain","domain","host","_ref5$cmpModel","tags","tryToSend","euconsent","gvlSpecForTcfPolicyLookup","isClientGVLVersionGVLSpec3OrAbove","clientGVLUIVersionParts","gvlUiVersionAndTcStringGVLSpecMatch","clientGvlSpecVersion","getVendorListVersions","selectedTCDataItems","clientConfig","clientGvlUiVersion","tcStringTCFPolicyVersion","clientGvlUiVersionParts","_clientGvlUiVersionPa","clientGvlVersion","getGVLVersions","_nrvVersion","nrvUiVersionFromClient","getNrvVersions","_cvlVersion","cvlUiVersionFromClient","getCvlVersions","setGvlVersionByMolGvlVersion","setGvlVersionByClientConfig","geo","gvlEnvironment","publisherRestrictionPurposeIds","_config","Config","createCmpConfig","tcDataFromLocalStorage","tcDataFromStorage","_ref2$tcString","tcStringFromStorage","_ref2$nrvString","nrvStringFromStorage","_ref2$nrvVersion","nrvVersionFromStorage","_ref2$addtlConsent","addtlConsentFromStorage","cvlVersionFromStorage","_ref2$molGvlVersion","molGvlVersionFromStorage","tcStringFromClient","addtlConsentFromClient","cvlVersionFromClient","nrvStringFromClient","nrvVersionFromClient","molGvlVersionFromClient","repromptVersions","currentRepromptVersionFromClient","nextRepromptVersionFromClient","_ref$repromptVersion","repromptVersionFromStorage","selectRepromptVersions","configFromStorage","configFromClient","stored","client","selectStrings","selectConfigBasedOnTCDataFromLocalStorage","_getVendorListsAndMig","_getVendorListVersion","_gvlVersion","_gvlUiVersion","nonTCFVendorListVersions","_objectWithoutProperties","_excluded","_applyMigrationConfig","newUser","gvlSpec2MigrationPattern","gvlSpec3MigrationPattern","userMigratedToGvlVariant","_clientConfig$useGeoD","useGeoDeviceVariantGVL","applyMigrationConfig","getVendorListsAndMigrationVersions","controllerScriptBase","showUi","primaryVendor","defaultPublisherRestrictionPurposeIds","getCmpConfigFromClientConfig","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","_objectWithoutPropertiesLoose","createUi","_config$get","_launch","_clientConfig$get","storeUserPreference","dissentUser","persistTags","cmpConfig","_cmpConfig$get","remainingCmpConfig","_yield$fetchVendorLis","nrv","cmpOpts","_showUi","loadStorageIframe","scriptTag","getElementById","launch"],"sourceRoot":""}