@c15t/scripts 3.0.0-alpha.2 → 3.0.0-alpha.3

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 (300) hide show
  1. package/AGENTS.md +129 -63
  2. package/README.md +8 -29
  3. package/SKILL.md +33 -0
  4. package/dist/adobe-analytics.js +2 -0
  5. package/dist/ahrefs-analytics.js +2 -0
  6. package/dist/amplitude.js +2 -0
  7. package/dist/clearbit.js +2 -0
  8. package/dist/cloudflare-web-analytics.js +2 -0
  9. package/dist/cloudflare-zaraz.js +2 -0
  10. package/dist/crisp.js +2 -0
  11. package/dist/databuddy.js +2 -0
  12. package/dist/e2e-test-utils.js +2 -139
  13. package/dist/engine/compile.js +2 -89
  14. package/dist/engine/runtime.js +2 -448
  15. package/dist/events.js +2 -218
  16. package/dist/fathom-analytics.js +2 -0
  17. package/dist/front-chat.js +2 -0
  18. package/dist/google-tag-manager.js +2 -0
  19. package/dist/google-tag.js +2 -0
  20. package/dist/heap.js +2 -0
  21. package/dist/hightouch.js +2 -0
  22. package/dist/hotjar.js +2 -0
  23. package/dist/intercom.js +2 -0
  24. package/dist/klaviyo.js +2 -0
  25. package/dist/linkedin-insights.js +2 -0
  26. package/dist/logrocket.js +2 -0
  27. package/dist/matomo-analytics.js +2 -0
  28. package/dist/meta-pixel.js +2 -0
  29. package/dist/microsoft-clarity.js +2 -0
  30. package/dist/microsoft-uet.js +2 -0
  31. package/dist/mixpanel-analytics.js +2 -0
  32. package/dist/one-dollar-stats.js +2 -0
  33. package/dist/openai-pixel.js +2 -0
  34. package/dist/pinterest-tag.js +2 -0
  35. package/dist/pirsch.js +2 -0
  36. package/dist/plausible-analytics.js +2 -0
  37. package/dist/posthog.js +2 -0
  38. package/dist/promptwatch.js +2 -0
  39. package/dist/reddit-pixel.js +2 -0
  40. package/dist/registry.js +2 -422
  41. package/dist/resolve.js +2 -33
  42. package/dist/rudderstack.js +2 -0
  43. package/dist/rybbit-analytics.js +2 -0
  44. package/dist/segment.js +2 -0
  45. package/dist/snapchat-pixel.js +2 -0
  46. package/dist/tiktok-pixel.js +2 -0
  47. package/dist/types.js +2 -16
  48. package/dist/umami-analytics.js +2 -0
  49. package/dist/vendors/_shared/attributes.js +2 -14
  50. package/dist/vendors/_shared/google-consent.js +2 -27
  51. package/dist/vendors/_shared/install-builders.js +2 -21
  52. package/dist/vendors/_shared/required-id.js +2 -0
  53. package/dist/vendors/_shared/script-url.js +2 -28
  54. package/dist/vendors/ads-and-pixels/linkedin-insights.js +2 -48
  55. package/dist/vendors/ads-and-pixels/meta-pixel.js +2 -153
  56. package/dist/vendors/ads-and-pixels/microsoft-uet.js +2 -110
  57. package/dist/vendors/ads-and-pixels/openai-pixel.js +2 -88
  58. package/dist/vendors/ads-and-pixels/pinterest-tag.js +2 -123
  59. package/dist/vendors/ads-and-pixels/reddit-pixel.js +2 -107
  60. package/dist/vendors/ads-and-pixels/snapchat-pixel.js +2 -87
  61. package/dist/vendors/ads-and-pixels/tiktok-pixel.js +2 -89
  62. package/dist/vendors/ads-and-pixels/x-pixel.js +2 -48
  63. package/dist/vendors/analytics/adobe-analytics.js +2 -49
  64. package/dist/vendors/analytics/ahrefs-analytics.js +2 -27
  65. package/dist/vendors/analytics/amplitude.js +2 -134
  66. package/dist/vendors/analytics/clearbit.js +2 -28
  67. package/dist/vendors/analytics/cloudflare-web-analytics.js +2 -32
  68. package/dist/vendors/analytics/databuddy.js +2 -103
  69. package/dist/vendors/analytics/fathom-analytics.js +2 -35
  70. package/dist/vendors/analytics/google-tag.js +2 -78
  71. package/dist/vendors/analytics/heap.js +2 -134
  72. package/dist/vendors/analytics/hightouch.js +2 -109
  73. package/dist/vendors/analytics/hotjar.js +2 -44
  74. package/dist/vendors/analytics/logrocket.js +2 -58
  75. package/dist/vendors/analytics/matomo-analytics.js +2 -191
  76. package/dist/vendors/analytics/microsoft-clarity.js +2 -100
  77. package/dist/vendors/analytics/mixpanel-analytics.js +2 -93
  78. package/dist/vendors/analytics/one-dollar-stats.js +2 -30
  79. package/dist/vendors/analytics/pirsch.js +2 -67
  80. package/dist/vendors/analytics/plausible-analytics.js +2 -81
  81. package/dist/vendors/analytics/posthog.js +2 -200
  82. package/dist/vendors/analytics/promptwatch.js +2 -29
  83. package/dist/vendors/analytics/rudderstack.js +2 -183
  84. package/dist/vendors/analytics/rybbit-analytics.js +2 -63
  85. package/dist/vendors/analytics/segment.js +2 -65
  86. package/dist/vendors/analytics/umami-analytics.js +2 -39
  87. package/dist/vendors/analytics/vercel-analytics.js +2 -53
  88. package/dist/vendors/email-and-sms/klaviyo.js +2 -0
  89. package/dist/vendors/functional/crisp.js +2 -100
  90. package/dist/vendors/functional/front-chat.js +2 -64
  91. package/dist/vendors/functional/intercom.js +2 -45
  92. package/dist/vendors/tag-managers/cloudflare-zaraz.js +2 -98
  93. package/dist/vendors/tag-managers/google-tag-manager.js +2 -73
  94. package/dist/vercel-analytics.js +2 -0
  95. package/dist/x-pixel.js +2 -0
  96. package/dist-types/adobe-analytics.d.ts +2 -0
  97. package/dist-types/ahrefs-analytics.d.ts +2 -0
  98. package/dist-types/amplitude.d.ts +2 -0
  99. package/dist-types/clearbit.d.ts +2 -0
  100. package/dist-types/cloudflare-web-analytics.d.ts +2 -0
  101. package/dist-types/cloudflare-zaraz.d.ts +2 -0
  102. package/dist-types/crisp.d.ts +2 -0
  103. package/dist-types/databuddy.d.ts +2 -0
  104. package/dist-types/e2e-test-utils.d.ts +2 -0
  105. package/dist-types/engine/compile.d.ts +2 -3
  106. package/dist-types/engine/runtime.d.ts +2 -3
  107. package/dist-types/events.d.ts +2 -46
  108. package/dist-types/fathom-analytics.d.ts +2 -0
  109. package/dist-types/front-chat.d.ts +2 -0
  110. package/dist-types/google-tag-manager.d.ts +2 -0
  111. package/dist-types/google-tag.d.ts +2 -0
  112. package/dist-types/heap.d.ts +2 -0
  113. package/dist-types/hightouch.d.ts +2 -0
  114. package/dist-types/hotjar.d.ts +2 -0
  115. package/dist-types/intercom.d.ts +2 -0
  116. package/dist-types/klaviyo.d.ts +2 -0
  117. package/dist-types/linkedin-insights.d.ts +2 -0
  118. package/dist-types/logrocket.d.ts +2 -0
  119. package/dist-types/matomo-analytics.d.ts +2 -0
  120. package/dist-types/meta-pixel.d.ts +2 -0
  121. package/dist-types/microsoft-clarity.d.ts +2 -0
  122. package/dist-types/microsoft-uet.d.ts +2 -0
  123. package/dist-types/mixpanel-analytics.d.ts +2 -0
  124. package/dist-types/one-dollar-stats.d.ts +2 -0
  125. package/dist-types/openai-pixel.d.ts +2 -0
  126. package/dist-types/pinterest-tag.d.ts +2 -0
  127. package/dist-types/pirsch.d.ts +2 -0
  128. package/dist-types/plausible-analytics.d.ts +2 -0
  129. package/dist-types/posthog.d.ts +2 -0
  130. package/dist-types/promptwatch.d.ts +2 -0
  131. package/dist-types/reddit-pixel.d.ts +2 -0
  132. package/dist-types/registry.d.ts +2 -485
  133. package/dist-types/resolve.d.ts +2 -9
  134. package/dist-types/rudderstack.d.ts +2 -0
  135. package/dist-types/rybbit-analytics.d.ts +2 -0
  136. package/dist-types/segment.d.ts +2 -0
  137. package/dist-types/snapchat-pixel.d.ts +2 -0
  138. package/dist-types/tiktok-pixel.d.ts +2 -0
  139. package/dist-types/types.d.ts +2 -314
  140. package/dist-types/umami-analytics.d.ts +2 -0
  141. package/dist-types/vendors/_shared/attributes.d.ts +2 -35
  142. package/dist-types/vendors/_shared/google-consent.d.ts +2 -47
  143. package/dist-types/vendors/_shared/install-builders.d.ts +2 -30
  144. package/dist-types/vendors/_shared/required-id.d.ts +2 -0
  145. package/dist-types/vendors/_shared/script-url.d.ts +2 -75
  146. package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +2 -92
  147. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +2 -289
  148. package/dist-types/vendors/ads-and-pixels/microsoft-uet.d.ts +2 -105
  149. package/dist-types/vendors/ads-and-pixels/openai-pixel.d.ts +2 -211
  150. package/dist-types/vendors/ads-and-pixels/pinterest-tag.d.ts +2 -295
  151. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +2 -210
  152. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +2 -171
  153. package/dist-types/vendors/ads-and-pixels/tiktok-pixel.d.ts +2 -106
  154. package/dist-types/vendors/ads-and-pixels/x-pixel.d.ts +2 -183
  155. package/dist-types/vendors/analytics/adobe-analytics.d.ts +2 -75
  156. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +2 -62
  157. package/dist-types/vendors/analytics/amplitude.d.ts +2 -234
  158. package/dist-types/vendors/analytics/clearbit.d.ts +2 -60
  159. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +2 -67
  160. package/dist-types/vendors/analytics/databuddy.d.ts +2 -147
  161. package/dist-types/vendors/analytics/fathom-analytics.d.ts +2 -90
  162. package/dist-types/vendors/analytics/google-tag.d.ts +2 -95
  163. package/dist-types/vendors/analytics/heap.d.ts +2 -316
  164. package/dist-types/vendors/analytics/hightouch.d.ts +2 -285
  165. package/dist-types/vendors/analytics/hotjar.d.ts +2 -73
  166. package/dist-types/vendors/analytics/logrocket.d.ts +2 -101
  167. package/dist-types/vendors/analytics/matomo-analytics.d.ts +2 -41
  168. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +2 -97
  169. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +2 -113
  170. package/dist-types/vendors/analytics/one-dollar-stats.d.ts +2 -39
  171. package/dist-types/vendors/analytics/pirsch.d.ts +2 -96
  172. package/dist-types/vendors/analytics/plausible-analytics.d.ts +2 -122
  173. package/dist-types/vendors/analytics/posthog.d.ts +2 -175
  174. package/dist-types/vendors/analytics/promptwatch.d.ts +2 -36
  175. package/dist-types/vendors/analytics/rudderstack.d.ts +2 -330
  176. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +2 -82
  177. package/dist-types/vendors/analytics/segment.d.ts +2 -164
  178. package/dist-types/vendors/analytics/umami-analytics.d.ts +2 -93
  179. package/dist-types/vendors/analytics/vercel-analytics.d.ts +2 -66
  180. package/dist-types/vendors/email-and-sms/klaviyo.d.ts +2 -0
  181. package/dist-types/vendors/functional/crisp.d.ts +2 -78
  182. package/dist-types/vendors/functional/front-chat.d.ts +2 -62
  183. package/dist-types/vendors/functional/intercom.d.ts +2 -135
  184. package/dist-types/vendors/tag-managers/cloudflare-zaraz.d.ts +2 -39
  185. package/dist-types/vendors/tag-managers/google-tag-manager.d.ts +2 -96
  186. package/dist-types/vercel-analytics.d.ts +2 -0
  187. package/dist-types/x-pixel.d.ts +2 -0
  188. package/docs/README.md +129 -63
  189. package/docs/assets/v3/bottom-bar.png +0 -0
  190. package/docs/assets/v3/brand-card.png +0 -0
  191. package/docs/assets/v3/brand-preferences.png +0 -0
  192. package/docs/assets/v3/choice-wall.png +0 -0
  193. package/docs/assets/v3/headless-bar-html.png +0 -0
  194. package/docs/assets/v3/headless-bar-mobile.png +0 -0
  195. package/docs/assets/v3/headless-bar.png +0 -0
  196. package/docs/assets/v3/slim-bar.png +0 -0
  197. package/docs/concepts/choose-your-setup.md +87 -0
  198. package/docs/concepts/consent-categories.md +84 -0
  199. package/docs/{guides → concepts}/consent-state.md +71 -101
  200. package/docs/{guides → concepts}/data-fetching.md +31 -27
  201. package/docs/concepts/how-consent-works.md +123 -0
  202. package/docs/concepts/policies.md +71 -0
  203. package/docs/customization/class-names.md +202 -0
  204. package/docs/customization/dark-mode.md +157 -0
  205. package/docs/customization/motion.md +119 -0
  206. package/docs/customization/overview.md +67 -34
  207. package/docs/customization/recipes.md +839 -49
  208. package/docs/customization/slots.md +216 -35
  209. package/docs/customization/stylesheets.md +147 -0
  210. package/docs/customization/tailwind.md +842 -0
  211. package/docs/customization/tokens.md +163 -96
  212. package/docs/customization/translations.md +61 -3
  213. package/docs/frameworks/astro/embeds.md +160 -0
  214. package/docs/frameworks/astro/network-blocker.md +86 -0
  215. package/docs/frameworks/astro/scripts.md +146 -0
  216. package/docs/frameworks/html/embeds.md +142 -0
  217. package/docs/frameworks/html/network-blocker.md +105 -0
  218. package/docs/frameworks/html/scripts.md +164 -0
  219. package/docs/frameworks/javascript/scripts.md +119 -0
  220. package/docs/frameworks/next/embeds.md +90 -0
  221. package/docs/frameworks/next/network-blocker.md +153 -0
  222. package/docs/frameworks/next/scripts.md +196 -0
  223. package/docs/frameworks/nuxt/embeds.md +81 -0
  224. package/docs/frameworks/nuxt/network-blocker.md +97 -0
  225. package/docs/frameworks/nuxt/scripts.md +89 -0
  226. package/docs/frameworks/react/embeds.md +89 -0
  227. package/docs/frameworks/react/network-blocker.md +140 -0
  228. package/docs/frameworks/react/scripts.md +115 -0
  229. package/docs/frameworks/svelte/embeds.md +96 -0
  230. package/docs/frameworks/svelte/network-blocker.md +141 -0
  231. package/docs/frameworks/svelte/scripts.md +137 -0
  232. package/docs/frameworks/sveltekit/embeds.md +103 -0
  233. package/docs/frameworks/sveltekit/network-blocker.md +149 -0
  234. package/docs/frameworks/sveltekit/scripts.md +141 -0
  235. package/docs/frameworks/tanstack-start/embeds.md +96 -0
  236. package/docs/frameworks/tanstack-start/network-blocker.md +145 -0
  237. package/docs/frameworks/tanstack-start/scripts.md +103 -0
  238. package/docs/frameworks/vue/embeds.md +84 -0
  239. package/docs/frameworks/vue/network-blocker.md +99 -0
  240. package/docs/frameworks/vue/scripts.md +93 -0
  241. package/docs/guides/banner-experiments.md +654 -0
  242. package/docs/guides/troubleshooting.md +120 -47
  243. package/docs/guides/verify-consent.md +81 -49
  244. package/docs/integrations/adobe-analytics.md +167 -159
  245. package/docs/integrations/ahrefs-analytics.md +152 -154
  246. package/docs/integrations/amplitude.md +162 -156
  247. package/docs/integrations/building-integrations.md +136 -37
  248. package/docs/integrations/clearbit.md +154 -154
  249. package/docs/integrations/cloudflare-web-analytics.md +156 -156
  250. package/docs/integrations/cloudflare-zaraz.md +209 -261
  251. package/docs/integrations/crisp.md +164 -158
  252. package/docs/integrations/databuddy.md +157 -173
  253. package/docs/integrations/fathom-analytics.md +158 -156
  254. package/docs/integrations/front-chat.md +167 -167
  255. package/docs/integrations/google-maps.md +118 -83
  256. package/docs/integrations/google-tag-manager.md +178 -163
  257. package/docs/integrations/google-tag.md +163 -160
  258. package/docs/integrations/heap.md +163 -155
  259. package/docs/integrations/hightouch.md +161 -157
  260. package/docs/integrations/hotjar.md +159 -155
  261. package/docs/integrations/intercom.md +183 -153
  262. package/docs/integrations/klaviyo.md +486 -0
  263. package/docs/integrations/linkedin-insights.md +174 -150
  264. package/docs/integrations/logrocket.md +160 -156
  265. package/docs/integrations/matomo-analytics.md +188 -178
  266. package/docs/integrations/meta-pixel.md +188 -150
  267. package/docs/integrations/microsoft-clarity.md +163 -155
  268. package/docs/integrations/microsoft-uet.md +148 -154
  269. package/docs/integrations/mixpanel-analytics.md +155 -160
  270. package/docs/integrations/one-dollar-stats.md +166 -165
  271. package/docs/integrations/openai-pixel.md +204 -301
  272. package/docs/integrations/overview.md +137 -80
  273. package/docs/integrations/pinterest-tag.md +191 -183
  274. package/docs/integrations/pirsch.md +169 -159
  275. package/docs/integrations/plausible-analytics.md +172 -158
  276. package/docs/integrations/posthog.md +226 -241
  277. package/docs/integrations/promptwatch.md +154 -154
  278. package/docs/integrations/reddit-pixel.md +185 -157
  279. package/docs/integrations/rudderstack.md +201 -186
  280. package/docs/integrations/rybbit-analytics.md +171 -160
  281. package/docs/integrations/segment.md +182 -154
  282. package/docs/integrations/snapchat-pixel.md +186 -156
  283. package/docs/integrations/tiktok-pixel.md +171 -150
  284. package/docs/integrations/umami-analytics.md +163 -158
  285. package/docs/integrations/vercel-analytics.md +166 -157
  286. package/docs/integrations/x-pixel.md +176 -150
  287. package/docs/integrations/youtube.md +121 -86
  288. package/docs/upgrade-v3.md +475 -467
  289. package/package.json +10 -257
  290. package/dist-types/__tests__/helpers.d.ts +0 -141
  291. package/docs/assets/v3/brand-bar.png +0 -0
  292. package/docs/assets/v3/mobile-card.png +0 -0
  293. package/docs/assets/v3/preferences.png +0 -0
  294. package/docs/frameworks/javascript/script-loader.md +0 -100
  295. package/docs/frameworks/next/script-loader.md +0 -216
  296. package/docs/frameworks/react/script-loader.md +0 -69
  297. package/docs/guides/deployment-modes.md +0 -75
  298. package/docs/guides/shared-consent-controls.md +0 -158
  299. package/docs/integrations/clear-on-revocation.md +0 -167
  300. package/docs/integrations/granular-consent.md +0 -210
@@ -1,98 +1,2 @@
1
- const consentCategories = [
2
- 'necessary',
3
- 'functionality',
4
- 'experience',
5
- 'measurement',
6
- 'marketing'
7
- ];
8
- const readyEvent = 'zarazConsentAPIReady';
9
- const isConsentApi = (api)=>'object' == typeof api && null !== api && 'APIReady' in api && true === api.APIReady && 'getAll' in api && 'function' == typeof api.getAll && 'set' in api && 'function' == typeof api.set && 'sendQueuedEvents' in api && 'function' == typeof api.sendQueuedEvents;
10
- const getConsentApi = ()=>{
11
- if ("u" < typeof window || !('zaraz' in window)) return;
12
- const { zaraz } = window;
13
- if ('object' != typeof zaraz || null === zaraz || !('consent' in zaraz)) return;
14
- return isConsentApi(zaraz.consent) ? zaraz.consent : void 0;
15
- };
16
- const cloudflareZaraz = (options)=>{
17
- const mappings = new Map();
18
- for (const category of consentCategories)for (const purpose of options.purposes[category] ?? []){
19
- if (!purpose.trim() || purpose !== purpose.trim()) throw new Error('Zaraz purpose IDs must be non-empty and have no surrounding whitespace.');
20
- if (mappings.has(purpose)) throw new Error(`Zaraz purpose '${purpose}' is mapped more than once.`);
21
- mappings.set(purpose, category);
22
- }
23
- if (0 === mappings.size) throw new Error('Map at least one Zaraz purpose to a c15t category.');
24
- let latest;
25
- let listeningDocument;
26
- let initialized = false;
27
- const pendingReplay = new Set();
28
- const synchronize = ()=>{
29
- const api = getConsentApi();
30
- if (!latest || !api) return false;
31
- const previous = api.getAll();
32
- const permissions = {};
33
- let changed = false;
34
- for (const purpose of Object.keys(previous)){
35
- const category = mappings.get(purpose);
36
- const allowed = void 0 !== category && true === latest[category];
37
- Object.defineProperty(permissions, purpose, {
38
- enumerable: true,
39
- value: allowed
40
- });
41
- changed ||= previous[purpose] !== allowed;
42
- if (allowed && true !== previous[purpose]) pendingReplay.add(purpose);
43
- }
44
- for (const purpose of pendingReplay)if (true !== permissions[purpose]) pendingReplay.delete(purpose);
45
- if (false !== options.hideBuiltInModal && true === api.modal) api.modal = false;
46
- if (changed) api.set(permissions);
47
- if (pendingReplay.size > 0 && false !== options.sendQueuedEvents) api.sendQueuedEvents();
48
- pendingReplay.clear();
49
- return true;
50
- };
51
- const apply = ()=>{
52
- try {
53
- if (!synchronize()) return false;
54
- } catch (error) {
55
- if (!options.onError) throw error;
56
- options.onError(error);
57
- return false;
58
- }
59
- listeningDocument?.removeEventListener(readyEvent, apply);
60
- listeningDocument = void 0;
61
- if (!initialized) {
62
- initialized = true;
63
- options.onReady?.();
64
- }
65
- return true;
66
- };
67
- const update = ({ consents })=>{
68
- latest = consents;
69
- if ("u" < typeof document) return;
70
- let applied = false;
71
- try {
72
- applied = apply();
73
- } finally{
74
- if (!applied && !listeningDocument) {
75
- listeningDocument = document;
76
- document.addEventListener(readyEvent, apply);
77
- }
78
- }
79
- };
80
- return {
81
- alwaysLoad: true,
82
- callbackOnly: true,
83
- category: 'necessary',
84
- id: 'cloudflare-zaraz',
85
- onConsentChange: (info)=>{
86
- if (info.hasConsent) update(info);
87
- },
88
- onDispose: ()=>{
89
- listeningDocument?.removeEventListener(readyEvent, apply);
90
- listeningDocument = void 0;
91
- latest = void 0;
92
- initialized = false;
93
- pendingReplay.clear();
94
- },
95
- onLoad: update
96
- };
97
- };
98
- export { cloudflareZaraz };
1
+ /** @deprecated Use @c15t/integrations/vendors/tag-managers/cloudflare-zaraz. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/tag-managers/cloudflare-zaraz';
@@ -1,73 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { runtimeTimestampValue, vendorManifestContract } from "../../types.js";
3
- import { GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING, withOptionalConsentMapping } from "../_shared/google-consent.js";
4
- const googleTagManagerManifest = {
5
- ...vendorManifestContract,
6
- alwaysLoad: true,
7
- bootstrap: [
8
- {
9
- ifUndefined: true,
10
- name: 'dataLayer',
11
- type: 'setGlobal',
12
- value: []
13
- },
14
- {
15
- ifUndefined: true,
16
- name: 'gtag',
17
- queue: 'dataLayer',
18
- type: 'defineQueueFunction'
19
- }
20
- ],
21
- category: 'necessary',
22
- consentMapping: GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING,
23
- consentSignal: 'gtag',
24
- install: [
25
- {
26
- queue: 'dataLayer',
27
- type: 'pushToQueue',
28
- value: {
29
- event: 'gtm.js',
30
- 'gtm.start': runtimeTimestampValue
31
- }
32
- },
33
- {
34
- async: true,
35
- src: 'https://www.googletagmanager.com/gtm.js?id={{id}}',
36
- type: 'loadScript'
37
- }
38
- ],
39
- onConsentChange: [
40
- {
41
- args: [
42
- 'event',
43
- '{{updateEventName}}'
44
- ],
45
- global: 'gtag',
46
- type: 'callGlobal'
47
- }
48
- ],
49
- vendor: 'google-tag-manager'
50
- };
51
- const google_tag_manager_googleTagManager = function({ id, dataLayer = 'dataLayer', updateEventName, consentMapping }) {
52
- let manifest = withOptionalConsentMapping(googleTagManagerManifest, consentMapping);
53
- if ('dataLayer' !== dataLayer) {
54
- manifest = JSON.parse(JSON.stringify(manifest).replace(/"(?:dataLayer|gtag)"/gu, (token)=>JSON.stringify('"dataLayer"' === token ? dataLayer : `${dataLayer}Gtag`)).replace('gtm.js?id={{id}}', `gtm.js?id={{id}}&l=${encodeURIComponent(dataLayer)}`));
55
- manifest = {
56
- ...manifest,
57
- consentSignal: 'gtag',
58
- consentSignalTarget: `${dataLayer}Gtag`
59
- };
60
- }
61
- const resolved = resolveManifest(manifest, {
62
- id,
63
- updateEventName: updateEventName ?? 'consent-update'
64
- });
65
- return {
66
- ...resolved,
67
- attributes: {
68
- ...resolved.attributes,
69
- 'data-c15t-layer': dataLayer
70
- }
71
- };
72
- };
73
- export { googleTagManagerManifest, google_tag_manager_googleTagManager as googleTagManager };
1
+ /** @deprecated Use @c15t/integrations/vendors/tag-managers/google-tag-manager. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/tag-managers/google-tag-manager';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/vercel-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vercel-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/x-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/x-pixel';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/adobe-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/adobe-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/ahrefs-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/ahrefs-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/amplitude. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/amplitude';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/clearbit. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/clearbit';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/cloudflare-web-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/cloudflare-web-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/cloudflare-zaraz. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/cloudflare-zaraz';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/crisp. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/crisp';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/databuddy. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/databuddy';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/e2e-test-utils. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/e2e-test-utils';
@@ -1,3 +1,2 @@
1
- import type { ResolvedManifest, VendorManifest } from '../types.js';
2
- export declare const interpolateValue: (value: unknown, config: Record<string, unknown>) => unknown;
3
- export declare const compileManifest: (manifest: VendorManifest, config?: Record<string, unknown>) => ResolvedManifest;
1
+ /** @deprecated Use @c15t/integrations/engine/compile. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/engine/compile';
@@ -1,3 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- import type { ResolvedManifest } from '../types.js';
3
- export declare const resolvedManifestToScript: (resolvedManifest: ResolvedManifest) => Script;
1
+ /** @deprecated Use @c15t/integrations/engine/runtime. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/engine/runtime';
@@ -1,46 +1,2 @@
1
- import type { ConsentSnapshot, Script } from '@c15t/core';
2
- /** Flat event metadata accepted by the shared dispatcher. */
3
- export type EventProperties = Record<string, string | number | boolean>;
4
- /** Runtime inputs: the host owns event names, c15t owns delivery eligibility. */
5
- export interface EventDispatcherOptions {
6
- scripts: readonly Script[];
7
- getSnapshot: () => ConsentSnapshot;
8
- /** SDKs needing explicit SPA pageviews. Omit SDKs that track history themselves. */
9
- pageviews?: readonly string[];
10
- /** Injectable browser globals for testing or embedded runtimes. */
11
- globals?: object;
12
- }
13
- /**
14
- * Deliver events only to configured integrations with current analytics consent.
15
- * Denied events are discarded, and a vendor error does not stop other deliveries.
16
- *
17
- * @param options - Scripts, current consent snapshot, optional SPA integrations
18
- * and browser globals used to call their SDKs.
19
- * @returns A dispatcher with `track` for named events and `pageview` for SPA
20
- * navigation. The first pageview seeds the path without sending; later calls
21
- * ignore duplicate paths and hash-only changes. Only configured `pageviews`
22
- * integrations receive navigation events.
23
- * @example
24
- * ```ts
25
- * const events = createEventDispatcher({ scripts, getSnapshot: kernel.getSnapshot,
26
- * pageviews: ['segment'] });
27
- * events.pageview(location.pathname);
28
- * events.track('search', { length: 4 });
29
- * events.pageview('/results');
30
- * ```
31
- */
32
- export declare const createEventDispatcher: (options: EventDispatcherOptions) => {
33
- /**
34
- * Seed the initial path, then deliver permitted navigation events.
35
- * @param path - Current path, including any query and hash. Hash-only changes are ignored.
36
- * @returns Nothing. The first call and duplicate paths do not send events.
37
- */
38
- pageview(path: string): void;
39
- /**
40
- * Send a named event to each configured, currently permitted integration.
41
- * @param event - Application event name understood by the configured SDKs.
42
- * @param properties - Flat metadata copied for each vendor delivery.
43
- * @returns Nothing. Denied events are discarded and SDK errors are isolated.
44
- */
45
- track(event: string, properties?: EventProperties): void;
46
- };
1
+ /** @deprecated Use @c15t/integrations/events. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/events';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/fathom-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/fathom-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/front-chat. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/front-chat';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/google-tag-manager. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/google-tag-manager';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/google-tag. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/google-tag';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/heap. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/heap';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/hightouch. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/hightouch';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/hotjar. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/hotjar';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/intercom. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/intercom';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/klaviyo. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/klaviyo';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/linkedin-insights. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/linkedin-insights';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/logrocket. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/logrocket';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/matomo-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/matomo-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/meta-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/meta-pixel';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/microsoft-clarity. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/microsoft-clarity';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/microsoft-uet. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/microsoft-uet';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/mixpanel-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/mixpanel-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/one-dollar-stats. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/one-dollar-stats';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/openai-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/openai-pixel';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/pinterest-tag. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/pinterest-tag';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/pirsch. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/pirsch';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/plausible-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/plausible-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/posthog. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/posthog';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/promptwatch. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/promptwatch';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/reddit-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/reddit-pixel';