@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,289 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- /**
3
- * Represents the `contents` array object property.
4
- */
5
- export interface FbqContent {
6
- id: string | number;
7
- quantity: number;
8
- [key: string]: unknown;
9
- }
10
- /**
11
- * Base interface for all possible event parameters.
12
- * All properties are optional here; specific event types will make them required.
13
- */
14
- export interface FbqBaseEventParams {
15
- content_category?: string;
16
- content_ids?: (string | number)[];
17
- content_name?: string;
18
- content_type?: 'product' | 'product_group';
19
- contents?: FbqContent[];
20
- currency?: string;
21
- delivery_category?: 'in_store' | 'curbside' | 'home_delivery';
22
- num_items?: number;
23
- predicted_ltv?: number;
24
- search_string?: string;
25
- status?: boolean;
26
- value?: number;
27
- }
28
- export type FbqCustomParams = Record<string, unknown>;
29
- type WithCustomParams<TParams> = TParams & FbqCustomParams;
30
- type AddPaymentInfoParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'contents' | 'currency' | 'value'>>;
31
- type AddToCartParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'content_type' | 'contents' | 'currency' | 'value'>>;
32
- type AddToWishlistParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'contents' | 'currency' | 'value'>>;
33
- type CompleteRegistrationParams = WithCustomParams<Pick<FbqBaseEventParams, 'currency' | 'value' | 'status'>>;
34
- type InitiateCheckoutParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'contents' | 'currency' | 'num_items' | 'value'>>;
35
- type LeadParams = WithCustomParams<Pick<FbqBaseEventParams, 'currency' | 'value'>>;
36
- type PageViewParams = FbqCustomParams;
37
- type SearchParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'content_type' | 'contents' | 'currency' | 'search_string' | 'value'>>;
38
- type StartTrialParams = WithCustomParams<Pick<FbqBaseEventParams, 'currency' | 'predicted_ltv' | 'value'>>;
39
- type SubscribeParams = WithCustomParams<Pick<FbqBaseEventParams, 'currency' | 'predicted_ltv' | 'value'>>;
40
- type ViewContentParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'content_type' | 'contents' | 'currency' | 'value'>>;
41
- /**
42
- * The 'Purchase' event has required properties.
43
- * We use TypeScript's utility types to enforce this.
44
- */
45
- type PurchaseParams = WithCustomParams<Pick<FbqBaseEventParams, 'content_ids' | 'content_type' | 'contents' | 'num_items'> & Required<Pick<FbqBaseEventParams, 'currency' | 'value'>>>;
46
- /**
47
- * Events with no specific properties listed can accept any of the base parameters.
48
- */
49
- type ContactParams = WithCustomParams<FbqBaseEventParams>;
50
- type CustomizeProductParams = WithCustomParams<FbqBaseEventParams>;
51
- type DonateParams = WithCustomParams<FbqBaseEventParams>;
52
- type FindLocationParams = WithCustomParams<FbqBaseEventParams>;
53
- type ScheduleParams = WithCustomParams<FbqBaseEventParams>;
54
- type SubmitApplicationParams = WithCustomParams<FbqBaseEventParams>;
55
- /**
56
- * A mapping of Standard Event names to their corresponding parameter types.
57
- * This is the core of our type-safety mechanism.
58
- */
59
- export interface StandardEventParams {
60
- AddPaymentInfo: AddPaymentInfoParams;
61
- AddToCart: AddToCartParams;
62
- AddToWishlist: AddToWishlistParams;
63
- CompleteRegistration: CompleteRegistrationParams;
64
- Contact: ContactParams;
65
- CustomizeProduct: CustomizeProductParams;
66
- Donate: DonateParams;
67
- FindLocation: FindLocationParams;
68
- InitiateCheckout: InitiateCheckoutParams;
69
- Lead: LeadParams;
70
- PageView: PageViewParams;
71
- Purchase: PurchaseParams;
72
- Schedule: ScheduleParams;
73
- Search: SearchParams;
74
- StartTrial: StartTrialParams;
75
- SubmitApplication: SubmitApplicationParams;
76
- Subscribe: SubscribeParams;
77
- ViewContent: ViewContentParams;
78
- }
79
- export type StandardEventName = keyof StandardEventParams;
80
- export interface MetaPixelEventOptions {
81
- /**
82
- * Event ID used to deduplicate browser events against Conversions API events.
83
- *
84
- * @see https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events
85
- */
86
- eventID?: string;
87
- [key: string]: unknown;
88
- }
89
- export interface MetaPixelDataProcessingOptions {
90
- /**
91
- * Data processing flags sent to Meta before `init`.
92
- *
93
- * Use `['LDU']` to enable Limited Data Use, or `[]` to explicitly disable it.
94
- */
95
- options: 'LDU'[] | [];
96
- /**
97
- * Meta country code. Use `0` to let Meta geolocate the event or `1` for USA.
98
- */
99
- country?: number;
100
- /**
101
- * Meta state code. Use `0` to let Meta geolocate the event.
102
- *
103
- * @example `1000` for California
104
- */
105
- state?: number;
106
- }
107
- declare global {
108
- interface Window {
109
- fbq: {
110
- (command: 'dataProcessingOptions', options: MetaPixelDataProcessingOptions['options'], country?: number, state?: number): void;
111
- (command: 'init', pixelId: string, options?: Record<string, unknown>): void;
112
- (command: 'track', eventName: StandardEventName, params?: StandardEventParams[StandardEventName], options?: MetaPixelEventOptions): void;
113
- (command: 'trackCustom', eventName: string, params?: FbqCustomParams, options?: MetaPixelEventOptions): void;
114
- (command: 'trackSingle', pixelId: string, eventName: StandardEventName, params?: StandardEventParams[StandardEventName], options?: MetaPixelEventOptions): void;
115
- (command: 'trackSingleCustom', pixelId: string, eventName: string, params?: FbqCustomParams, options?: MetaPixelEventOptions): void;
116
- (command: 'consent', action: 'grant' | 'revoke'): void;
117
- (...args: unknown[]): void;
118
- };
119
- _fbq: Window['fbq'];
120
- }
121
- }
122
- /**
123
- * Meta Pixel vendor manifest.
124
- *
125
- * The Meta Pixel uses structured bootstrap steps to define the standard `fbq`
126
- * stub and provides a consent API via `fbq('consent', 'grant'|'revoke')`.
127
- */
128
- export declare const metaPixelManifest: {
129
- readonly kind: "c15t.vendor-manifest";
130
- readonly schemaVersion: 1;
131
- readonly bootstrap: [{
132
- readonly aliases: ["_fbq"];
133
- readonly dispatchProperty: 'callMethod';
134
- readonly ifUndefined: true;
135
- readonly name: 'fbq';
136
- readonly properties: {
137
- readonly loaded: true;
138
- readonly version: '2.0';
139
- };
140
- readonly queue: {
141
- readonly property: 'queue';
142
- };
143
- readonly selfReferences: ["push"];
144
- readonly type: 'defineStubFunction';
145
- }];
146
- readonly category: 'marketing';
147
- readonly install: [{
148
- readonly args: ["consent", "grant"];
149
- readonly global: 'fbq';
150
- readonly type: 'callGlobal';
151
- }, {
152
- readonly args: ["init", "{{pixelId}}"];
153
- readonly global: 'fbq';
154
- readonly type: 'callGlobal';
155
- }, {
156
- readonly args: ["track", "PageView"];
157
- readonly global: 'fbq';
158
- readonly type: 'callGlobal';
159
- }, {
160
- readonly async: true;
161
- readonly src: '{{scriptSrc}}';
162
- readonly type: 'loadScript';
163
- }];
164
- readonly onConsentDenied: [{
165
- readonly args: ["consent", "revoke"];
166
- readonly global: 'fbq';
167
- readonly type: 'callGlobal';
168
- }];
169
- readonly onConsentGranted: [{
170
- readonly args: ["consent", "grant"];
171
- readonly global: 'fbq';
172
- readonly type: 'callGlobal';
173
- }];
174
- readonly persistAfterConsentRevoked: true;
175
- readonly vendor: 'meta-pixel';
176
- };
177
- export interface MetaPixelOptions {
178
- /**
179
- * Your Meta Pixel ID
180
- * @example `123456789012345`
181
- */
182
- pixelId: string;
183
- /** Optional payload passed as the third argument to `fbq('init', ...)`. */
184
- initOptions?: Record<string, unknown>;
185
- /**
186
- * Queue the default `PageView` event during setup.
187
- *
188
- * @default true
189
- */
190
- trackPageView?: boolean;
191
- /**
192
- * Optional Meta data processing options, such as Limited Data Use.
193
- *
194
- * When provided, c15t queues `fbq('dataProcessingOptions', ...)` before
195
- * `fbq('init', ...)`.
196
- */
197
- dataProcessingOptions?: MetaPixelDataProcessingOptions;
198
- /** Meta Pixel loader URL. */
199
- scriptSrc?: string;
200
- }
201
- /**
202
- * Creates a Meta Pixel script.
203
- *
204
- * The manifest defines a structured `fbq` stub plus the external loader URL,
205
- * avoiding raw inline vendor snippets in the manifest payload.
206
- *
207
- * @param options - The options for the Meta Pixel script
208
- * @returns The Meta Pixel script configuration
209
- *
210
- * @example
211
- * ```ts
212
- * const metaPixelScript = metaPixel({
213
- * pixelId: '123456789012345',
214
- * });
215
- * ```
216
- *
217
- * @see {@link https://developers.facebook.com/docs/meta-pixel/get-started} Meta Pixel documentation
218
- */
219
- export declare const metaPixel: ({ pixelId, initOptions, trackPageView, dataProcessingOptions, scriptSrc, }: MetaPixelOptions) => Script;
220
- /**
221
- * Tracks a Meta Pixel standard event.
222
- *
223
- * This is a wrapper around `fbq('track', ...)`.
224
- *
225
- * @template TEventName - The Meta `StandardEventName` being tracked.
226
- * @param eventName - The `StandardEventName` to track.
227
- * @param params - Optional `StandardEventParams[TEventName]` payload.
228
- * @param eventOptions - Optional `MetaPixelEventOptions` or event ID string.
229
- * @returns `void`; calls `window.fbq`.
230
- *
231
- * @example
232
- * ```ts
233
- * metaPixelEvent('Purchase', { value: 10.0, currency: 'USD' }, 'event-123');
234
- * ```
235
- *
236
- * @see {@link https://developers.facebook.com/docs/meta-pixel/reference} Meta Pixel documentation
237
- */
238
- export declare const metaPixelEvent: <TEventName extends StandardEventName>(eventName: TEventName, params?: StandardEventParams[TEventName], eventOptions?: MetaPixelEventOptions | string) => void;
239
- /**
240
- * Tracks a Meta Pixel custom event with optional custom parameters.
241
- *
242
- * @param eventName - The custom event name to track
243
- * @param params - Optional custom parameters to track
244
- * @param eventOptions - Optional event options, including Conversions API eventID
245
- */
246
- export declare const metaPixelCustomEvent: (eventName: string, params?: FbqCustomParams, eventOptions?: MetaPixelEventOptions | string) => void;
247
- /**
248
- * Tracks a standard event for a single Meta Pixel ID.
249
- *
250
- * Use this when multiple Meta Pixels are initialized on the same page and the
251
- * event should not fire for every initialized pixel.
252
- *
253
- * @template TEventName - The Meta `StandardEventName` being tracked.
254
- * @param pixelId - Meta Pixel ID that should receive the event.
255
- * @param eventName - The `StandardEventName` to track.
256
- * @param params - Optional `StandardEventParams[TEventName]` payload.
257
- * @param eventOptions - Optional `MetaPixelEventOptions` or event ID string.
258
- * @returns `void`; calls `window.fbq`.
259
- *
260
- * @example
261
- * ```ts
262
- * metaPixelSingleEvent(
263
- * '123456',
264
- * 'Purchase',
265
- * { value: 9.99, currency: 'USD' },
266
- * 'event-123'
267
- * );
268
- * ```
269
- */
270
- export declare const metaPixelSingleEvent: <TEventName extends StandardEventName>(pixelId: string, eventName: TEventName, params?: StandardEventParams[TEventName], eventOptions?: MetaPixelEventOptions | string) => void;
271
- /**
272
- * Tracks a custom event for a single Meta Pixel ID.
273
- *
274
- * Use this when multiple Meta Pixels are initialized on the same page and the
275
- * custom event should not fire for every initialized pixel.
276
- *
277
- * @param pixelId - Meta Pixel ID that should receive the custom event.
278
- * @param eventName - Custom event name to track.
279
- * @param params - Optional `FbqCustomParams` payload.
280
- * @param eventOptions - Optional `MetaPixelEventOptions` or event ID string.
281
- * @returns `void`; calls `window.fbq`.
282
- *
283
- * @example
284
- * ```ts
285
- * metaPixelSingleCustomEvent('123456', 'MyCustomEvent', { foo: 'bar' });
286
- * ```
287
- */
288
- export declare const metaPixelSingleCustomEvent: (pixelId: string, eventName: string, params?: FbqCustomParams, eventOptions?: MetaPixelEventOptions | string) => void;
289
- export {};
1
+ /** @deprecated Use @c15t/integrations/vendors/ads-and-pixels/meta-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/ads-and-pixels/meta-pixel';
@@ -1,105 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- declare global {
3
- interface Window {
4
- uetq: unknown[] | undefined;
5
- }
6
- }
7
- /**
8
- * Microsoft UET vendor manifest.
9
- *
10
- * Loads in consent mode and manages consent via the UET push API:
11
- * `window.uetq.push('consent', 'default'|'update', consentState)`.
12
- */
13
- export declare const microsoftUetManifest: {
14
- readonly kind: "c15t.vendor-manifest";
15
- readonly schemaVersion: 1;
16
- readonly afterLoad: [{
17
- readonly args: [{
18
- readonly enableAutoSpaTracking: true;
19
- readonly ti: '{{id}}';
20
- }];
21
- readonly assignTo: 'uetq';
22
- readonly constructor: 'UET';
23
- readonly copyAssignedValueToArgProperty: 'q';
24
- readonly type: 'constructGlobal';
25
- }, {
26
- readonly args: ["pageLoad"];
27
- readonly global: 'uetq';
28
- readonly method: 'push';
29
- readonly type: 'callGlobal';
30
- }];
31
- readonly alwaysLoad: true;
32
- readonly bootstrap: [{
33
- readonly ifUndefined: true;
34
- readonly name: 'uetq';
35
- readonly type: 'setGlobal';
36
- readonly value: readonly [];
37
- }];
38
- readonly category: 'marketing';
39
- readonly install: [{
40
- readonly async: true;
41
- readonly src: '{{scriptSrc}}';
42
- readonly type: 'loadScript';
43
- }];
44
- readonly onBeforeLoadDenied: [{
45
- readonly args: ["consent", "default", {
46
- readonly ad_storage: 'denied';
47
- }];
48
- readonly global: 'uetq';
49
- readonly method: 'push';
50
- readonly type: 'callGlobal';
51
- }];
52
- readonly onBeforeLoadGranted: [{
53
- readonly args: ["consent", "default", {
54
- readonly ad_storage: 'granted';
55
- }];
56
- readonly global: 'uetq';
57
- readonly method: 'push';
58
- readonly type: 'callGlobal';
59
- }];
60
- readonly onConsentDenied: [{
61
- readonly args: ["consent", "update", {
62
- readonly ad_storage: 'denied';
63
- }];
64
- readonly global: 'uetq';
65
- readonly method: 'push';
66
- readonly type: 'callGlobal';
67
- }];
68
- readonly onConsentGranted: [{
69
- readonly args: ["consent", "update", {
70
- readonly ad_storage: 'granted';
71
- }];
72
- readonly global: 'uetq';
73
- readonly method: 'push';
74
- readonly type: 'callGlobal';
75
- }];
76
- readonly persistAfterConsentRevoked: true;
77
- readonly vendor: 'microsoft-uet';
78
- };
79
- export interface MicrosoftUetOptions {
80
- /**
81
- * Your Microsoft UET ID
82
- * @example `123456789012345`
83
- */
84
- id: string;
85
- /** Microsoft UET loader URL. */
86
- scriptSrc?: string;
87
- }
88
- /**
89
- * Microsoft UET Script
90
- * This script loads in consent mode and stays persistent because UET can opt
91
- * into and out of tracking based on consent.
92
- *
93
- * @param options - The options for the Microsoft UET script
94
- * @returns The Microsoft UET script configuration
95
- *
96
- * @example
97
- * ```ts
98
- * const microsoftUetScript = microsoftUet({
99
- * id: '123456789012345',
100
- * });
101
- * ```
102
- *
103
- * @see https://learn.microsoft.com/en-us/advertising/guides/universal-event-tracking?view=bingads-13
104
- */
105
- export declare const microsoftUet: ({ id, scriptSrc, }: MicrosoftUetOptions) => Script;
1
+ /** @deprecated Use @c15t/integrations/vendors/ads-and-pixels/microsoft-uet. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/ads-and-pixels/microsoft-uet';
@@ -1,211 +1,2 @@
1
- import type { Script } from '@c15t/core';
2
- /** User matching fields accepted by OpenAI. Hash identifiers before passing them. */
3
- export interface OpenAIPixelUser {
4
- /** SHA-256 of the trimmed, lowercase email address. */
5
- email_sha256?: string;
6
- /** SHA-256 of the normalized phone number, including its country code. */
7
- phone_number_sha256?: string;
8
- /** SHA-256 of the trimmed external ID, preserving case. */
9
- external_id_sha256?: string;
10
- /** SHA-256 of the lowercase first name without whitespace or ASCII punctuation. */
11
- first_name_sha256?: string;
12
- /** SHA-256 of the lowercase last name without whitespace or ASCII punctuation. */
13
- last_name_sha256?: string;
14
- /** Two-letter ISO 3166-1 country code. */
15
- country?: string;
16
- /** City name, up to 128 characters. */
17
- city?: string;
18
- /** State, province, or region, up to 128 characters. */
19
- region?: string;
20
- /** Postal or ZIP code, up to 32 characters. */
21
- postal_code?: string;
22
- }
23
- /** Documented options for `oaiq('init', ...)`, including subsequent user updates. */
24
- export interface OpenAIPixelInitOptions {
25
- /** Required on first initialization; include for updates with multiple pixels. */
26
- pixelId?: string;
27
- /** Log SDK activity to the browser console. */
28
- debug?: boolean;
29
- /** Complete user matching payload. Raw identifiers must not be sent. */
30
- user?: OpenAIPixelUser;
31
- }
32
- /** An item attached to a browser conversion event. */
33
- export interface OpenAIPixelContent {
34
- id?: string;
35
- name?: string;
36
- content_type?: string;
37
- /** Integer item quantity. */
38
- quantity?: number;
39
- /** Integer amount in the currency's minor unit. */
40
- amount?: number;
41
- /** ISO 4217 code; may inherit the event currency. */
42
- currency?: string;
43
- }
44
- /** Event-level amounts require an ISO 4217 currency code. */
45
- type OpenAIPixelValue = {
46
- amount: number;
47
- currency: string;
48
- } | {
49
- amount?: never;
50
- currency?: string;
51
- };
52
- /** Payload for page views and commerce events. */
53
- export type OpenAIPixelContentsData = OpenAIPixelValue & {
54
- type: 'contents';
55
- contents?: OpenAIPixelContent[];
56
- };
57
- /** Payload for leads, registrations, and appointments. */
58
- export type OpenAIPixelCustomerActionData = OpenAIPixelValue & {
59
- type: 'customer_action';
60
- };
61
- /** Payload for subscriptions and trials. */
62
- export type OpenAIPixelPlanData = OpenAIPixelValue & {
63
- type: 'plan_enrollment';
64
- plan_id?: string;
65
- contents?: OpenAIPixelContent[];
66
- };
67
- /** Payload for a custom conversion. */
68
- export type OpenAIPixelCustomData = OpenAIPixelValue & {
69
- type: 'custom';
70
- plan_id?: string;
71
- contents?: OpenAIPixelContent[];
72
- };
73
- /** Browser event names and their required payload shapes. */
74
- export interface OpenAIPixelEventData {
75
- appointment_scheduled: OpenAIPixelCustomerActionData;
76
- checkout_started: OpenAIPixelContentsData;
77
- contents_viewed: OpenAIPixelContentsData;
78
- items_added: OpenAIPixelContentsData;
79
- lead_created: OpenAIPixelCustomerActionData;
80
- order_created: OpenAIPixelContentsData;
81
- page_viewed: OpenAIPixelContentsData;
82
- registration_completed: OpenAIPixelCustomerActionData;
83
- subscription_created: OpenAIPixelPlanData;
84
- trial_started: OpenAIPixelPlanData;
85
- }
86
- /** Options passed separately from event data to the Measurement Pixel. */
87
- export interface OpenAIPixelEventOptions {
88
- /** Reuse the same ID for browser/server event deduplication. */
89
- event_id?: string;
90
- /** Opt this event out of future user-level personalization. */
91
- opt_out?: boolean;
92
- }
93
- /** Custom events require a name in addition to their event data. */
94
- export interface OpenAIPixelCustomEventOptions extends OpenAIPixelEventOptions {
95
- /** A 1–64 character name using letters, numbers, underscores, or dashes. */
96
- custom_event_name: string;
97
- }
98
- /** Arguments accepted by the event helper and the SDK's measure commands. */
99
- export type OpenAIPixelEventArgs = {
100
- [EventName in keyof OpenAIPixelEventData]: [
101
- eventName: EventName,
102
- data: OpenAIPixelEventData[EventName],
103
- options?: OpenAIPixelEventOptions
104
- ];
105
- }[keyof OpenAIPixelEventData] | [
106
- eventName: 'custom',
107
- data: OpenAIPixelCustomData,
108
- options: OpenAIPixelCustomEventOptions
109
- ];
110
- /** The documented OpenAI browser command API and its pre-load queue. */
111
- export interface OpenAIPixelFunction {
112
- (command: 'consent', granted: boolean): void;
113
- (command: 'init', options: OpenAIPixelInitOptions): void;
114
- (command: 'measure', ...args: OpenAIPixelEventArgs): void;
115
- (command: 'measureSingle', pixelId: string, ...args: OpenAIPixelEventArgs): void;
116
- /** Commands queued before the SDK replaces the stub. */
117
- q?: IArguments[];
118
- }
119
- declare global {
120
- interface Window {
121
- oaiq?: OpenAIPixelFunction;
122
- }
123
- }
124
- /** Options for the ChatGPT Ads Measurement Pixel. */
125
- export interface OpenAIPixelOptions extends OpenAIPixelInitOptions {
126
- /** Pixel ID from the conversions tab in OpenAI Ads Manager. */
127
- pixelId: string;
128
- /** Log SDK activity in the browser console. @default false */
129
- debug?: boolean;
130
- /** Override the Measurement Pixel SDK URL. */
131
- scriptSrc?: string;
132
- }
133
- /**
134
- * ChatGPT Ads Measurement Pixel manifest.
135
- *
136
- * Loads after marketing consent. Denies measurement before initialization,
137
- * then applies the current consent state before the SDK executes.
138
- *
139
- * @see https://developers.openai.com/ads/measurement-pixel
140
- */
141
- export declare const openaiPixelManifest: {
142
- readonly kind: "c15t.vendor-manifest";
143
- readonly schemaVersion: 1;
144
- readonly bootstrap: [{
145
- readonly ifUndefined: true;
146
- readonly name: 'oaiq';
147
- readonly queue: {
148
- readonly property: 'q';
149
- };
150
- readonly type: 'defineStubFunction';
151
- }, {
152
- readonly args: ["consent", false];
153
- readonly global: 'oaiq';
154
- readonly type: 'callGlobal';
155
- }];
156
- readonly category: 'marketing';
157
- readonly install: [{
158
- readonly args: ["init", "{{initOptions}}"];
159
- readonly global: 'oaiq';
160
- readonly type: 'callGlobal';
161
- }, {
162
- readonly async: true;
163
- readonly src: '{{scriptSrc}}';
164
- readonly type: 'loadScript';
165
- }];
166
- readonly onBeforeLoadGranted: [{
167
- readonly args: ["consent", true];
168
- readonly global: 'oaiq';
169
- readonly type: 'callGlobal';
170
- }];
171
- readonly onConsentDenied: [{
172
- readonly args: ["consent", false];
173
- readonly global: 'oaiq';
174
- readonly type: 'callGlobal';
175
- }];
176
- readonly onConsentGranted: [{
177
- readonly args: ["consent", true];
178
- readonly global: 'oaiq';
179
- readonly type: 'callGlobal';
180
- }];
181
- readonly persistAfterConsentRevoked: true;
182
- readonly vendor: 'openai-pixel';
183
- };
184
- /**
185
- * Creates a consent-aware ChatGPT Ads Measurement Pixel script.
186
- *
187
- * @param options - Pixel ID, debug logging, and optional SDK URL.
188
- * @returns A script gated on marketing consent, with SDK consent updates.
189
- * @example
190
- * ```ts
191
- * openaiPixel({ pixelId: 'YOUR_PIXEL_ID', debug: true });
192
- * ```
193
- */
194
- export declare const openaiPixel: ({ pixelId, debug, user, scriptSrc, }: OpenAIPixelOptions) => Script;
195
- /**
196
- * Sends a conversion to every initialized OpenAI pixel.
197
- *
198
- * Calls before the queue exists are dropped. Once loaded, the SDK applies
199
- * c15t's consent signal. Use `window.oaiq('measureSingle', ...)` to target one pixel.
200
- *
201
- * @param args - Event name, matching data, and event options.
202
- * @returns Nothing.
203
- * @example
204
- * ```ts
205
- * openaiPixelEvent('order_created', {
206
- * type: 'contents', amount: 2599, currency: 'USD',
207
- * }, { event_id: 'order_123' });
208
- * ```
209
- */
210
- export declare const openaiPixelEvent: (...args: OpenAIPixelEventArgs) => void;
211
- export {};
1
+ /** @deprecated Use @c15t/integrations/vendors/ads-and-pixels/openai-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/ads-and-pixels/openai-pixel';