From 56b485f2e618d52b3e726e26311f9c8da02b5933 Mon Sep 17 00:00:00 2001
From: Martin DONADIEU <martindonadieu@gmail.com>
Date: Fri, 13 Aug 2021 14:13:25 +0200
Subject: [PATCH] feat: add variant local (#1218)

* Update plausible.js

* feat: add new variant

* feat: add allow-localhost

* Update tracker.ex

* Update compile.js

* Update plausible.js

* Update tracker.ex

* Update compile.js

* Update plausible.js
---
 lib/plausible_web/plugs/tracker.ex | 2 +-
 tracker/compile.js                 | 2 +-
 tracker/src/plausible.js           | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/plausible_web/plugs/tracker.ex b/lib/plausible_web/plugs/tracker.ex
index 54f0f547..8b7e3b60 100644
--- a/lib/plausible_web/plugs/tracker.ex
+++ b/lib/plausible_web/plugs/tracker.ex
@@ -3,7 +3,7 @@ defmodule PlausibleWeb.Tracker do
   use Agent
 
   custom_script_name = Application.get_env(:plausible, :custom_script_name)
-  base_variants = ["hash", "outbound-links", "exclusions", "compat"]
+  base_variants = ["hash", "outbound-links", "exclusions", "compat", "local"]
   base_filenames = ["plausible", custom_script_name]
 
   # Generates Power Set of all variants
diff --git a/tracker/compile.js b/tracker/compile.js
index 511ab31f..fbffbe9b 100644
--- a/tracker/compile.js
+++ b/tracker/compile.js
@@ -16,7 +16,7 @@ function compilefile(input, output, templateVars = {}) {
   fs.writeFileSync(output, result.code)
 }
 
-const base_variants = ["hash", "outbound-links", "exclusions", "compat"]
+const base_variants = ["hash", "outbound-links", "exclusions", "compat", "local"]
 const variants = [...g.clone.powerSet(base_variants)].filter(a => a.length > 0).map(a => a.sort());
 
 compilefile(relPath('src/plausible.js'), relPath('../priv/tracker/js/plausible.js'))
diff --git a/tracker/src/plausible.js b/tracker/src/plausible.js
index f1a58cb9..4ca8a906 100644
--- a/tracker/src/plausible.js
+++ b/tracker/src/plausible.js
@@ -33,7 +33,9 @@
 
 
   function trigger(eventName, options) {
+    {{#if !local}}
     if (/^localhost$|^127(\.[0-9]+){0,2}\.[0-9]+$|^\[::1?\]$/.test(location.hostname) || location.protocol === 'file:') return warn('localhost');
+    {{/if}}
     if (window.phantom || window._phantom || window.__nightmare || window.navigator.webdriver || window.Cypress) return;
     if (plausible_ignore=="true") return warn('localStorage flag')
     {{#if exclusions}}
-- 
GitLab