@hanzo/event 0.3.49 → 0.3.52
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.
- package/dist/consent.d.ts +19 -0
- package/dist/consent.d.ts.map +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/index.cjs +90 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +84 -23
- package/dist/index.mjs.map +1 -1
- package/dist/org.d.ts +10 -0
- package/dist/org.d.ts.map +1 -1
- package/dist/react.cjs +48 -16
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.mjs +48 -16
- package/dist/react.mjs.map +1 -1
- package/dist/tags.d.ts +6 -5
- package/dist/tags.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/consent.test.ts +60 -3
- package/src/consent.ts +67 -9
- package/src/core.test.ts +5 -5
- package/src/core.ts +15 -17
- package/src/index.ts +4 -4
- package/src/link.test.ts +4 -3
- package/src/org.test.ts +31 -2
- package/src/org.ts +39 -1
- package/src/react.tsx +6 -2
- package/src/tags.ts +28 -21
package/dist/index.d.cts
CHANGED
|
@@ -7,10 +7,10 @@ export { scrubText, redactSecrets, scrubPII } from './scrub';
|
|
|
7
7
|
export { EVENTS, EXCEPTION, PAGEVIEW } from './events';
|
|
8
8
|
export { exceptionEntry, exceptionProperties, fingerprint, digest } from './exception';
|
|
9
9
|
export type { EventName } from './events';
|
|
10
|
-
export { CONSENT_COOKIE, CONSENT_EVENT, acceptAll, asks, gpc, read as readConsent, refused, region, rejectAll, render as renderConsent, save as saveConsent, stored as storedConsent, } from './consent';
|
|
11
|
-
export type { Choice, Region } from './consent';
|
|
10
|
+
export { CONSENT_COOKIE, CONSENT_EVENT, CONSENT_VERSION_COOKIE, POLICY_EVENT, acceptAll, asks, gpc, notices, policy as consentPolicy, serve as serveConsent, read as readConsent, refused, region, rejectAll, render as renderConsent, save as saveConsent, stored as storedConsent, } from './consent';
|
|
11
|
+
export type { Choice, Policy as ConsentRule, Region } from './consent';
|
|
12
12
|
export { CLICK_IDS, capture as captureClick, touch } from './touch';
|
|
13
|
-
export { start as startTags, track, mirror, reach, visit
|
|
13
|
+
export { start as startTags, ready as tagsReady, track, mirror, reach, visit } from './tags';
|
|
14
14
|
export type { BrowserTag, TagOptions } from './tags';
|
|
15
15
|
export { commerceItem, worth } from './items';
|
|
16
16
|
export type { CommerceItem, PlanLine } from './items';
|
|
@@ -24,6 +24,6 @@ export type { AnalyticsConfig, Attribution, CaptureErrorOptions, Cohort, EventKi
|
|
|
24
24
|
* correctly while configuring nothing. `keyFor` takes an optional keyring so a
|
|
25
25
|
* runtime that receives one (hanzo.id serves every brand from one image) resolves
|
|
26
26
|
* through this same function rather than a second copy of it. */
|
|
27
|
-
export { ORG_DOMAIN, ORG_KEY, orgOf, keyFor, keyForPage } from './org';
|
|
27
|
+
export { ORG_DOMAIN, ORG_KEY, SITE_KEY, siteKey, orgOf, keyFor, keyForPage } from './org';
|
|
28
28
|
export type { Keyring } from './org';
|
|
29
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -7,10 +7,10 @@ export { scrubText, redactSecrets, scrubPII } from './scrub';
|
|
|
7
7
|
export { EVENTS, EXCEPTION, PAGEVIEW } from './events';
|
|
8
8
|
export { exceptionEntry, exceptionProperties, fingerprint, digest } from './exception';
|
|
9
9
|
export type { EventName } from './events';
|
|
10
|
-
export { CONSENT_COOKIE, CONSENT_EVENT, acceptAll, asks, gpc, read as readConsent, refused, region, rejectAll, render as renderConsent, save as saveConsent, stored as storedConsent, } from './consent';
|
|
11
|
-
export type { Choice, Region } from './consent';
|
|
10
|
+
export { CONSENT_COOKIE, CONSENT_EVENT, CONSENT_VERSION_COOKIE, POLICY_EVENT, acceptAll, asks, gpc, notices, policy as consentPolicy, serve as serveConsent, read as readConsent, refused, region, rejectAll, render as renderConsent, save as saveConsent, stored as storedConsent, } from './consent';
|
|
11
|
+
export type { Choice, Policy as ConsentRule, Region } from './consent';
|
|
12
12
|
export { CLICK_IDS, capture as captureClick, touch } from './touch';
|
|
13
|
-
export { start as startTags, track, mirror, reach, visit
|
|
13
|
+
export { start as startTags, ready as tagsReady, track, mirror, reach, visit } from './tags';
|
|
14
14
|
export type { BrowserTag, TagOptions } from './tags';
|
|
15
15
|
export { commerceItem, worth } from './items';
|
|
16
16
|
export type { CommerceItem, PlanLine } from './items';
|
|
@@ -24,6 +24,6 @@ export type { AnalyticsConfig, Attribution, CaptureErrorOptions, Cohort, EventKi
|
|
|
24
24
|
* correctly while configuring nothing. `keyFor` takes an optional keyring so a
|
|
25
25
|
* runtime that receives one (hanzo.id serves every brand from one image) resolves
|
|
26
26
|
* through this same function rather than a second copy of it. */
|
|
27
|
-
export { ORG_DOMAIN, ORG_KEY, orgOf, keyFor, keyForPage } from './org';
|
|
27
|
+
export { ORG_DOMAIN, ORG_KEY, SITE_KEY, siteKey, orgOf, keyFor, keyForPage } from './org';
|
|
28
28
|
export type { Keyring } from './org';
|
|
29
29
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,eAAe,EACf,YAAY,EACZ,OAAO,EACP,SAAS,EACT,aAAa,GACd,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACtF,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EACL,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,WAAW,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,eAAe,EACf,YAAY,EACZ,OAAO,EACP,SAAS,EACT,aAAa,GACd,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAClE,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACtF,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EACL,cAAc,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,KAAK,IAAI,YAAY,EAAE,IAAI,IAAI,WAAW,EAAE,OAAO,EAAE,MAAM,EACxL,SAAS,EAAE,MAAM,IAAI,aAAa,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,IAAI,aAAa,GACjF,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,OAAO,IAAI,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AACnE,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC5F,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACvD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,MAAM,EACN,OAAO,GACR,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,MAAM,EACN,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,SAAS,CAAA;AAEhB;;;kEAGkE;AAClE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzF,YAAY,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -110,10 +110,34 @@ var ORG_DOMAIN = Object.freeze({
|
|
|
110
110
|
zoo: Object.freeze(["zoo.ngo", "zoo.network", "zoolabs.id", "zoolabs.io"])
|
|
111
111
|
});
|
|
112
112
|
var ORG_KEY = Object.freeze({
|
|
113
|
-
hanzo: "pk-
|
|
113
|
+
hanzo: "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
114
114
|
lux: "pk-gUZp6ZVfhJzSwK-rb4oLbVkpCnMBx5uSCpxf_5yEhQk",
|
|
115
115
|
zoo: "pk-3TKpKnERV9AQSsBUERWkZejC1O1mUxc1jRzsP3MPbs4"
|
|
116
116
|
});
|
|
117
|
+
var SITE_KEY = Object.freeze({
|
|
118
|
+
"hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
119
|
+
"www.hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
120
|
+
"hanzo.app": "pk-wlnXN2a9_vmCm60yTFtQ629Q8TyuaxBNZbY1RWT72gQ",
|
|
121
|
+
"hanzo.team": "pk-NCzD2FiHpZv8KUpkCX4olT1LJOJsMxBC_Z8NkiQsOFQ",
|
|
122
|
+
"pay.hanzo.ai": "pk-eX6kv7JZNoiYn1WkeJH3tT_8OvkVYScmCXnLMwxTKf8",
|
|
123
|
+
"platform.hanzo.ai": "pk-My1RpZLEUnTj8vAdPbWKYdDUuhxZJ4dVjHcwjZN4rZ8",
|
|
124
|
+
"docs.hanzo.ai": "pk-jukhtjMT2ymoeBDAeFjINQWlBv-v9sNn1TPztiCrrwk",
|
|
125
|
+
"hanzo.bot": "pk-W5d7Mn7ZukT7igyscIy6Pqe8JpA0Ge604Yn4xNR4JCU",
|
|
126
|
+
"hanzo.chat": "pk-ATxWeB2jNyRSxDgqnkGoDj3CCbzrmTxSktUh9zlrO-E",
|
|
127
|
+
"hanzo.id": "pk-_GVF3KlaqprlPHDumBMRFeFU1lIGOaarQfgimNVDIo8",
|
|
128
|
+
"hanzo.industries": "pk-Vh1wvL2HqIAv9qpVvmrznTI9uMHrTD-jyIC-vnlBsgY",
|
|
129
|
+
"hanzo.market": "pk-DN3xQFa0H61epUVg9OkiOYLzCdteNt9hE6f-S-ednjQ",
|
|
130
|
+
"hanzo.network": "pk-YJ2eiA_7ckLStMPte8Ar8FsmRp_ycmeIeRbpGprZYmM",
|
|
131
|
+
"hanzo.agency": "pk-26a2clOaJFe24aKJZ0PkI-GWR9F4EEa8rthHzgy_Efw",
|
|
132
|
+
"console.hanzo.ai": "pk-oFNXoiO1wOD8PqGdHYyiSq6jaNCdrd7TpztGpwM2ZiQ",
|
|
133
|
+
"admin.hanzo.ai": "pk-RYZwxkomW-tlAnEu2DKo_kAzcxFbSF2YiYcsUY48QL0",
|
|
134
|
+
"bot.hanzo.ai": "pk-W5d7Mn7ZukT7igyscIy6Pqe8JpA0Ge604Yn4xNR4JCU",
|
|
135
|
+
"cloud.hanzo.ai": "pk-RAfEGHPoNdCEU9fnA_cPd_Xo9Tci44rlYQV9xuJ1Ob0"
|
|
136
|
+
});
|
|
137
|
+
function siteKey(host) {
|
|
138
|
+
const h = normalize(host).replace(/^www\./, "");
|
|
139
|
+
return SITE_KEY[h] ?? (h.endsWith(".hanzo.app") ? SITE_KEY["hanzo.app"] : void 0);
|
|
140
|
+
}
|
|
117
141
|
var PUBLISHABLE = "pk-";
|
|
118
142
|
var normalize = (host) => host.trim().toLowerCase().replace(/\.$/, "").split(":")[0] ?? "";
|
|
119
143
|
function orgOf(host) {
|
|
@@ -132,6 +156,10 @@ function orgOf(host) {
|
|
|
132
156
|
return best;
|
|
133
157
|
}
|
|
134
158
|
function keyFor(host, keyring = ORG_KEY) {
|
|
159
|
+
if (keyring === ORG_KEY) {
|
|
160
|
+
const site = siteKey(host);
|
|
161
|
+
if (site) return site;
|
|
162
|
+
}
|
|
135
163
|
const org = orgOf(host);
|
|
136
164
|
if (!org) return void 0;
|
|
137
165
|
const key = keyring[org];
|
|
@@ -632,7 +660,7 @@ function stripLink(href) {
|
|
|
632
660
|
}
|
|
633
661
|
|
|
634
662
|
// package.json
|
|
635
|
-
var version = "0.3.
|
|
663
|
+
var version = "0.3.52";
|
|
636
664
|
|
|
637
665
|
// src/version.ts
|
|
638
666
|
var VERSION = version;
|
|
@@ -656,6 +684,7 @@ function normalizeError2(err) {
|
|
|
656
684
|
const frames = framesFromStack(n.stack).slice(-50).map((f) => ({ function: f.function, file: f.filename, line: f.lineno, column: f.colno }));
|
|
657
685
|
return { type: n.name, message: n.message, stack: n.stack, frames };
|
|
658
686
|
}
|
|
687
|
+
var viewport = () => isBrowser() ? { screen: `${window.screen?.width ?? 0}x${window.screen?.height ?? 0}`, language: navigator.language || "" } : {};
|
|
659
688
|
var isBrowser = () => typeof window !== "undefined" && typeof document !== "undefined";
|
|
660
689
|
function serializeBatch(batch) {
|
|
661
690
|
try {
|
|
@@ -690,13 +719,13 @@ var DefaultTransport = class {
|
|
|
690
719
|
}
|
|
691
720
|
}
|
|
692
721
|
if (typeof fetch !== "function") return;
|
|
693
|
-
const simple = opts.ingestKey !== void 0 && opts.contentType === void 0;
|
|
722
|
+
const simple = opts.ingestKey !== void 0 && opts.token === void 0 && opts.contentType === void 0;
|
|
694
723
|
const headers = {
|
|
695
724
|
"Content-Type": simple ? BEACON_CONTENT_TYPE : opts.contentType ?? "application/json"
|
|
696
725
|
};
|
|
697
|
-
const bearer = simple ? void 0 : opts.
|
|
726
|
+
const bearer = simple ? void 0 : opts.token ?? opts.ingestKey;
|
|
698
727
|
if (bearer) headers.Authorization = `Bearer ${bearer}`;
|
|
699
|
-
void fetch(
|
|
728
|
+
void fetch(opts.ingestKey ? appendQuery(url, "ingest_key", opts.ingestKey) : url, {
|
|
700
729
|
method: "POST",
|
|
701
730
|
headers,
|
|
702
731
|
body,
|
|
@@ -836,7 +865,7 @@ var Analytics = class {
|
|
|
836
865
|
const view = (p ?? "") + "\0" + (isBrowser() ? window.location.href : "");
|
|
837
866
|
if (view === this.counted) return;
|
|
838
867
|
this.counted = view;
|
|
839
|
-
this.enqueue("pageview", PAGEVIEW, { path: p, properties });
|
|
868
|
+
this.enqueue("pageview", PAGEVIEW, { path: p, properties: { ...viewport(), ...properties } });
|
|
840
869
|
}
|
|
841
870
|
/** capture records a named product event with optional properties. Commerce
|
|
842
871
|
* fields (productId/quantity/revenue/currency) may be passed for order events. */
|
|
@@ -892,7 +921,7 @@ var Analytics = class {
|
|
|
892
921
|
this.queue = [];
|
|
893
922
|
this.clearTimer();
|
|
894
923
|
const token = this.cfg.getToken?.() ?? void 0;
|
|
895
|
-
const key =
|
|
924
|
+
const key = this.cfg.ingestKey?.trim() || void 0;
|
|
896
925
|
const useBeacon = beacon && !token;
|
|
897
926
|
const body = serializeBatch(batch);
|
|
898
927
|
if (body === null) {
|
|
@@ -1106,7 +1135,28 @@ function set(name, value, days) {
|
|
|
1106
1135
|
|
|
1107
1136
|
// src/consent.ts
|
|
1108
1137
|
var CONSENT_COOKIE = "hz_consent";
|
|
1138
|
+
var CONSENT_VERSION_COOKIE = "hz_consent_v";
|
|
1139
|
+
var POLICY_EVENT = "hzpolicy";
|
|
1109
1140
|
var CONSENT_EVENT = "hzconsent";
|
|
1141
|
+
var served;
|
|
1142
|
+
function serve(p) {
|
|
1143
|
+
if (p == null) {
|
|
1144
|
+
served = void 0;
|
|
1145
|
+
return;
|
|
1146
|
+
}
|
|
1147
|
+
const d = p;
|
|
1148
|
+
if (d.mode !== "opt-in" && d.mode !== "opt-out" || !d.defaults) return;
|
|
1149
|
+
served = {
|
|
1150
|
+
region: String(d.region ?? ""),
|
|
1151
|
+
mode: d.mode,
|
|
1152
|
+
defaults: { analytics: !!d.defaults.analytics, marketing: !!d.defaults.marketing, ads: !!d.defaults.ads },
|
|
1153
|
+
gpc: d.gpc === true,
|
|
1154
|
+
version: Number(d.version) || 0,
|
|
1155
|
+
notice: typeof d.notice === "string" ? d.notice : void 0
|
|
1156
|
+
};
|
|
1157
|
+
if (typeof window !== "undefined") window.dispatchEvent(new Event(POLICY_EVENT));
|
|
1158
|
+
}
|
|
1159
|
+
var policy = () => served;
|
|
1110
1160
|
var US = /^(America\/(New_York|Chicago|Denver|Los_Angeles|Phoenix|Anchorage|Adak|Boise|Detroit|Juneau|Sitka|Nome|Yakutat|Menominee|Metlakatla|Indiana\/.*|Kentucky\/.*|North_Dakota\/.*)|Pacific\/Honolulu|US\/.*)$/;
|
|
1111
1161
|
function gpc() {
|
|
1112
1162
|
if (typeof navigator === "undefined") return false;
|
|
@@ -1119,6 +1169,7 @@ function refused() {
|
|
|
1119
1169
|
return gpc() || dnt === "1" || dnt === "yes";
|
|
1120
1170
|
}
|
|
1121
1171
|
function region() {
|
|
1172
|
+
if (served) return served.mode;
|
|
1122
1173
|
try {
|
|
1123
1174
|
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone ?? "";
|
|
1124
1175
|
return US.test(zone) ? "opt-out" : "opt-in";
|
|
@@ -1127,23 +1178,28 @@ function region() {
|
|
|
1127
1178
|
}
|
|
1128
1179
|
}
|
|
1129
1180
|
function stored() {
|
|
1130
|
-
|
|
1181
|
+
if (get(CONSENT_COOKIE) === void 0) return false;
|
|
1182
|
+
return !served || get(CONSENT_VERSION_COOKIE) === String(served.version);
|
|
1131
1183
|
}
|
|
1132
1184
|
function read2() {
|
|
1133
|
-
const kept = get(CONSENT_COOKIE);
|
|
1134
|
-
const on = kept !== void 0 ? kept.split(",") : region() === "opt-in"
|
|
1185
|
+
const kept = stored() ? get(CONSENT_COOKIE) : void 0;
|
|
1186
|
+
const on = kept !== void 0 ? kept.split(",") : served ? ["analytics", "marketing", "ads"].filter((k) => served.defaults[k]) : region() === "opt-in" ? [] : gpc() ? ["analytics"] : ["analytics", "marketing", "ads"];
|
|
1135
1187
|
const has = (k) => on.includes(k);
|
|
1136
1188
|
return { analytics: has("analytics"), marketing: has("marketing") && !gpc(), ads: has("ads") && !gpc() };
|
|
1137
1189
|
}
|
|
1138
1190
|
function asks() {
|
|
1139
1191
|
return typeof document !== "undefined" && region() === "opt-in" && !stored();
|
|
1140
1192
|
}
|
|
1193
|
+
function notices() {
|
|
1194
|
+
return typeof document !== "undefined" && region() === "opt-out" && !stored();
|
|
1195
|
+
}
|
|
1141
1196
|
function render(c) {
|
|
1142
1197
|
return ["analytics", "marketing", "ads"].filter((k) => c[k]).join(",");
|
|
1143
1198
|
}
|
|
1144
1199
|
function save(c) {
|
|
1145
1200
|
const out = { analytics: c.analytics, marketing: c.marketing && !gpc(), ads: c.ads && !gpc() };
|
|
1146
1201
|
set(CONSENT_COOKIE, render(out), 395);
|
|
1202
|
+
set(CONSENT_VERSION_COOKIE, String(served?.version ?? 0), 395);
|
|
1147
1203
|
if (typeof window !== "undefined") window.dispatchEvent(new Event(CONSENT_EVENT));
|
|
1148
1204
|
}
|
|
1149
1205
|
var acceptAll = () => save({ analytics: true, marketing: true, ads: true });
|
|
@@ -1191,17 +1247,6 @@ function touch(c) {
|
|
|
1191
1247
|
}
|
|
1192
1248
|
return out;
|
|
1193
1249
|
}
|
|
1194
|
-
var SITE_KEY = Object.freeze({
|
|
1195
|
-
"hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
1196
|
-
"www.hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
1197
|
-
"hanzo.app": "pk-wlnXN2a9_vmCm60yTFtQ629Q8TyuaxBNZbY1RWT72gQ",
|
|
1198
|
-
"hanzo.team": "pk-NCzD2FiHpZv8KUpkCX4olT1LJOJsMxBC_Z8NkiQsOFQ",
|
|
1199
|
-
"pay.hanzo.ai": "pk-eX6kv7JZNoiYn1WkeJH3tT_8OvkVYScmCXnLMwxTKf8",
|
|
1200
|
-
"platform.hanzo.ai": "pk-My1RpZLEUnTj8vAdPbWKYdDUuhxZJ4dVjHcwjZN4rZ8",
|
|
1201
|
-
"docs.hanzo.ai": "pk-jukhtjMT2ymoeBDAeFjINQWlBv-v9sNn1TPztiCrrwk",
|
|
1202
|
-
"hanzo.bot": "pk-W5d7Mn7ZukT7igyscIy6Pqe8JpA0Ge604Yn4xNR4JCU",
|
|
1203
|
-
"cloud.hanzo.ai": "pk-RAfEGHPoNdCEU9fnA_cPd_Xo9Tci44rlYQV9xuJ1Ob0"
|
|
1204
|
-
});
|
|
1205
1250
|
var page = () => window;
|
|
1206
1251
|
var tags = [];
|
|
1207
1252
|
var configured = false;
|
|
@@ -1217,6 +1262,21 @@ function settled() {
|
|
|
1217
1262
|
function flush() {
|
|
1218
1263
|
if (settled() || leaving) held.splice(0).forEach((send) => send());
|
|
1219
1264
|
}
|
|
1265
|
+
function ready(limit = 3e3) {
|
|
1266
|
+
if (typeof window === "undefined") return Promise.resolve();
|
|
1267
|
+
const start2 = Date.now();
|
|
1268
|
+
const meta = () => {
|
|
1269
|
+
const fbq = page().fbq;
|
|
1270
|
+
return ![...loaded].some((k) => k.startsWith("meta:")) || typeof fbq?.callMethod === "function";
|
|
1271
|
+
};
|
|
1272
|
+
return new Promise((resolve) => {
|
|
1273
|
+
const tick = () => {
|
|
1274
|
+
if (configured && settled() && meta() || Date.now() - start2 >= limit) return resolve();
|
|
1275
|
+
setTimeout(tick, 100);
|
|
1276
|
+
};
|
|
1277
|
+
tick();
|
|
1278
|
+
});
|
|
1279
|
+
}
|
|
1220
1280
|
function script(src, onload, onerror) {
|
|
1221
1281
|
const s = document.createElement("script");
|
|
1222
1282
|
s.async = true;
|
|
@@ -1380,7 +1440,7 @@ function start(o = {}) {
|
|
|
1380
1440
|
const base = (o.base ?? "https://api.hanzo.ai").replace(/\/$/, "");
|
|
1381
1441
|
const q = new URLSearchParams();
|
|
1382
1442
|
const host = o.host ?? window.location.hostname;
|
|
1383
|
-
const key = o.key ??
|
|
1443
|
+
const key = o.key ?? siteKey(host);
|
|
1384
1444
|
if (key) q.set("key", key);
|
|
1385
1445
|
q.set("host", host);
|
|
1386
1446
|
const answer = (list) => {
|
|
@@ -1391,6 +1451,7 @@ function start(o = {}) {
|
|
|
1391
1451
|
const cap = setTimeout(() => answer([]), 3e3);
|
|
1392
1452
|
fetch(`${base}/v1/project/tags?${q}`).then((r) => r.ok ? r.json() : { tags: [] }).then((j) => {
|
|
1393
1453
|
clearTimeout(cap);
|
|
1454
|
+
serve(j.consent);
|
|
1394
1455
|
answer(Array.isArray(j.tags) ? j.tags : []);
|
|
1395
1456
|
}).catch(() => {
|
|
1396
1457
|
clearTimeout(cap);
|
|
@@ -1594,6 +1655,6 @@ var COHORTS = {
|
|
|
1594
1655
|
* curl -fsSL https://unpkg.com/@hanzo/event/src/anon.js -o apps/analytics/anon.js
|
|
1595
1656
|
*/
|
|
1596
1657
|
|
|
1597
|
-
export { Analytics, CLICK_IDS, COHORTS, CONSENT_COOKIE, CONSENT_EVENT, GOALS, LINK_PARAMS, ORG_DOMAIN, ORG_KEY, SITE_KEY, VERSION, acceptAll, asks, capture as captureClick, commerceItem, createAnalytics, deriveChannel, digest, exceptionEntry, exceptionProperties, fingerprint, framesFromStack, getCohort, getFirstTouch, gpc, hasAttribution, hostOf, isoWeek, keyFor, keyForPage, linkUrl, mirror, orgOf, parseAttribution, reach, read2 as readConsent, readLink, redactSecrets, refused, region, rejectAll, render as renderConsent, resetClients, save as saveConsent, scrubPII, scrubText, start as startTags, stored as storedConsent, stripLink, touch, track, hzUuidv7 as uuidv7, uuidv7Time, visit, worth };
|
|
1658
|
+
export { Analytics, CLICK_IDS, COHORTS, CONSENT_COOKIE, CONSENT_EVENT, CONSENT_VERSION_COOKIE, GOALS, LINK_PARAMS, ORG_DOMAIN, ORG_KEY, POLICY_EVENT, SITE_KEY, VERSION, acceptAll, asks, capture as captureClick, commerceItem, policy as consentPolicy, createAnalytics, deriveChannel, digest, exceptionEntry, exceptionProperties, fingerprint, framesFromStack, getCohort, getFirstTouch, gpc, hasAttribution, hostOf, isoWeek, keyFor, keyForPage, linkUrl, mirror, notices, orgOf, parseAttribution, reach, read2 as readConsent, readLink, redactSecrets, refused, region, rejectAll, render as renderConsent, resetClients, save as saveConsent, scrubPII, scrubText, serve as serveConsent, siteKey, start as startTags, stored as storedConsent, stripLink, ready as tagsReady, touch, track, hzUuidv7 as uuidv7, uuidv7Time, visit, worth };
|
|
1598
1659
|
//# sourceMappingURL=index.mjs.map
|
|
1599
1660
|
//# sourceMappingURL=index.mjs.map
|