@c15t/scripts 2.0.0 → 2.1.0

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 (110) hide show
  1. package/README.md +9 -9
  2. package/dist/e2e-test-utils.cjs +125 -0
  3. package/dist/e2e-test-utils.js +67 -0
  4. package/dist/engine/runtime.cjs +19 -9
  5. package/dist/engine/runtime.js +19 -9
  6. package/dist/registry.cjs +338 -0
  7. package/dist/registry.js +292 -0
  8. package/dist/types.cjs +18 -0
  9. package/dist/types.js +10 -1
  10. package/dist/vendors/_shared/attributes.cjs +51 -0
  11. package/dist/vendors/_shared/attributes.js +14 -0
  12. package/dist/vendors/_shared/google-consent.cjs +64 -0
  13. package/dist/vendors/_shared/google-consent.js +27 -0
  14. package/dist/vendors/_shared/install-builders.cjs +55 -0
  15. package/dist/vendors/_shared/install-builders.js +21 -0
  16. package/dist/vendors/_shared/script-url.cjs +74 -0
  17. package/dist/vendors/_shared/script-url.js +28 -0
  18. package/dist/{linkedin-insights.cjs → vendors/ads-and-pixels/linkedin-insights.cjs} +2 -2
  19. package/dist/{linkedin-insights.js → vendors/ads-and-pixels/linkedin-insights.js} +2 -2
  20. package/dist/vendors/ads-and-pixels/meta-pixel.cjs +202 -0
  21. package/dist/vendors/ads-and-pixels/meta-pixel.js +153 -0
  22. package/dist/{microsoft-uet.cjs → vendors/ads-and-pixels/microsoft-uet.cjs} +31 -14
  23. package/dist/{microsoft-uet.js → vendors/ads-and-pixels/microsoft-uet.js} +31 -14
  24. package/dist/vendors/ads-and-pixels/reddit-pixel.cjs +147 -0
  25. package/dist/vendors/ads-and-pixels/reddit-pixel.js +107 -0
  26. package/dist/vendors/ads-and-pixels/snapchat-pixel.cjs +127 -0
  27. package/dist/vendors/ads-and-pixels/snapchat-pixel.js +87 -0
  28. package/dist/{tiktok-pixel.cjs → vendors/ads-and-pixels/tiktok-pixel.cjs} +2 -2
  29. package/dist/{tiktok-pixel.js → vendors/ads-and-pixels/tiktok-pixel.js} +2 -2
  30. package/dist/{x-pixel.cjs → vendors/ads-and-pixels/x-pixel.cjs} +6 -3
  31. package/dist/{x-pixel.js → vendors/ads-and-pixels/x-pixel.js} +6 -3
  32. package/dist/vendors/analytics/ahrefs-analytics.cjs +64 -0
  33. package/dist/vendors/analytics/ahrefs-analytics.js +27 -0
  34. package/dist/vendors/analytics/cloudflare-web-analytics.cjs +69 -0
  35. package/dist/vendors/analytics/cloudflare-web-analytics.js +32 -0
  36. package/dist/{databuddy.cjs → vendors/analytics/databuddy.cjs} +3 -3
  37. package/dist/{databuddy.js → vendors/analytics/databuddy.js} +3 -3
  38. package/dist/vendors/analytics/fathom-analytics.cjs +72 -0
  39. package/dist/vendors/analytics/fathom-analytics.js +35 -0
  40. package/dist/{google-tag.cjs → vendors/analytics/google-tag.cjs} +7 -28
  41. package/dist/{google-tag.js → vendors/analytics/google-tag.js} +7 -28
  42. package/dist/vendors/analytics/hotjar.cjs +81 -0
  43. package/dist/vendors/analytics/hotjar.js +44 -0
  44. package/dist/vendors/analytics/matomo-analytics.cjs +228 -0
  45. package/dist/vendors/analytics/matomo-analytics.js +191 -0
  46. package/dist/vendors/analytics/microsoft-clarity.cjs +110 -0
  47. package/dist/vendors/analytics/microsoft-clarity.js +73 -0
  48. package/dist/vendors/analytics/mixpanel-analytics.cjs +119 -0
  49. package/dist/vendors/analytics/mixpanel-analytics.js +82 -0
  50. package/dist/vendors/analytics/plausible-analytics.cjs +118 -0
  51. package/dist/vendors/analytics/plausible-analytics.js +81 -0
  52. package/dist/{posthog.cjs → vendors/analytics/posthog.cjs} +69 -6
  53. package/dist/vendors/analytics/posthog.js +163 -0
  54. package/dist/vendors/analytics/promptwatch.cjs +66 -0
  55. package/dist/vendors/analytics/promptwatch.js +29 -0
  56. package/dist/vendors/analytics/rybbit-analytics.cjs +100 -0
  57. package/dist/vendors/analytics/rybbit-analytics.js +63 -0
  58. package/dist/vendors/analytics/segment.cjs +93 -0
  59. package/dist/vendors/analytics/segment.js +56 -0
  60. package/dist/vendors/analytics/umami-analytics.cjs +76 -0
  61. package/dist/vendors/analytics/umami-analytics.js +39 -0
  62. package/dist/vendors/analytics/vercel-analytics.cjs +90 -0
  63. package/dist/vendors/analytics/vercel-analytics.js +53 -0
  64. package/dist/vendors/functional/crisp.cjs +139 -0
  65. package/dist/vendors/functional/crisp.js +102 -0
  66. package/dist/vendors/functional/intercom.cjs +85 -0
  67. package/dist/vendors/functional/intercom.js +45 -0
  68. package/dist/{google-tag-manager.cjs → vendors/tag-managers/google-tag-manager.cjs} +6 -27
  69. package/dist/{google-tag-manager.js → vendors/tag-managers/google-tag-manager.js} +6 -27
  70. package/dist-types/__tests__/helpers.d.ts +141 -0
  71. package/dist-types/engine/runtime.d.ts +1 -1
  72. package/dist-types/registry.d.ts +368 -0
  73. package/dist-types/types.d.ts +13 -0
  74. package/dist-types/vendors/_shared/attributes.d.ts +35 -0
  75. package/dist-types/vendors/_shared/google-consent.d.ts +47 -0
  76. package/dist-types/vendors/_shared/install-builders.d.ts +30 -0
  77. package/dist-types/vendors/_shared/script-url.d.ts +75 -0
  78. package/dist-types/{linkedin-insights.d.ts → vendors/ads-and-pixels/linkedin-insights.d.ts} +22 -9
  79. package/dist-types/vendors/ads-and-pixels/meta-pixel.d.ts +289 -0
  80. package/dist-types/{microsoft-uet.d.ts → vendors/ads-and-pixels/microsoft-uet.d.ts} +21 -10
  81. package/dist-types/vendors/ads-and-pixels/reddit-pixel.d.ts +211 -0
  82. package/dist-types/vendors/ads-and-pixels/snapchat-pixel.d.ts +171 -0
  83. package/dist-types/{tiktok-pixel.d.ts → vendors/ads-and-pixels/tiktok-pixel.d.ts} +20 -5
  84. package/dist-types/{x-pixel.d.ts → vendors/ads-and-pixels/x-pixel.d.ts} +21 -4
  85. package/dist-types/vendors/analytics/ahrefs-analytics.d.ts +62 -0
  86. package/dist-types/vendors/analytics/cloudflare-web-analytics.d.ts +67 -0
  87. package/dist-types/vendors/analytics/fathom-analytics.d.ts +90 -0
  88. package/dist-types/{google-tag.d.ts → vendors/analytics/google-tag.d.ts} +5 -8
  89. package/dist-types/vendors/analytics/hotjar.d.ts +73 -0
  90. package/dist-types/vendors/analytics/matomo-analytics.d.ts +41 -0
  91. package/dist-types/vendors/analytics/microsoft-clarity.d.ts +86 -0
  92. package/dist-types/vendors/analytics/mixpanel-analytics.d.ts +101 -0
  93. package/dist-types/vendors/analytics/plausible-analytics.d.ts +122 -0
  94. package/dist-types/{posthog.d.ts → vendors/analytics/posthog.d.ts} +47 -5
  95. package/dist-types/vendors/analytics/promptwatch.d.ts +36 -0
  96. package/dist-types/vendors/analytics/rybbit-analytics.d.ts +82 -0
  97. package/dist-types/vendors/analytics/segment.d.ts +158 -0
  98. package/dist-types/vendors/analytics/umami-analytics.d.ts +93 -0
  99. package/dist-types/vendors/analytics/vercel-analytics.d.ts +66 -0
  100. package/dist-types/vendors/functional/crisp.d.ts +78 -0
  101. package/dist-types/vendors/functional/intercom.d.ts +135 -0
  102. package/dist-types/{google-tag-manager.d.ts → vendors/tag-managers/google-tag-manager.d.ts} +5 -8
  103. package/package.json +166 -5
  104. package/dist/meta-pixel.cjs +0 -129
  105. package/dist/meta-pixel.js +0 -89
  106. package/dist/posthog.js +0 -100
  107. package/dist-types/engine.test.d.ts +0 -1
  108. package/dist-types/helpers.test.d.ts +0 -1
  109. package/dist-types/meta-pixel.d.ts +0 -185
  110. /package/dist-types/{databuddy.d.ts → vendors/analytics/databuddy.d.ts} +0 -0
@@ -0,0 +1,163 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { stripTrailingSlashes } from "../_shared/script-url.js";
4
+ const DEFAULT_API_HOST = 'https://eu.i.posthog.com';
5
+ const DEFAULT_SCRIPT_URL = 'https://eu-assets.i.posthog.com/static/array.js';
6
+ const DEFAULT_UI_HOST = 'https://eu.posthog.com';
7
+ const DEFAULTS_DATE = '2026-01-30';
8
+ const REGION_HOSTS = {
9
+ eu: {
10
+ apiHost: DEFAULT_API_HOST,
11
+ uiHost: DEFAULT_UI_HOST,
12
+ scriptUrl: DEFAULT_SCRIPT_URL
13
+ },
14
+ us: {
15
+ apiHost: 'https://us.i.posthog.com',
16
+ uiHost: 'https://us.posthog.com',
17
+ scriptUrl: 'https://us-assets.i.posthog.com/static/array.js'
18
+ }
19
+ };
20
+ function normalizeHost(host) {
21
+ return stripTrailingSlashes(host);
22
+ }
23
+ function regionFromHost(host) {
24
+ const normalized = normalizeHost(host);
25
+ if (/^https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com$/i.test(normalized)) return 'us';
26
+ if (/^https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com$/i.test(normalized)) return 'eu';
27
+ }
28
+ function deriveScriptUrlFromApiHost(apiHost) {
29
+ const normalized = normalizeHost(apiHost);
30
+ const region = regionFromHost(normalized);
31
+ if (region) return REGION_HOSTS[region].scriptUrl;
32
+ return `${normalized}/static/array.js`;
33
+ }
34
+ function resolvePosthogHosts(options) {
35
+ const regionDefaults = REGION_HOSTS[options.region ?? 'eu'];
36
+ const apiHost = normalizeHost(options.apiHost ?? regionDefaults.apiHost);
37
+ const inferredRegion = regionFromHost(apiHost);
38
+ let uiHost;
39
+ uiHost = void 0 !== options.uiHost ? options.uiHost : inferredRegion ? REGION_HOSTS[inferredRegion].uiHost : void 0 !== options.region ? REGION_HOSTS[options.region].uiHost : apiHost;
40
+ let scriptUrl;
41
+ scriptUrl = void 0 !== options.scriptUrl ? options.scriptUrl : void 0 !== options.apiHost ? deriveScriptUrlFromApiHost(apiHost) : regionDefaults.scriptUrl;
42
+ return {
43
+ apiHost,
44
+ uiHost: normalizeHost(uiHost),
45
+ scriptUrl
46
+ };
47
+ }
48
+ const posthogManifest = {
49
+ ...vendorManifestContract,
50
+ vendor: 'posthog',
51
+ category: 'measurement',
52
+ alwaysLoad: true,
53
+ bootstrap: [
54
+ {
55
+ type: 'setGlobal',
56
+ name: 'posthog',
57
+ value: {},
58
+ ifUndefined: true
59
+ },
60
+ {
61
+ type: 'defineGlobalMethods',
62
+ target: 'posthog',
63
+ methods: [
64
+ {
65
+ name: 'init',
66
+ behavior: 'noop'
67
+ },
68
+ {
69
+ name: 'capture',
70
+ behavior: 'noop'
71
+ },
72
+ {
73
+ name: 'opt_in_capturing',
74
+ behavior: 'noop'
75
+ },
76
+ {
77
+ name: 'opt_out_capturing',
78
+ behavior: 'noop'
79
+ },
80
+ {
81
+ name: 'get_explicit_consent_status',
82
+ behavior: 'return',
83
+ value: 'pending'
84
+ }
85
+ ]
86
+ }
87
+ ],
88
+ install: [
89
+ {
90
+ type: 'loadScript',
91
+ src: "{{scriptUrl}}",
92
+ async: true,
93
+ attributes: {
94
+ crossorigin: 'anonymous',
95
+ 'data-api-host': '{{apiHost}}',
96
+ 'data-ui-host': '{{uiHost}}'
97
+ }
98
+ }
99
+ ],
100
+ afterLoad: [
101
+ {
102
+ type: 'callGlobal',
103
+ global: 'posthog',
104
+ method: 'init',
105
+ args: [
106
+ '{{id}}',
107
+ '{{initOptions}}'
108
+ ]
109
+ }
110
+ ],
111
+ onLoadGranted: [
112
+ {
113
+ type: 'callGlobal',
114
+ global: 'posthog',
115
+ method: 'opt_in_capturing'
116
+ }
117
+ ],
118
+ onLoadDenied: [
119
+ {
120
+ type: 'callGlobal',
121
+ global: 'posthog',
122
+ method: 'opt_out_capturing'
123
+ }
124
+ ],
125
+ onConsentGranted: [
126
+ {
127
+ type: 'callGlobal',
128
+ global: 'posthog',
129
+ method: 'opt_in_capturing'
130
+ }
131
+ ],
132
+ onConsentDenied: [
133
+ {
134
+ type: 'callGlobal',
135
+ global: 'posthog',
136
+ method: 'opt_out_capturing'
137
+ }
138
+ ]
139
+ };
140
+ function posthog(options) {
141
+ if ('disabled' === options.loadMode) return {
142
+ id: 'posthog',
143
+ category: 'measurement',
144
+ callbackOnly: true
145
+ };
146
+ const { apiHost, uiHost, scriptUrl } = resolvePosthogHosts(options);
147
+ const resolved = resolveManifest(posthogManifest, {
148
+ id: options.id,
149
+ apiHost,
150
+ uiHost,
151
+ scriptUrl,
152
+ initOptions: {
153
+ defaults: DEFAULTS_DATE,
154
+ cookieless_mode: 'on_reject',
155
+ ...options.initOptions,
156
+ api_host: apiHost,
157
+ ui_host: uiHost
158
+ }
159
+ });
160
+ if ('after-consent' === options.loadMode) resolved.alwaysLoad = void 0;
161
+ return resolved;
162
+ }
163
+ export { posthog, posthogManifest };
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
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
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ promptwatchManifest: ()=>promptwatchManifest,
28
+ promptwatch: ()=>promptwatch
29
+ });
30
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
31
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
32
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
33
+ const promptwatchManifest = {
34
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
35
+ vendor: 'promptwatch',
36
+ category: 'measurement',
37
+ install: [
38
+ {
39
+ type: 'loadScript',
40
+ src: "{{scriptUrl}}",
41
+ async: true,
42
+ attributes: {
43
+ 'data-project-id': '{{projectId}}'
44
+ }
45
+ }
46
+ ]
47
+ };
48
+ function promptwatch({ projectId, scriptUrl }) {
49
+ const normalizedProjectId = projectId.trim();
50
+ if (0 === normalizedProjectId.length) throw new Error('promptwatch: invalid projectId - must be a non-empty string');
51
+ const defaultScriptUrl = 'https://ingest.promptwatch.com/js/client.min.js';
52
+ const normalizedScriptUrl = (0, script_url_cjs_namespaceObject.resolveScriptUrl)((0, script_url_cjs_namespaceObject.trimToUndefined)(scriptUrl), defaultScriptUrl);
53
+ return (0, external_resolve_cjs_namespaceObject.resolveManifest)(promptwatchManifest, {
54
+ projectId: normalizedProjectId,
55
+ scriptUrl: normalizedScriptUrl
56
+ });
57
+ }
58
+ exports.promptwatch = __webpack_exports__.promptwatch;
59
+ exports.promptwatchManifest = __webpack_exports__.promptwatchManifest;
60
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
61
+ "promptwatch",
62
+ "promptwatchManifest"
63
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
64
+ Object.defineProperty(exports, '__esModule', {
65
+ value: true
66
+ });
@@ -0,0 +1,29 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { resolveScriptUrl, trimToUndefined } from "../_shared/script-url.js";
4
+ const promptwatchManifest = {
5
+ ...vendorManifestContract,
6
+ vendor: 'promptwatch',
7
+ category: 'measurement',
8
+ install: [
9
+ {
10
+ type: 'loadScript',
11
+ src: "{{scriptUrl}}",
12
+ async: true,
13
+ attributes: {
14
+ 'data-project-id': '{{projectId}}'
15
+ }
16
+ }
17
+ ]
18
+ };
19
+ function promptwatch({ projectId, scriptUrl }) {
20
+ const normalizedProjectId = projectId.trim();
21
+ if (0 === normalizedProjectId.length) throw new Error('promptwatch: invalid projectId - must be a non-empty string');
22
+ const defaultScriptUrl = 'https://ingest.promptwatch.com/js/client.min.js';
23
+ const normalizedScriptUrl = resolveScriptUrl(trimToUndefined(scriptUrl), defaultScriptUrl);
24
+ return resolveManifest(promptwatchManifest, {
25
+ projectId: normalizedProjectId,
26
+ scriptUrl: normalizedScriptUrl
27
+ });
28
+ }
29
+ export { promptwatch, promptwatchManifest };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
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
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ rybbitAnalytics: ()=>rybbitAnalytics,
28
+ rybbitAnalyticsManifest: ()=>rybbitAnalyticsManifest
29
+ });
30
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
31
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
32
+ const attributes_cjs_namespaceObject = require("../_shared/attributes.cjs");
33
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
34
+ const rybbitAnalyticsManifest = {
35
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
36
+ vendor: 'rybbit-analytics',
37
+ category: 'measurement',
38
+ install: [
39
+ {
40
+ type: 'loadScript',
41
+ src: "{{scriptUrl}}",
42
+ defer: true,
43
+ attributes: {
44
+ 'data-site-id': '{{siteId}}',
45
+ 'data-auto-track-pageview': '{{autoTrackPageview}}',
46
+ 'data-track-spa': '{{trackSpa}}',
47
+ 'data-track-query': '{{trackQuery}}',
48
+ 'data-track-outbound': '{{trackOutbound}}',
49
+ 'data-track-errors': '{{trackErrors}}',
50
+ 'data-session-replay': '{{sessionReplay}}',
51
+ 'data-web-vitals': '{{webVitals}}',
52
+ 'data-skip-patterns': '{{skipPatterns}}',
53
+ 'data-mask-patterns': '{{maskPatterns}}',
54
+ 'data-debounce': '{{debounce}}',
55
+ 'data-api-key': '{{apiKey}}'
56
+ }
57
+ }
58
+ ]
59
+ };
60
+ function getRybbitScriptUrl(options) {
61
+ const url = options.scriptUrl?.trim();
62
+ if (url && url.length > 0) return url;
63
+ if (options.analyticsHost) return (0, script_url_cjs_namespaceObject.joinUrlPath)(options.analyticsHost, "script.js");
64
+ return "https://app.rybbit.io/api/script.js";
65
+ }
66
+ function rybbitAnalytics(options) {
67
+ let siteId;
68
+ siteId = void 0 === options.siteId || null === options.siteId ? '' : String(options.siteId).trim();
69
+ if (0 === siteId.length) throw new Error('rybbitAnalytics: missing siteId');
70
+ let debounce;
71
+ if (void 0 !== options.debounce) debounce = String(options.debounce);
72
+ let skipPatterns;
73
+ if (options.skipPatterns) skipPatterns = JSON.stringify(options.skipPatterns);
74
+ let maskPatterns;
75
+ if (options.maskPatterns) maskPatterns = JSON.stringify(options.maskPatterns);
76
+ return (0, external_resolve_cjs_namespaceObject.resolveManifest)(rybbitAnalyticsManifest, {
77
+ scriptUrl: getRybbitScriptUrl(options),
78
+ siteId,
79
+ autoTrackPageview: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.autoTrackPageview),
80
+ trackSpa: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.trackSpa),
81
+ trackQuery: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.trackQuery),
82
+ trackOutbound: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.trackOutbound),
83
+ trackErrors: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.trackErrors),
84
+ sessionReplay: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.sessionReplay),
85
+ webVitals: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.webVitals),
86
+ skipPatterns,
87
+ maskPatterns,
88
+ debounce,
89
+ apiKey: options.apiKey
90
+ });
91
+ }
92
+ exports.rybbitAnalytics = __webpack_exports__.rybbitAnalytics;
93
+ exports.rybbitAnalyticsManifest = __webpack_exports__.rybbitAnalyticsManifest;
94
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
95
+ "rybbitAnalytics",
96
+ "rybbitAnalyticsManifest"
97
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
98
+ Object.defineProperty(exports, '__esModule', {
99
+ value: true
100
+ });
@@ -0,0 +1,63 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { booleanDataAttribute } from "../_shared/attributes.js";
4
+ import { joinUrlPath } from "../_shared/script-url.js";
5
+ const rybbitAnalyticsManifest = {
6
+ ...vendorManifestContract,
7
+ vendor: 'rybbit-analytics',
8
+ category: 'measurement',
9
+ install: [
10
+ {
11
+ type: 'loadScript',
12
+ src: "{{scriptUrl}}",
13
+ defer: true,
14
+ attributes: {
15
+ 'data-site-id': '{{siteId}}',
16
+ 'data-auto-track-pageview': '{{autoTrackPageview}}',
17
+ 'data-track-spa': '{{trackSpa}}',
18
+ 'data-track-query': '{{trackQuery}}',
19
+ 'data-track-outbound': '{{trackOutbound}}',
20
+ 'data-track-errors': '{{trackErrors}}',
21
+ 'data-session-replay': '{{sessionReplay}}',
22
+ 'data-web-vitals': '{{webVitals}}',
23
+ 'data-skip-patterns': '{{skipPatterns}}',
24
+ 'data-mask-patterns': '{{maskPatterns}}',
25
+ 'data-debounce': '{{debounce}}',
26
+ 'data-api-key': '{{apiKey}}'
27
+ }
28
+ }
29
+ ]
30
+ };
31
+ function getRybbitScriptUrl(options) {
32
+ const url = options.scriptUrl?.trim();
33
+ if (url && url.length > 0) return url;
34
+ if (options.analyticsHost) return joinUrlPath(options.analyticsHost, "script.js");
35
+ return "https://app.rybbit.io/api/script.js";
36
+ }
37
+ function rybbitAnalytics(options) {
38
+ let siteId;
39
+ siteId = void 0 === options.siteId || null === options.siteId ? '' : String(options.siteId).trim();
40
+ if (0 === siteId.length) throw new Error('rybbitAnalytics: missing siteId');
41
+ let debounce;
42
+ if (void 0 !== options.debounce) debounce = String(options.debounce);
43
+ let skipPatterns;
44
+ if (options.skipPatterns) skipPatterns = JSON.stringify(options.skipPatterns);
45
+ let maskPatterns;
46
+ if (options.maskPatterns) maskPatterns = JSON.stringify(options.maskPatterns);
47
+ return resolveManifest(rybbitAnalyticsManifest, {
48
+ scriptUrl: getRybbitScriptUrl(options),
49
+ siteId,
50
+ autoTrackPageview: booleanDataAttribute(options.autoTrackPageview),
51
+ trackSpa: booleanDataAttribute(options.trackSpa),
52
+ trackQuery: booleanDataAttribute(options.trackQuery),
53
+ trackOutbound: booleanDataAttribute(options.trackOutbound),
54
+ trackErrors: booleanDataAttribute(options.trackErrors),
55
+ sessionReplay: booleanDataAttribute(options.sessionReplay),
56
+ webVitals: booleanDataAttribute(options.webVitals),
57
+ skipPatterns,
58
+ maskPatterns,
59
+ debounce,
60
+ apiKey: options.apiKey
61
+ });
62
+ }
63
+ export { rybbitAnalytics, rybbitAnalyticsManifest };
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
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
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ segment: ()=>segment,
28
+ segmentManifest: ()=>segmentManifest
29
+ });
30
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
31
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
32
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
33
+ const segmentManifest = {
34
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
35
+ vendor: 'segment',
36
+ category: 'measurement',
37
+ bootstrap: [
38
+ {
39
+ type: 'setGlobal',
40
+ name: 'analytics',
41
+ value: [],
42
+ ifUndefined: true
43
+ },
44
+ {
45
+ type: 'defineQueueMethods',
46
+ target: 'analytics',
47
+ methods: [
48
+ 'track',
49
+ 'page',
50
+ 'identify',
51
+ 'group',
52
+ 'alias',
53
+ 'reset'
54
+ ]
55
+ }
56
+ ],
57
+ install: [
58
+ {
59
+ type: 'callGlobal',
60
+ global: 'analytics',
61
+ method: 'page'
62
+ },
63
+ {
64
+ type: 'loadScript',
65
+ src: "{{scriptUrl}}",
66
+ async: true
67
+ }
68
+ ]
69
+ };
70
+ function segment({ writeKey, trackPageView = true, scriptUrl }) {
71
+ let normalizedWriteKey = '';
72
+ if ('string' == typeof writeKey) normalizedWriteKey = writeKey.trim();
73
+ if (0 === normalizedWriteKey.length) throw new Error('segment: missing or invalid writeKey');
74
+ const segmentCdnBase = 'https://cdn.segment.com/analytics.js/v1';
75
+ const defaultScriptUrl = `${segmentCdnBase}/${normalizedWriteKey}/analytics.min.js`;
76
+ let manifest = segmentManifest;
77
+ if (!trackPageView) manifest = {
78
+ ...segmentManifest,
79
+ install: segmentManifest.install.filter((step)=>!('callGlobal' === step.type && 'analytics' === step.global && 'page' === step.method))
80
+ };
81
+ return (0, external_resolve_cjs_namespaceObject.resolveManifest)(manifest, {
82
+ scriptUrl: (0, script_url_cjs_namespaceObject.resolveScriptUrl)(scriptUrl, defaultScriptUrl)
83
+ });
84
+ }
85
+ exports.segment = __webpack_exports__.segment;
86
+ exports.segmentManifest = __webpack_exports__.segmentManifest;
87
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
88
+ "segment",
89
+ "segmentManifest"
90
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
91
+ Object.defineProperty(exports, '__esModule', {
92
+ value: true
93
+ });
@@ -0,0 +1,56 @@
1
+ import { resolveManifest } from "../../resolve.js";
2
+ import { vendorManifestContract } from "../../types.js";
3
+ import { resolveScriptUrl } from "../_shared/script-url.js";
4
+ const segmentManifest = {
5
+ ...vendorManifestContract,
6
+ vendor: 'segment',
7
+ category: 'measurement',
8
+ bootstrap: [
9
+ {
10
+ type: 'setGlobal',
11
+ name: 'analytics',
12
+ value: [],
13
+ ifUndefined: true
14
+ },
15
+ {
16
+ type: 'defineQueueMethods',
17
+ target: 'analytics',
18
+ methods: [
19
+ 'track',
20
+ 'page',
21
+ 'identify',
22
+ 'group',
23
+ 'alias',
24
+ 'reset'
25
+ ]
26
+ }
27
+ ],
28
+ install: [
29
+ {
30
+ type: 'callGlobal',
31
+ global: 'analytics',
32
+ method: 'page'
33
+ },
34
+ {
35
+ type: 'loadScript',
36
+ src: "{{scriptUrl}}",
37
+ async: true
38
+ }
39
+ ]
40
+ };
41
+ function segment({ writeKey, trackPageView = true, scriptUrl }) {
42
+ let normalizedWriteKey = '';
43
+ if ('string' == typeof writeKey) normalizedWriteKey = writeKey.trim();
44
+ if (0 === normalizedWriteKey.length) throw new Error('segment: missing or invalid writeKey');
45
+ const segmentCdnBase = 'https://cdn.segment.com/analytics.js/v1';
46
+ const defaultScriptUrl = `${segmentCdnBase}/${normalizedWriteKey}/analytics.min.js`;
47
+ let manifest = segmentManifest;
48
+ if (!trackPageView) manifest = {
49
+ ...segmentManifest,
50
+ install: segmentManifest.install.filter((step)=>!('callGlobal' === step.type && 'analytics' === step.global && 'page' === step.method))
51
+ };
52
+ return resolveManifest(manifest, {
53
+ scriptUrl: resolveScriptUrl(scriptUrl, defaultScriptUrl)
54
+ });
55
+ }
56
+ export { segment, segmentManifest };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
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
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ umamiAnalytics: ()=>umamiAnalytics,
28
+ umamiAnalyticsManifest: ()=>umamiAnalyticsManifest
29
+ });
30
+ const external_resolve_cjs_namespaceObject = require("../../resolve.cjs");
31
+ const external_types_cjs_namespaceObject = require("../../types.cjs");
32
+ const attributes_cjs_namespaceObject = require("../_shared/attributes.cjs");
33
+ const script_url_cjs_namespaceObject = require("../_shared/script-url.cjs");
34
+ const umamiAnalyticsManifest = {
35
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
36
+ vendor: 'umami-analytics',
37
+ category: 'measurement',
38
+ install: [
39
+ {
40
+ type: 'loadScript',
41
+ src: "{{scriptUrl}}",
42
+ defer: true,
43
+ attributes: {
44
+ 'data-website-id': '{{websiteId}}',
45
+ 'data-host-url': '{{hostUrl}}',
46
+ 'data-auto-track': '{{autoTrackAttribute}}',
47
+ 'data-domains': '{{domains}}',
48
+ 'data-tag': '{{tag}}',
49
+ 'data-before-send': '{{beforeSend}}'
50
+ }
51
+ }
52
+ ]
53
+ };
54
+ function umamiAnalytics(options) {
55
+ const websiteId = options.websiteId.trim();
56
+ if (0 === websiteId.length) throw new Error('umamiAnalytics: invalid websiteId - must be a non-empty string');
57
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(umamiAnalyticsManifest, {
58
+ websiteId,
59
+ hostUrl: options.hostUrl,
60
+ autoTrackAttribute: (0, attributes_cjs_namespaceObject.booleanDataAttribute)(options.autoTrack),
61
+ domains: (0, attributes_cjs_namespaceObject.listDataAttribute)(options.domains),
62
+ tag: options.tag,
63
+ beforeSend: options.beforeSend,
64
+ scriptUrl: (0, script_url_cjs_namespaceObject.resolveScriptUrl)(options.scriptUrl, "https://cloud.umami.is/script.js")
65
+ });
66
+ return resolved;
67
+ }
68
+ exports.umamiAnalytics = __webpack_exports__.umamiAnalytics;
69
+ exports.umamiAnalyticsManifest = __webpack_exports__.umamiAnalyticsManifest;
70
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
71
+ "umamiAnalytics",
72
+ "umamiAnalyticsManifest"
73
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
74
+ Object.defineProperty(exports, '__esModule', {
75
+ value: true
76
+ });