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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/AGENTS.md +129 -59
  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 -137
  13. package/dist/engine/compile.js +2 -89
  14. package/dist/engine/runtime.js +2 -448
  15. package/dist/events.js +2 -0
  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 -392
  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 -0
  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 -66
  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 -0
  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 -56
  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 -0
  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 -59
  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 -0
  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 -458
  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 -0
  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 -93
  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 -0
  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 -158
  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 -0
  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 -94
  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 -59
  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/concepts/consent-state.md +357 -0
  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 -33
  207. package/docs/customization/recipes.md +839 -47
  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 +166 -36
  212. package/docs/customization/translations.md +61 -3
  213. package/docs/frameworks/astro/embeds.md +160 -0
  214. package/docs/frameworks/astro/network-blocker.md +86 -0
  215. package/docs/frameworks/astro/scripts.md +146 -0
  216. package/docs/frameworks/html/embeds.md +142 -0
  217. package/docs/frameworks/html/network-blocker.md +105 -0
  218. package/docs/frameworks/html/scripts.md +164 -0
  219. package/docs/frameworks/javascript/scripts.md +119 -0
  220. package/docs/frameworks/next/embeds.md +90 -0
  221. package/docs/frameworks/next/network-blocker.md +153 -0
  222. package/docs/frameworks/next/scripts.md +196 -0
  223. package/docs/frameworks/nuxt/embeds.md +81 -0
  224. package/docs/frameworks/nuxt/network-blocker.md +97 -0
  225. package/docs/frameworks/nuxt/scripts.md +89 -0
  226. package/docs/frameworks/react/embeds.md +89 -0
  227. package/docs/frameworks/react/network-blocker.md +140 -0
  228. package/docs/frameworks/react/scripts.md +115 -0
  229. package/docs/frameworks/svelte/embeds.md +96 -0
  230. package/docs/frameworks/svelte/network-blocker.md +141 -0
  231. package/docs/frameworks/svelte/scripts.md +137 -0
  232. package/docs/frameworks/sveltekit/embeds.md +103 -0
  233. package/docs/frameworks/sveltekit/network-blocker.md +149 -0
  234. package/docs/frameworks/sveltekit/scripts.md +141 -0
  235. package/docs/frameworks/tanstack-start/embeds.md +96 -0
  236. package/docs/frameworks/tanstack-start/network-blocker.md +145 -0
  237. package/docs/frameworks/tanstack-start/scripts.md +103 -0
  238. package/docs/frameworks/vue/embeds.md +84 -0
  239. package/docs/frameworks/vue/network-blocker.md +99 -0
  240. package/docs/frameworks/vue/scripts.md +93 -0
  241. package/docs/guides/banner-experiments.md +654 -0
  242. package/docs/guides/troubleshooting.md +120 -47
  243. package/docs/guides/verify-consent.md +81 -49
  244. package/docs/integrations/adobe-analytics.md +168 -160
  245. package/docs/integrations/ahrefs-analytics.md +153 -155
  246. package/docs/integrations/amplitude.md +163 -157
  247. package/docs/integrations/building-integrations.md +136 -37
  248. package/docs/integrations/clearbit.md +155 -155
  249. package/docs/integrations/cloudflare-web-analytics.md +157 -157
  250. package/docs/integrations/cloudflare-zaraz.md +210 -262
  251. package/docs/integrations/crisp.md +165 -159
  252. package/docs/integrations/databuddy.md +158 -174
  253. package/docs/integrations/fathom-analytics.md +159 -157
  254. package/docs/integrations/front-chat.md +322 -0
  255. package/docs/integrations/google-maps.md +119 -84
  256. package/docs/integrations/google-tag-manager.md +179 -164
  257. package/docs/integrations/google-tag.md +164 -161
  258. package/docs/integrations/heap.md +164 -156
  259. package/docs/integrations/hightouch.md +162 -158
  260. package/docs/integrations/hotjar.md +160 -156
  261. package/docs/integrations/intercom.md +184 -154
  262. package/docs/integrations/klaviyo.md +486 -0
  263. package/docs/integrations/linkedin-insights.md +175 -151
  264. package/docs/integrations/logrocket.md +161 -157
  265. package/docs/integrations/matomo-analytics.md +189 -179
  266. package/docs/integrations/meta-pixel.md +189 -151
  267. package/docs/integrations/microsoft-clarity.md +164 -156
  268. package/docs/integrations/microsoft-uet.md +149 -155
  269. package/docs/integrations/mixpanel-analytics.md +156 -161
  270. package/docs/integrations/one-dollar-stats.md +306 -0
  271. package/docs/integrations/openai-pixel.md +205 -302
  272. package/docs/integrations/overview.md +143 -83
  273. package/docs/integrations/pinterest-tag.md +329 -0
  274. package/docs/integrations/pirsch.md +170 -160
  275. package/docs/integrations/plausible-analytics.md +173 -159
  276. package/docs/integrations/posthog.md +227 -242
  277. package/docs/integrations/promptwatch.md +155 -155
  278. package/docs/integrations/reddit-pixel.md +186 -158
  279. package/docs/integrations/rudderstack.md +202 -187
  280. package/docs/integrations/rybbit-analytics.md +172 -161
  281. package/docs/integrations/segment.md +183 -155
  282. package/docs/integrations/snapchat-pixel.md +187 -157
  283. package/docs/integrations/tiktok-pixel.md +172 -151
  284. package/docs/integrations/umami-analytics.md +164 -159
  285. package/docs/integrations/vercel-analytics.md +167 -158
  286. package/docs/integrations/x-pixel.md +177 -151
  287. package/docs/integrations/youtube.md +122 -87
  288. package/docs/upgrade-v3.md +490 -354
  289. package/package.json +12 -236
  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 -94
  295. package/docs/frameworks/next/script-loader.md +0 -210
  296. package/docs/frameworks/react/script-loader.md +0 -63
  297. package/docs/guides/consent-state.md +0 -60
  298. package/docs/guides/deployment-modes.md +0 -75
  299. package/docs/integrations/clear-on-revocation.md +0 -167
  300. package/docs/integrations/granular-consent.md +0 -208
@@ -1,48 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- const xPixelManifest = {
4
- ...vendorManifestContract,
5
- bootstrap: [
6
- {
7
- dispatchProperty: 'exe',
8
- ifUndefined: true,
9
- name: 'twq',
10
- properties: {
11
- version: '1.1'
12
- },
13
- queue: {
14
- property: 'queue'
15
- },
16
- type: 'defineStubFunction'
17
- }
18
- ],
19
- category: 'marketing',
20
- install: [
21
- {
22
- args: [
23
- 'config',
24
- '{{pixelId}}'
25
- ],
26
- global: 'twq',
27
- type: 'callGlobal'
28
- },
29
- {
30
- async: true,
31
- src: "{{scriptSrc}}",
32
- type: 'loadScript'
33
- }
34
- ],
35
- vendor: 'x-pixel'
36
- };
37
- const x_pixel_xPixel = function({ pixelId, scriptSrc }) {
38
- const resolved = resolveManifest(xPixelManifest, {
39
- pixelId,
40
- scriptSrc: scriptSrc ?? 'https://static.ads-twitter.com/uwt.js'
41
- });
42
- return resolved;
43
- };
44
- const xPixelEvent = (eventId, metadata)=>{
45
- if ("u" < typeof window || 'function' != typeof window.twq) throw new Error('X Pixel (twq) is not loaded. Ensure marketing consent is granted before calling xPixelEvent.');
46
- window.twq('event', eventId, metadata);
47
- };
48
- export { xPixelEvent, xPixelManifest, x_pixel_xPixel as xPixel };
1
+ /** @deprecated Use @c15t/integrations/vendors/ads-and-pixels/x-pixel. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/ads-and-pixels/x-pixel';
@@ -1,49 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- const adobe_analytics_validateAdobeAnalyticsScriptUrl = function(scriptUrl) {
4
- const trimmed = scriptUrl.trim();
5
- if (0 === trimmed.length) throw new Error("adobeAnalytics: invalid scriptUrl - must be a non-empty https URL from your Adobe Data Collection embed code");
6
- let parsed;
7
- try {
8
- parsed = new URL(trimmed);
9
- } catch {
10
- throw new Error("adobeAnalytics: invalid scriptUrl - must be a valid https URL from your Adobe Data Collection embed code");
11
- }
12
- if ('https:' !== parsed.protocol) throw new Error("adobeAnalytics: invalid scriptUrl - must use https: from your Adobe Data Collection embed code");
13
- return trimmed;
14
- };
15
- const adobe_analytics_createAdobeAnalyticsManifest = function(options) {
16
- const install = [];
17
- if (options.seedAdobeDataLayer) install.push({
18
- ifUndefined: true,
19
- name: 'adobeDataLayer',
20
- type: 'setGlobal',
21
- value: []
22
- });
23
- install.push({
24
- async: options.async,
25
- src: "{{scriptUrl}}",
26
- type: 'loadScript'
27
- });
28
- return {
29
- ...vendorManifestContract,
30
- category: 'measurement',
31
- install,
32
- vendor: 'adobe-analytics'
33
- };
34
- };
35
- const adobeAnalyticsManifest = adobe_analytics_createAdobeAnalyticsManifest({
36
- async: true,
37
- seedAdobeDataLayer: true
38
- });
39
- const adobe_analytics_adobeAnalytics = function(options) {
40
- const scriptUrl = adobe_analytics_validateAdobeAnalyticsScriptUrl(options.scriptUrl);
41
- const manifest = adobe_analytics_createAdobeAnalyticsManifest({
42
- async: options.async ?? true,
43
- seedAdobeDataLayer: options.seedAdobeDataLayer ?? true
44
- });
45
- return resolveManifest(manifest, {
46
- scriptUrl
47
- });
48
- };
49
- export { adobeAnalyticsManifest, adobe_analytics_adobeAnalytics as adobeAnalytics };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/adobe-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/adobe-analytics';
@@ -1,27 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { resolveScriptUrl } from "../_shared/script-url.js";
4
- const ahrefsAnalyticsManifest = {
5
- ...vendorManifestContract,
6
- category: 'measurement',
7
- install: [
8
- {
9
- async: true,
10
- attributes: {
11
- 'data-key': '{{key}}'
12
- },
13
- src: "{{scriptUrl}}",
14
- type: 'loadScript'
15
- }
16
- ],
17
- vendor: 'ahrefs-analytics'
18
- };
19
- const ahrefs_analytics_ahrefsAnalytics = function(options) {
20
- const key = 'string' == typeof options.key ? options.key.trim() : '';
21
- if (0 === key.length) throw new Error('ahrefsAnalytics: missing or invalid key');
22
- return resolveManifest(ahrefsAnalyticsManifest, {
23
- key,
24
- scriptUrl: resolveScriptUrl(options.scriptUrl, 'https://analytics.ahrefs.com/analytics.js')
25
- });
26
- };
27
- export { ahrefsAnalyticsManifest, ahrefs_analytics_ahrefsAnalytics as ahrefsAnalytics };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/ahrefs-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/ahrefs-analytics';
@@ -1,134 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { resolveScriptUrl, trimToUndefined } from "../_shared/script-url.js";
4
- const DEFAULT_AMPLITUDE_BROWSER_SDK_VERSION = '2.44.4';
5
- const DEFAULT_AMPLITUDE_SCRIPT_URL = `https://cdn.amplitude.com/libs/analytics-browser-${DEFAULT_AMPLITUDE_BROWSER_SDK_VERSION}-min.js.gz`;
6
- const AMPLITUDE_PROMISE_QUEUE_METHODS = [
7
- 'init',
8
- 'track',
9
- 'identify',
10
- 'flush'
11
- ];
12
- const AMPLITUDE_SYNC_QUEUE_METHODS = [
13
- 'setUserId',
14
- 'setOptOut'
15
- ];
16
- const AMPLITUDE_QUEUE_METHODS = [
17
- ...AMPLITUDE_PROMISE_QUEUE_METHODS,
18
- ...AMPLITUDE_SYNC_QUEUE_METHODS
19
- ];
20
- const AMPLITUDE_IDENTIFY_METHODS = [
21
- 'set',
22
- 'setOnce',
23
- 'add',
24
- 'append',
25
- 'prepend',
26
- 'preInsert',
27
- 'postInsert',
28
- 'remove',
29
- 'unset',
30
- 'clearAll',
31
- 'getUserProperties'
32
- ];
33
- const amplitudeManifest = {
34
- ...vendorManifestContract,
35
- category: 'measurement',
36
- install: [
37
- {
38
- ifUndefined: true,
39
- name: 'amplitude',
40
- type: 'setGlobal',
41
- value: {
42
- _iq: {},
43
- _q: [],
44
- invoked: true
45
- }
46
- },
47
- {
48
- methods: [
49
- ...AMPLITUDE_IDENTIFY_METHODS
50
- ],
51
- name: 'Identify',
52
- queueProperty: '_q',
53
- target: 'amplitude',
54
- type: 'defineQueueClass'
55
- },
56
- {
57
- methods: [
58
- ...AMPLITUDE_PROMISE_QUEUE_METHODS
59
- ],
60
- queue: {
61
- property: '_q'
62
- },
63
- queueFormat: 'wrappedMethodCall',
64
- target: 'amplitude',
65
- type: 'defineQueueMethods'
66
- },
67
- {
68
- type: 'defineQueueMethods',
69
- target: 'amplitude',
70
- queue: {
71
- property: '_q'
72
- },
73
- queueFormat: 'voidMethodCall',
74
- methods: [
75
- ...AMPLITUDE_SYNC_QUEUE_METHODS
76
- ]
77
- },
78
- {
79
- args: [
80
- '{{apiKey}}',
81
- '{{initOptions}}'
82
- ],
83
- global: 'amplitude',
84
- method: 'init',
85
- type: 'callGlobal'
86
- },
87
- {
88
- async: true,
89
- src: "{{scriptUrl}}",
90
- type: 'loadScript'
91
- }
92
- ],
93
- onConsentDenied: [
94
- {
95
- args: [
96
- true
97
- ],
98
- global: 'amplitude',
99
- method: 'setOptOut',
100
- type: 'callGlobal'
101
- }
102
- ],
103
- onConsentGranted: [
104
- {
105
- args: [
106
- false
107
- ],
108
- global: 'amplitude',
109
- method: 'setOptOut',
110
- type: 'callGlobal'
111
- }
112
- ],
113
- onLoadDenied: [
114
- {
115
- args: [
116
- true
117
- ],
118
- global: 'amplitude',
119
- method: 'setOptOut',
120
- type: 'callGlobal'
121
- }
122
- ],
123
- vendor: 'amplitude'
124
- };
125
- const amplitude_amplitude = function({ apiKey, initOptions = {}, scriptUrl }) {
126
- const normalizedApiKey = 'string' == typeof apiKey ? apiKey.trim() : '';
127
- if (0 === normalizedApiKey.length) throw new Error('amplitude: missing or invalid apiKey');
128
- return resolveManifest(amplitudeManifest, {
129
- apiKey: normalizedApiKey,
130
- initOptions,
131
- scriptUrl: resolveScriptUrl(trimToUndefined(scriptUrl), DEFAULT_AMPLITUDE_SCRIPT_URL)
132
- });
133
- };
134
- export { AMPLITUDE_IDENTIFY_METHODS, AMPLITUDE_PROMISE_QUEUE_METHODS, AMPLITUDE_QUEUE_METHODS, AMPLITUDE_SYNC_QUEUE_METHODS, DEFAULT_AMPLITUDE_BROWSER_SDK_VERSION, DEFAULT_AMPLITUDE_SCRIPT_URL, amplitudeManifest, amplitude_amplitude as amplitude };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/amplitude. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/amplitude';
@@ -1,28 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { resolveScriptUrl, trimToUndefined } from "../_shared/script-url.js";
4
- const clearbit_getDefaultClearbitScriptUrl = function(publishableKey) {
5
- return `https://tag.clearbitscripts.com/v1/${encodeURIComponent(publishableKey)}/tags.js`;
6
- };
7
- const clearbitManifest = {
8
- ...vendorManifestContract,
9
- category: 'marketing',
10
- install: [
11
- {
12
- attributes: {
13
- referrerpolicy: 'strict-origin-when-cross-origin'
14
- },
15
- src: "{{scriptUrl}}",
16
- type: 'loadScript'
17
- }
18
- ],
19
- vendor: 'clearbit'
20
- };
21
- const clearbit_clearbit = function(options) {
22
- const publishableKey = 'string' == typeof options.publishableKey ? options.publishableKey.trim() : '';
23
- if (0 === publishableKey.length) throw new Error('clearbit: invalid publishableKey - must be a non-empty string');
24
- return resolveManifest(clearbitManifest, {
25
- scriptUrl: resolveScriptUrl(trimToUndefined(options.scriptUrl), clearbit_getDefaultClearbitScriptUrl(publishableKey))
26
- });
27
- };
28
- export { clearbitManifest, clearbit_clearbit as clearbit };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/clearbit. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/clearbit';
@@ -1,32 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { resolveScriptUrl } from "../_shared/script-url.js";
4
- const cloudflareWebAnalyticsManifest = {
5
- ...vendorManifestContract,
6
- category: 'measurement',
7
- install: [
8
- {
9
- attributes: {
10
- 'data-cf-beacon': '{{beaconConfig}}'
11
- },
12
- defer: true,
13
- src: "{{scriptUrl}}",
14
- type: 'loadScript'
15
- }
16
- ],
17
- vendor: 'cloudflare-web-analytics'
18
- };
19
- const cloudflare_web_analytics_cloudflareWebAnalytics = function(options) {
20
- let token;
21
- token = 'string' == typeof options.token ? options.token.trim() : '';
22
- if (0 === token.length) throw new Error('cloudflareWebAnalytics: missing token');
23
- const resolved = resolveManifest(cloudflareWebAnalyticsManifest, {
24
- beaconConfig: JSON.stringify({
25
- spa: options.spa ?? true,
26
- token
27
- }),
28
- scriptUrl: resolveScriptUrl(options.scriptUrl, 'https://static.cloudflareinsights.com/beacon.min.js')
29
- });
30
- return resolved;
31
- };
32
- export { cloudflareWebAnalyticsManifest, cloudflare_web_analytics_cloudflareWebAnalytics as cloudflareWebAnalytics };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/cloudflare-web-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/cloudflare-web-analytics';
@@ -1,103 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- const databuddyManifest = {
4
- ...vendorManifestContract,
5
- alwaysLoad: true,
6
- category: 'measurement',
7
- install: [
8
- {
9
- async: true,
10
- attributes: {
11
- crossorigin: 'anonymous',
12
- 'data-api-url': '{{apiUrl}}',
13
- 'data-client-id': '{{clientId}}'
14
- },
15
- src: "{{scriptUrl}}",
16
- type: 'loadScript'
17
- }
18
- ],
19
- onBeforeLoadDenied: [
20
- {
21
- ifUndefined: true,
22
- name: 'databuddyConfig',
23
- type: 'setGlobal',
24
- value: '{{configWhenDenied}}'
25
- }
26
- ],
27
- onBeforeLoadGranted: [
28
- {
29
- ifUndefined: true,
30
- name: 'databuddyConfig',
31
- type: 'setGlobal',
32
- value: '{{configWhenGranted}}'
33
- }
34
- ],
35
- onConsentDenied: [
36
- {
37
- ifUndefined: false,
38
- name: 'databuddyConfig',
39
- type: 'setGlobal',
40
- value: '{{configWhenDenied}}'
41
- },
42
- {
43
- path: [
44
- 'databuddy',
45
- 'options',
46
- 'disabled'
47
- ],
48
- type: 'setGlobalPath',
49
- value: true
50
- }
51
- ],
52
- onConsentGranted: [
53
- {
54
- ifUndefined: false,
55
- name: 'databuddyConfig',
56
- type: 'setGlobal',
57
- value: '{{configWhenGranted}}'
58
- },
59
- {
60
- path: [
61
- 'databuddy',
62
- 'options',
63
- 'disabled'
64
- ],
65
- type: 'setGlobalPath',
66
- value: false
67
- }
68
- ],
69
- onLoadDenied: [
70
- {
71
- path: [
72
- 'databuddy',
73
- 'options',
74
- 'disabled'
75
- ],
76
- type: 'setGlobalPath',
77
- value: true
78
- }
79
- ],
80
- onLoadGranted: [
81
- {
82
- path: [
83
- 'databuddy',
84
- 'options',
85
- 'disabled'
86
- ],
87
- type: 'setGlobalPath',
88
- value: false
89
- }
90
- ],
91
- vendor: 'databuddy'
92
- };
93
- const databuddy_databuddy = function(options) {
94
- const resolved = resolveManifest(databuddyManifest, {
95
- apiUrl: options.apiUrl ?? 'https://basket.databuddy.cc',
96
- clientId: options.clientId,
97
- configWhenDenied: options.configWhenDenied,
98
- configWhenGranted: options.configWhenGranted,
99
- scriptUrl: options.scriptUrl ?? 'https://cdn.databuddy.cc/databuddy.js'
100
- });
101
- return resolved;
102
- };
103
- export { databuddyManifest, databuddy_databuddy as databuddy };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/databuddy. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/databuddy';
@@ -1,35 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { booleanDataAttribute } from "../_shared/attributes.js";
4
- import { resolveScriptUrl } from "../_shared/script-url.js";
5
- const fathomAnalyticsManifest = {
6
- ...vendorManifestContract,
7
- category: 'measurement',
8
- install: [
9
- {
10
- attributes: {
11
- 'data-auto': '{{autoAttribute}}',
12
- 'data-canonical': '{{canonicalAttribute}}',
13
- 'data-honor-dnt': '{{honorDntAttribute}}',
14
- 'data-site': '{{site}}',
15
- 'data-spa': '{{spa}}'
16
- },
17
- defer: true,
18
- src: "{{scriptUrl}}",
19
- type: 'loadScript'
20
- }
21
- ],
22
- vendor: 'fathom-analytics'
23
- };
24
- const fathom_analytics_fathomAnalytics = function(options) {
25
- const resolved = resolveManifest(fathomAnalyticsManifest, {
26
- autoAttribute: booleanDataAttribute(options.auto),
27
- canonicalAttribute: booleanDataAttribute(options.canonical),
28
- honorDntAttribute: booleanDataAttribute(options.honorDnt),
29
- scriptUrl: resolveScriptUrl(options.scriptUrl, "https://cdn.usefathom.com/script.js"),
30
- site: options.site,
31
- spa: options.spa
32
- });
33
- return resolved;
34
- };
35
- export { fathomAnalyticsManifest, fathom_analytics_fathomAnalytics as fathomAnalytics };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/fathom-analytics. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/fathom-analytics';
@@ -1,66 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { runtimeDateValue, vendorManifestContract } from "../../types.js";
3
- import { GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING, withOptionalConsentMapping } from "../_shared/google-consent.js";
4
- const gtagManifest = {
5
- ...vendorManifestContract,
6
- alwaysLoad: true,
7
- bootstrap: [
8
- {
9
- ifUndefined: true,
10
- name: 'dataLayer',
11
- type: 'setGlobal',
12
- value: []
13
- },
14
- {
15
- ifUndefined: true,
16
- name: 'gtag',
17
- queue: 'dataLayer',
18
- type: 'defineQueueFunction'
19
- }
20
- ],
21
- category: '{{category}}',
22
- consentMapping: GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING,
23
- consentSignal: 'gtag',
24
- install: [
25
- {
26
- args: [
27
- 'js',
28
- runtimeDateValue
29
- ],
30
- global: 'gtag',
31
- type: 'callGlobal'
32
- },
33
- {
34
- args: [
35
- 'config',
36
- '{{id}}'
37
- ],
38
- global: 'gtag',
39
- type: 'callGlobal'
40
- },
41
- {
42
- async: true,
43
- src: 'https://www.googletagmanager.com/gtag/js?id={{id}}',
44
- type: 'loadScript'
45
- }
46
- ],
47
- persistAfterConsentRevoked: true,
48
- vendor: 'gtag'
49
- };
50
- const google_tag_gtag = function({ id, category, consentMapping, script }) {
51
- const manifest = withOptionalConsentMapping(gtagManifest, consentMapping);
52
- const resolved = resolveManifest(manifest, {
53
- category,
54
- id
55
- });
56
- if (!script) return resolved;
57
- return {
58
- ...resolved,
59
- ...script,
60
- attributes: {
61
- ...resolved.attributes ?? {},
62
- ...script.attributes ?? {}
63
- }
64
- };
65
- };
66
- export { google_tag_gtag as gtag, gtagManifest };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/google-tag. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/google-tag';
@@ -1,134 +1,2 @@
1
- import { resolveManifest } from "../../resolve.js";
2
- import { vendorManifestContract } from "../../types.js";
3
- import { joinUrlPath, resolveScriptUrl, trimToUndefined } from "../_shared/script-url.js";
4
- const DEFAULT_HEAP_CONFIG_BASE_URL = 'https://cdn.us.heap-api.com/config';
5
- const HEAP_QUEUE_METHODS = [
6
- 'init',
7
- 'startTracking',
8
- 'stopTracking',
9
- 'track',
10
- 'resetIdentity',
11
- 'identify',
12
- 'identifyHashed',
13
- 'getSessionId',
14
- 'getUserId',
15
- 'getIdentity',
16
- 'addUserProperties',
17
- 'addEventProperties',
18
- 'removeEventProperty',
19
- 'clearEventProperties',
20
- 'addAccountProperties',
21
- 'addAdapter',
22
- 'addTransformer',
23
- 'addTransformerFn',
24
- 'onReady',
25
- 'addPageviewProperties',
26
- 'removePageviewProperty',
27
- 'clearPageviewProperties',
28
- 'trackPageview'
29
- ];
30
- const heapManifest = {
31
- ...vendorManifestContract,
32
- category: 'measurement',
33
- install: [
34
- {
35
- ifUndefined: true,
36
- name: 'heapReadyCb',
37
- type: 'setGlobal',
38
- value: []
39
- },
40
- {
41
- ifUndefined: true,
42
- name: 'heap',
43
- type: 'setGlobal',
44
- value: []
45
- },
46
- {
47
- path: [
48
- 'heap',
49
- 'envId'
50
- ],
51
- type: 'setGlobalPath',
52
- value: '{{envId}}'
53
- },
54
- {
55
- path: [
56
- 'heap',
57
- 'appid'
58
- ],
59
- type: 'setGlobalPath',
60
- value: '{{envId}}'
61
- },
62
- {
63
- path: [
64
- 'heap',
65
- 'clientConfig'
66
- ],
67
- type: 'setGlobalPath',
68
- value: '{{clientConfig}}'
69
- },
70
- {
71
- methods: [
72
- ...HEAP_QUEUE_METHODS
73
- ],
74
- queue: {
75
- global: 'heapReadyCb'
76
- },
77
- queueFormat: 'callback',
78
- target: 'heap',
79
- type: 'defineQueueMethods'
80
- },
81
- {
82
- async: true,
83
- src: "{{scriptUrl}}",
84
- type: 'loadScript'
85
- }
86
- ],
87
- vendor: 'heap'
88
- };
89
- const heap_validateEnvId = function(envId) {
90
- const normalized = 'string' == typeof envId ? envId.trim() : '';
91
- if (0 === normalized.length) throw new Error('heap: missing or invalid envId');
92
- return normalized;
93
- };
94
- const heap_isPlainRecord = function(value) {
95
- if (null === value || 'object' != typeof value || Array.isArray(value)) return false;
96
- const prototype = Object.getPrototypeOf(value);
97
- return prototype === Object.prototype || null === prototype;
98
- };
99
- const heap_toJsonValue = function toJsonValue(value, path) {
100
- if (null === value) return null;
101
- if ('string' == typeof value || 'boolean' == typeof value) return value;
102
- if ('number' == typeof value) {
103
- if (Number.isFinite(value)) return value;
104
- throw new TypeError(`heap: clientConfig${path ? `.${path}` : ''} must be a finite number`);
105
- }
106
- if (Array.isArray(value)) return value.map((item, index)=>toJsonValue(item, `${path}[${index}]`));
107
- if (heap_isPlainRecord(value)) {
108
- const result = {};
109
- for (const [key, nestedValue] of Object.entries(value))result[key] = toJsonValue(nestedValue, path ? `${path}.${key}` : key);
110
- return result;
111
- }
112
- throw new TypeError(`heap: clientConfig${path ? `.${path}` : ''} must be JSON-serializable`);
113
- };
114
- const heap_normalizeClientConfig = function(clientConfig) {
115
- const config = clientConfig ?? {};
116
- const normalized = heap_toJsonValue(config, '');
117
- if (!heap_isPlainRecord(normalized)) throw new TypeError('heap: clientConfig must be a plain object');
118
- return {
119
- ...normalized,
120
- shouldFetchServerConfig: false
121
- };
122
- };
123
- const heap_resolveHeapScriptUrl = function(envId, scriptUrl) {
124
- return resolveScriptUrl(trimToUndefined(scriptUrl), joinUrlPath(DEFAULT_HEAP_CONFIG_BASE_URL, `${envId}/heap_config.js`));
125
- };
126
- const heap_heap = function({ envId, clientConfig, scriptUrl }) {
127
- const normalizedEnvId = heap_validateEnvId(envId);
128
- return resolveManifest(heapManifest, {
129
- clientConfig: heap_normalizeClientConfig(clientConfig),
130
- envId: normalizedEnvId,
131
- scriptUrl: heap_resolveHeapScriptUrl(normalizedEnvId, scriptUrl)
132
- });
133
- };
134
- export { DEFAULT_HEAP_CONFIG_BASE_URL, HEAP_QUEUE_METHODS, heapManifest, heap_heap as heap };
1
+ /** @deprecated Use @c15t/integrations/vendors/analytics/heap. Compatibility ends in v4. */
2
+ export * from '@c15t/integrations/vendors/analytics/heap';