Skip to content

Commit 571b372

Browse files
committed
Run npm run build
1 parent e1b021e commit 571b372

36 files changed

+176
-104
lines changed

dist/latest/auto-events.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/latest/cloudflare.js

Lines changed: 63 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* Simple Analytics - Privacy friendly analytics (docs.simpleanalytics.com/script; 2023-05-03; 0dec; v11) */
1+
/* Simple Analytics - Privacy-first analytics (docs.simpleanalytics.com/script; 2025-06-13; dd16; v12) */
22
/* eslint-env browser */
33

44
(function (
@@ -112,8 +112,8 @@
112112
return Array.isArray(csv)
113113
? csv
114114
: isString(csv) && csv.length
115-
? csv.split(/, ?/)
116-
: [];
115+
? csv.split(/, ?/)
116+
: [];
117117
};
118118

119119
var isObject = function (object) {
@@ -193,8 +193,8 @@
193193
attr(scriptElement, namespaceText) ||
194194
defaultNamespace;
195195

196-
var metadataObject = window[namespace + "_metadata"];
197196
var appendMetadata = function (metadata, data) {
197+
var metadataObject = window[namespace + "_metadata"];
198198
if (isObject(metadataObject)) metadata = assign(metadata, metadataObject);
199199
var metadataCollectorFunction = window[metadataCollector];
200200
if (!isFunction(metadataCollectorFunction)) return metadata;
@@ -218,9 +218,9 @@
218218
overwriteOptions.strictUtm ||
219219
attr(scriptElement, "strict-utm") == trueText;
220220

221-
var getQueryParams = function (ignoreSource) {
221+
var getQueryParams = function (ignoreSource, overwriteSearch) {
222222
return (
223-
loc.search
223+
(overwriteSearch || loc.search)
224224
.slice(1)
225225
.split("&")
226226
.filter(function (keyValue) {
@@ -433,12 +433,13 @@
433433
// PAYLOAD FOR BOTH PAGE VIEWS AND EVENTS
434434
//
435435

436+
var phantom = window.phantom;
436437
var bot =
437438
nav.webdriver ||
438439
window.__nightmare ||
439440
window.callPhantom ||
440441
window._phantom ||
441-
window.phantom ||
442+
(phantom && !phantom.solana) ||
442443
window.__polypane ||
443444
window._bot ||
444445
isBotAgent ||
@@ -512,8 +513,12 @@
512513
var lastSendPath;
513514

514515
var getReferrer = function () {
516+
// Customers can overwrite their referrer, here we check for that
517+
var overwrittenReferrer =
518+
overwriteOptions.referrer || attr(scriptElement, "referrer");
519+
515520
return (
516-
(doc.referrer || "")
521+
(overwrittenReferrer || doc.referrer || "")
517522
.replace(locationHostname, definedHostname)
518523
.replace(/^https?:\/\/((m|l|w{2,3}([0-9]+)?)\.)?([^?#]+)(.*)$/, "$4")
519524
.replace(/^([^/]+)$/, "$1") || undefinedVar
@@ -554,7 +559,12 @@
554559
// sendData will assign payload to request
555560
sendData(append, undefinedVar, trueVar);
556561
} else {
557-
nav.sendBeacon(fullApiUrl + "/append", stringify(append));
562+
try {
563+
nav.sendBeacon.bind(nav)(fullApiUrl + "/append", stringify(append));
564+
} catch (e) {
565+
// Fallback for browsers throwing "Illegal invocation" when the URL is invalid
566+
sendData(append, undefinedVar, trueVar);
567+
}
558568
}
559569
};
560570

@@ -651,21 +661,26 @@
651661
isPushState,
652662
deleteSourceInfo,
653663
sameSite,
654-
metadata
664+
query,
665+
metadata,
666+
callback
655667
) {
656668
if (isPushState) sendOnLeave("" + payload.page_id, trueVar);
657669
if (collectDataOnLeave) payload.page_id = uuid();
658670

659671
var currentPage = definedHostname + getPath();
660672

661-
sendData({
662-
id: payload.page_id,
663-
type: pageviewText,
664-
referrer: !deleteSourceInfo || sameSite ? referrer : null,
665-
query: getQueryParams(deleteSourceInfo),
673+
sendData(
674+
{
675+
id: payload.page_id,
676+
type: pageviewText,
677+
referrer: !deleteSourceInfo || sameSite ? referrer : null,
678+
query: query || getQueryParams(deleteSourceInfo),
666679

667-
metadata: stringify(metadata),
668-
});
680+
metadata: stringify(metadata),
681+
},
682+
callback
683+
);
669684

670685
previousReferrer = referrer;
671686
referrer = currentPage;
@@ -675,7 +690,21 @@
675690

676691
var sameSite, userNavigated;
677692

678-
var pageview = function (isPushState, pathOverwrite, metadata) {
693+
var pageview = function (
694+
isPushState,
695+
pathOverwrite,
696+
metadata,
697+
callbackRaw
698+
) {
699+
if (!callbackRaw && isFunction(metadata)) callbackRaw = metadata;
700+
var callback = isFunction(callbackRaw) ? callbackRaw : function () {};
701+
var querySearch;
702+
if (isString(pathOverwrite) && pathOverwrite.indexOf("?") > -1) {
703+
// keep query from manual path
704+
var parts = pathOverwrite.split("?");
705+
pathOverwrite = parts.shift();
706+
querySearch = "?" + parts.join("?");
707+
}
679708
// Obfuscate personal data in URL by dropping the search and hash
680709
var path = getPath(pathOverwrite);
681710

@@ -738,7 +767,10 @@
738767
: falseVar;
739768

740769
// We set unique variable based on pushstate or back navigation, if no match we check the referrer
741-
page.unique = isPushState || userNavigated ? falseVar : !sameSite;
770+
page.unique =
771+
/__cf_/.test(getReferrer()) || isPushState || userNavigated
772+
? falseVar
773+
: !sameSite;
742774

743775
metadata = appendMetadata(metadata, {
744776
type: pageviewText,
@@ -747,11 +779,15 @@
747779

748780
var triggerSendPageView = function () {
749781
fetchedHighEntropyValues = trueVar;
782+
var delSrc =
783+
isPushState || userNavigated || !collectMetricByString("r");
750784
sendPageView(
751785
isPushState,
752-
isPushState || userNavigated || !collectMetricByString("r"), // r = referrers
786+
delSrc, // r = referrers
753787
sameSite,
754-
metadata
788+
querySearch ? getQueryParams(delSrc, querySearch) : undefinedVar,
789+
metadata,
790+
callback
755791
);
756792
};
757793

@@ -841,11 +877,11 @@
841877
}
842878

843879
if (autoCollect) pageview();
844-
else {
845-
window.sa_pageview = function (path, metadata) {
846-
pageview(0, path, metadata);
847-
};
848-
}
880+
881+
window.sa_pageview = function (path, metadata, callback) {
882+
pageview(0, path, metadata, callback);
883+
};
884+
849885

850886
/////////////////////
851887
// EVENTS
@@ -938,6 +974,6 @@
938974
{"hostname":INSTALL_OPTIONS.hostname,"collectDnt":typeof INSTALL_OPTIONS.collect_dnt === 'boolean' ? INSTALL_OPTIONS.collect_dnt : null,"mode":INSTALL_OPTIONS.hash_mode ? 'hash' : 'normal',"strictUtm":INSTALL_OPTIONS.advanced_settings_toggle && INSTALL_OPTIONS.strict_utm,"allowParams":INSTALL_OPTIONS.advanced_settings_toggle && INSTALL_OPTIONS.allow_url_parameters,"nonUniqueHostnames":INSTALL_OPTIONS.advanced_settings_toggle && INSTALL_OPTIONS.non_unique_hostnames,"ignorePages":INSTALL_OPTIONS.advanced_settings_toggle && INSTALL_OPTIONS.ignore_pages,"namespace":INSTALL_OPTIONS.overwrite_namespace && INSTALL_OPTIONS.namespace},
939975
INSTALL_OPTIONS.custom_domain || "queue.simpleanalyticscdn.com",
940976
"",
941-
"cloudflare_11",
977+
"cloudflare_12",
942978
"sa"
943979
);

0 commit comments

Comments
 (0)