Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

gatsby-plugin-statsy

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gatsby-plugin-statsy - npm Package Compare versions

Comparing version
0.1.4
to
0.1.5
+3
-0
dist/gatsby-node.js

@@ -6,2 +6,5 @@ "use strict";

siteId: Joi.string().description(`Your Statsy site ID`).required(),
mode: Joi.string().description(
"The mode of tracking script. `production` or `development`. Defaults to `auto`."
).default("auto").valid("production", "development", "auto"),
trackingEndpointDomain: Joi.string().description(

@@ -8,0 +11,0 @@ `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/gatsby-node.ts"],"sourcesContent":["// @ts-check\nimport type { GatsbyNode } from \"gatsby\";\n/**\n * @type {import('gatsby').GatsbyNode[\"pluginOptionsSchema\"]}\n */\nconst pluginOptionsSchema: GatsbyNode[\"pluginOptionsSchema\"] = ({ Joi }) =>\n Joi.object({\n siteId: Joi.string().description(`Your Statsy site ID`).required(),\n trackingEndpointDomain: Joi.string()\n .description(\n `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`\n )\n .default(\"statsy.observer\"),\n autoTrackPageviews: Joi.boolean()\n .description(\n `Whether to automatically track page views. Defaults to true.`\n )\n .default(true),\n exclude: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to exclude any path from the tracking system, you can add it (one or more) to this optional array as glob expressions.`\n )\n .default([]),\n removeQueryParams: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to remove any query param from the tracking system, you can add it (one or more) to this optional array.`\n )\n .default([]),\n });\n\nexports.pluginOptionsSchema = pluginOptionsSchema;\n"],"mappings":";;;AAKA,IAAM,sBAAyD,CAAC,EAAE,IAAI,MACpE,IAAI,OAAO;AAAA,EACT,QAAQ,IAAI,OAAO,EAAE,YAAY,qBAAqB,EAAE,SAAS;AAAA,EACjE,wBAAwB,IAAI,OAAO,EAChC;AAAA,IACC;AAAA,EACF,EACC,QAAQ,iBAAiB;AAAA,EAC5B,oBAAoB,IAAI,QAAQ,EAC7B;AAAA,IACC;AAAA,EACF,EACC,QAAQ,IAAI;AAAA,EACf,SAAS,IAAI,MAAM,EAChB,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,IACC;AAAA,EACF,EACC,QAAQ,CAAC,CAAC;AAAA,EACb,mBAAmB,IAAI,MAAM,EAC1B,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,IACC;AAAA,EACF,EACC,QAAQ,CAAC,CAAC;AACf,CAAC;AAEH,QAAQ,sBAAsB;","names":[]}
{"version":3,"sources":["../src/gatsby-node.ts"],"sourcesContent":["// @ts-check\nimport type { GatsbyNode } from \"gatsby\";\n/**\n * @type {import('gatsby').GatsbyNode[\"pluginOptionsSchema\"]}\n */\nconst pluginOptionsSchema: GatsbyNode[\"pluginOptionsSchema\"] = ({ Joi }) =>\n Joi.object({\n siteId: Joi.string().description(`Your Statsy site ID`).required(),\n mode: Joi.string()\n .description(\n \"The mode of tracking script. `production` or `development`. Defaults to `auto`.\"\n )\n .default(\"auto\")\n .valid(\"production\", \"development\", \"auto\"),\n trackingEndpointDomain: Joi.string()\n .description(\n `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`\n )\n .default(\"statsy.observer\"),\n autoTrackPageviews: Joi.boolean()\n .description(\n `Whether to automatically track page views. Defaults to true.`\n )\n .default(true),\n exclude: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to exclude any path from the tracking system, you can add it (one or more) to this optional array as glob expressions.`\n )\n .default([]),\n removeQueryParams: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to remove any query param from the tracking system, you can add it (one or more) to this optional array.`\n )\n .default([]),\n });\n\nexports.pluginOptionsSchema = pluginOptionsSchema;\n"],"mappings":";;;AAKA,IAAM,sBAAyD,CAAC,EAAE,IAAI,MACpE,IAAI,OAAO;AAAA,EACT,QAAQ,IAAI,OAAO,EAAE,YAAY,qBAAqB,EAAE,SAAS;AAAA,EACjE,MAAM,IAAI,OAAO,EACd;AAAA,IACC;AAAA,EACF,EACC,QAAQ,MAAM,EACd,MAAM,cAAc,eAAe,MAAM;AAAA,EAC5C,wBAAwB,IAAI,OAAO,EAChC;AAAA,IACC;AAAA,EACF,EACC,QAAQ,iBAAiB;AAAA,EAC5B,oBAAoB,IAAI,QAAQ,EAC7B;AAAA,IACC;AAAA,EACF,EACC,QAAQ,IAAI;AAAA,EACf,SAAS,IAAI,MAAM,EAChB,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,IACC;AAAA,EACF,EACC,QAAQ,CAAC,CAAC;AAAA,EACb,mBAAmB,IAAI,MAAM,EAC1B,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,IACC;AAAA,EACF,EACC,QAAQ,CAAC,CAAC;AACf,CAAC;AAEH,QAAQ,sBAAsB;","names":[]}

@@ -11,2 +11,5 @@ var __getOwnPropNames = Object.getOwnPropertyNames;

siteId: Joi.string().description(`Your Statsy site ID`).required(),
mode: Joi.string().description(
"The mode of tracking script. `production` or `development`. Defaults to `auto`."
).default("auto").valid("production", "development", "auto"),
trackingEndpointDomain: Joi.string().description(

@@ -13,0 +16,0 @@ `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/gatsby-node.ts"],"sourcesContent":["// @ts-check\nimport type { GatsbyNode } from \"gatsby\";\n/**\n * @type {import('gatsby').GatsbyNode[\"pluginOptionsSchema\"]}\n */\nconst pluginOptionsSchema: GatsbyNode[\"pluginOptionsSchema\"] = ({ Joi }) =>\n Joi.object({\n siteId: Joi.string().description(`Your Statsy site ID`).required(),\n trackingEndpointDomain: Joi.string()\n .description(\n `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`\n )\n .default(\"statsy.observer\"),\n autoTrackPageviews: Joi.boolean()\n .description(\n `Whether to automatically track page views. Defaults to true.`\n )\n .default(true),\n exclude: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to exclude any path from the tracking system, you can add it (one or more) to this optional array as glob expressions.`\n )\n .default([]),\n removeQueryParams: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to remove any query param from the tracking system, you can add it (one or more) to this optional array.`\n )\n .default([]),\n });\n\nexports.pluginOptionsSchema = pluginOptionsSchema;\n"],"mappings":";;;;;;AAAA;AAAA;AAKA,QAAM,sBAAyD,CAAC,EAAE,IAAI,MACpE,IAAI,OAAO;AAAA,MACT,QAAQ,IAAI,OAAO,EAAE,YAAY,qBAAqB,EAAE,SAAS;AAAA,MACjE,wBAAwB,IAAI,OAAO,EAChC;AAAA,QACC;AAAA,MACF,EACC,QAAQ,iBAAiB;AAAA,MAC5B,oBAAoB,IAAI,QAAQ,EAC7B;AAAA,QACC;AAAA,MACF,EACC,QAAQ,IAAI;AAAA,MACf,SAAS,IAAI,MAAM,EAChB,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,QACC;AAAA,MACF,EACC,QAAQ,CAAC,CAAC;AAAA,MACb,mBAAmB,IAAI,MAAM,EAC1B,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,QACC;AAAA,MACF,EACC,QAAQ,CAAC,CAAC;AAAA,IACf,CAAC;AAEH,YAAQ,sBAAsB;AAAA;AAAA;","names":[]}
{"version":3,"sources":["../src/gatsby-node.ts"],"sourcesContent":["// @ts-check\nimport type { GatsbyNode } from \"gatsby\";\n/**\n * @type {import('gatsby').GatsbyNode[\"pluginOptionsSchema\"]}\n */\nconst pluginOptionsSchema: GatsbyNode[\"pluginOptionsSchema\"] = ({ Joi }) =>\n Joi.object({\n siteId: Joi.string().description(`Your Statsy site ID`).required(),\n mode: Joi.string()\n .description(\n \"The mode of tracking script. `production` or `development`. Defaults to `auto`.\"\n )\n .default(\"auto\")\n .valid(\"production\", \"development\", \"auto\"),\n trackingEndpointDomain: Joi.string()\n .description(\n `Your optional self hosted Statsy domain. If you are using the self hosted version of Statsy, you can set this to your domain.`\n )\n .default(\"statsy.observer\"),\n autoTrackPageviews: Joi.boolean()\n .description(\n `Whether to automatically track page views. Defaults to true.`\n )\n .default(true),\n exclude: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to exclude any path from the tracking system, you can add it (one or more) to this optional array as glob expressions.`\n )\n .default([]),\n removeQueryParams: Joi.array()\n .items(Joi.string())\n .description(\n `If you need to remove any query param from the tracking system, you can add it (one or more) to this optional array.`\n )\n .default([]),\n });\n\nexports.pluginOptionsSchema = pluginOptionsSchema;\n"],"mappings":";;;;;;AAAA;AAAA;AAKA,QAAM,sBAAyD,CAAC,EAAE,IAAI,MACpE,IAAI,OAAO;AAAA,MACT,QAAQ,IAAI,OAAO,EAAE,YAAY,qBAAqB,EAAE,SAAS;AAAA,MACjE,MAAM,IAAI,OAAO,EACd;AAAA,QACC;AAAA,MACF,EACC,QAAQ,MAAM,EACd,MAAM,cAAc,eAAe,MAAM;AAAA,MAC5C,wBAAwB,IAAI,OAAO,EAChC;AAAA,QACC;AAAA,MACF,EACC,QAAQ,iBAAiB;AAAA,MAC5B,oBAAoB,IAAI,QAAQ,EAC7B;AAAA,QACC;AAAA,MACF,EACC,QAAQ,IAAI;AAAA,MACf,SAAS,IAAI,MAAM,EAChB,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,QACC;AAAA,MACF,EACC,QAAQ,CAAC,CAAC;AAAA,MACb,mBAAmB,IAAI,MAAM,EAC1B,MAAM,IAAI,OAAO,CAAC,EAClB;AAAA,QACC;AAAA,MACF,EACC,QAAQ,CAAC,CAAC;AAAA,IACf,CAAC;AAEH,YAAQ,sBAAsB;AAAA;AAAA;","names":[]}

@@ -28,4 +28,24 @@ "use strict";

var import_minimatch = require("minimatch");
function isProduction() {
if (process.env.NODE_ENV === `production`) {
return true;
}
}
function isTest() {
if (process.env.NODE_ENV === `test`) {
return true;
}
}
var onRenderBody = async ({ setHeadComponents, setPostBodyComponents }, pluginOptions) => {
if (process.env.NODE_ENV !== `production` && process.env.NODE_ENV !== `test`)
let { mode } = pluginOptions;
if (!mode || mode === "auto") {
if (isProduction()) {
mode = `production`;
} else if (isTest()) {
mode = `development`;
} else {
mode = `development`;
}
}
if (mode === `development`)
return null;

@@ -32,0 +52,0 @@ const origin = `https://${pluginOptions.trackingEndpointDomain || `statsy.observer`}`;

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/gatsby-ssr.tsx"],"sourcesContent":["import React from \"react\";\nimport type { GatsbySSR } from \"gatsby\";\nimport { Minimatch } from \"minimatch\";\nimport type { MMRegExp } from \"minimatch\";\n\nconst onRenderBody: GatsbySSR[\"onRenderBody\"] = async (\n { setHeadComponents, setPostBodyComponents },\n pluginOptions\n) => {\n if (process.env.NODE_ENV !== `production` && process.env.NODE_ENV !== `test`)\n return null;\n\n const origin = `https://${\n pluginOptions.trackingEndpointDomain || `statsy.observer`\n }`;\n\n const excludeStatsyPaths: MMRegExp[] = [];\n if (pluginOptions.exclude) {\n (pluginOptions.exclude as string[]).map((exclude: string) => {\n const mm = new Minimatch(exclude);\n const regex = mm.makeRe();\n if (regex instanceof RegExp) {\n excludeStatsyPaths.push(regex);\n }\n });\n }\n\n const removeQueryParams: string[] =\n pluginOptions.removeQueryParams as string[];\n\n const eventMiddleware = `\n (function() {\n window.statsy=function(...t){(window.statsyq=window.statsyq||[]).push(t)};\n function statsyEventMiddleware(event) {\n const url = new URL(event.href);\n ${\n excludeStatsyPaths.length > 0 &&\n `\n const excludeStatsyPaths = [${excludeStatsyPaths.join(\",\")}];\n if (event.name === 'pageview') {\n for (const regex of excludeStatsyPaths) {\n\n if (regex.test(url.pathname)) {\n return null;\n }\n }\n }\n `\n }\n\n ${\n removeQueryParams.length > 0 &&\n `\n const removeQueryParams = [\"${removeQueryParams.join('\",\"')}\"];\n\n for (const param of removeQueryParams) {\n url.searchParams.delete(param);\n }\n\n // Update event.url with the cleaned URL\n event.href = url.toString();\n `\n }\n\n console.log({event})\n return event;\n }\n window.statsy.call(window, \"eventMiddleware\", statsyEventMiddleware);\n })();\n `;\n\n if (typeof pluginOptions.autoTrackPageviews === `boolean`) {\n setPostBodyComponents([\n <script\n key=\"statsy-config\"\n dangerouslySetInnerHTML={{\n __html: `window.statsyConfig = {\n autoTrackPageviews: ${pluginOptions.autoTrackPageviews},\n }`,\n }}\n />,\n ]);\n }\n\n setHeadComponents([\n <link rel=\"preconnect\" key=\"preconnect-statsy\" href={origin} />,\n <link rel=\"dns-prefetch\" key=\"dns-prefetch-statsy\" href={origin} />,\n <script\n key=\"script-statsy\"\n src={`${origin}/${pluginOptions.siteId}.js`}\n defer={true}\n />,\n ]);\n\n if (pluginOptions.exclude || pluginOptions.removeQueryParams) {\n setHeadComponents([\n <script\n key=\"gatsby-plugin-statsy-middleware\"\n dangerouslySetInnerHTML={{\n __html: `${eventMiddleware}`,\n }}\n />,\n ]);\n }\n};\n\nexports.onRenderBody = onRenderBody;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAkB;AAElB,uBAA0B;AAG1B,IAAM,eAA0C,OAC9C,EAAE,mBAAmB,sBAAsB,GAC3C,kBACG;AACH,MAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,IAAI,aAAa;AACpE,WAAO;AAET,QAAM,SAAS,WACb,cAAc,0BAA0B;AAG1C,QAAM,qBAAiC,CAAC;AACxC,MAAI,cAAc,SAAS;AACzB,IAAC,cAAc,QAAqB,IAAI,CAAC,YAAoB;AAC3D,YAAM,KAAK,IAAI,2BAAU,OAAO;AAChC,YAAM,QAAQ,GAAG,OAAO;AACxB,UAAI,iBAAiB,QAAQ;AAC3B,2BAAmB,KAAK,KAAK;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,oBACJ,cAAc;AAEhB,QAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,UAMhB,mBAAmB,SAAS,KAC5B;AAAA,0CACgC,mBAAmB,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAa3D,kBAAkB,SAAS,KAC3B;AAAA,0CACgC,kBAAkB,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBpE,MAAI,OAAO,cAAc,uBAAuB,WAAW;AACzD,0BAAsB;AAAA,MACpB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,yBAAyB;AAAA,YACvB,QAAQ;AAAA,kCACgB,cAAc;AAAA;AAAA,UAExC;AAAA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,oBAAkB;AAAA,IAChB,6BAAAA,QAAA,cAAC,UAAK,KAAI,cAAa,KAAI,qBAAoB,MAAM,QAAQ;AAAA,IAC7D,6BAAAA,QAAA,cAAC,UAAK,KAAI,gBAAe,KAAI,uBAAsB,MAAM,QAAQ;AAAA,IACjE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAK,GAAG,UAAU,cAAc;AAAA,QAChC,OAAO;AAAA;AAAA,IACT;AAAA,EACF,CAAC;AAED,MAAI,cAAc,WAAW,cAAc,mBAAmB;AAC5D,sBAAkB;AAAA,MAChB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,yBAAyB;AAAA,YACvB,QAAQ,GAAG;AAAA,UACb;AAAA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,QAAQ,eAAe;","names":["React"]}
{"version":3,"sources":["../src/gatsby-ssr.tsx"],"sourcesContent":["import React from \"react\";\nimport type { GatsbySSR } from \"gatsby\";\nimport { Minimatch } from \"minimatch\";\nimport type { MMRegExp } from \"minimatch\";\n\nfunction isProduction() {\n if (process.env.NODE_ENV === `production`) {\n return true;\n }\n}\n\nfunction isTest() {\n if (process.env.NODE_ENV === `test`) {\n return true;\n }\n}\n\nconst onRenderBody: GatsbySSR[\"onRenderBody\"] = async (\n { setHeadComponents, setPostBodyComponents },\n pluginOptions\n) => {\n let { mode } = pluginOptions;\n\n if (!mode || mode === \"auto\") {\n if (isProduction()) {\n mode = `production`;\n } else if (isTest()) {\n mode = `development`;\n } else {\n mode = `development`;\n }\n }\n\n if (mode === `development`) return null;\n\n const origin = `https://${\n pluginOptions.trackingEndpointDomain || `statsy.observer`\n }`;\n\n const excludeStatsyPaths: MMRegExp[] = [];\n if (pluginOptions.exclude) {\n (pluginOptions.exclude as string[]).map((exclude: string) => {\n const mm = new Minimatch(exclude);\n const regex = mm.makeRe();\n if (regex instanceof RegExp) {\n excludeStatsyPaths.push(regex);\n }\n });\n }\n\n const removeQueryParams: string[] =\n pluginOptions.removeQueryParams as string[];\n\n const eventMiddleware = `\n (function() {\n window.statsy=function(...t){(window.statsyq=window.statsyq||[]).push(t)};\n function statsyEventMiddleware(event) {\n const url = new URL(event.href);\n ${\n excludeStatsyPaths.length > 0 &&\n `\n const excludeStatsyPaths = [${excludeStatsyPaths.join(\",\")}];\n if (event.name === 'pageview') {\n for (const regex of excludeStatsyPaths) {\n\n if (regex.test(url.pathname)) {\n return null;\n }\n }\n }\n `\n }\n\n ${\n removeQueryParams.length > 0 &&\n `\n const removeQueryParams = [\"${removeQueryParams.join('\",\"')}\"];\n\n for (const param of removeQueryParams) {\n url.searchParams.delete(param);\n }\n\n // Update event.url with the cleaned URL\n event.href = url.toString();\n `\n }\n\n console.log({event})\n return event;\n }\n window.statsy.call(window, \"eventMiddleware\", statsyEventMiddleware);\n })();\n `;\n\n if (typeof pluginOptions.autoTrackPageviews === `boolean`) {\n setPostBodyComponents([\n <script\n key=\"statsy-config\"\n dangerouslySetInnerHTML={{\n __html: `window.statsyConfig = {\n autoTrackPageviews: ${pluginOptions.autoTrackPageviews},\n }`,\n }}\n />,\n ]);\n }\n\n setHeadComponents([\n <link rel=\"preconnect\" key=\"preconnect-statsy\" href={origin} />,\n <link rel=\"dns-prefetch\" key=\"dns-prefetch-statsy\" href={origin} />,\n <script\n key=\"script-statsy\"\n src={`${origin}/${pluginOptions.siteId}.js`}\n defer={true}\n />,\n ]);\n\n if (pluginOptions.exclude || pluginOptions.removeQueryParams) {\n setHeadComponents([\n <script\n key=\"gatsby-plugin-statsy-middleware\"\n dangerouslySetInnerHTML={{\n __html: `${eventMiddleware}`,\n }}\n />,\n ]);\n }\n};\n\nexports.onRenderBody = onRenderBody;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mBAAkB;AAElB,uBAA0B;AAG1B,SAAS,eAAe;AACtB,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,WAAO;AAAA,EACT;AACF;AAEA,SAAS,SAAS;AAChB,MAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,WAAO;AAAA,EACT;AACF;AAEA,IAAM,eAA0C,OAC9C,EAAE,mBAAmB,sBAAsB,GAC3C,kBACG;AACH,MAAI,EAAE,KAAK,IAAI;AAEf,MAAI,CAAC,QAAQ,SAAS,QAAQ;AAC5B,QAAI,aAAa,GAAG;AAClB,aAAO;AAAA,IACT,WAAW,OAAO,GAAG;AACnB,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,SAAS;AAAe,WAAO;AAEnC,QAAM,SAAS,WACb,cAAc,0BAA0B;AAG1C,QAAM,qBAAiC,CAAC;AACxC,MAAI,cAAc,SAAS;AACzB,IAAC,cAAc,QAAqB,IAAI,CAAC,YAAoB;AAC3D,YAAM,KAAK,IAAI,2BAAU,OAAO;AAChC,YAAM,QAAQ,GAAG,OAAO;AACxB,UAAI,iBAAiB,QAAQ;AAC3B,2BAAmB,KAAK,KAAK;AAAA,MAC/B;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,oBACJ,cAAc;AAEhB,QAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,UAMhB,mBAAmB,SAAS,KAC5B;AAAA,0CACgC,mBAAmB,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAa3D,kBAAkB,SAAS,KAC3B;AAAA,0CACgC,kBAAkB,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBpE,MAAI,OAAO,cAAc,uBAAuB,WAAW;AACzD,0BAAsB;AAAA,MACpB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,yBAAyB;AAAA,YACvB,QAAQ;AAAA,kCACgB,cAAc;AAAA;AAAA,UAExC;AAAA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,oBAAkB;AAAA,IAChB,6BAAAA,QAAA,cAAC,UAAK,KAAI,cAAa,KAAI,qBAAoB,MAAM,QAAQ;AAAA,IAC7D,6BAAAA,QAAA,cAAC,UAAK,KAAI,gBAAe,KAAI,uBAAsB,MAAM,QAAQ;AAAA,IACjE,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QACJ,KAAK,GAAG,UAAU,cAAc;AAAA,QAChC,OAAO;AAAA;AAAA,IACT;AAAA,EACF,CAAC;AAED,MAAI,cAAc,WAAW,cAAc,mBAAmB;AAC5D,sBAAkB;AAAA,MAChB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,KAAI;AAAA,UACJ,yBAAyB;AAAA,YACvB,QAAQ,GAAG;AAAA,UACb;AAAA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,QAAQ,eAAe;","names":["React"]}

@@ -11,4 +11,24 @@ var __getOwnPropNames = Object.getOwnPropertyNames;

"src/gatsby-ssr.tsx"(exports) {
function isProduction() {
if (process.env.NODE_ENV === `production`) {
return true;
}
}
function isTest() {
if (process.env.NODE_ENV === `test`) {
return true;
}
}
var onRenderBody = async ({ setHeadComponents, setPostBodyComponents }, pluginOptions) => {
if (process.env.NODE_ENV !== `production` && process.env.NODE_ENV !== `test`)
let { mode } = pluginOptions;
if (!mode || mode === "auto") {
if (isProduction()) {
mode = `production`;
} else if (isTest()) {
mode = `development`;
} else {
mode = `development`;
}
}
if (mode === `development`)
return null;

@@ -15,0 +35,0 @@ const origin = `https://${pluginOptions.trackingEndpointDomain || `statsy.observer`}`;

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/gatsby-ssr.tsx"],"sourcesContent":["import React from \"react\";\nimport type { GatsbySSR } from \"gatsby\";\nimport { Minimatch } from \"minimatch\";\nimport type { MMRegExp } from \"minimatch\";\n\nconst onRenderBody: GatsbySSR[\"onRenderBody\"] = async (\n { setHeadComponents, setPostBodyComponents },\n pluginOptions\n) => {\n if (process.env.NODE_ENV !== `production` && process.env.NODE_ENV !== `test`)\n return null;\n\n const origin = `https://${\n pluginOptions.trackingEndpointDomain || `statsy.observer`\n }`;\n\n const excludeStatsyPaths: MMRegExp[] = [];\n if (pluginOptions.exclude) {\n (pluginOptions.exclude as string[]).map((exclude: string) => {\n const mm = new Minimatch(exclude);\n const regex = mm.makeRe();\n if (regex instanceof RegExp) {\n excludeStatsyPaths.push(regex);\n }\n });\n }\n\n const removeQueryParams: string[] =\n pluginOptions.removeQueryParams as string[];\n\n const eventMiddleware = `\n (function() {\n window.statsy=function(...t){(window.statsyq=window.statsyq||[]).push(t)};\n function statsyEventMiddleware(event) {\n const url = new URL(event.href);\n ${\n excludeStatsyPaths.length > 0 &&\n `\n const excludeStatsyPaths = [${excludeStatsyPaths.join(\",\")}];\n if (event.name === 'pageview') {\n for (const regex of excludeStatsyPaths) {\n\n if (regex.test(url.pathname)) {\n return null;\n }\n }\n }\n `\n }\n\n ${\n removeQueryParams.length > 0 &&\n `\n const removeQueryParams = [\"${removeQueryParams.join('\",\"')}\"];\n\n for (const param of removeQueryParams) {\n url.searchParams.delete(param);\n }\n\n // Update event.url with the cleaned URL\n event.href = url.toString();\n `\n }\n\n console.log({event})\n return event;\n }\n window.statsy.call(window, \"eventMiddleware\", statsyEventMiddleware);\n })();\n `;\n\n if (typeof pluginOptions.autoTrackPageviews === `boolean`) {\n setPostBodyComponents([\n <script\n key=\"statsy-config\"\n dangerouslySetInnerHTML={{\n __html: `window.statsyConfig = {\n autoTrackPageviews: ${pluginOptions.autoTrackPageviews},\n }`,\n }}\n />,\n ]);\n }\n\n setHeadComponents([\n <link rel=\"preconnect\" key=\"preconnect-statsy\" href={origin} />,\n <link rel=\"dns-prefetch\" key=\"dns-prefetch-statsy\" href={origin} />,\n <script\n key=\"script-statsy\"\n src={`${origin}/${pluginOptions.siteId}.js`}\n defer={true}\n />,\n ]);\n\n if (pluginOptions.exclude || pluginOptions.removeQueryParams) {\n setHeadComponents([\n <script\n key=\"gatsby-plugin-statsy-middleware\"\n dangerouslySetInnerHTML={{\n __html: `${eventMiddleware}`,\n }}\n />,\n ]);\n }\n};\n\nexports.onRenderBody = onRenderBody;\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,iBAAiB;AAF1B;AAAA;AAKA,QAAM,eAA0C,OAC9C,EAAE,mBAAmB,sBAAsB,GAC3C,kBACG;AACH,UAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,IAAI,aAAa;AACpE,eAAO;AAET,YAAM,SAAS,WACb,cAAc,0BAA0B;AAG1C,YAAM,qBAAiC,CAAC;AACxC,UAAI,cAAc,SAAS;AACzB,QAAC,cAAc,QAAqB,IAAI,CAAC,YAAoB;AAC3D,gBAAM,KAAK,IAAI,UAAU,OAAO;AAChC,gBAAM,QAAQ,GAAG,OAAO;AACxB,cAAI,iBAAiB,QAAQ;AAC3B,+BAAmB,KAAK,KAAK;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH;AAEA,YAAM,oBACJ,cAAc;AAEhB,YAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,UAMhB,mBAAmB,SAAS,KAC5B;AAAA,0CACgC,mBAAmB,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAa3D,kBAAkB,SAAS,KAC3B;AAAA,0CACgC,kBAAkB,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBpE,UAAI,OAAO,cAAc,uBAAuB,WAAW;AACzD,8BAAsB;AAAA,UACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAI;AAAA,cACJ,yBAAyB;AAAA,gBACvB,QAAQ;AAAA,kCACgB,cAAc;AAAA;AAAA,cAExC;AAAA;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAEA,wBAAkB;AAAA,QAChB,oCAAC,UAAK,KAAI,cAAa,KAAI,qBAAoB,MAAM,QAAQ;AAAA,QAC7D,oCAAC,UAAK,KAAI,gBAAe,KAAI,uBAAsB,MAAM,QAAQ;AAAA,QACjE;AAAA,UAAC;AAAA;AAAA,YACC,KAAI;AAAA,YACJ,KAAK,GAAG,UAAU,cAAc;AAAA,YAChC,OAAO;AAAA;AAAA,QACT;AAAA,MACF,CAAC;AAED,UAAI,cAAc,WAAW,cAAc,mBAAmB;AAC5D,0BAAkB;AAAA,UAChB;AAAA,YAAC;AAAA;AAAA,cACC,KAAI;AAAA,cACJ,yBAAyB;AAAA,gBACvB,QAAQ,GAAG;AAAA,cACb;AAAA;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,YAAQ,eAAe;AAAA;AAAA;","names":[]}
{"version":3,"sources":["../src/gatsby-ssr.tsx"],"sourcesContent":["import React from \"react\";\nimport type { GatsbySSR } from \"gatsby\";\nimport { Minimatch } from \"minimatch\";\nimport type { MMRegExp } from \"minimatch\";\n\nfunction isProduction() {\n if (process.env.NODE_ENV === `production`) {\n return true;\n }\n}\n\nfunction isTest() {\n if (process.env.NODE_ENV === `test`) {\n return true;\n }\n}\n\nconst onRenderBody: GatsbySSR[\"onRenderBody\"] = async (\n { setHeadComponents, setPostBodyComponents },\n pluginOptions\n) => {\n let { mode } = pluginOptions;\n\n if (!mode || mode === \"auto\") {\n if (isProduction()) {\n mode = `production`;\n } else if (isTest()) {\n mode = `development`;\n } else {\n mode = `development`;\n }\n }\n\n if (mode === `development`) return null;\n\n const origin = `https://${\n pluginOptions.trackingEndpointDomain || `statsy.observer`\n }`;\n\n const excludeStatsyPaths: MMRegExp[] = [];\n if (pluginOptions.exclude) {\n (pluginOptions.exclude as string[]).map((exclude: string) => {\n const mm = new Minimatch(exclude);\n const regex = mm.makeRe();\n if (regex instanceof RegExp) {\n excludeStatsyPaths.push(regex);\n }\n });\n }\n\n const removeQueryParams: string[] =\n pluginOptions.removeQueryParams as string[];\n\n const eventMiddleware = `\n (function() {\n window.statsy=function(...t){(window.statsyq=window.statsyq||[]).push(t)};\n function statsyEventMiddleware(event) {\n const url = new URL(event.href);\n ${\n excludeStatsyPaths.length > 0 &&\n `\n const excludeStatsyPaths = [${excludeStatsyPaths.join(\",\")}];\n if (event.name === 'pageview') {\n for (const regex of excludeStatsyPaths) {\n\n if (regex.test(url.pathname)) {\n return null;\n }\n }\n }\n `\n }\n\n ${\n removeQueryParams.length > 0 &&\n `\n const removeQueryParams = [\"${removeQueryParams.join('\",\"')}\"];\n\n for (const param of removeQueryParams) {\n url.searchParams.delete(param);\n }\n\n // Update event.url with the cleaned URL\n event.href = url.toString();\n `\n }\n\n console.log({event})\n return event;\n }\n window.statsy.call(window, \"eventMiddleware\", statsyEventMiddleware);\n })();\n `;\n\n if (typeof pluginOptions.autoTrackPageviews === `boolean`) {\n setPostBodyComponents([\n <script\n key=\"statsy-config\"\n dangerouslySetInnerHTML={{\n __html: `window.statsyConfig = {\n autoTrackPageviews: ${pluginOptions.autoTrackPageviews},\n }`,\n }}\n />,\n ]);\n }\n\n setHeadComponents([\n <link rel=\"preconnect\" key=\"preconnect-statsy\" href={origin} />,\n <link rel=\"dns-prefetch\" key=\"dns-prefetch-statsy\" href={origin} />,\n <script\n key=\"script-statsy\"\n src={`${origin}/${pluginOptions.siteId}.js`}\n defer={true}\n />,\n ]);\n\n if (pluginOptions.exclude || pluginOptions.removeQueryParams) {\n setHeadComponents([\n <script\n key=\"gatsby-plugin-statsy-middleware\"\n dangerouslySetInnerHTML={{\n __html: `${eventMiddleware}`,\n }}\n />,\n ]);\n }\n};\n\nexports.onRenderBody = onRenderBody;\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAElB,SAAS,iBAAiB;AAF1B;AAAA;AAKA,aAAS,eAAe;AACtB,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,aAAS,SAAS;AAChB,UAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,eAAO;AAAA,MACT;AAAA,IACF;AAEA,QAAM,eAA0C,OAC9C,EAAE,mBAAmB,sBAAsB,GAC3C,kBACG;AACH,UAAI,EAAE,KAAK,IAAI;AAEf,UAAI,CAAC,QAAQ,SAAS,QAAQ;AAC5B,YAAI,aAAa,GAAG;AAClB,iBAAO;AAAA,QACT,WAAW,OAAO,GAAG;AACnB,iBAAO;AAAA,QACT,OAAO;AACL,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,UAAI,SAAS;AAAe,eAAO;AAEnC,YAAM,SAAS,WACb,cAAc,0BAA0B;AAG1C,YAAM,qBAAiC,CAAC;AACxC,UAAI,cAAc,SAAS;AACzB,QAAC,cAAc,QAAqB,IAAI,CAAC,YAAoB;AAC3D,gBAAM,KAAK,IAAI,UAAU,OAAO;AAChC,gBAAM,QAAQ,GAAG,OAAO;AACxB,cAAI,iBAAiB,QAAQ;AAC3B,+BAAmB,KAAK,KAAK;AAAA,UAC/B;AAAA,QACF,CAAC;AAAA,MACH;AAEA,YAAM,oBACJ,cAAc;AAEhB,YAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,UAMhB,mBAAmB,SAAS,KAC5B;AAAA,0CACgC,mBAAmB,KAAK,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAa3D,kBAAkB,SAAS,KAC3B;AAAA,0CACgC,kBAAkB,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBpE,UAAI,OAAO,cAAc,uBAAuB,WAAW;AACzD,8BAAsB;AAAA,UACpB;AAAA,YAAC;AAAA;AAAA,cACC,KAAI;AAAA,cACJ,yBAAyB;AAAA,gBACvB,QAAQ;AAAA,kCACgB,cAAc;AAAA;AAAA,cAExC;AAAA;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAEA,wBAAkB;AAAA,QAChB,oCAAC,UAAK,KAAI,cAAa,KAAI,qBAAoB,MAAM,QAAQ;AAAA,QAC7D,oCAAC,UAAK,KAAI,gBAAe,KAAI,uBAAsB,MAAM,QAAQ;AAAA,QACjE;AAAA,UAAC;AAAA;AAAA,YACC,KAAI;AAAA,YACJ,KAAK,GAAG,UAAU,cAAc;AAAA,YAChC,OAAO;AAAA;AAAA,QACT;AAAA,MACF,CAAC;AAED,UAAI,cAAc,WAAW,cAAc,mBAAmB;AAC5D,0BAAkB;AAAA,UAChB;AAAA,YAAC;AAAA;AAAA,cACC,KAAI;AAAA,cACJ,yBAAyB;AAAA,gBACvB,QAAQ,GAAG;AAAA,cACb;AAAA;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,YAAQ,eAAe;AAAA;AAAA;","names":[]}
{
"name": "gatsby-plugin-statsy",
"version": "0.1.4",
"version": "0.1.5",
"description": "",

@@ -25,3 +25,3 @@ "main": "./dist/index.js",

"typescript": "^5.0.4",
"@statsy/analytics": "0.1.4"
"@statsy/analytics": "0.1.5"
},

@@ -28,0 +28,0 @@ "publishConfig": {