{"version":3,"file":"iab.mjs","names":[],"sources":["../src/iab.ts"],"sourcesContent":["import * as t from 'io-ts';\n\n/**\n * TCF purpose configuration\n */\nexport const TcfPurpose = t.type({\n  id: t.number,\n  name: t.string,\n  description: t.string,\n  descriptionLegal: t.string,\n});\n\n/**\n * Type override\n */\nexport type TcfPurpose = t.TypeOf<typeof TcfPurpose>;\n\n/**\n * TCF stack configuration\n */\nexport const TcfStack = t.type({\n  id: t.number,\n  purposes: t.array(t.number),\n  specialFeatures: t.array(t.number),\n  name: t.string,\n  description: t.string,\n});\n\n/**\n * Type override\n */\nexport type TcfStack = t.TypeOf<typeof TcfStack>;\n\n/**\n * TCF stack configuration\n */\nexport const TcfVendor = t.intersection([\n  t.type({\n    id: t.number,\n    name: t.string,\n    purposes: t.array(t.number),\n    legIntPurposes: t.array(t.number),\n    flexiblePurposes: t.array(t.number),\n    specialPurposes: t.array(t.number),\n    features: t.array(t.number),\n    specialFeatures: t.array(t.number),\n    policyUrl: t.string,\n    cookieMaxAgeSeconds: t.union([t.number, t.null]),\n    usesCookies: t.boolean,\n  }),\n  t.partial({\n    deletedDate: t.string,\n    overflow: t.type({\n      httpGetLimit: t.number,\n    }),\n    cookieRefresh: t.boolean,\n    usesNonCookieAccess: t.boolean,\n    deviceStorageDisclosureUrl: t.string,\n  }),\n]);\n\n/**\n * Type override\n */\nexport type TcfVendor = t.TypeOf<typeof TcfVendor>;\n\nexport const TcfVendorListVersion = t.type({\n  gvlSpecificationVersion: t.number,\n  vendorListVersion: t.number, // incremented with each published file change\n  tcfPolicyVersion: t.number,\n  lastUpdated: t.string,\n});\n/**\n * Type override\n */\nexport type TcfVendorListVersion = t.TypeOf<typeof TcfVendorListVersion>;\n\n/**\n * TCF global vendor list version 2\n */\nexport const TcfV2VendorList = t.intersection([\n  TcfVendorListVersion,\n  t.type({\n    purposes: t.record(t.string, TcfPurpose),\n    specialPurposes: t.record(t.string, TcfPurpose),\n    features: t.record(t.string, TcfPurpose),\n    specialFeatures: t.record(t.string, TcfPurpose),\n    stacks: t.record(t.string, TcfStack),\n    vendors: t.record(t.string, TcfVendor),\n  }),\n]);\n\n/**\n * Overload TcfV2VendorList as a type\n */\nexport type TcfV2VendorList = t.TypeOf<typeof TcfV2VendorList>;\n\n/**\n * TCF GVL v3 purpose configuration (TCF features share the same type)\n */\nexport const TcfGvlV3Purpose = t.type({\n  id: t.number,\n  name: t.string,\n  description: t.string,\n  illustrations: t.array(t.string),\n});\n\n/**\n * Type override\n */\nexport type TcfGvlV3Purpose = t.TypeOf<typeof TcfGvlV3Purpose>;\n\n/**\n * TCF GVL v3 data categories configuration\n */\nexport const TcfGvlV3DataCategory = t.type({\n  id: t.number,\n  name: t.string,\n  description: t.string,\n});\n\n/**\n * Type override\n */\nexport type TcfGvlV3DataCategory = t.TypeOf<typeof TcfGvlV3DataCategory>;\n\n/**\n * TCF GVL v3 URL configuration\n */\nexport const TcfGvlV3Url = t.intersection([\n  t.type({ langId: t.string, privacy: t.string }),\n  t.partial({\n    legIntClaim: t.string,\n  }),\n]);\n\n/**\n * Type override\n */\nexport type TcfGvlV3Url = t.TypeOf<typeof TcfGvlV3Url>;\n\n/**\n * TCF GVL v3 data retention configuration\n */\nexport const TcfGvlV3DataRetention = t.intersection([\n  t.type({\n    purposes: t.record(t.string, t.number),\n    specialPurposes: t.record(t.string, t.number),\n  }),\n  t.partial({\n    stdRetention: t.union([t.number, t.null]),\n  }),\n]);\n\n/**\n * Type override\n */\nexport type TcfGvlV3DataRetention = t.TypeOf<typeof TcfGvlV3DataRetention>;\n\n/**\n * TCF GVL v3 vendor configuration\n */\nexport const TcfGvlV3Vendor = t.intersection([\n  t.type({\n    id: t.number,\n    name: t.string,\n    purposes: t.array(t.number),\n    legIntPurposes: t.array(t.number),\n    flexiblePurposes: t.array(t.number),\n    specialPurposes: t.array(t.number),\n    features: t.array(t.number),\n    specialFeatures: t.array(t.number),\n    cookieMaxAgeSeconds: t.union([t.number, t.null]),\n    usesCookies: t.boolean,\n    cookieRefresh: t.boolean,\n    usesNonCookieAccess: t.boolean,\n    dataRetention: TcfGvlV3DataRetention,\n    urls: t.array(TcfGvlV3Url),\n    deviceStorageDisclosureUrl: t.string,\n  }),\n  t.partial({\n    deletedDate: t.string,\n    overflow: t.type({\n      httpGetLimit: t.number,\n    }),\n    dataDeclaration: t.array(t.number),\n  }),\n]);\n\n/**\n * Type override\n */\nexport type TcfGvlV3Vendor = t.TypeOf<typeof TcfGvlV3Vendor>;\n\n/**\n * TCF global vendor list version 3\n */\nexport const TcfV3VendorList = t.intersection([\n  TcfVendorListVersion,\n  t.type({\n    purposes: t.record(t.string, TcfGvlV3Purpose),\n    specialPurposes: t.record(t.string, TcfGvlV3Purpose),\n    features: t.record(t.string, TcfGvlV3Purpose),\n    specialFeatures: t.record(t.string, TcfGvlV3Purpose),\n    stacks: t.record(t.string, TcfStack),\n    dataCategories: t.record(t.string, TcfGvlV3DataCategory),\n    vendors: t.record(t.string, TcfGvlV3Vendor),\n  }),\n]);\n\n/**\n * Type override\n */\nexport type TcfV3VendorList = t.TypeOf<typeof TcfV3VendorList>;\n\nexport const NonTcfVendor = t.intersection([\n  t.type({\n    /** The vendor name */\n    name: t.string,\n    /** The transcend purposes associated with each vendor */\n    purposes: t.array(t.string),\n  }),\n  t.partial({\n    /** The vendor description */\n    description: t.string,\n    /** The privacy policy URL */\n    privacyPolicyUrl: t.string,\n    /** The additional consent provider ID - used for Google Additional Consent string */\n    additionalConsentProviderId: t.number,\n  }),\n]);\n\n/**\n * Type override\n */\nexport type NonTcfVendor = t.TypeOf<typeof NonTcfVendor>;\n"],"mappings":"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"}