@c15t/scripts 2.0.1 → 2.2.0-canary-20260727202135

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 (182) hide show
  1. package/AGENTS.md +62 -0
  2. package/README.md +41 -29
  3. package/dist/e2e-test-utils.cjs +51 -10
  4. package/dist/e2e-test-utils.js +37 -3
  5. package/dist/engine/compile.cjs +9 -5
  6. package/dist/engine/runtime.cjs +111 -17
  7. package/dist/engine/runtime.js +102 -12
  8. package/dist/registry.cjs +423 -0
  9. package/dist/registry.js +372 -0
  10. package/dist/resolve.cjs +9 -5
  11. package/dist/types.cjs +32 -10
  12. package/dist/types.js +10 -1
  13. package/dist/vendors/_shared/attributes.cjs +55 -0
  14. package/dist/vendors/_shared/attributes.js +14 -0
  15. package/dist/vendors/_shared/google-consent.cjs +69 -0
  16. package/dist/vendors/_shared/google-consent.js +27 -0
  17. package/dist/vendors/_shared/install-builders.cjs +59 -0
  18. package/dist/vendors/_shared/install-builders.js +21 -0
  19. package/dist/vendors/_shared/script-url.cjs +78 -0
  20. package/dist/vendors/_shared/script-url.js +28 -0
  21. package/dist/{linkedin-insights.cjs → vendors/ads-and-pixels/linkedin-insights.cjs} +11 -7
  22. package/dist/{linkedin-insights.js → vendors/ads-and-pixels/linkedin-insights.js} +2 -2
  23. package/dist/vendors/ads-and-pixels/meta-pixel.cjs +206 -0
  24. package/dist/vendors/ads-and-pixels/meta-pixel.js +153 -0
  25. package/dist/{microsoft-uet.cjs → vendors/ads-and-pixels/microsoft-uet.cjs} +42 -21
  26. package/dist/{microsoft-uet.js → vendors/ads-and-pixels/microsoft-uet.js} +31 -14
  27. package/dist/vendors/ads-and-pixels/reddit-pixel.cjs +151 -0
  28. package/dist/vendors/ads-and-pixels/reddit-pixel.js +107 -0
  29. package/dist/vendors/ads-and-pixels/snapchat-pixel.cjs +131 -0
  30. package/dist/vendors/ads-and-pixels/snapchat-pixel.js +87 -0
  31. package/dist/{tiktok-pixel.cjs → vendors/ads-and-pixels/tiktok-pixel.cjs} +11 -7
  32. package/dist/{tiktok-pixel.js → vendors/ads-and-pixels/tiktok-pixel.js} +2 -2
  33. package/dist/{x-pixel.cjs → vendors/ads-and-pixels/x-pixel.cjs} +15 -8
  34. package/dist/{x-pixel.js → vendors/ads-and-pixels/x-pixel.js} +6 -3
  35. package/dist/vendors/analytics/adobe-analytics.cjs +90 -0
  36. package/dist/vendors/analytics/adobe-analytics.js +49 -0
  37. package/dist/vendors/analytics/ahrefs-analytics.cjs +68 -0
  38. package/dist/vendors/analytics/ahrefs-analytics.js +27 -0
  39. package/dist/vendors/analytics/amplitude.cjs +193 -0
  40. package/dist/vendors/analytics/amplitude.js +134 -0
  41. package/dist/vendors/analytics/clearbit.cjs +69 -0
  42. package/dist/vendors/analytics/clearbit.js +28 -0
  43. package/dist/vendors/analytics/cloudflare-web-analytics.cjs +73 -0
  44. package/dist/vendors/analytics/cloudflare-web-analytics.js +32 -0
  45. package/dist/{databuddy.cjs → vendors/analytics/databuddy.cjs} +14 -10
  46. package/dist/{databuddy.js → vendors/analytics/databuddy.js} +3 -3
  47. package/dist/vendors/analytics/fathom-analytics.cjs +76 -0
  48. package/dist/vendors/analytics/fathom-analytics.js +35 -0
  49. package/dist/{google-tag.cjs → vendors/analytics/google-tag.cjs} +18 -35
  50. package/dist/{google-tag.js → vendors/analytics/google-tag.js} +7 -28
  51. package/dist/vendors/analytics/heap.cjs +181 -0
  52. package/dist/vendors/analytics/heap.js +134 -0
  53. package/dist/vendors/analytics/hightouch.cjs +153 -0
  54. package/dist/vendors/analytics/hightouch.js +109 -0
  55. package/dist/vendors/analytics/hotjar.cjs +85 -0
  56. package/dist/vendors/analytics/hotjar.js +44 -0
  57. package/dist/vendors/analytics/logrocket.cjs +99 -0
  58. package/dist/vendors/analytics/logrocket.js +58 -0
  59. package/dist/vendors/analytics/matomo-analytics.cjs +232 -0
  60. package/dist/vendors/analytics/matomo-analytics.js +191 -0
  61. package/dist/vendors/analytics/microsoft-clarity.cjs +138 -0
  62. package/dist/vendors/analytics/microsoft-clarity.js +97 -0
  63. package/dist/vendors/analytics/mixpanel-analytics.cjs +134 -0
  64. package/dist/vendors/analytics/mixpanel-analytics.js +93 -0
  65. package/dist/vendors/analytics/pirsch.cjs +108 -0
  66. package/dist/vendors/analytics/pirsch.js +67 -0
  67. package/dist/vendors/analytics/plausible-analytics.cjs +122 -0
  68. package/dist/vendors/analytics/plausible-analytics.js +81 -0
  69. package/dist/vendors/analytics/posthog.cjs +204 -0
  70. package/dist/vendors/analytics/posthog.js +163 -0
  71. package/dist/vendors/analytics/promptwatch.cjs +70 -0
  72. package/dist/vendors/analytics/promptwatch.js +29 -0
  73. package/dist/vendors/analytics/rudderstack.cjs +227 -0
  74. package/dist/vendors/analytics/rudderstack.js +183 -0
  75. package/dist/vendors/analytics/rybbit-analytics.cjs +104 -0
  76. package/dist/vendors/analytics/rybbit-analytics.js +63 -0
  77. package/dist/vendors/analytics/segment.cjs +97 -0
  78. package/dist/vendors/analytics/segment.js +56 -0
  79. package/dist/vendors/analytics/umami-analytics.cjs +80 -0
  80. package/dist/vendors/analytics/umami-analytics.js +39 -0
  81. package/dist/vendors/analytics/vercel-analytics.cjs +94 -0
  82. package/dist/vendors/analytics/vercel-analytics.js +53 -0
  83. package/dist/vendors/functional/crisp.cjs +143 -0
  84. package/dist/vendors/functional/crisp.js +102 -0
  85. package/dist/vendors/functional/intercom.cjs +89 -0
  86. package/dist/vendors/functional/intercom.js +45 -0
  87. package/dist/{google-tag-manager.cjs → vendors/tag-managers/google-tag-manager.cjs} +17 -34
  88. package/dist/{google-tag-manager.js → vendors/tag-managers/google-tag-manager.js} +6 -27
  89. package/dist-types/__tests__/helpers.d.ts +141 -0
  90. package/dist-types/engine/runtime.d.ts +1 -1
  91. package/dist-types/registry.d.ts +440 -0
  92. package/dist-types/types.d.ts +53 -2
  93. package/dist-types/vendors/_shared/attributes.d.ts +35 -0
  94. package/dist-types/vendors/_shared/google-consent.d.ts +47 -0
  95. package/dist-types/vendors/_shared/install-builders.d.ts +30 -0
  96. package/dist-types/vendors/_shared/script-url.d.ts +75 -0
  97. package/dist-types/vendors/ads-and-pixels/linkedin-insights.d.ts +92 -0
  98. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +289 -0
  99. package/dist-types/{microsoft-uet.d.ts → vendors/ads-and-pixels/microsoft-uet.d.ts} +45 -34
  100. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +211 -0
  101. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +171 -0
  102. package/dist-types/{tiktok-pixel.d.ts → vendors/ads-and-pixels/tiktok-pixel.d.ts} +48 -33
  103. package/dist-types/{x-pixel.d.ts → vendors/ads-and-pixels/x-pixel.d.ts} +34 -17
  104. package/dist-types/vendors/analytics/adobe-analytics.d.ts +75 -0
  105. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +62 -0
  106. package/dist-types/vendors/analytics/amplitude.d.ts +234 -0
  107. package/dist-types/vendors/analytics/clearbit.d.ts +60 -0
  108. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +67 -0
  109. package/dist-types/{databuddy.d.ts → vendors/analytics/databuddy.d.ts} +25 -25
  110. package/dist-types/vendors/analytics/fathom-analytics.d.ts +90 -0
  111. package/dist-types/{google-tag.d.ts → vendors/analytics/google-tag.d.ts} +21 -24
  112. package/dist-types/vendors/analytics/heap.d.ts +316 -0
  113. package/dist-types/vendors/analytics/hightouch.d.ts +285 -0
  114. package/dist-types/vendors/analytics/hotjar.d.ts +73 -0
  115. package/dist-types/vendors/analytics/logrocket.d.ts +101 -0
  116. package/dist-types/vendors/analytics/matomo-analytics.d.ts +41 -0
  117. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +98 -0
  118. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +113 -0
  119. package/dist-types/vendors/analytics/pirsch.d.ts +96 -0
  120. package/dist-types/vendors/analytics/plausible-analytics.d.ts +122 -0
  121. package/dist-types/vendors/analytics/posthog.d.ts +154 -0
  122. package/dist-types/vendors/analytics/promptwatch.d.ts +36 -0
  123. package/dist-types/vendors/analytics/rudderstack.d.ts +330 -0
  124. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +82 -0
  125. package/dist-types/vendors/analytics/segment.d.ts +158 -0
  126. package/dist-types/vendors/analytics/umami-analytics.d.ts +93 -0
  127. package/dist-types/vendors/analytics/vercel-analytics.d.ts +66 -0
  128. package/dist-types/vendors/functional/crisp.d.ts +78 -0
  129. package/dist-types/vendors/functional/intercom.d.ts +135 -0
  130. package/dist-types/{google-tag-manager.d.ts → vendors/tag-managers/google-tag-manager.d.ts} +22 -25
  131. package/docs/README.md +62 -0
  132. package/docs/frameworks/javascript/script-loader.md +354 -0
  133. package/docs/frameworks/next/script-loader.md +499 -0
  134. package/docs/frameworks/react/script-loader.md +553 -0
  135. package/docs/integrations/adobe-analytics.md +160 -0
  136. package/docs/integrations/ahrefs-analytics.md +157 -0
  137. package/docs/integrations/amplitude.md +230 -0
  138. package/docs/integrations/building-integrations.md +239 -0
  139. package/docs/integrations/clearbit.md +130 -0
  140. package/docs/integrations/cloudflare-web-analytics.md +126 -0
  141. package/docs/integrations/crisp.md +140 -0
  142. package/docs/integrations/databuddy.md +205 -0
  143. package/docs/integrations/fathom-analytics.md +150 -0
  144. package/docs/integrations/google-maps.md +263 -0
  145. package/docs/integrations/google-tag-manager.md +154 -0
  146. package/docs/integrations/google-tag.md +134 -0
  147. package/docs/integrations/heap.md +219 -0
  148. package/docs/integrations/hightouch.md +199 -0
  149. package/docs/integrations/hotjar.md +143 -0
  150. package/docs/integrations/intercom.md +144 -0
  151. package/docs/integrations/linkedin-insights.md +161 -0
  152. package/docs/integrations/logrocket.md +175 -0
  153. package/docs/integrations/matomo-analytics.md +171 -0
  154. package/docs/integrations/meta-pixel.md +412 -0
  155. package/docs/integrations/microsoft-clarity.md +173 -0
  156. package/docs/integrations/microsoft-uet.md +156 -0
  157. package/docs/integrations/mixpanel-analytics.md +130 -0
  158. package/docs/integrations/overview.md +149 -0
  159. package/docs/integrations/pirsch.md +142 -0
  160. package/docs/integrations/plausible-analytics.md +154 -0
  161. package/docs/integrations/posthog.md +258 -0
  162. package/docs/integrations/promptwatch.md +121 -0
  163. package/docs/integrations/reddit-pixel.md +241 -0
  164. package/docs/integrations/rudderstack.md +271 -0
  165. package/docs/integrations/rybbit-analytics.md +143 -0
  166. package/docs/integrations/segment.md +146 -0
  167. package/docs/integrations/snapchat-pixel.md +163 -0
  168. package/docs/integrations/tiktok-pixel.md +123 -0
  169. package/docs/integrations/umami-analytics.md +148 -0
  170. package/docs/integrations/vercel-analytics.md +141 -0
  171. package/docs/integrations/x-pixel.md +157 -0
  172. package/docs/integrations/youtube.md +193 -0
  173. package/docs/shared/react/guides/script-loader.md +309 -0
  174. package/package.json +223 -8
  175. package/readme.json +8 -4
  176. package/dist/meta-pixel.cjs +0 -129
  177. package/dist/meta-pixel.js +0 -89
  178. package/dist/posthog.cjs +0 -137
  179. package/dist/posthog.js +0 -100
  180. package/dist-types/linkedin-insights.d.ts +0 -79
  181. package/dist-types/meta-pixel.d.ts +0 -185
  182. package/dist-types/posthog.d.ts +0 -112
@@ -0,0 +1,134 @@
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
+ mixpanelAnalytics: ()=>mixpanelAnalytics,
32
+ mixpanelAnalyticsManifest: ()=>mixpanelAnalyticsManifest
33
+ });
34
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
36
+ const mixpanelAnalyticsManifest = {
37
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
38
+ vendor: 'mixpanel-analytics',
39
+ category: 'measurement',
40
+ alwaysLoad: true,
41
+ install: [
42
+ {
43
+ type: 'setGlobal',
44
+ name: 'mixpanel',
45
+ value: [],
46
+ ifUndefined: true
47
+ },
48
+ {
49
+ type: 'setGlobalPath',
50
+ path: [
51
+ 'mixpanel',
52
+ '__SV'
53
+ ],
54
+ value: 1.2
55
+ },
56
+ {
57
+ type: 'setGlobalPath',
58
+ path: [
59
+ 'mixpanel',
60
+ '_i'
61
+ ],
62
+ value: [
63
+ [
64
+ '{{token}}',
65
+ '{{initOptions}}',
66
+ 'mixpanel'
67
+ ]
68
+ ]
69
+ },
70
+ {
71
+ type: 'defineQueueMethods',
72
+ target: 'mixpanel',
73
+ methods: [
74
+ 'track',
75
+ 'identify',
76
+ 'reset',
77
+ 'register',
78
+ 'opt_in_tracking',
79
+ 'opt_out_tracking'
80
+ ]
81
+ },
82
+ {
83
+ type: 'loadScript',
84
+ src: "{{scriptUrl}}",
85
+ async: true
86
+ }
87
+ ],
88
+ onLoadGranted: [
89
+ {
90
+ type: 'callGlobal',
91
+ global: 'mixpanel',
92
+ method: 'opt_in_tracking'
93
+ }
94
+ ],
95
+ onLoadDenied: [
96
+ {
97
+ type: 'callGlobal',
98
+ global: 'mixpanel',
99
+ method: 'opt_out_tracking'
100
+ }
101
+ ],
102
+ onConsentGranted: [
103
+ {
104
+ type: 'callGlobal',
105
+ global: 'mixpanel',
106
+ method: 'opt_in_tracking'
107
+ }
108
+ ],
109
+ onConsentDenied: [
110
+ {
111
+ type: 'callGlobal',
112
+ global: 'mixpanel',
113
+ method: 'opt_out_tracking'
114
+ }
115
+ ]
116
+ };
117
+ function mixpanelAnalytics({ token, initOptions, scriptUrl }) {
118
+ const normalizedToken = token.trim();
119
+ if (!/^[a-f0-9]{32}$/i.test(normalizedToken)) throw new Error("mixpanelAnalytics: token must be a non-empty 32-character hexadecimal string");
120
+ return (0, external_resolve_cjs_namespaceObject.resolveManifest)(mixpanelAnalyticsManifest, {
121
+ token: normalizedToken,
122
+ initOptions: initOptions ?? {},
123
+ scriptUrl: scriptUrl ?? 'https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js'
124
+ });
125
+ }
126
+ exports.mixpanelAnalytics = __webpack_exports__.mixpanelAnalytics;
127
+ exports.mixpanelAnalyticsManifest = __webpack_exports__.mixpanelAnalyticsManifest;
128
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
129
+ "mixpanelAnalytics",
130
+ "mixpanelAnalyticsManifest"
131
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
132
+ Object.defineProperty(exports, '__esModule', {
133
+ value: true
134
+ });
@@ -0,0 +1,93 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ const mixpanelAnalyticsManifest = {
4
+ ...vendorManifestContract,
5
+ vendor: 'mixpanel-analytics',
6
+ category: 'measurement',
7
+ alwaysLoad: true,
8
+ install: [
9
+ {
10
+ type: 'setGlobal',
11
+ name: 'mixpanel',
12
+ value: [],
13
+ ifUndefined: true
14
+ },
15
+ {
16
+ type: 'setGlobalPath',
17
+ path: [
18
+ 'mixpanel',
19
+ '__SV'
20
+ ],
21
+ value: 1.2
22
+ },
23
+ {
24
+ type: 'setGlobalPath',
25
+ path: [
26
+ 'mixpanel',
27
+ '_i'
28
+ ],
29
+ value: [
30
+ [
31
+ '{{token}}',
32
+ '{{initOptions}}',
33
+ 'mixpanel'
34
+ ]
35
+ ]
36
+ },
37
+ {
38
+ type: 'defineQueueMethods',
39
+ target: 'mixpanel',
40
+ methods: [
41
+ 'track',
42
+ 'identify',
43
+ 'reset',
44
+ 'register',
45
+ 'opt_in_tracking',
46
+ 'opt_out_tracking'
47
+ ]
48
+ },
49
+ {
50
+ type: 'loadScript',
51
+ src: "{{scriptUrl}}",
52
+ async: true
53
+ }
54
+ ],
55
+ onLoadGranted: [
56
+ {
57
+ type: 'callGlobal',
58
+ global: 'mixpanel',
59
+ method: 'opt_in_tracking'
60
+ }
61
+ ],
62
+ onLoadDenied: [
63
+ {
64
+ type: 'callGlobal',
65
+ global: 'mixpanel',
66
+ method: 'opt_out_tracking'
67
+ }
68
+ ],
69
+ onConsentGranted: [
70
+ {
71
+ type: 'callGlobal',
72
+ global: 'mixpanel',
73
+ method: 'opt_in_tracking'
74
+ }
75
+ ],
76
+ onConsentDenied: [
77
+ {
78
+ type: 'callGlobal',
79
+ global: 'mixpanel',
80
+ method: 'opt_out_tracking'
81
+ }
82
+ ]
83
+ };
84
+ function mixpanelAnalytics({ token, initOptions, scriptUrl }) {
85
+ const normalizedToken = token.trim();
86
+ if (!/^[a-f0-9]{32}$/i.test(normalizedToken)) throw new Error("mixpanelAnalytics: token must be a non-empty 32-character hexadecimal string");
87
+ return resolveManifest(mixpanelAnalyticsManifest, {
88
+ token: normalizedToken,
89
+ initOptions: initOptions ?? {},
90
+ scriptUrl: scriptUrl ?? 'https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js'
91
+ });
92
+ }
93
+ export { mixpanelAnalytics, mixpanelAnalyticsManifest };
@@ -0,0 +1,108 @@
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
+ pirsch: ()=>pirsch,
32
+ pirschManifest: ()=>pirschManifest
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_PIRSCH_SCRIPT_URL = 'https://api.pirsch.io/pa.js';
38
+ const DEFAULT_PIRSCH_EXTENDED_SCRIPT_URL = 'https://api.pirsch.io/pirsch-extended.js';
39
+ const pirschManifest = {
40
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
41
+ vendor: 'pirsch',
42
+ category: 'measurement',
43
+ install: [
44
+ {
45
+ type: 'loadScript',
46
+ src: "{{scriptUrl}}",
47
+ defer: true,
48
+ attributes: {
49
+ id: "{{scriptElementId}}",
50
+ 'data-code': '{{identificationCode}}',
51
+ 'data-domain': '{{domain}}',
52
+ 'data-dev': '{{dev}}',
53
+ 'data-hit-endpoint': '{{hitEndpoint}}',
54
+ 'data-event-endpoint': '{{eventEndpoint}}',
55
+ 'data-disable-page-views': '{{disablePageViews}}'
56
+ }
57
+ }
58
+ ]
59
+ };
60
+ function commaListDataAttribute(value) {
61
+ if (void 0 === value) return;
62
+ if (Array.isArray(value)) {
63
+ const items = value.map((item)=>item.trim()).filter((item)=>item.length > 0);
64
+ if (0 === items.length) return;
65
+ return items.join(',');
66
+ }
67
+ return (0, script_url_cjs_namespaceObject.trimToUndefined)(value);
68
+ }
69
+ function presenceDataAttribute(value) {
70
+ if (true === value) return '';
71
+ }
72
+ function getPirschScriptElementId(options) {
73
+ if (true === options.extended) return 'pirschextendedjs';
74
+ return 'pianjs';
75
+ }
76
+ function getPirschScriptUrl(options) {
77
+ const defaultScriptUrl = true === options.extended ? DEFAULT_PIRSCH_EXTENDED_SCRIPT_URL : DEFAULT_PIRSCH_SCRIPT_URL;
78
+ return (0, script_url_cjs_namespaceObject.resolveScriptUrl)((0, script_url_cjs_namespaceObject.trimToUndefined)(options.scriptUrl), defaultScriptUrl);
79
+ }
80
+ function pirsch(options) {
81
+ const identificationCode = options.identificationCode.trim();
82
+ if (0 === identificationCode.length) throw new Error('pirsch: invalid identificationCode - must be a non-empty string');
83
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(pirschManifest, {
84
+ identificationCode,
85
+ domain: commaListDataAttribute(options.domain),
86
+ dev: (0, script_url_cjs_namespaceObject.trimToUndefined)(options.dev),
87
+ hitEndpoint: (0, script_url_cjs_namespaceObject.trimToUndefined)(options.hitEndpoint),
88
+ eventEndpoint: (0, script_url_cjs_namespaceObject.trimToUndefined)(options.eventEndpoint),
89
+ disablePageViews: presenceDataAttribute(options.disablePageViews),
90
+ scriptElementId: getPirschScriptElementId(options),
91
+ scriptUrl: getPirschScriptUrl(options)
92
+ });
93
+ const manifestOnLoad = resolved.onLoad;
94
+ resolved.onLoad = (info)=>{
95
+ manifestOnLoad?.(info);
96
+ if ('loading' !== document.readyState) window.pirschInit?.();
97
+ };
98
+ return resolved;
99
+ }
100
+ exports.pirsch = __webpack_exports__.pirsch;
101
+ exports.pirschManifest = __webpack_exports__.pirschManifest;
102
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
103
+ "pirsch",
104
+ "pirschManifest"
105
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
106
+ Object.defineProperty(exports, '__esModule', {
107
+ value: true
108
+ });
@@ -0,0 +1,67 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { resolveScriptUrl, trimToUndefined } from "../_shared/script-url.js";
4
+ const DEFAULT_PIRSCH_SCRIPT_URL = 'https://api.pirsch.io/pa.js';
5
+ const DEFAULT_PIRSCH_EXTENDED_SCRIPT_URL = 'https://api.pirsch.io/pirsch-extended.js';
6
+ const pirschManifest = {
7
+ ...vendorManifestContract,
8
+ vendor: 'pirsch',
9
+ category: 'measurement',
10
+ install: [
11
+ {
12
+ type: 'loadScript',
13
+ src: "{{scriptUrl}}",
14
+ defer: true,
15
+ attributes: {
16
+ id: "{{scriptElementId}}",
17
+ 'data-code': '{{identificationCode}}',
18
+ 'data-domain': '{{domain}}',
19
+ 'data-dev': '{{dev}}',
20
+ 'data-hit-endpoint': '{{hitEndpoint}}',
21
+ 'data-event-endpoint': '{{eventEndpoint}}',
22
+ 'data-disable-page-views': '{{disablePageViews}}'
23
+ }
24
+ }
25
+ ]
26
+ };
27
+ function commaListDataAttribute(value) {
28
+ if (void 0 === value) return;
29
+ if (Array.isArray(value)) {
30
+ const items = value.map((item)=>item.trim()).filter((item)=>item.length > 0);
31
+ if (0 === items.length) return;
32
+ return items.join(',');
33
+ }
34
+ return trimToUndefined(value);
35
+ }
36
+ function presenceDataAttribute(value) {
37
+ if (true === value) return '';
38
+ }
39
+ function getPirschScriptElementId(options) {
40
+ if (true === options.extended) return 'pirschextendedjs';
41
+ return 'pianjs';
42
+ }
43
+ function getPirschScriptUrl(options) {
44
+ const defaultScriptUrl = true === options.extended ? DEFAULT_PIRSCH_EXTENDED_SCRIPT_URL : DEFAULT_PIRSCH_SCRIPT_URL;
45
+ return resolveScriptUrl(trimToUndefined(options.scriptUrl), defaultScriptUrl);
46
+ }
47
+ function pirsch(options) {
48
+ const identificationCode = options.identificationCode.trim();
49
+ if (0 === identificationCode.length) throw new Error('pirsch: invalid identificationCode - must be a non-empty string');
50
+ const resolved = resolveManifest(pirschManifest, {
51
+ identificationCode,
52
+ domain: commaListDataAttribute(options.domain),
53
+ dev: trimToUndefined(options.dev),
54
+ hitEndpoint: trimToUndefined(options.hitEndpoint),
55
+ eventEndpoint: trimToUndefined(options.eventEndpoint),
56
+ disablePageViews: presenceDataAttribute(options.disablePageViews),
57
+ scriptElementId: getPirschScriptElementId(options),
58
+ scriptUrl: getPirschScriptUrl(options)
59
+ });
60
+ const manifestOnLoad = resolved.onLoad;
61
+ resolved.onLoad = (info)=>{
62
+ manifestOnLoad?.(info);
63
+ if ('loading' !== document.readyState) window.pirschInit?.();
64
+ };
65
+ return resolved;
66
+ }
67
+ export { pirsch, pirschManifest };
@@ -0,0 +1,122 @@
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
+ });
@@ -0,0 +1,81 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ function buildPlausibleScriptUrl(options) {
4
+ if (options.scriptId) return `https://plausible.io/js/pa-${options.scriptId}.js`;
5
+ if (options.extension) {
6
+ let extensions;
7
+ extensions = Array.isArray(options.extension) ? options.extension.join('.') : options.extension;
8
+ return `https://plausible.io/js/script.${extensions}.js`;
9
+ }
10
+ return "https://plausible.io/js/script.js";
11
+ }
12
+ function buildPlausibleInitOptions(options) {
13
+ const initOptions = {};
14
+ if (options.customProperties) initOptions.customProperties = options.customProperties;
15
+ if (options.endpoint) initOptions.endpoint = options.endpoint;
16
+ if (options.fileDownloads) initOptions.fileDownloads = options.fileDownloads;
17
+ if (void 0 !== options.hashBasedRouting) initOptions.hashBasedRouting = options.hashBasedRouting;
18
+ if (void 0 !== options.autoCapturePageviews) initOptions.autoCapturePageviews = options.autoCapturePageviews;
19
+ if (void 0 !== options.captureOnLocalhost) initOptions.captureOnLocalhost = options.captureOnLocalhost;
20
+ return initOptions;
21
+ }
22
+ const plausibleAnalyticsManifest = {
23
+ ...vendorManifestContract,
24
+ vendor: 'plausible-analytics',
25
+ category: 'measurement',
26
+ bootstrap: [
27
+ {
28
+ type: 'defineStubFunction',
29
+ name: 'plausible',
30
+ queue: {
31
+ property: 'q'
32
+ },
33
+ queueFormat: 'array',
34
+ properties: {
35
+ o: '{{initOptions}}'
36
+ },
37
+ ifUndefined: true
38
+ }
39
+ ],
40
+ install: [
41
+ {
42
+ type: 'loadScript',
43
+ src: "{{scriptUrl}}",
44
+ defer: true,
45
+ attributes: {
46
+ 'data-domain': '{{domain}}',
47
+ 'data-api': '{{apiAttribute}}'
48
+ }
49
+ }
50
+ ]
51
+ };
52
+ function plausibleAnalytics(options) {
53
+ let scriptId;
54
+ if (options.scriptId) scriptId = options.scriptId.trim();
55
+ let domain;
56
+ if (options.domain) domain = options.domain.trim();
57
+ if (!scriptId && !domain) throw new Error("plausibleAnalytics: missing scriptId or domain");
58
+ const normalizedOptions = {
59
+ ...options
60
+ };
61
+ if (scriptId) normalizedOptions.scriptId = scriptId;
62
+ else delete normalizedOptions.scriptId;
63
+ if (domain) normalizedOptions.domain = domain;
64
+ else delete normalizedOptions.domain;
65
+ const manifestOptions = {
66
+ scriptUrl: normalizedOptions.scriptUrl ?? buildPlausibleScriptUrl(normalizedOptions),
67
+ domain: void 0,
68
+ apiAttribute: void 0,
69
+ initOptions: buildPlausibleInitOptions(normalizedOptions)
70
+ };
71
+ if (scriptId) {
72
+ manifestOptions.domain = void 0;
73
+ manifestOptions.apiAttribute = void 0;
74
+ } else {
75
+ manifestOptions.domain = domain;
76
+ manifestOptions.apiAttribute = normalizedOptions.endpoint;
77
+ }
78
+ const resolved = resolveManifest(plausibleAnalyticsManifest, manifestOptions);
79
+ return resolved;
80
+ }
81
+ export { plausibleAnalytics, plausibleAnalyticsManifest };