@modernconsent/vendors 0.0.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 (129) hide show
  1. package/LICENSE +21 -0
  2. package/dist/abtasty-3G4JRT5W.js +21 -0
  3. package/dist/abtasty-3G4JRT5W.js.map +1 -0
  4. package/dist/abtasty.d.ts +8 -0
  5. package/dist/abtasty.js +53 -0
  6. package/dist/abtasty.js.map +1 -0
  7. package/dist/amplitude-CFLVTHYV.js +25 -0
  8. package/dist/amplitude-CFLVTHYV.js.map +1 -0
  9. package/dist/amplitude.d.ts +8 -0
  10. package/dist/amplitude.js +57 -0
  11. package/dist/amplitude.js.map +1 -0
  12. package/dist/chunk-6JXWYPMF.js +28 -0
  13. package/dist/chunk-6JXWYPMF.js.map +1 -0
  14. package/dist/chunk-TBZUWLOP.js +35 -0
  15. package/dist/chunk-TBZUWLOP.js.map +1 -0
  16. package/dist/clarity-KJPNK3FJ.js +29 -0
  17. package/dist/clarity-KJPNK3FJ.js.map +1 -0
  18. package/dist/clarity.d.ts +13 -0
  19. package/dist/clarity.js +39 -0
  20. package/dist/clarity.js.map +1 -0
  21. package/dist/criteo-XKQPP2XY.js +23 -0
  22. package/dist/criteo-XKQPP2XY.js.map +1 -0
  23. package/dist/criteo.d.ts +13 -0
  24. package/dist/criteo.js +55 -0
  25. package/dist/criteo.js.map +1 -0
  26. package/dist/gcmads-LKOHK6MW.js +23 -0
  27. package/dist/gcmads-LKOHK6MW.js.map +1 -0
  28. package/dist/gcmads.d.ts +10 -0
  29. package/dist/gcmads.js +33 -0
  30. package/dist/gcmads.js.map +1 -0
  31. package/dist/google-analytics-SSTM7QMW.js +37 -0
  32. package/dist/google-analytics-SSTM7QMW.js.map +1 -0
  33. package/dist/google-analytics.d.ts +14 -0
  34. package/dist/google-analytics.js +69 -0
  35. package/dist/google-analytics.js.map +1 -0
  36. package/dist/googleads-XPXUKIXQ.js +72 -0
  37. package/dist/googleads-XPXUKIXQ.js.map +1 -0
  38. package/dist/googleads.d.ts +14 -0
  39. package/dist/googleads.js +104 -0
  40. package/dist/googleads.js.map +1 -0
  41. package/dist/gtm-WFI6ABNK.js +25 -0
  42. package/dist/gtm-WFI6ABNK.js.map +1 -0
  43. package/dist/gtm.d.ts +13 -0
  44. package/dist/gtm.js +57 -0
  45. package/dist/gtm.js.map +1 -0
  46. package/dist/hotjar-YCFHYSKB.js +38 -0
  47. package/dist/hotjar-YCFHYSKB.js.map +1 -0
  48. package/dist/hotjar.d.ts +8 -0
  49. package/dist/hotjar.js +48 -0
  50. package/dist/hotjar.js.map +1 -0
  51. package/dist/hubspot-TLVPT4LG.js +31 -0
  52. package/dist/hubspot-TLVPT4LG.js.map +1 -0
  53. package/dist/hubspot.d.ts +8 -0
  54. package/dist/hubspot.js +63 -0
  55. package/dist/hubspot.js.map +1 -0
  56. package/dist/index.d.ts +9 -0
  57. package/dist/index.js +46 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/intercom-4MUKJZOV.js +42 -0
  60. package/dist/intercom-4MUKJZOV.js.map +1 -0
  61. package/dist/intercom.d.ts +14 -0
  62. package/dist/intercom.js +52 -0
  63. package/dist/intercom.js.map +1 -0
  64. package/dist/linkedin-insight-EH5OICV7.js +40 -0
  65. package/dist/linkedin-insight-EH5OICV7.js.map +1 -0
  66. package/dist/linkedin-insight.d.ts +16 -0
  67. package/dist/linkedin-insight.js +50 -0
  68. package/dist/linkedin-insight.js.map +1 -0
  69. package/dist/matomo-H4JJCYJR.js +29 -0
  70. package/dist/matomo-H4JJCYJR.js.map +1 -0
  71. package/dist/matomo.d.ts +14 -0
  72. package/dist/matomo.js +39 -0
  73. package/dist/matomo.js.map +1 -0
  74. package/dist/meta-pixel-26NJ4GZJ.js +34 -0
  75. package/dist/meta-pixel-26NJ4GZJ.js.map +1 -0
  76. package/dist/meta-pixel.d.ts +19 -0
  77. package/dist/meta-pixel.js +66 -0
  78. package/dist/meta-pixel.js.map +1 -0
  79. package/dist/piano-analytics-CZXSQQNF.js +30 -0
  80. package/dist/piano-analytics-CZXSQQNF.js.map +1 -0
  81. package/dist/piano-analytics.d.ts +10 -0
  82. package/dist/piano-analytics.js +62 -0
  83. package/dist/piano-analytics.js.map +1 -0
  84. package/dist/pinterest-pixel-B7J3RCSI.js +31 -0
  85. package/dist/pinterest-pixel-B7J3RCSI.js.map +1 -0
  86. package/dist/pinterest-pixel.d.ts +16 -0
  87. package/dist/pinterest-pixel.js +63 -0
  88. package/dist/pinterest-pixel.js.map +1 -0
  89. package/dist/plausible-GI4L4SM4.js +25 -0
  90. package/dist/plausible-GI4L4SM4.js.map +1 -0
  91. package/dist/plausible.d.ts +11 -0
  92. package/dist/plausible.js +57 -0
  93. package/dist/plausible.js.map +1 -0
  94. package/dist/posthog-N2HG7XOO.js +32 -0
  95. package/dist/posthog-N2HG7XOO.js.map +1 -0
  96. package/dist/posthog.d.ts +9 -0
  97. package/dist/posthog.js +42 -0
  98. package/dist/posthog.js.map +1 -0
  99. package/dist/reddit-pixel-SKXRCFEF.js +34 -0
  100. package/dist/reddit-pixel-SKXRCFEF.js.map +1 -0
  101. package/dist/reddit-pixel.d.ts +16 -0
  102. package/dist/reddit-pixel.js +66 -0
  103. package/dist/reddit-pixel.js.map +1 -0
  104. package/dist/segment-GZJFC57W.js +66 -0
  105. package/dist/segment-GZJFC57W.js.map +1 -0
  106. package/dist/segment.d.ts +13 -0
  107. package/dist/segment.js +76 -0
  108. package/dist/segment.js.map +1 -0
  109. package/dist/sentry-UIBASRVZ.js +27 -0
  110. package/dist/sentry-UIBASRVZ.js.map +1 -0
  111. package/dist/sentry.d.ts +10 -0
  112. package/dist/sentry.js +59 -0
  113. package/dist/sentry.js.map +1 -0
  114. package/dist/smartsupp-I6XHQISS.js +27 -0
  115. package/dist/smartsupp-I6XHQISS.js.map +1 -0
  116. package/dist/smartsupp.d.ts +14 -0
  117. package/dist/smartsupp.js +37 -0
  118. package/dist/smartsupp.js.map +1 -0
  119. package/dist/snapchat-pixel-SYR3ZSSB.js +37 -0
  120. package/dist/snapchat-pixel-SYR3ZSSB.js.map +1 -0
  121. package/dist/snapchat-pixel.d.ts +15 -0
  122. package/dist/snapchat-pixel.js +47 -0
  123. package/dist/snapchat-pixel.js.map +1 -0
  124. package/dist/tiktok-pixel-FDGVKGOH.js +70 -0
  125. package/dist/tiktok-pixel-FDGVKGOH.js.map +1 -0
  126. package/dist/tiktok-pixel.d.ts +14 -0
  127. package/dist/tiktok-pixel.js +80 -0
  128. package/dist/tiktok-pixel.js.map +1 -0
  129. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/loader.ts","../src/utils/purposes.ts","../src/reddit-pixel.ts"],"names":[],"mappings":";AAAO,SAAS,UAAA,CACd,GAAA,EACA,QAAA,EACA,KAAA,GAAgC,EAAC,EAClB;AACf,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AAItC,IAAA,IAAI,QAAA,CAAS,aAAA,CAAc,CAAA,YAAA,EAAe,GAAG,IAAI,CAAA,EAAG;AAClD,MAAA,OAAA,EAAQ;AAER,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AAEf,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,MAAA,MAAA,CAAO,YAAA,CAAa,KAAK,KAAK,CAAA;AAAA,IAChC;AAEA,IAAA,MAAA,CAAO,SAAS,MAAM;AACpB,MAAA,OAAA,EAAQ;AACG,IACb,CAAA;AAEA,IAAA,MAAA,CAAO,UAAU,MAAM;AACrB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,GAAG,EAAE,CAAC,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,EAClC,CAAC,CAAA;AACH;;;ACjBO,IAAM,WAAA,GAAc;AAAA,EACzB,YAAA,EAAc;AAAA,IACZ,EAAA,EAAI,sBAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,EAAA,EAAI,sHAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;;;ACXA,IAAM,WAAA,GAAoC;AAAA,EACxC,IAAA,EAAM,cAAA;AAAA,EACN,QAAA,EAAU,cAAA;AAAA,EACV,WAAA,EAAa,iEAAA;AAAA,EACb,GAAG,WAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,WAAW,CAAA;AAAA,EACvB,IAAA,EAAM,CAAC,MAAA,KAAyB;AAC9B,IAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AAEtB,IAAA,IAAI,CAAC,OAAO,GAAA,EAAK;AACf,MAAA,MAAM,GAAA,GAAY,MAAA,CAAO,GAAA,GAAM,SAAA,GAAa,IAAA,EAAa;AACvD,QAAA,IAAI,IAAI,SAAA,EAAW;AACjB,UAAA,GAAA,CAAI,SAAA,CAAU,GAAG,IAAI,CAAA;AAAA,QACvB,CAAA,MAAO;AACL,UAAA,GAAA,CAAI,SAAA,CAAU,KAAK,IAAI,CAAA;AAAA,QACzB;AAAA,MACF,CAAA;AACA,MAAA,GAAA,CAAI,YAAY,EAAC;AAEjB,MAAA,UAAA,CAAW,2CAA2C,CAAA,CAAE,IAAA,CAAK,MAAM;AACjE,QAAA,MAAA,CAAO,GAAA,CAAI,MAAA,EAAQ,MAAA,CAAO,OAAO,CAAA;AACjC,QAAA,MAAA,CAAO,GAAA,CAAI,SAAS,WAAW,CAAA;AAAA,MACjC,CAAC,CAAA;AAAA,IACH;AAAA,EACF;AACF,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"reddit-pixel.js","sourcesContent":["export function loadScript(\n src: string,\n callback?: () => void,\n attrs: Record<string, string> = {},\n): Promise<void> {\n return new Promise((resolve, reject) => {\n /**\n * check if already loaded.\n */\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n resolve();\n callback?.();\n return;\n }\n\n const script = document.createElement('script');\n script.src = src;\n script.async = true;\n\n for (const [key, value] of Object.entries(attrs)) {\n script.setAttribute(key, value);\n }\n\n script.onload = () => {\n resolve();\n callback?.();\n };\n\n script.onerror = () => {\n reject(new Error(`Failed to load script: ${src}`));\n };\n document.head.appendChild(script);\n });\n}\n","/**\n * Shared purpose labels and descriptions for built-in vendors.\n * Imported by each vendor — inlined at build time by tsup (zero runtime overhead).\n */\n\nexport const PURPOSE_ANALYTICS = {\n purposeLabel: {\n fr: \"Analyse de session utilisateur et mesure d'audience\",\n en: 'User session analysis and audience measurement',\n },\n purposeDescription: {\n fr: \"Ces cookies nous permettent d'établir des statistiques et volumes de fréquentation et d'utilisation des éléments du site.\",\n en: 'These cookies allow us to compile statistics on site traffic and usage.',\n },\n} as const;\n\nexport const PURPOSE_ADS = {\n purposeLabel: {\n fr: 'Ciblage publicitaire',\n en: 'Advertising targeting',\n },\n purposeDescription: {\n fr: 'Ces cookies sont utilisés pour vous proposer des publicités personnalisées en fonction de votre navigation.',\n en: 'These cookies are used to deliver personalized ads based on your browsing behavior.',\n },\n} as const;\n\nexport const PURPOSE_SUPPORT = {\n purposeLabel: {\n fr: 'Support et assistance',\n en: 'Support and assistance',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent d'interagir avec notre service client et de bénéficier d'une assistance en direct.\",\n en: 'These cookies enable interaction with our customer support and provide live assistance.',\n },\n} as const;\n\nexport const PURPOSE_SOCIAL = {\n purposeLabel: {\n fr: 'Réseaux sociaux',\n en: 'Social media',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent de partager du contenu sur les réseaux sociaux et d'interagir avec des plateformes tierces.\",\n en: 'These cookies allow sharing content on social media and interacting with third-party platforms.',\n },\n} as const;\n","import type { Vendor } from '@modernconsent/core';\nimport { loadScript } from './utils/loader';\nimport { PURPOSE_ADS } from './utils/purposes';\n\ntype RedditConfig = {\n pixelId: string;\n};\n\ndeclare global {\n interface Window {\n rdt: ((...args: any[]) => void) & { sendEvent?: any; callQueue?: any[] };\n }\n}\n\nconst RedditPixel: Vendor<RedditConfig> = {\n name: 'Reddit Pixel',\n category: 'Publicité',\n description: 'Suivi des conversions et optimisation des campagnes Reddit Ads.',\n ...PURPOSE_ADS,\n requireConsent: true,\n artifacts: ['_rdt_uuid'],\n init: (config: RedditConfig) => {\n if (!config?.pixelId) return;\n\n if (!window.rdt) {\n const rdt: any = (window.rdt = function (...args: any[]) {\n if (rdt.sendEvent) {\n rdt.sendEvent(...args);\n } else {\n rdt.callQueue.push(args);\n }\n });\n rdt.callQueue = [];\n\n loadScript('https://www.redditstatic.com/ads/pixel.js').then(() => {\n window.rdt('init', config.pixelId);\n window.rdt('track', 'PageVisit');\n });\n }\n },\n};\n\nexport default RedditPixel;\n"]}
@@ -0,0 +1,66 @@
1
+ import { PURPOSE_ANALYTICS } from './chunk-TBZUWLOP.js';
2
+
3
+ // src/segment.ts
4
+ var Segment = {
5
+ name: "Segment",
6
+ category: "Analytics",
7
+ description: "Plateforme de donn\xE9es client (CDP) qui centralise et route les \xE9v\xE9nements vers vos outils.",
8
+ ...PURPOSE_ANALYTICS,
9
+ requireConsent: true,
10
+ artifacts: ["ajs_user_id", "ajs_anonymous_id", "ajs_group_id"],
11
+ init: (config) => {
12
+ if (!config?.writeKey) return;
13
+ const analytics = window.analytics = window.analytics || [];
14
+ if (analytics.initialize) return;
15
+ if (analytics.invoked) return;
16
+ analytics.invoked = true;
17
+ analytics.methods = [
18
+ "trackSubmit",
19
+ "trackClick",
20
+ "trackLink",
21
+ "trackForm",
22
+ "pageview",
23
+ "identify",
24
+ "reset",
25
+ "group",
26
+ "track",
27
+ "ready",
28
+ "alias",
29
+ "debug",
30
+ "page",
31
+ "screen",
32
+ "once",
33
+ "off",
34
+ "on",
35
+ "addSourceMiddleware",
36
+ "addIntegrationMiddleware",
37
+ "setAnonymousId",
38
+ "addDestinationMiddleware"
39
+ ];
40
+ analytics.factory = function(e) {
41
+ return function(...args) {
42
+ args.unshift(e);
43
+ analytics.push(args);
44
+ return analytics;
45
+ };
46
+ };
47
+ for (let i = 0; i < analytics.methods.length; i++) {
48
+ const key = analytics.methods[i];
49
+ analytics[key] = analytics.factory(key);
50
+ }
51
+ analytics.load = function(key) {
52
+ const script = document.createElement("script");
53
+ script.async = true;
54
+ script.src = `https://cdn.segment.com/analytics.js/v1/${key}/analytics.min.js`;
55
+ document.head.appendChild(script);
56
+ };
57
+ analytics.SNIPPET_VERSION = "5.2.1";
58
+ analytics.load(config.writeKey);
59
+ analytics.page();
60
+ }
61
+ };
62
+ var segment_default = Segment;
63
+
64
+ export { segment_default as default };
65
+ //# sourceMappingURL=segment-GZJFC57W.js.map
66
+ //# sourceMappingURL=segment-GZJFC57W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/segment.ts"],"names":[],"mappings":";;;AAaA,IAAM,OAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,SAAA;AAAA,EACN,QAAA,EAAU,WAAA;AAAA,EACV,WAAA,EACE,qGAAA;AAAA,EACF,GAAG,iBAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,aAAA,EAAe,kBAAA,EAAoB,cAAc,CAAA;AAAA,EAC7D,IAAA,EAAM,CAAC,MAAA,KAA0B;AAC/B,IAAA,IAAI,CAAC,QAAQ,QAAA,EAAU;AAEvB,IAAA,MAAM,SAAA,GAAkB,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,aAAa,EAAC;AAChE,IAAA,IAAI,UAAU,UAAA,EAAY;AAC1B,IAAA,IAAI,UAAU,OAAA,EAAS;AACvB,IAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AACpB,IAAA,SAAA,CAAU,OAAA,GAAU;AAAA,MAClB,aAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,qBAAA;AAAA,MACA,0BAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,SAAA,CAAU,OAAA,GAAU,SAAU,CAAA,EAAW;AACvC,MAAA,OAAO,YAAa,IAAA,EAAa;AAC/B,QAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AACd,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AACnB,QAAA,OAAO,SAAA;AAAA,MACT,CAAA;AAAA,IACF,CAAA;AACA,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACjD,MAAA,MAAM,GAAA,GAAM,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA;AAC/B,MAAA,SAAA,CAAU,GAAG,CAAA,GAAI,SAAA,CAAU,OAAA,CAAQ,GAAG,CAAA;AAAA,IACxC;AACA,IAAA,SAAA,CAAU,IAAA,GAAO,SAAU,GAAA,EAAa;AACtC,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,MAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AACf,MAAA,MAAA,CAAO,GAAA,GAAM,2CAA2C,GAAG,CAAA,iBAAA,CAAA;AAC3D,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,IAClC,CAAA;AACA,IAAA,SAAA,CAAU,eAAA,GAAkB,OAAA;AAC5B,IAAA,SAAA,CAAU,IAAA,CAAK,OAAO,QAAQ,CAAA;AAC9B,IAAA,SAAA,CAAU,IAAA,EAAK;AAAA,EACjB;AACF,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"segment-GZJFC57W.js","sourcesContent":["import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_ANALYTICS } from './utils/purposes';\n\ntype SegmentConfig = {\n writeKey: string;\n};\n\ndeclare global {\n interface Window {\n analytics: any;\n }\n}\n\nconst Segment: Vendor<SegmentConfig> = {\n name: 'Segment',\n category: 'Analytics',\n description:\n 'Plateforme de données client (CDP) qui centralise et route les événements vers vos outils.',\n ...PURPOSE_ANALYTICS,\n requireConsent: true,\n artifacts: ['ajs_user_id', 'ajs_anonymous_id', 'ajs_group_id'],\n init: (config: SegmentConfig) => {\n if (!config?.writeKey) return;\n\n const analytics: any = (window.analytics = window.analytics || []);\n if (analytics.initialize) return;\n if (analytics.invoked) return;\n analytics.invoked = true;\n analytics.methods = [\n 'trackSubmit',\n 'trackClick',\n 'trackLink',\n 'trackForm',\n 'pageview',\n 'identify',\n 'reset',\n 'group',\n 'track',\n 'ready',\n 'alias',\n 'debug',\n 'page',\n 'screen',\n 'once',\n 'off',\n 'on',\n 'addSourceMiddleware',\n 'addIntegrationMiddleware',\n 'setAnonymousId',\n 'addDestinationMiddleware',\n ];\n analytics.factory = function (e: string) {\n return function (...args: any[]) {\n args.unshift(e);\n analytics.push(args);\n return analytics;\n };\n };\n for (let i = 0; i < analytics.methods.length; i++) {\n const key = analytics.methods[i];\n analytics[key] = analytics.factory(key);\n }\n analytics.load = function (key: string) {\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://cdn.segment.com/analytics.js/v1/${key}/analytics.min.js`;\n document.head.appendChild(script);\n };\n analytics.SNIPPET_VERSION = '5.2.1';\n analytics.load(config.writeKey);\n analytics.page();\n },\n};\n\nexport default Segment;\n"]}
@@ -0,0 +1,13 @@
1
+ import { Vendor } from '@modernconsent/core';
2
+
3
+ type SegmentConfig = {
4
+ writeKey: string;
5
+ };
6
+ declare global {
7
+ interface Window {
8
+ analytics: any;
9
+ }
10
+ }
11
+ declare const Segment: Vendor<SegmentConfig>;
12
+
13
+ export { Segment as default };
@@ -0,0 +1,76 @@
1
+ // src/utils/purposes.ts
2
+ var PURPOSE_ANALYTICS = {
3
+ purposeLabel: {
4
+ fr: "Analyse de session utilisateur et mesure d'audience",
5
+ en: "User session analysis and audience measurement"
6
+ },
7
+ purposeDescription: {
8
+ fr: "Ces cookies nous permettent d'\xE9tablir des statistiques et volumes de fr\xE9quentation et d'utilisation des \xE9l\xE9ments du site.",
9
+ en: "These cookies allow us to compile statistics on site traffic and usage."
10
+ }
11
+ };
12
+
13
+ // src/segment.ts
14
+ var Segment = {
15
+ name: "Segment",
16
+ category: "Analytics",
17
+ description: "Plateforme de donn\xE9es client (CDP) qui centralise et route les \xE9v\xE9nements vers vos outils.",
18
+ ...PURPOSE_ANALYTICS,
19
+ requireConsent: true,
20
+ artifacts: ["ajs_user_id", "ajs_anonymous_id", "ajs_group_id"],
21
+ init: (config) => {
22
+ if (!config?.writeKey) return;
23
+ const analytics = window.analytics = window.analytics || [];
24
+ if (analytics.initialize) return;
25
+ if (analytics.invoked) return;
26
+ analytics.invoked = true;
27
+ analytics.methods = [
28
+ "trackSubmit",
29
+ "trackClick",
30
+ "trackLink",
31
+ "trackForm",
32
+ "pageview",
33
+ "identify",
34
+ "reset",
35
+ "group",
36
+ "track",
37
+ "ready",
38
+ "alias",
39
+ "debug",
40
+ "page",
41
+ "screen",
42
+ "once",
43
+ "off",
44
+ "on",
45
+ "addSourceMiddleware",
46
+ "addIntegrationMiddleware",
47
+ "setAnonymousId",
48
+ "addDestinationMiddleware"
49
+ ];
50
+ analytics.factory = function(e) {
51
+ return function(...args) {
52
+ args.unshift(e);
53
+ analytics.push(args);
54
+ return analytics;
55
+ };
56
+ };
57
+ for (let i = 0; i < analytics.methods.length; i++) {
58
+ const key = analytics.methods[i];
59
+ analytics[key] = analytics.factory(key);
60
+ }
61
+ analytics.load = function(key) {
62
+ const script = document.createElement("script");
63
+ script.async = true;
64
+ script.src = `https://cdn.segment.com/analytics.js/v1/${key}/analytics.min.js`;
65
+ document.head.appendChild(script);
66
+ };
67
+ analytics.SNIPPET_VERSION = "5.2.1";
68
+ analytics.load(config.writeKey);
69
+ analytics.page();
70
+ }
71
+ };
72
+ var segment_default = Segment;
73
+
74
+ export { segment_default as default };
75
+ //# sourceMappingURL=segment.js.map
76
+ //# sourceMappingURL=segment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/purposes.ts","../src/segment.ts"],"names":[],"mappings":";AAKO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,YAAA,EAAc;AAAA,IACZ,EAAA,EAAI,qDAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,EAAA,EAAI,uIAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;;;ACDA,IAAM,OAAA,GAAiC;AAAA,EACrC,IAAA,EAAM,SAAA;AAAA,EACN,QAAA,EAAU,WAAA;AAAA,EACV,WAAA,EACE,qGAAA;AAAA,EACF,GAAG,iBAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,aAAA,EAAe,kBAAA,EAAoB,cAAc,CAAA;AAAA,EAC7D,IAAA,EAAM,CAAC,MAAA,KAA0B;AAC/B,IAAA,IAAI,CAAC,QAAQ,QAAA,EAAU;AAEvB,IAAA,MAAM,SAAA,GAAkB,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,aAAa,EAAC;AAChE,IAAA,IAAI,UAAU,UAAA,EAAY;AAC1B,IAAA,IAAI,UAAU,OAAA,EAAS;AACvB,IAAA,SAAA,CAAU,OAAA,GAAU,IAAA;AACpB,IAAA,SAAA,CAAU,OAAA,GAAU;AAAA,MAClB,aAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,qBAAA;AAAA,MACA,0BAAA;AAAA,MACA,gBAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,SAAA,CAAU,OAAA,GAAU,SAAU,CAAA,EAAW;AACvC,MAAA,OAAO,YAAa,IAAA,EAAa;AAC/B,QAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AACd,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA;AACnB,QAAA,OAAO,SAAA;AAAA,MACT,CAAA;AAAA,IACF,CAAA;AACA,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AACjD,MAAA,MAAM,GAAA,GAAM,SAAA,CAAU,OAAA,CAAQ,CAAC,CAAA;AAC/B,MAAA,SAAA,CAAU,GAAG,CAAA,GAAI,SAAA,CAAU,OAAA,CAAQ,GAAG,CAAA;AAAA,IACxC;AACA,IAAA,SAAA,CAAU,IAAA,GAAO,SAAU,GAAA,EAAa;AACtC,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,MAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AACf,MAAA,MAAA,CAAO,GAAA,GAAM,2CAA2C,GAAG,CAAA,iBAAA,CAAA;AAC3D,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,IAClC,CAAA;AACA,IAAA,SAAA,CAAU,eAAA,GAAkB,OAAA;AAC5B,IAAA,SAAA,CAAU,IAAA,CAAK,OAAO,QAAQ,CAAA;AAC9B,IAAA,SAAA,CAAU,IAAA,EAAK;AAAA,EACjB;AACF,CAAA;AAEA,IAAO,eAAA,GAAQ","file":"segment.js","sourcesContent":["/**\n * Shared purpose labels and descriptions for built-in vendors.\n * Imported by each vendor — inlined at build time by tsup (zero runtime overhead).\n */\n\nexport const PURPOSE_ANALYTICS = {\n purposeLabel: {\n fr: \"Analyse de session utilisateur et mesure d'audience\",\n en: 'User session analysis and audience measurement',\n },\n purposeDescription: {\n fr: \"Ces cookies nous permettent d'établir des statistiques et volumes de fréquentation et d'utilisation des éléments du site.\",\n en: 'These cookies allow us to compile statistics on site traffic and usage.',\n },\n} as const;\n\nexport const PURPOSE_ADS = {\n purposeLabel: {\n fr: 'Ciblage publicitaire',\n en: 'Advertising targeting',\n },\n purposeDescription: {\n fr: 'Ces cookies sont utilisés pour vous proposer des publicités personnalisées en fonction de votre navigation.',\n en: 'These cookies are used to deliver personalized ads based on your browsing behavior.',\n },\n} as const;\n\nexport const PURPOSE_SUPPORT = {\n purposeLabel: {\n fr: 'Support et assistance',\n en: 'Support and assistance',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent d'interagir avec notre service client et de bénéficier d'une assistance en direct.\",\n en: 'These cookies enable interaction with our customer support and provide live assistance.',\n },\n} as const;\n\nexport const PURPOSE_SOCIAL = {\n purposeLabel: {\n fr: 'Réseaux sociaux',\n en: 'Social media',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent de partager du contenu sur les réseaux sociaux et d'interagir avec des plateformes tierces.\",\n en: 'These cookies allow sharing content on social media and interacting with third-party platforms.',\n },\n} as const;\n","import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_ANALYTICS } from './utils/purposes';\n\ntype SegmentConfig = {\n writeKey: string;\n};\n\ndeclare global {\n interface Window {\n analytics: any;\n }\n}\n\nconst Segment: Vendor<SegmentConfig> = {\n name: 'Segment',\n category: 'Analytics',\n description:\n 'Plateforme de données client (CDP) qui centralise et route les événements vers vos outils.',\n ...PURPOSE_ANALYTICS,\n requireConsent: true,\n artifacts: ['ajs_user_id', 'ajs_anonymous_id', 'ajs_group_id'],\n init: (config: SegmentConfig) => {\n if (!config?.writeKey) return;\n\n const analytics: any = (window.analytics = window.analytics || []);\n if (analytics.initialize) return;\n if (analytics.invoked) return;\n analytics.invoked = true;\n analytics.methods = [\n 'trackSubmit',\n 'trackClick',\n 'trackLink',\n 'trackForm',\n 'pageview',\n 'identify',\n 'reset',\n 'group',\n 'track',\n 'ready',\n 'alias',\n 'debug',\n 'page',\n 'screen',\n 'once',\n 'off',\n 'on',\n 'addSourceMiddleware',\n 'addIntegrationMiddleware',\n 'setAnonymousId',\n 'addDestinationMiddleware',\n ];\n analytics.factory = function (e: string) {\n return function (...args: any[]) {\n args.unshift(e);\n analytics.push(args);\n return analytics;\n };\n };\n for (let i = 0; i < analytics.methods.length; i++) {\n const key = analytics.methods[i];\n analytics[key] = analytics.factory(key);\n }\n analytics.load = function (key: string) {\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://cdn.segment.com/analytics.js/v1/${key}/analytics.min.js`;\n document.head.appendChild(script);\n };\n analytics.SNIPPET_VERSION = '5.2.1';\n analytics.load(config.writeKey);\n analytics.page();\n },\n};\n\nexport default Segment;\n"]}
@@ -0,0 +1,27 @@
1
+ import { loadScript } from './chunk-6JXWYPMF.js';
2
+ import { PURPOSE_ANALYTICS } from './chunk-TBZUWLOP.js';
3
+
4
+ // src/sentry.ts
5
+ var Sentry = {
6
+ name: "Sentry",
7
+ category: "Analytics",
8
+ description: "Surveillance des erreurs et suivi des performances applicatives.",
9
+ ...PURPOSE_ANALYTICS,
10
+ requireConsent: true,
11
+ init: (config) => {
12
+ if (!config?.dsn) return;
13
+ const version = config.version ?? "8";
14
+ loadScript(`https://browser.sentry-cdn.com/${version}/bundle.min.js`, void 0, {
15
+ crossorigin: "anonymous"
16
+ }).then(() => {
17
+ if (window.Sentry) {
18
+ window.Sentry.init({ dsn: config.dsn });
19
+ }
20
+ });
21
+ }
22
+ };
23
+ var sentry_default = Sentry;
24
+
25
+ export { sentry_default as default };
26
+ //# sourceMappingURL=sentry-UIBASRVZ.js.map
27
+ //# sourceMappingURL=sentry-UIBASRVZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/sentry.ts"],"names":[],"mappings":";;;;AAUA,IAAM,MAAA,GAA+B;AAAA,EACnC,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,EAAU,WAAA;AAAA,EACV,WAAA,EAAa,kEAAA;AAAA,EACb,GAAG,iBAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,IAAA,EAAM,CAAC,MAAA,KAAyB;AAC9B,IAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAElB,IAAA,MAAM,OAAA,GAAU,OAAO,OAAA,IAAW,GAAA;AAClC,IAAA,UAAA,CAAW,CAAA,+BAAA,EAAkC,OAAO,CAAA,cAAA,CAAA,EAAkB,MAAA,EAAW;AAAA,MAC/E,WAAA,EAAa;AAAA,KACd,CAAA,CAAE,IAAA,CAAK,MAAM;AACZ,MAAA,IAAK,OAAe,MAAA,EAAQ;AAC1B,QAAC,OAAe,MAAA,CAAO,IAAA,CAAK,EAAE,GAAA,EAAK,MAAA,CAAO,KAAK,CAAA;AAAA,MACjD;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"sentry-UIBASRVZ.js","sourcesContent":["import type { Vendor } from '@modernconsent/core';\nimport { loadScript } from './utils/loader';\nimport { PURPOSE_ANALYTICS } from './utils/purposes';\n\ntype SentryConfig = {\n dsn: string;\n /** Sentry JS SDK version (default: '8') */\n version?: string;\n};\n\nconst Sentry: Vendor<SentryConfig> = {\n name: 'Sentry',\n category: 'Analytics',\n description: 'Surveillance des erreurs et suivi des performances applicatives.',\n ...PURPOSE_ANALYTICS,\n requireConsent: true,\n init: (config: SentryConfig) => {\n if (!config?.dsn) return;\n\n const version = config.version ?? '8';\n loadScript(`https://browser.sentry-cdn.com/${version}/bundle.min.js`, undefined, {\n crossorigin: 'anonymous',\n }).then(() => {\n if ((window as any).Sentry) {\n (window as any).Sentry.init({ dsn: config.dsn });\n }\n });\n },\n};\n\nexport default Sentry;\n"]}
@@ -0,0 +1,10 @@
1
+ import { Vendor } from '@modernconsent/core';
2
+
3
+ type SentryConfig = {
4
+ dsn: string;
5
+ /** Sentry JS SDK version (default: '8') */
6
+ version?: string;
7
+ };
8
+ declare const Sentry: Vendor<SentryConfig>;
9
+
10
+ export { Sentry as default };
package/dist/sentry.js ADDED
@@ -0,0 +1,59 @@
1
+ // src/utils/loader.ts
2
+ function loadScript(src, callback, attrs = {}) {
3
+ return new Promise((resolve, reject) => {
4
+ if (document.querySelector(`script[src="${src}"]`)) {
5
+ resolve();
6
+ return;
7
+ }
8
+ const script = document.createElement("script");
9
+ script.src = src;
10
+ script.async = true;
11
+ for (const [key, value] of Object.entries(attrs)) {
12
+ script.setAttribute(key, value);
13
+ }
14
+ script.onload = () => {
15
+ resolve();
16
+ };
17
+ script.onerror = () => {
18
+ reject(new Error(`Failed to load script: ${src}`));
19
+ };
20
+ document.head.appendChild(script);
21
+ });
22
+ }
23
+
24
+ // src/utils/purposes.ts
25
+ var PURPOSE_ANALYTICS = {
26
+ purposeLabel: {
27
+ fr: "Analyse de session utilisateur et mesure d'audience",
28
+ en: "User session analysis and audience measurement"
29
+ },
30
+ purposeDescription: {
31
+ fr: "Ces cookies nous permettent d'\xE9tablir des statistiques et volumes de fr\xE9quentation et d'utilisation des \xE9l\xE9ments du site.",
32
+ en: "These cookies allow us to compile statistics on site traffic and usage."
33
+ }
34
+ };
35
+
36
+ // src/sentry.ts
37
+ var Sentry = {
38
+ name: "Sentry",
39
+ category: "Analytics",
40
+ description: "Surveillance des erreurs et suivi des performances applicatives.",
41
+ ...PURPOSE_ANALYTICS,
42
+ requireConsent: true,
43
+ init: (config) => {
44
+ if (!config?.dsn) return;
45
+ const version = config.version ?? "8";
46
+ loadScript(`https://browser.sentry-cdn.com/${version}/bundle.min.js`, void 0, {
47
+ crossorigin: "anonymous"
48
+ }).then(() => {
49
+ if (window.Sentry) {
50
+ window.Sentry.init({ dsn: config.dsn });
51
+ }
52
+ });
53
+ }
54
+ };
55
+ var sentry_default = Sentry;
56
+
57
+ export { sentry_default as default };
58
+ //# sourceMappingURL=sentry.js.map
59
+ //# sourceMappingURL=sentry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/loader.ts","../src/utils/purposes.ts","../src/sentry.ts"],"names":[],"mappings":";AAAO,SAAS,UAAA,CACd,GAAA,EACA,QAAA,EACA,KAAA,GAAgC,EAAC,EAClB;AACf,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AAItC,IAAA,IAAI,QAAA,CAAS,aAAA,CAAc,CAAA,YAAA,EAAe,GAAG,IAAI,CAAA,EAAG;AAClD,MAAA,OAAA,EAAQ;AAER,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,IAAA,MAAA,CAAO,GAAA,GAAM,GAAA;AACb,IAAA,MAAA,CAAO,KAAA,GAAQ,IAAA;AAEf,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,MAAA,MAAA,CAAO,YAAA,CAAa,KAAK,KAAK,CAAA;AAAA,IAChC;AAEA,IAAA,MAAA,CAAO,SAAS,MAAM;AACpB,MAAA,OAAA,EAAQ;AACG,IACb,CAAA;AAEA,IAAA,MAAA,CAAO,UAAU,MAAM;AACrB,MAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,uBAAA,EAA0B,GAAG,EAAE,CAAC,CAAA;AAAA,IACnD,CAAA;AACA,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,MAAM,CAAA;AAAA,EAClC,CAAC,CAAA;AACH;;;AC5BO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,YAAA,EAAc;AAAA,IACZ,EAAA,EAAI,qDAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,EAAA,EAAI,uIAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;;;ACJA,IAAM,MAAA,GAA+B;AAAA,EACnC,IAAA,EAAM,QAAA;AAAA,EACN,QAAA,EAAU,WAAA;AAAA,EACV,WAAA,EAAa,kEAAA;AAAA,EACb,GAAG,iBAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,IAAA,EAAM,CAAC,MAAA,KAAyB;AAC9B,IAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAElB,IAAA,MAAM,OAAA,GAAU,OAAO,OAAA,IAAW,GAAA;AAClC,IAAA,UAAA,CAAW,CAAA,+BAAA,EAAkC,OAAO,CAAA,cAAA,CAAA,EAAkB,MAAA,EAAW;AAAA,MAC/E,WAAA,EAAa;AAAA,KACd,CAAA,CAAE,IAAA,CAAK,MAAM;AACZ,MAAA,IAAK,OAAe,MAAA,EAAQ;AAC1B,QAAC,OAAe,MAAA,CAAO,IAAA,CAAK,EAAE,GAAA,EAAK,MAAA,CAAO,KAAK,CAAA;AAAA,MACjD;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"sentry.js","sourcesContent":["export function loadScript(\n src: string,\n callback?: () => void,\n attrs: Record<string, string> = {},\n): Promise<void> {\n return new Promise((resolve, reject) => {\n /**\n * check if already loaded.\n */\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n resolve();\n callback?.();\n return;\n }\n\n const script = document.createElement('script');\n script.src = src;\n script.async = true;\n\n for (const [key, value] of Object.entries(attrs)) {\n script.setAttribute(key, value);\n }\n\n script.onload = () => {\n resolve();\n callback?.();\n };\n\n script.onerror = () => {\n reject(new Error(`Failed to load script: ${src}`));\n };\n document.head.appendChild(script);\n });\n}\n","/**\n * Shared purpose labels and descriptions for built-in vendors.\n * Imported by each vendor — inlined at build time by tsup (zero runtime overhead).\n */\n\nexport const PURPOSE_ANALYTICS = {\n purposeLabel: {\n fr: \"Analyse de session utilisateur et mesure d'audience\",\n en: 'User session analysis and audience measurement',\n },\n purposeDescription: {\n fr: \"Ces cookies nous permettent d'établir des statistiques et volumes de fréquentation et d'utilisation des éléments du site.\",\n en: 'These cookies allow us to compile statistics on site traffic and usage.',\n },\n} as const;\n\nexport const PURPOSE_ADS = {\n purposeLabel: {\n fr: 'Ciblage publicitaire',\n en: 'Advertising targeting',\n },\n purposeDescription: {\n fr: 'Ces cookies sont utilisés pour vous proposer des publicités personnalisées en fonction de votre navigation.',\n en: 'These cookies are used to deliver personalized ads based on your browsing behavior.',\n },\n} as const;\n\nexport const PURPOSE_SUPPORT = {\n purposeLabel: {\n fr: 'Support et assistance',\n en: 'Support and assistance',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent d'interagir avec notre service client et de bénéficier d'une assistance en direct.\",\n en: 'These cookies enable interaction with our customer support and provide live assistance.',\n },\n} as const;\n\nexport const PURPOSE_SOCIAL = {\n purposeLabel: {\n fr: 'Réseaux sociaux',\n en: 'Social media',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent de partager du contenu sur les réseaux sociaux et d'interagir avec des plateformes tierces.\",\n en: 'These cookies allow sharing content on social media and interacting with third-party platforms.',\n },\n} as const;\n","import type { Vendor } from '@modernconsent/core';\nimport { loadScript } from './utils/loader';\nimport { PURPOSE_ANALYTICS } from './utils/purposes';\n\ntype SentryConfig = {\n dsn: string;\n /** Sentry JS SDK version (default: '8') */\n version?: string;\n};\n\nconst Sentry: Vendor<SentryConfig> = {\n name: 'Sentry',\n category: 'Analytics',\n description: 'Surveillance des erreurs et suivi des performances applicatives.',\n ...PURPOSE_ANALYTICS,\n requireConsent: true,\n init: (config: SentryConfig) => {\n if (!config?.dsn) return;\n\n const version = config.version ?? '8';\n loadScript(`https://browser.sentry-cdn.com/${version}/bundle.min.js`, undefined, {\n crossorigin: 'anonymous',\n }).then(() => {\n if ((window as any).Sentry) {\n (window as any).Sentry.init({ dsn: config.dsn });\n }\n });\n },\n};\n\nexport default Sentry;\n"]}
@@ -0,0 +1,27 @@
1
+ import { PURPOSE_SUPPORT } from './chunk-TBZUWLOP.js';
2
+
3
+ // src/smartsupp.ts
4
+ var Smartsupp = {
5
+ name: "Smartsupp",
6
+ category: "Support",
7
+ description: "Chat en direct avec enregistrement vid\xE9o des visiteurs.",
8
+ ...PURPOSE_SUPPORT,
9
+ requireConsent: true,
10
+ artifacts: ["ssupp.vid", "ssupp.visits", "AWSALB"],
11
+ init: (config) => {
12
+ if (!config?.key) return;
13
+ window._smartsupp = window._smartsupp || {};
14
+ window._smartsupp.key = config.key;
15
+ (function() {
16
+ const s = document.createElement("script");
17
+ s.async = true;
18
+ s.src = "https://www.smartsuppchat.com/loader.js?";
19
+ document.head.appendChild(s);
20
+ })();
21
+ }
22
+ };
23
+ var smartsupp_default = Smartsupp;
24
+
25
+ export { smartsupp_default as default };
26
+ //# sourceMappingURL=smartsupp-I6XHQISS.js.map
27
+ //# sourceMappingURL=smartsupp-I6XHQISS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/smartsupp.ts"],"names":[],"mappings":";;;AAcA,IAAM,SAAA,GAAqC;AAAA,EACzC,IAAA,EAAM,WAAA;AAAA,EACN,QAAA,EAAU,SAAA;AAAA,EACV,WAAA,EAAa,4DAAA;AAAA,EACb,GAAG,eAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,WAAA,EAAa,cAAA,EAAgB,QAAQ,CAAA;AAAA,EACjD,IAAA,EAAM,CAAC,MAAA,KAA4B;AACjC,IAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAElB,IAAA,MAAA,CAAO,UAAA,GAAa,MAAA,CAAO,UAAA,IAAc,EAAC;AAC1C,IAAA,MAAA,CAAO,UAAA,CAAW,MAAM,MAAA,CAAO,GAAA;AAE/B,IAAA,CAAC,WAAY;AACX,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AACzC,MAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,MAAA,CAAA,CAAE,GAAA,GAAM,0CAAA;AACR,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAAA,IAC7B,CAAA,GAAG;AAAA,EACL;AACF,CAAA;AAEA,IAAO,iBAAA,GAAQ","file":"smartsupp-I6XHQISS.js","sourcesContent":["import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_SUPPORT } from './utils/purposes';\n\ntype SmartsuppConfig = {\n key: string;\n};\n\ndeclare global {\n interface Window {\n smartsupp: any;\n _smartsupp: any;\n }\n}\n\nconst Smartsupp: Vendor<SmartsuppConfig> = {\n name: 'Smartsupp',\n category: 'Support',\n description: 'Chat en direct avec enregistrement vidéo des visiteurs.',\n ...PURPOSE_SUPPORT,\n requireConsent: true,\n artifacts: ['ssupp.vid', 'ssupp.visits', 'AWSALB'],\n init: (config: SmartsuppConfig) => {\n if (!config?.key) return;\n\n window._smartsupp = window._smartsupp || {};\n window._smartsupp.key = config.key;\n\n (function () {\n const s = document.createElement('script') as HTMLScriptElement;\n s.async = true;\n s.src = 'https://www.smartsuppchat.com/loader.js?';\n document.head.appendChild(s);\n })();\n },\n};\n\nexport default Smartsupp;\n"]}
@@ -0,0 +1,14 @@
1
+ import { Vendor } from '@modernconsent/core';
2
+
3
+ type SmartsuppConfig = {
4
+ key: string;
5
+ };
6
+ declare global {
7
+ interface Window {
8
+ smartsupp: any;
9
+ _smartsupp: any;
10
+ }
11
+ }
12
+ declare const Smartsupp: Vendor<SmartsuppConfig>;
13
+
14
+ export { Smartsupp as default };
@@ -0,0 +1,37 @@
1
+ // src/utils/purposes.ts
2
+ var PURPOSE_SUPPORT = {
3
+ purposeLabel: {
4
+ fr: "Support et assistance",
5
+ en: "Support and assistance"
6
+ },
7
+ purposeDescription: {
8
+ fr: "Ces cookies permettent d'interagir avec notre service client et de b\xE9n\xE9ficier d'une assistance en direct.",
9
+ en: "These cookies enable interaction with our customer support and provide live assistance."
10
+ }
11
+ };
12
+
13
+ // src/smartsupp.ts
14
+ var Smartsupp = {
15
+ name: "Smartsupp",
16
+ category: "Support",
17
+ description: "Chat en direct avec enregistrement vid\xE9o des visiteurs.",
18
+ ...PURPOSE_SUPPORT,
19
+ requireConsent: true,
20
+ artifacts: ["ssupp.vid", "ssupp.visits", "AWSALB"],
21
+ init: (config) => {
22
+ if (!config?.key) return;
23
+ window._smartsupp = window._smartsupp || {};
24
+ window._smartsupp.key = config.key;
25
+ (function() {
26
+ const s = document.createElement("script");
27
+ s.async = true;
28
+ s.src = "https://www.smartsuppchat.com/loader.js?";
29
+ document.head.appendChild(s);
30
+ })();
31
+ }
32
+ };
33
+ var smartsupp_default = Smartsupp;
34
+
35
+ export { smartsupp_default as default };
36
+ //# sourceMappingURL=smartsupp.js.map
37
+ //# sourceMappingURL=smartsupp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/purposes.ts","../src/smartsupp.ts"],"names":[],"mappings":";AA2BO,IAAM,eAAA,GAAkB;AAAA,EAC7B,YAAA,EAAc;AAAA,IACZ,EAAA,EAAI,uBAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,EAAA,EAAI,iHAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;;;ACtBA,IAAM,SAAA,GAAqC;AAAA,EACzC,IAAA,EAAM,WAAA;AAAA,EACN,QAAA,EAAU,SAAA;AAAA,EACV,WAAA,EAAa,4DAAA;AAAA,EACb,GAAG,eAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,WAAA,EAAa,cAAA,EAAgB,QAAQ,CAAA;AAAA,EACjD,IAAA,EAAM,CAAC,MAAA,KAA4B;AACjC,IAAA,IAAI,CAAC,QAAQ,GAAA,EAAK;AAElB,IAAA,MAAA,CAAO,UAAA,GAAa,MAAA,CAAO,UAAA,IAAc,EAAC;AAC1C,IAAA,MAAA,CAAO,UAAA,CAAW,MAAM,MAAA,CAAO,GAAA;AAE/B,IAAA,CAAC,WAAY;AACX,MAAA,MAAM,CAAA,GAAI,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AACzC,MAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,MAAA,CAAA,CAAE,GAAA,GAAM,0CAAA;AACR,MAAA,QAAA,CAAS,IAAA,CAAK,YAAY,CAAC,CAAA;AAAA,IAC7B,CAAA,GAAG;AAAA,EACL;AACF,CAAA;AAEA,IAAO,iBAAA,GAAQ","file":"smartsupp.js","sourcesContent":["/**\n * Shared purpose labels and descriptions for built-in vendors.\n * Imported by each vendor — inlined at build time by tsup (zero runtime overhead).\n */\n\nexport const PURPOSE_ANALYTICS = {\n purposeLabel: {\n fr: \"Analyse de session utilisateur et mesure d'audience\",\n en: 'User session analysis and audience measurement',\n },\n purposeDescription: {\n fr: \"Ces cookies nous permettent d'établir des statistiques et volumes de fréquentation et d'utilisation des éléments du site.\",\n en: 'These cookies allow us to compile statistics on site traffic and usage.',\n },\n} as const;\n\nexport const PURPOSE_ADS = {\n purposeLabel: {\n fr: 'Ciblage publicitaire',\n en: 'Advertising targeting',\n },\n purposeDescription: {\n fr: 'Ces cookies sont utilisés pour vous proposer des publicités personnalisées en fonction de votre navigation.',\n en: 'These cookies are used to deliver personalized ads based on your browsing behavior.',\n },\n} as const;\n\nexport const PURPOSE_SUPPORT = {\n purposeLabel: {\n fr: 'Support et assistance',\n en: 'Support and assistance',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent d'interagir avec notre service client et de bénéficier d'une assistance en direct.\",\n en: 'These cookies enable interaction with our customer support and provide live assistance.',\n },\n} as const;\n\nexport const PURPOSE_SOCIAL = {\n purposeLabel: {\n fr: 'Réseaux sociaux',\n en: 'Social media',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent de partager du contenu sur les réseaux sociaux et d'interagir avec des plateformes tierces.\",\n en: 'These cookies allow sharing content on social media and interacting with third-party platforms.',\n },\n} as const;\n","import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_SUPPORT } from './utils/purposes';\n\ntype SmartsuppConfig = {\n key: string;\n};\n\ndeclare global {\n interface Window {\n smartsupp: any;\n _smartsupp: any;\n }\n}\n\nconst Smartsupp: Vendor<SmartsuppConfig> = {\n name: 'Smartsupp',\n category: 'Support',\n description: 'Chat en direct avec enregistrement vidéo des visiteurs.',\n ...PURPOSE_SUPPORT,\n requireConsent: true,\n artifacts: ['ssupp.vid', 'ssupp.visits', 'AWSALB'],\n init: (config: SmartsuppConfig) => {\n if (!config?.key) return;\n\n window._smartsupp = window._smartsupp || {};\n window._smartsupp.key = config.key;\n\n (function () {\n const s = document.createElement('script') as HTMLScriptElement;\n s.async = true;\n s.src = 'https://www.smartsuppchat.com/loader.js?';\n document.head.appendChild(s);\n })();\n },\n};\n\nexport default Smartsupp;\n"]}
@@ -0,0 +1,37 @@
1
+ import { PURPOSE_ADS } from './chunk-TBZUWLOP.js';
2
+
3
+ // src/snapchat-pixel.ts
4
+ var SnapchatPixel = {
5
+ name: "Snapchat Pixel",
6
+ category: "Publicit\xE9",
7
+ description: "Suivi des conversions et optimisation des campagnes Snapchat Ads.",
8
+ ...PURPOSE_ADS,
9
+ requireConsent: true,
10
+ artifacts: ["_scid", "_scid_r", "sc_at", "_sctr"],
11
+ init: (config) => {
12
+ if (!config?.pixelId) return;
13
+ (function(e, t) {
14
+ if (e.snaptr) return;
15
+ const a = e.snaptr = function(...args) {
16
+ if (a.handleRequest) {
17
+ a.handleRequest(...args);
18
+ } else {
19
+ a.queue.push(args);
20
+ }
21
+ };
22
+ a.queue = [];
23
+ const s = t.createElement("script");
24
+ s.async = true;
25
+ s.src = "https://sc-static.net/scevent.min.js";
26
+ const r = t.getElementsByTagName("script")[0];
27
+ r.parentNode.insertBefore(s, r);
28
+ })(window, document);
29
+ window.snaptr("init", config.pixelId);
30
+ window.snaptr("track", "PAGE_VIEW");
31
+ }
32
+ };
33
+ var snapchat_pixel_default = SnapchatPixel;
34
+
35
+ export { snapchat_pixel_default as default };
36
+ //# sourceMappingURL=snapchat-pixel-SYR3ZSSB.js.map
37
+ //# sourceMappingURL=snapchat-pixel-SYR3ZSSB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/snapchat-pixel.ts"],"names":[],"mappings":";;;AAaA,IAAM,aAAA,GAAwC;AAAA,EAC5C,IAAA,EAAM,gBAAA;AAAA,EACN,QAAA,EAAU,cAAA;AAAA,EACV,WAAA,EAAa,mEAAA;AAAA,EACb,GAAG,WAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,OAAA,EAAS,SAAA,EAAW,SAAS,OAAO,CAAA;AAAA,EAChD,IAAA,EAAM,CAAC,MAAA,KAA2B;AAChC,IAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AAEtB,IAAA,CAAC,SAAU,GAAQ,CAAA,EAAa;AAC9B,MAAA,IAAI,EAAE,MAAA,EAAQ;AACd,MAAA,MAAM,CAAA,GAAU,CAAA,CAAE,MAAA,GAAS,SAAA,GAAa,IAAA,EAAa;AACnD,QAAA,IAAI,EAAE,aAAA,EAAe;AACnB,UAAA,CAAA,CAAE,aAAA,CAAc,GAAG,IAAI,CAAA;AAAA,QACzB,CAAA,MAAO;AACL,UAAA,CAAA,CAAE,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,QACnB;AAAA,MACF,CAAA;AACA,MAAA,CAAA,CAAE,QAAQ,EAAC;AACX,MAAA,MAAM,CAAA,GAAI,CAAA,CAAE,aAAA,CAAc,QAAQ,CAAA;AAClC,MAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,MAAA,CAAA,CAAE,GAAA,GAAM,sCAAA;AACR,MAAA,MAAM,CAAA,GAAI,CAAA,CAAE,oBAAA,CAAqB,QAAQ,EAAE,CAAC,CAAA;AAC5C,MAAA,CAAA,CAAE,UAAA,CAAY,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AAAA,IACjC,CAAA,EAAG,QAAQ,QAAQ,CAAA;AAEnB,IAAA,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,MAAA,CAAO,OAAO,CAAA;AACpC,IAAA,MAAA,CAAO,MAAA,CAAO,SAAS,WAAW,CAAA;AAAA,EACpC;AACF,CAAA;AAEA,IAAO,sBAAA,GAAQ","file":"snapchat-pixel-SYR3ZSSB.js","sourcesContent":["import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_ADS } from './utils/purposes';\n\ntype SnapchatConfig = {\n pixelId: string;\n};\n\ndeclare global {\n interface Window {\n snaptr: ((...args: any[]) => void) & { _: any[] };\n }\n}\n\nconst SnapchatPixel: Vendor<SnapchatConfig> = {\n name: 'Snapchat Pixel',\n category: 'Publicité',\n description: 'Suivi des conversions et optimisation des campagnes Snapchat Ads.',\n ...PURPOSE_ADS,\n requireConsent: true,\n artifacts: ['_scid', '_scid_r', 'sc_at', '_sctr'],\n init: (config: SnapchatConfig) => {\n if (!config?.pixelId) return;\n\n (function (e: any, t: Document) {\n if (e.snaptr) return;\n const a: any = (e.snaptr = function (...args: any[]) {\n if (a.handleRequest) {\n a.handleRequest(...args);\n } else {\n a.queue.push(args);\n }\n });\n a.queue = [];\n const s = t.createElement('script') as HTMLScriptElement;\n s.async = true;\n s.src = 'https://sc-static.net/scevent.min.js';\n const r = t.getElementsByTagName('script')[0] as HTMLScriptElement;\n r.parentNode!.insertBefore(s, r);\n })(window, document);\n\n window.snaptr('init', config.pixelId);\n window.snaptr('track', 'PAGE_VIEW');\n },\n};\n\nexport default SnapchatPixel;\n"]}
@@ -0,0 +1,15 @@
1
+ import { Vendor } from '@modernconsent/core';
2
+
3
+ type SnapchatConfig = {
4
+ pixelId: string;
5
+ };
6
+ declare global {
7
+ interface Window {
8
+ snaptr: ((...args: any[]) => void) & {
9
+ _: any[];
10
+ };
11
+ }
12
+ }
13
+ declare const SnapchatPixel: Vendor<SnapchatConfig>;
14
+
15
+ export { SnapchatPixel as default };
@@ -0,0 +1,47 @@
1
+ // src/utils/purposes.ts
2
+ var PURPOSE_ADS = {
3
+ purposeLabel: {
4
+ fr: "Ciblage publicitaire",
5
+ en: "Advertising targeting"
6
+ },
7
+ purposeDescription: {
8
+ fr: "Ces cookies sont utilis\xE9s pour vous proposer des publicit\xE9s personnalis\xE9es en fonction de votre navigation.",
9
+ en: "These cookies are used to deliver personalized ads based on your browsing behavior."
10
+ }
11
+ };
12
+
13
+ // src/snapchat-pixel.ts
14
+ var SnapchatPixel = {
15
+ name: "Snapchat Pixel",
16
+ category: "Publicit\xE9",
17
+ description: "Suivi des conversions et optimisation des campagnes Snapchat Ads.",
18
+ ...PURPOSE_ADS,
19
+ requireConsent: true,
20
+ artifacts: ["_scid", "_scid_r", "sc_at", "_sctr"],
21
+ init: (config) => {
22
+ if (!config?.pixelId) return;
23
+ (function(e, t) {
24
+ if (e.snaptr) return;
25
+ const a = e.snaptr = function(...args) {
26
+ if (a.handleRequest) {
27
+ a.handleRequest(...args);
28
+ } else {
29
+ a.queue.push(args);
30
+ }
31
+ };
32
+ a.queue = [];
33
+ const s = t.createElement("script");
34
+ s.async = true;
35
+ s.src = "https://sc-static.net/scevent.min.js";
36
+ const r = t.getElementsByTagName("script")[0];
37
+ r.parentNode.insertBefore(s, r);
38
+ })(window, document);
39
+ window.snaptr("init", config.pixelId);
40
+ window.snaptr("track", "PAGE_VIEW");
41
+ }
42
+ };
43
+ var snapchat_pixel_default = SnapchatPixel;
44
+
45
+ export { snapchat_pixel_default as default };
46
+ //# sourceMappingURL=snapchat-pixel.js.map
47
+ //# sourceMappingURL=snapchat-pixel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/purposes.ts","../src/snapchat-pixel.ts"],"names":[],"mappings":";AAgBO,IAAM,WAAA,GAAc;AAAA,EACzB,YAAA,EAAc;AAAA,IACZ,EAAA,EAAI,sBAAA;AAAA,IACJ,EAAA,EAAI;AAAA,GACN;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,EAAA,EAAI,sHAAA;AAAA,IACJ,EAAA,EAAI;AAAA;AAER,CAAA;;;ACZA,IAAM,aAAA,GAAwC;AAAA,EAC5C,IAAA,EAAM,gBAAA;AAAA,EACN,QAAA,EAAU,cAAA;AAAA,EACV,WAAA,EAAa,mEAAA;AAAA,EACb,GAAG,WAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,OAAA,EAAS,SAAA,EAAW,SAAS,OAAO,CAAA;AAAA,EAChD,IAAA,EAAM,CAAC,MAAA,KAA2B;AAChC,IAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AAEtB,IAAA,CAAC,SAAU,GAAQ,CAAA,EAAa;AAC9B,MAAA,IAAI,EAAE,MAAA,EAAQ;AACd,MAAA,MAAM,CAAA,GAAU,CAAA,CAAE,MAAA,GAAS,SAAA,GAAa,IAAA,EAAa;AACnD,QAAA,IAAI,EAAE,aAAA,EAAe;AACnB,UAAA,CAAA,CAAE,aAAA,CAAc,GAAG,IAAI,CAAA;AAAA,QACzB,CAAA,MAAO;AACL,UAAA,CAAA,CAAE,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,QACnB;AAAA,MACF,CAAA;AACA,MAAA,CAAA,CAAE,QAAQ,EAAC;AACX,MAAA,MAAM,CAAA,GAAI,CAAA,CAAE,aAAA,CAAc,QAAQ,CAAA;AAClC,MAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,MAAA,CAAA,CAAE,GAAA,GAAM,sCAAA;AACR,MAAA,MAAM,CAAA,GAAI,CAAA,CAAE,oBAAA,CAAqB,QAAQ,EAAE,CAAC,CAAA;AAC5C,MAAA,CAAA,CAAE,UAAA,CAAY,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AAAA,IACjC,CAAA,EAAG,QAAQ,QAAQ,CAAA;AAEnB,IAAA,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,MAAA,CAAO,OAAO,CAAA;AACpC,IAAA,MAAA,CAAO,MAAA,CAAO,SAAS,WAAW,CAAA;AAAA,EACpC;AACF,CAAA;AAEA,IAAO,sBAAA,GAAQ","file":"snapchat-pixel.js","sourcesContent":["/**\n * Shared purpose labels and descriptions for built-in vendors.\n * Imported by each vendor — inlined at build time by tsup (zero runtime overhead).\n */\n\nexport const PURPOSE_ANALYTICS = {\n purposeLabel: {\n fr: \"Analyse de session utilisateur et mesure d'audience\",\n en: 'User session analysis and audience measurement',\n },\n purposeDescription: {\n fr: \"Ces cookies nous permettent d'établir des statistiques et volumes de fréquentation et d'utilisation des éléments du site.\",\n en: 'These cookies allow us to compile statistics on site traffic and usage.',\n },\n} as const;\n\nexport const PURPOSE_ADS = {\n purposeLabel: {\n fr: 'Ciblage publicitaire',\n en: 'Advertising targeting',\n },\n purposeDescription: {\n fr: 'Ces cookies sont utilisés pour vous proposer des publicités personnalisées en fonction de votre navigation.',\n en: 'These cookies are used to deliver personalized ads based on your browsing behavior.',\n },\n} as const;\n\nexport const PURPOSE_SUPPORT = {\n purposeLabel: {\n fr: 'Support et assistance',\n en: 'Support and assistance',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent d'interagir avec notre service client et de bénéficier d'une assistance en direct.\",\n en: 'These cookies enable interaction with our customer support and provide live assistance.',\n },\n} as const;\n\nexport const PURPOSE_SOCIAL = {\n purposeLabel: {\n fr: 'Réseaux sociaux',\n en: 'Social media',\n },\n purposeDescription: {\n fr: \"Ces cookies permettent de partager du contenu sur les réseaux sociaux et d'interagir avec des plateformes tierces.\",\n en: 'These cookies allow sharing content on social media and interacting with third-party platforms.',\n },\n} as const;\n","import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_ADS } from './utils/purposes';\n\ntype SnapchatConfig = {\n pixelId: string;\n};\n\ndeclare global {\n interface Window {\n snaptr: ((...args: any[]) => void) & { _: any[] };\n }\n}\n\nconst SnapchatPixel: Vendor<SnapchatConfig> = {\n name: 'Snapchat Pixel',\n category: 'Publicité',\n description: 'Suivi des conversions et optimisation des campagnes Snapchat Ads.',\n ...PURPOSE_ADS,\n requireConsent: true,\n artifacts: ['_scid', '_scid_r', 'sc_at', '_sctr'],\n init: (config: SnapchatConfig) => {\n if (!config?.pixelId) return;\n\n (function (e: any, t: Document) {\n if (e.snaptr) return;\n const a: any = (e.snaptr = function (...args: any[]) {\n if (a.handleRequest) {\n a.handleRequest(...args);\n } else {\n a.queue.push(args);\n }\n });\n a.queue = [];\n const s = t.createElement('script') as HTMLScriptElement;\n s.async = true;\n s.src = 'https://sc-static.net/scevent.min.js';\n const r = t.getElementsByTagName('script')[0] as HTMLScriptElement;\n r.parentNode!.insertBefore(s, r);\n })(window, document);\n\n window.snaptr('init', config.pixelId);\n window.snaptr('track', 'PAGE_VIEW');\n },\n};\n\nexport default SnapchatPixel;\n"]}
@@ -0,0 +1,70 @@
1
+ import { PURPOSE_ADS } from './chunk-TBZUWLOP.js';
2
+
3
+ // src/tiktok-pixel.ts
4
+ var TikTokPixel = {
5
+ name: "TikTok Pixel",
6
+ category: "Publicit\xE9",
7
+ description: "Suivi des conversions et optimisation des campagnes publicitaires TikTok.",
8
+ ...PURPOSE_ADS,
9
+ requireConsent: true,
10
+ artifacts: ["_ttp", "tt_sessionId", "tt_pixel_session_index"],
11
+ init: (config) => {
12
+ if (!config?.pixelId) return;
13
+ (function(w, d, t) {
14
+ w.TiktokAnalyticsObject = t;
15
+ const ttq = w[t] = w[t] || [];
16
+ ttq.methods = [
17
+ "page",
18
+ "track",
19
+ "identify",
20
+ "instances",
21
+ "debug",
22
+ "on",
23
+ "off",
24
+ "once",
25
+ "ready",
26
+ "alias",
27
+ "group",
28
+ "enableCookie",
29
+ "disableCookie"
30
+ ];
31
+ ttq.setAndDefer = function(t2, e) {
32
+ t2[e] = function(...args) {
33
+ t2.push([e, ...args]);
34
+ };
35
+ };
36
+ for (let i = 0; i < ttq.methods.length; i++) {
37
+ ttq.setAndDefer(ttq, ttq.methods[i]);
38
+ }
39
+ ttq.instance = function(t2) {
40
+ const e = ttq._i[t2] || [];
41
+ for (let n = 0; n < ttq.methods.length; n++) {
42
+ ttq.setAndDefer(e, ttq.methods[n]);
43
+ }
44
+ return e;
45
+ };
46
+ ttq.load = function(e, n) {
47
+ const i = "https://analytics.tiktok.com/i18n/pixel/events.js";
48
+ ttq._i = ttq._i || {};
49
+ ttq._i[e] = [];
50
+ ttq._i[e]._u = i;
51
+ ttq._t = ttq._t || {};
52
+ ttq._t[e] = +/* @__PURE__ */ new Date();
53
+ ttq._o = ttq._o || {};
54
+ ttq._o[e] = n || {};
55
+ const o = d.createElement("script");
56
+ o.async = true;
57
+ o.src = i + "?sdkid=" + e + "&lib=" + t;
58
+ const a = d.getElementsByTagName("script")[0];
59
+ a.parentNode.insertBefore(o, a);
60
+ };
61
+ ttq.load(config.pixelId);
62
+ ttq.page();
63
+ })(window, document, "ttq");
64
+ }
65
+ };
66
+ var tiktok_pixel_default = TikTokPixel;
67
+
68
+ export { tiktok_pixel_default as default };
69
+ //# sourceMappingURL=tiktok-pixel-FDGVKGOH.js.map
70
+ //# sourceMappingURL=tiktok-pixel-FDGVKGOH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tiktok-pixel.ts"],"names":["t"],"mappings":";;;AAcA,IAAM,WAAA,GAAoC;AAAA,EACxC,IAAA,EAAM,cAAA;AAAA,EACN,QAAA,EAAU,cAAA;AAAA,EACV,WAAA,EAAa,2EAAA;AAAA,EACb,GAAG,WAAA;AAAA,EACH,cAAA,EAAgB,IAAA;AAAA,EAChB,SAAA,EAAW,CAAC,MAAA,EAAQ,cAAA,EAAgB,wBAAwB,CAAA;AAAA,EAC5D,IAAA,EAAM,CAAC,MAAA,KAAyB;AAC9B,IAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AAEtB,IAAA,CAAC,SAAU,CAAA,EAAQ,CAAA,EAAa,CAAA,EAAW;AACzC,MAAA,CAAA,CAAE,qBAAA,GAAwB,CAAA;AAC1B,MAAA,MAAM,MAAO,CAAA,CAAE,CAAC,IAAI,CAAA,CAAE,CAAC,KAAK,EAAC;AAC7B,MAAA,GAAA,CAAI,OAAA,GAAU;AAAA,QACZ,MAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAA;AAAA,QACA,IAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACF;AACA,MAAA,GAAA,CAAI,WAAA,GAAc,SAAUA,EAAAA,EAAQ,CAAA,EAAW;AAC7C,QAAAA,EAAAA,CAAE,CAAC,CAAA,GAAI,SAAA,GAAa,IAAA,EAAa;AAC/B,UAAAA,GAAE,IAAA,CAAK,CAAC,CAAA,EAAG,GAAG,IAAI,CAAC,CAAA;AAAA,QACrB,CAAA;AAAA,MACF,CAAA;AACA,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AAC3C,QAAA,GAAA,CAAI,WAAA,CAAY,GAAA,EAAK,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,MACrC;AACA,MAAA,GAAA,CAAI,QAAA,GAAW,SAAUA,EAAAA,EAAW;AAClC,QAAA,MAAM,CAAA,GAAI,GAAA,CAAI,EAAA,CAAGA,EAAC,KAAK,EAAC;AACxB,QAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,GAAA,CAAI,OAAA,CAAQ,QAAQ,CAAA,EAAA,EAAK;AAC3C,UAAA,GAAA,CAAI,WAAA,CAAY,CAAA,EAAG,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA,QACnC;AACA,QAAA,OAAO,CAAA;AAAA,MACT,CAAA;AACA,MAAA,GAAA,CAAI,IAAA,GAAO,SAAU,CAAA,EAAW,CAAA,EAAS;AACvC,QAAA,MAAM,CAAA,GAAI,mDAAA;AACV,QAAA,GAAA,CAAI,EAAA,GAAK,GAAA,CAAI,EAAA,IAAM,EAAC;AACpB,QAAA,GAAA,CAAI,EAAA,CAAG,CAAC,CAAA,GAAI,EAAC;AACb,QAAA,GAAA,CAAI,EAAA,CAAG,CAAC,CAAA,CAAE,EAAA,GAAK,CAAA;AACf,QAAA,GAAA,CAAI,EAAA,GAAK,GAAA,CAAI,EAAA,IAAM,EAAC;AACpB,QAAA,GAAA,CAAI,EAAA,CAAG,CAAC,CAAA,GAAI,qBAAK,IAAA,EAAK;AACtB,QAAA,GAAA,CAAI,EAAA,GAAK,GAAA,CAAI,EAAA,IAAM,EAAC;AACpB,QAAA,GAAA,CAAI,EAAA,CAAG,CAAC,CAAA,GAAI,CAAA,IAAK,EAAC;AAClB,QAAA,MAAM,CAAA,GAAI,CAAA,CAAE,aAAA,CAAc,QAAQ,CAAA;AAClC,QAAA,CAAA,CAAE,KAAA,GAAQ,IAAA;AACV,QAAA,CAAA,CAAE,GAAA,GAAM,CAAA,GAAI,SAAA,GAAY,CAAA,GAAI,OAAA,GAAU,CAAA;AACtC,QAAA,MAAM,CAAA,GAAI,CAAA,CAAE,oBAAA,CAAqB,QAAQ,EAAE,CAAC,CAAA;AAC5C,QAAA,CAAA,CAAE,UAAA,CAAY,YAAA,CAAa,CAAA,EAAG,CAAC,CAAA;AAAA,MACjC,CAAA;AACA,MAAA,GAAA,CAAI,IAAA,CAAK,OAAO,OAAO,CAAA;AACvB,MAAA,GAAA,CAAI,IAAA,EAAK;AAAA,IACX,CAAA,EAAG,MAAA,EAAQ,QAAA,EAAU,KAAK,CAAA;AAAA,EAC5B;AACF,CAAA;AAEA,IAAO,oBAAA,GAAQ","file":"tiktok-pixel-FDGVKGOH.js","sourcesContent":["import type { Vendor } from '@modernconsent/core';\nimport { PURPOSE_ADS } from './utils/purposes';\n\ntype TikTokConfig = {\n pixelId: string;\n};\n\ndeclare global {\n interface Window {\n ttq: any;\n TiktokAnalyticsObject: string;\n }\n}\n\nconst TikTokPixel: Vendor<TikTokConfig> = {\n name: 'TikTok Pixel',\n category: 'Publicité',\n description: 'Suivi des conversions et optimisation des campagnes publicitaires TikTok.',\n ...PURPOSE_ADS,\n requireConsent: true,\n artifacts: ['_ttp', 'tt_sessionId', 'tt_pixel_session_index'],\n init: (config: TikTokConfig) => {\n if (!config?.pixelId) return;\n\n (function (w: any, d: Document, t: string) {\n w.TiktokAnalyticsObject = t;\n const ttq = (w[t] = w[t] || []);\n ttq.methods = [\n 'page',\n 'track',\n 'identify',\n 'instances',\n 'debug',\n 'on',\n 'off',\n 'once',\n 'ready',\n 'alias',\n 'group',\n 'enableCookie',\n 'disableCookie',\n ];\n ttq.setAndDefer = function (t: any, e: string) {\n t[e] = function (...args: any[]) {\n t.push([e, ...args]);\n };\n };\n for (let i = 0; i < ttq.methods.length; i++) {\n ttq.setAndDefer(ttq, ttq.methods[i]);\n }\n ttq.instance = function (t: string) {\n const e = ttq._i[t] || [];\n for (let n = 0; n < ttq.methods.length; n++) {\n ttq.setAndDefer(e, ttq.methods[n]);\n }\n return e;\n };\n ttq.load = function (e: string, n?: any) {\n const i = 'https://analytics.tiktok.com/i18n/pixel/events.js';\n ttq._i = ttq._i || {};\n ttq._i[e] = [];\n ttq._i[e]._u = i;\n ttq._t = ttq._t || {};\n ttq._t[e] = +new Date();\n ttq._o = ttq._o || {};\n ttq._o[e] = n || {};\n const o = d.createElement('script') as HTMLScriptElement;\n o.async = true;\n o.src = i + '?sdkid=' + e + '&lib=' + t;\n const a = d.getElementsByTagName('script')[0] as HTMLScriptElement;\n a.parentNode!.insertBefore(o, a);\n };\n ttq.load(config.pixelId);\n ttq.page();\n })(window, document, 'ttq');\n },\n};\n\nexport default TikTokPixel;\n"]}
@@ -0,0 +1,14 @@
1
+ import { Vendor } from '@modernconsent/core';
2
+
3
+ type TikTokConfig = {
4
+ pixelId: string;
5
+ };
6
+ declare global {
7
+ interface Window {
8
+ ttq: any;
9
+ TiktokAnalyticsObject: string;
10
+ }
11
+ }
12
+ declare const TikTokPixel: Vendor<TikTokConfig>;
13
+
14
+ export { TikTokPixel as default };