@hanzo/event 0.3.50 → 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/index.cjs +67 -21
- 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 +62 -22
- 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 +41 -10
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.mjs +41 -10
- package/dist/react.mjs.map +1 -1
- package/dist/tags.d.ts +0 -7
- 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/index.ts +4 -4
- package/src/link.test.ts +4 -3
- package/src/org.test.ts +25 -5
- package/src/org.ts +38 -0
- package/src/react.tsx +6 -2
- package/src/tags.ts +5 -26
package/dist/org.d.ts
CHANGED
|
@@ -57,6 +57,16 @@ export declare const ORG_DOMAIN: Readonly<Record<string, readonly string[]>>;
|
|
|
57
57
|
* recreate a project, move BOTH.
|
|
58
58
|
*/
|
|
59
59
|
export declare const ORG_KEY: Keyring;
|
|
60
|
+
/**
|
|
61
|
+
* The publishable key of each site's project, which is how cloud finds the site's
|
|
62
|
+
* tag set and the project its events are filed under. Each site is ONE project with its
|
|
63
|
+
* own key. A `pk-` is public by design (it ships in every page); it names a site,
|
|
64
|
+
* never a platform id. A host absent here falls back to its org's key for events and
|
|
65
|
+
* has no tag config unless `start` is given a key.
|
|
66
|
+
*/
|
|
67
|
+
export declare const SITE_KEY: Readonly<Record<string, string>>;
|
|
68
|
+
/** The project key of the site a host is: its own entry, `www.` stripped, a `*.hanzo.app` site under hanzo.app. */
|
|
69
|
+
export declare function siteKey(host: string): string | undefined;
|
|
60
70
|
/**
|
|
61
71
|
* The org that owns a host, or undefined when no brand claims it.
|
|
62
72
|
*
|
package/dist/org.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,mCAAmC;AACnC,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAiCjE,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,OAIpB,CAAA;
|
|
1
|
+
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../src/org.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,mCAAmC;AACnC,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAiCjE,CAAA;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,OAAO,EAAE,OAIpB,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBpD,CAAA;AAEF,mHAAmH;AACnH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxD;AAWD;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CActD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAiB,GAAG,MAAM,GAAG,SAAS,CAWnF;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,OAAO,GAAE,OAAiB,GAAG,MAAM,GAAG,SAAS,CAGzE"}
|
package/dist/react.cjs
CHANGED
|
@@ -110,6 +110,30 @@ var ORG_KEY = Object.freeze({
|
|
|
110
110
|
lux: "pk-gUZp6ZVfhJzSwK-rb4oLbVkpCnMBx5uSCpxf_5yEhQk",
|
|
111
111
|
zoo: "pk-3TKpKnERV9AQSsBUERWkZejC1O1mUxc1jRzsP3MPbs4"
|
|
112
112
|
});
|
|
113
|
+
var SITE_KEY = Object.freeze({
|
|
114
|
+
"hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
115
|
+
"www.hanzo.ai": "pk-CmfLA2K6kvsPflrS9DSkt06H_kSoQB_21sjedt6VJdc",
|
|
116
|
+
"hanzo.app": "pk-wlnXN2a9_vmCm60yTFtQ629Q8TyuaxBNZbY1RWT72gQ",
|
|
117
|
+
"hanzo.team": "pk-NCzD2FiHpZv8KUpkCX4olT1LJOJsMxBC_Z8NkiQsOFQ",
|
|
118
|
+
"pay.hanzo.ai": "pk-eX6kv7JZNoiYn1WkeJH3tT_8OvkVYScmCXnLMwxTKf8",
|
|
119
|
+
"platform.hanzo.ai": "pk-My1RpZLEUnTj8vAdPbWKYdDUuhxZJ4dVjHcwjZN4rZ8",
|
|
120
|
+
"docs.hanzo.ai": "pk-jukhtjMT2ymoeBDAeFjINQWlBv-v9sNn1TPztiCrrwk",
|
|
121
|
+
"hanzo.bot": "pk-W5d7Mn7ZukT7igyscIy6Pqe8JpA0Ge604Yn4xNR4JCU",
|
|
122
|
+
"hanzo.chat": "pk-ATxWeB2jNyRSxDgqnkGoDj3CCbzrmTxSktUh9zlrO-E",
|
|
123
|
+
"hanzo.id": "pk-_GVF3KlaqprlPHDumBMRFeFU1lIGOaarQfgimNVDIo8",
|
|
124
|
+
"hanzo.industries": "pk-Vh1wvL2HqIAv9qpVvmrznTI9uMHrTD-jyIC-vnlBsgY",
|
|
125
|
+
"hanzo.market": "pk-DN3xQFa0H61epUVg9OkiOYLzCdteNt9hE6f-S-ednjQ",
|
|
126
|
+
"hanzo.network": "pk-YJ2eiA_7ckLStMPte8Ar8FsmRp_ycmeIeRbpGprZYmM",
|
|
127
|
+
"hanzo.agency": "pk-26a2clOaJFe24aKJZ0PkI-GWR9F4EEa8rthHzgy_Efw",
|
|
128
|
+
"console.hanzo.ai": "pk-oFNXoiO1wOD8PqGdHYyiSq6jaNCdrd7TpztGpwM2ZiQ",
|
|
129
|
+
"admin.hanzo.ai": "pk-RYZwxkomW-tlAnEu2DKo_kAzcxFbSF2YiYcsUY48QL0",
|
|
130
|
+
"bot.hanzo.ai": "pk-W5d7Mn7ZukT7igyscIy6Pqe8JpA0Ge604Yn4xNR4JCU",
|
|
131
|
+
"cloud.hanzo.ai": "pk-RAfEGHPoNdCEU9fnA_cPd_Xo9Tci44rlYQV9xuJ1Ob0"
|
|
132
|
+
});
|
|
133
|
+
function siteKey(host) {
|
|
134
|
+
const h = normalize(host).replace(/^www\./, "");
|
|
135
|
+
return SITE_KEY[h] ?? (h.endsWith(".hanzo.app") ? SITE_KEY["hanzo.app"] : void 0);
|
|
136
|
+
}
|
|
113
137
|
var PUBLISHABLE = "pk-";
|
|
114
138
|
var normalize = (host) => host.trim().toLowerCase().replace(/\.$/, "").split(":")[0] ?? "";
|
|
115
139
|
function orgOf(host) {
|
|
@@ -128,6 +152,10 @@ function orgOf(host) {
|
|
|
128
152
|
return best;
|
|
129
153
|
}
|
|
130
154
|
function keyFor(host, keyring = ORG_KEY) {
|
|
155
|
+
if (keyring === ORG_KEY) {
|
|
156
|
+
const site = siteKey(host);
|
|
157
|
+
if (site) return site;
|
|
158
|
+
}
|
|
131
159
|
const org = orgOf(host);
|
|
132
160
|
if (!org) return void 0;
|
|
133
161
|
const key = keyring[org];
|
|
@@ -623,7 +651,7 @@ function stripLink(href) {
|
|
|
623
651
|
}
|
|
624
652
|
|
|
625
653
|
// package.json
|
|
626
|
-
var version = "0.3.
|
|
654
|
+
var version = "0.3.52";
|
|
627
655
|
|
|
628
656
|
// src/version.ts
|
|
629
657
|
var VERSION = version;
|
|
@@ -994,18 +1022,13 @@ function get(name) {
|
|
|
994
1022
|
|
|
995
1023
|
// src/consent.ts
|
|
996
1024
|
var CONSENT_COOKIE = "hz_consent";
|
|
1025
|
+
var POLICY_EVENT = "hzpolicy";
|
|
997
1026
|
var CONSENT_EVENT = "hzconsent";
|
|
998
1027
|
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\/.*)$/;
|
|
999
1028
|
function gpc() {
|
|
1000
1029
|
if (typeof navigator === "undefined") return false;
|
|
1001
1030
|
return navigator.globalPrivacyControl === true;
|
|
1002
1031
|
}
|
|
1003
|
-
function refused() {
|
|
1004
|
-
if (typeof window === "undefined") return false;
|
|
1005
|
-
const n = navigator;
|
|
1006
|
-
const dnt = n.doNotTrack ?? window.doNotTrack ?? n.msDoNotTrack;
|
|
1007
|
-
return gpc() || dnt === "1" || dnt === "yes";
|
|
1008
|
-
}
|
|
1009
1032
|
function region() {
|
|
1010
1033
|
try {
|
|
1011
1034
|
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone ?? "";
|
|
@@ -1014,9 +1037,13 @@ function region() {
|
|
|
1014
1037
|
return "opt-in";
|
|
1015
1038
|
}
|
|
1016
1039
|
}
|
|
1040
|
+
function stored() {
|
|
1041
|
+
if (get(CONSENT_COOKIE) === void 0) return false;
|
|
1042
|
+
return true;
|
|
1043
|
+
}
|
|
1017
1044
|
function read2() {
|
|
1018
|
-
const kept = get(CONSENT_COOKIE);
|
|
1019
|
-
const on = kept !== void 0 ? kept.split(",") : region() === "opt-in"
|
|
1045
|
+
const kept = stored() ? get(CONSENT_COOKIE) : void 0;
|
|
1046
|
+
const on = kept !== void 0 ? kept.split(",") : region() === "opt-in" ? [] : gpc() ? ["analytics"] : ["analytics", "marketing", "ads"];
|
|
1020
1047
|
const has = (k) => on.includes(k);
|
|
1021
1048
|
return { analytics: has("analytics"), marketing: has("marketing") && !gpc(), ads: has("ads") && !gpc() };
|
|
1022
1049
|
}
|
|
@@ -1080,7 +1107,11 @@ var ErrorBoundary = class extends react.Component {
|
|
|
1080
1107
|
ErrorBoundary.contextType = Ctx;
|
|
1081
1108
|
var listen = (on) => {
|
|
1082
1109
|
window.addEventListener(CONSENT_EVENT, on);
|
|
1083
|
-
|
|
1110
|
+
window.addEventListener(POLICY_EVENT, on);
|
|
1111
|
+
return () => {
|
|
1112
|
+
window.removeEventListener(CONSENT_EVENT, on);
|
|
1113
|
+
window.removeEventListener(POLICY_EVENT, on);
|
|
1114
|
+
};
|
|
1084
1115
|
};
|
|
1085
1116
|
function useConsent() {
|
|
1086
1117
|
const kept = react.useSyncExternalStore(listen, () => render(read2()), () => "");
|