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/es/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! react-fathom - 0.1.7 !*/
1
+ /*! react-fathom - 0.1.8 !*/
2
2
  import React, { createContext, useContext, useMemo, useCallback, useEffect, useRef, forwardRef } from 'react';
3
3
  import * as Fathom from 'fathom-client';
4
4
 
@@ -1,8 +1,5 @@
1
- /*! react-fathom - 0.1.7 !*/
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$$0;},781:e=>{e.exports=require$$1;},796:e=>{e.exports=require$$2;}};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;})();
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
- var NextFathomTrackViewPages = function NextFathomTrackViewPages(_ref) {
9354
- var _ref$disableAutoTrack = _ref.disableAutoTrack,
9355
- disableAutoTrack = _ref$disableAutoTrack === void 0 ? false : _ref$disableAutoTrack;
9356
- var router = routerExports.useRouter();
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
- router.events.off('routeChangeComplete', handleRouteChangeComplete);
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.isReady]);
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: {}};