@duckduckgo/autoconsent 14.3.0 → 14.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/data/coverage.json +1443 -1683
  3. package/dist/addon-firefox/background.bundle.js +2 -1
  4. package/dist/addon-firefox/content.bundle.js +46 -34
  5. package/dist/addon-firefox/manifest.json +1 -1
  6. package/dist/addon-firefox/rules.json +1 -1
  7. package/dist/addon-mv3/background.bundle.js +2 -1
  8. package/dist/addon-mv3/content.bundle.js +46 -34
  9. package/dist/addon-mv3/manifest.json +1 -1
  10. package/dist/addon-mv3/popup.bundle.js +15 -1
  11. package/dist/addon-mv3/popup.html +14 -0
  12. package/dist/addon-mv3/rules.json +1 -1
  13. package/dist/autoconsent.cjs.js +46 -34
  14. package/dist/autoconsent.esm.js +46 -34
  15. package/dist/autoconsent.extra.cjs.js +46 -34
  16. package/dist/autoconsent.extra.esm.js +46 -34
  17. package/dist/autoconsent.playwright.js +47 -35
  18. package/lib/encoding.ts +65 -45
  19. package/lib/rules.ts +14 -14
  20. package/lib/types.ts +1 -0
  21. package/lib/utils.ts +1 -0
  22. package/lib/web.ts +2 -1
  23. package/package.json +4 -4
  24. package/rules/autoconsent/cookieyes.json +10 -4
  25. package/rules/autoconsent/ct-ultimate-gdpr.json +2 -2
  26. package/rules/autoconsent/gov-uk.json +15 -16
  27. package/rules/compact-rules.json +1 -1
  28. package/rules/generated/auto_AU_codeweavers.com_clm.json +38 -0
  29. package/rules/generated/auto_AU_community.dyson.com_lek.json +38 -0
  30. package/rules/generated/auto_AU_drjoedispenza.com_ku0.json +38 -0
  31. package/rules/generated/auto_AU_earpros.com_3x3.json +38 -0
  32. package/rules/generated/auto_AU_fanatical.com_nth.json +38 -0
  33. package/rules/generated/auto_AU_gramophone.co.uk_3af.json +38 -0
  34. package/rules/generated/auto_AU_johnlewis.com_1rt.json +38 -0
  35. package/rules/generated/auto_AU_navman.com.au_zsn.json +38 -0
  36. package/rules/generated/auto_AU_pichunter.com_zhf.json +38 -0
  37. package/rules/generated/auto_AU_staff.flinders.edu.au_cpu.json +38 -0
  38. package/rules/generated/auto_AU_support.lenovo.com_bse.json +38 -0
  39. package/rules/generated/auto_AU_theabsolutesound.com_wcu.json +38 -0
  40. package/rules/generated/auto_AU_wikifeetx.com_lw4.json +38 -0
  41. package/rules/generated/auto_CA_123ink.ca_uhb.json +38 -0
  42. package/rules/generated/auto_CA_banfflakelouise.com_4eg.json +38 -0
  43. package/rules/generated/auto_CA_blsindia-canada.com_qqp.json +38 -0
  44. package/rules/generated/auto_CA_caainsurancecompany.ca_n0d.json +38 -0
  45. package/rules/generated/auto_CA_csagroup.org_3ho.json +38 -0
  46. package/rules/generated/auto_CA_f6s.com_yjw.json +38 -0
  47. package/rules/generated/auto_CA_fleshbot.com_m3j.json +38 -0
  48. package/rules/generated/auto_CA_fyidoctors.com_25j.json +38 -0
  49. package/rules/generated/auto_CA_golfavenue.ca_ero.json +38 -0
  50. package/rules/generated/auto_CA_ikmultimedia.com_v93.json +38 -0
  51. package/rules/generated/auto_CA_keepersecurity.com_06v.json +38 -0
  52. package/rules/generated/auto_CA_klm.ca_uvc.json +38 -0
  53. package/rules/generated/auto_CA_lectura-specs.com_hh2.json +38 -0
  54. package/rules/generated/auto_CA_merx.com_2nd.json +38 -0
  55. package/rules/generated/auto_CA_natureconservancy.ca_3pp.json +38 -0
  56. package/rules/generated/auto_CA_remitly.com_mm4.json +38 -0
  57. package/rules/generated/auto_CA_rentboard.ca_f02.json +38 -0
  58. package/rules/generated/auto_CA_rentfaster.ca_puj.json +38 -0
  59. package/rules/generated/auto_CA_rvdealers.ca_bvc.json +38 -0
  60. package/rules/generated/auto_CA_sceneplus.ca_5zu.json +38 -0
  61. package/rules/generated/auto_CA_scu.mb.ca_mqv.json +38 -0
  62. package/rules/generated/auto_CA_stclaircollege.ca_fj8.json +38 -0
  63. package/rules/generated/auto_CA_visa.ca_ldj.json +38 -0
  64. package/rules/generated/auto_CA_vrporngalaxy.com_nw8.json +38 -0
  65. package/rules/generated/auto_CA_westmount.org_l00.json +38 -0
  66. package/rules/generated/auto_GB_artsupplies.co.uk_1so.json +38 -0
  67. package/rules/generated/auto_GB_community.arubanetworks.com_cxu.json +38 -0
  68. package/rules/generated/auto_GB_francisandgaye.co.uk_m1d.json +38 -0
  69. package/rules/generated/auto_GB_fruugo.co.uk_686.json +38 -0
  70. package/rules/generated/auto_GB_homeswapper.co.uk_x3o.json +38 -0
  71. package/rules/generated/auto_GB_livejasmin.com_gdn.json +10 -0
  72. package/rules/generated/auto_GB_lovable.dev_4ul.json +38 -0
  73. package/rules/generated/auto_GB_online-pharmacy4u.co.uk_iag.json +38 -0
  74. package/rules/generated/auto_GB_partscentre.co.uk_0.json +14 -4
  75. package/rules/generated/auto_GB_powercuts.nationalgrid.co.uk_43h.json +38 -0
  76. package/rules/generated/auto_GB_reviewed.com_f1g.json +38 -0
  77. package/rules/generated/auto_GB_ruck.co.uk_1yo.json +38 -0
  78. package/rules/generated/auto_GB_smarkets.com_0.json +14 -4
  79. package/rules/generated/auto_GB_somersetft.nhs.uk_zno.json +38 -0
  80. package/rules/generated/auto_GB_stuartslondon.com_0.json +13 -3
  81. package/rules/generated/auto_GB_virginmedia.com_0.json +14 -4
  82. package/rules/generated/auto_GB_westwitteringestate.co.uk_hjv.json +38 -0
  83. package/rules/generated/auto_GB_wwws.airfrance.co.uk_0.json +1 -1
  84. package/rules/generated/auto_US_blinkforhome.com_bk2.json +38 -0
  85. package/rules/generated/auto_US_burpee.com_8gz.json +38 -0
  86. package/rules/generated/auto_US_coupons.businessinsider.com_6xd.json +38 -0
  87. package/rules/generated/auto_US_mycharisma.com_u6r.json +38 -0
  88. package/rules/generated/auto_US_mychart.wellstar.org_pwj.json +38 -0
  89. package/rules/generated/auto_US_tecadmin.net_4bn.json +38 -0
  90. package/rules/generated/auto_US_wilsoncombat.com_0.json +14 -4
  91. package/rules/rules.json +1 -1
  92. package/tests/ct-ultimate-gdpr.spec.ts +1 -1
  93. package/tests/generated/{auto_AU_iopscience.iop.org_hsw.spec.ts → auto_AU_codeweavers.com_clm.spec.ts} +1 -1
  94. package/tests/generated/auto_AU_community.dyson.com_lek.spec.ts +6 -0
  95. package/tests/generated/auto_AU_drjoedispenza.com_ku0.spec.ts +6 -0
  96. package/tests/generated/auto_AU_earpros.com_3x3.spec.ts +2 -0
  97. package/tests/generated/auto_AU_fanatical.com_nth.spec.ts +6 -0
  98. package/tests/generated/auto_AU_gramophone.co.uk_3af.spec.ts +6 -0
  99. package/tests/generated/{auto_AU_shure.com_28b.spec.ts → auto_AU_johnlewis.com_1rt.spec.ts} +1 -1
  100. package/tests/generated/{auto_GB_citylink.co.uk_0.spec.ts → auto_AU_navman.com.au_zsn.spec.ts} +2 -2
  101. package/tests/generated/auto_AU_pichunter.com_zhf.spec.ts +6 -0
  102. package/tests/generated/auto_AU_staff.flinders.edu.au_cpu.spec.ts +6 -0
  103. package/tests/generated/auto_AU_support.lenovo.com_bse.spec.ts +6 -0
  104. package/tests/generated/auto_AU_theabsolutesound.com_wcu.spec.ts +6 -0
  105. package/tests/generated/auto_AU_wikifeetx.com_lw4.spec.ts +2 -0
  106. package/tests/generated/auto_CA_123ink.ca_uhb.spec.ts +2 -0
  107. package/tests/generated/auto_CA_banfflakelouise.com_4eg.spec.ts +6 -0
  108. package/tests/generated/auto_CA_blsindia-canada.com_qqp.spec.ts +6 -0
  109. package/tests/generated/{auto_GB_rolcruise.co.uk_0.spec.ts → auto_CA_caainsurancecompany.ca_n0d.spec.ts} +2 -2
  110. package/tests/generated/auto_CA_csagroup.org_3ho.spec.ts +2 -0
  111. package/tests/generated/auto_CA_f6s.com_yjw.spec.ts +2 -0
  112. package/tests/generated/{auto_GB_zap-map.com_0.spec.ts → auto_CA_fleshbot.com_m3j.spec.ts} +1 -1
  113. package/tests/generated/auto_CA_fyidoctors.com_25j.spec.ts +2 -0
  114. package/tests/generated/{auto_CA_trekbikes.com_w0n.spec.ts → auto_CA_golfavenue.ca_ero.spec.ts} +1 -1
  115. package/tests/generated/auto_CA_ikmultimedia.com_v93.spec.ts +6 -0
  116. package/tests/generated/auto_CA_keepersecurity.com_06v.spec.ts +6 -0
  117. package/tests/generated/auto_CA_klm.ca_uvc.spec.ts +2 -0
  118. package/tests/generated/auto_CA_lectura-specs.com_hh2.spec.ts +6 -0
  119. package/tests/generated/auto_CA_merx.com_2nd.spec.ts +2 -0
  120. package/tests/generated/auto_CA_natureconservancy.ca_3pp.spec.ts +6 -0
  121. package/tests/generated/auto_CA_remitly.com_mm4.spec.ts +2 -0
  122. package/tests/generated/auto_CA_rentboard.ca_f02.spec.ts +2 -0
  123. package/tests/generated/auto_CA_rentfaster.ca_puj.spec.ts +6 -0
  124. package/tests/generated/auto_CA_rvdealers.ca_bvc.spec.ts +2 -0
  125. package/tests/generated/auto_CA_sceneplus.ca_5zu.spec.ts +2 -0
  126. package/tests/generated/auto_CA_scu.mb.ca_mqv.spec.ts +2 -0
  127. package/tests/generated/auto_CA_stclaircollege.ca_fj8.spec.ts +6 -0
  128. package/tests/generated/auto_CA_visa.ca_ldj.spec.ts +2 -0
  129. package/tests/generated/auto_CA_vrporngalaxy.com_nw8.spec.ts +6 -0
  130. package/tests/generated/auto_CA_westmount.org_l00.spec.ts +2 -0
  131. package/tests/generated/{auto_GB_blockchain.com_0.spec.ts → auto_GB_artsupplies.co.uk_1so.spec.ts} +1 -1
  132. package/tests/generated/auto_GB_community.arubanetworks.com_cxu.spec.ts +6 -0
  133. package/tests/generated/{auto_GB_bedandbreakfast.eu_0.spec.ts → auto_GB_francisandgaye.co.uk_m1d.spec.ts} +1 -1
  134. package/tests/generated/auto_GB_fruugo.co.uk_686.spec.ts +2 -0
  135. package/tests/generated/{auto_GB_boilerjuice.com_0.spec.ts → auto_GB_homeswapper.co.uk_x3o.spec.ts} +1 -1
  136. package/tests/generated/auto_GB_lovable.dev_4ul.spec.ts +2 -0
  137. package/tests/generated/auto_GB_online-pharmacy4u.co.uk_iag.spec.ts +6 -0
  138. package/tests/generated/{auto_GB_bestwestern.co.uk_0.spec.ts → auto_GB_partscentre.co.uk_0.spec.ts} +1 -1
  139. package/tests/generated/auto_GB_powercuts.nationalgrid.co.uk_43h.spec.ts +6 -0
  140. package/tests/generated/auto_GB_reviewed.com_f1g.spec.ts +2 -0
  141. package/tests/generated/{auto_GB_theros.org.uk_0.spec.ts → auto_GB_ruck.co.uk_1yo.spec.ts} +1 -1
  142. package/tests/generated/{auto_GB_yubico.com_0.spec.ts → auto_GB_smarkets.com_0.spec.ts} +1 -1
  143. package/tests/generated/{auto_GB_bannatyne.co.uk_0.spec.ts → auto_GB_somersetft.nhs.uk_zno.spec.ts} +1 -1
  144. package/tests/generated/auto_GB_virginmedia.com_0.spec.ts +1 -1
  145. package/tests/generated/{auto_GB_birminghamairport.co.uk_0.spec.ts → auto_GB_westwitteringestate.co.uk_hjv.spec.ts} +1 -1
  146. package/tests/generated/{auto_US_longevity.technology_ui9.spec.ts → auto_US_blinkforhome.com_bk2.spec.ts} +1 -1
  147. package/tests/generated/auto_US_burpee.com_8gz.spec.ts +2 -0
  148. package/tests/generated/auto_US_coupons.businessinsider.com_6xd.spec.ts +6 -0
  149. package/tests/generated/auto_US_mycharisma.com_u6r.spec.ts +2 -0
  150. package/tests/generated/auto_US_mychart.wellstar.org_pwj.spec.ts +6 -0
  151. package/tests/generated/auto_US_tecadmin.net_4bn.spec.ts +2 -0
  152. package/tests/generated/auto_US_wilsoncombat.com_0.spec.ts +5 -2
  153. package/rules/generated/auto_AU_iopscience.iop.org_hsw.json +0 -28
  154. package/rules/generated/auto_AU_shure.com_28b.json +0 -28
  155. package/rules/generated/auto_CA_trekbikes.com_w0n.json +0 -28
  156. package/rules/generated/auto_GB_abbavoyage.com_0.json +0 -28
  157. package/rules/generated/auto_GB_aber.ac.uk_0.json +0 -28
  158. package/rules/generated/auto_GB_airtattoo.com_0.json +0 -28
  159. package/rules/generated/auto_GB_bangor.ac.uk_0.json +0 -28
  160. package/rules/generated/auto_GB_bannatyne.co.uk_0.json +0 -28
  161. package/rules/generated/auto_GB_bedandbreakfast.eu_0.json +0 -28
  162. package/rules/generated/auto_GB_bestwestern.co.uk_0.json +0 -28
  163. package/rules/generated/auto_GB_birminghamairport.co.uk_0.json +0 -28
  164. package/rules/generated/auto_GB_blockchain.com_0.json +0 -28
  165. package/rules/generated/auto_GB_bluelightcard.co.uk_0.json +0 -28
  166. package/rules/generated/auto_GB_boilerjuice.com_0.json +0 -28
  167. package/rules/generated/auto_GB_bonmarche.co.uk_0.json +0 -28
  168. package/rules/generated/auto_GB_booker.co.uk_0.json +0 -28
  169. package/rules/generated/auto_GB_bradfords.co.uk_0.json +0 -28
  170. package/rules/generated/auto_GB_brandonhirestation.com_0.json +0 -28
  171. package/rules/generated/auto_GB_c2c-online.co.uk_0.json +0 -28
  172. package/rules/generated/auto_GB_casio.com_0.json +0 -28
  173. package/rules/generated/auto_GB_chemistdirect.co.uk_0.json +0 -28
  174. package/rules/generated/auto_GB_citylink.co.uk_0.json +0 -28
  175. package/rules/generated/auto_GB_classic-trader.com_0.json +0 -28
  176. package/rules/generated/auto_GB_cliftoncameras.co.uk_0.json +0 -28
  177. package/rules/generated/auto_GB_crownpaints.co.uk_0.json +0 -28
  178. package/rules/generated/auto_GB_design911.co.uk_0.json +0 -28
  179. package/rules/generated/auto_GB_discountdragon.co.uk_0.json +0 -28
  180. package/rules/generated/auto_GB_doorsuperstore.co.uk_0.json +0 -28
  181. package/rules/generated/auto_GB_drainagesuperstore.co.uk_0.json +0 -28
  182. package/rules/generated/auto_GB_eastmidlandsrailway.co.uk_0.json +0 -28
  183. package/rules/generated/auto_GB_elements.envato.com_0.json +0 -28
  184. package/rules/generated/auto_GB_ercol.com_0.json +0 -28
  185. package/rules/generated/auto_GB_eurail.com_0.json +0 -28
  186. package/rules/generated/auto_GB_eurochange.co.uk_0.json +0 -28
  187. package/rules/generated/auto_GB_farrow-ball.com_0.json +0 -28
  188. package/rules/generated/auto_GB_finisterre.com_0.json +0 -28
  189. package/rules/generated/auto_GB_firstfence.co.uk_i98.json +0 -28
  190. package/rules/generated/auto_GB_gog.com_0.json +0 -28
  191. package/rules/generated/auto_GB_greateranglia.co.uk_0.json +0 -28
  192. package/rules/generated/auto_GB_gshock.casio.com_0.json +0 -28
  193. package/rules/generated/auto_GB_healthcareers.nhs.uk_0.json +0 -28
  194. package/rules/generated/auto_GB_hltv.org_0.json +0 -28
  195. package/rules/generated/auto_GB_hyperdrug.co.uk_0.json +0 -28
  196. package/rules/generated/auto_GB_insulationsuperstore.co.uk_0.json +0 -28
  197. package/rules/generated/auto_GB_interrail.eu_0.json +0 -28
  198. package/rules/generated/auto_GB_irishrail.ie_0.json +0 -28
  199. package/rules/generated/auto_GB_irwinmitchell.com_0.json +0 -28
  200. package/rules/generated/auto_GB_islesofscilly-travel.co.uk_0.json +0 -28
  201. package/rules/generated/auto_GB_iwantgreatcare.org_0.json +0 -28
  202. package/rules/generated/auto_GB_jacksons-fencing.co.uk_0.json +0 -28
  203. package/rules/generated/auto_GB_jarrolds.co.uk_0.json +0 -28
  204. package/rules/generated/auto_GB_jigsaw-online.com_0.json +0 -28
  205. package/rules/generated/auto_GB_kent.ac.uk_0.json +0 -28
  206. package/rules/generated/auto_GB_kidneycareuk.org_0.json +0 -28
  207. package/rules/generated/auto_GB_lecreuset.co.uk_0.json +0 -28
  208. package/rules/generated/auto_GB_leedsbeckett.ac.uk_0.json +0 -28
  209. package/rules/generated/auto_GB_liveauctioneers.com_0.json +0 -28
  210. package/rules/generated/auto_GB_londonnorthwesternrailway.co.uk_0.json +0 -28
  211. package/rules/generated/auto_GB_love2shop.co.uk_0.json +0 -28
  212. package/rules/generated/auto_GB_ltmuseum.co.uk_0.json +0 -28
  213. package/rules/generated/auto_GB_lucyandyak.com_x3v.json +0 -28
  214. package/rules/generated/auto_GB_mandstravelmoney.com_0.json +0 -28
  215. package/rules/generated/auto_GB_medway.gov.uk_0.json +0 -28
  216. package/rules/generated/auto_GB_mg.co.uk_0.json +0 -28
  217. package/rules/generated/auto_GB_motorcyclespareparts.eu_0.json +0 -28
  218. package/rules/generated/auto_GB_musicstore.com_0.json +0 -28
  219. package/rules/generated/auto_GB_myenergi.com_0.json +0 -28
  220. package/rules/generated/auto_GB_nationalgallery.org.uk_0.json +0 -28
  221. package/rules/generated/auto_GB_ncl.ac.uk_0.json +0 -28
  222. package/rules/generated/auto_GB_newdealsonline.co.uk_0.json +0 -28
  223. package/rules/generated/auto_GB_northernrailway.co.uk_0.json +0 -28
  224. package/rules/generated/auto_GB_notcutts.co.uk_0.json +0 -28
  225. package/rules/generated/auto_GB_oaknorth.co.uk_0.json +0 -28
  226. package/rules/generated/auto_GB_overclockers.co.uk_0.json +0 -28
  227. package/rules/generated/auto_GB_pavers.co.uk_0.json +0 -28
  228. package/rules/generated/auto_GB_pharmacy2u.co.uk_0.json +0 -28
  229. package/rules/generated/auto_GB_pixelcut.ai_lfx.json +0 -28
  230. package/rules/generated/auto_GB_plymouth.ac.uk_0.json +0 -28
  231. package/rules/generated/auto_GB_poferries.com_0.json +0 -28
  232. package/rules/generated/auto_GB_puppies.co.uk_0.json +0 -28
  233. package/rules/generated/auto_GB_raf.mod.uk_0.json +0 -28
  234. package/rules/generated/auto_GB_rct.uk_0.json +0 -28
  235. package/rules/generated/auto_GB_robertsspaceindustries.com_0.json +0 -28
  236. package/rules/generated/auto_GB_rolcruise.co.uk_0.json +0 -28
  237. package/rules/generated/auto_GB_roofingsuperstore.co.uk_0.json +0 -28
  238. package/rules/generated/auto_GB_roughtrade.com_0.json +0 -28
  239. package/rules/generated/auto_GB_royalenfield.com_0.json +0 -28
  240. package/rules/generated/auto_GB_royalmint.com_0.json +0 -28
  241. package/rules/generated/auto_GB_sharkclean.co.uk_0.json +0 -28
  242. package/rules/generated/auto_GB_shu.ac.uk_0.json +0 -28
  243. package/rules/generated/auto_GB_slaters.co.uk_0.json +0 -28
  244. package/rules/generated/auto_GB_sockshop.co.uk_7pv.json +0 -28
  245. package/rules/generated/auto_GB_specializedconceptstore.co.uk_0.json +0 -28
  246. package/rules/generated/auto_GB_sram.com_0.json +0 -28
  247. package/rules/generated/auto_GB_staples.co.uk_0.json +0 -28
  248. package/rules/generated/auto_GB_steam-packet.com_0.json +0 -28
  249. package/rules/generated/auto_GB_superbikefactory.co.uk_0.json +0 -28
  250. package/rules/generated/auto_GB_teepublic.com_0.json +0 -28
  251. package/rules/generated/auto_GB_thefarmersdogpub.com_0.json +0 -28
  252. package/rules/generated/auto_GB_thegreenreaper.co.uk_0.json +0 -28
  253. package/rules/generated/auto_GB_themeforest.net_0.json +0 -28
  254. package/rules/generated/auto_GB_theros.org.uk_0.json +0 -28
  255. package/rules/generated/auto_GB_thingiverse.com_0.json +0 -28
  256. package/rules/generated/auto_GB_timeshighereducation.com_0.json +0 -28
  257. package/rules/generated/auto_GB_towbarexpress.co.uk_0.json +0 -28
  258. package/rules/generated/auto_GB_tritonshowers.co.uk_0.json +0 -28
  259. package/rules/generated/auto_GB_utilitabowl.com_0.json +0 -28
  260. package/rules/generated/auto_GB_veals.co.uk_0.json +0 -28
  261. package/rules/generated/auto_GB_visitpeakdistrict.com_0.json +0 -28
  262. package/rules/generated/auto_GB_water-garden.co.uk_0.json +0 -28
  263. package/rules/generated/auto_GB_weforum.org_0.json +0 -28
  264. package/rules/generated/auto_GB_west-somerset-railway.co.uk_0.json +0 -28
  265. package/rules/generated/auto_GB_westmidlandsrailway.co.uk_0.json +0 -28
  266. package/rules/generated/auto_GB_whatprice.co.uk_vey.json +0 -28
  267. package/rules/generated/auto_GB_worldathletics.org_0.json +0 -28
  268. package/rules/generated/auto_GB_yeovalley.co.uk_0.json +0 -28
  269. package/rules/generated/auto_GB_yubico.com_0.json +0 -28
  270. package/rules/generated/auto_GB_zap-map.com_0.json +0 -28
  271. package/rules/generated/auto_GB_zoomcorp.com_0cv.json +0 -28
  272. package/rules/generated/auto_US_longevity.technology_ui9.json +0 -28
  273. package/tests/generated/auto_GB_abbavoyage.com_0.spec.ts +0 -2
  274. package/tests/generated/auto_GB_aber.ac.uk_0.spec.ts +0 -2
  275. package/tests/generated/auto_GB_airtattoo.com_0.spec.ts +0 -2
  276. package/tests/generated/auto_GB_bangor.ac.uk_0.spec.ts +0 -2
  277. package/tests/generated/auto_GB_bluelightcard.co.uk_0.spec.ts +0 -6
  278. package/tests/generated/auto_GB_bonmarche.co.uk_0.spec.ts +0 -6
  279. package/tests/generated/auto_GB_booker.co.uk_0.spec.ts +0 -2
  280. package/tests/generated/auto_GB_bradfords.co.uk_0.spec.ts +0 -6
  281. package/tests/generated/auto_GB_brandonhirestation.com_0.spec.ts +0 -6
  282. package/tests/generated/auto_GB_c2c-online.co.uk_0.spec.ts +0 -6
  283. package/tests/generated/auto_GB_casio.com_0.spec.ts +0 -2
  284. package/tests/generated/auto_GB_chemistdirect.co.uk_0.spec.ts +0 -6
  285. package/tests/generated/auto_GB_classic-trader.com_0.spec.ts +0 -6
  286. package/tests/generated/auto_GB_cliftoncameras.co.uk_0.spec.ts +0 -6
  287. package/tests/generated/auto_GB_crownpaints.co.uk_0.spec.ts +0 -6
  288. package/tests/generated/auto_GB_design911.co.uk_0.spec.ts +0 -6
  289. package/tests/generated/auto_GB_discountdragon.co.uk_0.spec.ts +0 -6
  290. package/tests/generated/auto_GB_doorsuperstore.co.uk_0.spec.ts +0 -6
  291. package/tests/generated/auto_GB_drainagesuperstore.co.uk_0.spec.ts +0 -6
  292. package/tests/generated/auto_GB_eastmidlandsrailway.co.uk_0.spec.ts +0 -6
  293. package/tests/generated/auto_GB_elements.envato.com_0.spec.ts +0 -6
  294. package/tests/generated/auto_GB_ercol.com_0.spec.ts +0 -2
  295. package/tests/generated/auto_GB_eurail.com_0.spec.ts +0 -2
  296. package/tests/generated/auto_GB_eurochange.co.uk_0.spec.ts +0 -6
  297. package/tests/generated/auto_GB_farrow-ball.com_0.spec.ts +0 -6
  298. package/tests/generated/auto_GB_finisterre.com_0.spec.ts +0 -2
  299. package/tests/generated/auto_GB_firstfence.co.uk_i98.spec.ts +0 -6
  300. package/tests/generated/auto_GB_gog.com_0.spec.ts +0 -2
  301. package/tests/generated/auto_GB_greateranglia.co.uk_0.spec.ts +0 -6
  302. package/tests/generated/auto_GB_gshock.casio.com_0.spec.ts +0 -6
  303. package/tests/generated/auto_GB_healthcareers.nhs.uk_0.spec.ts +0 -6
  304. package/tests/generated/auto_GB_hltv.org_0.spec.ts +0 -2
  305. package/tests/generated/auto_GB_hyperdrug.co.uk_0.spec.ts +0 -2
  306. package/tests/generated/auto_GB_insulationsuperstore.co.uk_0.spec.ts +0 -6
  307. package/tests/generated/auto_GB_interrail.eu_0.spec.ts +0 -2
  308. package/tests/generated/auto_GB_irishrail.ie_0.spec.ts +0 -6
  309. package/tests/generated/auto_GB_irwinmitchell.com_0.spec.ts +0 -6
  310. package/tests/generated/auto_GB_islesofscilly-travel.co.uk_0.spec.ts +0 -6
  311. package/tests/generated/auto_GB_iwantgreatcare.org_0.spec.ts +0 -6
  312. package/tests/generated/auto_GB_jacksons-fencing.co.uk_0.spec.ts +0 -6
  313. package/tests/generated/auto_GB_jarrolds.co.uk_0.spec.ts +0 -6
  314. package/tests/generated/auto_GB_jigsaw-online.com_0.spec.ts +0 -6
  315. package/tests/generated/auto_GB_kent.ac.uk_0.spec.ts +0 -2
  316. package/tests/generated/auto_GB_kidneycareuk.org_0.spec.ts +0 -6
  317. package/tests/generated/auto_GB_lecreuset.co.uk_0.spec.ts +0 -6
  318. package/tests/generated/auto_GB_leedsbeckett.ac.uk_0.spec.ts +0 -6
  319. package/tests/generated/auto_GB_liveauctioneers.com_0.spec.ts +0 -6
  320. package/tests/generated/auto_GB_londonnorthwesternrailway.co.uk_0.spec.ts +0 -6
  321. package/tests/generated/auto_GB_love2shop.co.uk_0.spec.ts +0 -6
  322. package/tests/generated/auto_GB_ltmuseum.co.uk_0.spec.ts +0 -6
  323. package/tests/generated/auto_GB_lucyandyak.com_x3v.spec.ts +0 -2
  324. package/tests/generated/auto_GB_mandstravelmoney.com_0.spec.ts +0 -6
  325. package/tests/generated/auto_GB_medway.gov.uk_0.spec.ts +0 -2
  326. package/tests/generated/auto_GB_mg.co.uk_0.spec.ts +0 -2
  327. package/tests/generated/auto_GB_motorcyclespareparts.eu_0.spec.ts +0 -6
  328. package/tests/generated/auto_GB_musicstore.com_0.spec.ts +0 -6
  329. package/tests/generated/auto_GB_myenergi.com_0.spec.ts +0 -2
  330. package/tests/generated/auto_GB_nationalgallery.org.uk_0.spec.ts +0 -6
  331. package/tests/generated/auto_GB_ncl.ac.uk_0.spec.ts +0 -2
  332. package/tests/generated/auto_GB_newdealsonline.co.uk_0.spec.ts +0 -6
  333. package/tests/generated/auto_GB_northernrailway.co.uk_0.spec.ts +0 -6
  334. package/tests/generated/auto_GB_notcutts.co.uk_0.spec.ts +0 -6
  335. package/tests/generated/auto_GB_oaknorth.co.uk_0.spec.ts +0 -2
  336. package/tests/generated/auto_GB_overclockers.co.uk_0.spec.ts +0 -6
  337. package/tests/generated/auto_GB_pavers.co.uk_0.spec.ts +0 -2
  338. package/tests/generated/auto_GB_pharmacy2u.co.uk_0.spec.ts +0 -6
  339. package/tests/generated/auto_GB_pixelcut.ai_lfx.spec.ts +0 -2
  340. package/tests/generated/auto_GB_plymouth.ac.uk_0.spec.ts +0 -6
  341. package/tests/generated/auto_GB_poferries.com_0.spec.ts +0 -6
  342. package/tests/generated/auto_GB_puppies.co.uk_0.spec.ts +0 -2
  343. package/tests/generated/auto_GB_raf.mod.uk_0.spec.ts +0 -2
  344. package/tests/generated/auto_GB_rct.uk_0.spec.ts +0 -2
  345. package/tests/generated/auto_GB_robertsspaceindustries.com_0.spec.ts +0 -6
  346. package/tests/generated/auto_GB_roofingsuperstore.co.uk_0.spec.ts +0 -6
  347. package/tests/generated/auto_GB_roughtrade.com_0.spec.ts +0 -6
  348. package/tests/generated/auto_GB_royalenfield.com_0.spec.ts +0 -6
  349. package/tests/generated/auto_GB_royalmint.com_0.spec.ts +0 -2
  350. package/tests/generated/auto_GB_sharkclean.co.uk_0.spec.ts +0 -6
  351. package/tests/generated/auto_GB_shu.ac.uk_0.spec.ts +0 -2
  352. package/tests/generated/auto_GB_slaters.co.uk_0.spec.ts +0 -2
  353. package/tests/generated/auto_GB_sockshop.co.uk_7pv.spec.ts +0 -6
  354. package/tests/generated/auto_GB_specializedconceptstore.co.uk_0.spec.ts +0 -6
  355. package/tests/generated/auto_GB_sram.com_0.spec.ts +0 -2
  356. package/tests/generated/auto_GB_staples.co.uk_0.spec.ts +0 -2
  357. package/tests/generated/auto_GB_steam-packet.com_0.spec.ts +0 -6
  358. package/tests/generated/auto_GB_superbikefactory.co.uk_0.spec.ts +0 -6
  359. package/tests/generated/auto_GB_teepublic.com_0.spec.ts +0 -2
  360. package/tests/generated/auto_GB_thefarmersdogpub.com_0.spec.ts +0 -6
  361. package/tests/generated/auto_GB_thegreenreaper.co.uk_0.spec.ts +0 -6
  362. package/tests/generated/auto_GB_themeforest.net_0.spec.ts +0 -2
  363. package/tests/generated/auto_GB_thingiverse.com_0.spec.ts +0 -6
  364. package/tests/generated/auto_GB_timeshighereducation.com_0.spec.ts +0 -6
  365. package/tests/generated/auto_GB_towbarexpress.co.uk_0.spec.ts +0 -6
  366. package/tests/generated/auto_GB_tritonshowers.co.uk_0.spec.ts +0 -6
  367. package/tests/generated/auto_GB_utilitabowl.com_0.spec.ts +0 -6
  368. package/tests/generated/auto_GB_veals.co.uk_0.spec.ts +0 -2
  369. package/tests/generated/auto_GB_visitpeakdistrict.com_0.spec.ts +0 -6
  370. package/tests/generated/auto_GB_water-garden.co.uk_0.spec.ts +0 -6
  371. package/tests/generated/auto_GB_weforum.org_0.spec.ts +0 -2
  372. package/tests/generated/auto_GB_west-somerset-railway.co.uk_0.spec.ts +0 -6
  373. package/tests/generated/auto_GB_westmidlandsrailway.co.uk_0.spec.ts +0 -6
  374. package/tests/generated/auto_GB_whatprice.co.uk_vey.spec.ts +0 -6
  375. package/tests/generated/auto_GB_worldathletics.org_0.spec.ts +0 -6
  376. package/tests/generated/auto_GB_yeovalley.co.uk_0.spec.ts +0 -6
  377. package/tests/generated/auto_GB_zoomcorp.com_0cv.spec.ts +0 -6
package/lib/encoding.ts CHANGED
@@ -137,11 +137,29 @@ export function decodeRules(encoded: CompactCMPRuleset): AutoConsentCMPRule[] {
137
137
  if (encoded.v > 1) {
138
138
  throw new Error('Unsupported rule format.');
139
139
  }
140
- function decodeRuleStep(step: CompactCMPRuleStep): AutoConsentRuleStep {
140
+ return encoded.r.filter((r) => r[0] <= SUPPORTED_RULE_STEP_VERSION).map((rule) => new CompactedCMPRule(rule, encoded.s));
141
+ }
142
+
143
+ class CompactedCMPRule implements AutoConsentCMPRule {
144
+ r: CompactCMPRule;
145
+ s: string[];
146
+ intermediate = false;
147
+ optIn = [];
148
+
149
+ constructor(rule: CompactCMPRule, strings: string[]) {
150
+ this.r = rule;
151
+ this.s = strings;
152
+ if (this.r[10] && this.r[10].intermediate) {
153
+ this.intermediate = this.r[10].intermediate;
154
+ }
155
+ }
156
+
157
+ _decodeRuleStep(step: CompactCMPRuleStep): AutoConsentRuleStep {
141
158
  const clonedStep: CompactCMPRuleStep = { ...step };
159
+ const decodeRuleStep = this._decodeRuleStep.bind(this);
142
160
  for (const [longKey, shortKey] of compactedRuleSteps) {
143
161
  if (clonedStep[shortKey] !== undefined) {
144
- clonedStep[longKey] = encoded.s[clonedStep[shortKey]];
162
+ clonedStep[longKey] = this.s[clonedStep[shortKey]];
145
163
  delete clonedStep[shortKey];
146
164
  }
147
165
  }
@@ -157,48 +175,50 @@ export function decodeRules(encoded: CompactCMPRuleset): AutoConsentCMPRule[] {
157
175
  }
158
176
  return { ...clonedStep };
159
177
  }
160
- return encoded.r
161
- .filter((r) => r[0] <= SUPPORTED_RULE_STEP_VERSION)
162
- .map((rule) => {
163
- const [
164
- minimumRuleStepVersion,
165
- name,
166
- cosmetic,
167
- urlPattern,
168
- mainFrame,
169
- prehideSelectors,
170
- detectCmp,
171
- detectPopup,
172
- optOut,
173
- test,
174
- extra,
175
- ] = rule;
176
- const optIn: AutoConsentRuleStep[] = [];
177
- const runContext: RunContext = {};
178
- const runInMainFrame = decodeNullableBoolean((Math.floor(mainFrame / 10) % 10) as CompactNullableBoolean);
179
- const runInSubFrame = decodeNullableBoolean((mainFrame % 10) as CompactNullableBoolean);
180
- if (runInMainFrame !== undefined) {
181
- runContext.main = runInMainFrame;
182
- }
183
- if (runInSubFrame !== undefined) {
184
- runContext.frame = runInSubFrame;
185
- }
186
- if (urlPattern !== '') {
187
- runContext.urlPattern = urlPattern;
188
- }
189
178
 
190
- return {
191
- name,
192
- cosmetic: decodeNullableBoolean(cosmetic),
193
- runContext,
194
- prehideSelectors: prehideSelectors.map((i) => encoded.s[i].toString()),
195
- detectCmp: detectCmp.map(decodeRuleStep),
196
- detectPopup: detectPopup.map(decodeRuleStep),
197
- optOut: optOut.map(decodeRuleStep),
198
- optIn,
199
- test: test?.map(decodeRuleStep),
200
- minimumRuleStepVersion: minimumRuleStepVersion || undefined,
201
- ...extra,
202
- };
203
- });
179
+ get name() {
180
+ return this.r[1];
181
+ }
182
+
183
+ get cosmetic() {
184
+ return decodeNullableBoolean(this.r[2]);
185
+ }
186
+
187
+ get runContext() {
188
+ const runContext: RunContext = {};
189
+ const urlPattern = this.r[3];
190
+ const mainFrame = this.r[4];
191
+ const runInMainFrame = decodeNullableBoolean((Math.floor(mainFrame / 10) % 10) as CompactNullableBoolean);
192
+ const runInSubFrame = decodeNullableBoolean((mainFrame % 10) as CompactNullableBoolean);
193
+ if (runInMainFrame !== undefined) {
194
+ runContext.main = runInMainFrame;
195
+ }
196
+ if (runInSubFrame !== undefined) {
197
+ runContext.frame = runInSubFrame;
198
+ }
199
+ if (urlPattern !== '') {
200
+ runContext.urlPattern = urlPattern;
201
+ }
202
+ return runContext;
203
+ }
204
+
205
+ get prehideSelectors() {
206
+ return this.r[5].map((i) => this.s[i].toString());
207
+ }
208
+
209
+ get detectCmp() {
210
+ return this.r[6].map(this._decodeRuleStep.bind(this));
211
+ }
212
+
213
+ get detectPopup() {
214
+ return this.r[7].map(this._decodeRuleStep.bind(this));
215
+ }
216
+
217
+ get optOut() {
218
+ return this.r[8].map(this._decodeRuleStep.bind(this));
219
+ }
220
+
221
+ get test() {
222
+ return this.r[9].map(this._decodeRuleStep.bind(this));
223
+ }
204
224
  }
package/lib/rules.ts CHANGED
@@ -4,20 +4,20 @@ import { snippets } from './eval-snippets';
4
4
  export const SUPPORTED_RULE_STEP_VERSION = 1;
5
5
 
6
6
  export type AutoConsentCMPRule = {
7
- name: string;
8
- vendorUrl?: string;
9
- prehideSelectors?: string[];
10
- runContext?: RunContext;
11
- intermediate?: boolean;
12
- cosmetic?: boolean;
13
- detectCmp: AutoConsentRuleStep[];
14
- detectPopup: AutoConsentRuleStep[];
15
- optOut: AutoConsentRuleStep[];
16
- optIn: AutoConsentRuleStep[];
17
- openCmp?: AutoConsentRuleStep[];
18
- test?: AutoConsentRuleStep[];
19
- comment?: string;
20
- minimumRuleStepVersion?: number;
7
+ readonly name: string;
8
+ readonly vendorUrl?: string;
9
+ readonly prehideSelectors?: string[];
10
+ readonly runContext?: RunContext;
11
+ readonly intermediate?: boolean;
12
+ readonly cosmetic?: boolean;
13
+ readonly detectCmp: AutoConsentRuleStep[];
14
+ readonly detectPopup: AutoConsentRuleStep[];
15
+ readonly optOut: AutoConsentRuleStep[];
16
+ readonly optIn: AutoConsentRuleStep[];
17
+ readonly openCmp?: AutoConsentRuleStep[];
18
+ readonly test?: AutoConsentRuleStep[];
19
+ readonly comment?: string;
20
+ readonly minimumRuleStepVersion?: number;
21
21
  };
22
22
 
23
23
  export type RunContext = {
package/lib/types.ts CHANGED
@@ -54,6 +54,7 @@ export type Config = {
54
54
  disabledCmps: string[];
55
55
  enablePrehide: boolean;
56
56
  enableCosmeticRules: boolean;
57
+ enableGeneratedRules: boolean;
57
58
  detectRetries: number;
58
59
  isMainWorld: boolean;
59
60
  prehideTimeout: number;
package/lib/utils.ts CHANGED
@@ -75,6 +75,7 @@ export function normalizeConfig(providedConfig: any): Config {
75
75
  disabledCmps: [],
76
76
  enablePrehide: true,
77
77
  enableCosmeticRules: true,
78
+ enableGeneratedRules: true,
78
79
  enableHeuristicDetection: false,
79
80
  detectRetries: 20,
80
81
  isMainWorld: false,
package/lib/web.ts CHANGED
@@ -20,7 +20,8 @@ function filterCMPs(rules: AutoCMP[], config: Config) {
20
20
  return rules.filter((cmp) => {
21
21
  return (
22
22
  (!config.disabledCmps || !config.disabledCmps.includes(cmp.name)) && // CMP is not disabled
23
- (config.enableCosmeticRules || !cmp.isCosmetic) // CMP is not cosmetic or cosmetic rules are enabled
23
+ (config.enableCosmeticRules || !cmp.isCosmetic) && // CMP is not cosmetic or cosmetic rules are enabled
24
+ (config.enableGeneratedRules || !cmp.name.startsWith('auto_')) // CMP is not generated or generated rules are enabled
24
25
  );
25
26
  });
26
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckduckgo/autoconsent",
3
- "version": "14.3.0",
3
+ "version": "14.5.0",
4
4
  "description": "",
5
5
  "exports": {
6
6
  ".": {
@@ -52,7 +52,7 @@
52
52
  "@esm-bundle/chai": "^4.3.4-fix.0",
53
53
  "@playwright/test": "^1.17.1",
54
54
  "@types/chai": "^5.0.0",
55
- "@types/chrome": "^0.0.326",
55
+ "@types/chrome": "^0.0.328",
56
56
  "@types/eslint": "^9.6.1",
57
57
  "@types/mocha": "^10.0.1",
58
58
  "@types/sinon": "^17.0.4",
@@ -71,8 +71,8 @@
71
71
  "globals": "^16.0.0",
72
72
  "markdown-it": "^14.0.0",
73
73
  "mocha": "^11.0.1",
74
- "prettier": "3.5.3",
75
- "sinon": "^20.0.0",
74
+ "prettier": "3.6.2",
75
+ "sinon": "^21.0.0",
76
76
  "ts-json-schema-generator": "^2.3.0",
77
77
  "ts-node": "^10.9.2",
78
78
  "tslib": "^2.4.0",
@@ -13,11 +13,17 @@
13
13
  "if": { "exists": ".cky-consent-container [data-cky-tag=settings-button]" },
14
14
  "then": [
15
15
  { "click": ".cky-consent-container [data-cky-tag=settings-button]" },
16
- { "waitFor": ".cky-modal-open input[type=checkbox]" },
17
- { "click": ".cky-modal-open input[type=checkbox]:checked", "all": true, "optional": true },
18
- { "waitForThenClick": ".cky-modal [data-cky-tag=detail-save-button]" }
16
+ { "waitFor": ".cky-modal-open input[type=checkbox],.cky-consent-bar-expand input[type=checkbox]" },
17
+ {
18
+ "click": ".cky-modal-open input[type=checkbox]:checked,.cky-consent-bar-expand input[type=checkbox]:checked",
19
+ "all": true,
20
+ "optional": true
21
+ },
22
+ {
23
+ "waitForThenClick": ".cky-modal [data-cky-tag=detail-save-button],.cky-consent-bar-expand [data-cky-tag=detail-save-button]"
24
+ }
19
25
  ],
20
- "else": [{ "hide": ".cky-consent-container,.cky-overlay" }]
26
+ "else": [{ "hide": ".cky-consent-container,.cky-overlay,.cky-consent-bar-expand" }]
21
27
  }
22
28
  ]
23
29
  }
@@ -20,8 +20,8 @@
20
20
  ],
21
21
  "optOut": [
22
22
  {
23
- "if": { "visible": "#ct_ultimate-gdpr-cookie-reject a" },
24
- "then": [{ "click": "#ct_ultimate-gdpr-cookie-reject a" }],
23
+ "if": { "visible": "#ct_ultimate-gdpr-cookie-reject a,#ct-ultimate-gdpr-cookie-reject" },
24
+ "then": [{ "click": "#ct_ultimate-gdpr-cookie-reject a,#ct-ultimate-gdpr-cookie-reject" }],
25
25
  "else": [
26
26
  {
27
27
  "if": { "visible": "#ct-ultimate-gdpr-cookie-change-settings" },
@@ -4,36 +4,35 @@
4
4
  "detectPopup": [{ "exists": ".govuk-cookie-banner__message .govuk-button" }],
5
5
  "optIn": [{ "click": [".govuk-cookie-banner__message", "xpath///button[contains(., 'Accept')] | //a[contains(., 'Accept')]"] }],
6
6
  "optOut": [
7
+ {
8
+ "wait": 300
9
+ },
7
10
  {
8
11
  "if": {
9
- "exists": [
12
+ "visible": [
10
13
  ".govuk-cookie-banner__message",
11
- "xpath///button[contains(., 'Reject')] | //a[contains(., 'Reject')] | //input[contains(@value, 'Reject')]"
14
+ "xpath///button[contains(., 'Reject')] | //a[contains(., 'Reject')] | //input[contains(@value, 'Reject')] | //button[contains(., 'do not use analytics cookies')]"
12
15
  ]
13
16
  },
14
17
  "then": [
15
18
  {
16
19
  "click": [
17
20
  ".govuk-cookie-banner__message",
18
- "xpath///button[contains(., 'Reject')] | //a[contains(., 'Reject')] | //input[contains(@value, 'Reject')]"
21
+ "xpath///button[contains(., 'Reject')] | //a[contains(., 'Reject')] | //input[contains(@value, 'Reject')] | //button[contains(., 'do not use analytics cookies')]"
19
22
  ]
20
23
  }
21
24
  ]
22
25
  },
23
26
  {
24
- "if": {
25
- "exists": [
26
- ".govuk-cookie-banner__message",
27
- "xpath///button[contains(., 'Hide')] | //a[contains(., 'Hide')] | //input[contains(@value, 'Hide')]"
28
- ]
29
- },
30
- "then": [
31
- {
32
- "click": [
33
- ".govuk-cookie-banner__message",
34
- "xpath///button[contains(., 'Hide')] | //a[contains(., 'Hide')] | //input[contains(@value, 'Hide')]"
35
- ]
36
- }
27
+ "waitForVisible": [
28
+ ".govuk-cookie-banner__message",
29
+ "xpath///button[contains(., 'Hide')] | //a[contains(., 'Hide')] | //input[contains(@value, 'Hide')]"
30
+ ]
31
+ },
32
+ {
33
+ "click": [
34
+ ".govuk-cookie-banner__message",
35
+ "xpath///button[contains(., 'Hide')] | //a[contains(., 'Hide')] | //input[contains(@value, 'Hide')]"
37
36
  ]
38
37
  }
39
38
  ]