@shware/analytics 3.8.1 → 3.8.2
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.
- package/dist/schema/index.cjs +32 -0
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +130 -1
- package/dist/schema/index.d.cts.map +1 -1
- package/dist/schema/index.d.mts +130 -1
- package/dist/schema/index.d.mts.map +1 -1
- package/dist/schema/index.mjs +33 -2
- package/dist/schema/index.mjs.map +1 -1
- package/dist/third-parties/google-analytics.cjs +2 -2
- package/dist/third-parties/google-analytics.cjs.map +1 -1
- package/dist/third-parties/google-analytics.d.cts +2 -2
- package/dist/third-parties/google-analytics.d.cts.map +1 -1
- package/dist/third-parties/google-analytics.d.mts +2 -2
- package/dist/third-parties/google-analytics.d.mts.map +1 -1
- package/dist/third-parties/google-analytics.mjs +2 -2
- package/dist/third-parties/google-analytics.mjs.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.cjs +2 -2
- package/dist/third-parties/linkedin-insight-tag.cjs.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.d.cts +2 -2
- package/dist/third-parties/linkedin-insight-tag.d.cts.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.d.mts +2 -2
- package/dist/third-parties/linkedin-insight-tag.d.mts.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.mjs +2 -2
- package/dist/third-parties/linkedin-insight-tag.mjs.map +1 -1
- package/dist/third-parties/meta-pixel.cjs +4 -4
- package/dist/third-parties/meta-pixel.cjs.map +1 -1
- package/dist/third-parties/meta-pixel.d.cts +2 -2
- package/dist/third-parties/meta-pixel.d.cts.map +1 -1
- package/dist/third-parties/meta-pixel.d.mts +2 -2
- package/dist/third-parties/meta-pixel.d.mts.map +1 -1
- package/dist/third-parties/meta-pixel.mjs +4 -4
- package/dist/third-parties/meta-pixel.mjs.map +1 -1
- package/dist/third-parties/openai-pixel.cjs +3 -3
- package/dist/third-parties/openai-pixel.cjs.map +1 -1
- package/dist/third-parties/openai-pixel.d.cts +2 -2
- package/dist/third-parties/openai-pixel.d.cts.map +1 -1
- package/dist/third-parties/openai-pixel.d.mts +2 -2
- package/dist/third-parties/openai-pixel.d.mts.map +1 -1
- package/dist/third-parties/openai-pixel.mjs +3 -3
- package/dist/third-parties/openai-pixel.mjs.map +1 -1
- package/dist/third-parties/posthog.cjs +2 -2
- package/dist/third-parties/posthog.cjs.map +1 -1
- package/dist/third-parties/posthog.d.cts +2 -2
- package/dist/third-parties/posthog.d.cts.map +1 -1
- package/dist/third-parties/posthog.d.mts +2 -2
- package/dist/third-parties/posthog.d.mts.map +1 -1
- package/dist/third-parties/posthog.mjs +2 -2
- package/dist/third-parties/posthog.mjs.map +1 -1
- package/dist/third-parties/reddit-pixel.cjs +3 -3
- package/dist/third-parties/reddit-pixel.cjs.map +1 -1
- package/dist/third-parties/reddit-pixel.d.cts +2 -2
- package/dist/third-parties/reddit-pixel.d.cts.map +1 -1
- package/dist/third-parties/reddit-pixel.d.mts +2 -2
- package/dist/third-parties/reddit-pixel.d.mts.map +1 -1
- package/dist/third-parties/reddit-pixel.mjs +3 -3
- package/dist/third-parties/reddit-pixel.mjs.map +1 -1
- package/dist/visitor/index.cjs +6 -5
- package/dist/visitor/index.cjs.map +1 -1
- package/dist/visitor/index.d.cts +3 -2
- package/dist/visitor/index.d.cts.map +1 -1
- package/dist/visitor/index.d.mts +3 -2
- package/dist/visitor/index.d.mts.map +1 -1
- package/dist/visitor/index.mjs +6 -5
- package/dist/visitor/index.mjs.map +1 -1
- package/dist/visitor/types.d.cts +2 -8
- package/dist/visitor/types.d.cts.map +1 -1
- package/dist/visitor/types.d.mts +2 -8
- package/dist/visitor/types.d.mts.map +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { Gtag } from "../track/gtag.mjs";
|
|
2
3
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
3
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
4
4
|
//#region src/third-parties/google-analytics.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window extends Gtag {}
|
|
7
7
|
}
|
|
8
8
|
declare function sendGAEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
9
|
-
declare function setGAUser({ user_id,
|
|
9
|
+
declare function setGAUser({ user_id, user_data, properties }: UpdateVisitorDTO): void;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { sendGAEvent, setGAUser };
|
|
12
12
|
//# sourceMappingURL=google-analytics.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-analytics.d.mts","names":[],"sources":["../../src/third-parties/google-analytics.ts"],"mappings":";;;;QAIQ;YAEI,eAAe;;iBAGX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBASf,YAAY,SAAS,
|
|
1
|
+
{"version":3,"file":"google-analytics.d.mts","names":[],"sources":["../../src/third-parties/google-analytics.ts"],"mappings":";;;;QAIQ;YAEI,eAAe;;iBAGX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBASf,YAAY,SAAS,WAAW,cAAc"}
|
|
@@ -6,13 +6,13 @@ function sendGAEvent(name, properties) {
|
|
|
6
6
|
}
|
|
7
7
|
window.gtag("event", name, properties);
|
|
8
8
|
}
|
|
9
|
-
function setGAUser({ user_id,
|
|
9
|
+
function setGAUser({ user_id, user_data, properties }) {
|
|
10
10
|
if (!window.gtag) {
|
|
11
11
|
console.warn("GA has not been initialized");
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
if (user_id) window.gtag("set", "user_id", user_id);
|
|
15
|
-
if (
|
|
15
|
+
if (user_data) window.gtag("set", "user_data", user_data);
|
|
16
16
|
if (properties) window.gtag("set", "user_properties", properties);
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-analytics.mjs","names":[],"sources":["../../src/third-parties/google-analytics.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"google-analytics.mjs","names":[],"sources":["../../src/third-parties/google-analytics.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport type { Gtag } from '../track/gtag';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends Gtag {}\n}\n\nexport function sendGAEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n window.gtag('event', name, properties);\n}\n\nexport function setGAUser({ user_id, user_data, properties }: UpdateVisitorDTO) {\n if (!window.gtag) {\n console.warn('GA has not been initialized');\n return;\n }\n if (user_id) window.gtag('set', 'user_id', user_id);\n if (user_data) window.gtag('set', 'user_data', user_data);\n if (properties) window.gtag('set', 'user_properties', properties as never);\n}\n"],"mappings":";AASA,SAAgB,YACd,MACA,YACA;CACA,IAAI,CAAC,OAAO,MAAM;EAChB,QAAQ,KAAK,6BAA6B;EAC1C;CACF;CACA,OAAO,KAAK,SAAS,MAAM,UAAU;AACvC;AAEA,SAAgB,UAAU,EAAE,SAAS,WAAW,cAAgC;CAC9E,IAAI,CAAC,OAAO,MAAM;EAChB,QAAQ,KAAK,6BAA6B;EAC1C;CACF;CACA,IAAI,SAAS,OAAO,KAAK,OAAO,WAAW,OAAO;CAClD,IAAI,WAAW,OAAO,KAAK,OAAO,aAAa,SAAS;CACxD,IAAI,YAAY,OAAO,KAAK,OAAO,mBAAmB,UAAmB;AAC3E"}
|
|
@@ -17,12 +17,12 @@ function sendLinkedinEvent(config) {
|
|
|
17
17
|
});
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
function setLinkedinUser({
|
|
20
|
+
function setLinkedinUser({ user_data }) {
|
|
21
21
|
if (typeof window === "undefined" || !window.lintrk) {
|
|
22
22
|
console.warn("lintrk has not been initialized");
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
|
-
const email = require_utils_field.getFirst(
|
|
25
|
+
const email = require_utils_field.getFirst(user_data?.email);
|
|
26
26
|
if (!email) return;
|
|
27
27
|
window.lintrk("setUserData", { email });
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin-insight-tag.cjs","names":["getFirst"],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"sourcesContent":["import type { Lintrk } from '../track/lintrk';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"linkedin-insight-tag.cjs","names":["getFirst"],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport type { Lintrk } from '../track/lintrk';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends Lintrk {}\n}\n\n/**\n * LinkedIn Conversion Config:\n * example:\n * {\n * purchase: 123,\n * add_to_cart: 456,\n * add_to_wishlist: 789,\n * }\n */\nexport type LinkedinConversionConfig = Record<Lowercase<string>, number>;\n\nexport function sendLinkedinEvent(config: LinkedinConversionConfig) {\n return <T extends EventName>(\n name: TrackName<T>,\n _properties?: TrackProperties<T>,\n event_id?: string\n ) => {\n if (typeof window === 'undefined' || !window.lintrk) {\n console.warn('lintrk has not been initialized');\n return;\n }\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const conversion_id = config[name as Lowercase<string>];\n if (!conversion_id) return;\n window.lintrk('track', { conversion_id, event_id });\n };\n}\n\nexport function setLinkedinUser({ user_data }: UpdateVisitorDTO) {\n if (typeof window === 'undefined' || !window.lintrk) {\n console.warn('lintrk has not been initialized');\n return;\n }\n\n const email = getFirst(user_data?.email);\n if (!email) return;\n window.lintrk('setUserData', { email });\n}\n"],"mappings":";;;AAqBA,SAAgB,kBAAkB,QAAkC;CAClE,QACE,MACA,aACA,aACG;EACH,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,QAAQ;GACnD,QAAQ,KAAK,iCAAiC;GAC9C;EACF;EACA,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;EAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;EAEhD,MAAM,gBAAgB,OAAO;EAC7B,IAAI,CAAC,eAAe;EACpB,OAAO,OAAO,SAAS;GAAE;GAAe;EAAS,CAAC;CACpD;AACF;AAEA,SAAgB,gBAAgB,EAAE,aAA+B;CAC/D,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,QAAQ;EACnD,QAAQ,KAAK,iCAAiC;EAC9C;CACF;CAEA,MAAM,QAAQA,oBAAAA,SAAS,WAAW,KAAK;CACvC,IAAI,CAAC,OAAO;CACZ,OAAO,OAAO,eAAe,EAAE,MAAM,CAAC;AACxC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.cjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.cjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.cjs";
|
|
3
3
|
import { Lintrk } from "../track/lintrk.cjs";
|
|
4
4
|
//#region src/third-parties/linkedin-insight-tag.d.ts
|
|
5
5
|
declare global {
|
|
@@ -16,7 +16,7 @@ declare global {
|
|
|
16
16
|
*/
|
|
17
17
|
type LinkedinConversionConfig = Record<Lowercase<string>, number>;
|
|
18
18
|
declare function sendLinkedinEvent(config: LinkedinConversionConfig): <T extends EventName>(name: TrackName<T>, _properties?: TrackProperties<T>, event_id?: string) => void;
|
|
19
|
-
declare function setLinkedinUser({
|
|
19
|
+
declare function setLinkedinUser({ user_data }: UpdateVisitorDTO): void;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { LinkedinConversionConfig, sendLinkedinEvent, setLinkedinUser };
|
|
22
22
|
//# sourceMappingURL=linkedin-insight-tag.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin-insight-tag.d.cts","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;;;;;KAYf,2BAA2B,OAAO;iBAE9B,kBAAkB,QAAQ,4BAChC,UAAU,WAAS,MACnB,UAAU,IAAE,cACJ,gBAAgB,IAAE;iBAgBpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"linkedin-insight-tag.d.cts","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;;;;;KAYf,2BAA2B,OAAO;iBAE9B,kBAAkB,QAAQ,4BAChC,UAAU,WAAS,MACnB,UAAU,IAAE,cACJ,gBAAgB,IAAE;iBAgBpB,kBAAkB,aAAa"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
3
3
|
import { Lintrk } from "../track/lintrk.mjs";
|
|
4
4
|
//#region src/third-parties/linkedin-insight-tag.d.ts
|
|
5
5
|
declare global {
|
|
@@ -16,7 +16,7 @@ declare global {
|
|
|
16
16
|
*/
|
|
17
17
|
type LinkedinConversionConfig = Record<Lowercase<string>, number>;
|
|
18
18
|
declare function sendLinkedinEvent(config: LinkedinConversionConfig): <T extends EventName>(name: TrackName<T>, _properties?: TrackProperties<T>, event_id?: string) => void;
|
|
19
|
-
declare function setLinkedinUser({
|
|
19
|
+
declare function setLinkedinUser({ user_data }: UpdateVisitorDTO): void;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { LinkedinConversionConfig, sendLinkedinEvent, setLinkedinUser };
|
|
22
22
|
//# sourceMappingURL=linkedin-insight-tag.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin-insight-tag.d.mts","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;;;;;KAYf,2BAA2B,OAAO;iBAE9B,kBAAkB,QAAQ,4BAChC,UAAU,WAAS,MACnB,UAAU,IAAE,cACJ,gBAAgB,IAAE;iBAgBpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"linkedin-insight-tag.d.mts","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;;;;;KAYf,2BAA2B,OAAO;iBAE9B,kBAAkB,QAAQ,4BAChC,UAAU,WAAS,MACnB,UAAU,IAAE,cACJ,gBAAgB,IAAE;iBAgBpB,kBAAkB,aAAa"}
|
|
@@ -16,12 +16,12 @@ function sendLinkedinEvent(config) {
|
|
|
16
16
|
});
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
function setLinkedinUser({
|
|
19
|
+
function setLinkedinUser({ user_data }) {
|
|
20
20
|
if (typeof window === "undefined" || !window.lintrk) {
|
|
21
21
|
console.warn("lintrk has not been initialized");
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
|
-
const email = getFirst(
|
|
24
|
+
const email = getFirst(user_data?.email);
|
|
25
25
|
if (!email) return;
|
|
26
26
|
window.lintrk("setUserData", { email });
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkedin-insight-tag.mjs","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"sourcesContent":["import type { Lintrk } from '../track/lintrk';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"linkedin-insight-tag.mjs","names":[],"sources":["../../src/third-parties/linkedin-insight-tag.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport type { Lintrk } from '../track/lintrk';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends Lintrk {}\n}\n\n/**\n * LinkedIn Conversion Config:\n * example:\n * {\n * purchase: 123,\n * add_to_cart: 456,\n * add_to_wishlist: 789,\n * }\n */\nexport type LinkedinConversionConfig = Record<Lowercase<string>, number>;\n\nexport function sendLinkedinEvent(config: LinkedinConversionConfig) {\n return <T extends EventName>(\n name: TrackName<T>,\n _properties?: TrackProperties<T>,\n event_id?: string\n ) => {\n if (typeof window === 'undefined' || !window.lintrk) {\n console.warn('lintrk has not been initialized');\n return;\n }\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const conversion_id = config[name as Lowercase<string>];\n if (!conversion_id) return;\n window.lintrk('track', { conversion_id, event_id });\n };\n}\n\nexport function setLinkedinUser({ user_data }: UpdateVisitorDTO) {\n if (typeof window === 'undefined' || !window.lintrk) {\n console.warn('lintrk has not been initialized');\n return;\n }\n\n const email = getFirst(user_data?.email);\n if (!email) return;\n window.lintrk('setUserData', { email });\n}\n"],"mappings":";;AAqBA,SAAgB,kBAAkB,QAAkC;CAClE,QACE,MACA,aACA,aACG;EACH,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,QAAQ;GACnD,QAAQ,KAAK,iCAAiC;GAC9C;EACF;EACA,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;EAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;EAEhD,MAAM,gBAAgB,OAAO;EAC7B,IAAI,CAAC,eAAe;EACpB,OAAO,OAAO,SAAS;GAAE;GAAe;EAAS,CAAC;CACpD;AACF;AAEA,SAAgB,gBAAgB,EAAE,aAA+B;CAC/D,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,QAAQ;EACnD,QAAQ,KAAK,iCAAiC;EAC9C;CACF;CAEA,MAAM,QAAQ,SAAS,WAAW,KAAK;CACvC,IAAI,CAAC,OAAO;CACZ,OAAO,OAAO,eAAe,EAAE,MAAM,CAAC;AACxC"}
|
|
@@ -24,17 +24,17 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
24
24
|
else window.fbq(type, fbEventName, fbEventProperties, options);
|
|
25
25
|
}
|
|
26
26
|
function setFBUser(pixelId) {
|
|
27
|
-
return ({ user_id,
|
|
27
|
+
return ({ user_id, user_data }) => {
|
|
28
28
|
if (typeof window === "undefined" || !window.fbq) {
|
|
29
29
|
console.warn("fbq has not been initialized");
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
|
-
const address = require_utils_field.getFirst(
|
|
32
|
+
const address = require_utils_field.getFirst(user_data?.address);
|
|
33
33
|
window.fbq("init", pixelId, {
|
|
34
|
-
em: require_utils_field.getFirst(
|
|
34
|
+
em: require_utils_field.getFirst(user_data?.email),
|
|
35
35
|
fn: address?.first_name,
|
|
36
36
|
ln: address?.last_name,
|
|
37
|
-
ph: require_utils_field.getFirst(
|
|
37
|
+
ph: require_utils_field.getFirst(user_data?.phone_number),
|
|
38
38
|
external_id: user_id,
|
|
39
39
|
ct: address?.city,
|
|
40
40
|
st: address?.street,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-pixel.cjs","names":["mapFBEvent","getFirst"],"sources":["../../src/third-parties/meta-pixel.ts"],"sourcesContent":["import { type FBQ, type PixelId, mapFBEvent } from '../track/fbq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"meta-pixel.cjs","names":["mapFBEvent","getFirst"],"sources":["../../src/third-parties/meta-pixel.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport { type FBQ, type PixelId, mapFBEvent } from '../track/fbq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends FBQ {}\n}\n\nconst metrics = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'];\n\nexport function sendFBEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n event_id?: string\n) {\n if (typeof window === 'undefined' || !window.fbq) {\n console.warn('fbq has not been initialized');\n return;\n }\n if (metrics.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const options = { eventID: event_id };\n const [type, fbEventName, fbEventProperties] = mapFBEvent(name, properties);\n if (type === 'track') {\n window.fbq(type, fbEventName, fbEventProperties, options);\n } else {\n window.fbq(type, fbEventName, fbEventProperties, options);\n }\n}\n\nexport function setFBUser(pixelId: PixelId) {\n return ({ user_id, user_data }: UpdateVisitorDTO) => {\n if (typeof window === 'undefined' || !window.fbq) {\n console.warn('fbq has not been initialized');\n return;\n }\n\n const address = getFirst(user_data?.address);\n\n window.fbq('init', pixelId, {\n em: getFirst(user_data?.email),\n fn: address?.first_name,\n ln: address?.last_name,\n ph: getFirst(user_data?.phone_number),\n external_id: user_id,\n ct: address?.city,\n st: address?.street,\n zp: address?.postal_code,\n country: address?.country,\n });\n };\n}\n"],"mappings":";;;;AAUA,MAAM,UAAU;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;AAAM;AAE1D,SAAgB,YACd,MACA,YACA,UACA;CACA,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,KAAK;EAChD,QAAQ,KAAK,8BAA8B;EAC3C;CACF;CACA,IAAI,QAAQ,SAAS,IAAI,GAAG;CAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,MAAM,UAAU,EAAE,SAAS,SAAS;CACpC,MAAM,CAAC,MAAM,aAAa,qBAAqBA,kBAAAA,WAAW,MAAM,UAAU;CAC1E,IAAI,SAAS,SACX,OAAO,IAAI,MAAM,aAAa,mBAAmB,OAAO;MAExD,OAAO,IAAI,MAAM,aAAa,mBAAmB,OAAO;AAE5D;AAEA,SAAgB,UAAU,SAAkB;CAC1C,QAAQ,EAAE,SAAS,gBAAkC;EACnD,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,KAAK;GAChD,QAAQ,KAAK,8BAA8B;GAC3C;EACF;EAEA,MAAM,UAAUC,oBAAAA,SAAS,WAAW,OAAO;EAE3C,OAAO,IAAI,QAAQ,SAAS;GAC1B,IAAIA,oBAAAA,SAAS,WAAW,KAAK;GAC7B,IAAI,SAAS;GACb,IAAI,SAAS;GACb,IAAIA,oBAAAA,SAAS,WAAW,YAAY;GACpC,aAAa;GACb,IAAI,SAAS;GACb,IAAI,SAAS;GACb,IAAI,SAAS;GACb,SAAS,SAAS;EACpB,CAAC;CACH;AACF"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.cjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.cjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.cjs";
|
|
3
3
|
import { FBQ, PixelId } from "../track/fbq.cjs";
|
|
4
4
|
//#region src/third-parties/meta-pixel.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window extends FBQ {}
|
|
7
7
|
}
|
|
8
8
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
9
|
-
declare function setFBUser(pixelId: PixelId): ({ user_id,
|
|
9
|
+
declare function setFBUser(pixelId: PixelId): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { sendFBEvent, setFBUser };
|
|
12
12
|
//# sourceMappingURL=meta-pixel.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-pixel.d.cts","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAmBc,UAAU,SAAS,aAAO,SAAA,
|
|
1
|
+
{"version":3,"file":"meta-pixel.d.cts","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAmBc,UAAU,SAAS,aAAO,SAAA,aACR"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
3
3
|
import { FBQ, PixelId } from "../track/fbq.mjs";
|
|
4
4
|
//#region src/third-parties/meta-pixel.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window extends FBQ {}
|
|
7
7
|
}
|
|
8
8
|
declare function sendFBEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, event_id?: string): void;
|
|
9
|
-
declare function setFBUser(pixelId: PixelId): ({ user_id,
|
|
9
|
+
declare function setFBUser(pixelId: PixelId): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { sendFBEvent, setFBUser };
|
|
12
12
|
//# sourceMappingURL=meta-pixel.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-pixel.d.mts","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAmBc,UAAU,SAAS,aAAO,SAAA,
|
|
1
|
+
{"version":3,"file":"meta-pixel.d.mts","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAmBc,UAAU,SAAS,aAAO,SAAA,aACR"}
|
|
@@ -23,17 +23,17 @@ function sendFBEvent(name, properties, event_id) {
|
|
|
23
23
|
else window.fbq(type, fbEventName, fbEventProperties, options);
|
|
24
24
|
}
|
|
25
25
|
function setFBUser(pixelId) {
|
|
26
|
-
return ({ user_id,
|
|
26
|
+
return ({ user_id, user_data }) => {
|
|
27
27
|
if (typeof window === "undefined" || !window.fbq) {
|
|
28
28
|
console.warn("fbq has not been initialized");
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
const address = getFirst(
|
|
31
|
+
const address = getFirst(user_data?.address);
|
|
32
32
|
window.fbq("init", pixelId, {
|
|
33
|
-
em: getFirst(
|
|
33
|
+
em: getFirst(user_data?.email),
|
|
34
34
|
fn: address?.first_name,
|
|
35
35
|
ln: address?.last_name,
|
|
36
|
-
ph: getFirst(
|
|
36
|
+
ph: getFirst(user_data?.phone_number),
|
|
37
37
|
external_id: user_id,
|
|
38
38
|
ct: address?.city,
|
|
39
39
|
st: address?.street,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-pixel.mjs","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"sourcesContent":["import { type FBQ, type PixelId, mapFBEvent } from '../track/fbq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"meta-pixel.mjs","names":[],"sources":["../../src/third-parties/meta-pixel.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport { type FBQ, type PixelId, mapFBEvent } from '../track/fbq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends FBQ {}\n}\n\nconst metrics = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'];\n\nexport function sendFBEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n event_id?: string\n) {\n if (typeof window === 'undefined' || !window.fbq) {\n console.warn('fbq has not been initialized');\n return;\n }\n if (metrics.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const options = { eventID: event_id };\n const [type, fbEventName, fbEventProperties] = mapFBEvent(name, properties);\n if (type === 'track') {\n window.fbq(type, fbEventName, fbEventProperties, options);\n } else {\n window.fbq(type, fbEventName, fbEventProperties, options);\n }\n}\n\nexport function setFBUser(pixelId: PixelId) {\n return ({ user_id, user_data }: UpdateVisitorDTO) => {\n if (typeof window === 'undefined' || !window.fbq) {\n console.warn('fbq has not been initialized');\n return;\n }\n\n const address = getFirst(user_data?.address);\n\n window.fbq('init', pixelId, {\n em: getFirst(user_data?.email),\n fn: address?.first_name,\n ln: address?.last_name,\n ph: getFirst(user_data?.phone_number),\n external_id: user_id,\n ct: address?.city,\n st: address?.street,\n zp: address?.postal_code,\n country: address?.country,\n });\n };\n}\n"],"mappings":";;;AAUA,MAAM,UAAU;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;AAAM;AAE1D,SAAgB,YACd,MACA,YACA,UACA;CACA,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,KAAK;EAChD,QAAQ,KAAK,8BAA8B;EAC3C;CACF;CACA,IAAI,QAAQ,SAAS,IAAI,GAAG;CAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,MAAM,UAAU,EAAE,SAAS,SAAS;CACpC,MAAM,CAAC,MAAM,aAAa,qBAAqB,WAAW,MAAM,UAAU;CAC1E,IAAI,SAAS,SACX,OAAO,IAAI,MAAM,aAAa,mBAAmB,OAAO;MAExD,OAAO,IAAI,MAAM,aAAa,mBAAmB,OAAO;AAE5D;AAEA,SAAgB,UAAU,SAAkB;CAC1C,QAAQ,EAAE,SAAS,gBAAkC;EACnD,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,KAAK;GAChD,QAAQ,KAAK,8BAA8B;GAC3C;EACF;EAEA,MAAM,UAAU,SAAS,WAAW,OAAO;EAE3C,OAAO,IAAI,QAAQ,SAAS;GAC1B,IAAI,SAAS,WAAW,KAAK;GAC7B,IAAI,SAAS;GACb,IAAI,SAAS;GACb,IAAI,SAAS,WAAW,YAAY;GACpC,aAAa;GACb,IAAI,SAAS;GACb,IAAI,SAAS;GACb,IAAI,SAAS;GACb,SAAS,SAAS;EACpB,CAAC;CACH;AACF"}
|
|
@@ -38,13 +38,13 @@ async function sha256(value) {
|
|
|
38
38
|
* so the `init` call is deferred until the digests resolve.
|
|
39
39
|
*/
|
|
40
40
|
function setOpenAIUser(pixelId) {
|
|
41
|
-
return ({ user_id,
|
|
41
|
+
return ({ user_id, user_data }) => {
|
|
42
42
|
if (typeof window === "undefined" || !window.oaiq) {
|
|
43
43
|
console.warn("oaiq has not been initialized");
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
-
const email = require_utils_field.getFirst(
|
|
47
|
-
const address = require_utils_field.getFirst(
|
|
46
|
+
const email = require_utils_field.getFirst(user_data?.email)?.trim().toLowerCase();
|
|
47
|
+
const address = require_utils_field.getFirst(user_data?.address);
|
|
48
48
|
const base = {
|
|
49
49
|
country: address?.country?.trim().toUpperCase(),
|
|
50
50
|
city: address?.city?.trim().toLowerCase(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-pixel.cjs","names":["NON_AD_EVENTS","mapOAIEvent","getFirst"],"sources":["../../src/third-parties/openai-pixel.ts"],"sourcesContent":["import { NON_AD_EVENTS, type OAIQ, type OAIQUser, mapOAIEvent } from '../track/oaiq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"openai-pixel.cjs","names":["NON_AD_EVENTS","mapOAIEvent","getFirst"],"sources":["../../src/third-parties/openai-pixel.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport { NON_AD_EVENTS, type OAIQ, type OAIQUser, mapOAIEvent } from '../track/oaiq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends OAIQ {}\n}\n\n/** Drop `undefined` fields so the SDK only receives populated values. */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction clean(value: unknown): any {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Forward an internal track event to the OpenAI measurement pixel.\n * `eventId` is reused as the OpenAI `event_id` so browser events deduplicate against the\n * Conversions API. https://developers.openai.com/ads/measurement-pixel\n */\nexport function sendOpenAIEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n) {\n if (typeof window === 'undefined' || !window.oaiq) {\n console.warn('oaiq has not been initialized');\n return;\n }\n if (NON_AD_EVENTS.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const { type, data } = mapOAIEvent(name, properties);\n if (type === 'custom') {\n window.oaiq('measure', 'custom', clean(data), { event_id: eventId, custom_event_name: name });\n } else {\n window.oaiq('measure', type, clean(data), { event_id: eventId });\n }\n}\n\n/** SHA-256 hex digest, lowercase — the format OpenAI expects for hashed identity fields. */\nasync function sha256(value: string): Promise<string> {\n const bytes = new TextEncoder().encode(value);\n const digest = await crypto.subtle.digest('SHA-256', bytes);\n return Array.from(new Uint8Array(digest))\n .map((byte) => byte.toString(16).padStart(2, '0'))\n .join('');\n}\n\n/**\n * Re-initialize the pixel with hashed user identity for better conversion matching. Email and\n * external id are hashed client-side; geographic fields are sent raw. Hashing is asynchronous,\n * so the `init` call is deferred until the digests resolve.\n */\nexport function setOpenAIUser(pixelId: string) {\n return ({ user_id, user_data }: UpdateVisitorDTO) => {\n if (typeof window === 'undefined' || !window.oaiq) {\n console.warn('oaiq has not been initialized');\n return;\n }\n\n const email = getFirst(user_data?.email)?.trim().toLowerCase();\n const address = getFirst(user_data?.address);\n\n const base: OAIQUser = {\n country: address?.country?.trim().toUpperCase(),\n city: address?.city?.trim().toLowerCase(),\n zip_code: address?.postal_code,\n };\n\n const init = (hashed: Partial<OAIQUser>) => {\n window.oaiq('init', { pixelId, user: clean({ ...base, ...hashed }) });\n };\n\n Promise.all([email ? sha256(email) : undefined, user_id ? sha256(user_id) : undefined])\n .then(([email_sha256, external_id_sha256]) => init({ email_sha256, external_id_sha256 }))\n .catch(() => init({}));\n };\n}\n"],"mappings":";;;;;AAYA,SAAS,MAAM,OAAqB;CAClC,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;;;;;;AAOA,SAAgB,gBACd,MACA,YACA,SACA;CACA,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,MAAM;EACjD,QAAQ,KAAK,+BAA+B;EAC5C;CACF;CACA,IAAIA,mBAAAA,cAAc,SAAS,IAAI,GAAG;CAClC,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,MAAM,EAAE,MAAM,SAASC,mBAAAA,YAAY,MAAM,UAAU;CACnD,IAAI,SAAS,UACX,OAAO,KAAK,WAAW,UAAU,MAAM,IAAI,GAAG;EAAE,UAAU;EAAS,mBAAmB;CAAK,CAAC;MAE5F,OAAO,KAAK,WAAW,MAAM,MAAM,IAAI,GAAG,EAAE,UAAU,QAAQ,CAAC;AAEnE;;AAGA,eAAe,OAAO,OAAgC;CACpD,MAAM,QAAQ,IAAI,YAAY,CAAC,CAAC,OAAO,KAAK;CAC5C,MAAM,SAAS,MAAM,OAAO,OAAO,OAAO,WAAW,KAAK;CAC1D,OAAO,MAAM,KAAK,IAAI,WAAW,MAAM,CAAC,CAAC,CACtC,KAAK,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CACjD,KAAK,EAAE;AACZ;;;;;;AAOA,SAAgB,cAAc,SAAiB;CAC7C,QAAQ,EAAE,SAAS,gBAAkC;EACnD,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,MAAM;GACjD,QAAQ,KAAK,+BAA+B;GAC5C;EACF;EAEA,MAAM,QAAQC,oBAAAA,SAAS,WAAW,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;EAC7D,MAAM,UAAUA,oBAAAA,SAAS,WAAW,OAAO;EAE3C,MAAM,OAAiB;GACrB,SAAS,SAAS,SAAS,KAAK,CAAC,CAAC,YAAY;GAC9C,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,YAAY;GACxC,UAAU,SAAS;EACrB;EAEA,MAAM,QAAQ,WAA8B;GAC1C,OAAO,KAAK,QAAQ;IAAE;IAAS,MAAM,MAAM;KAAE,GAAG;KAAM,GAAG;IAAO,CAAC;GAAE,CAAC;EACtE;EAEA,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,IAAI,KAAA,GAAW,UAAU,OAAO,OAAO,IAAI,KAAA,CAAS,CAAC,CAAC,CACpF,MAAM,CAAC,cAAc,wBAAwB,KAAK;GAAE;GAAc;EAAmB,CAAC,CAAC,CAAC,CACxF,YAAY,KAAK,CAAC,CAAC,CAAC;CACzB;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.cjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.cjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.cjs";
|
|
3
3
|
import { OAIQ } from "../track/oaiq.cjs";
|
|
4
4
|
//#region src/third-parties/openai-pixel.d.ts
|
|
5
5
|
declare global {
|
|
@@ -16,7 +16,7 @@ declare function sendOpenAIEvent<T extends EventName>(name: TrackName<T>, proper
|
|
|
16
16
|
* external id are hashed client-side; geographic fields are sent raw. Hashing is asynchronous,
|
|
17
17
|
* so the `init` call is deferred until the digests resolve.
|
|
18
18
|
*/
|
|
19
|
-
declare function setOpenAIUser(pixelId: string): ({ user_id,
|
|
19
|
+
declare function setOpenAIUser(pixelId: string): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { sendOpenAIEvent, setOpenAIUser };
|
|
22
22
|
//# sourceMappingURL=openai-pixel.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-pixel.d.cts","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;iBAcX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;;;;;;iBAgCc,cAAc,qBAAe,SAAA,
|
|
1
|
+
{"version":3,"file":"openai-pixel.d.cts","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;iBAcX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;;;;;;iBAgCc,cAAc,qBAAe,SAAA,aACX"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
3
3
|
import { OAIQ } from "../track/oaiq.mjs";
|
|
4
4
|
//#region src/third-parties/openai-pixel.d.ts
|
|
5
5
|
declare global {
|
|
@@ -16,7 +16,7 @@ declare function sendOpenAIEvent<T extends EventName>(name: TrackName<T>, proper
|
|
|
16
16
|
* external id are hashed client-side; geographic fields are sent raw. Hashing is asynchronous,
|
|
17
17
|
* so the `init` call is deferred until the digests resolve.
|
|
18
18
|
*/
|
|
19
|
-
declare function setOpenAIUser(pixelId: string): ({ user_id,
|
|
19
|
+
declare function setOpenAIUser(pixelId: string): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
20
20
|
//#endregion
|
|
21
21
|
export { sendOpenAIEvent, setOpenAIUser };
|
|
22
22
|
//# sourceMappingURL=openai-pixel.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-pixel.d.mts","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;iBAcX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;;;;;;iBAgCc,cAAc,qBAAe,SAAA,
|
|
1
|
+
{"version":3,"file":"openai-pixel.d.mts","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;;;;;;iBAcX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;;;;;;iBAgCc,cAAc,qBAAe,SAAA,aACX"}
|
|
@@ -37,13 +37,13 @@ async function sha256(value) {
|
|
|
37
37
|
* so the `init` call is deferred until the digests resolve.
|
|
38
38
|
*/
|
|
39
39
|
function setOpenAIUser(pixelId) {
|
|
40
|
-
return ({ user_id,
|
|
40
|
+
return ({ user_id, user_data }) => {
|
|
41
41
|
if (typeof window === "undefined" || !window.oaiq) {
|
|
42
42
|
console.warn("oaiq has not been initialized");
|
|
43
43
|
return;
|
|
44
44
|
}
|
|
45
|
-
const email = getFirst(
|
|
46
|
-
const address = getFirst(
|
|
45
|
+
const email = getFirst(user_data?.email)?.trim().toLowerCase();
|
|
46
|
+
const address = getFirst(user_data?.address);
|
|
47
47
|
const base = {
|
|
48
48
|
country: address?.country?.trim().toUpperCase(),
|
|
49
49
|
city: address?.city?.trim().toLowerCase(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-pixel.mjs","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"sourcesContent":["import { NON_AD_EVENTS, type OAIQ, type OAIQUser, mapOAIEvent } from '../track/oaiq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"openai-pixel.mjs","names":[],"sources":["../../src/third-parties/openai-pixel.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport { NON_AD_EVENTS, type OAIQ, type OAIQUser, mapOAIEvent } from '../track/oaiq';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends OAIQ {}\n}\n\n/** Drop `undefined` fields so the SDK only receives populated values. */\n// oxlint-disable-next-line @typescript-eslint/no-explicit-any\nfunction clean(value: unknown): any {\n return JSON.parse(JSON.stringify(value));\n}\n\n/**\n * Forward an internal track event to the OpenAI measurement pixel.\n * `eventId` is reused as the OpenAI `event_id` so browser events deduplicate against the\n * Conversions API. https://developers.openai.com/ads/measurement-pixel\n */\nexport function sendOpenAIEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n) {\n if (typeof window === 'undefined' || !window.oaiq) {\n console.warn('oaiq has not been initialized');\n return;\n }\n if (NON_AD_EVENTS.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const { type, data } = mapOAIEvent(name, properties);\n if (type === 'custom') {\n window.oaiq('measure', 'custom', clean(data), { event_id: eventId, custom_event_name: name });\n } else {\n window.oaiq('measure', type, clean(data), { event_id: eventId });\n }\n}\n\n/** SHA-256 hex digest, lowercase — the format OpenAI expects for hashed identity fields. */\nasync function sha256(value: string): Promise<string> {\n const bytes = new TextEncoder().encode(value);\n const digest = await crypto.subtle.digest('SHA-256', bytes);\n return Array.from(new Uint8Array(digest))\n .map((byte) => byte.toString(16).padStart(2, '0'))\n .join('');\n}\n\n/**\n * Re-initialize the pixel with hashed user identity for better conversion matching. Email and\n * external id are hashed client-side; geographic fields are sent raw. Hashing is asynchronous,\n * so the `init` call is deferred until the digests resolve.\n */\nexport function setOpenAIUser(pixelId: string) {\n return ({ user_id, user_data }: UpdateVisitorDTO) => {\n if (typeof window === 'undefined' || !window.oaiq) {\n console.warn('oaiq has not been initialized');\n return;\n }\n\n const email = getFirst(user_data?.email)?.trim().toLowerCase();\n const address = getFirst(user_data?.address);\n\n const base: OAIQUser = {\n country: address?.country?.trim().toUpperCase(),\n city: address?.city?.trim().toLowerCase(),\n zip_code: address?.postal_code,\n };\n\n const init = (hashed: Partial<OAIQUser>) => {\n window.oaiq('init', { pixelId, user: clean({ ...base, ...hashed }) });\n };\n\n Promise.all([email ? sha256(email) : undefined, user_id ? sha256(user_id) : undefined])\n .then(([email_sha256, external_id_sha256]) => init({ email_sha256, external_id_sha256 }))\n .catch(() => init({}));\n };\n}\n"],"mappings":";;;;AAYA,SAAS,MAAM,OAAqB;CAClC,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,CAAC;AACzC;;;;;;AAOA,SAAgB,gBACd,MACA,YACA,SACA;CACA,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,MAAM;EACjD,QAAQ,KAAK,+BAA+B;EAC5C;CACF;CACA,IAAI,cAAc,SAAS,IAAI,GAAG;CAClC,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,MAAM,EAAE,MAAM,SAAS,YAAY,MAAM,UAAU;CACnD,IAAI,SAAS,UACX,OAAO,KAAK,WAAW,UAAU,MAAM,IAAI,GAAG;EAAE,UAAU;EAAS,mBAAmB;CAAK,CAAC;MAE5F,OAAO,KAAK,WAAW,MAAM,MAAM,IAAI,GAAG,EAAE,UAAU,QAAQ,CAAC;AAEnE;;AAGA,eAAe,OAAO,OAAgC;CACpD,MAAM,QAAQ,IAAI,YAAY,CAAC,CAAC,OAAO,KAAK;CAC5C,MAAM,SAAS,MAAM,OAAO,OAAO,OAAO,WAAW,KAAK;CAC1D,OAAO,MAAM,KAAK,IAAI,WAAW,MAAM,CAAC,CAAC,CACtC,KAAK,SAAS,KAAK,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CACjD,KAAK,EAAE;AACZ;;;;;;AAOA,SAAgB,cAAc,SAAiB;CAC7C,QAAQ,EAAE,SAAS,gBAAkC;EACnD,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,MAAM;GACjD,QAAQ,KAAK,+BAA+B;GAC5C;EACF;EAEA,MAAM,QAAQ,SAAS,WAAW,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,YAAY;EAC7D,MAAM,UAAU,SAAS,WAAW,OAAO;EAE3C,MAAM,OAAiB;GACrB,SAAS,SAAS,SAAS,KAAK,CAAC,CAAC,YAAY;GAC9C,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,YAAY;GACxC,UAAU,SAAS;EACrB;EAEA,MAAM,QAAQ,WAA8B;GAC1C,OAAO,KAAK,QAAQ;IAAE;IAAS,MAAM,MAAM;KAAE,GAAG;KAAM,GAAG;IAAO,CAAC;GAAE,CAAC;EACtE;EAEA,QAAQ,IAAI,CAAC,QAAQ,OAAO,KAAK,IAAI,KAAA,GAAW,UAAU,OAAO,OAAO,IAAI,KAAA,CAAS,CAAC,CAAC,CACpF,MAAM,CAAC,cAAc,wBAAwB,KAAK;GAAE;GAAc;EAAmB,CAAC,CAAC,CAAC,CACxF,YAAY,KAAK,CAAC,CAAC,CAAC;CACzB;AACF"}
|
|
@@ -17,9 +17,9 @@ function sendPosthogEvent(name, properties) {
|
|
|
17
17
|
posthog_js.posthog.capture(name, properties);
|
|
18
18
|
if (name === "logout") posthog_js.posthog.reset();
|
|
19
19
|
}
|
|
20
|
-
function setPosthogUser({ user_id, distinct_id,
|
|
20
|
+
function setPosthogUser({ user_id, distinct_id, user_data }) {
|
|
21
21
|
if (!distinct_id && !user_id) return;
|
|
22
|
-
posthog_js.posthog.identify(distinct_id ?? user_id, { email: require_utils_field.getFirst(
|
|
22
|
+
posthog_js.posthog.identify(distinct_id ?? user_id, { email: require_utils_field.getFirst(user_data?.email) });
|
|
23
23
|
}
|
|
24
24
|
//#endregion
|
|
25
25
|
exports.sendPosthogEvent = sendPosthogEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog.cjs","names":["getFirst"],"sources":["../../src/third-parties/posthog.ts"],"sourcesContent":["import { posthog } from 'posthog-js';\nimport type {
|
|
1
|
+
{"version":3,"file":"posthog.cjs","names":["getFirst"],"sources":["../../src/third-parties/posthog.ts"],"sourcesContent":["import { posthog } from 'posthog-js';\nimport type { UpdateVisitorDTO } from '../schema/index';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\nconst metrics = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'];\n\nexport function sendPosthogEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (metrics.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n posthog.capture(name, properties);\n if (name === 'logout') {\n posthog.reset();\n }\n}\n\nexport function setPosthogUser({ user_id, distinct_id, user_data }: UpdateVisitorDTO) {\n if (!distinct_id && !user_id) return;\n posthog.identify(distinct_id ?? user_id, { email: getFirst(user_data?.email) });\n}\n"],"mappings":";;;;AAKA,MAAM,UAAU;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;AAAM;AAE1D,SAAgB,iBACd,MACA,YACA;CACA,IAAI,QAAQ,SAAS,IAAI,GAAG;CAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,WAAA,QAAQ,QAAQ,MAAM,UAAU;CAChC,IAAI,SAAS,UACX,WAAA,QAAQ,MAAM;AAElB;AAEA,SAAgB,eAAe,EAAE,SAAS,aAAa,aAA+B;CACpF,IAAI,CAAC,eAAe,CAAC,SAAS;CAC9B,WAAA,QAAQ,SAAS,eAAe,SAAS,EAAE,OAAOA,oBAAAA,SAAS,WAAW,KAAK,EAAE,CAAC;AAChF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.cjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.cjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.cjs";
|
|
3
3
|
//#region src/third-parties/posthog.d.ts
|
|
4
4
|
declare function sendPosthogEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
5
|
-
declare function setPosthogUser({ user_id, distinct_id,
|
|
5
|
+
declare function setPosthogUser({ user_id, distinct_id, user_data }: UpdateVisitorDTO): void;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { sendPosthogEvent, setPosthogUser };
|
|
8
8
|
//# sourceMappingURL=posthog.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog.d.cts","names":[],"sources":["../../src/third-parties/posthog.ts"],"mappings":";;;iBAOgB,iBAAiB,UAAU,WACzC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBAYf,iBAAiB,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"posthog.d.cts","names":[],"sources":["../../src/third-parties/posthog.ts"],"mappings":";;;iBAOgB,iBAAiB,UAAU,WACzC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBAYf,iBAAiB,SAAS,aAAa,aAAa"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
3
3
|
//#region src/third-parties/posthog.d.ts
|
|
4
4
|
declare function sendPosthogEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>): void;
|
|
5
|
-
declare function setPosthogUser({ user_id, distinct_id,
|
|
5
|
+
declare function setPosthogUser({ user_id, distinct_id, user_data }: UpdateVisitorDTO): void;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { sendPosthogEvent, setPosthogUser };
|
|
8
8
|
//# sourceMappingURL=posthog.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog.d.mts","names":[],"sources":["../../src/third-parties/posthog.ts"],"mappings":";;;iBAOgB,iBAAiB,UAAU,WACzC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBAYf,iBAAiB,SAAS,aAAa,
|
|
1
|
+
{"version":3,"file":"posthog.d.mts","names":[],"sources":["../../src/third-parties/posthog.ts"],"mappings":";;;iBAOgB,iBAAiB,UAAU,WACzC,MAAM,UAAU,IAChB,aAAa,gBAAgB;iBAYf,iBAAiB,SAAS,aAAa,aAAa"}
|
|
@@ -16,9 +16,9 @@ function sendPosthogEvent(name, properties) {
|
|
|
16
16
|
posthog.capture(name, properties);
|
|
17
17
|
if (name === "logout") posthog.reset();
|
|
18
18
|
}
|
|
19
|
-
function setPosthogUser({ user_id, distinct_id,
|
|
19
|
+
function setPosthogUser({ user_id, distinct_id, user_data }) {
|
|
20
20
|
if (!distinct_id && !user_id) return;
|
|
21
|
-
posthog.identify(distinct_id ?? user_id, { email: getFirst(
|
|
21
|
+
posthog.identify(distinct_id ?? user_id, { email: getFirst(user_data?.email) });
|
|
22
22
|
}
|
|
23
23
|
//#endregion
|
|
24
24
|
export { sendPosthogEvent, setPosthogUser };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posthog.mjs","names":[],"sources":["../../src/third-parties/posthog.ts"],"sourcesContent":["import { posthog } from 'posthog-js';\nimport type {
|
|
1
|
+
{"version":3,"file":"posthog.mjs","names":[],"sources":["../../src/third-parties/posthog.ts"],"sourcesContent":["import { posthog } from 'posthog-js';\nimport type { UpdateVisitorDTO } from '../schema/index';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\nconst metrics = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'];\n\nexport function sendPosthogEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>\n) {\n if (metrics.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n posthog.capture(name, properties);\n if (name === 'logout') {\n posthog.reset();\n }\n}\n\nexport function setPosthogUser({ user_id, distinct_id, user_data }: UpdateVisitorDTO) {\n if (!distinct_id && !user_id) return;\n posthog.identify(distinct_id ?? user_id, { email: getFirst(user_data?.email) });\n}\n"],"mappings":";;;AAKA,MAAM,UAAU;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;AAAM;AAE1D,SAAgB,iBACd,MACA,YACA;CACA,IAAI,QAAQ,SAAS,IAAI,GAAG;CAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,QAAQ,QAAQ,MAAM,UAAU;CAChC,IAAI,SAAS,UACX,QAAQ,MAAM;AAElB;AAEA,SAAgB,eAAe,EAAE,SAAS,aAAa,aAA+B;CACpF,IAAI,CAAC,eAAe,CAAC,SAAS;CAC9B,QAAQ,SAAS,eAAe,SAAS,EAAE,OAAO,SAAS,WAAW,KAAK,EAAE,CAAC;AAChF"}
|
|
@@ -23,14 +23,14 @@ function sendRedditEvent(name, properties, eventId) {
|
|
|
23
23
|
else window.rdt("track", type, JSON.parse(JSON.stringify(params)));
|
|
24
24
|
}
|
|
25
25
|
function setRedditUser(pixelId) {
|
|
26
|
-
return ({ user_id,
|
|
26
|
+
return ({ user_id, user_data }) => {
|
|
27
27
|
if (!window.rdt) {
|
|
28
28
|
console.warn("rdt has not been initialized");
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
window.rdt("init", pixelId, {
|
|
32
|
-
email: require_utils_field.getFirst(
|
|
33
|
-
phoneNumber: require_utils_field.getFirst(
|
|
32
|
+
email: require_utils_field.getFirst(user_data?.email),
|
|
33
|
+
phoneNumber: require_utils_field.getFirst(user_data?.phone_number),
|
|
34
34
|
externalId: user_id
|
|
35
35
|
});
|
|
36
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reddit-pixel.cjs","names":["mapRDTEvent","getFirst"],"sources":["../../src/third-parties/reddit-pixel.ts"],"sourcesContent":["import { type PixelId, type RDT, mapRDTEvent } from '../track/rdt';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\
|
|
1
|
+
{"version":3,"file":"reddit-pixel.cjs","names":["mapRDTEvent","getFirst"],"sources":["../../src/third-parties/reddit-pixel.ts"],"sourcesContent":["import type { UpdateVisitorDTO } from '../schema/index';\nimport { type PixelId, type RDT, mapRDTEvent } from '../track/rdt';\nimport type { EventName, TrackName, TrackProperties } from '../track/types';\nimport { getFirst } from '../utils/field';\n\ndeclare global {\n // oxlint-disable-next-line typescript/no-empty-object-type\n interface Window extends RDT {}\n}\n\nconst metrics = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'];\n\nexport function sendRedditEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n) {\n if (typeof window === 'undefined' || !window.rdt) {\n console.warn('rdt has not been initialized');\n return;\n }\n if (metrics.includes(name)) return;\n if (window.location.host.includes('127.0.0.1')) return;\n if (window.location.host.includes('localhost')) return;\n\n const [type, params] = mapRDTEvent(name, properties, eventId);\n if (type === 'Custom') {\n window.rdt('track', type, JSON.parse(JSON.stringify(params)));\n } else {\n window.rdt('track', type, JSON.parse(JSON.stringify(params)));\n }\n}\n\nexport function setRedditUser(pixelId: PixelId) {\n return ({ user_id, user_data }: UpdateVisitorDTO) => {\n if (!window.rdt) {\n console.warn('rdt has not been initialized');\n return;\n }\n\n window.rdt('init', pixelId, {\n email: getFirst(user_data?.email),\n phoneNumber: getFirst(user_data?.phone_number),\n externalId: user_id,\n });\n };\n}\n"],"mappings":";;;;AAUA,MAAM,UAAU;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;AAAM;AAE1D,SAAgB,gBACd,MACA,YACA,SACA;CACA,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,KAAK;EAChD,QAAQ,KAAK,8BAA8B;EAC3C;CACF;CACA,IAAI,QAAQ,SAAS,IAAI,GAAG;CAC5B,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAChD,IAAI,OAAO,SAAS,KAAK,SAAS,WAAW,GAAG;CAEhD,MAAM,CAAC,MAAM,UAAUA,kBAAAA,YAAY,MAAM,YAAY,OAAO;CAC5D,IAAI,SAAS,UACX,OAAO,IAAI,SAAS,MAAM,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC,CAAC;MAE5D,OAAO,IAAI,SAAS,MAAM,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC,CAAC;AAEhE;AAEA,SAAgB,cAAc,SAAkB;CAC9C,QAAQ,EAAE,SAAS,gBAAkC;EACnD,IAAI,CAAC,OAAO,KAAK;GACf,QAAQ,KAAK,8BAA8B;GAC3C;EACF;EAEA,OAAO,IAAI,QAAQ,SAAS;GAC1B,OAAOC,oBAAAA,SAAS,WAAW,KAAK;GAChC,aAAaA,oBAAAA,SAAS,WAAW,YAAY;GAC7C,YAAY;EACd,CAAC;CACH;AACF"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.cjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.cjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.cjs";
|
|
3
3
|
import { PixelId, RDT } from "../track/rdt.cjs";
|
|
4
4
|
//#region src/third-parties/reddit-pixel.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window extends RDT {}
|
|
7
7
|
}
|
|
8
8
|
declare function sendRedditEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, eventId?: string): void;
|
|
9
|
-
declare function setRedditUser(pixelId: PixelId): ({ user_id,
|
|
9
|
+
declare function setRedditUser(pixelId: PixelId): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { sendRedditEvent, setRedditUser };
|
|
12
12
|
//# sourceMappingURL=reddit-pixel.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reddit-pixel.d.cts","names":[],"sources":["../../src/third-parties/reddit-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAkBc,cAAc,SAAS,aAAO,SAAA,
|
|
1
|
+
{"version":3,"file":"reddit-pixel.d.cts","names":[],"sources":["../../src/third-parties/reddit-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAkBc,cAAc,SAAS,aAAO,SAAA,aACZ"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { UpdateVisitorDTO } from "../schema/index.mjs";
|
|
1
2
|
import { EventName, TrackName, TrackProperties } from "../track/types.mjs";
|
|
2
|
-
import { UpdateVisitorDTO } from "../visitor/types.mjs";
|
|
3
3
|
import { PixelId, RDT } from "../track/rdt.mjs";
|
|
4
4
|
//#region src/third-parties/reddit-pixel.d.ts
|
|
5
5
|
declare global {
|
|
6
6
|
interface Window extends RDT {}
|
|
7
7
|
}
|
|
8
8
|
declare function sendRedditEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, eventId?: string): void;
|
|
9
|
-
declare function setRedditUser(pixelId: PixelId): ({ user_id,
|
|
9
|
+
declare function setRedditUser(pixelId: PixelId): ({ user_id, user_data }: UpdateVisitorDTO) => void;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { sendRedditEvent, setRedditUser };
|
|
12
12
|
//# sourceMappingURL=reddit-pixel.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reddit-pixel.d.mts","names":[],"sources":["../../src/third-parties/reddit-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAkBc,cAAc,SAAS,aAAO,SAAA,
|
|
1
|
+
{"version":3,"file":"reddit-pixel.d.mts","names":[],"sources":["../../src/third-parties/reddit-pixel.ts"],"mappings":";;;;QAKQ;YAEI,eAAe;;iBAKX,gBAAgB,UAAU,WACxC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B;iBAkBc,cAAc,SAAS,aAAO,SAAA,aACZ"}
|
|
@@ -22,14 +22,14 @@ function sendRedditEvent(name, properties, eventId) {
|
|
|
22
22
|
else window.rdt("track", type, JSON.parse(JSON.stringify(params)));
|
|
23
23
|
}
|
|
24
24
|
function setRedditUser(pixelId) {
|
|
25
|
-
return ({ user_id,
|
|
25
|
+
return ({ user_id, user_data }) => {
|
|
26
26
|
if (!window.rdt) {
|
|
27
27
|
console.warn("rdt has not been initialized");
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
window.rdt("init", pixelId, {
|
|
31
|
-
email: getFirst(
|
|
32
|
-
phoneNumber: getFirst(
|
|
31
|
+
email: getFirst(user_data?.email),
|
|
32
|
+
phoneNumber: getFirst(user_data?.phone_number),
|
|
33
33
|
externalId: user_id
|
|
34
34
|
});
|
|
35
35
|
};
|