@walkeros/web-destination-gtag 0.1.0 → 0.1.1

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.
@@ -39,7 +39,7 @@ var e;
39
39
  var t;
40
40
  var n = Object.getOwnPropertyNames;
41
41
  var r = (e = { "package.json"(e2, t2) {
42
- t2.exports = { name: "@walkeros/core", description: "Core types and platform-agnostic utilities for walkerOS", version: "0.1.0", 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" }] };
42
+ t2.exports = { name: "@walkeros/core", description: "Core types and platform-agnostic utilities for walkerOS", version: "0.1.1", 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" }] };
43
43
  } }, function() {
44
44
  return t || (0, e[n(e)[0]])((t = { exports: {} }).exports, t), t.exports;
45
45
  });
@@ -58,24 +58,24 @@ function k(e2) {
58
58
  function M(e2) {
59
59
  return "object" == typeof e2 && null !== e2 && !k(e2) && "[object Object]" === Object.prototype.toString.call(e2);
60
60
  }
61
- var { version: V } = r();
62
- function H(e2 = {}) {
61
+ var { version: R } = r();
62
+ function V(e2 = {}) {
63
63
  var _a;
64
- const t2 = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n2 = e2.group || "gr0up", r2 = e2.count || 1, o = v({ 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: `${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 });
64
+ const t2 = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n2 = e2.group || "gr0up", r2 = e2.count || 1, o = v({ 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: `${t2}-${n2}-${r2}`, trigger: "test", entity: "entity", action: "action", timestamp: t2, timing: 3.14, group: n2, count: r2, version: { source: R, tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
65
65
  if (e2.name) {
66
66
  const [t3, n3] = (_a = e2.name.split(" ")) != null ? _a : [];
67
67
  t3 && n3 && (o.entity = t3, o.action = n3);
68
68
  }
69
69
  return o;
70
70
  }
71
- function z(e2 = "entity action", t2 = {}) {
71
+ function H(e2 = "entity action", t2 = {}) {
72
72
  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 } };
73
- return H({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r2.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "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: [{ entity: "product", ...r2, 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", ...r2, 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": { ...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, name: e2 });
73
+ return V({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r2.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "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: [{ entity: "product", ...r2, 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", ...r2, 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": { ...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, name: e2 });
74
74
  }
75
75
 
76
76
  // src/examples/events.ts
77
77
  function ga4Purchase() {
78
- const event = z("order complete");
78
+ const event = H("order complete");
79
79
  return [
80
80
  "event",
81
81
  "purchase",
@@ -95,7 +95,7 @@ function ga4Purchase() {
95
95
  ];
96
96
  }
97
97
  function ga4AddToCart() {
98
- const event = z("product add");
98
+ const event = H("product add");
99
99
  return [
100
100
  "event",
101
101
  "add_to_cart",
@@ -114,7 +114,7 @@ function ga4AddToCart() {
114
114
  ];
115
115
  }
116
116
  function adsConversion() {
117
- const event = z("order complete");
117
+ const event = H("order complete");
118
118
  return [
119
119
  "event",
120
120
  "conversion",
@@ -127,7 +127,7 @@ function adsConversion() {
127
127
  ];
128
128
  }
129
129
  function gtmEvent() {
130
- const event = z("product view");
130
+ const event = H("product view");
131
131
  return {
132
132
  event: "product_view",
133
133
  product_id: event.data.id,
@@ -18,7 +18,7 @@ var e;
18
18
  var t;
19
19
  var n = Object.getOwnPropertyNames;
20
20
  var r = (e = { "package.json"(e2, t2) {
21
- t2.exports = { name: "@walkeros/core", description: "Core types and platform-agnostic utilities for walkerOS", version: "0.1.0", 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" }] };
21
+ t2.exports = { name: "@walkeros/core", description: "Core types and platform-agnostic utilities for walkerOS", version: "0.1.1", 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" }] };
22
22
  } }, function() {
23
23
  return t || (0, e[n(e)[0]])((t = { exports: {} }).exports, t), t.exports;
24
24
  });
@@ -37,24 +37,24 @@ function k(e2) {
37
37
  function M(e2) {
38
38
  return "object" == typeof e2 && null !== e2 && !k(e2) && "[object Object]" === Object.prototype.toString.call(e2);
39
39
  }
40
- var { version: V } = r();
41
- function H(e2 = {}) {
40
+ var { version: R } = r();
41
+ function V(e2 = {}) {
42
42
  var _a;
43
- const t2 = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n2 = e2.group || "gr0up", r2 = e2.count || 1, o = v({ 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: `${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 });
43
+ const t2 = e2.timestamp || (/* @__PURE__ */ new Date()).setHours(0, 13, 37, 0), n2 = e2.group || "gr0up", r2 = e2.count || 1, o = v({ 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: `${t2}-${n2}-${r2}`, trigger: "test", entity: "entity", action: "action", timestamp: t2, timing: 3.14, group: n2, count: r2, version: { source: R, tagging: 1 }, source: { type: "web", id: "https://localhost:80", previous_id: "http://remotehost:9001" } }, e2, { merge: false });
44
44
  if (e2.name) {
45
45
  const [t3, n3] = (_a = e2.name.split(" ")) != null ? _a : [];
46
46
  t3 && n3 && (o.entity = t3, o.action = n3);
47
47
  }
48
48
  return o;
49
49
  }
50
- function z(e2 = "entity action", t2 = {}) {
50
+ function H(e2 = "entity action", t2 = {}) {
51
51
  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 } };
52
- return H({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r2.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "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: [{ entity: "product", ...r2, 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", ...r2, 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": { ...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, name: e2 });
52
+ return V({ ...{ "cart view": { data: { currency: "EUR", value: 2 * r2.data.price }, context: { shopping: ["cart", 0] }, globals: { pagegroup: "shop" }, nested: [{ entity: "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: [{ entity: "product", ...r2, 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", ...r2, 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": { ...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, name: e2 });
53
53
  }
54
54
 
55
55
  // src/examples/events.ts
56
56
  function ga4Purchase() {
57
- const event = z("order complete");
57
+ const event = H("order complete");
58
58
  return [
59
59
  "event",
60
60
  "purchase",
@@ -74,7 +74,7 @@ function ga4Purchase() {
74
74
  ];
75
75
  }
76
76
  function ga4AddToCart() {
77
- const event = z("product add");
77
+ const event = H("product add");
78
78
  return [
79
79
  "event",
80
80
  "add_to_cart",
@@ -93,7 +93,7 @@ function ga4AddToCart() {
93
93
  ];
94
94
  }
95
95
  function adsConversion() {
96
- const event = z("order complete");
96
+ const event = H("order complete");
97
97
  return [
98
98
  "event",
99
99
  "conversion",
@@ -106,7 +106,7 @@ function adsConversion() {
106
106
  ];
107
107
  }
108
108
  function gtmEvent() {
109
- const event = z("product view");
109
+ const event = H("product view");
110
110
  return {
111
111
  event: "product_view",
112
112
  product_id: event.data.id,
@@ -1 +1 @@
1
- "use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(t,a)=>{for(var n in a)e(t,n,{get:a[n],enumerable:!0})},r={};o(r,{DestinationGtag:()=>k,default:()=>P,destinationGtag:()=>q,examples:()=>x});var i,s,c=new Set;function d(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(c.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),c.add(e)}function u(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}var l=Object.getOwnPropertyNames,p=(i={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.0",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 s||(0,i[l(i)[0]])((s={exports:{}}).exports,s),s.exports}),g={merge:!0,shallow:!0,extend:!0};function m(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:y}=p();function v(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=function(e,t={},a={}){a={...g,...a};const n=Object.entries(t).reduce((t,[n,o])=>{const r=e[n];return a.merge&&Array.isArray(r)&&Array.isArray(o)?t[n]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...r]):(a.extend||n in e)&&(t[n]=o),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:o,version:{source:y,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(r.entity=a,r.action=n)}return r}function h(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={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 v({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,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",...n,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}function w(e){const t={window:globalThis.window,document:globalThis.document};return e?{...t,...e}:t}function b(e,t,a={},n,o){const{window:r}=w(o);if(!t.measurementId)return;const i=m(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,r.gtag)("event",d,c)}var f="dataLayer";function _(e,t,a){const{window:n,document:o}=w(a),{containerId:r,dataLayer:i,domain:s}=e,c=i||f;c===f?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&r&&function(e,t,a,n=globalThis.document){const o=a!=f?"&l="+a:"",r=n.createElement("script");r.src=t+e+o,n.head.appendChild(r)}(r,s||"https://www.googletagmanager.com/gtm.js?id=",c,o)}var k={},x={};o(x,{events:()=>E,mapping:()=>S});var E={};function O(){const e=h("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function j(){const e=h("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function X(){const e=h("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function I(){const e=h("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}o(E,{adsConversion:()=>X,ga4AddToCart:()=>j,ga4Purchase:()=>O,gtmEvent:()=>I});var S={};o(S,{adsConversion:()=>L,combinedPurchase:()=>D,config:()=>T,ga4AddToCart:()=>C,ga4Purchase:()=>A,gtmProductView:()=>U});var R,A={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},L={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},D={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},T={order:{complete:D},product:{add:C,view:U}},q={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:o,ads:r,gtm:i}=a;return(null==o?void 0:o.measurementId)&&function(e,t,a){const{window:n,document:o}=w(a),{measurementId:r,transport_url:i,server_container_url:s,pageview:c}=e;if(!r)return;t&&d(r,void 0,o),u(n);const l={};i&&(l.transport_url=i),s&&(l.server_container_url=s),!1===c&&(l.send_page_view=!1);const p=n.gtag;p("js",new Date),p("config",r,l)}(o,n,t),(null==r?void 0:r.conversionId)&&function(e,t,a){const{window:n,document:o}=w(a),{conversionId:r}=e;if(!r)return;e.currency||(e.currency="EUR"),t&&d(r,void 0,o),u(n);const i=n.gtag;i("js",new Date),i("config",r)}(r,n,t),(null==i?void 0:i.containerId)&&_(i,n,t),!!((null==o?void 0:o.measurementId)||(null==r?void 0:r.conversionId)||(null==i?void 0:i.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:o}){const{settings:r={}}=t,{ga4:i,ads:s,gtm:c}=r,d=a.settings||{};(null==i?void 0:i.measurementId)&&b(e,i,d.ga4,n,o),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,o,r){const{conversionId:i,currency:s}=t,c=m(n)?n:{},d=a.label||o;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:l}=w(r);(0,l.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,o),(null==c?void 0:c.containerId)&&function(e,t,a={},n,o){const{window:r}=w(o),i={event:e.name};r.dataLayer.push({...i,...m(n)?n:e})}(e,0,d.gtm,n,o)}},P=q;return R=r,((o,r,i,s)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let c of a(r))n.call(o,c)||c===i||e(o,c,{get:()=>r[c],enumerable:!(s=t(r,c))||s.enumerable});return o})(e({},"__esModule",{value:!0}),R)})();
1
+ "use strict";var Destination=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,o=(t,a)=>{for(var n in a)e(t,n,{get:a[n],enumerable:!0})},r={};o(r,{DestinationGtag:()=>k,default:()=>P,destinationGtag:()=>q,examples:()=>x});var i,s,c=new Set;function d(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(c.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),c.add(e)}function u(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}var l=Object.getOwnPropertyNames,p=(i={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.1",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 s||(0,i[l(i)[0]])((s={exports:{}}).exports,s),s.exports}),g={merge:!0,shallow:!0,extend:!0};function m(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:y}=p();function v(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=function(e,t={},a={}){a={...g,...a};const n=Object.entries(t).reduce((t,[n,o])=>{const r=e[n];return a.merge&&Array.isArray(r)&&Array.isArray(o)?t[n]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...r]):(a.extend||n in e)&&(t[n]=o),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:o,version:{source:y,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(r.entity=a,r.action=n)}return r}function h(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={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 v({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,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",...n,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}function w(e){const t={window:globalThis.window,document:globalThis.document};return e?{...t,...e}:t}function b(e,t,a={},n,o){const{window:r}=w(o);if(!t.measurementId)return;const i=m(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,r.gtag)("event",d,c)}var f="dataLayer";function _(e,t,a){const{window:n,document:o}=w(a),{containerId:r,dataLayer:i,domain:s}=e,c=i||f;c===f?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&r&&function(e,t,a,n=globalThis.document){const o=a!=f?"&l="+a:"",r=n.createElement("script");r.src=t+e+o,n.head.appendChild(r)}(r,s||"https://www.googletagmanager.com/gtm.js?id=",c,o)}var k={},x={};o(x,{events:()=>E,mapping:()=>S});var E={};function O(){const e=h("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function j(){const e=h("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function X(){const e=h("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function I(){const e=h("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}o(E,{adsConversion:()=>X,ga4AddToCart:()=>j,ga4Purchase:()=>O,gtmEvent:()=>I});var S={};o(S,{adsConversion:()=>L,combinedPurchase:()=>D,config:()=>T,ga4AddToCart:()=>C,ga4Purchase:()=>A,gtmProductView:()=>U});var R,A={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},L={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},D={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>m(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},T={order:{complete:D},product:{add:C,view:U}},q={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:o,ads:r,gtm:i}=a;return(null==o?void 0:o.measurementId)&&function(e,t,a){const{window:n,document:o}=w(a),{measurementId:r,transport_url:i,server_container_url:s,pageview:c}=e;if(!r)return;t&&d(r,void 0,o),u(n);const l={};i&&(l.transport_url=i),s&&(l.server_container_url=s),!1===c&&(l.send_page_view=!1);const p=n.gtag;p("js",new Date),p("config",r,l)}(o,n,t),(null==r?void 0:r.conversionId)&&function(e,t,a){const{window:n,document:o}=w(a),{conversionId:r}=e;if(!r)return;e.currency||(e.currency="EUR"),t&&d(r,void 0,o),u(n);const i=n.gtag;i("js",new Date),i("config",r)}(r,n,t),(null==i?void 0:i.containerId)&&_(i,n,t),!!((null==o?void 0:o.measurementId)||(null==r?void 0:r.conversionId)||(null==i?void 0:i.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:o}){const{settings:r={}}=t,{ga4:i,ads:s,gtm:c}=r,d=a.settings||{};(null==i?void 0:i.measurementId)&&b(e,i,d.ga4,n,o),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,o,r){const{conversionId:i,currency:s}=t,c=m(n)?n:{},d=a.label||o;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:l}=w(r);(0,l.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,o),(null==c?void 0:c.containerId)&&function(e,t,a={},n,o){const{window:r}=w(o),i={event:e.name};r.dataLayer.push({...i,...m(n)?n:e})}(e,0,d.gtm,n,o)}},P=q;return R=r,((o,r,i,s)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let c of a(r))n.call(o,c)||c===i||e(o,c,{get:()=>r[c],enumerable:!(s=t(r,c))||s.enumerable});return o})(e({},"__esModule",{value:!0}),R)})();
package/dist/index.es5.js CHANGED
@@ -1 +1 @@
1
- "use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){c=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw a}}return o}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}var Destination=function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"https://www.googletagmanager.com/gtag/js?id=",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!h.has(e)){var n=r.createElement("script");n.src=t+e,r.head.appendChild(n),h.add(e)}},t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis.window;e.dataLayer=e.dataLayer||[],e.gtag||(e.gtag=function(){e.dataLayer.push(arguments)})},r=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.timestamp||(new Date).setHours(0,13,37,0),r=e.group||"gr0up",n=e.count||1,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r=_object_spread({},O,r);var n=Object.entries(t).reduce(function(t,n){var a=_sliced_to_array(n,2),o=a[0],i=a[1],c=e[o];return r.merge&&Array.isArray(c)&&Array.isArray(i)?t[o]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(r.extend||o in e)&&(t[o]=i),t},{});return r.shallow?_object_spread({},e,n):(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:"".concat(t,"-").concat(r,"-").concat(n),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:r,count:n,version:{source:k,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){var o,i=_sliced_to_array(null!==(o=e.name.split(" "))&&void 0!==o?o:[],2),c=i[0],d=i[1];c&&d&&(a.entity=c,a.action=d)}return a},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"entity action",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.timestamp||(new Date).setHours(0,13,37,0),a={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 n(_object_spread_props(_object_spread({},{"cart view":{data:{currency:"EUR",value:2*a.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:_object_spread_props(_object_spread({},a.data),{quantity:2}),context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:a.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["checkout",0]},nested:[]}),_object_spread_props(_object_spread({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:[_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["complete",0]},nested:[]}),_object_spread_props(_object_spread({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":_object_spread_props(_object_spread({},a),{context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"}),"product view":_object_spread_props(_object_spread({},a),{context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"}),"product visible":{data:_object_spread_props(_object_spread({},a.data),{position:3,promo:!0}),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:r,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],t),{name:e}))},o=function(e){var t={window:globalThis.window,document:globalThis.document};return e?_object_spread({},t,e):t},i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i=o(arguments.length>4?arguments[4]:void 0).window;if(t.measurementId){var c=r(a)?a:{},d=function(e,t){var r={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(function(t){var n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(function(e){var n=_sliced_to_array(e,2),a=n[0],o=n[1];"context"==t&&(o=o[0]),r["".concat(t,"_").concat(a)]=o})}),r}(e,n.include||t.include||["data"]),s=_object_spread({},d,c),u=e.name;!1!==t.snakeCase&&(u=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(u)),s.send_to=t.measurementId,t.debug&&(s.debug_mode=!0),(0,i.gtag)("event",u,s)}},c=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,a=r!=x?"&l="+r:"",o=n.createElement("script");o.src=t+e+a,n.head.appendChild(o)},d=function(){var e=a("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(function(e){return"product"===e.entity}).map(function(e){return{item_id:e.data.id,item_name:e.data.name,quantity:1}}),send_to:"G-XXXXXX-1"}]},s=function(){var e=a("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]},u=function(){var e=a("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]},l=function(){var e=a("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}},p=Object.defineProperty,g=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,m=Object.prototype.hasOwnProperty,y=function(e,t){for(var r in t)p(e,r,{get:t[r],enumerable:!0})},v={};y(v,{DestinationGtag:function(){return E},default:function(){return z},destinationGtag:function(){return q},examples:function(){return A}});var f,b,h=new Set,w=Object.getOwnPropertyNames,j=(f={"package.json":function(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.0",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 b||(0,f[w(f)[0]])((b={exports:{}}).exports,b),b.exports}),O={merge:!0,shallow:!0,extend:!0},k=j().version,x="dataLayer",S="https://www.googletagmanager.com/gtm.js?id=",E={},A={};y(A,{events:function(){return I},mapping:function(){return P}});var I={};y(I,{adsConversion:function(){return u},ga4AddToCart:function(){return s},ga4Purchase:function(){return d},gtmEvent:function(){return l}});var P={};y(P,{adsConversion:function(){return D},combinedPurchase:function(){return L},config:function(){return T},ga4AddToCart:function(){return C},ga4Purchase:function(){return R},gtmProductView:function(){return U}});var X,R={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},D={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},L={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},T={order:{complete:L},product:{add:C,view:U}},q={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r]},dataLayer:[]},document:{createElement:function(e){return{src:"",async:!1,setAttribute:function(){},removeAttribute:function(){}}},head:{appendChild:function(){}}}},init:function(r){var n=r.config,a=r.env,i=n.settings,d=void 0===i?{}:i,s=n.loadScript,u=d.ga4,l=d.ads,p=d.gtm;return(null==u?void 0:u.measurementId)&&function(r,n,a){var i=o(a),c=i.window,d=i.document,s=r.measurementId,u=r.transport_url,l=r.server_container_url,p=r.pageview;if(s){n&&e(s,void 0,d),t(c);var g={};u&&(g.transport_url=u),l&&(g.server_container_url=l),!1===p&&(g.send_page_view=!1);var _=c.gtag;_("js",new Date),_("config",s,g)}}(u,s,a),(null==l?void 0:l.conversionId)&&function(r,n,a){var i=o(a),c=i.window,d=i.document,s=r.conversionId;if(s){r.currency||(r.currency="EUR"),n&&e(s,void 0,d),t(c);var u=c.gtag;u("js",new Date),u("config",s)}}(l,s,a),(null==p?void 0:p.containerId)&&function(e,t,r){var n=o(r),a=n.window,i=n.document,d=e.containerId,s=e.dataLayer,u=e.domain,l=s||x;l===x?a.dataLayer=a.dataLayer||[]:a[l]=a[l]||[],a[l].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&d&&c(d,u||S,l,i)}(p,s,a),!!((null==u?void 0:u.measurementId)||(null==l?void 0:l.conversionId)||(null==p?void 0:p.containerId))&&n},push:function(e,t){var n=t.config,a=t.mapping,c=void 0===a?{}:a,d=t.data,s=t.env,u=n.settings,l=void 0===u?{}:u,p=l.ga4,g=l.ads,_=l.gtm,m=c.settings||{};(null==p?void 0:p.measurementId)&&i(e,p,m.ga4,d,s),(null==g?void 0:g.conversionId)&&c.name&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,c=arguments.length>5?arguments[5]:void 0,d=t.conversionId,s=t.currency,u=r(a)?a:{},l=n.label||i;if(l){var p=_object_spread({send_to:"".concat(d,"/").concat(l),currency:s||"EUR"},u);(0,o(c).window.gtag)("event","conversion",p)}}(e,g,m.ads,d,c.name,s),(null==_?void 0:_.containerId)&&function(e,t){var n=arguments.length>3?arguments[3]:void 0,a=o(arguments.length>4?arguments[4]:void 0).window,i={event:e.name};a.dataLayer.push(_object_spread({},i,r(n)?n:e))}(e,_,m.gtm,d,s)}},z=q;return X=v,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var a=!0,o=!1,i=void 0;try{for(var c,d=function(){var a=c.value;m.call(e,a)||a===r||p(e,a,{get:function(){return t[a]},enumerable:!(n=g(t,a))||n.enumerable})},s=_(t)[Symbol.iterator]();!(a=(c=s.next()).done);a=!0)d()}catch(e){o=!0,i=e}finally{try{a||null==s.return||s.return()}finally{if(o)throw i}}}return e}(p({},"__esModule",{value:!0}),X)}();
1
+ "use strict";function _array_like_to_array(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _array_with_holes(e){if(Array.isArray(e))return e}function _array_without_holes(e){if(Array.isArray(e))return _array_like_to_array(e)}function _define_property(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _iterable_to_array(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _iterable_to_array_limit(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);i=!0);}catch(e){c=!0,a=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw a}}return o}}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _non_iterable_spread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){_define_property(e,t,r[t])})}return e}function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _object_spread_props(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function _sliced_to_array(e,t){return _array_with_holes(e)||_iterable_to_array_limit(e,t)||_unsupported_iterable_to_array(e,t)||_non_iterable_rest()}function _to_consumable_array(e){return _array_without_holes(e)||_iterable_to_array(e)||_unsupported_iterable_to_array(e)||_non_iterable_spread()}function _type_of(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function _unsupported_iterable_to_array(e,t){if(e){if("string"==typeof e)return _array_like_to_array(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(r):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_array_like_to_array(e,t):void 0}}var Destination=function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"https://www.googletagmanager.com/gtag/js?id=",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:globalThis.document;if(!h.has(e)){var n=r.createElement("script");n.src=t+e,r.head.appendChild(n),h.add(e)}},t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:globalThis.window;e.dataLayer=e.dataLayer||[],e.gtag||(e.gtag=function(){e.dataLayer.push(arguments)})},r=function(e){return"object"==(void 0===e?"undefined":_type_of(e))&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)},n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.timestamp||(new Date).setHours(0,13,37,0),r=e.group||"gr0up",n=e.count||1,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};r=_object_spread({},O,r);var n=Object.entries(t).reduce(function(t,n){var a=_sliced_to_array(n,2),o=a[0],i=a[1],c=e[o];return r.merge&&Array.isArray(c)&&Array.isArray(i)?t[o]=i.reduce(function(e,t){return e.includes(t)?e:_to_consumable_array(e).concat([t])},_to_consumable_array(c)):(r.extend||o in e)&&(t[o]=i),t},{});return r.shallow?_object_spread({},e,n):(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:"".concat(t,"-").concat(r,"-").concat(n),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:r,count:n,version:{source:k,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){var o,i=_sliced_to_array(null!==(o=e.name.split(" "))&&void 0!==o?o:[],2),c=i[0],d=i[1];c&&d&&(a.entity=c,a.action=d)}return a},a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"entity action",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.timestamp||(new Date).setHours(0,13,37,0),a={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 n(_object_spread_props(_object_spread({},{"cart view":{data:{currency:"EUR",value:2*a.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:_object_spread_props(_object_spread({},a.data),{quantity:2}),context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:a.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["checkout",0]},nested:[]}),_object_spread_props(_object_spread({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:[_object_spread_props(_object_spread({entity:"product"},a),{context:{shopping:["complete",0]},nested:[]}),_object_spread_props(_object_spread({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":_object_spread_props(_object_spread({},a),{context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"}),"product view":_object_spread_props(_object_spread({},a),{context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"}),"product visible":{data:_object_spread_props(_object_spread({},a.data),{position:3,promo:!0}),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:r,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],t),{name:e}))},o=function(e){var t={window:globalThis.window,document:globalThis.document};return e?_object_spread({},t,e):t},i=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i=o(arguments.length>4?arguments[4]:void 0).window;if(t.measurementId){var c=r(a)?a:{},d=function(e,t){var r={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(function(t){var n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(function(e){var n=_sliced_to_array(e,2),a=n[0],o=n[1];"context"==t&&(o=o[0]),r["".concat(t,"_").concat(a)]=o})}),r}(e,n.include||t.include||["data"]),s=_object_spread({},d,c),u=e.name;!1!==t.snakeCase&&(u=function(e){return arguments.length>1&&void 0!==arguments[1]&&!arguments[1]?e:e.replace(/\s+/g,"_").toLowerCase()}(u)),s.send_to=t.measurementId,t.debug&&(s.debug_mode=!0),(0,i.gtag)("event",u,s)}},c=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:globalThis.document,a=r!=x?"&l="+r:"",o=n.createElement("script");o.src=t+e+a,n.head.appendChild(o)},d=function(){var e=a("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(function(e){return"product"===e.entity}).map(function(e){return{item_id:e.data.id,item_name:e.data.name,quantity:1}}),send_to:"G-XXXXXX-1"}]},s=function(){var e=a("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]},u=function(){var e=a("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]},l=function(){var e=a("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}},p=Object.defineProperty,g=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,m=Object.prototype.hasOwnProperty,y=function(e,t){for(var r in t)p(e,r,{get:t[r],enumerable:!0})},v={};y(v,{DestinationGtag:function(){return E},default:function(){return z},destinationGtag:function(){return q},examples:function(){return A}});var f,b,h=new Set,w=Object.getOwnPropertyNames,j=(f={"package.json":function(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.1",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 b||(0,f[w(f)[0]])((b={exports:{}}).exports,b),b.exports}),O={merge:!0,shallow:!0,extend:!0},k=j().version,x="dataLayer",S="https://www.googletagmanager.com/gtm.js?id=",E={},A={};y(A,{events:function(){return I},mapping:function(){return P}});var I={};y(I,{adsConversion:function(){return u},ga4AddToCart:function(){return s},ga4Purchase:function(){return d},gtmEvent:function(){return l}});var P={};y(P,{adsConversion:function(){return D},combinedPurchase:function(){return L},config:function(){return T},ga4AddToCart:function(){return C},ga4Purchase:function(){return R},gtmProductView:function(){return U}});var X,R={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},D={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},L={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:function(e){return r(e)&&"product"===e.entity},map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},T={order:{complete:L},product:{add:C,view:U}},q={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r]},dataLayer:[]},document:{createElement:function(e){return{src:"",async:!1,setAttribute:function(){},removeAttribute:function(){}}},head:{appendChild:function(){}}}},init:function(r){var n=r.config,a=r.env,i=n.settings,d=void 0===i?{}:i,s=n.loadScript,u=d.ga4,l=d.ads,p=d.gtm;return(null==u?void 0:u.measurementId)&&function(r,n,a){var i=o(a),c=i.window,d=i.document,s=r.measurementId,u=r.transport_url,l=r.server_container_url,p=r.pageview;if(s){n&&e(s,void 0,d),t(c);var g={};u&&(g.transport_url=u),l&&(g.server_container_url=l),!1===p&&(g.send_page_view=!1);var _=c.gtag;_("js",new Date),_("config",s,g)}}(u,s,a),(null==l?void 0:l.conversionId)&&function(r,n,a){var i=o(a),c=i.window,d=i.document,s=r.conversionId;if(s){r.currency||(r.currency="EUR"),n&&e(s,void 0,d),t(c);var u=c.gtag;u("js",new Date),u("config",s)}}(l,s,a),(null==p?void 0:p.containerId)&&function(e,t,r){var n=o(r),a=n.window,i=n.document,d=e.containerId,s=e.dataLayer,u=e.domain,l=s||x;l===x?a.dataLayer=a.dataLayer||[]:a[l]=a[l]||[],a[l].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&d&&c(d,u||S,l,i)}(p,s,a),!!((null==u?void 0:u.measurementId)||(null==l?void 0:l.conversionId)||(null==p?void 0:p.containerId))&&n},push:function(e,t){var n=t.config,a=t.mapping,c=void 0===a?{}:a,d=t.data,s=t.env,u=n.settings,l=void 0===u?{}:u,p=l.ga4,g=l.ads,_=l.gtm,m=c.settings||{};(null==p?void 0:p.measurementId)&&i(e,p,m.ga4,d,s),(null==g?void 0:g.conversionId)&&c.name&&function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,c=arguments.length>5?arguments[5]:void 0,d=t.conversionId,s=t.currency,u=r(a)?a:{},l=n.label||i;if(l){var p=_object_spread({send_to:"".concat(d,"/").concat(l),currency:s||"EUR"},u);(0,o(c).window.gtag)("event","conversion",p)}}(e,g,m.ads,d,c.name,s),(null==_?void 0:_.containerId)&&function(e,t){var n=arguments.length>3?arguments[3]:void 0,a=o(arguments.length>4?arguments[4]:void 0).window,i={event:e.name};a.dataLayer.push(_object_spread({},i,r(n)?n:e))}(e,_,m.gtm,d,s)}},z=q;return X=v,function(e,t,r,n){if(t&&"object"===(void 0===t?"undefined":_type_of(t))||"function"==typeof t){var a=!0,o=!1,i=void 0;try{for(var c,d=function(){var a=c.value;m.call(e,a)||a===r||p(e,a,{get:function(){return t[a]},enumerable:!(n=g(t,a))||n.enumerable})},s=_(t)[Symbol.iterator]();!(a=(c=s.next()).done);a=!0)d()}catch(e){o=!0,i=e}finally{try{a||null==s.return||s.return()}finally{if(o)throw i}}}return e}(p({},"__esModule",{value:!0}),X)}();
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var n in a)t(e,n,{get:a[n],enumerable:!0})},i={};o(i,{DestinationGtag:()=>I,default:()=>G,destinationGtag:()=>H,examples:()=>S}),module.exports=(e=i,((e,o,i,s)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let c of n(o))r.call(e,c)||c===i||t(e,c,{get:()=>o[c],enumerable:!(s=a(o,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s=new Set;function c(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(s.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),s.add(e)}function d(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}var u,l,p=require("@walkeros/web-core");var g=Object.getOwnPropertyNames,m=(u={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.0",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 l||(0,u[g(u)[0]])((l={exports:{}}).exports,l),l.exports}),v={merge:!0,shallow:!0,extend:!0};function y(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:h}=m();function w(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=function(e,t={},a={}){a={...v,...a};const n=Object.entries(t).reduce((t,[n,r])=>{const o=e[n];return a.merge&&Array.isArray(o)&&Array.isArray(r)?t[n]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...o]):(a.extend||n in e)&&(t[n]=r),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:r,version:{source:h,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(o.entity=a,o.action=n)}return o}function b(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return w({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...n,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}var f=require("@walkeros/web-core");function _(e,t,a={},n,r){const{window:o}=(0,f.getEnvironment)(r);if(!t.measurementId)return;const i=y(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,o.gtag)("event",d,c)}var k=require("@walkeros/web-core");var x=require("@walkeros/web-core");var E=require("@walkeros/web-core"),O="dataLayer";function j(e,t,a){const{window:n,document:r}=(0,E.getEnvironment)(a),{containerId:o,dataLayer:i,domain:s}=e,c=i||O;c===O?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&o&&function(e,t,a,n=globalThis.document){const r=a!=O?"&l="+a:"",o=n.createElement("script");o.src=t+e+r,n.head.appendChild(o)}(o,s||"https://www.googletagmanager.com/gtm.js?id=",c,r)}var X=require("@walkeros/web-core");var I={},S={};o(S,{events:()=>R,mapping:()=>U});var R={};function q(){const e=b("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function A(){const e=b("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function C(){const e=b("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function L(){const e=b("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}o(R,{adsConversion:()=>C,ga4AddToCart:()=>A,ga4Purchase:()=>q,gtmEvent:()=>L});var U={};o(U,{adsConversion:()=>T,combinedPurchase:()=>N,config:()=>$,ga4AddToCart:()=>P,ga4Purchase:()=>D,gtmProductView:()=>z});var D={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},P={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},T={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},z={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},N={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},$={order:{complete:N},product:{add:P,view:z}},H={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:r,ads:o,gtm:i}=a;return(null==r?void 0:r.measurementId)&&function(e,t,a){const{window:n,document:r}=(0,p.getEnvironment)(a),{measurementId:o,transport_url:i,server_container_url:s,pageview:u}=e;if(!o)return;t&&c(o,void 0,r),d(n);const l={};i&&(l.transport_url=i),s&&(l.server_container_url=s),!1===u&&(l.send_page_view=!1);const g=n.gtag;g("js",new Date),g("config",o,l)}(r,n,t),(null==o?void 0:o.conversionId)&&function(e,t,a){const{window:n,document:r}=(0,k.getEnvironment)(a),{conversionId:o}=e;if(!o)return;e.currency||(e.currency="EUR"),t&&c(o,void 0,r),d(n);const i=n.gtag;i("js",new Date),i("config",o)}(o,n,t),(null==i?void 0:i.containerId)&&j(i,n,t),!!((null==r?void 0:r.measurementId)||(null==o?void 0:o.conversionId)||(null==i?void 0:i.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:r}){const{settings:o={}}=t,{ga4:i,ads:s,gtm:c}=o,d=a.settings||{};(null==i?void 0:i.measurementId)&&_(e,i,d.ga4,n,r),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,r,o){const{conversionId:i,currency:s}=t,c=y(n)?n:{},d=a.label||r;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:l}=(0,x.getEnvironment)(o);(0,l.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,r),(null==c?void 0:c.containerId)&&function(e,t,a={},n,r){const{window:o}=(0,X.getEnvironment)(r),i={event:e.name};o.dataLayer.push({...i,...y(n)?n:e})}(e,0,d.gtm,n,r)}},G=H;//# sourceMappingURL=index.js.map
1
+ "use strict";var e,t=Object.defineProperty,a=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o=(e,a)=>{for(var n in a)t(e,n,{get:a[n],enumerable:!0})},i={};o(i,{DestinationGtag:()=>I,default:()=>G,destinationGtag:()=>H,examples:()=>S}),module.exports=(e=i,((e,o,i,s)=>{if(o&&"object"==typeof o||"function"==typeof o)for(let c of n(o))r.call(e,c)||c===i||t(e,c,{get:()=>o[c],enumerable:!(s=a(o,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s=new Set;function c(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(s.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),s.add(e)}function d(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}var u,l,p=require("@walkeros/web-core");var g=Object.getOwnPropertyNames,m=(u={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.1",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 l||(0,u[g(u)[0]])((l={exports:{}}).exports,l),l.exports}),v={merge:!0,shallow:!0,extend:!0};function y(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:h}=m();function w(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=function(e,t={},a={}){a={...v,...a};const n=Object.entries(t).reduce((t,[n,r])=>{const o=e[n];return a.merge&&Array.isArray(o)&&Array.isArray(r)?t[n]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...o]):(a.extend||n in e)&&(t[n]=r),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:r,version:{source:h,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(o.entity=a,o.action=n)}return o}function b(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return w({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...n,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}var f=require("@walkeros/web-core");function _(e,t,a={},n,r){const{window:o}=(0,f.getEnvironment)(r);if(!t.measurementId)return;const i=y(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,o.gtag)("event",d,c)}var k=require("@walkeros/web-core");var x=require("@walkeros/web-core");var E=require("@walkeros/web-core"),O="dataLayer";function j(e,t,a){const{window:n,document:r}=(0,E.getEnvironment)(a),{containerId:o,dataLayer:i,domain:s}=e,c=i||O;c===O?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&o&&function(e,t,a,n=globalThis.document){const r=a!=O?"&l="+a:"",o=n.createElement("script");o.src=t+e+r,n.head.appendChild(o)}(o,s||"https://www.googletagmanager.com/gtm.js?id=",c,r)}var X=require("@walkeros/web-core");var I={},S={};o(S,{events:()=>R,mapping:()=>U});var R={};function q(){const e=b("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function A(){const e=b("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function C(){const e=b("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function L(){const e=b("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}o(R,{adsConversion:()=>C,ga4AddToCart:()=>A,ga4Purchase:()=>q,gtmEvent:()=>L});var U={};o(U,{adsConversion:()=>T,combinedPurchase:()=>N,config:()=>$,ga4AddToCart:()=>P,ga4Purchase:()=>D,gtmProductView:()=>z});var D={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},P={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},T={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},z={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},N={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>y(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},$={order:{complete:N},product:{add:P,view:z}},H={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:r,ads:o,gtm:i}=a;return(null==r?void 0:r.measurementId)&&function(e,t,a){const{window:n,document:r}=(0,p.getEnvironment)(a),{measurementId:o,transport_url:i,server_container_url:s,pageview:u}=e;if(!o)return;t&&c(o,void 0,r),d(n);const l={};i&&(l.transport_url=i),s&&(l.server_container_url=s),!1===u&&(l.send_page_view=!1);const g=n.gtag;g("js",new Date),g("config",o,l)}(r,n,t),(null==o?void 0:o.conversionId)&&function(e,t,a){const{window:n,document:r}=(0,k.getEnvironment)(a),{conversionId:o}=e;if(!o)return;e.currency||(e.currency="EUR"),t&&c(o,void 0,r),d(n);const i=n.gtag;i("js",new Date),i("config",o)}(o,n,t),(null==i?void 0:i.containerId)&&j(i,n,t),!!((null==r?void 0:r.measurementId)||(null==o?void 0:o.conversionId)||(null==i?void 0:i.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:r}){const{settings:o={}}=t,{ga4:i,ads:s,gtm:c}=o,d=a.settings||{};(null==i?void 0:i.measurementId)&&_(e,i,d.ga4,n,r),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,r,o){const{conversionId:i,currency:s}=t,c=y(n)?n:{},d=a.label||r;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:l}=(0,x.getEnvironment)(o);(0,l.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,r),(null==c?void 0:c.containerId)&&function(e,t,a={},n,r){const{window:o}=(0,X.getEnvironment)(r),i={event:e.name};o.dataLayer.push({...i,...y(n)?n:e})}(e,0,d.gtm,n,r)}},G=H;//# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e,t,a=Object.defineProperty,n=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},o=new Set;function r(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(o.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),o.add(e)}function i(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}import{getEnvironment as s}from"@walkeros/web-core";var c=Object.getOwnPropertyNames,d=(e={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.0",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[c(e)[0]])((t={exports:{}}).exports,t),t.exports}),u={merge:!0,shallow:!0,extend:!0};function l(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:p}=d();function g(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=function(e,t={},a={}){a={...u,...a};const n=Object.entries(t).reduce((t,[n,o])=>{const r=e[n];return a.merge&&Array.isArray(r)&&Array.isArray(o)?t[n]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...r]):(a.extend||n in e)&&(t[n]=o),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:o,version:{source:p,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(r.entity=a,r.action=n)}return r}function m(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={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 g({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,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",...n,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}import{getEnvironment as v}from"@walkeros/web-core";function y(e,t,a={},n,o){const{window:r}=v(o);if(!t.measurementId)return;const i=l(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,r.gtag)("event",d,c)}import{getEnvironment as h}from"@walkeros/web-core";import{getEnvironment as w}from"@walkeros/web-core";import{getEnvironment as b}from"@walkeros/web-core";var f="dataLayer";function k(e,t,a){const{window:n,document:o}=b(a),{containerId:r,dataLayer:i,domain:s}=e,c=i||f;c===f?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&r&&function(e,t,a,n=globalThis.document){const o=a!=f?"&l="+a:"",r=n.createElement("script");r.src=t+e+o,n.head.appendChild(r)}(r,s||"https://www.googletagmanager.com/gtm.js?id=",c,o)}import{getEnvironment as _}from"@walkeros/web-core";var x={},E={};n(E,{events:()=>X,mapping:()=>R});var X={};function j(){const e=m("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function O(){const e=m("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function I(){const e=m("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function S(){const e=m("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}n(X,{adsConversion:()=>I,ga4AddToCart:()=>O,ga4Purchase:()=>j,gtmEvent:()=>S});var R={};n(R,{adsConversion:()=>L,combinedPurchase:()=>q,config:()=>D,ga4AddToCart:()=>C,ga4Purchase:()=>A,gtmProductView:()=>U});var A={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>l(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},L={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},q={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>l(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},D={order:{complete:q},product:{add:C,view:U}},T={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:o,ads:c,gtm:d}=a;return(null==o?void 0:o.measurementId)&&function(e,t,a){const{window:n,document:o}=s(a),{measurementId:c,transport_url:d,server_container_url:u,pageview:l}=e;if(!c)return;t&&r(c,void 0,o),i(n);const p={};d&&(p.transport_url=d),u&&(p.server_container_url=u),!1===l&&(p.send_page_view=!1);const g=n.gtag;g("js",new Date),g("config",c,p)}(o,n,t),(null==c?void 0:c.conversionId)&&function(e,t,a){const{window:n,document:o}=h(a),{conversionId:s}=e;if(!s)return;e.currency||(e.currency="EUR"),t&&r(s,void 0,o),i(n);const c=n.gtag;c("js",new Date),c("config",s)}(c,n,t),(null==d?void 0:d.containerId)&&k(d,n,t),!!((null==o?void 0:o.measurementId)||(null==c?void 0:c.conversionId)||(null==d?void 0:d.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:o}){const{settings:r={}}=t,{ga4:i,ads:s,gtm:c}=r,d=a.settings||{};(null==i?void 0:i.measurementId)&&y(e,i,d.ga4,n,o),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,o,r){const{conversionId:i,currency:s}=t,c=l(n)?n:{},d=a.label||o;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:p}=w(r);(0,p.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,o),(null==c?void 0:c.containerId)&&function(e,t,a={},n,o){const{window:r}=_(o),i={event:e.name};r.dataLayer.push({...i,...l(n)?n:e})}(e,0,d.gtm,n,o)}},z=T;export{x as DestinationGtag,z as default,T as destinationGtag,E as examples};//# sourceMappingURL=index.mjs.map
1
+ var e,t,a=Object.defineProperty,n=(e,t)=>{for(var n in t)a(e,n,{get:t[n],enumerable:!0})},o=new Set;function r(e,t="https://www.googletagmanager.com/gtag/js?id=",a=globalThis.document){if(o.has(e))return;const n=a.createElement("script");n.src=t+e,a.head.appendChild(n),o.add(e)}function i(e=globalThis.window){const t=e;t.dataLayer=t.dataLayer||[],t.gtag||(t.gtag=function(){t.dataLayer.push(arguments)})}import{getEnvironment as s}from"@walkeros/web-core";var c=Object.getOwnPropertyNames,d=(e={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.1.1",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[c(e)[0]])((t={exports:{}}).exports,t),t.exports}),u={merge:!0,shallow:!0,extend:!0};function l(e){return"object"==typeof e&&null!==e&&!function(e){return Array.isArray(e)}(e)&&"[object Object]"===Object.prototype.toString.call(e)}var{version:p}=d();function g(e={}){var t;const a=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=function(e,t={},a={}){a={...u,...a};const n=Object.entries(t).reduce((t,[n,o])=>{const r=e[n];return a.merge&&Array.isArray(r)&&Array.isArray(o)?t[n]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...r]):(a.extend||n in e)&&(t[n]=o),t},{});return a.shallow?{...e,...n}:(Object.assign(e,n),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],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:!0},id:`${a}-${n}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:a,timing:3.14,group:n,count:o,version:{source:p,tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[a,n]=null!=(t=e.name.split(" "))?t:[];a&&n&&(r.entity=a,r.action=n)}return r}function m(e="entity action",t={}){const a=t.timestamp||(new Date).setHours(0,13,37,0),n={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 g({...{"cart view":{data:{currency:"EUR",value:2*n.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...n.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:n.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...n,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",...n,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":{...n,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...n,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...n.data,position:3,promo:!0},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:a,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,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:!0,custom:"value"}}}[e],...t,name:e})}import{getEnvironment as v}from"@walkeros/web-core";function y(e,t,a={},n,o){const{window:r}=v(o);if(!t.measurementId)return;const i=l(n)?n:{},s=function(e,t){const a={};return t.includes("all")&&(t=["context","data","event","globals","source","user","version"]),t.forEach(t=>{let n=e[t]||{};"event"==t&&(n={id:e.id,timing:e.timing,trigger:e.trigger,entity:e.entity,action:e.action,group:e.group,count:e.count}),Object.entries(n).forEach(([e,n])=>{"context"==t&&(n=n[0]),a[`${t}_${e}`]=n})}),a}(e,a.include||t.include||["data"]),c={...s,...i};let d=e.name;!1!==t.snakeCase&&(d=function(e,t=!0){return t?e.replace(/\s+/g,"_").toLowerCase():e}(d)),c.send_to=t.measurementId,t.debug&&(c.debug_mode=!0);(0,r.gtag)("event",d,c)}import{getEnvironment as h}from"@walkeros/web-core";import{getEnvironment as w}from"@walkeros/web-core";import{getEnvironment as b}from"@walkeros/web-core";var f="dataLayer";function k(e,t,a){const{window:n,document:o}=b(a),{containerId:r,dataLayer:i,domain:s}=e,c=i||f;c===f?n.dataLayer=n.dataLayer||[]:n[c]=n[c]||[];n[c].push({"gtm.start":(new Date).getTime(),event:"gtm.js"}),t&&r&&function(e,t,a,n=globalThis.document){const o=a!=f?"&l="+a:"",r=n.createElement("script");r.src=t+e+o,n.head.appendChild(r)}(r,s||"https://www.googletagmanager.com/gtm.js?id=",c,o)}import{getEnvironment as _}from"@walkeros/web-core";var x={},E={};n(E,{events:()=>X,mapping:()=>R});var X={};function j(){const e=m("order complete");return["event","purchase",{transaction_id:e.data.id,value:e.data.total,tax:e.data.taxes,shipping:e.data.shipping,currency:"EUR",items:e.nested.filter(e=>"product"===e.entity).map(e=>({item_id:e.data.id,item_name:e.data.name,quantity:1})),send_to:"G-XXXXXX-1"}]}function O(){const e=m("product add");return["event","add_to_cart",{currency:"EUR",value:e.data.price,items:[{item_id:e.data.id,item_variant:e.data.color,quantity:1}],send_to:"G-XXXXXX-1"}]}function I(){const e=m("order complete");return["event","conversion",{send_to:"AW-XXXXXXXXX/CONVERSION_LABEL",currency:"EUR",value:e.data.total,transaction_id:e.data.id}]}function S(){const e=m("product view");return{event:"product_view",product_id:e.data.id,product_name:e.data.name,product_category:e.data.category,value:e.data.price,currency:"EUR"}}n(X,{adsConversion:()=>I,ga4AddToCart:()=>O,ga4Purchase:()=>j,gtmEvent:()=>S});var R={};n(R,{adsConversion:()=>L,combinedPurchase:()=>q,config:()=>D,ga4AddToCart:()=>C,ga4Purchase:()=>A,gtmProductView:()=>U});var A={name:"purchase",settings:{ga4:{include:["data","context"]}},data:{map:{transaction_id:"data.id",value:"data.total",tax:"data.taxes",shipping:"data.shipping",currency:{key:"data.currency",value:"EUR"},items:{loop:["nested",{condition:e=>l(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{key:"data.quantity",value:1}}}]}}}},C={name:"add_to_cart",settings:{ga4:{include:["data"]}},data:{map:{currency:{value:"EUR",key:"data.currency"},value:"data.price",items:{loop:["this",{map:{item_id:"data.id",item_variant:"data.color",quantity:{value:1,key:"data.quantity"}}}]}}}},L={name:"CONVERSION_LABEL",settings:{ads:{}},data:{map:{value:"data.total",currency:{value:"EUR",key:"data.currency"},transaction_id:"data.id"}}},U={name:"product_view",settings:{gtm:{}},data:{map:{product_id:"data.id",product_name:"data.name",product_category:"data.category",value:"data.price",currency:{value:"EUR",key:"data.currency"}}}},q={name:"purchase",settings:{ga4:{include:["data"]},ads:{},gtm:{}},data:{map:{transaction_id:"data.id",value:"data.total",currency:{value:"EUR",key:"data.currency"},items:{loop:["nested",{condition:e=>l(e)&&"product"===e.entity,map:{item_id:"data.id",item_name:"data.name",quantity:{value:1,key:"data.quantity"}}}]}}}},D={order:{complete:q},product:{add:C,view:U}},T={type:"google-gtag",config:{settings:{}},env:{window:{gtag:function(...e){},dataLayer:[]},document:{createElement:e=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},init({config:e,env:t}){const{settings:a={},loadScript:n}=e,{ga4:o,ads:c,gtm:d}=a;return(null==o?void 0:o.measurementId)&&function(e,t,a){const{window:n,document:o}=s(a),{measurementId:c,transport_url:d,server_container_url:u,pageview:l}=e;if(!c)return;t&&r(c,void 0,o),i(n);const p={};d&&(p.transport_url=d),u&&(p.server_container_url=u),!1===l&&(p.send_page_view=!1);const g=n.gtag;g("js",new Date),g("config",c,p)}(o,n,t),(null==c?void 0:c.conversionId)&&function(e,t,a){const{window:n,document:o}=h(a),{conversionId:s}=e;if(!s)return;e.currency||(e.currency="EUR"),t&&r(s,void 0,o),i(n);const c=n.gtag;c("js",new Date),c("config",s)}(c,n,t),(null==d?void 0:d.containerId)&&k(d,n,t),!!((null==o?void 0:o.measurementId)||(null==c?void 0:c.conversionId)||(null==d?void 0:d.containerId))&&e},push(e,{config:t,mapping:a={},data:n,env:o}){const{settings:r={}}=t,{ga4:i,ads:s,gtm:c}=r,d=a.settings||{};(null==i?void 0:i.measurementId)&&y(e,i,d.ga4,n,o),(null==s?void 0:s.conversionId)&&a.name&&function(e,t,a={},n,o,r){const{conversionId:i,currency:s}=t,c=l(n)?n:{},d=a.label||o;if(!d)return;const u={send_to:`${i}/${d}`,currency:s||"EUR",...c},{window:p}=w(r);(0,p.gtag)("event","conversion",u)}(0,s,d.ads,n,a.name,o),(null==c?void 0:c.containerId)&&function(e,t,a={},n,o){const{window:r}=_(o),i={event:e.name};r.dataLayer.push({...i,...l(n)?n:e})}(e,0,d.gtm,n,o)}},z=T;export{x as DestinationGtag,z as default,T as destinationGtag,E as examples};//# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/web-destination-gtag",
3
3
  "description": "Unified Google destination for walkerOS (GA4, Ads, GTM)",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
@@ -25,7 +25,7 @@
25
25
  "update": "npx npm-check-updates -u && npm update"
26
26
  },
27
27
  "dependencies": {
28
- "@walkeros/web-core": "0.1.0"
28
+ "@walkeros/web-core": "0.1.1"
29
29
  },
30
30
  "repository": {
31
31
  "url": "git+https://github.com/elbwalker/walkerOS.git",