@walkeros/server-destination-meta
Version:
Meta server destination for walkerOS
158 lines (151 loc) • 9.09 kB
JavaScript
"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/examples/index.ts
var examples_exports = {};
__export(examples_exports, {
destinationMetaExamples: () => destinationMetaExamples
});
module.exports = __toCommonJS(examples_exports);
// src/examples/events.ts
var events_exports = {};
__export(events_exports, {
Purchase: () => Purchase
});
// ../../../core/dist/index.mjs
var e;
var t;
var n = Object.getOwnPropertyNames;
var r = (e = { "package.json"(e2, t2) {
t2.exports = { name: "@walkeros/core", description: "Core types and platform-agnostic utilities for walkerOS", version: "0.0.8", main: "./dist/index.js", module: "./dist/index.mjs", types: "./dist/index.d.ts", license: "MIT", files: ["dist/**"], scripts: { build: "tsup --silent", clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist", dev: "jest --watchAll --colors", lint: 'tsc && eslint "**/*.ts*"', test: "jest", update: "npx npm-check-updates -u && npm update" }, dependencies: {}, devDependencies: {}, repository: { url: "git+https://github.com/elbwalker/walkerOS.git", directory: "packages/core" }, author: "elbwalker <hello@elbwalker.com>", homepage: "https://github.com/elbwalker/walkerOS#readme", bugs: { url: "https://github.com/elbwalker/walkerOS/issues" }, keywords: ["walker", "walkerOS", "analytics", "tracking", "data collection", "measurement", "data privacy", "privacy friendly", "web analytics", "product analytics", "core", "types", "utils"], funding: [{ type: "GitHub Sponsors", url: "https://github.com/sponsors/elbwalker" }] };
} }, function() {
return t || (0, e[n(e)[0]])((t = { exports: {} }).exports, t), t.exports;
});
var w = { merge: true, shallow: true, extend: true };
function v(e2, t2 = {}, n2 = {}) {
n2 = { ...w, ...n2 };
const r2 = Object.entries(t2).reduce((t3, [r3, o]) => {
const i = e2[r3];
return n2.merge && Array.isArray(i) && Array.isArray(o) ? t3[r3] = o.reduce((e3, t4) => e3.includes(t4) ? e3 : [...e3, t4], [...i]) : (n2.extend || r3 in e2) && (t3[r3] = o), t3;
}, {});
return n2.shallow ? { ...e2, ...r2 } : (Object.assign(e2, r2), e2);
}
function k(e2) {
return Array.isArray(e2);
}
function M(e2) {
return "object" == typeof e2 && null !== e2 && !k(e2) && "[object Object]" === Object.prototype.toString.call(e2);
}
var { version: V } = r();
function H(e2 = {}) {
var _a;
const t2 = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n2 = e2.group || "gr0up", r2 = e2.count || 1, o = v({ event: "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: [{ type: "child", data: { is: "subordinated" }, nested: [], context: { element: ["child", 0] } }], consent: { functional: true }, id: `${t2}-${n2}-${r2}`, trigger: "test", entity: "entity", action: "action", timestamp: t2, timing: 3.14, group: n2, count: r2, version: { source: V, tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
if (e2.event) {
const [t3, n3] = (_a = e2.event.split(" ")) != null ? _a : [];
t3 && n3 && (o.entity = t3, o.action = n3);
}
return o;
}
function z(e2 = "entity action", t2 = {}) {
const n2 = t2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), r2 = { 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 H({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r2.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ type: "product", data: { ...r2.data, quantity: 2 }, context: { shopping: ["cart", 0] }, nested: [] }], trigger: "load" }, "checkout view": { data: { step: "payment", currency: "EUR", value: r2.data.price + o.data.price }, context: { shopping: ["checkout", 0] }, globals: { pagegroup: "shop" }, nested: [{ type: "product", ...r2, context: { shopping: ["checkout", 0] }, nested: [] }, { type: "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: [{ type: "product", ...r2, context: { shopping: ["complete", 0] }, nested: [] }, { type: "product", ...o, context: { shopping: ["complete", 0] }, nested: [] }, { type: "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": { ...r2, context: { shopping: ["intent", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "click" }, "product view": { ...r2, context: { shopping: ["detail", 0] }, globals: { pagegroup: "shop" }, nested: [], trigger: "load" }, "product visible": { data: { ...r2.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: n2, 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], ...t2, event: e2 });
}
// src/examples/events.ts
function Purchase() {
const event = z("order complete");
return {
data: [
{
event_name: "Purchase",
event_time: event.timestamp / 1e3,
event_id: event.id,
event_source_url: event.source.id,
action_source: "website",
user_data: {
external_id: [
"cc8e27118413234d4297ed00a02711365312c79325df9b5b8f4199cbd0b96e7e",
"9176e6f336dbdb4f99b0e45cbd7e41e0e2323812b236822842a61ffbd362ac8c"
]
},
order_id: String(event.data.id),
currency: "EUR",
value: Number(event.data.total),
contents: event.nested.filter((item) => item.type === "product").map((item) => ({
id: String(item.data.id),
quantity: Number(item.data.quantity) || 1,
item_price: Number(item.data.price)
})),
num_items: 2
}
]
};
}
// src/examples/mapping.ts
var mapping_exports = {};
__export(mapping_exports, {
InitUserData: () => InitUserData,
Purchase: () => Purchase2,
config: () => config
});
var InitUserData = {
pixelId: "p1x3l1d",
accessToken: "s3cr3t",
user_data: {
external_id: { set: ["user.device", "user.session"] }
}
};
var Purchase2 = {
name: "Purchase",
data: {
map: {
order_id: "data.id",
currency: { key: "data.currency", value: "EUR" },
value: "data.total",
contents: {
loop: [
"nested",
{
condition: (entity) => M(entity) && entity.type === "product",
map: {
id: "data.id",
item_price: "data.price",
quantity: { key: "data.quantity", value: 1 }
}
}
]
},
num_items: {
fn: (event) => event.nested.filter(
(item) => item.type === "product"
).length
}
}
}
};
var config = {
order: { complete: Purchase2 }
};
// src/examples/index.ts
var destinationMetaExamples = {
events: events_exports,
mapping: mapping_exports
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
destinationMetaExamples
});