@walkeros/web-destination-meta
Version:
Meta pixel web destination for walkerOS
286 lines (280 loc) • 10.1 kB
JavaScript
var __defProp = Object.defineProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
// src/examples/env.ts
var env_exports = {};
__export(env_exports, {
init: () => init,
push: () => push
});
var noop = () => {
};
var init = {
// Environment before initialization (fbq not loaded yet)
window: {
fbq: void 0,
_fbq: void 0
},
document: {
createElement: () => ({
src: "",
async: false,
setAttribute: () => {
},
removeAttribute: () => {
}
}),
head: { appendChild: () => {
} }
}
};
var push = {
// Standard mock environment for testing
window: {
fbq: Object.assign(noop, {
// Add Meta Pixel specific properties
callMethod: noop,
queue: [],
push: noop,
loaded: true,
version: "2.0"
}),
_fbq: Object.assign(noop, {
callMethod: noop,
queue: [],
push: noop,
loaded: true,
version: "2.0"
})
},
document: {
createElement: () => ({
src: "",
async: false,
setAttribute: () => {
},
removeAttribute: () => {
}
}),
head: { appendChild: () => {
} }
}
};
// src/examples/events.ts
var events_exports = {};
__export(events_exports, {
AddToCart: () => AddToCart,
InitiateCheckout: () => InitiateCheckout,
Purchase: () => Purchase,
ViewContent: () => ViewContent
});
// ../../../core/dist/index.mjs
var e = Object.defineProperty;
var c = {};
((t, n) => {
for (var r in n) e(t, r, { get: n[r], enumerable: true });
})(c, { Level: () => a });
var a = ((e2) => (e2[e2.ERROR = 0] = "ERROR", e2[e2.INFO = 1] = "INFO", e2[e2.DEBUG = 2] = "DEBUG", e2))(a || {});
var k = { merge: true, shallow: true, extend: true };
function E(e2, t = {}, n = {}) {
n = { ...k, ...n };
const r = Object.entries(t).reduce((t2, [r2, o]) => {
const i = e2[r2];
return n.merge && Array.isArray(i) && Array.isArray(o) ? t2[r2] = o.reduce((e3, t3) => e3.includes(t3) ? e3 : [...e3, t3], [...i]) : (n.extend || r2 in e2) && (t2[r2] = o), t2;
}, {});
return n.shallow ? { ...e2, ...r } : (Object.assign(e2, r), e2);
}
function $(e2) {
return Array.isArray(e2);
}
function T(e2) {
return "object" == typeof e2 && null !== e2 && !$(e2) && "[object Object]" === Object.prototype.toString.call(e2);
}
function z(e2 = {}) {
var _a;
const t = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n = e2.group || "gr0up", r = e2.count || 1, o = E({ name: "entity action", data: { string: "foo", number: 1, boolean: true, array: [0, "text", false], not: void 0 }, context: { dev: ["test", 1] }, globals: { lang: "elb" }, custom: { completely: "random" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n" }, nested: [{ entity: "child", data: { is: "subordinated" }, nested: [], context: { element: ["child", 0] } }], consent: { functional: true }, id: `${t}-${n}-${r}`, trigger: "test", entity: "entity", action: "action", timestamp: t, timing: 3.14, group: n, count: r, version: { source: "0.4.2", tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
if (e2.name) {
const [t2, n2] = (_a = e2.name.split(" ")) != null ? _a : [];
t2 && n2 && (o.entity = t2, o.action = n2);
}
return o;
}
function B(e2 = "entity action", t = {}) {
const n = t.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), r = { data: { id: "ers", name: "Everyday Ruck Snack", color: "black", size: "l", price: 420 } }, o = { data: { id: "cc", name: "Cool Cap", size: "one size", price: 42 } };
return z({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", data: { ...r.data, quantity: 2 }, context: { shopping: ["cart", 0] }, nested: [] }], trigger: "load" }, "checkout view": { data: { step: "payment", currency: "EUR", value: r.data.price + o.data.price }, context: { shopping: ["checkout", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["checkout", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["checkout", 0] }, nested: [] }], trigger: "load" }, "order complete": { data: { id: "0rd3r1d", currency: "EUR", shipping: 5.22, taxes: 73.76, total: 555 }, context: { shopping: ["complete", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "product", ...r, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "product", ...o, context: { shopping: ["complete", 0] }, nested: [] }, { entity: "gift", data: { name: "Surprise" }, context: { shopping: ["complete", 0] }, nested: [] }], trigger: "load" }, "page view": { data: { domain: "www.example.com", title: "walkerOS documentation", referrer: "https://www.elbwalker.com/", search: "?foo=bar", hash: "#hash", id: "/docs/" }, globals: { pagegroup: "docs" }, trigger: "load" }, "product add": { ...r, context: { shopping: ["intent", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "click" }, "product view": { ...r, context: { shopping: ["detail", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "product visible": { data: { ...r.data, position: 3, promo: true }, context: { shopping: ["discover", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "promotion visible": { data: { name: "Setting up tracking easily", position: "hero" }, context: { ab_test: ["engagement", 0] }, globals: { pagegroup: "homepage" }, trigger: "visible" }, "session start": { data: { id: "s3ss10n", start: n, isNew: true, count: 1, runs: 1, isStart: true, storage: true, referrer: "", device: "c00k13" }, user: { id: "us3r", device: "c00k13", session: "s3ss10n", hash: "h4sh", address: "street number", email: "user@example.com", phone: "+49 123 456 789", userAgent: "Mozilla...", browser: "Chrome", browserVersion: "90", deviceType: "desktop", language: "de-DE", country: "DE", region: "HH", city: "Hamburg", zip: "20354", timezone: "Berlin", os: "walkerOS", osVersion: "1.0", screenSize: "1337x420", ip: "127.0.0.0", internal: true, custom: "value" } } }[e2], ...t, name: e2 });
}
// src/examples/events.ts
function Purchase() {
const event = B("order complete");
return [
"track",
"Purchase",
{
value: event.data.total,
currency: "EUR",
contents: event.nested.filter((item) => item.entity === "product").map((item) => ({ id: item.data.id, quantity: 1 })),
content_type: "product",
num_items: 2
},
{ eventID: event.id }
];
}
function AddToCart() {
const event = B("product add");
return [
"track",
"AddToCart",
{
currency: "EUR",
value: event.data.price,
contents: [{ id: event.data.id, quantity: 1 }],
content_type: "product"
},
{ eventID: event.id }
];
}
function InitiateCheckout() {
const event = B("cart view");
return [
"track",
"InitiateCheckout",
{
currency: "EUR",
value: event.data.value,
contents: event.nested.filter((entity) => entity.entity === "product").map((entity) => ({
id: entity.data.id,
quantity: entity.data.quantity
})),
num_items: event.nested.filter((item) => item.entity === "product").length
},
{ eventID: event.id }
];
}
function ViewContent() {
const event = B("product view");
return [
"track",
"ViewContent",
{
currency: "EUR",
value: event.data.price,
contents: [{ id: event.data.id, quantity: 1 }],
content_type: "product"
},
{ eventID: event.id }
];
}
// src/examples/mapping.ts
var mapping_exports = {};
__export(mapping_exports, {
AddToCart: () => AddToCart2,
InitiateCheckout: () => InitiateCheckout2,
Purchase: () => Purchase2,
ViewContent: () => ViewContent2,
config: () => config
});
var Purchase2 = {
name: "Purchase",
data: {
map: {
value: "data.total",
currency: { value: "EUR" },
contents: {
loop: [
"nested",
{
condition: (entity) => T(entity) && entity.entity === "product",
map: {
id: "data.id",
quantity: { key: "data.quantity", value: 1 }
}
}
]
},
content_type: { value: "product" },
num_items: {
fn: (event) => event.nested.filter(
(item) => item.entity === "product"
).length
}
}
}
};
var AddToCart2 = {
name: "AddToCart",
data: {
map: {
value: "data.price",
currency: { value: "EUR" },
contents: {
set: [
{
map: {
id: "data.id",
quantity: { key: "data.quantity", value: 1 }
}
}
]
},
content_type: { value: "product" }
}
}
};
var InitiateCheckout2 = {
name: "InitiateCheckout",
data: {
map: {
value: "data.value",
currency: { value: "EUR" },
contents: {
loop: [
"nested",
{
condition: (entity) => T(entity) && entity.entity === "product",
map: {
id: "data.id",
quantity: { key: "data.quantity", value: 1 }
}
}
]
},
num_items: {
fn: (event) => event.nested.filter(
(item) => item.entity === "product"
).length
}
}
}
};
var ViewContent2 = {
name: "ViewContent",
data: {
map: {
value: "data.price",
currency: { value: "EUR" },
content_type: { value: "product" },
contents: {
set: [
{
map: {
id: "data.id",
quantity: { key: "data.quantity", value: 1 }
}
}
]
}
}
}
};
var config = {
order: { complete: Purchase2 },
product: { view: ViewContent2, add: AddToCart2 },
cart: { view: InitiateCheckout2 }
};
export {
env_exports as env,
events_exports as events,
mapping_exports as mapping
};