@c15t/scripts 2.0.0-rc.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +3 -3
  2. package/dist/databuddy.cjs +103 -48
  3. package/dist/databuddy.js +99 -47
  4. package/dist/e2e-test-utils.cjs +125 -0
  5. package/dist/e2e-test-utils.js +67 -0
  6. package/dist/engine/compile.cjs +126 -0
  7. package/dist/engine/compile.js +89 -0
  8. package/dist/engine/runtime.cjs +378 -0
  9. package/dist/engine/runtime.js +344 -0
  10. package/dist/google-tag-manager.cjs +78 -86
  11. package/dist/google-tag-manager.js +74 -79
  12. package/dist/google-tag.cjs +86 -37
  13. package/dist/google-tag.js +82 -36
  14. package/dist/linkedin-insights.cjs +51 -33
  15. package/dist/linkedin-insights.js +46 -31
  16. package/dist/meta-pixel.cjs +90 -28
  17. package/dist/meta-pixel.js +86 -27
  18. package/dist/microsoft-uet.cjs +90 -50
  19. package/dist/microsoft-uet.js +86 -49
  20. package/dist/posthog.cjs +100 -51
  21. package/dist/posthog.js +96 -50
  22. package/dist/resolve.cjs +67 -0
  23. package/dist/resolve.js +33 -0
  24. package/dist/tiktok-pixel.cjs +91 -29
  25. package/dist/tiktok-pixel.js +86 -27
  26. package/dist/types.cjs +47 -0
  27. package/dist/types.js +7 -0
  28. package/dist/x-pixel.cjs +48 -14
  29. package/dist/x-pixel.js +43 -12
  30. package/dist-types/databuddy.d.ts +144 -0
  31. package/dist-types/engine/compile.d.ts +3 -0
  32. package/dist-types/engine/runtime.d.ts +3 -0
  33. package/dist-types/google-tag-manager.d.ts +97 -0
  34. package/dist-types/google-tag.d.ts +96 -0
  35. package/dist-types/linkedin-insights.d.ts +79 -0
  36. package/{dist → dist-types}/meta-pixel.d.ts +61 -14
  37. package/dist-types/microsoft-uet.d.ts +94 -0
  38. package/dist-types/posthog.d.ts +112 -0
  39. package/dist-types/resolve.d.ts +9 -0
  40. package/dist-types/tiktok-pixel.d.ts +91 -0
  41. package/dist-types/types.d.ts +259 -0
  42. package/{dist → dist-types}/x-pixel.d.ts +38 -12
  43. package/package.json +9 -8
  44. package/dist/databuddy.d.ts +0 -104
  45. package/dist/databuddy.d.ts.map +0 -1
  46. package/dist/google-tag-manager.d.ts +0 -63
  47. package/dist/google-tag-manager.d.ts.map +0 -1
  48. package/dist/google-tag.d.ts +0 -38
  49. package/dist/google-tag.d.ts.map +0 -1
  50. package/dist/linkedin-insights.d.ts +0 -48
  51. package/dist/linkedin-insights.d.ts.map +0 -1
  52. package/dist/meta-pixel.d.ts.map +0 -1
  53. package/dist/microsoft-uet.d.ts +0 -40
  54. package/dist/microsoft-uet.d.ts.map +0 -1
  55. package/dist/posthog.d.ts +0 -54
  56. package/dist/posthog.d.ts.map +0 -1
  57. package/dist/tiktok-pixel.d.ts +0 -44
  58. package/dist/tiktok-pixel.d.ts.map +0 -1
  59. package/dist/x-pixel.d.ts.map +0 -1
@@ -13,7 +13,7 @@ var __webpack_require__ = {};
13
13
  })();
14
14
  (()=>{
15
15
  __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
17
  value: 'Module'
18
18
  });
19
19
  Object.defineProperty(exports1, '__esModule', {
@@ -24,43 +24,105 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ metaPixelManifest: ()=>metaPixelManifest,
27
28
  metaPixel: ()=>metaPixel,
28
29
  metaPixelEvent: ()=>metaPixelEvent
29
30
  });
30
- function metaPixel({ pixelId, script }) {
31
- return {
32
- id: script?.id ?? 'meta-pixel',
33
- category: script?.category ?? 'marketing',
34
- textContent: `
35
- !function(f,b,e,v,n,t,s)
36
- {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
37
- n.callMethod.apply(n,arguments):n.queue.push(arguments)};
38
- if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
39
- n.queue=[];t=b.createElement(e);t.async=!0;
40
- t.src=v;s=b.getElementsByTagName(e)[0];
41
- s.parentNode.insertBefore(t,s)}(window, document,'script',
42
- '${script?.src ?? 'https://connect.facebook.net/en_US/fbevents.js'}');
43
- fbq('consent', 'grant');
44
- fbq('init', '${pixelId}');
45
- fbq('track', 'PageView');
46
- `.trim(),
47
- persistAfterConsentRevoked: true,
48
- onConsentChange: ({ consents, ...rest })=>{
49
- if (consents.marketing) window.fbq('consent', 'grant');
50
- else window.fbq('consent', 'revoke');
51
- if (script?.onConsentChange) script.onConsentChange({
52
- consents,
53
- ...rest
54
- });
31
+ const external_resolve_cjs_namespaceObject = require("./resolve.cjs");
32
+ const external_types_cjs_namespaceObject = require("./types.cjs");
33
+ const metaPixelManifest = {
34
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
35
+ vendor: 'meta-pixel',
36
+ category: 'marketing',
37
+ persistAfterConsentRevoked: true,
38
+ bootstrap: [
39
+ {
40
+ type: 'defineStubFunction',
41
+ name: 'fbq',
42
+ queue: {
43
+ property: 'queue'
44
+ },
45
+ dispatchProperty: 'callMethod',
46
+ selfReferences: [
47
+ 'push'
48
+ ],
49
+ aliases: [
50
+ '_fbq'
51
+ ],
52
+ properties: {
53
+ loaded: true,
54
+ version: '2.0'
55
+ },
56
+ ifUndefined: true
55
57
  }
56
- };
58
+ ],
59
+ install: [
60
+ {
61
+ type: 'callGlobal',
62
+ global: 'fbq',
63
+ args: [
64
+ 'consent',
65
+ 'grant'
66
+ ]
67
+ },
68
+ {
69
+ type: 'callGlobal',
70
+ global: 'fbq',
71
+ args: [
72
+ 'init',
73
+ '{{pixelId}}'
74
+ ]
75
+ },
76
+ {
77
+ type: 'callGlobal',
78
+ global: 'fbq',
79
+ args: [
80
+ 'track',
81
+ 'PageView'
82
+ ]
83
+ },
84
+ {
85
+ type: 'loadScript',
86
+ src: "{{scriptSrc}}",
87
+ async: true
88
+ }
89
+ ],
90
+ onConsentGranted: [
91
+ {
92
+ type: 'callGlobal',
93
+ global: 'fbq',
94
+ args: [
95
+ 'consent',
96
+ 'grant'
97
+ ]
98
+ }
99
+ ],
100
+ onConsentDenied: [
101
+ {
102
+ type: 'callGlobal',
103
+ global: 'fbq',
104
+ args: [
105
+ 'consent',
106
+ 'revoke'
107
+ ]
108
+ }
109
+ ]
110
+ };
111
+ function metaPixel({ pixelId, scriptSrc }) {
112
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(metaPixelManifest, {
113
+ pixelId,
114
+ scriptSrc: scriptSrc ?? 'https://connect.facebook.net/en_US/fbevents.js'
115
+ });
116
+ return resolved;
57
117
  }
58
118
  const metaPixelEvent = (eventName, params, eventId)=>window.fbq('track', eventName, params, eventId);
59
119
  exports.metaPixel = __webpack_exports__.metaPixel;
60
120
  exports.metaPixelEvent = __webpack_exports__.metaPixelEvent;
121
+ exports.metaPixelManifest = __webpack_exports__.metaPixelManifest;
61
122
  for(var __rspack_i in __webpack_exports__)if (-1 === [
62
123
  "metaPixel",
63
- "metaPixelEvent"
124
+ "metaPixelEvent",
125
+ "metaPixelManifest"
64
126
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
65
127
  Object.defineProperty(exports, '__esModule', {
66
128
  value: true
@@ -1,30 +1,89 @@
1
- function metaPixel({ pixelId, script }) {
2
- return {
3
- id: script?.id ?? 'meta-pixel',
4
- category: script?.category ?? 'marketing',
5
- textContent: `
6
- !function(f,b,e,v,n,t,s)
7
- {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
8
- n.callMethod.apply(n,arguments):n.queue.push(arguments)};
9
- if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
10
- n.queue=[];t=b.createElement(e);t.async=!0;
11
- t.src=v;s=b.getElementsByTagName(e)[0];
12
- s.parentNode.insertBefore(t,s)}(window, document,'script',
13
- '${script?.src ?? 'https://connect.facebook.net/en_US/fbevents.js'}');
14
- fbq('consent', 'grant');
15
- fbq('init', '${pixelId}');
16
- fbq('track', 'PageView');
17
- `.trim(),
18
- persistAfterConsentRevoked: true,
19
- onConsentChange: ({ consents, ...rest })=>{
20
- if (consents.marketing) window.fbq('consent', 'grant');
21
- else window.fbq('consent', 'revoke');
22
- if (script?.onConsentChange) script.onConsentChange({
23
- consents,
24
- ...rest
25
- });
1
+ import { resolveManifest } from "./resolve.js";
2
+ import { vendorManifestContract } from "./types.js";
3
+ const metaPixelManifest = {
4
+ ...vendorManifestContract,
5
+ vendor: 'meta-pixel',
6
+ category: 'marketing',
7
+ persistAfterConsentRevoked: true,
8
+ bootstrap: [
9
+ {
10
+ type: 'defineStubFunction',
11
+ name: 'fbq',
12
+ queue: {
13
+ property: 'queue'
14
+ },
15
+ dispatchProperty: 'callMethod',
16
+ selfReferences: [
17
+ 'push'
18
+ ],
19
+ aliases: [
20
+ '_fbq'
21
+ ],
22
+ properties: {
23
+ loaded: true,
24
+ version: '2.0'
25
+ },
26
+ ifUndefined: true
26
27
  }
27
- };
28
+ ],
29
+ install: [
30
+ {
31
+ type: 'callGlobal',
32
+ global: 'fbq',
33
+ args: [
34
+ 'consent',
35
+ 'grant'
36
+ ]
37
+ },
38
+ {
39
+ type: 'callGlobal',
40
+ global: 'fbq',
41
+ args: [
42
+ 'init',
43
+ '{{pixelId}}'
44
+ ]
45
+ },
46
+ {
47
+ type: 'callGlobal',
48
+ global: 'fbq',
49
+ args: [
50
+ 'track',
51
+ 'PageView'
52
+ ]
53
+ },
54
+ {
55
+ type: 'loadScript',
56
+ src: "{{scriptSrc}}",
57
+ async: true
58
+ }
59
+ ],
60
+ onConsentGranted: [
61
+ {
62
+ type: 'callGlobal',
63
+ global: 'fbq',
64
+ args: [
65
+ 'consent',
66
+ 'grant'
67
+ ]
68
+ }
69
+ ],
70
+ onConsentDenied: [
71
+ {
72
+ type: 'callGlobal',
73
+ global: 'fbq',
74
+ args: [
75
+ 'consent',
76
+ 'revoke'
77
+ ]
78
+ }
79
+ ]
80
+ };
81
+ function metaPixel({ pixelId, scriptSrc }) {
82
+ const resolved = resolveManifest(metaPixelManifest, {
83
+ pixelId,
84
+ scriptSrc: scriptSrc ?? 'https://connect.facebook.net/en_US/fbevents.js'
85
+ });
86
+ return resolved;
28
87
  }
29
88
  const metaPixelEvent = (eventName, params, eventId)=>window.fbq('track', eventName, params, eventId);
30
- export { metaPixel, metaPixelEvent };
89
+ export { metaPixel, metaPixelEvent, metaPixelManifest };
@@ -13,7 +13,7 @@ var __webpack_require__ = {};
13
13
  })();
14
14
  (()=>{
15
15
  __webpack_require__.r = (exports1)=>{
16
- if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
17
  value: 'Module'
18
18
  });
19
19
  Object.defineProperty(exports1, '__esModule', {
@@ -24,66 +24,106 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ microsoftUetManifest: ()=>microsoftUetManifest,
27
28
  microsoftUet: ()=>microsoftUet
28
29
  });
29
- function microsoftUet({ id, script }) {
30
- const category = script?.category ?? 'marketing';
31
- return {
32
- id: script?.id ?? 'microsoft-uet',
33
- category,
34
- textContent: `
35
- (function(w,d,t,r,u)
36
- {
37
- var f,n,i;
38
- w[u]=w[u]||[],f=function()
30
+ const external_resolve_cjs_namespaceObject = require("./resolve.cjs");
31
+ const external_types_cjs_namespaceObject = require("./types.cjs");
32
+ const microsoftUetManifest = {
33
+ ...external_types_cjs_namespaceObject.vendorManifestContract,
34
+ vendor: 'microsoft-uet',
35
+ category: 'marketing',
36
+ persistAfterConsentRevoked: true,
37
+ bootstrap: [
39
38
  {
40
- var o={ti:"${id}", enableAutoSpaTracking: true};
41
- o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
39
+ type: 'setGlobal',
40
+ name: 'uetq',
41
+ value: [],
42
+ ifUndefined: true
43
+ }
44
+ ],
45
+ install: [
46
+ {
47
+ type: 'loadScript',
48
+ src: "{{scriptSrc}}",
49
+ async: true
50
+ }
51
+ ],
52
+ afterLoad: [
53
+ {
54
+ type: 'constructGlobal',
55
+ constructor: 'UET',
56
+ assignTo: 'uetq',
57
+ args: [
58
+ {
59
+ ti: '{{id}}',
60
+ enableAutoSpaTracking: true
61
+ }
62
+ ],
63
+ copyAssignedValueToArgProperty: 'q'
42
64
  },
43
- n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
44
65
  {
45
- var s=this.readyState;
46
- s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
66
+ type: 'callGlobal',
67
+ global: 'uetq',
68
+ method: 'push',
69
+ args: [
70
+ 'pageLoad'
71
+ ]
47
72
  },
48
- i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
49
- })
50
- (window,document,"script","${script?.src ?? '//bat.bing.com/bat.js'}","uetq");
51
- `.trim(),
52
- onLoad: (rest)=>{
53
- if (!document.head) throw new Error("Document head is not available for script injection");
54
- const existingElement = document.getElementById(`${rest.elementId}-default`);
55
- if (existingElement) {
56
- window.uetq = window.uetq || [];
57
- window.uetq.push('consent', 'update', {
73
+ {
74
+ type: 'callGlobal',
75
+ global: 'uetq',
76
+ method: 'push',
77
+ args: [
78
+ 'consent',
79
+ 'default',
80
+ {
58
81
  ad_storage: 'granted'
59
- });
60
- } else {
61
- const defaultConsentScript = document.createElement("script");
62
- defaultConsentScript.id = `${rest.elementId}-default`;
63
- defaultConsentScript.textContent = `
64
- window.uetq = window.uetq || [];
65
- window.uetq.push('consent', 'default', {
66
- ad_storage: 'granted',
67
- });
68
- `;
69
- document.head.appendChild(defaultConsentScript);
70
- }
71
- if (script?.onLoad) script.onLoad(rest);
72
- },
73
- onConsentChange ({ consents, ...rest }) {
74
- window.uetq?.push('consent', 'update', {
75
- ad_storage: consents.marketing ? 'granted' : 'denied'
76
- });
77
- if (script?.onConsentChange) script.onConsentChange({
78
- consents,
79
- ...rest
80
- });
82
+ }
83
+ ]
81
84
  }
82
- };
85
+ ],
86
+ onConsentGranted: [
87
+ {
88
+ type: 'callGlobal',
89
+ global: 'uetq',
90
+ method: 'push',
91
+ args: [
92
+ 'consent',
93
+ 'update',
94
+ {
95
+ ad_storage: 'granted'
96
+ }
97
+ ]
98
+ }
99
+ ],
100
+ onConsentDenied: [
101
+ {
102
+ type: 'callGlobal',
103
+ global: 'uetq',
104
+ method: 'push',
105
+ args: [
106
+ 'consent',
107
+ 'update',
108
+ {
109
+ ad_storage: 'denied'
110
+ }
111
+ ]
112
+ }
113
+ ]
114
+ };
115
+ function microsoftUet({ id, scriptSrc }) {
116
+ const resolved = (0, external_resolve_cjs_namespaceObject.resolveManifest)(microsoftUetManifest, {
117
+ id,
118
+ scriptSrc: scriptSrc ?? '//bat.bing.com/bat.js'
119
+ });
120
+ return resolved;
83
121
  }
84
122
  exports.microsoftUet = __webpack_exports__.microsoftUet;
123
+ exports.microsoftUetManifest = __webpack_exports__.microsoftUetManifest;
85
124
  for(var __rspack_i in __webpack_exports__)if (-1 === [
86
- "microsoftUet"
125
+ "microsoftUet",
126
+ "microsoftUetManifest"
87
127
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
88
128
  Object.defineProperty(exports, '__esModule', {
89
129
  value: true
@@ -1,56 +1,93 @@
1
- function microsoftUet({ id, script }) {
2
- const category = script?.category ?? 'marketing';
3
- return {
4
- id: script?.id ?? 'microsoft-uet',
5
- category,
6
- textContent: `
7
- (function(w,d,t,r,u)
8
- {
9
- var f,n,i;
10
- w[u]=w[u]||[],f=function()
1
+ import { resolveManifest } from "./resolve.js";
2
+ import { vendorManifestContract } from "./types.js";
3
+ const microsoftUetManifest = {
4
+ ...vendorManifestContract,
5
+ vendor: 'microsoft-uet',
6
+ category: 'marketing',
7
+ persistAfterConsentRevoked: true,
8
+ bootstrap: [
11
9
  {
12
- var o={ti:"${id}", enableAutoSpaTracking: true};
13
- o.q=w[u],w[u]=new UET(o),w[u].push("pageLoad")
10
+ type: 'setGlobal',
11
+ name: 'uetq',
12
+ value: [],
13
+ ifUndefined: true
14
+ }
15
+ ],
16
+ install: [
17
+ {
18
+ type: 'loadScript',
19
+ src: "{{scriptSrc}}",
20
+ async: true
21
+ }
22
+ ],
23
+ afterLoad: [
24
+ {
25
+ type: 'constructGlobal',
26
+ constructor: 'UET',
27
+ assignTo: 'uetq',
28
+ args: [
29
+ {
30
+ ti: '{{id}}',
31
+ enableAutoSpaTracking: true
32
+ }
33
+ ],
34
+ copyAssignedValueToArgProperty: 'q'
14
35
  },
15
- n=d.createElement(t),n.src=r,n.async=1,n.onload=n.onreadystatechange=function()
16
36
  {
17
- var s=this.readyState;
18
- s&&s!=="loaded"&&s!=="complete"||(f(),n.onload=n.onreadystatechange=null)
37
+ type: 'callGlobal',
38
+ global: 'uetq',
39
+ method: 'push',
40
+ args: [
41
+ 'pageLoad'
42
+ ]
19
43
  },
20
- i=d.getElementsByTagName(t)[0],i.parentNode.insertBefore(n,i)
21
- })
22
- (window,document,"script","${script?.src ?? '//bat.bing.com/bat.js'}","uetq");
23
- `.trim(),
24
- onLoad: (rest)=>{
25
- if (!document.head) throw new Error("Document head is not available for script injection");
26
- const existingElement = document.getElementById(`${rest.elementId}-default`);
27
- if (existingElement) {
28
- window.uetq = window.uetq || [];
29
- window.uetq.push('consent', 'update', {
44
+ {
45
+ type: 'callGlobal',
46
+ global: 'uetq',
47
+ method: 'push',
48
+ args: [
49
+ 'consent',
50
+ 'default',
51
+ {
30
52
  ad_storage: 'granted'
31
- });
32
- } else {
33
- const defaultConsentScript = document.createElement("script");
34
- defaultConsentScript.id = `${rest.elementId}-default`;
35
- defaultConsentScript.textContent = `
36
- window.uetq = window.uetq || [];
37
- window.uetq.push('consent', 'default', {
38
- ad_storage: 'granted',
39
- });
40
- `;
41
- document.head.appendChild(defaultConsentScript);
42
- }
43
- if (script?.onLoad) script.onLoad(rest);
44
- },
45
- onConsentChange ({ consents, ...rest }) {
46
- window.uetq?.push('consent', 'update', {
47
- ad_storage: consents.marketing ? 'granted' : 'denied'
48
- });
49
- if (script?.onConsentChange) script.onConsentChange({
50
- consents,
51
- ...rest
52
- });
53
+ }
54
+ ]
55
+ }
56
+ ],
57
+ onConsentGranted: [
58
+ {
59
+ type: 'callGlobal',
60
+ global: 'uetq',
61
+ method: 'push',
62
+ args: [
63
+ 'consent',
64
+ 'update',
65
+ {
66
+ ad_storage: 'granted'
67
+ }
68
+ ]
69
+ }
70
+ ],
71
+ onConsentDenied: [
72
+ {
73
+ type: 'callGlobal',
74
+ global: 'uetq',
75
+ method: 'push',
76
+ args: [
77
+ 'consent',
78
+ 'update',
79
+ {
80
+ ad_storage: 'denied'
81
+ }
82
+ ]
53
83
  }
54
- };
84
+ ]
85
+ };
86
+ function microsoftUet({ id, scriptSrc }) {
87
+ const resolved = resolveManifest(microsoftUetManifest, {
88
+ id,
89
+ scriptSrc: scriptSrc ?? '//bat.bing.com/bat.js'
90
+ });
91
+ return resolved;
55
92
  }
56
- export { microsoftUet };
93
+ export { microsoftUet, microsoftUetManifest };