@c15t/scripts 2.2.0 → 3.0.0-alpha.1

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 (202) hide show
  1. package/AGENTS.md +77 -48
  2. package/README.md +4 -3
  3. package/dist/e2e-test-utils.js +60 -24
  4. package/dist/engine/compile.js +45 -45
  5. package/dist/engine/runtime.js +130 -119
  6. package/dist/registry.js +196 -176
  7. package/dist/resolve.js +12 -12
  8. package/dist/vendors/_shared/attributes.js +5 -5
  9. package/dist/vendors/_shared/google-consent.js +10 -10
  10. package/dist/vendors/_shared/install-builders.js +9 -9
  11. package/dist/vendors/_shared/script-url.js +12 -12
  12. package/dist/vendors/ads-and-pixels/linkedin-insights.js +16 -16
  13. package/dist/vendors/ads-and-pixels/meta-pixel.js +82 -82
  14. package/dist/vendors/ads-and-pixels/microsoft-uet.js +57 -57
  15. package/dist/vendors/ads-and-pixels/openai-pixel.js +88 -0
  16. package/dist/vendors/ads-and-pixels/reddit-pixel.js +39 -39
  17. package/dist/vendors/ads-and-pixels/snapchat-pixel.js +25 -25
  18. package/dist/vendors/ads-and-pixels/tiktok-pixel.js +31 -31
  19. package/dist/vendors/ads-and-pixels/x-pixel.js +17 -17
  20. package/dist/vendors/analytics/adobe-analytics.js +17 -17
  21. package/dist/vendors/analytics/ahrefs-analytics.js +8 -8
  22. package/dist/vendors/analytics/amplitude.js +39 -39
  23. package/dist/vendors/analytics/clearbit.js +11 -11
  24. package/dist/vendors/analytics/cloudflare-web-analytics.js +13 -13
  25. package/dist/vendors/analytics/databuddy.js +45 -45
  26. package/dist/vendors/analytics/fathom-analytics.js +15 -15
  27. package/dist/vendors/analytics/google-tag.js +23 -23
  28. package/dist/vendors/analytics/heap.js +37 -37
  29. package/dist/vendors/analytics/hightouch.js +30 -30
  30. package/dist/vendors/analytics/hotjar.js +14 -14
  31. package/dist/vendors/analytics/logrocket.js +24 -24
  32. package/dist/vendors/analytics/matomo-analytics.js +51 -51
  33. package/dist/vendors/analytics/microsoft-clarity.js +34 -31
  34. package/dist/vendors/analytics/mixpanel-analytics.js +31 -31
  35. package/dist/vendors/analytics/pirsch.js +27 -27
  36. package/dist/vendors/analytics/plausible-analytics.js +24 -24
  37. package/dist/vendors/analytics/posthog.js +84 -79
  38. package/dist/vendors/analytics/promptwatch.js +8 -8
  39. package/dist/vendors/analytics/rudderstack.js +50 -50
  40. package/dist/vendors/analytics/rybbit-analytics.js +30 -30
  41. package/dist/vendors/analytics/segment.js +16 -16
  42. package/dist/vendors/analytics/umami-analytics.js +16 -16
  43. package/dist/vendors/analytics/vercel-analytics.js +22 -22
  44. package/dist/vendors/functional/crisp.js +49 -51
  45. package/dist/vendors/functional/intercom.js +18 -18
  46. package/dist/vendors/tag-managers/cloudflare-zaraz.js +98 -0
  47. package/dist/vendors/tag-managers/google-tag-manager.js +20 -20
  48. package/dist-types/__tests__/helpers.d.ts +11 -11
  49. package/dist-types/engine/compile.d.ts +3 -3
  50. package/dist-types/engine/runtime.d.ts +3 -3
  51. package/dist-types/registry.d.ts +191 -173
  52. package/dist-types/resolve.d.ts +3 -3
  53. package/dist-types/types.d.ts +2 -2
  54. package/dist-types/vendors/_shared/attributes.d.ts +2 -2
  55. package/dist-types/vendors/_shared/google-consent.d.ts +2 -2
  56. package/dist-types/vendors/_shared/install-builders.d.ts +2 -2
  57. package/dist-types/vendors/_shared/script-url.d.ts +6 -6
  58. package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +14 -14
  59. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +27 -27
  60. package/dist-types/vendors/ads-and-pixels/microsoft-uet.d.ts +40 -40
  61. package/dist-types/vendors/ads-and-pixels/openai-pixel.d.ts +211 -0
  62. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +28 -29
  63. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +23 -23
  64. package/dist-types/vendors/ads-and-pixels/tiktok-pixel.d.ts +22 -22
  65. package/dist-types/vendors/ads-and-pixels/x-pixel.d.ts +15 -15
  66. package/dist-types/vendors/analytics/adobe-analytics.d.ts +3 -3
  67. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +5 -5
  68. package/dist-types/vendors/analytics/amplitude.d.ts +24 -24
  69. package/dist-types/vendors/analytics/clearbit.d.ts +5 -5
  70. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +6 -6
  71. package/dist-types/vendors/analytics/databuddy.d.ts +34 -31
  72. package/dist-types/vendors/analytics/fathom-analytics.d.ts +8 -8
  73. package/dist-types/vendors/analytics/google-tag.d.ts +17 -17
  74. package/dist-types/vendors/analytics/heap.d.ts +17 -17
  75. package/dist-types/vendors/analytics/hightouch.d.ts +15 -15
  76. package/dist-types/vendors/analytics/hotjar.d.ts +9 -9
  77. package/dist-types/vendors/analytics/logrocket.d.ts +11 -11
  78. package/dist-types/vendors/analytics/matomo-analytics.d.ts +3 -3
  79. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +12 -13
  80. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +20 -20
  81. package/dist-types/vendors/analytics/pirsch.d.ts +10 -10
  82. package/dist-types/vendors/analytics/plausible-analytics.d.ts +13 -13
  83. package/dist-types/vendors/analytics/posthog.d.ts +35 -32
  84. package/dist-types/vendors/analytics/promptwatch.d.ts +5 -5
  85. package/dist-types/vendors/analytics/rudderstack.d.ts +16 -16
  86. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +15 -15
  87. package/dist-types/vendors/analytics/segment.d.ts +11 -11
  88. package/dist-types/vendors/analytics/umami-analytics.d.ts +9 -9
  89. package/dist-types/vendors/analytics/vercel-analytics.d.ts +13 -13
  90. package/dist-types/vendors/functional/crisp.d.ts +9 -9
  91. package/dist-types/vendors/functional/intercom.d.ts +12 -12
  92. package/dist-types/vendors/tag-managers/cloudflare-zaraz.d.ts +39 -0
  93. package/dist-types/vendors/tag-managers/google-tag-manager.d.ts +16 -16
  94. package/docs/README.md +77 -48
  95. package/docs/assets/v3/brand-bar.png +0 -0
  96. package/docs/assets/v3/brand-card.png +0 -0
  97. package/docs/assets/v3/choice-wall.png +0 -0
  98. package/docs/assets/v3/mobile-card.png +0 -0
  99. package/docs/assets/v3/preferences.png +0 -0
  100. package/docs/customization/overview.md +45 -0
  101. package/docs/customization/recipes.md +79 -0
  102. package/docs/customization/slots.md +55 -0
  103. package/docs/customization/tokens.md +76 -0
  104. package/docs/customization/translations.md +49 -0
  105. package/docs/frameworks/javascript/script-loader.md +81 -343
  106. package/docs/frameworks/next/script-loader.md +164 -455
  107. package/docs/frameworks/react/script-loader.md +41 -533
  108. package/docs/guides/consent-state.md +60 -0
  109. package/docs/guides/data-fetching.md +163 -0
  110. package/docs/guides/deployment-modes.md +75 -0
  111. package/docs/guides/troubleshooting.md +68 -0
  112. package/docs/guides/verify-consent.md +62 -0
  113. package/docs/integrations/adobe-analytics.md +239 -105
  114. package/docs/integrations/ahrefs-analytics.md +238 -104
  115. package/docs/integrations/amplitude.md +219 -157
  116. package/docs/integrations/building-integrations.md +36 -223
  117. package/docs/integrations/clear-on-revocation.md +167 -0
  118. package/docs/integrations/clearbit.md +247 -86
  119. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  120. package/docs/integrations/cloudflare-zaraz.md +399 -0
  121. package/docs/integrations/crisp.md +251 -97
  122. package/docs/integrations/databuddy.md +259 -153
  123. package/docs/integrations/fathom-analytics.md +239 -96
  124. package/docs/integrations/google-maps.md +328 -207
  125. package/docs/integrations/google-tag-manager.md +248 -96
  126. package/docs/integrations/google-tag.md +261 -90
  127. package/docs/integrations/granular-consent.md +208 -0
  128. package/docs/integrations/heap.md +222 -149
  129. package/docs/integrations/hightouch.md +225 -131
  130. package/docs/integrations/hotjar.md +239 -90
  131. package/docs/integrations/intercom.md +239 -98
  132. package/docs/integrations/linkedin-insights.md +243 -113
  133. package/docs/integrations/logrocket.md +241 -123
  134. package/docs/integrations/matomo-analytics.md +256 -111
  135. package/docs/integrations/meta-pixel.md +197 -324
  136. package/docs/integrations/microsoft-clarity.md +233 -114
  137. package/docs/integrations/microsoft-uet.md +245 -110
  138. package/docs/integrations/mixpanel-analytics.md +252 -87
  139. package/docs/integrations/openai-pixel.md +441 -0
  140. package/docs/integrations/overview.md +96 -133
  141. package/docs/integrations/pirsch.md +249 -96
  142. package/docs/integrations/plausible-analytics.md +241 -100
  143. package/docs/integrations/posthog.md +353 -214
  144. package/docs/integrations/promptwatch.md +251 -81
  145. package/docs/integrations/reddit-pixel.md +226 -173
  146. package/docs/integrations/rudderstack.md +244 -187
  147. package/docs/integrations/rybbit-analytics.md +244 -91
  148. package/docs/integrations/segment.md +238 -92
  149. package/docs/integrations/snapchat-pixel.md +240 -110
  150. package/docs/integrations/tiktok-pixel.md +249 -81
  151. package/docs/integrations/umami-analytics.md +242 -95
  152. package/docs/integrations/vercel-analytics.md +242 -90
  153. package/docs/integrations/x-pixel.md +238 -104
  154. package/docs/integrations/youtube.md +359 -142
  155. package/docs/upgrade-v3.md +381 -0
  156. package/package.json +90 -78
  157. package/dist/e2e-test-utils.cjs +0 -166
  158. package/dist/engine/compile.cjs +0 -130
  159. package/dist/engine/runtime.cjs +0 -475
  160. package/dist/registry.cjs +0 -423
  161. package/dist/resolve.cjs +0 -71
  162. package/dist/types.cjs +0 -69
  163. package/dist/vendors/_shared/attributes.cjs +0 -55
  164. package/dist/vendors/_shared/google-consent.cjs +0 -69
  165. package/dist/vendors/_shared/install-builders.cjs +0 -59
  166. package/dist/vendors/_shared/script-url.cjs +0 -78
  167. package/dist/vendors/ads-and-pixels/linkedin-insights.cjs +0 -89
  168. package/dist/vendors/ads-and-pixels/meta-pixel.cjs +0 -206
  169. package/dist/vendors/ads-and-pixels/microsoft-uet.cjs +0 -151
  170. package/dist/vendors/ads-and-pixels/reddit-pixel.cjs +0 -151
  171. package/dist/vendors/ads-and-pixels/snapchat-pixel.cjs +0 -131
  172. package/dist/vendors/ads-and-pixels/tiktok-pixel.cjs +0 -130
  173. package/dist/vendors/ads-and-pixels/x-pixel.cjs +0 -92
  174. package/dist/vendors/analytics/adobe-analytics.cjs +0 -90
  175. package/dist/vendors/analytics/ahrefs-analytics.cjs +0 -68
  176. package/dist/vendors/analytics/amplitude.cjs +0 -193
  177. package/dist/vendors/analytics/clearbit.cjs +0 -69
  178. package/dist/vendors/analytics/cloudflare-web-analytics.cjs +0 -73
  179. package/dist/vendors/analytics/databuddy.cjs +0 -144
  180. package/dist/vendors/analytics/fathom-analytics.cjs +0 -76
  181. package/dist/vendors/analytics/google-tag.cjs +0 -107
  182. package/dist/vendors/analytics/heap.cjs +0 -181
  183. package/dist/vendors/analytics/hightouch.cjs +0 -153
  184. package/dist/vendors/analytics/hotjar.cjs +0 -85
  185. package/dist/vendors/analytics/logrocket.cjs +0 -99
  186. package/dist/vendors/analytics/matomo-analytics.cjs +0 -232
  187. package/dist/vendors/analytics/microsoft-clarity.cjs +0 -138
  188. package/dist/vendors/analytics/mixpanel-analytics.cjs +0 -134
  189. package/dist/vendors/analytics/pirsch.cjs +0 -108
  190. package/dist/vendors/analytics/plausible-analytics.cjs +0 -122
  191. package/dist/vendors/analytics/posthog.cjs +0 -236
  192. package/dist/vendors/analytics/promptwatch.cjs +0 -70
  193. package/dist/vendors/analytics/rudderstack.cjs +0 -227
  194. package/dist/vendors/analytics/rybbit-analytics.cjs +0 -104
  195. package/dist/vendors/analytics/segment.cjs +0 -97
  196. package/dist/vendors/analytics/umami-analytics.cjs +0 -80
  197. package/dist/vendors/analytics/vercel-analytics.cjs +0 -94
  198. package/dist/vendors/functional/crisp.cjs +0 -143
  199. package/dist/vendors/functional/intercom.cjs +0 -89
  200. package/dist/vendors/tag-managers/google-tag-manager.cjs +0 -100
  201. package/docs/shared/react/guides/script-loader.md +0 -311
  202. package/readme.json +0 -19
@@ -77,311 +77,329 @@ export declare const BUILT_IN_INTEGRATION_CATEGORIES: readonly [{
77
77
  * the CLI can discover it from the same source.
78
78
  */
79
79
  export declare const builtInScriptIntegrations: readonly [{
80
+ readonly consentCategory: 'necessary';
81
+ readonly docsSlug: 'cloudflare-zaraz';
82
+ readonly hint: 'Consent bridge for tools managed by Zaraz';
83
+ readonly integrationCategory: 'tag-manager';
84
+ readonly key: 'cloudflareZaraz';
85
+ readonly label: 'Cloudflare Zaraz';
86
+ readonly packageSubpath: 'cloudflare-zaraz';
87
+ readonly vendor: 'cloudflare-zaraz';
88
+ }, {
89
+ readonly consentCategory: 'necessary';
90
+ readonly docsSlug: 'google-tag-manager';
91
+ readonly hint: 'GTM container script';
92
+ readonly integrationCategory: 'tag-manager';
80
93
  readonly key: 'googleTagManager';
81
- readonly vendor: 'google-tag-manager';
82
94
  readonly label: 'Google Tag Manager';
83
- readonly hint: 'GTM container script';
84
- readonly docsSlug: 'google-tag-manager';
85
95
  readonly packageSubpath: 'google-tag-manager';
86
- readonly integrationCategory: 'tag-manager';
87
- readonly consentCategory: 'necessary';
96
+ readonly vendor: 'google-tag-manager';
88
97
  }, {
98
+ readonly consentCategory: 'measurement';
99
+ readonly docsSlug: 'google-tag';
100
+ readonly hint: 'Google Analytics 4';
101
+ readonly integrationCategory: 'analytics';
89
102
  readonly key: 'gtag';
90
- readonly vendor: 'gtag';
91
103
  readonly label: 'Google Tag (gtag.js)';
92
- readonly hint: 'Google Analytics 4';
93
- readonly docsSlug: 'google-tag';
94
104
  readonly packageSubpath: 'google-tag';
95
- readonly integrationCategory: 'analytics';
96
- readonly consentCategory: 'measurement';
105
+ readonly vendor: 'gtag';
97
106
  }, {
107
+ readonly consentCategory: 'measurement';
108
+ readonly docsSlug: 'ahrefs-analytics';
109
+ readonly hint: 'Cookieless web analytics from Ahrefs';
110
+ readonly integrationCategory: 'analytics';
98
111
  readonly key: 'ahrefsAnalytics';
99
- readonly vendor: 'ahrefs-analytics';
100
112
  readonly label: 'Ahrefs Analytics';
101
- readonly hint: 'Cookieless web analytics from Ahrefs';
102
- readonly docsSlug: 'ahrefs-analytics';
103
113
  readonly packageSubpath: 'ahrefs-analytics';
104
- readonly integrationCategory: 'analytics';
105
- readonly consentCategory: 'measurement';
114
+ readonly vendor: 'ahrefs-analytics';
106
115
  }, {
116
+ readonly consentCategory: 'measurement';
117
+ readonly docsSlug: 'adobe-analytics';
118
+ readonly hint: 'Adobe Experience Platform tags';
119
+ readonly integrationCategory: 'analytics';
107
120
  readonly key: 'adobeAnalytics';
108
- readonly vendor: 'adobe-analytics';
109
121
  readonly label: 'Adobe Analytics';
110
- readonly hint: 'Adobe Experience Platform tags';
111
- readonly docsSlug: 'adobe-analytics';
112
122
  readonly packageSubpath: 'adobe-analytics';
113
- readonly integrationCategory: 'analytics';
114
- readonly consentCategory: 'measurement';
123
+ readonly vendor: 'adobe-analytics';
115
124
  }, {
125
+ readonly consentCategory: 'measurement';
126
+ readonly docsSlug: 'amplitude';
127
+ readonly hint: 'Product analytics';
128
+ readonly integrationCategory: 'analytics';
116
129
  readonly key: 'amplitude';
117
- readonly vendor: 'amplitude';
118
130
  readonly label: 'Amplitude';
119
- readonly hint: 'Product analytics';
120
- readonly docsSlug: 'amplitude';
121
131
  readonly packageSubpath: 'amplitude';
122
- readonly integrationCategory: 'analytics';
123
- readonly consentCategory: 'measurement';
132
+ readonly vendor: 'amplitude';
124
133
  }, {
134
+ readonly consentCategory: 'measurement';
135
+ readonly docsSlug: 'cloudflare-web-analytics';
136
+ readonly hint: 'Cookieless analytics from Cloudflare';
137
+ readonly integrationCategory: 'analytics';
125
138
  readonly key: 'cloudflareWebAnalytics';
126
- readonly vendor: 'cloudflare-web-analytics';
127
139
  readonly label: 'Cloudflare Web Analytics';
128
- readonly hint: 'Cookieless analytics from Cloudflare';
129
- readonly docsSlug: 'cloudflare-web-analytics';
130
140
  readonly packageSubpath: 'cloudflare-web-analytics';
131
- readonly integrationCategory: 'analytics';
132
- readonly consentCategory: 'measurement';
141
+ readonly vendor: 'cloudflare-web-analytics';
133
142
  }, {
143
+ readonly consentCategory: 'marketing';
144
+ readonly docsSlug: 'clearbit';
145
+ readonly hint: 'Visitor and company enrichment';
146
+ readonly integrationCategory: 'analytics';
134
147
  readonly key: 'clearbit';
135
- readonly vendor: 'clearbit';
136
148
  readonly label: 'Clearbit';
137
- readonly hint: 'Visitor and company enrichment';
138
- readonly docsSlug: 'clearbit';
139
149
  readonly packageSubpath: 'clearbit';
140
- readonly integrationCategory: 'analytics';
141
- readonly consentCategory: 'marketing';
150
+ readonly vendor: 'clearbit';
142
151
  }, {
152
+ readonly consentCategory: 'measurement';
153
+ readonly docsSlug: 'microsoft-clarity';
154
+ readonly hint: 'Session replay and heatmaps';
155
+ readonly integrationCategory: 'analytics';
143
156
  readonly key: 'microsoft-clarity';
144
- readonly vendor: 'microsoft-clarity';
145
157
  readonly label: 'Microsoft Clarity';
146
- readonly hint: 'Session replay and heatmaps';
147
- readonly docsSlug: 'microsoft-clarity';
148
158
  readonly packageSubpath: 'microsoft-clarity';
149
- readonly integrationCategory: 'analytics';
150
- readonly consentCategory: 'measurement';
159
+ readonly vendor: 'microsoft-clarity';
151
160
  }, {
161
+ readonly consentCategory: 'measurement';
162
+ readonly docsSlug: 'databuddy';
163
+ readonly hint: 'Data collection';
164
+ readonly integrationCategory: 'analytics';
152
165
  readonly key: 'databuddy';
153
- readonly vendor: 'databuddy';
154
166
  readonly label: 'Databuddy';
155
- readonly hint: 'Data collection';
156
- readonly docsSlug: 'databuddy';
157
167
  readonly packageSubpath: 'databuddy';
158
- readonly integrationCategory: 'analytics';
159
- readonly consentCategory: 'measurement';
168
+ readonly vendor: 'databuddy';
160
169
  }, {
170
+ readonly consentCategory: 'measurement';
171
+ readonly docsSlug: 'fathom-analytics';
172
+ readonly hint: 'Privacy-friendly cookieless analytics';
173
+ readonly integrationCategory: 'analytics';
161
174
  readonly key: 'fathomAnalytics';
162
- readonly vendor: 'fathom-analytics';
163
175
  readonly label: 'Fathom Analytics';
164
- readonly hint: 'Privacy-friendly cookieless analytics';
165
- readonly docsSlug: 'fathom-analytics';
166
176
  readonly packageSubpath: 'fathom-analytics';
167
- readonly integrationCategory: 'analytics';
168
- readonly consentCategory: 'measurement';
177
+ readonly vendor: 'fathom-analytics';
169
178
  }, {
179
+ readonly consentCategory: 'measurement';
180
+ readonly docsSlug: 'heap';
181
+ readonly hint: 'Autocapture product analytics';
182
+ readonly integrationCategory: 'analytics';
170
183
  readonly key: 'heap';
171
- readonly vendor: 'heap';
172
184
  readonly label: 'Heap';
173
- readonly hint: 'Autocapture product analytics';
174
- readonly docsSlug: 'heap';
175
185
  readonly packageSubpath: 'heap';
176
- readonly integrationCategory: 'analytics';
177
- readonly consentCategory: 'measurement';
186
+ readonly vendor: 'heap';
178
187
  }, {
188
+ readonly consentCategory: 'measurement';
189
+ readonly docsSlug: 'mixpanel-analytics';
190
+ readonly hint: 'Product analytics and funnels';
191
+ readonly integrationCategory: 'analytics';
179
192
  readonly key: 'mixpanelAnalytics';
180
- readonly vendor: 'mixpanel-analytics';
181
193
  readonly label: 'Mixpanel Analytics';
182
- readonly hint: 'Product analytics and funnels';
183
- readonly docsSlug: 'mixpanel-analytics';
184
194
  readonly packageSubpath: 'mixpanel-analytics';
185
- readonly integrationCategory: 'analytics';
186
- readonly consentCategory: 'measurement';
195
+ readonly vendor: 'mixpanel-analytics';
187
196
  }, {
197
+ readonly consentCategory: 'measurement';
198
+ readonly docsSlug: 'hotjar';
199
+ readonly hint: 'Heatmaps and session recordings';
200
+ readonly integrationCategory: 'analytics';
188
201
  readonly key: 'hotjar';
189
- readonly vendor: 'hotjar';
190
202
  readonly label: 'Hotjar';
191
- readonly hint: 'Heatmaps and session recordings';
192
- readonly docsSlug: 'hotjar';
193
203
  readonly packageSubpath: 'hotjar';
194
- readonly integrationCategory: 'analytics';
195
- readonly consentCategory: 'measurement';
204
+ readonly vendor: 'hotjar';
196
205
  }, {
206
+ readonly consentCategory: 'measurement';
207
+ readonly docsSlug: 'hightouch';
208
+ readonly hint: 'Customer data platform events';
209
+ readonly integrationCategory: 'analytics';
197
210
  readonly key: 'hightouch';
198
- readonly vendor: 'hightouch';
199
211
  readonly label: 'Hightouch';
200
- readonly hint: 'Customer data platform events';
201
- readonly docsSlug: 'hightouch';
202
212
  readonly packageSubpath: 'hightouch';
203
- readonly integrationCategory: 'analytics';
204
- readonly consentCategory: 'measurement';
213
+ readonly vendor: 'hightouch';
205
214
  }, {
215
+ readonly consentCategory: 'measurement';
216
+ readonly docsSlug: 'rudderstack';
217
+ readonly hint: 'Customer data platform events';
218
+ readonly integrationCategory: 'analytics';
206
219
  readonly key: 'rudderstack';
207
- readonly vendor: 'rudderstack';
208
220
  readonly label: 'RudderStack';
209
- readonly hint: 'Customer data platform events';
210
- readonly docsSlug: 'rudderstack';
211
221
  readonly packageSubpath: 'rudderstack';
212
- readonly integrationCategory: 'analytics';
213
- readonly consentCategory: 'measurement';
222
+ readonly vendor: 'rudderstack';
214
223
  }, {
224
+ readonly consentCategory: 'measurement';
225
+ readonly docsSlug: 'logrocket';
226
+ readonly hint: 'Session replay and monitoring';
227
+ readonly integrationCategory: 'analytics';
215
228
  readonly key: 'logRocket';
216
- readonly vendor: 'logrocket';
217
229
  readonly label: 'LogRocket';
218
- readonly hint: 'Session replay and monitoring';
219
- readonly docsSlug: 'logrocket';
220
230
  readonly packageSubpath: 'logrocket';
221
- readonly integrationCategory: 'analytics';
222
- readonly consentCategory: 'measurement';
231
+ readonly vendor: 'logrocket';
223
232
  }, {
233
+ readonly consentCategory: 'measurement';
234
+ readonly docsSlug: 'matomo-analytics';
235
+ readonly hint: 'Self-hosted privacy analytics';
236
+ readonly integrationCategory: 'analytics';
224
237
  readonly key: 'matomoAnalytics';
225
- readonly vendor: 'matomo-analytics';
226
238
  readonly label: 'Matomo Analytics';
227
- readonly hint: 'Self-hosted privacy analytics';
228
- readonly docsSlug: 'matomo-analytics';
229
239
  readonly packageSubpath: 'matomo-analytics';
230
- readonly integrationCategory: 'analytics';
231
- readonly consentCategory: 'measurement';
240
+ readonly vendor: 'matomo-analytics';
232
241
  }, {
242
+ readonly consentCategory: 'measurement';
243
+ readonly docsSlug: 'posthog';
244
+ readonly hint: 'Product analytics';
245
+ readonly integrationCategory: 'analytics';
233
246
  readonly key: 'posthog';
234
- readonly vendor: 'posthog';
235
247
  readonly label: 'PostHog';
236
- readonly hint: 'Product analytics';
237
- readonly docsSlug: 'posthog';
238
248
  readonly packageSubpath: 'posthog';
239
- readonly integrationCategory: 'analytics';
240
- readonly consentCategory: 'measurement';
249
+ readonly vendor: 'posthog';
241
250
  }, {
251
+ readonly consentCategory: 'measurement';
252
+ readonly docsSlug: 'promptwatch';
253
+ readonly hint: 'AI traffic analytics';
254
+ readonly integrationCategory: 'analytics';
242
255
  readonly key: 'promptwatch';
243
- readonly vendor: 'promptwatch';
244
256
  readonly label: 'Promptwatch';
245
- readonly hint: 'AI traffic analytics';
246
- readonly docsSlug: 'promptwatch';
247
257
  readonly packageSubpath: 'promptwatch';
248
- readonly integrationCategory: 'analytics';
249
- readonly consentCategory: 'measurement';
258
+ readonly vendor: 'promptwatch';
250
259
  }, {
260
+ readonly consentCategory: 'measurement';
261
+ readonly docsSlug: 'pirsch';
262
+ readonly hint: 'Privacy-friendly cookieless analytics';
263
+ readonly integrationCategory: 'analytics';
251
264
  readonly key: 'pirsch';
252
- readonly vendor: 'pirsch';
253
265
  readonly label: 'Pirsch';
254
- readonly hint: 'Privacy-friendly cookieless analytics';
255
- readonly docsSlug: 'pirsch';
256
266
  readonly packageSubpath: 'pirsch';
257
- readonly integrationCategory: 'analytics';
258
- readonly consentCategory: 'measurement';
267
+ readonly vendor: 'pirsch';
259
268
  }, {
269
+ readonly consentCategory: 'measurement';
270
+ readonly docsSlug: 'segment';
271
+ readonly hint: 'Customer data platform';
272
+ readonly integrationCategory: 'analytics';
260
273
  readonly key: 'segment';
261
- readonly vendor: 'segment';
262
274
  readonly label: 'Segment';
263
- readonly hint: 'Customer data platform';
264
- readonly docsSlug: 'segment';
265
275
  readonly packageSubpath: 'segment';
266
- readonly integrationCategory: 'analytics';
267
- readonly consentCategory: 'measurement';
276
+ readonly vendor: 'segment';
268
277
  }, {
278
+ readonly consentCategory: 'measurement';
279
+ readonly docsSlug: 'rybbit-analytics';
280
+ readonly hint: 'Privacy-friendly web analytics';
281
+ readonly integrationCategory: 'analytics';
269
282
  readonly key: 'rybbitAnalytics';
270
- readonly vendor: 'rybbit-analytics';
271
283
  readonly label: 'Rybbit Analytics';
272
- readonly hint: 'Privacy-friendly web analytics';
273
- readonly docsSlug: 'rybbit-analytics';
274
284
  readonly packageSubpath: 'rybbit-analytics';
275
- readonly integrationCategory: 'analytics';
276
- readonly consentCategory: 'measurement';
285
+ readonly vendor: 'rybbit-analytics';
277
286
  }, {
287
+ readonly consentCategory: 'measurement';
288
+ readonly docsSlug: 'plausible-analytics';
289
+ readonly hint: 'Privacy-friendly cookieless analytics';
290
+ readonly integrationCategory: 'analytics';
278
291
  readonly key: 'plausibleAnalytics';
279
- readonly vendor: 'plausible-analytics';
280
292
  readonly label: 'Plausible Analytics';
281
- readonly hint: 'Privacy-friendly cookieless analytics';
282
- readonly docsSlug: 'plausible-analytics';
283
293
  readonly packageSubpath: 'plausible-analytics';
284
- readonly integrationCategory: 'analytics';
285
- readonly consentCategory: 'measurement';
294
+ readonly vendor: 'plausible-analytics';
286
295
  }, {
296
+ readonly consentCategory: 'measurement';
297
+ readonly docsSlug: 'umami-analytics';
298
+ readonly hint: 'Open-source cookieless analytics';
299
+ readonly integrationCategory: 'analytics';
287
300
  readonly key: 'umamiAnalytics';
288
- readonly vendor: 'umami-analytics';
289
301
  readonly label: 'Umami Analytics';
290
- readonly hint: 'Open-source cookieless analytics';
291
- readonly docsSlug: 'umami-analytics';
292
302
  readonly packageSubpath: 'umami-analytics';
293
- readonly integrationCategory: 'analytics';
294
- readonly consentCategory: 'measurement';
303
+ readonly vendor: 'umami-analytics';
295
304
  }, {
305
+ readonly consentCategory: 'measurement';
306
+ readonly docsSlug: 'vercel-analytics';
307
+ readonly hint: 'Vercel web analytics';
308
+ readonly integrationCategory: 'analytics';
296
309
  readonly key: 'vercelAnalytics';
297
- readonly vendor: 'vercel-analytics';
298
310
  readonly label: 'Vercel Analytics';
299
- readonly hint: 'Vercel web analytics';
300
- readonly docsSlug: 'vercel-analytics';
301
311
  readonly packageSubpath: 'vercel-analytics';
302
- readonly integrationCategory: 'analytics';
303
- readonly consentCategory: 'measurement';
312
+ readonly vendor: 'vercel-analytics';
304
313
  }, {
314
+ readonly consentCategory: 'functionality';
315
+ readonly docsSlug: 'crisp';
316
+ readonly hint: 'Live chat widget';
317
+ readonly integrationCategory: 'functional';
305
318
  readonly key: 'crisp';
306
- readonly vendor: 'crisp';
307
319
  readonly label: 'Crisp';
308
- readonly hint: 'Live chat widget';
309
- readonly docsSlug: 'crisp';
310
320
  readonly packageSubpath: 'crisp';
311
- readonly integrationCategory: 'functional';
312
- readonly consentCategory: 'functionality';
321
+ readonly vendor: 'crisp';
313
322
  }, {
323
+ readonly consentCategory: 'functionality';
324
+ readonly docsSlug: 'intercom';
325
+ readonly hint: 'Messenger and live chat widget';
326
+ readonly integrationCategory: 'functional';
314
327
  readonly key: 'intercom';
315
- readonly vendor: 'intercom';
316
328
  readonly label: 'Intercom';
317
- readonly hint: 'Messenger and live chat widget';
318
- readonly docsSlug: 'intercom';
319
329
  readonly packageSubpath: 'intercom';
320
- readonly integrationCategory: 'functional';
321
- readonly consentCategory: 'functionality';
330
+ readonly vendor: 'intercom';
322
331
  }, {
332
+ readonly consentCategory: 'marketing';
333
+ readonly docsSlug: 'meta-pixel';
334
+ readonly hint: 'Facebook/Instagram tracking';
335
+ readonly integrationCategory: 'ads-and-pixels';
323
336
  readonly key: 'metaPixel';
324
- readonly vendor: 'meta-pixel';
325
337
  readonly label: 'Meta Pixel';
326
- readonly hint: 'Facebook/Instagram tracking';
327
- readonly docsSlug: 'meta-pixel';
328
338
  readonly packageSubpath: 'meta-pixel';
329
- readonly integrationCategory: 'ads-and-pixels';
339
+ readonly vendor: 'meta-pixel';
340
+ }, {
330
341
  readonly consentCategory: 'marketing';
342
+ readonly docsSlug: 'openai-pixel';
343
+ readonly hint: 'ChatGPT Ads conversion measurement';
344
+ readonly integrationCategory: 'ads-and-pixels';
345
+ readonly key: 'openaiPixel';
346
+ readonly label: 'OpenAI Pixel (ChatGPT Ads)';
347
+ readonly packageSubpath: 'openai-pixel';
348
+ readonly vendor: 'openai-pixel';
331
349
  }, {
350
+ readonly consentCategory: 'marketing';
351
+ readonly docsSlug: 'reddit-pixel';
352
+ readonly hint: 'Reddit ads tracking';
353
+ readonly integrationCategory: 'ads-and-pixels';
332
354
  readonly key: 'redditPixel';
333
- readonly vendor: 'reddit-pixel';
334
355
  readonly label: 'Reddit Pixel';
335
- readonly hint: 'Reddit ads tracking';
336
- readonly docsSlug: 'reddit-pixel';
337
356
  readonly packageSubpath: 'reddit-pixel';
338
- readonly integrationCategory: 'ads-and-pixels';
339
- readonly consentCategory: 'marketing';
357
+ readonly vendor: 'reddit-pixel';
340
358
  }, {
359
+ readonly consentCategory: 'marketing';
360
+ readonly docsSlug: 'tiktok-pixel';
361
+ readonly hint: 'TikTok ads tracking';
362
+ readonly integrationCategory: 'ads-and-pixels';
341
363
  readonly key: 'tiktokPixel';
342
- readonly vendor: 'tiktok-pixel';
343
364
  readonly label: 'TikTok Pixel';
344
- readonly hint: 'TikTok ads tracking';
345
- readonly docsSlug: 'tiktok-pixel';
346
365
  readonly packageSubpath: 'tiktok-pixel';
347
- readonly integrationCategory: 'ads-and-pixels';
348
- readonly consentCategory: 'marketing';
366
+ readonly vendor: 'tiktok-pixel';
349
367
  }, {
368
+ readonly consentCategory: 'marketing';
369
+ readonly docsSlug: 'linkedin-insights';
370
+ readonly hint: 'LinkedIn conversion tracking';
371
+ readonly integrationCategory: 'ads-and-pixels';
350
372
  readonly key: 'linkedinInsights';
351
- readonly vendor: 'linkedin-insights';
352
373
  readonly label: 'LinkedIn Insight Tag';
353
- readonly hint: 'LinkedIn conversion tracking';
354
- readonly docsSlug: 'linkedin-insights';
355
374
  readonly packageSubpath: 'linkedin-insights';
356
- readonly integrationCategory: 'ads-and-pixels';
357
- readonly consentCategory: 'marketing';
375
+ readonly vendor: 'linkedin-insights';
358
376
  }, {
377
+ readonly consentCategory: 'marketing';
378
+ readonly docsSlug: 'microsoft-uet';
379
+ readonly hint: 'Bing Ads tracking';
380
+ readonly integrationCategory: 'ads-and-pixels';
359
381
  readonly key: 'microsoftUet';
360
- readonly vendor: 'microsoft-uet';
361
382
  readonly label: 'Microsoft UET';
362
- readonly hint: 'Bing Ads tracking';
363
- readonly docsSlug: 'microsoft-uet';
364
383
  readonly packageSubpath: 'microsoft-uet';
365
- readonly integrationCategory: 'ads-and-pixels';
366
- readonly consentCategory: 'marketing';
384
+ readonly vendor: 'microsoft-uet';
367
385
  }, {
386
+ readonly consentCategory: 'marketing';
387
+ readonly docsSlug: 'snapchat-pixel';
388
+ readonly hint: 'Snapchat ads tracking';
389
+ readonly integrationCategory: 'ads-and-pixels';
368
390
  readonly key: 'snapchatPixel';
369
- readonly vendor: 'snapchat-pixel';
370
391
  readonly label: 'Snapchat Pixel';
371
- readonly hint: 'Snapchat ads tracking';
372
- readonly docsSlug: 'snapchat-pixel';
373
392
  readonly packageSubpath: 'snapchat-pixel';
374
- readonly integrationCategory: 'ads-and-pixels';
375
- readonly consentCategory: 'marketing';
393
+ readonly vendor: 'snapchat-pixel';
376
394
  }, {
395
+ readonly consentCategory: 'marketing';
396
+ readonly docsSlug: 'x-pixel';
397
+ readonly hint: 'X/Twitter conversion tracking';
398
+ readonly integrationCategory: 'ads-and-pixels';
377
399
  readonly key: 'xPixel';
378
- readonly vendor: 'x-pixel';
379
400
  readonly label: 'X (Twitter) Pixel';
380
- readonly hint: 'X/Twitter conversion tracking';
381
- readonly docsSlug: 'x-pixel';
382
401
  readonly packageSubpath: 'x-pixel';
383
- readonly integrationCategory: 'ads-and-pixels';
384
- readonly consentCategory: 'marketing';
402
+ readonly vendor: 'x-pixel';
385
403
  }];
386
404
  /**
387
405
  * Concrete registry entry type inferred from `builtInScriptIntegrations`.
@@ -400,7 +418,7 @@ export type BuiltInScriptIntegrationSubpath = BuiltInScriptIntegration['packageS
400
418
  *
401
419
  * @param key - Stable integration key.
402
420
  * @returns The matching built-in integration entry.
403
- * @throws `Error("Unknown built-in script integration: <key>")` when the key is
421
+ * @throws {Error}("Unknown built-in script integration: <key>")` when the key is
404
422
  * not present. Catch this when accepting untrusted or user-provided keys.
405
423
  *
406
424
  * @example
@@ -409,7 +427,7 @@ export type BuiltInScriptIntegrationSubpath = BuiltInScriptIntegration['packageS
409
427
  * console.log(integration.packageSubpath); // "meta-pixel"
410
428
  * ```
411
429
  */
412
- export declare function getBuiltInScriptIntegration(key: BuiltInScriptIntegrationKey): BuiltInScriptIntegration;
430
+ export declare const getBuiltInScriptIntegration: (key: BuiltInScriptIntegrationKey) => BuiltInScriptIntegration;
413
431
  /**
414
432
  * Finds a built-in integration by its public package subpath.
415
433
  *
@@ -422,7 +440,7 @@ export declare function getBuiltInScriptIntegration(key: BuiltInScriptIntegratio
422
440
  * console.log(integration?.label); // "Meta Pixel"
423
441
  * ```
424
442
  */
425
- export declare function getBuiltInScriptIntegrationBySubpath(subpath: string): BuiltInScriptIntegration | undefined;
443
+ export declare const getBuiltInScriptIntegrationBySubpath: (subpath: string) => BuiltInScriptIntegration | undefined;
426
444
  /**
427
445
  * Finds a built-in integration by the emitted script vendor id.
428
446
  *
@@ -437,4 +455,4 @@ export declare function getBuiltInScriptIntegrationBySubpath(subpath: string): B
437
455
  * console.log(integration?.label); // "Google Tag Manager"
438
456
  * ```
439
457
  */
440
- export declare function getBuiltInScriptIntegrationByVendor(vendor: string): BuiltInScriptIntegration | undefined;
458
+ export declare const getBuiltInScriptIntegrationByVendor: (vendor: string) => BuiltInScriptIntegration | undefined;
@@ -1,9 +1,9 @@
1
- import type { Script } from 'c15t';
2
- import type { VendorManifest } from './types';
1
+ import type { Script } from '@c15t/core';
2
+ import type { VendorManifest } from './types.js';
3
3
  /**
4
4
  * Compiles a `VendorManifest` + config into a `Script` object.
5
5
  *
6
6
  * This compatibility wrapper preserves the existing public resolver API while
7
7
  * delegating to the new compile and runtime conversion phases internally.
8
8
  */
9
- export declare function resolveManifest(manifest: VendorManifest, config?: Record<string, unknown>): Script;
9
+ export declare const resolveManifest: (manifest: VendorManifest, config?: Record<string, unknown>) => Script;
@@ -1,4 +1,4 @@
1
- import type { AllConsentNames, HasCondition } from 'c15t';
1
+ import type { AllConsentNames, HasCondition } from '@c15t/core';
2
2
  export declare const VENDOR_MANIFEST_KIND = "c15t.vendor-manifest";
3
3
  export declare const VENDOR_MANIFEST_SCHEMA_VERSION = 1;
4
4
  export declare const vendorManifestContract: {
@@ -183,7 +183,7 @@ export interface DefineGlobalMethodsStep {
183
183
  type: 'defineGlobalMethods';
184
184
  /** Global object name to receive the methods */
185
185
  target: string;
186
- methods: Array<GlobalMethodBehavior>;
186
+ methods: GlobalMethodBehavior[];
187
187
  /** Only define methods while the target is still a snippet queue array. */
188
188
  ifGlobalIsQueue?: boolean;
189
189
  }
@@ -13,7 +13,7 @@
13
13
  * booleanDataAttribute(undefined); // undefined
14
14
  * ```
15
15
  */
16
- export declare function booleanDataAttribute(value: boolean | undefined): string | undefined;
16
+ export declare const booleanDataAttribute: (value: boolean | undefined) => string | undefined;
17
17
  /**
18
18
  * Converts a string or string list into a script `data-*` attribute value.
19
19
  *
@@ -32,4 +32,4 @@ export declare function booleanDataAttribute(value: boolean | undefined): string
32
32
  * listDataAttribute(undefined); // undefined
33
33
  * ```
34
34
  */
35
- export declare function listDataAttribute(value: string[] | string | undefined): string | undefined;
35
+ export declare const listDataAttribute: (value: string[] | string | undefined) => string | undefined;
@@ -42,6 +42,6 @@ export declare const GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING: Record<string, stri
42
42
  * );
43
43
  * ```
44
44
  */
45
- export declare function withOptionalConsentMapping<TManifest extends {
45
+ export declare const withOptionalConsentMapping: <TManifest extends {
46
46
  consentMapping?: Record<string, string[]>;
47
- }>(manifest: TManifest, consentMapping: Record<string, string[]> | undefined): TManifest;
47
+ }>(manifest: TManifest, consentMapping: Record<string, string[]> | undefined) => TManifest;
@@ -1,4 +1,4 @@
1
- import type { VendorManifest } from '../../types';
1
+ import type { VendorManifest } from '../../types.js';
2
2
  /**
3
3
  * Optional tracking call inserted between the vendor init call and script load.
4
4
  */
@@ -26,5 +26,5 @@ export interface BuildQueuePixelInstallOptions {
26
26
  * @returns Manifest install steps containing the required init call, an
27
27
  * optional tracking call, and an async `loadScript` step.
28
28
  */
29
- export declare function buildQueuePixelInstall({ global, initArgs, trackStep, scriptPlaceholder, }: BuildQueuePixelInstallOptions): VendorManifest['install'];
29
+ export declare const buildQueuePixelInstall: ({ global, initArgs, trackStep, scriptPlaceholder, }: BuildQueuePixelInstallOptions) => VendorManifest['install'];
30
30
  export {};
@@ -8,12 +8,12 @@
8
8
  *
9
9
  * @example
10
10
  * ```ts
11
- * trimToUndefined(' https://cdn.example.com '); // 'https://cdn.example.com'
11
+ * trimToUndefined(', https://cdn.example.com '); // 'https://cdn.example.com'
12
12
  * trimToUndefined(' '); // undefined
13
13
  * trimToUndefined(undefined); // undefined
14
14
  * ```
15
15
  */
16
- export declare function trimToUndefined(value: string | undefined): string | undefined;
16
+ export declare const trimToUndefined: (value: string | undefined) => string | undefined;
17
17
  /**
18
18
  * Resolves a script URL from an optional override and a required fallback.
19
19
  *
@@ -41,21 +41,21 @@ export declare function trimToUndefined(value: string | undefined): string | und
41
41
  * // 'https://custom.com/script.js'
42
42
  * ```
43
43
  */
44
- export declare function resolveScriptUrl(override: string | undefined, fallback: string): string;
44
+ export declare const resolveScriptUrl: (override: string | undefined, fallback: string) => string;
45
45
  /**
46
46
  * Removes leading slash characters without using a regular expression.
47
47
  *
48
48
  * This helper is used on caller-controlled URL fragments, so it intentionally
49
49
  * stays linear even for very long repeated slash input.
50
50
  */
51
- export declare function stripLeadingSlashes(value: string): string;
51
+ export declare const stripLeadingSlashes: (value: string) => string;
52
52
  /**
53
53
  * Removes trailing slash characters without using a regular expression.
54
54
  *
55
55
  * This helper is used on caller-controlled URL fragments, so it intentionally
56
56
  * stays linear even for very long repeated slash input.
57
57
  */
58
- export declare function stripTrailingSlashes(value: string): string;
58
+ export declare const stripTrailingSlashes: (value: string) => string;
59
59
  /**
60
60
  * Joins a base URL and path with exactly one slash between them.
61
61
  *
@@ -72,4 +72,4 @@ export declare function stripTrailingSlashes(value: string): string;
72
72
  * // 'https://example.com/script.js'
73
73
  * ```
74
74
  */
75
- export declare function joinUrlPath(base: string, path: string): string;
75
+ export declare const joinUrlPath: (base: string, path: string) => string;