UNPKG

@walkeros/web-destination-meta

Version:

Meta pixel web destination for walkerOS

286 lines (280 loc) 10.1 kB
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 };