@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,73 @@
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
+ cloudflareWebAnalytics: ()=>cloudflareWebAnalytics,
32
+ cloudflareWebAnalyticsManifest: ()=>cloudflareWebAnalyticsManifest
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 cloudflareWebAnalyticsManifest = {
38
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
39
+ vendor: 'cloudflare-web-analytics',
40
+ category: 'measurement',
41
+ install: [
42
+ {
43
+ type: 'loadScript',
44
+ src: "{{scriptUrl}}",
45
+ defer: true,
46
+ attributes: {
47
+ 'data-cf-beacon': '{{beaconConfig}}'
48
+ }
49
+ }
50
+ ]
51
+ };
52
+ function cloudflareWebAnalytics(options) {
53
+ let token;
54
+ token = 'string' == typeof options.token ? options.token.trim() : '';
55
+ if (0 === token.length) throw new Error('cloudflareWebAnalytics: missing token');
56
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(cloudflareWebAnalyticsManifest, {
57
+ scriptUrl: (0, script_url_cjs_namespaceObject.resolveScriptUrl)(options.scriptUrl, 'https://static.cloudflareinsights.com/beacon.min.js'),
58
+ beaconConfig: JSON.stringify({
59
+ token,
60
+ spa: options.spa ?? true
61
+ })
62
+ });
63
+ return resolved;
64
+ }
65
+ exports.cloudflareWebAnalytics = __webpack_exports__.cloudflareWebAnalytics;
66
+ exports.cloudflareWebAnalyticsManifest = __webpack_exports__.cloudflareWebAnalyticsManifest;
67
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
68
+ "cloudflareWebAnalytics",
69
+ "cloudflareWebAnalyticsManifest"
70
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
71
+ Object.defineProperty(exports, '__esModule', {
72
+ value: true
73
+ });
@@ -0,0 +1,32 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { resolveScriptUrl } from "../_shared/script-url.js";
4
+ const cloudflareWebAnalyticsManifest = {
5
+ ...vendorManifestContract,
6
+ vendor: 'cloudflare-web-analytics',
7
+ category: 'measurement',
8
+ install: [
9
+ {
10
+ type: 'loadScript',
11
+ src: "{{scriptUrl}}",
12
+ defer: true,
13
+ attributes: {
14
+ 'data-cf-beacon': '{{beaconConfig}}'
15
+ }
16
+ }
17
+ ]
18
+ };
19
+ function cloudflareWebAnalytics(options) {
20
+ let token;
21
+ token = 'string' == typeof options.token ? options.token.trim() : '';
22
+ if (0 === token.length) throw new Error('cloudflareWebAnalytics: missing token');
23
+ const resolved = resolveManifest(cloudflareWebAnalyticsManifest, {
24
+ scriptUrl: resolveScriptUrl(options.scriptUrl, 'https://static.cloudflareinsights.com/beacon.min.js'),
25
+ beaconConfig: JSON.stringify({
26
+ token,
27
+ spa: options.spa ?? true
28
+ })
29
+ });
30
+ return resolved;
31
+ }
32
+ export { cloudflareWebAnalytics, cloudflareWebAnalyticsManifest };
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -24,11 +28,11 @@ var __webpack_require__ = {};
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
30
  __webpack_require__.d(__webpack_exports__, {
27
- databuddyManifest: ()=>databuddyManifest,
28
- databuddy: ()=>databuddy
31
+ databuddy: ()=>databuddy,
32
+ databuddyManifest: ()=>databuddyManifest
29
33
  });
30
- const external_resolve_cjs_namespaceObject = require("./resolve.cjs");
31
- const external_types_cjs_namespaceObject = require("./types.cjs");
34
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
32
36
  const databuddyManifest = {
33
37
  ...external_types_cjs_namespaceObject.vendorManifestContract,
34
38
  vendor: 'databuddy',
@@ -122,7 +126,7 @@ const databuddyManifest = {
122
126
  function databuddy(options) {
123
127
  const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(databuddyManifest, {
124
128
  clientId: options.clientId,
125
- apiUrl: options.apiUrl,
129
+ apiUrl: options.apiUrl ?? 'https://basket.databuddy.cc',
126
130
  configWhenGranted: options.configWhenGranted,
127
131
  configWhenDenied: options.configWhenDenied,
128
132
  scriptUrl: options.scriptUrl ?? 'https://cdn.databuddy.cc/databuddy.js'
@@ -1,5 +1,5 @@
1
- import { resolveManifest } from "./resolve.js";
2
- import { vendorManifestContract } from "./types.js";
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
3
  const databuddyManifest = {
4
4
  ...vendorManifestContract,
5
5
  vendor: 'databuddy',
@@ -93,7 +93,7 @@ const databuddyManifest = {
93
93
  function databuddy(options) {
94
94
  const resolved = resolveManifest(databuddyManifest, {
95
95
  clientId: options.clientId,
96
- apiUrl: options.apiUrl,
96
+ apiUrl: options.apiUrl ?? 'https://basket.databuddy.cc',
97
97
  configWhenGranted: options.configWhenGranted,
98
98
  configWhenDenied: options.configWhenDenied,
99
99
  scriptUrl: options.scriptUrl ?? 'https://cdn.databuddy.cc/databuddy.js'
@@ -0,0 +1,76 @@
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
+ fathomAnalytics: ()=>fathomAnalytics,
32
+ fathomAnalyticsManifest: ()=>fathomAnalyticsManifest
33
+ });
34
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
36
+ const attributes_cjs_namespaceObject = require("../_shared/attributes.cjs");
37
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
38
+ const fathomAnalyticsManifest = {
39
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
40
+ vendor: 'fathom-analytics',
41
+ category: 'measurement',
42
+ install: [
43
+ {
44
+ type: 'loadScript',
45
+ src: "{{scriptUrl}}",
46
+ defer: true,
47
+ attributes: {
48
+ 'data-site': '{{site}}',
49
+ 'data-spa': '{{spa}}',
50
+ 'data-auto': '{{autoAttribute}}',
51
+ 'data-canonical': '{{canonicalAttribute}}',
52
+ 'data-honor-dnt': '{{honorDntAttribute}}'
53
+ }
54
+ }
55
+ ]
56
+ };
57
+ function fathomAnalytics(options) {
58
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(fathomAnalyticsManifest, {
59
+ site: options.site,
60
+ spa: options.spa,
61
+ autoAttribute: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.auto),
62
+ canonicalAttribute: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.canonical),
63
+ honorDntAttribute: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.honorDnt),
64
+ scriptUrl: (0, script_url_cjs_namespaceObject.resolveScriptUrl)(options.scriptUrl, "https://cdn.usefathom.com/script.js")
65
+ });
66
+ return resolved;
67
+ }
68
+ exports.fathomAnalytics = __webpack_exports__.fathomAnalytics;
69
+ exports.fathomAnalyticsManifest = __webpack_exports__.fathomAnalyticsManifest;
70
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
71
+ "fathomAnalytics",
72
+ "fathomAnalyticsManifest"
73
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
74
+ Object.defineProperty(exports, '__esModule', {
75
+ value: true
76
+ });
@@ -0,0 +1,35 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { booleanDataAttribute } from "../_shared/attributes.js";
4
+ import { resolveScriptUrl } from "../_shared/script-url.js";
5
+ const fathomAnalyticsManifest = {
6
+ ...vendorManifestContract,
7
+ vendor: 'fathom-analytics',
8
+ category: 'measurement',
9
+ install: [
10
+ {
11
+ type: 'loadScript',
12
+ src: "{{scriptUrl}}",
13
+ defer: true,
14
+ attributes: {
15
+ 'data-site': '{{site}}',
16
+ 'data-spa': '{{spa}}',
17
+ 'data-auto': '{{autoAttribute}}',
18
+ 'data-canonical': '{{canonicalAttribute}}',
19
+ 'data-honor-dnt': '{{honorDntAttribute}}'
20
+ }
21
+ }
22
+ ]
23
+ };
24
+ function fathomAnalytics(options) {
25
+ const resolved = resolveManifest(fathomAnalyticsManifest, {
26
+ site: options.site,
27
+ spa: options.spa,
28
+ autoAttribute: booleanDataAttribute(options.auto),
29
+ canonicalAttribute: booleanDataAttribute(options.canonical),
30
+ honorDntAttribute: booleanDataAttribute(options.honorDnt),
31
+ scriptUrl: resolveScriptUrl(options.scriptUrl, "https://cdn.usefathom.com/script.js")
32
+ });
33
+ return resolved;
34
+ }
35
+ export { fathomAnalytics, fathomAnalyticsManifest };
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
8
- });
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");
9
13
  };
10
14
  })();
11
15
  (()=>{
@@ -24,11 +28,12 @@ var __webpack_require__ = {};
24
28
  var __webpack_exports__ = {};
25
29
  __webpack_require__.r(__webpack_exports__);
26
30
  __webpack_require__.d(__webpack_exports__, {
27
- gtagManifest: ()=>gtagManifest,
28
- gtag: ()=>gtag
31
+ gtag: ()=>gtag,
32
+ gtagManifest: ()=>gtagManifest
29
33
  });
30
- const external_resolve_cjs_namespaceObject = require("./resolve.cjs");
31
- const external_types_cjs_namespaceObject = require("./types.cjs");
34
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
35
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
36
+ const google_consent_cjs_namespaceObject = require("../_shared/google-consent.cjs");
32
37
  const gtagManifest = {
33
38
  ...external_types_cjs_namespaceObject.vendorManifestContract,
34
39
  vendor: 'gtag',
@@ -55,7 +60,7 @@ const gtagManifest = {
55
60
  global: 'gtag',
56
61
  args: [
57
62
  'js',
58
- '{{loadTime}}'
63
+ external_types_cjs_namespaceObject.runtimeDateValue
59
64
  ]
60
65
  },
61
66
  {
@@ -72,36 +77,14 @@ const gtagManifest = {
72
77
  async: true
73
78
  }
74
79
  ],
75
- consentMapping: {
76
- necessary: [
77
- 'security_storage'
78
- ],
79
- functionality: [
80
- 'functionality_storage'
81
- ],
82
- measurement: [
83
- 'analytics_storage'
84
- ],
85
- marketing: [
86
- 'ad_storage',
87
- 'ad_user_data',
88
- 'ad_personalization'
89
- ],
90
- experience: [
91
- 'personalization_storage'
92
- ]
93
- },
80
+ consentMapping: google_consent_cjs_namespaceObject.GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING,
94
81
  consentSignal: 'gtag'
95
82
  };
96
83
  function gtag({ id, category, consentMapping, script }) {
97
- const manifest = consentMapping ? {
98
- ...gtagManifest,
99
- consentMapping
100
- } : gtagManifest;
84
+ const manifest = (0, google_consent_cjs_namespaceObject.withOptionalConsentMapping)(gtagManifest, consentMapping);
101
85
  const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(manifest, {
102
86
  id,
103
- category,
104
- loadTime: new Date()
87
+ category
105
88
  });
106
89
  if (!script) return resolved;
107
90
  return {
@@ -1,5 +1,6 @@
1
- import { resolveManifest } from "./resolve.js";
2
- import { vendorManifestContract } from "./types.js";
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { runtimeDateValue, vendorManifestContract } from "../../types.js";
3
+ import { GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING, withOptionalConsentMapping } from "../_shared/google-consent.js";
3
4
  const gtagManifest = {
4
5
  ...vendorManifestContract,
5
6
  vendor: 'gtag',
@@ -26,7 +27,7 @@ const gtagManifest = {
26
27
  global: 'gtag',
27
28
  args: [
28
29
  'js',
29
- '{{loadTime}}'
30
+ runtimeDateValue
30
31
  ]
31
32
  },
32
33
  {
@@ -43,36 +44,14 @@ const gtagManifest = {
43
44
  async: true
44
45
  }
45
46
  ],
46
- consentMapping: {
47
- necessary: [
48
- 'security_storage'
49
- ],
50
- functionality: [
51
- 'functionality_storage'
52
- ],
53
- measurement: [
54
- 'analytics_storage'
55
- ],
56
- marketing: [
57
- 'ad_storage',
58
- 'ad_user_data',
59
- 'ad_personalization'
60
- ],
61
- experience: [
62
- 'personalization_storage'
63
- ]
64
- },
47
+ consentMapping: GOOGLE_CONSENT_MODE_V2_DEFAULT_MAPPING,
65
48
  consentSignal: 'gtag'
66
49
  };
67
50
  function gtag({ id, category, consentMapping, script }) {
68
- const manifest = consentMapping ? {
69
- ...gtagManifest,
70
- consentMapping
71
- } : gtagManifest;
51
+ const manifest = withOptionalConsentMapping(gtagManifest, consentMapping);
72
52
  const resolved = resolveManifest(manifest, {
73
53
  id,
74
- category,
75
- loadTime: new Date()
54
+ category
76
55
  });
77
56
  if (!script) return resolved;
78
57
  return {
@@ -0,0 +1,181 @@
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
+ DEFAULT_HEAP_CONFIG_BASE_URL: ()=>DEFAULT_HEAP_CONFIG_BASE_URL,
32
+ HEAP_QUEUE_METHODS: ()=>HEAP_QUEUE_METHODS,
33
+ heap: ()=>heap,
34
+ heapManifest: ()=>heapManifest
35
+ });
36
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
37
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
38
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
39
+ const DEFAULT_HEAP_CONFIG_BASE_URL = 'https://cdn.us.heap-api.com/config';
40
+ const HEAP_QUEUE_METHODS = [
41
+ 'init',
42
+ 'startTracking',
43
+ 'stopTracking',
44
+ 'track',
45
+ 'resetIdentity',
46
+ 'identify',
47
+ 'identifyHashed',
48
+ 'getSessionId',
49
+ 'getUserId',
50
+ 'getIdentity',
51
+ 'addUserProperties',
52
+ 'addEventProperties',
53
+ 'removeEventProperty',
54
+ 'clearEventProperties',
55
+ 'addAccountProperties',
56
+ 'addAdapter',
57
+ 'addTransformer',
58
+ 'addTransformerFn',
59
+ 'onReady',
60
+ 'addPageviewProperties',
61
+ 'removePageviewProperty',
62
+ 'clearPageviewProperties',
63
+ 'trackPageview'
64
+ ];
65
+ const heapManifest = {
66
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
67
+ vendor: 'heap',
68
+ category: 'measurement',
69
+ install: [
70
+ {
71
+ type: 'setGlobal',
72
+ name: 'heapReadyCb',
73
+ value: [],
74
+ ifUndefined: true
75
+ },
76
+ {
77
+ type: 'setGlobal',
78
+ name: 'heap',
79
+ value: [],
80
+ ifUndefined: true
81
+ },
82
+ {
83
+ type: 'setGlobalPath',
84
+ path: [
85
+ 'heap',
86
+ 'envId'
87
+ ],
88
+ value: '{{envId}}'
89
+ },
90
+ {
91
+ type: 'setGlobalPath',
92
+ path: [
93
+ 'heap',
94
+ 'appid'
95
+ ],
96
+ value: '{{envId}}'
97
+ },
98
+ {
99
+ type: 'setGlobalPath',
100
+ path: [
101
+ 'heap',
102
+ 'clientConfig'
103
+ ],
104
+ value: '{{clientConfig}}'
105
+ },
106
+ {
107
+ type: 'defineQueueMethods',
108
+ target: 'heap',
109
+ queue: {
110
+ global: 'heapReadyCb'
111
+ },
112
+ queueFormat: 'callback',
113
+ methods: [
114
+ ...HEAP_QUEUE_METHODS
115
+ ]
116
+ },
117
+ {
118
+ type: 'loadScript',
119
+ src: "{{scriptUrl}}",
120
+ async: true
121
+ }
122
+ ]
123
+ };
124
+ function validateEnvId(envId) {
125
+ const normalized = 'string' == typeof envId ? envId.trim() : '';
126
+ if (0 === normalized.length) throw new Error('heap: missing or invalid envId');
127
+ return normalized;
128
+ }
129
+ function isPlainRecord(value) {
130
+ if (null === value || 'object' != typeof value || Array.isArray(value)) return false;
131
+ const prototype = Object.getPrototypeOf(value);
132
+ return prototype === Object.prototype || null === prototype;
133
+ }
134
+ function toJsonValue(value, path) {
135
+ if (null === value) return null;
136
+ if ('string' == typeof value || 'boolean' == typeof value) return value;
137
+ if ('number' == typeof value) {
138
+ if (Number.isFinite(value)) return value;
139
+ throw new TypeError(`heap: clientConfig${path ? `.${path}` : ''} must be a finite number`);
140
+ }
141
+ if (Array.isArray(value)) return value.map((item, index)=>toJsonValue(item, `${path}[${index}]`));
142
+ if (isPlainRecord(value)) {
143
+ const result = {};
144
+ for (const [key, nestedValue] of Object.entries(value))result[key] = toJsonValue(nestedValue, path ? `${path}.${key}` : key);
145
+ return result;
146
+ }
147
+ throw new TypeError(`heap: clientConfig${path ? `.${path}` : ''} must be JSON-serializable`);
148
+ }
149
+ function normalizeClientConfig(clientConfig) {
150
+ const config = clientConfig ?? {};
151
+ const normalized = toJsonValue(config, '');
152
+ if (!isPlainRecord(normalized)) throw new TypeError('heap: clientConfig must be a plain object');
153
+ return {
154
+ ...normalized,
155
+ shouldFetchServerConfig: false
156
+ };
157
+ }
158
+ function resolveHeapScriptUrl(envId, scriptUrl) {
159
+ return (0, script_url_cjs_namespaceObject.resolveScriptUrl)((0, script_url_cjs_namespaceObject.trimToUndefined)(scriptUrl), (0, script_url_cjs_namespaceObject.joinUrlPath)(DEFAULT_HEAP_CONFIG_BASE_URL, `${envId}/heap_config.js`));
160
+ }
161
+ function heap({ envId, clientConfig, scriptUrl }) {
162
+ const normalizedEnvId = validateEnvId(envId);
163
+ return (0, external_resolve_cjs_namespaceObject.resolveManifest)(heapManifest, {
164
+ envId: normalizedEnvId,
165
+ clientConfig: normalizeClientConfig(clientConfig),
166
+ scriptUrl: resolveHeapScriptUrl(normalizedEnvId, scriptUrl)
167
+ });
168
+ }
169
+ exports.DEFAULT_HEAP_CONFIG_BASE_URL = __webpack_exports__.DEFAULT_HEAP_CONFIG_BASE_URL;
170
+ exports.HEAP_QUEUE_METHODS = __webpack_exports__.HEAP_QUEUE_METHODS;
171
+ exports.heap = __webpack_exports__.heap;
172
+ exports.heapManifest = __webpack_exports__.heapManifest;
173
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
174
+ "DEFAULT_HEAP_CONFIG_BASE_URL",
175
+ "HEAP_QUEUE_METHODS",
176
+ "heap",
177
+ "heapManifest"
178
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
179
+ Object.defineProperty(exports, '__esModule', {
180
+ value: true
181
+ });