@freshjuice/zest 2.1.0 → 2.3.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 (57) hide show
  1. package/dist/zest.d.ts +40 -0
  2. package/dist/zest.de.js +763 -51
  3. package/dist/zest.de.js.map +1 -1
  4. package/dist/zest.de.min.js +1 -1
  5. package/dist/zest.en.js +763 -51
  6. package/dist/zest.en.js.map +1 -1
  7. package/dist/zest.en.min.js +1 -1
  8. package/dist/zest.es.js +763 -51
  9. package/dist/zest.es.js.map +1 -1
  10. package/dist/zest.es.min.js +1 -1
  11. package/dist/zest.esm.js +763 -51
  12. package/dist/zest.esm.js.map +1 -1
  13. package/dist/zest.esm.min.js +1 -1
  14. package/dist/zest.fr.js +763 -51
  15. package/dist/zest.fr.js.map +1 -1
  16. package/dist/zest.fr.min.js +1 -1
  17. package/dist/zest.headless.d.ts +40 -0
  18. package/dist/zest.headless.esm.js +717 -33
  19. package/dist/zest.headless.esm.js.map +1 -1
  20. package/dist/zest.headless.esm.min.js +1 -1
  21. package/dist/zest.it.js +763 -51
  22. package/dist/zest.it.js.map +1 -1
  23. package/dist/zest.it.min.js +1 -1
  24. package/dist/zest.ja.js +763 -51
  25. package/dist/zest.ja.js.map +1 -1
  26. package/dist/zest.ja.min.js +1 -1
  27. package/dist/zest.js +763 -51
  28. package/dist/zest.js.map +1 -1
  29. package/dist/zest.min.js +1 -1
  30. package/dist/zest.nl.js +763 -51
  31. package/dist/zest.nl.js.map +1 -1
  32. package/dist/zest.nl.min.js +1 -1
  33. package/dist/zest.pl.js +763 -51
  34. package/dist/zest.pl.js.map +1 -1
  35. package/dist/zest.pl.min.js +1 -1
  36. package/dist/zest.pt.js +763 -51
  37. package/dist/zest.pt.js.map +1 -1
  38. package/dist/zest.pt.min.js +1 -1
  39. package/dist/zest.ru.js +763 -51
  40. package/dist/zest.ru.js.map +1 -1
  41. package/dist/zest.ru.min.js +1 -1
  42. package/dist/zest.uk.js +763 -51
  43. package/dist/zest.uk.js.map +1 -1
  44. package/dist/zest.uk.min.js +1 -1
  45. package/dist/zest.zh.js +763 -51
  46. package/dist/zest.zh.js.map +1 -1
  47. package/dist/zest.zh.min.js +1 -1
  48. package/package.json +1 -1
  49. package/src/config/defaults.js +49 -0
  50. package/src/core/element-interceptor.js +374 -0
  51. package/src/core/network-interceptor.js +289 -0
  52. package/src/core/pattern-matcher.js +37 -0
  53. package/src/core-lifecycle.js +43 -5
  54. package/src/index.js +46 -18
  55. package/src/types/zest.d.ts +40 -0
  56. package/src/types/zest.headless.d.ts +40 -0
  57. package/zest.config.schema.json +26 -0
package/dist/zest.d.ts CHANGED
@@ -83,6 +83,27 @@ export interface ZestCallbacks {
83
83
  onReady?: (consent: ConsentState) => void;
84
84
  }
85
85
 
86
+ /**
87
+ * Granular toggles for Zest's interceptor layer. Default is `true` on
88
+ * every channel — back-compat with previous versions.
89
+ *
90
+ * Consumers that gate optional scripts and storage themselves can
91
+ * disable interception per channel and use Zest as a pure consent-state
92
+ * engine.
93
+ */
94
+ export interface InterceptToggles {
95
+ cookies?: boolean;
96
+ storage?: boolean;
97
+ scripts?: boolean;
98
+ /**
99
+ * fetch / XMLHttpRequest / navigator.sendBeacon interception. Catches
100
+ * trackers that ship via CMS first-party proxies (HubSpot, Cloudflare
101
+ * Zaraz, server-side GTM) where the <script> tag is same-origin but
102
+ * the runtime beacon is third-party.
103
+ */
104
+ network?: boolean;
105
+ }
106
+
86
107
  /** Configuration accepted by `init()` and `window.ZestConfig`. */
87
108
  export interface InitOptions {
88
109
  /** Display language. `'auto'` detects from `<html lang>` / browser. */
@@ -110,6 +131,25 @@ export interface InitOptions {
110
131
  respectDNT?: boolean;
111
132
  /** What to do when DNT/GPC is on. Default `'reject'`. */
112
133
  dntBehavior?: DNTBehavior;
134
+ /** Disable individual interceptors. Default: all on. */
135
+ intercept?: InterceptToggles;
136
+ /**
137
+ * Exact storage / cookie names to treat as strictly-necessary. Each
138
+ * is appended to the essential category as a fully-anchored regex,
139
+ * so the built-in essential patterns (zest_*, csrf*, …) stay intact.
140
+ */
141
+ essentialKeys?: string[];
142
+ /**
143
+ * Regex source strings to treat as strictly-necessary. Validated via
144
+ * safeRegExp, appended (not replaced) to the essential category.
145
+ */
146
+ essentialPatterns?: string[];
147
+ /**
148
+ * Override patterns per category. Note: this REPLACES the category's
149
+ * built-in patterns. Prefer `essentialKeys` / `essentialPatterns` if
150
+ * you only want to add to the essential category.
151
+ */
152
+ patterns?: Partial<Record<ConsentCategory, string[]>>;
113
153
  /** Consumer callbacks. */
114
154
  callbacks?: ZestCallbacks;
115
155
  /** Anything else — Zest tolerates unknown keys at runtime. */