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

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 +89 -105
  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 +60 -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 +155 -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 +137 -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 +144 -0
  232. package/docs/frameworks/sveltekit/embeds.md +103 -0
  233. package/docs/frameworks/sveltekit/network-blocker.md +159 -0
  234. package/docs/frameworks/sveltekit/scripts.md +172 -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 +313 -240
  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 +496 -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,164 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- /**
3
- * Public Segment Analytics.js API exposed on `window.analytics`.
4
- *
5
- * Use this interface when interacting with Segment calls queued before or after
6
- * the client library is fully initialized.
7
- *
8
- * @example
9
- * ```ts
10
- * window.analytics.track('Signup', { plan: 'pro' });
11
- * ```
12
- */
13
- export interface SegmentApi {
14
- /**
15
- * Queues an event tracking call.
16
- *
17
- * @param event - Event name to record.
18
- * @param properties - Optional event properties payload.
19
- * @returns `void`.
20
- *
21
- * @remarks
22
- * Calls are queued until Analytics.js initializes.
23
- *
24
- * @example
25
- * ```ts
26
- * window.analytics.track('Signup', { plan: 'pro' });
27
- * ```
28
- */
29
- track: (event: string, properties?: Record<string, unknown>) => void;
30
- /**
31
- * Queues a page tracking call.
32
- *
33
- * @param name - Optional page name override.
34
- * @param properties - Optional page metadata payload.
35
- * @returns `void`.
36
- *
37
- * @remarks
38
- * If no name is passed, Segment infers the current page context.
39
- *
40
- * @example
41
- * ```ts
42
- * window.analytics.page('Pricing');
43
- * ```
44
- */
45
- page: (name?: string, properties?: Record<string, unknown>) => void;
46
- /**
47
- * Queues a user identification call.
48
- *
49
- * @param userId - Stable user identifier.
50
- * @param traits - Optional trait map associated with the user.
51
- * @param options - Optional Segment call options.
52
- * @returns `void`.
53
- *
54
- * @remarks
55
- * Ensure the client is initialized and use a stable `userId` to avoid
56
- * fragmented user profiles.
57
- *
58
- * @example
59
- * ```ts
60
- * window.analytics.identify('user_123', { email: 'dev@example.com' });
61
- * ```
62
- */
63
- identify: (userId: string, traits?: Record<string, unknown>, options?: Record<string, unknown>) => void;
64
- /**
65
- * Queues a group association call for account-level analytics.
66
- *
67
- * @param groupId - Group or account identifier.
68
- * @param traits - Optional group trait map.
69
- * @param options - Optional Segment call options.
70
- * @returns `void`.
71
- *
72
- * @example
73
- * ```ts
74
- * window.analytics.group('acme-inc', { plan: 'enterprise' });
75
- * ```
76
- */
77
- group: (groupId: string, traits?: Record<string, unknown>, options?: Record<string, unknown>) => void;
78
- /**
79
- * Queues a user alias call to merge identities.
80
- *
81
- * @param userId - New canonical user identifier.
82
- * @param previousId - Optional previous anonymous or legacy identifier.
83
- * @param options - Optional Segment call options.
84
- * @returns `void`.
85
- *
86
- * @remarks
87
- * Use `previousId` only when linking an existing anonymous identity to the
88
- * new `userId`.
89
- *
90
- * @example
91
- * ```ts
92
- * window.analytics.alias('user_123', 'anon_456');
93
- * ```
94
- */
95
- alias: (userId: string, previousId?: string, options?: Record<string, unknown>) => void;
96
- /**
97
- * Queues a reset call that clears current user identity state.
98
- *
99
- * @returns `void`.
100
- *
101
- * @example
102
- * ```ts
103
- * window.analytics.reset();
104
- * ```
105
- */
106
- reset: () => void;
107
- }
108
- declare global {
109
- interface Window {
110
- analytics?: SegmentApi;
111
- }
112
- }
113
- /**
114
- * Segment vendor manifest.
115
- *
116
- * Uses Segment's standard `window.analytics` queue shape and optionally queues
117
- * the initial `page()` call before the bundle loads.
118
- */
119
- export declare const segmentManifest: {
120
- readonly kind: "c15t.vendor-manifest";
121
- readonly schemaVersion: 1;
122
- readonly bootstrap: [{
123
- readonly ifUndefined: true;
124
- readonly name: 'analytics';
125
- readonly type: 'setGlobal';
126
- readonly value: readonly [];
127
- }, {
128
- readonly methods: ["track", "page", "identify", "group", "alias", "reset"];
129
- readonly target: 'analytics';
130
- readonly type: 'defineQueueMethods';
131
- }];
132
- readonly category: 'measurement';
133
- readonly install: [{
134
- readonly path: ["analytics", "_loadOptions"];
135
- readonly type: 'setGlobalPath';
136
- readonly value: '{{loadOptions}}';
137
- }, {
138
- readonly global: 'analytics';
139
- readonly method: 'page';
140
- readonly type: 'callGlobal';
141
- }, {
142
- readonly async: true;
143
- readonly src: '{{scriptUrl}}';
144
- readonly type: 'loadScript';
145
- }];
146
- readonly vendor: 'segment';
147
- };
148
- export interface SegmentOptions {
149
- /** Options consumed by Analytics.js on initialization. */
150
- loadOptions?: Record<string, unknown>;
151
- /** Your Segment write key. */
152
- writeKey: string;
153
- /** Queue the initial `analytics.page()` call during setup. */
154
- trackPageView?: boolean;
155
- /** Optional full loader URL override. */
156
- scriptUrl?: string;
157
- }
158
- /**
159
- * Creates a Segment Analytics.js script.
160
- *
161
- * @param options - The options for the Segment script.
162
- * @returns The Segment script configuration.
163
- */
164
- export declare const segment: ({ writeKey, loadOptions, trackPageView, scriptUrl, }: SegmentOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/segment. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/segment';
@@ -1,93 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- declare global {
3
- interface Window {
4
- umami?: {
5
- identify: (sessionData?: Record<string, unknown> | string) => void;
6
- track: {
7
- (payload?: Record<string, unknown>): void;
8
- (eventName: string, eventData?: Record<string, unknown>): void;
9
- };
10
- };
11
- }
12
- }
13
- /**
14
- * Umami Analytics vendor manifest.
15
- *
16
- * Configures Umami entirely through script `data-*` attributes. Umami is a
17
- * cookieless analytics product, so the script is consent-gated on
18
- * `measurement` and unloaded when consent is revoked.
19
- */
20
- export declare const umamiAnalyticsManifest: {
21
- readonly kind: "c15t.vendor-manifest";
22
- readonly schemaVersion: 1;
23
- readonly category: 'measurement';
24
- readonly install: [{
25
- readonly attributes: {
26
- readonly 'data-auto-track': '{{autoTrackAttribute}}';
27
- readonly 'data-before-send': '{{beforeSend}}';
28
- readonly 'data-domains': '{{domains}}';
29
- readonly 'data-host-url': '{{hostUrl}}';
30
- readonly 'data-tag': '{{tag}}';
31
- readonly 'data-website-id': '{{websiteId}}';
32
- };
33
- readonly defer: true;
34
- readonly src: '{{scriptUrl}}';
35
- readonly type: 'loadScript';
36
- }];
37
- readonly vendor: 'umami-analytics';
38
- };
39
- export interface UmamiAnalyticsOptions {
40
- /**
41
- * Your Umami website ID.
42
- */
43
- websiteId: string;
44
- /**
45
- * Override the host that receives analytics events.
46
- */
47
- hostUrl?: string;
48
- /**
49
- * Disable automatic tracking when set to `false`.
50
- */
51
- autoTrack?: boolean;
52
- /**
53
- * Restrict tracking to specific domains.
54
- */
55
- domains?: string[] | string;
56
- /**
57
- * Attach a tag to tracked events.
58
- */
59
- tag?: string;
60
- /**
61
- * Optional global hook name used for Umami's `data-before-send` attribute.
62
- *
63
- * Callback functions are intentionally not supported here because the c15t
64
- * manifest runtime cannot serialize custom JavaScript functions.
65
- */
66
- beforeSend?: string;
67
- /**
68
- * Custom loader URL.
69
- * @default 'https://cloud.umami.is/script.js'
70
- */
71
- scriptUrl?: string;
72
- }
73
- /**
74
- * Creates an Umami Analytics script.
75
- *
76
- * @see https://umami.is/docs/tracker-config
77
- *
78
- * @param options - The options for the Umami Analytics script.
79
- * @returns The Umami Analytics script.
80
- * @throws {Error} When `websiteId` is missing, empty, or invalid. Provide a
81
- * valid non-empty `websiteId` string to prevent this error.
82
- *
83
- * @example
84
- * ```ts
85
- * import { umamiAnalytics } from '@c15t/scripts/umami-analytics';
86
- *
87
- * umamiAnalytics({
88
- * websiteId: 'site-abc-123',
89
- * domains: ['example.com', 'www.example.com'],
90
- * });
91
- * ```
92
- */
93
- export declare const umamiAnalytics: (options: UmamiAnalyticsOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/umami-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/umami-analytics';
@@ -1,66 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- export type VercelAnalyticsMode = 'auto' | 'development' | 'production';
3
- declare global {
4
- interface Window {
5
- va?: (event: string, properties?: unknown) => void;
6
- vaq?: [string, unknown?][];
7
- vam?: 'development' | 'production';
8
- }
9
- }
10
- /**
11
- * Vercel Analytics vendor manifest.
12
- *
13
- * Seeds Vercel's event queue before loading the tracker bundle.
14
- */
15
- export declare const vercelAnalyticsManifest: {
16
- readonly kind: "c15t.vendor-manifest";
17
- readonly schemaVersion: 1;
18
- readonly bootstrap: [{
19
- readonly ifUndefined: true;
20
- readonly name: 'vaq';
21
- readonly type: 'setGlobal';
22
- readonly value: readonly [];
23
- }, {
24
- readonly ifUndefined: true;
25
- readonly name: 'va';
26
- readonly queue: {
27
- readonly global: 'vaq';
28
- };
29
- readonly queueFormat: 'array';
30
- readonly type: 'defineStubFunction';
31
- }];
32
- readonly category: 'measurement';
33
- readonly install: [{
34
- readonly attributes: {
35
- readonly 'data-disable-auto-track': '{{disableAutoTrackAttribute}}';
36
- readonly 'data-dsn': '{{dsn}}';
37
- readonly 'data-endpoint': '{{endpoint}}';
38
- readonly 'data-sdkn': 'c15t';
39
- };
40
- readonly defer: true;
41
- readonly src: '{{scriptUrl}}';
42
- readonly type: 'loadScript';
43
- }];
44
- readonly vendor: 'vercel-analytics';
45
- };
46
- export interface VercelAnalyticsOptions {
47
- /** Project DSN for self-hosted or non-Vercel deployments. */
48
- dsn?: string;
49
- /** Disable automatic pageview tracking. */
50
- disableAutoTrack?: boolean;
51
- /** Preferred script mode. */
52
- mode?: VercelAnalyticsMode;
53
- /** Load Vercel's debug bundle when set to `true`. */
54
- debug?: boolean;
55
- /** Custom ingestion endpoint. */
56
- endpoint?: string;
57
- /** Custom loader URL. */
58
- scriptUrl?: string;
59
- }
60
- /**
61
- * Creates a Vercel Analytics script.
62
- *
63
- * @param options - The options for the Vercel Analytics script.
64
- * @returns The Vercel Analytics script.
65
- */
66
- export declare const vercelAnalytics: (options?: VercelAnalyticsOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/vercel-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/vercel-analytics';
@@ -0,0 +1,2 @@
1
+ /** @deprecated Use @c15t/integrations/vendors/email-and-sms/klaviyo. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/email-and-sms/klaviyo';
@@ -1,78 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- declare global {
3
- interface Window {
4
- $crisp: unknown[][];
5
- CRISP_WEBSITE_ID: string;
6
- CRISP_RUNTIME_CONFIG?: {
7
- locale?: string;
8
- session_merge?: boolean;
9
- };
10
- CRISP_COOKIE_DOMAIN?: string;
11
- CRISP_COOKIE_EXPIRE?: number;
12
- CRISP_TOKEN_ID?: string;
13
- }
14
- }
15
- /**
16
- * Crisp vendor manifest.
17
- *
18
- * Seeds the Crisp queue and website ID before loading the chat client.
19
- * Optional runtime globals are added when provided by the helper options.
20
- */
21
- export declare const crispManifest: {
22
- readonly kind: "c15t.vendor-manifest";
23
- readonly schemaVersion: 1;
24
- readonly category: 'functionality';
25
- readonly install: [{
26
- readonly ifUndefined: false;
27
- readonly name: '$crisp';
28
- readonly type: 'setGlobal';
29
- readonly value: readonly [];
30
- }, {
31
- readonly ifUndefined: false;
32
- readonly name: 'CRISP_WEBSITE_ID';
33
- readonly type: 'setGlobal';
34
- readonly value: '{{websiteId}}';
35
- }, {
36
- readonly async: true;
37
- readonly src: '{{scriptSrc}}';
38
- readonly type: 'loadScript';
39
- }];
40
- readonly vendor: 'crisp';
41
- };
42
- export interface CrispOptions {
43
- /** Your Crisp website ID. */
44
- websiteId: string;
45
- /** Optional locale passed through `window.CRISP_RUNTIME_CONFIG`. */
46
- locale?: string;
47
- /** Optional cookie domain override for Crisp. */
48
- cookieDomain?: string;
49
- /** Optional cookie expiration in seconds. */
50
- cookieExpiry?: number;
51
- /** Optional Crisp token ID for session continuity. */
52
- tokenId?: string;
53
- /** Whether to merge anonymous sessions into token-backed sessions. */
54
- sessionMerge?: boolean;
55
- /** Whether to enable `$crisp` safe mode before other queued calls. */
56
- safeMode?: boolean;
57
- /** Crisp loader URL. */
58
- scriptSrc?: string;
59
- }
60
- /**
61
- * Creates a Crisp chat script.
62
- *
63
- * This manifest-based helper keeps the serializable queue/bootstrap globals and
64
- * omits the upstream ready callback wrapper.
65
- *
66
- * @param options - The options for the Crisp script.
67
- * @returns The Crisp script configuration.
68
- *
69
- * @example
70
- * ```ts
71
- * const crispScript = crisp({
72
- * websiteId: '1234-abcd',
73
- * });
74
- * ```
75
- *
76
- * @see {@link https://help.crisp.chat/en/article/how-do-i-install-crisp-live-chat-on-my-website-10wcj3l/} Crisp installation documentation.
77
- */
78
- export declare const crisp: (options: CrispOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/functional/crisp. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/functional/crisp';
@@ -1,62 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- declare global {
3
- interface Window {
4
- FrontChat?: (command: string, options?: Record<string, unknown>) => unknown;
5
- }
6
- }
7
- /** Front Chat loader and consent-gated widget initialisation. */
8
- export declare const frontChatManifest: {
9
- readonly kind: "c15t.vendor-manifest";
10
- readonly schemaVersion: 1;
11
- readonly category: 'functionality';
12
- readonly install: [{
13
- readonly async: true;
14
- readonly src: '{{scriptSrc}}';
15
- readonly type: 'loadScript';
16
- }];
17
- readonly onLoadGranted: [{
18
- readonly args: ["init", "{{initOptions}}"];
19
- readonly global: 'FrontChat';
20
- readonly type: 'callGlobal';
21
- }];
22
- readonly vendor: 'front-chat';
23
- };
24
- export interface FrontChatOptions {
25
- /** Public chat ID from the Front channel's installation snippet. */
26
- chatId: string;
27
- /** Show Front's default launcher. @default true */
28
- useDefaultLauncher?: boolean;
29
- /** Custom or proxied Front Chat bundle URL. */
30
- scriptSrc?: string;
31
- /** CSP nonce forwarded to the loader and Front's generated scripts. */
32
- nonce?: string;
33
- }
34
- /**
35
- * Creates a Front Chat script gated on functionality consent.
36
- *
37
- * Keep c15t's default reload-on-revocation behaviour enabled to stop an
38
- * already-running widget. Removing its loader cannot unload the SDK.
39
- *
40
- * @param options - Front channel and launcher configuration.
41
- * @returns The Front Chat script configuration.
42
- * @throws {Error} When chatId is missing or empty. Copy the public ID from
43
- * the Front channel's installation snippet.
44
- * @example
45
- * frontChat({ chatId: 'YOUR_FRONT_CHAT_ID' });
46
- * @see https://help.front.com/en/articles/2049
47
- */
48
- export declare const frontChat: (options: FrontChatOptions) => Script;
49
- /**
50
- * Requests widget removal and session cleanup through Front's SDK.
51
- *
52
- * Optionally call it from `onBeforeConsentRevocationReload`. Front does not
53
- * provide a completion promise, so this does not guarantee cleanup before
54
- * navigation.
55
- * Safe to call during SSR or before the SDK loads.
56
- *
57
- * @returns Nothing.
58
- * @example
59
- * shutdownFrontChat();
60
- * @see https://dev.frontapp.com/docs/chat-sdk-reference
61
- */
62
- export declare const shutdownFrontChat: () => void;
1
+ /** @deprecated Use @c15t/integrations/vendors/functional/front-chat. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/functional/front-chat';
@@ -1,135 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- export declare const INTERCOM_API_BASES: {
3
- readonly au: 'https://api-iam.au.intercom.io';
4
- readonly eu: 'https://api-iam.eu.intercom.io';
5
- readonly us: 'https://api-iam.intercom.io';
6
- };
7
- export type IntercomApiBase = (typeof INTERCOM_API_BASES)[keyof typeof INTERCOM_API_BASES] | (string & Record<never, never>);
8
- export type IntercomThemeMode = 'light' | 'dark' | 'system';
9
- export interface IntercomAvatar {
10
- type: 'avatar';
11
- image_url: string;
12
- }
13
- export interface IntercomCompany {
14
- id?: string;
15
- company_id?: string;
16
- name?: string;
17
- created_at?: number;
18
- remote_created_at?: number;
19
- plan?: string;
20
- monthly_spend?: number;
21
- size?: number;
22
- website?: string;
23
- industry?: string;
24
- [key: string]: unknown;
25
- }
26
- export interface IntercomSettings extends Record<string, unknown> {
27
- app_id: string;
28
- api_base: IntercomApiBase;
29
- custom_launcher_selector?: string;
30
- alignment?: 'left' | 'right';
31
- vertical_padding?: number;
32
- horizontal_padding?: number;
33
- z_index?: number;
34
- hide_default_launcher?: boolean;
35
- hide_notifications?: boolean;
36
- theme_mode?: IntercomThemeMode;
37
- session_duration?: number;
38
- action_color?: string;
39
- background_color?: string;
40
- link_color?: string;
41
- email?: string;
42
- user_id?: string;
43
- created_at?: number;
44
- name?: string;
45
- phone?: string;
46
- unsubscribed_from_emails?: boolean;
47
- language_override?: string;
48
- utm_campaign?: string;
49
- utm_content?: string;
50
- utm_medium?: string;
51
- utm_source?: string;
52
- utm_term?: string;
53
- avatar?: IntercomAvatar;
54
- user_hash?: string;
55
- company?: IntercomCompany;
56
- companies?: IntercomCompany[];
57
- page_title?: string;
58
- }
59
- export type IntercomCustomSettings = Partial<Omit<IntercomSettings, 'app_id' | 'api_base'>> & Record<string, unknown>;
60
- declare global {
61
- interface Window {
62
- Intercom?: ((...args: unknown[]) => void) & {
63
- q?: unknown[][];
64
- };
65
- intercomSettings?: IntercomSettings;
66
- }
67
- }
68
- /**
69
- * Intercom vendor manifest.
70
- *
71
- * Seeds `window.intercomSettings` and a queueing `Intercom` stub before loading
72
- * the messenger widget bundle.
73
- */
74
- export declare const intercomManifest: {
75
- readonly kind: "c15t.vendor-manifest";
76
- readonly schemaVersion: 1;
77
- readonly category: 'functionality';
78
- readonly install: [{
79
- readonly ifUndefined: true;
80
- readonly name: 'Intercom';
81
- readonly queue: {
82
- readonly property: 'q';
83
- };
84
- readonly queueFormat: 'array';
85
- readonly type: 'defineStubFunction';
86
- }, {
87
- readonly ifUndefined: false;
88
- readonly name: 'intercomSettings';
89
- readonly type: 'setGlobal';
90
- readonly value: '{{settings}}';
91
- }, {
92
- readonly async: true;
93
- readonly src: '{{scriptSrc}}';
94
- readonly type: 'loadScript';
95
- }];
96
- readonly vendor: 'intercom';
97
- };
98
- export interface IntercomOptions {
99
- /**
100
- * Your Intercom app ID.
101
- */
102
- appId: string;
103
- /**
104
- * Regional Intercom API base.
105
- *
106
- * @default 'https://api-iam.intercom.io'
107
- */
108
- apiBase?: IntercomApiBase;
109
- /**
110
- * Additional serializable Intercom settings merged into
111
- * `window.intercomSettings`.
112
- */
113
- settings?: IntercomCustomSettings;
114
- /** Intercom loader URL. */
115
- scriptSrc?: string;
116
- }
117
- /**
118
- * Creates an Intercom messenger script.
119
- *
120
- * The helper bootstraps the documented Intercom settings object and queues
121
- * early `Intercom(...)` calls until the messenger bundle loads.
122
- *
123
- * @param options - The options for the Intercom script.
124
- * @returns The Intercom script configuration.
125
- *
126
- * @example
127
- * ```ts
128
- * const intercomScript = intercom({
129
- * appId: 'abc123',
130
- * });
131
- * ```
132
- *
133
- * @see {@link https://developers.intercom.com/installing-intercom/web/installation} Intercom installation documentation.
134
- */
135
- export declare const intercom: ({ appId, apiBase, settings, scriptSrc, }: IntercomOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/functional/intercom. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/functional/intercom';
@@ -1,39 +1,2 @@
1
- import type { AllConsentNames, Script } from '@c15t/core';
2
- /** The Zaraz Consent API methods used by the bridge. */
3
- export interface ZarazConsentApi {
4
- APIReady: boolean;
5
- modal?: unknown;
6
- getAll: () => Record<string, boolean>;
7
- set: (permissions: Record<string, boolean>) => void;
8
- sendQueuedEvents: () => void;
9
- }
10
- export interface CloudflareZarazOptions {
11
- /** Map c15t categories to purpose IDs from the Zaraz dashboard. */
12
- purposes: Partial<Record<AllConsentNames, readonly string[]>>;
13
- /** Hide the currently visible Zaraz modal. Disable auto-display in Zaraz too. @default true */
14
- hideBuiltInModal?: boolean;
15
- /** Replay Zaraz's queued pageview events after a denied purpose becomes allowed. @default true */
16
- sendQueuedEvents?: boolean;
17
- /**
18
- * Called once after the first successful synchronization. With automatic
19
- * pageviews disabled in Zaraz, send the initial Pageview from this callback.
20
- */
21
- onReady?: () => void;
22
- /** Called when synchronization fails. Retried on the next consent update or readiness event. */
23
- onError?: (error: unknown) => void;
24
- }
25
- /**
26
- * Synchronize c15t effective permissions with externally loaded Zaraz tools.
27
- * Does not load Zaraz or configure tools. Unmapped Zaraz purposes are denied.
28
- * Disable automatic pageviews and send the first Pageview from onReady to avoid
29
- * running tools with a stale Zaraz consent cookie before synchronization.
30
- *
31
- * @param options - Purpose mapping and synchronization callbacks.
32
- * @returns A callback-only script for the existing c15t script loader.
33
- * @throws {Error} If the mapping is empty, contains blank IDs, or maps an ID twice.
34
- * @example
35
- * ```ts
36
- * cloudflareZaraz({ purposes: { measurement: ['analytics-purpose'] } });
37
- * ```
38
- */
39
- export declare const cloudflareZaraz: (options: CloudflareZarazOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/tag-managers/cloudflare-zaraz. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/tag-managers/cloudflare-zaraz';