react-fathom 0.1.7 → 0.1.8
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/cjs/index.cjs +1 -1
- package/dist/cjs/next/index.cjs +37 -12
- package/dist/cjs/next/index.cjs.map +1 -1
- package/dist/es/index.js +1 -1
- package/dist/es/next/index.js +37 -12
- package/dist/es/next/index.js.map +1 -1
- package/dist/react-fathom.js +1 -1
- package/dist/react-fathom.min.js +1 -1
- package/package.json +1 -1
- package/src/next/NextFathomTrackViewPages.tsx +42 -4
- package/types/next/NextFathomTrackViewPages.d.ts +0 -20
- package/types/next/NextFathomTrackViewPages.d.ts.map +1 -1
package/dist/cjs/index.cjs
CHANGED
package/dist/cjs/next/index.cjs
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
/*! react-fathom - 0.1.
|
|
1
|
+
/*! react-fathom - 0.1.8 !*/
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var require$$0 = require('fs');
|
|
6
|
-
var require$$1 = require('stream');
|
|
7
|
-
var require$$2 = require('zlib');
|
|
8
5
|
var Fathom = require('fathom-client');
|
|
9
6
|
|
|
10
7
|
function _interopNamespaceDefault(e) {
|
|
@@ -6901,7 +6898,7 @@ var hasRequiredGzipSize;
|
|
|
6901
6898
|
function requireGzipSize () {
|
|
6902
6899
|
if (hasRequiredGzipSize) return gzipSize.exports;
|
|
6903
6900
|
hasRequiredGzipSize = 1;
|
|
6904
|
-
(()=>{var e={154:(e,r,t)=>{var n=t(781);var o=["write","end","destroy"];var i=["resume","pause"];var s=["data","close"];var c=Array.prototype.slice;e.exports=duplex;function forEach(e,r){if(e.forEach){return e.forEach(r)}for(var t=0;t<e.length;t++){r(e[t],t);}}function duplex(e,r){var t=new n;var a=false;forEach(o,proxyWriter);forEach(i,proxyReader);forEach(s,proxyStream);r.on("end",handleEnd);e.on("drain",(function(){t.emit("drain");}));e.on("error",reemit);r.on("error",reemit);t.writable=e.writable;t.readable=r.readable;return t;function proxyWriter(r){t[r]=method;function method(){return e[r].apply(e,arguments)}}function proxyReader(e){t[e]=method;function method(){t.emit(e);var n=r[e];if(n){return n.apply(r,arguments)}r.emit(e);}}function proxyStream(e){r.on(e,reemit);function reemit(){var r=c.call(arguments);r.unshift(e);t.emit.apply(t,r);}}function handleEnd(){if(a){return}a=true;var e=c.call(arguments);e.unshift("end");t.emit.apply(t,e);}function reemit(e){t.emit("error",e);}}},349:(e,r,t)=>{const n=t(147);const o=t(781);const i=t(796);const s=t(154);const c=t(530);const getOptions=e=>Object.assign({level:9},e);e.exports=(e,r)=>{if(!e){return Promise.resolve(0)}return c(i.gzip)(e,getOptions(r)).then((e=>e.length)).catch((e=>0))};e.exports.sync=(e,r)=>i.gzipSync(e,getOptions(r)).length;e.exports.stream=e=>{const r=new o.PassThrough;const t=new o.PassThrough;const n=s(r,t);let c=0;const a=i.createGzip(getOptions(e)).on("data",(e=>{c+=e.length;})).on("error",(()=>{n.gzipSize=0;})).on("end",(()=>{n.gzipSize=c;n.emit("gzip-size",c);t.end();}));r.pipe(a);r.pipe(t,{end:false});return n};e.exports.file=(r,t)=>new Promise(((o,i)=>{const s=n.createReadStream(r);s.on("error",i);const c=s.pipe(e.exports.stream(t));c.on("error",i);c.on("gzip-size",o);}));e.exports.fileSync=(r,t)=>e.exports.sync(n.readFileSync(r),t);},530:e=>{const processFn=(e,r)=>function(...t){const n=r.promiseModule;return new n(((n,o)=>{if(r.multiArgs){t.push(((...e)=>{if(r.errorFirst){if(e[0]){o(e);}else {e.shift();n(e);}}else {n(e);}}));}else if(r.errorFirst){t.push(((e,r)=>{if(e){o(e);}else {n(r);}}));}else {t.push(n);}e.apply(this,t);}))};e.exports=(e,r)=>{r=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:true,promiseModule:Promise},r);const t=typeof e;if(!(e!==null&&(t==="object"||t==="function"))){throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${e===null?"null":t}\``)}const filter=e=>{const match=r=>typeof r==="string"?e===r:r.test(e);return r.include?r.include.some(match):!r.exclude.some(match)};let n;if(t==="function"){n=function(...t){return r.excludeMain?e(...t):processFn(e,r).apply(this,t)};}else {n=Object.create(Object.getPrototypeOf(e));}for(const t in e){const o=e[t];n[t]=typeof o==="function"&&filter(t)?processFn(o,r):o;}return n};},147:e=>{e.exports=require
|
|
6901
|
+
(()=>{var e={154:(e,r,t)=>{var n=t(781);var o=["write","end","destroy"];var i=["resume","pause"];var s=["data","close"];var c=Array.prototype.slice;e.exports=duplex;function forEach(e,r){if(e.forEach){return e.forEach(r)}for(var t=0;t<e.length;t++){r(e[t],t);}}function duplex(e,r){var t=new n;var a=false;forEach(o,proxyWriter);forEach(i,proxyReader);forEach(s,proxyStream);r.on("end",handleEnd);e.on("drain",(function(){t.emit("drain");}));e.on("error",reemit);r.on("error",reemit);t.writable=e.writable;t.readable=r.readable;return t;function proxyWriter(r){t[r]=method;function method(){return e[r].apply(e,arguments)}}function proxyReader(e){t[e]=method;function method(){t.emit(e);var n=r[e];if(n){return n.apply(r,arguments)}r.emit(e);}}function proxyStream(e){r.on(e,reemit);function reemit(){var r=c.call(arguments);r.unshift(e);t.emit.apply(t,r);}}function handleEnd(){if(a){return}a=true;var e=c.call(arguments);e.unshift("end");t.emit.apply(t,e);}function reemit(e){t.emit("error",e);}}},349:(e,r,t)=>{const n=t(147);const o=t(781);const i=t(796);const s=t(154);const c=t(530);const getOptions=e=>Object.assign({level:9},e);e.exports=(e,r)=>{if(!e){return Promise.resolve(0)}return c(i.gzip)(e,getOptions(r)).then((e=>e.length)).catch((e=>0))};e.exports.sync=(e,r)=>i.gzipSync(e,getOptions(r)).length;e.exports.stream=e=>{const r=new o.PassThrough;const t=new o.PassThrough;const n=s(r,t);let c=0;const a=i.createGzip(getOptions(e)).on("data",(e=>{c+=e.length;})).on("error",(()=>{n.gzipSize=0;})).on("end",(()=>{n.gzipSize=c;n.emit("gzip-size",c);t.end();}));r.pipe(a);r.pipe(t,{end:false});return n};e.exports.file=(r,t)=>new Promise(((o,i)=>{const s=n.createReadStream(r);s.on("error",i);const c=s.pipe(e.exports.stream(t));c.on("error",i);c.on("gzip-size",o);}));e.exports.fileSync=(r,t)=>e.exports.sync(n.readFileSync(r),t);},530:e=>{const processFn=(e,r)=>function(...t){const n=r.promiseModule;return new n(((n,o)=>{if(r.multiArgs){t.push(((...e)=>{if(r.errorFirst){if(e[0]){o(e);}else {e.shift();n(e);}}else {n(e);}}));}else if(r.errorFirst){t.push(((e,r)=>{if(e){o(e);}else {n(r);}}));}else {t.push(n);}e.apply(this,t);}))};e.exports=(e,r)=>{r=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:true,promiseModule:Promise},r);const t=typeof e;if(!(e!==null&&(t==="object"||t==="function"))){throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${e===null?"null":t}\``)}const filter=e=>{const match=r=>typeof r==="string"?e===r:r.test(e);return r.include?r.include.some(match):!r.exclude.some(match)};let n;if(t==="function"){n=function(...t){return r.excludeMain?e(...t):processFn(e,r).apply(this,t)};}else {n=Object.create(Object.getPrototypeOf(e));}for(const t in e){const o=e[t];n[t]=typeof o==="function"&&filter(t)?processFn(o,r):o;}return n};},147:e=>{e.exports=require("fs");},781:e=>{e.exports=require("stream");},796:e=>{e.exports=require("zlib");}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var o=r[t]={exports:{}};var i=true;try{e[t](o,o.exports,__nccwpck_require__);i=false;}finally{if(i)delete r[t];}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(349);gzipSize.exports=t;})();
|
|
6905
6902
|
return gzipSize.exports;
|
|
6906
6903
|
}
|
|
6907
6904
|
|
|
@@ -9371,20 +9368,42 @@ useFathom.displayName = 'useFathom';
|
|
|
9371
9368
|
* }
|
|
9372
9369
|
* ```
|
|
9373
9370
|
*/
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
var
|
|
9371
|
+
|
|
9372
|
+
// Client-only wrapper to prevent SSR execution
|
|
9373
|
+
var ClientOnlyWrapper = function ClientOnlyWrapper(_ref) {
|
|
9374
|
+
var children = _ref.children;
|
|
9375
|
+
// Don't render during SSR - check window directly
|
|
9376
|
+
if (typeof window === 'undefined') {
|
|
9377
|
+
return null;
|
|
9378
|
+
}
|
|
9379
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
9380
|
+
};
|
|
9381
|
+
|
|
9382
|
+
// Internal component that uses the router
|
|
9383
|
+
// This component only renders client-side due to ClientOnlyWrapper
|
|
9384
|
+
var NextFathomTrackViewPagesInternal = function NextFathomTrackViewPagesInternal(_ref2) {
|
|
9385
|
+
var _ref2$disableAutoTrac = _ref2.disableAutoTrack,
|
|
9386
|
+
disableAutoTrack = _ref2$disableAutoTrac === void 0 ? false : _ref2$disableAutoTrac;
|
|
9378
9387
|
var hasTrackedInitialPageview = React.useRef(false);
|
|
9379
9388
|
var _useFathom = useFathom(),
|
|
9380
9389
|
trackPageview = _useFathom.trackPageview,
|
|
9381
9390
|
client = _useFathom.client;
|
|
9382
9391
|
|
|
9392
|
+
// Always call useRouter unconditionally
|
|
9393
|
+
// This is safe because ClientOnlyWrapper prevents this component from rendering during SSR
|
|
9394
|
+
var router = routerExports.useRouter();
|
|
9395
|
+
|
|
9383
9396
|
// Track pageviews on route changes
|
|
9384
9397
|
React.useEffect(function () {
|
|
9385
9398
|
if (!trackPageview || !client || disableAutoTrack) {
|
|
9386
9399
|
return;
|
|
9387
9400
|
}
|
|
9401
|
+
|
|
9402
|
+
// Check if router is available and has events
|
|
9403
|
+
if (!router || typeof router.events === 'undefined' || !router.events) {
|
|
9404
|
+
// Silently return - this component should only be used in Pages Router
|
|
9405
|
+
return;
|
|
9406
|
+
}
|
|
9388
9407
|
var handleRouteChangeComplete = function handleRouteChangeComplete(url) {
|
|
9389
9408
|
trackPageview({
|
|
9390
9409
|
url: window.location.origin + url
|
|
@@ -9394,25 +9413,31 @@ var NextFathomTrackViewPages = function NextFathomTrackViewPages(_ref) {
|
|
|
9394
9413
|
// router.events is stable in Next.js, so we can use it without including router in dependencies
|
|
9395
9414
|
router.events.on('routeChangeComplete', handleRouteChangeComplete);
|
|
9396
9415
|
return function () {
|
|
9397
|
-
|
|
9416
|
+
var _router$events;
|
|
9417
|
+
router === null || router === void 0 || (_router$events = router.events) === null || _router$events === void 0 || _router$events.off('routeChangeComplete', handleRouteChangeComplete);
|
|
9398
9418
|
};
|
|
9399
9419
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9400
9420
|
}, [trackPageview, client, disableAutoTrack]);
|
|
9401
9421
|
|
|
9402
9422
|
// Track initial pageview (routeChangeComplete doesn't fire on initial load)
|
|
9403
9423
|
React.useEffect(function () {
|
|
9404
|
-
if (!trackPageview || !client || disableAutoTrack || !router.isReady || hasTrackedInitialPageview.current) {
|
|
9424
|
+
if (!trackPageview || !client || disableAutoTrack || !router || !router.isReady || hasTrackedInitialPageview.current) {
|
|
9405
9425
|
return;
|
|
9406
9426
|
}
|
|
9407
9427
|
hasTrackedInitialPageview.current = true;
|
|
9408
9428
|
trackPageview({
|
|
9409
9429
|
url: window.location.href
|
|
9410
9430
|
});
|
|
9411
|
-
}, [trackPageview, client, disableAutoTrack, router
|
|
9431
|
+
}, [trackPageview, client, disableAutoTrack, router]);
|
|
9412
9432
|
|
|
9413
9433
|
// This component doesn't render anything
|
|
9414
9434
|
return null;
|
|
9415
9435
|
};
|
|
9436
|
+
|
|
9437
|
+
// Export component wrapped in client-only wrapper to prevent SSR errors
|
|
9438
|
+
var NextFathomTrackViewPages = function NextFathomTrackViewPages(props) {
|
|
9439
|
+
return /*#__PURE__*/React.createElement(ClientOnlyWrapper, null, /*#__PURE__*/React.createElement(NextFathomTrackViewPagesInternal, props));
|
|
9440
|
+
};
|
|
9416
9441
|
NextFathomTrackViewPages.displayName = 'NextFathomTrackViewPages';
|
|
9417
9442
|
|
|
9418
9443
|
var navigation$1 = {exports: {}};
|