UNPKG

@walkeros/server-destination-meta

Version:

Meta server destination for walkerOS

158 lines (151 loc) 9.09 kB
"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 });