@c15t/scripts 2.2.0 → 3.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/AGENTS.md +74 -48
  2. package/README.md +3 -3
  3. package/dist/e2e-test-utils.js +60 -24
  4. package/dist/engine/compile.js +45 -45
  5. package/dist/engine/runtime.js +119 -119
  6. package/dist/registry.js +186 -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 +31 -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/google-tag-manager.js +20 -20
  47. package/dist-types/__tests__/helpers.d.ts +10 -10
  48. package/dist-types/engine/compile.d.ts +2 -2
  49. package/dist-types/engine/runtime.d.ts +3 -3
  50. package/dist-types/registry.d.ts +182 -173
  51. package/dist-types/resolve.d.ts +2 -2
  52. package/dist-types/types.d.ts +2 -2
  53. package/dist-types/vendors/_shared/attributes.d.ts +2 -2
  54. package/dist-types/vendors/_shared/google-consent.d.ts +2 -2
  55. package/dist-types/vendors/_shared/install-builders.d.ts +1 -1
  56. package/dist-types/vendors/_shared/script-url.d.ts +6 -6
  57. package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +14 -14
  58. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +27 -27
  59. package/dist-types/vendors/ads-and-pixels/microsoft-uet.d.ts +40 -40
  60. package/dist-types/vendors/ads-and-pixels/openai-pixel.d.ts +211 -0
  61. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +28 -29
  62. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +23 -23
  63. package/dist-types/vendors/ads-and-pixels/tiktok-pixel.d.ts +22 -22
  64. package/dist-types/vendors/ads-and-pixels/x-pixel.d.ts +15 -15
  65. package/dist-types/vendors/analytics/adobe-analytics.d.ts +3 -3
  66. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +5 -5
  67. package/dist-types/vendors/analytics/amplitude.d.ts +24 -24
  68. package/dist-types/vendors/analytics/clearbit.d.ts +5 -5
  69. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +6 -6
  70. package/dist-types/vendors/analytics/databuddy.d.ts +34 -31
  71. package/dist-types/vendors/analytics/fathom-analytics.d.ts +8 -8
  72. package/dist-types/vendors/analytics/google-tag.d.ts +17 -17
  73. package/dist-types/vendors/analytics/heap.d.ts +17 -17
  74. package/dist-types/vendors/analytics/hightouch.d.ts +15 -15
  75. package/dist-types/vendors/analytics/hotjar.d.ts +9 -9
  76. package/dist-types/vendors/analytics/logrocket.d.ts +11 -11
  77. package/dist-types/vendors/analytics/matomo-analytics.d.ts +3 -3
  78. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +12 -13
  79. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +20 -20
  80. package/dist-types/vendors/analytics/pirsch.d.ts +10 -10
  81. package/dist-types/vendors/analytics/plausible-analytics.d.ts +13 -13
  82. package/dist-types/vendors/analytics/posthog.d.ts +35 -32
  83. package/dist-types/vendors/analytics/promptwatch.d.ts +5 -5
  84. package/dist-types/vendors/analytics/rudderstack.d.ts +16 -16
  85. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +15 -15
  86. package/dist-types/vendors/analytics/segment.d.ts +11 -11
  87. package/dist-types/vendors/analytics/umami-analytics.d.ts +9 -9
  88. package/dist-types/vendors/analytics/vercel-analytics.d.ts +13 -13
  89. package/dist-types/vendors/functional/crisp.d.ts +9 -9
  90. package/dist-types/vendors/functional/intercom.d.ts +12 -12
  91. package/dist-types/vendors/tag-managers/google-tag-manager.d.ts +16 -16
  92. package/docs/README.md +74 -48
  93. package/docs/assets/v3/brand-bar.png +0 -0
  94. package/docs/assets/v3/brand-card.png +0 -0
  95. package/docs/assets/v3/choice-wall.png +0 -0
  96. package/docs/assets/v3/mobile-card.png +0 -0
  97. package/docs/assets/v3/preferences.png +0 -0
  98. package/docs/customization/overview.md +45 -0
  99. package/docs/customization/recipes.md +79 -0
  100. package/docs/customization/slots.md +55 -0
  101. package/docs/customization/tokens.md +76 -0
  102. package/docs/customization/translations.md +49 -0
  103. package/docs/frameworks/javascript/script-loader.md +30 -339
  104. package/docs/frameworks/next/script-loader.md +134 -467
  105. package/docs/frameworks/react/script-loader.md +35 -535
  106. package/docs/guides/consent-state.md +60 -0
  107. package/docs/guides/data-fetching.md +163 -0
  108. package/docs/guides/deployment-modes.md +63 -0
  109. package/docs/guides/troubleshooting.md +68 -0
  110. package/docs/guides/verify-consent.md +62 -0
  111. package/docs/integrations/adobe-analytics.md +239 -105
  112. package/docs/integrations/ahrefs-analytics.md +238 -104
  113. package/docs/integrations/amplitude.md +219 -157
  114. package/docs/integrations/building-integrations.md +32 -224
  115. package/docs/integrations/clearbit.md +247 -86
  116. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  117. package/docs/integrations/crisp.md +251 -97
  118. package/docs/integrations/databuddy.md +259 -153
  119. package/docs/integrations/fathom-analytics.md +239 -96
  120. package/docs/integrations/google-maps.md +328 -207
  121. package/docs/integrations/google-tag-manager.md +248 -96
  122. package/docs/integrations/google-tag.md +261 -90
  123. package/docs/integrations/heap.md +222 -149
  124. package/docs/integrations/hightouch.md +225 -131
  125. package/docs/integrations/hotjar.md +239 -90
  126. package/docs/integrations/intercom.md +239 -98
  127. package/docs/integrations/linkedin-insights.md +243 -113
  128. package/docs/integrations/logrocket.md +241 -123
  129. package/docs/integrations/matomo-analytics.md +256 -111
  130. package/docs/integrations/meta-pixel.md +197 -324
  131. package/docs/integrations/microsoft-clarity.md +233 -114
  132. package/docs/integrations/microsoft-uet.md +245 -110
  133. package/docs/integrations/mixpanel-analytics.md +252 -87
  134. package/docs/integrations/openai-pixel.md +441 -0
  135. package/docs/integrations/overview.md +95 -133
  136. package/docs/integrations/pirsch.md +249 -96
  137. package/docs/integrations/plausible-analytics.md +241 -100
  138. package/docs/integrations/posthog.md +353 -214
  139. package/docs/integrations/promptwatch.md +251 -81
  140. package/docs/integrations/reddit-pixel.md +226 -173
  141. package/docs/integrations/rudderstack.md +244 -187
  142. package/docs/integrations/rybbit-analytics.md +244 -91
  143. package/docs/integrations/segment.md +238 -92
  144. package/docs/integrations/snapchat-pixel.md +240 -110
  145. package/docs/integrations/tiktok-pixel.md +249 -81
  146. package/docs/integrations/umami-analytics.md +242 -95
  147. package/docs/integrations/vercel-analytics.md +242 -90
  148. package/docs/integrations/x-pixel.md +238 -104
  149. package/docs/integrations/youtube.md +354 -142
  150. package/docs/upgrade-v3.md +334 -0
  151. package/package.json +85 -78
  152. package/readme.json +2 -2
  153. package/dist/e2e-test-utils.cjs +0 -166
  154. package/dist/engine/compile.cjs +0 -130
  155. package/dist/engine/runtime.cjs +0 -475
  156. package/dist/registry.cjs +0 -423
  157. package/dist/resolve.cjs +0 -71
  158. package/dist/types.cjs +0 -69
  159. package/dist/vendors/_shared/attributes.cjs +0 -55
  160. package/dist/vendors/_shared/google-consent.cjs +0 -69
  161. package/dist/vendors/_shared/install-builders.cjs +0 -59
  162. package/dist/vendors/_shared/script-url.cjs +0 -78
  163. package/dist/vendors/ads-and-pixels/linkedin-insights.cjs +0 -89
  164. package/dist/vendors/ads-and-pixels/meta-pixel.cjs +0 -206
  165. package/dist/vendors/ads-and-pixels/microsoft-uet.cjs +0 -151
  166. package/dist/vendors/ads-and-pixels/reddit-pixel.cjs +0 -151
  167. package/dist/vendors/ads-and-pixels/snapchat-pixel.cjs +0 -131
  168. package/dist/vendors/ads-and-pixels/tiktok-pixel.cjs +0 -130
  169. package/dist/vendors/ads-and-pixels/x-pixel.cjs +0 -92
  170. package/dist/vendors/analytics/adobe-analytics.cjs +0 -90
  171. package/dist/vendors/analytics/ahrefs-analytics.cjs +0 -68
  172. package/dist/vendors/analytics/amplitude.cjs +0 -193
  173. package/dist/vendors/analytics/clearbit.cjs +0 -69
  174. package/dist/vendors/analytics/cloudflare-web-analytics.cjs +0 -73
  175. package/dist/vendors/analytics/databuddy.cjs +0 -144
  176. package/dist/vendors/analytics/fathom-analytics.cjs +0 -76
  177. package/dist/vendors/analytics/google-tag.cjs +0 -107
  178. package/dist/vendors/analytics/heap.cjs +0 -181
  179. package/dist/vendors/analytics/hightouch.cjs +0 -153
  180. package/dist/vendors/analytics/hotjar.cjs +0 -85
  181. package/dist/vendors/analytics/logrocket.cjs +0 -99
  182. package/dist/vendors/analytics/matomo-analytics.cjs +0 -232
  183. package/dist/vendors/analytics/microsoft-clarity.cjs +0 -138
  184. package/dist/vendors/analytics/mixpanel-analytics.cjs +0 -134
  185. package/dist/vendors/analytics/pirsch.cjs +0 -108
  186. package/dist/vendors/analytics/plausible-analytics.cjs +0 -122
  187. package/dist/vendors/analytics/posthog.cjs +0 -236
  188. package/dist/vendors/analytics/promptwatch.cjs +0 -70
  189. package/dist/vendors/analytics/rudderstack.cjs +0 -227
  190. package/dist/vendors/analytics/rybbit-analytics.cjs +0 -104
  191. package/dist/vendors/analytics/segment.cjs +0 -97
  192. package/dist/vendors/analytics/umami-analytics.cjs +0 -80
  193. package/dist/vendors/analytics/vercel-analytics.cjs +0 -94
  194. package/dist/vendors/functional/crisp.cjs +0 -143
  195. package/dist/vendors/functional/intercom.cjs +0 -89
  196. package/dist/vendors/tag-managers/google-tag-manager.cjs +0 -100
  197. package/docs/shared/react/guides/script-loader.md +0 -311
@@ -77,311 +77,320 @@ 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: 'google-tag-manager';
82
+ readonly hint: 'GTM container script';
83
+ readonly integrationCategory: 'tag-manager';
80
84
  readonly key: 'googleTagManager';
81
- readonly vendor: 'google-tag-manager';
82
85
  readonly label: 'Google Tag Manager';
83
- readonly hint: 'GTM container script';
84
- readonly docsSlug: 'google-tag-manager';
85
86
  readonly packageSubpath: 'google-tag-manager';
86
- readonly integrationCategory: 'tag-manager';
87
- readonly consentCategory: 'necessary';
87
+ readonly vendor: 'google-tag-manager';
88
88
  }, {
89
+ readonly consentCategory: 'measurement';
90
+ readonly docsSlug: 'google-tag';
91
+ readonly hint: 'Google Analytics 4';
92
+ readonly integrationCategory: 'analytics';
89
93
  readonly key: 'gtag';
90
- readonly vendor: 'gtag';
91
94
  readonly label: 'Google Tag (gtag.js)';
92
- readonly hint: 'Google Analytics 4';
93
- readonly docsSlug: 'google-tag';
94
95
  readonly packageSubpath: 'google-tag';
95
- readonly integrationCategory: 'analytics';
96
- readonly consentCategory: 'measurement';
96
+ readonly vendor: 'gtag';
97
97
  }, {
98
+ readonly consentCategory: 'measurement';
99
+ readonly docsSlug: 'ahrefs-analytics';
100
+ readonly hint: 'Cookieless web analytics from Ahrefs';
101
+ readonly integrationCategory: 'analytics';
98
102
  readonly key: 'ahrefsAnalytics';
99
- readonly vendor: 'ahrefs-analytics';
100
103
  readonly label: 'Ahrefs Analytics';
101
- readonly hint: 'Cookieless web analytics from Ahrefs';
102
- readonly docsSlug: 'ahrefs-analytics';
103
104
  readonly packageSubpath: 'ahrefs-analytics';
104
- readonly integrationCategory: 'analytics';
105
- readonly consentCategory: 'measurement';
105
+ readonly vendor: 'ahrefs-analytics';
106
106
  }, {
107
+ readonly consentCategory: 'measurement';
108
+ readonly docsSlug: 'adobe-analytics';
109
+ readonly hint: 'Adobe Experience Platform tags';
110
+ readonly integrationCategory: 'analytics';
107
111
  readonly key: 'adobeAnalytics';
108
- readonly vendor: 'adobe-analytics';
109
112
  readonly label: 'Adobe Analytics';
110
- readonly hint: 'Adobe Experience Platform tags';
111
- readonly docsSlug: 'adobe-analytics';
112
113
  readonly packageSubpath: 'adobe-analytics';
113
- readonly integrationCategory: 'analytics';
114
- readonly consentCategory: 'measurement';
114
+ readonly vendor: 'adobe-analytics';
115
115
  }, {
116
+ readonly consentCategory: 'measurement';
117
+ readonly docsSlug: 'amplitude';
118
+ readonly hint: 'Product analytics';
119
+ readonly integrationCategory: 'analytics';
116
120
  readonly key: 'amplitude';
117
- readonly vendor: 'amplitude';
118
121
  readonly label: 'Amplitude';
119
- readonly hint: 'Product analytics';
120
- readonly docsSlug: 'amplitude';
121
122
  readonly packageSubpath: 'amplitude';
122
- readonly integrationCategory: 'analytics';
123
- readonly consentCategory: 'measurement';
123
+ readonly vendor: 'amplitude';
124
124
  }, {
125
+ readonly consentCategory: 'measurement';
126
+ readonly docsSlug: 'cloudflare-web-analytics';
127
+ readonly hint: 'Cookieless analytics from Cloudflare';
128
+ readonly integrationCategory: 'analytics';
125
129
  readonly key: 'cloudflareWebAnalytics';
126
- readonly vendor: 'cloudflare-web-analytics';
127
130
  readonly label: 'Cloudflare Web Analytics';
128
- readonly hint: 'Cookieless analytics from Cloudflare';
129
- readonly docsSlug: 'cloudflare-web-analytics';
130
131
  readonly packageSubpath: 'cloudflare-web-analytics';
131
- readonly integrationCategory: 'analytics';
132
- readonly consentCategory: 'measurement';
132
+ readonly vendor: 'cloudflare-web-analytics';
133
133
  }, {
134
+ readonly consentCategory: 'marketing';
135
+ readonly docsSlug: 'clearbit';
136
+ readonly hint: 'Visitor and company enrichment';
137
+ readonly integrationCategory: 'analytics';
134
138
  readonly key: 'clearbit';
135
- readonly vendor: 'clearbit';
136
139
  readonly label: 'Clearbit';
137
- readonly hint: 'Visitor and company enrichment';
138
- readonly docsSlug: 'clearbit';
139
140
  readonly packageSubpath: 'clearbit';
140
- readonly integrationCategory: 'analytics';
141
- readonly consentCategory: 'marketing';
141
+ readonly vendor: 'clearbit';
142
142
  }, {
143
+ readonly consentCategory: 'measurement';
144
+ readonly docsSlug: 'microsoft-clarity';
145
+ readonly hint: 'Session replay and heatmaps';
146
+ readonly integrationCategory: 'analytics';
143
147
  readonly key: 'microsoft-clarity';
144
- readonly vendor: 'microsoft-clarity';
145
148
  readonly label: 'Microsoft Clarity';
146
- readonly hint: 'Session replay and heatmaps';
147
- readonly docsSlug: 'microsoft-clarity';
148
149
  readonly packageSubpath: 'microsoft-clarity';
149
- readonly integrationCategory: 'analytics';
150
- readonly consentCategory: 'measurement';
150
+ readonly vendor: 'microsoft-clarity';
151
151
  }, {
152
+ readonly consentCategory: 'measurement';
153
+ readonly docsSlug: 'databuddy';
154
+ readonly hint: 'Data collection';
155
+ readonly integrationCategory: 'analytics';
152
156
  readonly key: 'databuddy';
153
- readonly vendor: 'databuddy';
154
157
  readonly label: 'Databuddy';
155
- readonly hint: 'Data collection';
156
- readonly docsSlug: 'databuddy';
157
158
  readonly packageSubpath: 'databuddy';
158
- readonly integrationCategory: 'analytics';
159
- readonly consentCategory: 'measurement';
159
+ readonly vendor: 'databuddy';
160
160
  }, {
161
+ readonly consentCategory: 'measurement';
162
+ readonly docsSlug: 'fathom-analytics';
163
+ readonly hint: 'Privacy-friendly cookieless analytics';
164
+ readonly integrationCategory: 'analytics';
161
165
  readonly key: 'fathomAnalytics';
162
- readonly vendor: 'fathom-analytics';
163
166
  readonly label: 'Fathom Analytics';
164
- readonly hint: 'Privacy-friendly cookieless analytics';
165
- readonly docsSlug: 'fathom-analytics';
166
167
  readonly packageSubpath: 'fathom-analytics';
167
- readonly integrationCategory: 'analytics';
168
- readonly consentCategory: 'measurement';
168
+ readonly vendor: 'fathom-analytics';
169
169
  }, {
170
+ readonly consentCategory: 'measurement';
171
+ readonly docsSlug: 'heap';
172
+ readonly hint: 'Autocapture product analytics';
173
+ readonly integrationCategory: 'analytics';
170
174
  readonly key: 'heap';
171
- readonly vendor: 'heap';
172
175
  readonly label: 'Heap';
173
- readonly hint: 'Autocapture product analytics';
174
- readonly docsSlug: 'heap';
175
176
  readonly packageSubpath: 'heap';
176
- readonly integrationCategory: 'analytics';
177
- readonly consentCategory: 'measurement';
177
+ readonly vendor: 'heap';
178
178
  }, {
179
+ readonly consentCategory: 'measurement';
180
+ readonly docsSlug: 'mixpanel-analytics';
181
+ readonly hint: 'Product analytics and funnels';
182
+ readonly integrationCategory: 'analytics';
179
183
  readonly key: 'mixpanelAnalytics';
180
- readonly vendor: 'mixpanel-analytics';
181
184
  readonly label: 'Mixpanel Analytics';
182
- readonly hint: 'Product analytics and funnels';
183
- readonly docsSlug: 'mixpanel-analytics';
184
185
  readonly packageSubpath: 'mixpanel-analytics';
185
- readonly integrationCategory: 'analytics';
186
- readonly consentCategory: 'measurement';
186
+ readonly vendor: 'mixpanel-analytics';
187
187
  }, {
188
+ readonly consentCategory: 'measurement';
189
+ readonly docsSlug: 'hotjar';
190
+ readonly hint: 'Heatmaps and session recordings';
191
+ readonly integrationCategory: 'analytics';
188
192
  readonly key: 'hotjar';
189
- readonly vendor: 'hotjar';
190
193
  readonly label: 'Hotjar';
191
- readonly hint: 'Heatmaps and session recordings';
192
- readonly docsSlug: 'hotjar';
193
194
  readonly packageSubpath: 'hotjar';
194
- readonly integrationCategory: 'analytics';
195
- readonly consentCategory: 'measurement';
195
+ readonly vendor: 'hotjar';
196
196
  }, {
197
+ readonly consentCategory: 'measurement';
198
+ readonly docsSlug: 'hightouch';
199
+ readonly hint: 'Customer data platform events';
200
+ readonly integrationCategory: 'analytics';
197
201
  readonly key: 'hightouch';
198
- readonly vendor: 'hightouch';
199
202
  readonly label: 'Hightouch';
200
- readonly hint: 'Customer data platform events';
201
- readonly docsSlug: 'hightouch';
202
203
  readonly packageSubpath: 'hightouch';
203
- readonly integrationCategory: 'analytics';
204
- readonly consentCategory: 'measurement';
204
+ readonly vendor: 'hightouch';
205
205
  }, {
206
+ readonly consentCategory: 'measurement';
207
+ readonly docsSlug: 'rudderstack';
208
+ readonly hint: 'Customer data platform events';
209
+ readonly integrationCategory: 'analytics';
206
210
  readonly key: 'rudderstack';
207
- readonly vendor: 'rudderstack';
208
211
  readonly label: 'RudderStack';
209
- readonly hint: 'Customer data platform events';
210
- readonly docsSlug: 'rudderstack';
211
212
  readonly packageSubpath: 'rudderstack';
212
- readonly integrationCategory: 'analytics';
213
- readonly consentCategory: 'measurement';
213
+ readonly vendor: 'rudderstack';
214
214
  }, {
215
+ readonly consentCategory: 'measurement';
216
+ readonly docsSlug: 'logrocket';
217
+ readonly hint: 'Session replay and monitoring';
218
+ readonly integrationCategory: 'analytics';
215
219
  readonly key: 'logRocket';
216
- readonly vendor: 'logrocket';
217
220
  readonly label: 'LogRocket';
218
- readonly hint: 'Session replay and monitoring';
219
- readonly docsSlug: 'logrocket';
220
221
  readonly packageSubpath: 'logrocket';
221
- readonly integrationCategory: 'analytics';
222
- readonly consentCategory: 'measurement';
222
+ readonly vendor: 'logrocket';
223
223
  }, {
224
+ readonly consentCategory: 'measurement';
225
+ readonly docsSlug: 'matomo-analytics';
226
+ readonly hint: 'Self-hosted privacy analytics';
227
+ readonly integrationCategory: 'analytics';
224
228
  readonly key: 'matomoAnalytics';
225
- readonly vendor: 'matomo-analytics';
226
229
  readonly label: 'Matomo Analytics';
227
- readonly hint: 'Self-hosted privacy analytics';
228
- readonly docsSlug: 'matomo-analytics';
229
230
  readonly packageSubpath: 'matomo-analytics';
230
- readonly integrationCategory: 'analytics';
231
- readonly consentCategory: 'measurement';
231
+ readonly vendor: 'matomo-analytics';
232
232
  }, {
233
+ readonly consentCategory: 'measurement';
234
+ readonly docsSlug: 'posthog';
235
+ readonly hint: 'Product analytics';
236
+ readonly integrationCategory: 'analytics';
233
237
  readonly key: 'posthog';
234
- readonly vendor: 'posthog';
235
238
  readonly label: 'PostHog';
236
- readonly hint: 'Product analytics';
237
- readonly docsSlug: 'posthog';
238
239
  readonly packageSubpath: 'posthog';
239
- readonly integrationCategory: 'analytics';
240
- readonly consentCategory: 'measurement';
240
+ readonly vendor: 'posthog';
241
241
  }, {
242
+ readonly consentCategory: 'measurement';
243
+ readonly docsSlug: 'promptwatch';
244
+ readonly hint: 'AI traffic analytics';
245
+ readonly integrationCategory: 'analytics';
242
246
  readonly key: 'promptwatch';
243
- readonly vendor: 'promptwatch';
244
247
  readonly label: 'Promptwatch';
245
- readonly hint: 'AI traffic analytics';
246
- readonly docsSlug: 'promptwatch';
247
248
  readonly packageSubpath: 'promptwatch';
248
- readonly integrationCategory: 'analytics';
249
- readonly consentCategory: 'measurement';
249
+ readonly vendor: 'promptwatch';
250
250
  }, {
251
+ readonly consentCategory: 'measurement';
252
+ readonly docsSlug: 'pirsch';
253
+ readonly hint: 'Privacy-friendly cookieless analytics';
254
+ readonly integrationCategory: 'analytics';
251
255
  readonly key: 'pirsch';
252
- readonly vendor: 'pirsch';
253
256
  readonly label: 'Pirsch';
254
- readonly hint: 'Privacy-friendly cookieless analytics';
255
- readonly docsSlug: 'pirsch';
256
257
  readonly packageSubpath: 'pirsch';
257
- readonly integrationCategory: 'analytics';
258
- readonly consentCategory: 'measurement';
258
+ readonly vendor: 'pirsch';
259
259
  }, {
260
+ readonly consentCategory: 'measurement';
261
+ readonly docsSlug: 'segment';
262
+ readonly hint: 'Customer data platform';
263
+ readonly integrationCategory: 'analytics';
260
264
  readonly key: 'segment';
261
- readonly vendor: 'segment';
262
265
  readonly label: 'Segment';
263
- readonly hint: 'Customer data platform';
264
- readonly docsSlug: 'segment';
265
266
  readonly packageSubpath: 'segment';
266
- readonly integrationCategory: 'analytics';
267
- readonly consentCategory: 'measurement';
267
+ readonly vendor: 'segment';
268
268
  }, {
269
+ readonly consentCategory: 'measurement';
270
+ readonly docsSlug: 'rybbit-analytics';
271
+ readonly hint: 'Privacy-friendly web analytics';
272
+ readonly integrationCategory: 'analytics';
269
273
  readonly key: 'rybbitAnalytics';
270
- readonly vendor: 'rybbit-analytics';
271
274
  readonly label: 'Rybbit Analytics';
272
- readonly hint: 'Privacy-friendly web analytics';
273
- readonly docsSlug: 'rybbit-analytics';
274
275
  readonly packageSubpath: 'rybbit-analytics';
275
- readonly integrationCategory: 'analytics';
276
- readonly consentCategory: 'measurement';
276
+ readonly vendor: 'rybbit-analytics';
277
277
  }, {
278
+ readonly consentCategory: 'measurement';
279
+ readonly docsSlug: 'plausible-analytics';
280
+ readonly hint: 'Privacy-friendly cookieless analytics';
281
+ readonly integrationCategory: 'analytics';
278
282
  readonly key: 'plausibleAnalytics';
279
- readonly vendor: 'plausible-analytics';
280
283
  readonly label: 'Plausible Analytics';
281
- readonly hint: 'Privacy-friendly cookieless analytics';
282
- readonly docsSlug: 'plausible-analytics';
283
284
  readonly packageSubpath: 'plausible-analytics';
284
- readonly integrationCategory: 'analytics';
285
- readonly consentCategory: 'measurement';
285
+ readonly vendor: 'plausible-analytics';
286
286
  }, {
287
+ readonly consentCategory: 'measurement';
288
+ readonly docsSlug: 'umami-analytics';
289
+ readonly hint: 'Open-source cookieless analytics';
290
+ readonly integrationCategory: 'analytics';
287
291
  readonly key: 'umamiAnalytics';
288
- readonly vendor: 'umami-analytics';
289
292
  readonly label: 'Umami Analytics';
290
- readonly hint: 'Open-source cookieless analytics';
291
- readonly docsSlug: 'umami-analytics';
292
293
  readonly packageSubpath: 'umami-analytics';
293
- readonly integrationCategory: 'analytics';
294
- readonly consentCategory: 'measurement';
294
+ readonly vendor: 'umami-analytics';
295
295
  }, {
296
+ readonly consentCategory: 'measurement';
297
+ readonly docsSlug: 'vercel-analytics';
298
+ readonly hint: 'Vercel web analytics';
299
+ readonly integrationCategory: 'analytics';
296
300
  readonly key: 'vercelAnalytics';
297
- readonly vendor: 'vercel-analytics';
298
301
  readonly label: 'Vercel Analytics';
299
- readonly hint: 'Vercel web analytics';
300
- readonly docsSlug: 'vercel-analytics';
301
302
  readonly packageSubpath: 'vercel-analytics';
302
- readonly integrationCategory: 'analytics';
303
- readonly consentCategory: 'measurement';
303
+ readonly vendor: 'vercel-analytics';
304
304
  }, {
305
+ readonly consentCategory: 'functionality';
306
+ readonly docsSlug: 'crisp';
307
+ readonly hint: 'Live chat widget';
308
+ readonly integrationCategory: 'functional';
305
309
  readonly key: 'crisp';
306
- readonly vendor: 'crisp';
307
310
  readonly label: 'Crisp';
308
- readonly hint: 'Live chat widget';
309
- readonly docsSlug: 'crisp';
310
311
  readonly packageSubpath: 'crisp';
311
- readonly integrationCategory: 'functional';
312
- readonly consentCategory: 'functionality';
312
+ readonly vendor: 'crisp';
313
313
  }, {
314
+ readonly consentCategory: 'functionality';
315
+ readonly docsSlug: 'intercom';
316
+ readonly hint: 'Messenger and live chat widget';
317
+ readonly integrationCategory: 'functional';
314
318
  readonly key: 'intercom';
315
- readonly vendor: 'intercom';
316
319
  readonly label: 'Intercom';
317
- readonly hint: 'Messenger and live chat widget';
318
- readonly docsSlug: 'intercom';
319
320
  readonly packageSubpath: 'intercom';
320
- readonly integrationCategory: 'functional';
321
- readonly consentCategory: 'functionality';
321
+ readonly vendor: 'intercom';
322
322
  }, {
323
+ readonly consentCategory: 'marketing';
324
+ readonly docsSlug: 'meta-pixel';
325
+ readonly hint: 'Facebook/Instagram tracking';
326
+ readonly integrationCategory: 'ads-and-pixels';
323
327
  readonly key: 'metaPixel';
324
- readonly vendor: 'meta-pixel';
325
328
  readonly label: 'Meta Pixel';
326
- readonly hint: 'Facebook/Instagram tracking';
327
- readonly docsSlug: 'meta-pixel';
328
329
  readonly packageSubpath: 'meta-pixel';
329
- readonly integrationCategory: 'ads-and-pixels';
330
+ readonly vendor: 'meta-pixel';
331
+ }, {
330
332
  readonly consentCategory: 'marketing';
333
+ readonly docsSlug: 'openai-pixel';
334
+ readonly hint: 'ChatGPT Ads conversion measurement';
335
+ readonly integrationCategory: 'ads-and-pixels';
336
+ readonly key: 'openaiPixel';
337
+ readonly label: 'OpenAI Pixel (ChatGPT Ads)';
338
+ readonly packageSubpath: 'openai-pixel';
339
+ readonly vendor: 'openai-pixel';
331
340
  }, {
341
+ readonly consentCategory: 'marketing';
342
+ readonly docsSlug: 'reddit-pixel';
343
+ readonly hint: 'Reddit ads tracking';
344
+ readonly integrationCategory: 'ads-and-pixels';
332
345
  readonly key: 'redditPixel';
333
- readonly vendor: 'reddit-pixel';
334
346
  readonly label: 'Reddit Pixel';
335
- readonly hint: 'Reddit ads tracking';
336
- readonly docsSlug: 'reddit-pixel';
337
347
  readonly packageSubpath: 'reddit-pixel';
338
- readonly integrationCategory: 'ads-and-pixels';
339
- readonly consentCategory: 'marketing';
348
+ readonly vendor: 'reddit-pixel';
340
349
  }, {
350
+ readonly consentCategory: 'marketing';
351
+ readonly docsSlug: 'tiktok-pixel';
352
+ readonly hint: 'TikTok ads tracking';
353
+ readonly integrationCategory: 'ads-and-pixels';
341
354
  readonly key: 'tiktokPixel';
342
- readonly vendor: 'tiktok-pixel';
343
355
  readonly label: 'TikTok Pixel';
344
- readonly hint: 'TikTok ads tracking';
345
- readonly docsSlug: 'tiktok-pixel';
346
356
  readonly packageSubpath: 'tiktok-pixel';
347
- readonly integrationCategory: 'ads-and-pixels';
348
- readonly consentCategory: 'marketing';
357
+ readonly vendor: 'tiktok-pixel';
349
358
  }, {
359
+ readonly consentCategory: 'marketing';
360
+ readonly docsSlug: 'linkedin-insights';
361
+ readonly hint: 'LinkedIn conversion tracking';
362
+ readonly integrationCategory: 'ads-and-pixels';
350
363
  readonly key: 'linkedinInsights';
351
- readonly vendor: 'linkedin-insights';
352
364
  readonly label: 'LinkedIn Insight Tag';
353
- readonly hint: 'LinkedIn conversion tracking';
354
- readonly docsSlug: 'linkedin-insights';
355
365
  readonly packageSubpath: 'linkedin-insights';
356
- readonly integrationCategory: 'ads-and-pixels';
357
- readonly consentCategory: 'marketing';
366
+ readonly vendor: 'linkedin-insights';
358
367
  }, {
368
+ readonly consentCategory: 'marketing';
369
+ readonly docsSlug: 'microsoft-uet';
370
+ readonly hint: 'Bing Ads tracking';
371
+ readonly integrationCategory: 'ads-and-pixels';
359
372
  readonly key: 'microsoftUet';
360
- readonly vendor: 'microsoft-uet';
361
373
  readonly label: 'Microsoft UET';
362
- readonly hint: 'Bing Ads tracking';
363
- readonly docsSlug: 'microsoft-uet';
364
374
  readonly packageSubpath: 'microsoft-uet';
365
- readonly integrationCategory: 'ads-and-pixels';
366
- readonly consentCategory: 'marketing';
375
+ readonly vendor: 'microsoft-uet';
367
376
  }, {
377
+ readonly consentCategory: 'marketing';
378
+ readonly docsSlug: 'snapchat-pixel';
379
+ readonly hint: 'Snapchat ads tracking';
380
+ readonly integrationCategory: 'ads-and-pixels';
368
381
  readonly key: 'snapchatPixel';
369
- readonly vendor: 'snapchat-pixel';
370
382
  readonly label: 'Snapchat Pixel';
371
- readonly hint: 'Snapchat ads tracking';
372
- readonly docsSlug: 'snapchat-pixel';
373
383
  readonly packageSubpath: 'snapchat-pixel';
374
- readonly integrationCategory: 'ads-and-pixels';
375
- readonly consentCategory: 'marketing';
384
+ readonly vendor: 'snapchat-pixel';
376
385
  }, {
386
+ readonly consentCategory: 'marketing';
387
+ readonly docsSlug: 'x-pixel';
388
+ readonly hint: 'X/Twitter conversion tracking';
389
+ readonly integrationCategory: 'ads-and-pixels';
377
390
  readonly key: 'xPixel';
378
- readonly vendor: 'x-pixel';
379
391
  readonly label: 'X (Twitter) Pixel';
380
- readonly hint: 'X/Twitter conversion tracking';
381
- readonly docsSlug: 'x-pixel';
382
392
  readonly packageSubpath: 'x-pixel';
383
- readonly integrationCategory: 'ads-and-pixels';
384
- readonly consentCategory: 'marketing';
393
+ readonly vendor: 'x-pixel';
385
394
  }];
386
395
  /**
387
396
  * Concrete registry entry type inferred from `builtInScriptIntegrations`.
@@ -400,7 +409,7 @@ export type BuiltInScriptIntegrationSubpath = BuiltInScriptIntegration['packageS
400
409
  *
401
410
  * @param key - Stable integration key.
402
411
  * @returns The matching built-in integration entry.
403
- * @throws `Error("Unknown built-in script integration: <key>")` when the key is
412
+ * @throws {Error}("Unknown built-in script integration: <key>")` when the key is
404
413
  * not present. Catch this when accepting untrusted or user-provided keys.
405
414
  *
406
415
  * @example
@@ -409,7 +418,7 @@ export type BuiltInScriptIntegrationSubpath = BuiltInScriptIntegration['packageS
409
418
  * console.log(integration.packageSubpath); // "meta-pixel"
410
419
  * ```
411
420
  */
412
- export declare function getBuiltInScriptIntegration(key: BuiltInScriptIntegrationKey): BuiltInScriptIntegration;
421
+ export declare const getBuiltInScriptIntegration: (key: BuiltInScriptIntegrationKey) => BuiltInScriptIntegration;
413
422
  /**
414
423
  * Finds a built-in integration by its public package subpath.
415
424
  *
@@ -422,7 +431,7 @@ export declare function getBuiltInScriptIntegration(key: BuiltInScriptIntegratio
422
431
  * console.log(integration?.label); // "Meta Pixel"
423
432
  * ```
424
433
  */
425
- export declare function getBuiltInScriptIntegrationBySubpath(subpath: string): BuiltInScriptIntegration | undefined;
434
+ export declare const getBuiltInScriptIntegrationBySubpath: (subpath: string) => BuiltInScriptIntegration | undefined;
426
435
  /**
427
436
  * Finds a built-in integration by the emitted script vendor id.
428
437
  *
@@ -437,4 +446,4 @@ export declare function getBuiltInScriptIntegrationBySubpath(subpath: string): B
437
446
  * console.log(integration?.label); // "Google Tag Manager"
438
447
  * ```
439
448
  */
440
- export declare function getBuiltInScriptIntegrationByVendor(vendor: string): BuiltInScriptIntegration | undefined;
449
+ export declare const getBuiltInScriptIntegrationByVendor: (vendor: string) => BuiltInScriptIntegration | undefined;
@@ -1,4 +1,4 @@
1
- import type { Script } from 'c15t';
1
+ import type { Script } from '@c15t/core';
2
2
  import type { VendorManifest } from './types';
3
3
  /**
4
4
  * Compiles a `VendorManifest` + config into a `Script` object.
@@ -6,4 +6,4 @@ import type { VendorManifest } from './types';
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;
@@ -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;