@c15t/scripts 2.2.0 → 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/AGENTS.md +77 -48
  2. package/README.md +4 -3
  3. package/dist/e2e-test-utils.js +60 -24
  4. package/dist/engine/compile.js +45 -45
  5. package/dist/engine/runtime.js +130 -119
  6. package/dist/registry.js +196 -176
  7. package/dist/resolve.js +12 -12
  8. package/dist/vendors/_shared/attributes.js +5 -5
  9. package/dist/vendors/_shared/google-consent.js +10 -10
  10. package/dist/vendors/_shared/install-builders.js +9 -9
  11. package/dist/vendors/_shared/script-url.js +12 -12
  12. package/dist/vendors/ads-and-pixels/linkedin-insights.js +16 -16
  13. package/dist/vendors/ads-and-pixels/meta-pixel.js +82 -82
  14. package/dist/vendors/ads-and-pixels/microsoft-uet.js +57 -57
  15. package/dist/vendors/ads-and-pixels/openai-pixel.js +88 -0
  16. package/dist/vendors/ads-and-pixels/reddit-pixel.js +39 -39
  17. package/dist/vendors/ads-and-pixels/snapchat-pixel.js +25 -25
  18. package/dist/vendors/ads-and-pixels/tiktok-pixel.js +31 -31
  19. package/dist/vendors/ads-and-pixels/x-pixel.js +17 -17
  20. package/dist/vendors/analytics/adobe-analytics.js +17 -17
  21. package/dist/vendors/analytics/ahrefs-analytics.js +8 -8
  22. package/dist/vendors/analytics/amplitude.js +39 -39
  23. package/dist/vendors/analytics/clearbit.js +11 -11
  24. package/dist/vendors/analytics/cloudflare-web-analytics.js +13 -13
  25. package/dist/vendors/analytics/databuddy.js +45 -45
  26. package/dist/vendors/analytics/fathom-analytics.js +15 -15
  27. package/dist/vendors/analytics/google-tag.js +23 -23
  28. package/dist/vendors/analytics/heap.js +37 -37
  29. package/dist/vendors/analytics/hightouch.js +30 -30
  30. package/dist/vendors/analytics/hotjar.js +14 -14
  31. package/dist/vendors/analytics/logrocket.js +24 -24
  32. package/dist/vendors/analytics/matomo-analytics.js +51 -51
  33. package/dist/vendors/analytics/microsoft-clarity.js +34 -31
  34. package/dist/vendors/analytics/mixpanel-analytics.js +31 -31
  35. package/dist/vendors/analytics/pirsch.js +27 -27
  36. package/dist/vendors/analytics/plausible-analytics.js +24 -24
  37. package/dist/vendors/analytics/posthog.js +84 -79
  38. package/dist/vendors/analytics/promptwatch.js +8 -8
  39. package/dist/vendors/analytics/rudderstack.js +50 -50
  40. package/dist/vendors/analytics/rybbit-analytics.js +30 -30
  41. package/dist/vendors/analytics/segment.js +16 -16
  42. package/dist/vendors/analytics/umami-analytics.js +16 -16
  43. package/dist/vendors/analytics/vercel-analytics.js +22 -22
  44. package/dist/vendors/functional/crisp.js +49 -51
  45. package/dist/vendors/functional/intercom.js +18 -18
  46. package/dist/vendors/tag-managers/cloudflare-zaraz.js +98 -0
  47. package/dist/vendors/tag-managers/google-tag-manager.js +20 -20
  48. package/dist-types/__tests__/helpers.d.ts +11 -11
  49. package/dist-types/engine/compile.d.ts +3 -3
  50. package/dist-types/engine/runtime.d.ts +3 -3
  51. package/dist-types/registry.d.ts +191 -173
  52. package/dist-types/resolve.d.ts +3 -3
  53. package/dist-types/types.d.ts +2 -2
  54. package/dist-types/vendors/_shared/attributes.d.ts +2 -2
  55. package/dist-types/vendors/_shared/google-consent.d.ts +2 -2
  56. package/dist-types/vendors/_shared/install-builders.d.ts +2 -2
  57. package/dist-types/vendors/_shared/script-url.d.ts +6 -6
  58. package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +14 -14
  59. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +27 -27
  60. package/dist-types/vendors/ads-and-pixels/microsoft-uet.d.ts +40 -40
  61. package/dist-types/vendors/ads-and-pixels/openai-pixel.d.ts +211 -0
  62. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +28 -29
  63. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +23 -23
  64. package/dist-types/vendors/ads-and-pixels/tiktok-pixel.d.ts +22 -22
  65. package/dist-types/vendors/ads-and-pixels/x-pixel.d.ts +15 -15
  66. package/dist-types/vendors/analytics/adobe-analytics.d.ts +3 -3
  67. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +5 -5
  68. package/dist-types/vendors/analytics/amplitude.d.ts +24 -24
  69. package/dist-types/vendors/analytics/clearbit.d.ts +5 -5
  70. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +6 -6
  71. package/dist-types/vendors/analytics/databuddy.d.ts +34 -31
  72. package/dist-types/vendors/analytics/fathom-analytics.d.ts +8 -8
  73. package/dist-types/vendors/analytics/google-tag.d.ts +17 -17
  74. package/dist-types/vendors/analytics/heap.d.ts +17 -17
  75. package/dist-types/vendors/analytics/hightouch.d.ts +15 -15
  76. package/dist-types/vendors/analytics/hotjar.d.ts +9 -9
  77. package/dist-types/vendors/analytics/logrocket.d.ts +11 -11
  78. package/dist-types/vendors/analytics/matomo-analytics.d.ts +3 -3
  79. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +12 -13
  80. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +20 -20
  81. package/dist-types/vendors/analytics/pirsch.d.ts +10 -10
  82. package/dist-types/vendors/analytics/plausible-analytics.d.ts +13 -13
  83. package/dist-types/vendors/analytics/posthog.d.ts +35 -32
  84. package/dist-types/vendors/analytics/promptwatch.d.ts +5 -5
  85. package/dist-types/vendors/analytics/rudderstack.d.ts +16 -16
  86. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +15 -15
  87. package/dist-types/vendors/analytics/segment.d.ts +11 -11
  88. package/dist-types/vendors/analytics/umami-analytics.d.ts +9 -9
  89. package/dist-types/vendors/analytics/vercel-analytics.d.ts +13 -13
  90. package/dist-types/vendors/functional/crisp.d.ts +9 -9
  91. package/dist-types/vendors/functional/intercom.d.ts +12 -12
  92. package/dist-types/vendors/tag-managers/cloudflare-zaraz.d.ts +39 -0
  93. package/dist-types/vendors/tag-managers/google-tag-manager.d.ts +16 -16
  94. package/docs/README.md +77 -48
  95. package/docs/assets/v3/brand-bar.png +0 -0
  96. package/docs/assets/v3/brand-card.png +0 -0
  97. package/docs/assets/v3/choice-wall.png +0 -0
  98. package/docs/assets/v3/mobile-card.png +0 -0
  99. package/docs/assets/v3/preferences.png +0 -0
  100. package/docs/customization/overview.md +45 -0
  101. package/docs/customization/recipes.md +79 -0
  102. package/docs/customization/slots.md +55 -0
  103. package/docs/customization/tokens.md +76 -0
  104. package/docs/customization/translations.md +49 -0
  105. package/docs/frameworks/javascript/script-loader.md +81 -343
  106. package/docs/frameworks/next/script-loader.md +164 -455
  107. package/docs/frameworks/react/script-loader.md +41 -533
  108. package/docs/guides/consent-state.md +60 -0
  109. package/docs/guides/data-fetching.md +163 -0
  110. package/docs/guides/deployment-modes.md +75 -0
  111. package/docs/guides/troubleshooting.md +68 -0
  112. package/docs/guides/verify-consent.md +62 -0
  113. package/docs/integrations/adobe-analytics.md +239 -105
  114. package/docs/integrations/ahrefs-analytics.md +238 -104
  115. package/docs/integrations/amplitude.md +219 -157
  116. package/docs/integrations/building-integrations.md +36 -223
  117. package/docs/integrations/clear-on-revocation.md +167 -0
  118. package/docs/integrations/clearbit.md +247 -86
  119. package/docs/integrations/cloudflare-web-analytics.md +250 -84
  120. package/docs/integrations/cloudflare-zaraz.md +399 -0
  121. package/docs/integrations/crisp.md +251 -97
  122. package/docs/integrations/databuddy.md +259 -153
  123. package/docs/integrations/fathom-analytics.md +239 -96
  124. package/docs/integrations/google-maps.md +328 -207
  125. package/docs/integrations/google-tag-manager.md +248 -96
  126. package/docs/integrations/google-tag.md +261 -90
  127. package/docs/integrations/granular-consent.md +208 -0
  128. package/docs/integrations/heap.md +222 -149
  129. package/docs/integrations/hightouch.md +225 -131
  130. package/docs/integrations/hotjar.md +239 -90
  131. package/docs/integrations/intercom.md +239 -98
  132. package/docs/integrations/linkedin-insights.md +243 -113
  133. package/docs/integrations/logrocket.md +241 -123
  134. package/docs/integrations/matomo-analytics.md +256 -111
  135. package/docs/integrations/meta-pixel.md +197 -324
  136. package/docs/integrations/microsoft-clarity.md +233 -114
  137. package/docs/integrations/microsoft-uet.md +245 -110
  138. package/docs/integrations/mixpanel-analytics.md +252 -87
  139. package/docs/integrations/openai-pixel.md +441 -0
  140. package/docs/integrations/overview.md +96 -133
  141. package/docs/integrations/pirsch.md +249 -96
  142. package/docs/integrations/plausible-analytics.md +241 -100
  143. package/docs/integrations/posthog.md +353 -214
  144. package/docs/integrations/promptwatch.md +251 -81
  145. package/docs/integrations/reddit-pixel.md +226 -173
  146. package/docs/integrations/rudderstack.md +244 -187
  147. package/docs/integrations/rybbit-analytics.md +244 -91
  148. package/docs/integrations/segment.md +238 -92
  149. package/docs/integrations/snapchat-pixel.md +240 -110
  150. package/docs/integrations/tiktok-pixel.md +249 -81
  151. package/docs/integrations/umami-analytics.md +242 -95
  152. package/docs/integrations/vercel-analytics.md +242 -90
  153. package/docs/integrations/x-pixel.md +238 -104
  154. package/docs/integrations/youtube.md +359 -142
  155. package/docs/upgrade-v3.md +381 -0
  156. package/package.json +90 -78
  157. package/dist/e2e-test-utils.cjs +0 -166
  158. package/dist/engine/compile.cjs +0 -130
  159. package/dist/engine/runtime.cjs +0 -475
  160. package/dist/registry.cjs +0 -423
  161. package/dist/resolve.cjs +0 -71
  162. package/dist/types.cjs +0 -69
  163. package/dist/vendors/_shared/attributes.cjs +0 -55
  164. package/dist/vendors/_shared/google-consent.cjs +0 -69
  165. package/dist/vendors/_shared/install-builders.cjs +0 -59
  166. package/dist/vendors/_shared/script-url.cjs +0 -78
  167. package/dist/vendors/ads-and-pixels/linkedin-insights.cjs +0 -89
  168. package/dist/vendors/ads-and-pixels/meta-pixel.cjs +0 -206
  169. package/dist/vendors/ads-and-pixels/microsoft-uet.cjs +0 -151
  170. package/dist/vendors/ads-and-pixels/reddit-pixel.cjs +0 -151
  171. package/dist/vendors/ads-and-pixels/snapchat-pixel.cjs +0 -131
  172. package/dist/vendors/ads-and-pixels/tiktok-pixel.cjs +0 -130
  173. package/dist/vendors/ads-and-pixels/x-pixel.cjs +0 -92
  174. package/dist/vendors/analytics/adobe-analytics.cjs +0 -90
  175. package/dist/vendors/analytics/ahrefs-analytics.cjs +0 -68
  176. package/dist/vendors/analytics/amplitude.cjs +0 -193
  177. package/dist/vendors/analytics/clearbit.cjs +0 -69
  178. package/dist/vendors/analytics/cloudflare-web-analytics.cjs +0 -73
  179. package/dist/vendors/analytics/databuddy.cjs +0 -144
  180. package/dist/vendors/analytics/fathom-analytics.cjs +0 -76
  181. package/dist/vendors/analytics/google-tag.cjs +0 -107
  182. package/dist/vendors/analytics/heap.cjs +0 -181
  183. package/dist/vendors/analytics/hightouch.cjs +0 -153
  184. package/dist/vendors/analytics/hotjar.cjs +0 -85
  185. package/dist/vendors/analytics/logrocket.cjs +0 -99
  186. package/dist/vendors/analytics/matomo-analytics.cjs +0 -232
  187. package/dist/vendors/analytics/microsoft-clarity.cjs +0 -138
  188. package/dist/vendors/analytics/mixpanel-analytics.cjs +0 -134
  189. package/dist/vendors/analytics/pirsch.cjs +0 -108
  190. package/dist/vendors/analytics/plausible-analytics.cjs +0 -122
  191. package/dist/vendors/analytics/posthog.cjs +0 -236
  192. package/dist/vendors/analytics/promptwatch.cjs +0 -70
  193. package/dist/vendors/analytics/rudderstack.cjs +0 -227
  194. package/dist/vendors/analytics/rybbit-analytics.cjs +0 -104
  195. package/dist/vendors/analytics/segment.cjs +0 -97
  196. package/dist/vendors/analytics/umami-analytics.cjs +0 -80
  197. package/dist/vendors/analytics/vercel-analytics.cjs +0 -94
  198. package/dist/vendors/functional/crisp.cjs +0 -143
  199. package/dist/vendors/functional/intercom.cjs +0 -89
  200. package/dist/vendors/tag-managers/google-tag-manager.cjs +0 -100
  201. package/docs/shared/react/guides/script-loader.md +0 -311
  202. package/readme.json +0 -19
@@ -1,122 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, getters, values)=>{
5
- var define = (defs, kind)=>{
6
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- [kind]: defs[key]
9
- });
10
- };
11
- define(getters, "get");
12
- define(values, "value");
13
- };
14
- })();
15
- (()=>{
16
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
- })();
18
- (()=>{
19
- __webpack_require__.r = (exports1)=>{
20
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
- value: 'Module'
22
- });
23
- Object.defineProperty(exports1, '__esModule', {
24
- value: true
25
- });
26
- };
27
- })();
28
- var __webpack_exports__ = {};
29
- __webpack_require__.r(__webpack_exports__);
30
- __webpack_require__.d(__webpack_exports__, {
31
- plausibleAnalytics: ()=>plausibleAnalytics,
32
- plausibleAnalyticsManifest: ()=>plausibleAnalyticsManifest
33
- });
34
- const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
- const external_types_cjs_namespaceObject = require("../../types.cjs");
36
- function buildPlausibleScriptUrl(options) {
37
- if (options.scriptId) return `https://plausible.io/js/pa-${options.scriptId}.js`;
38
- if (options.extension) {
39
- let extensions;
40
- extensions = Array.isArray(options.extension) ? options.extension.join('.') : options.extension;
41
- return `https://plausible.io/js/script.${extensions}.js`;
42
- }
43
- return "https://plausible.io/js/script.js";
44
- }
45
- function buildPlausibleInitOptions(options) {
46
- const initOptions = {};
47
- if (options.customProperties) initOptions.customProperties = options.customProperties;
48
- if (options.endpoint) initOptions.endpoint = options.endpoint;
49
- if (options.fileDownloads) initOptions.fileDownloads = options.fileDownloads;
50
- if (void 0 !== options.hashBasedRouting) initOptions.hashBasedRouting = options.hashBasedRouting;
51
- if (void 0 !== options.autoCapturePageviews) initOptions.autoCapturePageviews = options.autoCapturePageviews;
52
- if (void 0 !== options.captureOnLocalhost) initOptions.captureOnLocalhost = options.captureOnLocalhost;
53
- return initOptions;
54
- }
55
- const plausibleAnalyticsManifest = {
56
- ...external_types_cjs_namespaceObject.vendorManifestContract,
57
- vendor: 'plausible-analytics',
58
- category: 'measurement',
59
- bootstrap: [
60
- {
61
- type: 'defineStubFunction',
62
- name: 'plausible',
63
- queue: {
64
- property: 'q'
65
- },
66
- queueFormat: 'array',
67
- properties: {
68
- o: '{{initOptions}}'
69
- },
70
- ifUndefined: true
71
- }
72
- ],
73
- install: [
74
- {
75
- type: 'loadScript',
76
- src: "{{scriptUrl}}",
77
- defer: true,
78
- attributes: {
79
- 'data-domain': '{{domain}}',
80
- 'data-api': '{{apiAttribute}}'
81
- }
82
- }
83
- ]
84
- };
85
- function plausibleAnalytics(options) {
86
- let scriptId;
87
- if (options.scriptId) scriptId = options.scriptId.trim();
88
- let domain;
89
- if (options.domain) domain = options.domain.trim();
90
- if (!scriptId && !domain) throw new Error("plausibleAnalytics: missing scriptId or domain");
91
- const normalizedOptions = {
92
- ...options
93
- };
94
- if (scriptId) normalizedOptions.scriptId = scriptId;
95
- else delete normalizedOptions.scriptId;
96
- if (domain) normalizedOptions.domain = domain;
97
- else delete normalizedOptions.domain;
98
- const manifestOptions = {
99
- scriptUrl: normalizedOptions.scriptUrl ?? buildPlausibleScriptUrl(normalizedOptions),
100
- domain: void 0,
101
- apiAttribute: void 0,
102
- initOptions: buildPlausibleInitOptions(normalizedOptions)
103
- };
104
- if (scriptId) {
105
- manifestOptions.domain = void 0;
106
- manifestOptions.apiAttribute = void 0;
107
- } else {
108
- manifestOptions.domain = domain;
109
- manifestOptions.apiAttribute = normalizedOptions.endpoint;
110
- }
111
- const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(plausibleAnalyticsManifest, manifestOptions);
112
- return resolved;
113
- }
114
- exports.plausibleAnalytics = __webpack_exports__.plausibleAnalytics;
115
- exports.plausibleAnalyticsManifest = __webpack_exports__.plausibleAnalyticsManifest;
116
- for(var __rspack_i in __webpack_exports__)if (-1 === [
117
- "plausibleAnalytics",
118
- "plausibleAnalyticsManifest"
119
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
120
- Object.defineProperty(exports, '__esModule', {
121
- value: true
122
- });
@@ -1,236 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, getters, values)=>{
5
- var define = (defs, kind)=>{
6
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- [kind]: defs[key]
9
- });
10
- };
11
- define(getters, "get");
12
- define(values, "value");
13
- };
14
- })();
15
- (()=>{
16
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
- })();
18
- (()=>{
19
- __webpack_require__.r = (exports1)=>{
20
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
- value: 'Module'
22
- });
23
- Object.defineProperty(exports1, '__esModule', {
24
- value: true
25
- });
26
- };
27
- })();
28
- var __webpack_exports__ = {};
29
- __webpack_require__.r(__webpack_exports__);
30
- __webpack_require__.d(__webpack_exports__, {
31
- posthog: ()=>posthog,
32
- posthogManifest: ()=>posthogManifest
33
- });
34
- const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
- const external_types_cjs_namespaceObject = require("../../types.cjs");
36
- const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
37
- const DEFAULT_API_HOST = 'https://eu.i.posthog.com';
38
- const DEFAULT_SCRIPT_URL = 'https://eu-assets.i.posthog.com/static/array.js';
39
- const DEFAULT_UI_HOST = 'https://eu.posthog.com';
40
- const DEFAULTS_DATE = '2026-01-30';
41
- const REGION_HOSTS = {
42
- eu: {
43
- apiHost: DEFAULT_API_HOST,
44
- uiHost: DEFAULT_UI_HOST,
45
- scriptUrl: DEFAULT_SCRIPT_URL
46
- },
47
- us: {
48
- apiHost: 'https://us.i.posthog.com',
49
- uiHost: 'https://us.posthog.com',
50
- scriptUrl: 'https://us-assets.i.posthog.com/static/array.js'
51
- }
52
- };
53
- function normalizeHost(host) {
54
- return (0, script_url_cjs_namespaceObject.stripTrailingSlashes)(host);
55
- }
56
- function regionFromHost(host) {
57
- const normalized = normalizeHost(host);
58
- if (/^https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com$/i.test(normalized)) return 'us';
59
- if (/^https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com$/i.test(normalized)) return 'eu';
60
- }
61
- function deriveScriptUrlFromApiHost(apiHost) {
62
- const normalized = normalizeHost(apiHost);
63
- const region = regionFromHost(normalized);
64
- if (region) return REGION_HOSTS[region].scriptUrl;
65
- return `${normalized}/static/array.js`;
66
- }
67
- function resolvePosthogHosts(options) {
68
- const regionDefaults = REGION_HOSTS[options.region ?? 'eu'];
69
- const apiHost = normalizeHost(options.apiHost ?? regionDefaults.apiHost);
70
- const inferredRegion = regionFromHost(apiHost);
71
- let uiHost;
72
- uiHost = void 0 !== options.uiHost ? options.uiHost : inferredRegion ? REGION_HOSTS[inferredRegion].uiHost : void 0 !== options.region ? REGION_HOSTS[options.region].uiHost : apiHost;
73
- let scriptUrl;
74
- scriptUrl = void 0 !== options.scriptUrl ? options.scriptUrl : void 0 !== options.apiHost ? deriveScriptUrlFromApiHost(apiHost) : regionDefaults.scriptUrl;
75
- return {
76
- apiHost,
77
- uiHost: normalizeHost(uiHost),
78
- scriptUrl
79
- };
80
- }
81
- const posthogManifest = {
82
- ...external_types_cjs_namespaceObject.vendorManifestContract,
83
- vendor: 'posthog',
84
- category: 'measurement',
85
- alwaysLoad: true,
86
- bootstrap: [
87
- {
88
- type: 'setGlobal',
89
- name: 'posthog',
90
- value: [],
91
- ifUndefined: true
92
- },
93
- {
94
- type: 'setGlobalPath',
95
- path: [
96
- 'posthog',
97
- '_i'
98
- ],
99
- value: [
100
- [
101
- '{{id}}',
102
- '{{initOptions}}',
103
- 'posthog'
104
- ]
105
- ],
106
- ifGlobalIsQueue: true
107
- },
108
- {
109
- type: 'setGlobalPath',
110
- path: [
111
- 'posthog',
112
- 'people'
113
- ],
114
- value: [],
115
- ifGlobalIsQueue: true
116
- },
117
- {
118
- type: 'defineQueueMethods',
119
- target: 'posthog',
120
- methods: [
121
- 'capture',
122
- 'opt_in_capturing',
123
- 'opt_out_capturing'
124
- ]
125
- },
126
- {
127
- type: 'defineGlobalMethods',
128
- target: 'posthog',
129
- ifGlobalIsQueue: true,
130
- methods: [
131
- {
132
- name: 'init',
133
- behavior: 'noop'
134
- },
135
- {
136
- name: 'get_explicit_consent_status',
137
- behavior: 'return',
138
- value: 'pending'
139
- }
140
- ]
141
- }
142
- ],
143
- install: [
144
- {
145
- type: 'loadScript',
146
- src: "{{scriptUrl}}",
147
- async: true,
148
- attributes: {
149
- crossorigin: 'anonymous',
150
- 'data-api-host': '{{apiHost}}',
151
- 'data-ui-host': '{{uiHost}}'
152
- }
153
- }
154
- ],
155
- onBeforeLoadGranted: [
156
- {
157
- type: 'pushToQueue',
158
- queue: 'posthog',
159
- value: [
160
- 'opt_in_capturing',
161
- {
162
- captureEventName: null
163
- }
164
- ]
165
- }
166
- ],
167
- onBeforeLoadDenied: [
168
- {
169
- type: 'pushToQueue',
170
- queue: 'posthog',
171
- value: [
172
- 'opt_out_capturing'
173
- ]
174
- }
175
- ],
176
- onLoadGranted: [
177
- {
178
- type: 'callGlobal',
179
- global: 'posthog',
180
- method: 'opt_in_capturing'
181
- }
182
- ],
183
- onLoadDenied: [
184
- {
185
- type: 'callGlobal',
186
- global: 'posthog',
187
- method: 'opt_out_capturing'
188
- }
189
- ],
190
- onConsentGranted: [
191
- {
192
- type: 'callGlobal',
193
- global: 'posthog',
194
- method: 'opt_in_capturing'
195
- }
196
- ],
197
- onConsentDenied: [
198
- {
199
- type: 'callGlobal',
200
- global: 'posthog',
201
- method: 'opt_out_capturing'
202
- }
203
- ]
204
- };
205
- function posthog(options) {
206
- if ('disabled' === options.loadMode) return {
207
- id: 'posthog',
208
- category: 'measurement',
209
- callbackOnly: true
210
- };
211
- const { apiHost, uiHost, scriptUrl } = resolvePosthogHosts(options);
212
- const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(posthogManifest, {
213
- id: options.id,
214
- apiHost,
215
- uiHost,
216
- scriptUrl,
217
- initOptions: {
218
- defaults: DEFAULTS_DATE,
219
- cookieless_mode: 'on_reject',
220
- ...options.initOptions,
221
- api_host: apiHost,
222
- ui_host: uiHost
223
- }
224
- });
225
- if ('after-consent' === options.loadMode) resolved.alwaysLoad = void 0;
226
- return resolved;
227
- }
228
- exports.posthog = __webpack_exports__.posthog;
229
- exports.posthogManifest = __webpack_exports__.posthogManifest;
230
- for(var __rspack_i in __webpack_exports__)if (-1 === [
231
- "posthog",
232
- "posthogManifest"
233
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
234
- Object.defineProperty(exports, '__esModule', {
235
- value: true
236
- });
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, getters, values)=>{
5
- var define = (defs, kind)=>{
6
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- [kind]: defs[key]
9
- });
10
- };
11
- define(getters, "get");
12
- define(values, "value");
13
- };
14
- })();
15
- (()=>{
16
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
- })();
18
- (()=>{
19
- __webpack_require__.r = (exports1)=>{
20
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
- value: 'Module'
22
- });
23
- Object.defineProperty(exports1, '__esModule', {
24
- value: true
25
- });
26
- };
27
- })();
28
- var __webpack_exports__ = {};
29
- __webpack_require__.r(__webpack_exports__);
30
- __webpack_require__.d(__webpack_exports__, {
31
- promptwatch: ()=>promptwatch,
32
- promptwatchManifest: ()=>promptwatchManifest
33
- });
34
- const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
- const external_types_cjs_namespaceObject = require("../../types.cjs");
36
- const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
37
- const promptwatchManifest = {
38
- ...external_types_cjs_namespaceObject.vendorManifestContract,
39
- vendor: 'promptwatch',
40
- category: 'measurement',
41
- install: [
42
- {
43
- type: 'loadScript',
44
- src: "{{scriptUrl}}",
45
- async: true,
46
- attributes: {
47
- 'data-project-id': '{{projectId}}'
48
- }
49
- }
50
- ]
51
- };
52
- function promptwatch({ projectId, scriptUrl }) {
53
- const normalizedProjectId = projectId.trim();
54
- if (0 === normalizedProjectId.length) throw new Error('promptwatch: invalid projectId - must be a non-empty string');
55
- const defaultScriptUrl = 'https://ingest.promptwatch.com/js/client.min.js';
56
- const normalizedScriptUrl = (0, script_url_cjs_namespaceObject.resolveScriptUrl)((0, script_url_cjs_namespaceObject.trimToUndefined)(scriptUrl), defaultScriptUrl);
57
- return (0, external_resolve_cjs_namespaceObject.resolveManifest)(promptwatchManifest, {
58
- projectId: normalizedProjectId,
59
- scriptUrl: normalizedScriptUrl
60
- });
61
- }
62
- exports.promptwatch = __webpack_exports__.promptwatch;
63
- exports.promptwatchManifest = __webpack_exports__.promptwatchManifest;
64
- for(var __rspack_i in __webpack_exports__)if (-1 === [
65
- "promptwatch",
66
- "promptwatchManifest"
67
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
68
- Object.defineProperty(exports, '__esModule', {
69
- value: true
70
- });
@@ -1,227 +0,0 @@
1
- "use strict";
2
- var __webpack_require__ = {};
3
- (()=>{
4
- __webpack_require__.d = (exports1, getters, values)=>{
5
- var define = (defs, kind)=>{
6
- for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
- enumerable: true,
8
- [kind]: defs[key]
9
- });
10
- };
11
- define(getters, "get");
12
- define(values, "value");
13
- };
14
- })();
15
- (()=>{
16
- __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
- })();
18
- (()=>{
19
- __webpack_require__.r = (exports1)=>{
20
- if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
- value: 'Module'
22
- });
23
- Object.defineProperty(exports1, '__esModule', {
24
- value: true
25
- });
26
- };
27
- })();
28
- var __webpack_exports__ = {};
29
- __webpack_require__.r(__webpack_exports__);
30
- __webpack_require__.d(__webpack_exports__, {
31
- RUDDERSTACK_QUEUE_METHODS: ()=>RUDDERSTACK_QUEUE_METHODS,
32
- rudderstack: ()=>rudderstack,
33
- rudderstackManifest: ()=>rudderstackManifest
34
- });
35
- const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
36
- const external_types_cjs_namespaceObject = require("../../types.cjs");
37
- const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
38
- const DEFAULT_RUDDERSTACK_SCRIPT_URL = 'https://cdn.rudderlabs.com/v3/modern/rsa.min.js';
39
- const RUDDERSTACK_QUEUE_METHODS = [
40
- 'setDefaultInstanceKey',
41
- 'load',
42
- 'ready',
43
- 'page',
44
- 'track',
45
- 'identify',
46
- 'alias',
47
- 'group',
48
- 'reset',
49
- 'setAnonymousId',
50
- 'startSession',
51
- 'endSession',
52
- 'consent',
53
- 'addCustomIntegration'
54
- ];
55
- const rudderstackManifest = {
56
- ...external_types_cjs_namespaceObject.vendorManifestContract,
57
- vendor: 'rudderstack',
58
- category: 'measurement',
59
- bootstrap: [
60
- {
61
- type: 'setGlobal',
62
- name: 'rudderanalytics',
63
- value: [],
64
- ifUndefined: true
65
- },
66
- {
67
- type: 'setGlobal',
68
- name: 'RudderSnippetVersion',
69
- value: '3.0.32'
70
- },
71
- {
72
- type: 'setGlobal',
73
- name: 'rudderAnalyticsBuildType',
74
- value: 'modern'
75
- },
76
- {
77
- type: 'setGlobalPath',
78
- path: [
79
- 'rudderanalytics',
80
- 'snippetExecuted'
81
- ],
82
- value: true
83
- },
84
- {
85
- type: 'defineQueueMethods',
86
- target: 'rudderanalytics',
87
- methods: [
88
- ...RUDDERSTACK_QUEUE_METHODS
89
- ]
90
- }
91
- ],
92
- install: [
93
- {
94
- type: 'callGlobal',
95
- global: 'rudderanalytics',
96
- method: 'load',
97
- args: [
98
- '{{writeKey}}',
99
- '{{dataPlaneUrl}}',
100
- '{{loadOptions}}'
101
- ]
102
- },
103
- {
104
- type: 'callGlobal',
105
- global: 'rudderanalytics',
106
- method: 'page'
107
- },
108
- {
109
- type: 'loadScript',
110
- src: "{{scriptUrl}}",
111
- async: true,
112
- attributes: {
113
- 'data-loader': 'RS_JS_SDK',
114
- 'data-rsa-write-key': '{{writeKey}}'
115
- }
116
- }
117
- ]
118
- };
119
- function validateRequiredString(value, label) {
120
- const normalized = 'string' == typeof value ? value.trim() : '';
121
- if (0 === normalized.length) throw new Error(`rudderstack: missing or invalid ${label}`);
122
- return normalized;
123
- }
124
- function validateOptionalHttpsScriptUrl(scriptUrl) {
125
- if (void 0 === scriptUrl) return;
126
- let parsed;
127
- try {
128
- parsed = new URL(scriptUrl);
129
- } catch {
130
- throw new Error("rudderstack: scriptUrl must be a valid https URL");
131
- }
132
- if ('https:' !== parsed.protocol) throw new Error("rudderstack: scriptUrl must be a valid https URL");
133
- return scriptUrl;
134
- }
135
- function isJsonObjectValue(value) {
136
- return 'object' == typeof value && null !== value && !Array.isArray(value);
137
- }
138
- function validateConsentMapping(consentManagement) {
139
- const normalized = {};
140
- for (const [category, ids] of Object.entries(consentManagement.mapping)){
141
- if (!Array.isArray(ids)) throw new Error(`rudderstack: consentManagement.mapping.${category} must be an array of consent IDs`);
142
- const trimmed = ids.map((id)=>{
143
- if ('string' == typeof id) return id.trim();
144
- return '';
145
- }).filter((id)=>id.length > 0);
146
- if (0 === trimmed.length) throw new Error(`rudderstack: consentManagement.mapping.${category} is declared but contains no valid consent IDs`);
147
- normalized[category] = trimmed;
148
- }
149
- if (0 === Object.keys(normalized).length) throw new Error('rudderstack: consentManagement.mapping must map at least one c15t category to a non-empty list of RudderStack consent IDs');
150
- return normalized;
151
- }
152
- function buildPreConsentLoadOptions(loadOptions) {
153
- let userConsentManagement = {};
154
- if (isJsonObjectValue(loadOptions.consentManagement)) userConsentManagement = loadOptions.consentManagement;
155
- let userPreConsent = {};
156
- if (isJsonObjectValue(loadOptions.preConsent)) userPreConsent = loadOptions.preConsent;
157
- let storage = {
158
- strategy: 'none'
159
- };
160
- if (isJsonObjectValue(userPreConsent.storage)) storage = userPreConsent.storage;
161
- return {
162
- ...loadOptions,
163
- preConsent: {
164
- ...userPreConsent,
165
- enabled: true,
166
- storage,
167
- events: {
168
- delivery: 'buffer'
169
- }
170
- },
171
- consentManagement: {
172
- ...userConsentManagement,
173
- enabled: true,
174
- provider: 'custom'
175
- }
176
- };
177
- }
178
- function validateDataPlaneUrl(dataPlaneUrl) {
179
- const normalized = validateRequiredString(dataPlaneUrl, 'dataPlaneUrl');
180
- let parsed;
181
- try {
182
- parsed = new URL(normalized);
183
- } catch {
184
- throw new Error('rudderstack: dataPlaneUrl must be a valid https URL');
185
- }
186
- if ('https:' !== parsed.protocol) throw new Error('rudderstack: dataPlaneUrl must be a valid https URL');
187
- return normalized;
188
- }
189
- function rudderstack({ writeKey, dataPlaneUrl, consentManagement, loadOptions = {}, trackPageView = true, scriptUrl }) {
190
- const normalizedWriteKey = validateRequiredString(writeKey, 'writeKey');
191
- const normalizedDataPlaneUrl = validateDataPlaneUrl(dataPlaneUrl);
192
- let manifest = rudderstackManifest;
193
- let resolvedLoadOptions = loadOptions;
194
- if (consentManagement) {
195
- const consentMapping = validateConsentMapping(consentManagement);
196
- manifest = {
197
- ...manifest,
198
- alwaysLoad: true,
199
- persistAfterConsentRevoked: true,
200
- consentMapping,
201
- consentSignal: 'rudderstack',
202
- consentSignalTarget: 'rudderanalytics'
203
- };
204
- resolvedLoadOptions = buildPreConsentLoadOptions(loadOptions);
205
- }
206
- if (!trackPageView) manifest = {
207
- ...manifest,
208
- install: manifest.install.filter((step)=>!('callGlobal' === step.type && 'rudderanalytics' === step.global && 'page' === step.method))
209
- };
210
- return (0, external_resolve_cjs_namespaceObject.resolveManifest)(manifest, {
211
- dataPlaneUrl: normalizedDataPlaneUrl,
212
- loadOptions: resolvedLoadOptions,
213
- writeKey: normalizedWriteKey,
214
- scriptUrl: (0, script_url_cjs_namespaceObject.resolveScriptUrl)(validateOptionalHttpsScriptUrl((0, script_url_cjs_namespaceObject.trimToUndefined)(scriptUrl)), DEFAULT_RUDDERSTACK_SCRIPT_URL)
215
- });
216
- }
217
- exports.RUDDERSTACK_QUEUE_METHODS = __webpack_exports__.RUDDERSTACK_QUEUE_METHODS;
218
- exports.rudderstack = __webpack_exports__.rudderstack;
219
- exports.rudderstackManifest = __webpack_exports__.rudderstackManifest;
220
- for(var __rspack_i in __webpack_exports__)if (-1 === [
221
- "RUDDERSTACK_QUEUE_METHODS",
222
- "rudderstack",
223
- "rudderstackManifest"
224
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
225
- Object.defineProperty(exports, '__esModule', {
226
- value: true
227
- });