---
url: https://docs.consentpro.com/changelog/dictionary.md
---
# consentpro-dictionary

## 0.1.15

### Patch Changes

* Updated dependencies \[e7b804d]
  * consentpro-types@1.5.0
  * consentpro-utils@2.1.5

## 0.1.14

### Patch Changes

* Updated dependencies \[e73fae1]
  * consentpro-utils@2.1.4

## 0.1.13

### Patch Changes

* Updated dependencies \[2a448a5]
  * consentpro-types@1.4.2
  * consentpro-utils@2.1.3

## 0.1.12

### Patch Changes

* Updated dependencies \[2006604]
  * consentpro-types@1.4.1
  * consentpro-utils@2.1.3

## 0.1.11

### Patch Changes

* Updated dependencies \[0ef3fd1]
  * consentpro-types@1.4.0
  * consentpro-utils@2.1.3

## 0.1.10

### Patch Changes

* 3dc13a0: Collapse PostHog keys that embed the project API key into wildcard trackers, so a scan reports `ph_phc_*_posthog`, `ph_phc_*_window_id` and `__ph_opt_in_out_phc_*` instead of one row per full key. The key suffix is kept, so each PostHog entry keeps its own purpose, and the persistence cookie and its local storage copy keep their own retention. The same key across several PostHog projects on one site now collapses into a single tracker.
  * consentpro-utils@2.1.3

## 0.1.9

### Patch Changes

* Updated dependencies \[bb844a5]
* Updated dependencies \[c3fe401]
* Updated dependencies \[b821430]
* Updated dependencies \[9518dbb]
* Updated dependencies \[c3fe401]
  * consentpro-types@1.3.2
  * consentpro-utils@2.1.3

## 0.1.8

### Patch Changes

* Updated dependencies \[f5911a6]
  * consentpro-types@1.3.1
  * consentpro-utils@2.1.2

## 0.1.7

### Patch Changes

* Updated dependencies \[36435b2]
  * consentpro-utils@2.1.2

## 0.1.6

### Patch Changes

* fecdc78: Fix the custom-site opt-in banner rendering without its reject button.

  The button set only ever reached the runtime through the CDN copy fetch, so any failed fetch left `<consentpro-banner>` on its own defaults, which show preferences and accept but default `showDenyButton` to `false`. An opt-in banner rendered accept-only, silently, which is a consent-compliance failure rather than a cosmetic one. One way to trigger it: `instanceConfig` writes the `consentpro-mode` query param into `bannerType`, but that param can carry an **instance key** rather than a banner type (the debugger's keys are region-derived), and the copy request for `us-or` 400s.

  **consentpro-dictionary**

  * `BANNER_STRUCTURE` and its `BannerStructure` type move to their own module and are exported from `consentpro-dictionary/consent-copy`. The record is unchanged; it was already locale-independent, so nothing about the served copy changes.
  * New `getBannerStructure(method)` resolves an unvalidated banner type, falling back to the `opt-in` structure — the only one that always offers a deny button — rather than returning `undefined`.

  **consentpro-v2**

  * The custom-site banner resolves its button structure locally from `bannerType` and layers the fetched copy's strings on top, so the button set no longer depends on the network. `showGpcNotice` is now derived from the same local structure gated on the visitor's GPC signal, instead of from the fetched copy.
  * `instanceConfig`'s handling of `consentpro-mode` is left alone deliberately: it is shared with Webflow sites, and the local structure fallback already keeps the banner compliant for the unvalidated types it produces.
  * A failed copy fetch warns to the console instead of being swallowed, so a banner falling back to English defaults is diagnosable.

* 8384efa: Show a placeholder overlay on iframes blocked for want of consent on custom (non-Webflow) sites.

  Custom sites have no pasted `fs-consent-element="placeholder"` markup, so a blocked embed simply lost its `src` and rendered as a blank box. The overlay now ships as a web component that `core/v2` swaps into the blocked iframe itself.

  **web-components**

  * New `<consentpro-placeholder>` custom element, built as its own `placeholder.js` CDN bundle. Like every other component in this package, its props are plain JS properties observed as no attribute, and its buttons dispatch bubbling, composed `consentpro:open-preferences` / `consentpro:allow` events.

  **consentpro-dictionary**

  * `getConsentCopy` returns a `placeholder` block (`message`, `preferencesText`, `acceptAllText`), so the overlay is localized like every other component.

  **server**

  * `GET /v2/cdn/web-components/placeholder.js` serves the new bundle, and `copy.json` carries the `placeholder` strings.

  **consentpro-v2**

  * `new/custom-site/placeholder.ts` builds the blocked iframe's document as a string, which the existing blob path swaps into the iframe's `src`. It is self-contained: the CDN module that registers the element, plus the script that waits for that registration, creates the element and assigns the copy as JS properties. No markup is parsed, mutated or serialized on the way, and the copy is escaped into the script rather than interpolated into HTML.
  * That script tag is pinned with the build-time `sha384` hash, so `placeholder.js` is now SRI-checked like the other component bundles.
  * Blocked iframes wire the overlay's events through `custom-site/events.ts`: the document is a same-origin `blob:`, so the component's `consentpro:*` events reach the consent-state layer directly.
  * A blocked iframe's own `sandbox` is stashed and dropped while the placeholder is shown, then restored verbatim before the original URL loads again. It applies to the untrusted embed, not to our placeholder, and without `allow-scripts` it kept the overlay from ever rendering.
  * `iframe-blocked` now fires once per blocked iframe, carrying the embed's URL. Re-rendering a placeholder whose copy arrived late no longer emits a second event whose `src` had already been replaced.

* d3e426d: Link the custom-site banner to the project's own privacy policy, or show no link at all.

  The custom-platform banner always rendered a dead `<a href="#">Privacy Policy</a>`: the project's privacy-policy URL never reached the runtime.

  **consentpro-dictionary**

  * `getConsentCopy` returns `messageHtmlWithoutPrivacyLink` alongside `messageHtml` — the same message with the whole privacy sentence removed, cut from the tokenized template so every locale ends on its own sentence terminator. `messageHtml` is unchanged.

  **server / consentpro-types**

  * `privacy_page_url` maps to `legal.privacyPolicyUrl`, and `sanitizeConfigForClient` publishes that one field. `cookiePolicyUrl` and `contactEmail` stay server-side.

  **consentpro-v2**

  * The custom-site banner points the anchor at the configured URL (normalized through `new URL()` and restricted to http(s), opened in a new tab), and drops the privacy sentence when no URL is configured.

* Updated dependencies \[fecdc78]

* Updated dependencies \[9a490af]

* Updated dependencies \[d3e426d]

* Updated dependencies \[a580774]

* Updated dependencies \[d7331e4]

* Updated dependencies \[2ebb655]
  * consentpro-types@1.3.0
  * consentpro-utils@2.1.1

## 0.1.5

### Patch Changes

* Updated dependencies \[6757be6]
  * consentpro-types@1.2.1
  * consentpro-utils@2.1.0

## 0.1.4

### Patch Changes

* f528b4f: Collapse Heap `_hp2_*` / `_hp5_*` environment-suffixed keys and Optimizely per-visitor `optimizely_data$$oeu…` / origin `_oeu…` stores into wildcard trackers, and add matching known-cookie entries so those keys are dictionary-matched on scan.
  * consentpro-utils@2.1.0

## 0.1.3

### Patch Changes

* Updated dependencies \[55656ae]
* Updated dependencies \[4afc228]
  * consentpro-utils@2.1.0
  * consentpro-types@1.2.0

## 0.1.2

### Patch Changes

* 4d7fcb3: feat: add StackAdapt to known providers;
  add StackAdapt tracking pattern to tracker collapse patterns
  * consentpro-utils@2.0.3

## 0.1.1

### Patch Changes

* Updated dependencies \[3ea0afe]
  * consentpro-types@1.1.5
  * consentpro-utils@2.0.3

## 0.1.0

### Minor Changes

* a0173e0: Add Disqus to the provider and cookie dictionaries so its comment-embed cookies and local-storage keys (`disqus_unique`, `__jid`, `drafts.queue`, `submitted_posts_cache`, `disqus.thread`, `aet-dismiss`) are recognized, named, and categorized instead of surfacing as auto-detected/unknown.

### Patch Changes

* 3fb6710: UX improvements: regions, banners, and action items.
  * **"EU Countries & UK"** uses Cloudflare’s EU list (+ UK): https://developers.cloudflare.com/ruleset-engine/rules-language/fields/reference/ip.src.is_in_european_union/
  * Create Banner: legislation and country/state filters for recommended banner types
  * Simplify Action items experience for the users
  * Domain management bar; chat-with-expert entry points; remove PMF survey

* 9d4c732: typeform url update

* Updated dependencies \[81c0689]

* Updated dependencies \[3fb6710]

* Updated dependencies \[81c0689]
  * consentpro-utils@2.0.3
  * consentpro-types@1.1.4

## 0.0.11

### Patch Changes

* Updated dependencies \[cb1d15a]
* Updated dependencies \[2487ddd]
  * consentpro-utils@2.0.2
  * consentpro-types@1.1.3

## 0.0.10

### Patch Changes

* 494b74c: feat: add ClickUp provider to known providers; add SPLITIO collapse patterns tests for ClickUp trackers
* 73a3472: improve attribution of resources to storage
* 5407450: fix cookie declaration hydration
* Updated dependencies \[5407450]
* Updated dependencies \[e46032c]
  * consentpro-types@1.1.2
  * consentpro-utils@2.0.1

## 0.0.9

### Patch Changes

* e5d2aad: fix: Whitelist numeric storage keys to stop Shopyflow product caches from being flagged as trackers
  * consentpro-utils@2.0.1

## 0.0.8

### Patch Changes

* 353af98: feat: Implement tracker collapse functionality for improved analytics
  * consentpro-utils@2.0.1

## 0.0.7

### Patch Changes

* ded7f80: update namings in usages of `consent-pro-**` to `consentpro-**`
* 73aa49f: feat: consent pro debugger
  * consentpro-utils@2.0.1

## 0.0.6

### Patch Changes

* Updated dependencies \[ef22755]
* Updated dependencies \[9cf51bd]
  * consentpro-utils@2.0.1

## 0.0.5

### Patch Changes

* 1a79dde: whitelist \_cfuvid tracker and add `language` to `ConsentProV2InstanceSettings`
* Updated dependencies \[1a79dde]
  * consentpro-types@1.1.1
  * consentpro-utils@2.0.0

## 0.0.4

### Patch Changes

* 1a79dde: whitelist \_cfuvid tracker
  * consentpro-utils@2.0.0

## 0.0.3

### Patch Changes

* Updated dependencies \[6509630]
  * consentpro-types@1.1.0
  * consentpro-utils@2.0.0

## 0.0.2

### Patch Changes

* Updated dependencies \[e9bd587]
* Updated dependencies \[6029a6c]
* Updated dependencies \[2b400f7]
* Updated dependencies \[5b5fdd7]
  * consentpro-types@1.0.0
  * consentpro-utils@2.0.0
