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/es/index.js
CHANGED
package/dist/es/next/index.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
/*! react-fathom - 0.1.
|
|
1
|
+
/*! react-fathom - 0.1.8 !*/
|
|
2
2
|
import React, { createContext, useContext, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
3
|
-
import require$$0 from 'fs';
|
|
4
|
-
import require$$1 from 'stream';
|
|
5
|
-
import require$$2 from 'zlib';
|
|
6
3
|
import * as Fathom from 'fathom-client';
|
|
7
4
|
|
|
8
5
|
var router$2 = {exports: {}};
|
|
@@ -6880,7 +6877,7 @@ var hasRequiredGzipSize;
|
|
|
6880
6877
|
function requireGzipSize () {
|
|
6881
6878
|
if (hasRequiredGzipSize) return gzipSize.exports;
|
|
6882
6879
|
hasRequiredGzipSize = 1;
|
|
6883
|
-
(()=>{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
|
|
6880
|
+
(()=>{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;})();
|
|
6884
6881
|
return gzipSize.exports;
|
|
6885
6882
|
}
|
|
6886
6883
|
|
|
@@ -9350,20 +9347,42 @@ useFathom.displayName = 'useFathom';
|
|
|
9350
9347
|
* }
|
|
9351
9348
|
* ```
|
|
9352
9349
|
*/
|
|
9353
|
-
|
|
9354
|
-
|
|
9355
|
-
|
|
9356
|
-
var
|
|
9350
|
+
|
|
9351
|
+
// Client-only wrapper to prevent SSR execution
|
|
9352
|
+
var ClientOnlyWrapper = function ClientOnlyWrapper(_ref) {
|
|
9353
|
+
var children = _ref.children;
|
|
9354
|
+
// Don't render during SSR - check window directly
|
|
9355
|
+
if (typeof window === 'undefined') {
|
|
9356
|
+
return null;
|
|
9357
|
+
}
|
|
9358
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
9359
|
+
};
|
|
9360
|
+
|
|
9361
|
+
// Internal component that uses the router
|
|
9362
|
+
// This component only renders client-side due to ClientOnlyWrapper
|
|
9363
|
+
var NextFathomTrackViewPagesInternal = function NextFathomTrackViewPagesInternal(_ref2) {
|
|
9364
|
+
var _ref2$disableAutoTrac = _ref2.disableAutoTrack,
|
|
9365
|
+
disableAutoTrack = _ref2$disableAutoTrac === void 0 ? false : _ref2$disableAutoTrac;
|
|
9357
9366
|
var hasTrackedInitialPageview = useRef(false);
|
|
9358
9367
|
var _useFathom = useFathom(),
|
|
9359
9368
|
trackPageview = _useFathom.trackPageview,
|
|
9360
9369
|
client = _useFathom.client;
|
|
9361
9370
|
|
|
9371
|
+
// Always call useRouter unconditionally
|
|
9372
|
+
// This is safe because ClientOnlyWrapper prevents this component from rendering during SSR
|
|
9373
|
+
var router = routerExports.useRouter();
|
|
9374
|
+
|
|
9362
9375
|
// Track pageviews on route changes
|
|
9363
9376
|
useEffect(function () {
|
|
9364
9377
|
if (!trackPageview || !client || disableAutoTrack) {
|
|
9365
9378
|
return;
|
|
9366
9379
|
}
|
|
9380
|
+
|
|
9381
|
+
// Check if router is available and has events
|
|
9382
|
+
if (!router || typeof router.events === 'undefined' || !router.events) {
|
|
9383
|
+
// Silently return - this component should only be used in Pages Router
|
|
9384
|
+
return;
|
|
9385
|
+
}
|
|
9367
9386
|
var handleRouteChangeComplete = function handleRouteChangeComplete(url) {
|
|
9368
9387
|
trackPageview({
|
|
9369
9388
|
url: window.location.origin + url
|
|
@@ -9373,25 +9392,31 @@ var NextFathomTrackViewPages = function NextFathomTrackViewPages(_ref) {
|
|
|
9373
9392
|
// router.events is stable in Next.js, so we can use it without including router in dependencies
|
|
9374
9393
|
router.events.on('routeChangeComplete', handleRouteChangeComplete);
|
|
9375
9394
|
return function () {
|
|
9376
|
-
|
|
9395
|
+
var _router$events;
|
|
9396
|
+
router === null || router === void 0 || (_router$events = router.events) === null || _router$events === void 0 || _router$events.off('routeChangeComplete', handleRouteChangeComplete);
|
|
9377
9397
|
};
|
|
9378
9398
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
9379
9399
|
}, [trackPageview, client, disableAutoTrack]);
|
|
9380
9400
|
|
|
9381
9401
|
// Track initial pageview (routeChangeComplete doesn't fire on initial load)
|
|
9382
9402
|
useEffect(function () {
|
|
9383
|
-
if (!trackPageview || !client || disableAutoTrack || !router.isReady || hasTrackedInitialPageview.current) {
|
|
9403
|
+
if (!trackPageview || !client || disableAutoTrack || !router || !router.isReady || hasTrackedInitialPageview.current) {
|
|
9384
9404
|
return;
|
|
9385
9405
|
}
|
|
9386
9406
|
hasTrackedInitialPageview.current = true;
|
|
9387
9407
|
trackPageview({
|
|
9388
9408
|
url: window.location.href
|
|
9389
9409
|
});
|
|
9390
|
-
}, [trackPageview, client, disableAutoTrack, router
|
|
9410
|
+
}, [trackPageview, client, disableAutoTrack, router]);
|
|
9391
9411
|
|
|
9392
9412
|
// This component doesn't render anything
|
|
9393
9413
|
return null;
|
|
9394
9414
|
};
|
|
9415
|
+
|
|
9416
|
+
// Export component wrapped in client-only wrapper to prevent SSR errors
|
|
9417
|
+
var NextFathomTrackViewPages = function NextFathomTrackViewPages(props) {
|
|
9418
|
+
return /*#__PURE__*/React.createElement(ClientOnlyWrapper, null, /*#__PURE__*/React.createElement(NextFathomTrackViewPagesInternal, props));
|
|
9419
|
+
};
|
|
9395
9420
|
NextFathomTrackViewPages.displayName = 'NextFathomTrackViewPages';
|
|
9396
9421
|
|
|
9397
9422
|
var navigation$1 = {exports: {}};
|