matomo-tracker-for-react 1.0.0

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.
Files changed (75) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +194 -0
  3. package/es/MatomoContext.d.ts +5 -0
  4. package/es/MatomoContext.d.ts.map +1 -0
  5. package/es/MatomoContext.js +4 -0
  6. package/es/MatomoContext.js.map +1 -0
  7. package/es/MatomoProvider.d.ts +5 -0
  8. package/es/MatomoProvider.d.ts.map +1 -0
  9. package/es/MatomoProvider.js +94 -0
  10. package/es/MatomoProvider.js.map +1 -0
  11. package/es/MatomoTracker.d.ts +49 -0
  12. package/es/MatomoTracker.d.ts.map +1 -0
  13. package/es/MatomoTracker.js +330 -0
  14. package/es/MatomoTracker.js.map +1 -0
  15. package/es/constants.d.ts +11 -0
  16. package/es/constants.d.ts.map +1 -0
  17. package/es/constants.js +13 -0
  18. package/es/constants.js.map +1 -0
  19. package/es/index.d.ts +15 -0
  20. package/es/index.d.ts.map +1 -0
  21. package/es/index.js +6 -0
  22. package/es/index.js.map +1 -0
  23. package/es/tracker-types.d.ts +76 -0
  24. package/es/tracker-types.d.ts.map +1 -0
  25. package/es/tracker-types.js +2 -0
  26. package/es/tracker-types.js.map +1 -0
  27. package/es/types.d.ts +19 -0
  28. package/es/types.d.ts.map +1 -0
  29. package/es/types.js +3 -0
  30. package/es/types.js.map +1 -0
  31. package/es/useMatomo.d.ts +4 -0
  32. package/es/useMatomo.d.ts.map +1 -0
  33. package/es/useMatomo.js +30 -0
  34. package/es/useMatomo.js.map +1 -0
  35. package/lib/MatomoContext.d.ts +5 -0
  36. package/lib/MatomoContext.d.ts.map +1 -0
  37. package/lib/MatomoContext.js +6 -0
  38. package/lib/MatomoContext.js.map +1 -0
  39. package/lib/MatomoProvider.d.ts +5 -0
  40. package/lib/MatomoProvider.d.ts.map +1 -0
  41. package/lib/MatomoProvider.js +122 -0
  42. package/lib/MatomoProvider.js.map +1 -0
  43. package/lib/MatomoTracker.d.ts +49 -0
  44. package/lib/MatomoTracker.d.ts.map +1 -0
  45. package/lib/MatomoTracker.js +332 -0
  46. package/lib/MatomoTracker.js.map +1 -0
  47. package/lib/constants.d.ts +11 -0
  48. package/lib/constants.d.ts.map +1 -0
  49. package/lib/constants.js +16 -0
  50. package/lib/constants.js.map +1 -0
  51. package/lib/index.d.ts +15 -0
  52. package/lib/index.d.ts.map +1 -0
  53. package/lib/index.js +29 -0
  54. package/lib/index.js.map +1 -0
  55. package/lib/tracker-types.d.ts +76 -0
  56. package/lib/tracker-types.d.ts.map +1 -0
  57. package/lib/tracker-types.js +3 -0
  58. package/lib/tracker-types.js.map +1 -0
  59. package/lib/types.d.ts +19 -0
  60. package/lib/types.d.ts.map +1 -0
  61. package/lib/types.js +19 -0
  62. package/lib/types.js.map +1 -0
  63. package/lib/useMatomo.d.ts +4 -0
  64. package/lib/useMatomo.d.ts.map +1 -0
  65. package/lib/useMatomo.js +35 -0
  66. package/lib/useMatomo.js.map +1 -0
  67. package/package.json +58 -0
  68. package/src/MatomoContext.tsx +6 -0
  69. package/src/MatomoProvider.tsx +93 -0
  70. package/src/MatomoTracker.ts +415 -0
  71. package/src/constants.ts +12 -0
  72. package/src/index.ts +20 -0
  73. package/src/tracker-types.ts +89 -0
  74. package/src/types.ts +29 -0
  75. package/src/useMatomo.ts +55 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatomoTracker.js","sourceRoot":"","sources":["../src/MatomoTracker.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA0C;AAqB1C;IAIE,uBAAY,WAAwB;QAF5B,kBAAa,GAAG,KAAK,CAAC;QAG5B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,+CAA+C;YAC/C,OAAO;SACR;QACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QAED,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAEO,kCAAU,GAAlB,UAAmB,EAUL;QAVd,iBAiFC;;YAhFC,OAAO,aAAA,EACP,MAAM,YAAA,EACN,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,MAAM,YAAA,EACN,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,SAAS,eAAA,EACT,oBAAmB,EAAnB,YAAY,mBAAG,IAAI,KAAA,EACnB,sBAAmB,EAAnB,cAAc,mBAAG,EAAE,KAAA;QAEnB,IAAI,QAAQ,EAAE;YACZ,qFAAqF;YACrF,IAAI,CAAC,eAAe,GAAG;gBAAC,eAAe;qBAAf,UAAe,EAAf,qBAAe,EAAf,IAAe;oBAAf,0BAAe;;gBAAoB,OAAA,KAAI;YAAJ,CAAI,CAAC,CAAC,QAAQ;YACzE,mCAAmC;YACnC,IAAM,IAAI,GAAG,cAAO,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAW,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,IAAW,CAAC;YACjC,IAAI,CAAC,eAAe,GAAG,IAAW,CAAC;YACnC,IAAI,CAAC,SAAS,GAAG,IAAW,CAAC;YAC7B,uCAAuC;YACvC,OAAO;SACR;QAED,IAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAG,OAAO,MAAG,CAAC;QAE1E,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAEhC,uFAAuF;QACvF,IACE,IAAI,CAAC,aAAa;YAClB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,KAAK,eAAe,EAA1B,CAA0B,CAAC,CAAC,EACxD;YACA,mEAAmE;YACnE,IAAI,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACtD,IAAI,MAAM;gBAAE,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACtD,iFAAiF;YACjF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO;SACR;QAED,IAAI,CAAC,eAAe,CAClB,eAAe,EACf,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,UAAG,iBAAiB,eAAY,CAC/C,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE1C,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SAC3C;QAED,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,EAAoB;gBAAnB,IAAI,QAAA,EAAE,YAAY,QAAA;YACzD,IAAI,IAAI,KAAK,gBAAgB,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;gBAClE,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,gEAAgE;aACzG;iBAAM,IAAI,YAAY,YAAY,KAAK,EAAE;gBACxC,KAAI,CAAC,eAAe,OAApB,KAAI,iBAAiB,IAAI,GAAK,YAAY,UAAE;aAC7C;iBAAM;gBACL,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACjD,IAAI,CAAC,oBAAoB,CAAC,MAAA,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAEtC,IAAM,GAAG,GAAG,QAAQ,CAAC;QACrB,IAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,aAAa,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACvC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,aAAa,CAAC,GAAG,GAAG,MAAM,IAAI,UAAG,iBAAiB,cAAW,CAAC;QAE9D,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;YACjC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SACzD;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,4CAAoB,GAApB,UAAqB,OAAe;QAClC,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,0CAAkB,GAAlB,UAAmB,MAAe;QAChC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAEO,8CAAsB,GAA9B,UAA+B,QAAuB;QAAtD,iBAqBC;QApBC,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;gBACvB,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE;oBAC1B,IAAA,KACJ,OAAO,CAAC,OAAO,EADT,cAAc,oBAAA,EAAE,YAAY,kBAAA,EAAE,UAAU,gBAAA,EAAE,WAAW,iBAC5C,CAAC;oBAClB,IAAI,cAAc,IAAI,YAAY,EAAE;wBAClC,KAAI,CAAC,UAAU,CAAC;4BACd,QAAQ,EAAE,cAAc;4BACxB,MAAM,EAAE,YAAY;4BACpB,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;yBACrD,CAAC,CAAC;qBACJ;yBAAM;wBACL,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;qBACH;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,yCAAyC;IACzC,mCAAW,GAAX;QAAA,iBAmCC;QAlCC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEvD,IAAM,WAAW,GAAG,6BAA6B,CAAC;QAClD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAC,SAAS;gBACrD,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ;oBACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAC,IAAI;wBAC/B,2BAA2B;wBAC3B,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC;4BAAE,OAAO;wBAE3C,sDAAsD;wBACtD,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;4BAC7B,KAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;yBACrC;wBAED,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,gBAAgB,CAAc,WAAW,CAAC,CAChD,CAAC;wBACF,KAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;oBACxC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5E,0CAA0C;QAC1C,IAAI,SAAS,EAAE;YACb,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,QAAQ,CAAC,gBAAgB,CAAc,WAAW,CAAC,CACpD,CAAC;YACF,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;SACvC;IACH,CAAC;IAED,qCAAa,GAAb;QACE,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;SACpC;IACH,CAAC;IAED,gBAAgB;IAChB,0DAA0D;IAC1D,kCAAU,GAAV,UAAW,EAMQ;QALjB,IAAA,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,IAAI,UAAA,EACJ,KAAK,WAAA,EACF,WAAW,cALL,uCAMV,CADe;QAEd,IAAI,QAAQ,IAAI,MAAM,EAAE;YACtB,IAAI,CAAC,KAAK,YACR,IAAI,EAAE,CAAC,uBAAW,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAC3D,WAAW,EACd,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,qBAAqB;IACrB,yFAAyF;IACzF,uCAAe,GAAf,UAAgB,EAKQ;QAJtB,IAAA,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,KAAK,WAAA,EACF,WAAW,cAJA,gCAKf,CADe;QAEd,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,KAAK,YACR,IAAI,EAAE,CAAC,uBAAW,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IACvD,WAAW,EACd,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;IACH,CAAC;IAED,qDAAqD;IACrD,mGAAmG;IACnG,iCAAS,GAAT,UAAU,EAIQ;QAJlB,iBAmBC;YAlBC,IAAI,UAAA,EACJ,gBAAiB,EAAjB,QAAQ,mBAAG,MAAM,KAAA,EACjB,gBAAgB,sBAAA;QAEhB,IACE,gBAAgB;YAChB,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/B,gBAAgB,CAAC,MAAM,EACvB;YACA,gBAAgB,CAAC,OAAO,CAAC,UAAC,eAAgC;gBACxD,OAAA,KAAI,CAAC,eAAe,CAClB,oBAAoB,EACpB,eAAe,CAAC,EAAE,EAClB,eAAe,CAAC,KAAK,CACtB;YAJD,CAIC,CACF,CAAC;SACH;QACD,IAAI,CAAC,eAAe,CAAC,uBAAW,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB;IACpB,4EAA4E;IAC5E,qCAAa,GAAb,UAAc,MAA4B;QACxC,IAAI,CAAC,KAAK,YAAG,IAAI,EAAE,CAAC,uBAAW,CAAC,UAAU,CAAC,IAAK,MAAM,EAAG,CAAC;IAC5D,CAAC;IAED,8EAA8E;IAC9E,8CAA8C;IAC9C,uHAAuH;IACvH,wCAAgB,GAAhB,UAAiB,EAMQ;YALvB,GAAG,SAAA,EACH,WAAW,iBAAA,EACX,eAAe,qBAAA,EACf,oBAAkB,EAAlB,YAAY,mBAAG,GAAG,KAAA,EAClB,uBAAmB,EAAnB,eAAe,mBAAG,CAAC,KAAA;QAEnB,IAAI,CAAC,eAAe,CAClB,kBAAkB,EAClB,GAAG,EACH,WAAW,EACX,eAAe,EACf,YAAY,EACZ,eAAe,CAChB,CAAC;IACJ,CAAC;IAED,mFAAmF;IACnF,8CAA8C;IAC9C,2CAAmB,GAAnB,UAAoB,EAAkC;YAAhC,GAAG,SAAA;QACvB,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,sFAAsF;IACtF,8CAA8C;IAC9C,0CAAkB,GAAlB;QACE,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IAED,yEAAyE;IACzE,mHAAmH;IACnH,2CAAmB,GAAnB,UAAoB,EAOQ;YAN1B,OAAO,aAAA,EACP,YAAY,kBAAA,EACZ,aAAa,mBAAA,EACb,SAAS,eAAA,EACT,cAAc,oBAAA,EACd,uBAAuB,EAAvB,eAAe,mBAAG,KAAK,KAAA;QAEvB,IAAI,CAAC,KAAK,CAAC;YACT,IAAI,EAAE;gBACJ,uBAAW,CAAC,qBAAqB;gBACjC,OAAO;gBACP,YAAY;gBACZ,aAAa;gBACb,SAAS;gBACT,cAAc;gBACd,eAAe;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,6GAA6G;IAC7G,iHAAiH;IACjH,gDAAwB,GAAxB,UAAyB,MAAc;QACrC,IAAI,CAAC,eAAe,CAAC,uBAAW,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,yDAAyD;IACzD,oFAAoF;IACpF,wCAAgB,GAAhB,UAAiB,EAKQ;YAJvB,GAAG,SAAA,EACH,WAAW,iBAAA,EACX,eAAe,qBAAA,EACf,YAAY,kBAAA;QAEZ,IAAI,CAAC,eAAe,CAClB,kBAAkB,EAClB,GAAG,EACH,WAAW,EACX,eAAe,EACf,YAAY,CACb,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,qFAAqF;IACrF,gDAAwB,GAAxB,UAAyB,eAAuB;QAC9C,IAAI,CAAC,gBAAgB,CAAC,EAAE,eAAe,iBAAA,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,+CAA+C;IACvC,6BAAK,GAAb,UAAc,EAKA;QALd,iBAkCC;YAjCC,YAAS,EAAT,IAAI,mBAAG,EAAE,KAAA,EACT,aAAa,mBAAA,EAAE,+EAA+E;QAC9F,IAAI,UAAA,EACJ,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA;QAExB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IACE,gBAAgB;gBAChB,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBAC/B,gBAAgB,CAAC,MAAM,EACvB;gBACA,gBAAgB,CAAC,OAAO,CACtB,UACE,eAAgC,CAAC,iBAAiB;;oBAElD,OAAA,KAAI,CAAC,eAAe,CAClB,oBAAoB,EACpB,eAAe,CAAC,EAAE,EAClB,eAAe,CAAC,KAAK,CACtB;gBAJD,CAIC,CACJ,CAAC;aACH;YAED,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnE,qFAAqF;YACrF,IAAI,CAAC,eAAe,CAClB,kBAAkB,EAClB,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CACvC,CAAC;YACF,IAAI,CAAC,eAAe,OAApB,IAAI,EAAqB,IAA2B,EAAE;SACvD;IACH,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,uCAAe,GAAf,UAAgB,IAAY;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAC1C,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,EAAE;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAE,IAAI,GAAK,IAAI,QAAE,CAAC;SACnC;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,IAAI,KAAK,eAAe,EAAE;YACpE,2EAA2E;YAC3E,MAAM,CAAC,IAAI,GAAG,gBAAE,IAAI,GAAK,IAAI,QAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACH,oBAAC;AAAD,CAAC,AAvYD,IAuYC;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const TRACK_TYPES: {
2
+ TRACK_EVENT: string;
3
+ TRACK_LINK: string;
4
+ TRACK_SEARCH: string;
5
+ TRACK_VIEW: string;
6
+ TRACK_ECOMMERCE_ORDER: string;
7
+ TRACK_ECOMMERCE_CART_UPDATE: string;
8
+ TRACK_GOAL: string;
9
+ SET_USER_ID: string;
10
+ };
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW;;;;;;;;;CAUvB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRACK_TYPES = void 0;
4
+ // eslint-disable-next-line import/prefer-default-export
5
+ exports.TRACK_TYPES = {
6
+ TRACK_EVENT: "trackEvent",
7
+ TRACK_LINK: "trackLink",
8
+ TRACK_SEARCH: "trackSiteSearch",
9
+ TRACK_VIEW: "trackPageView",
10
+ TRACK_ECOMMERCE_ORDER: "trackEcommerceOrder",
11
+ TRACK_ECOMMERCE_CART_UPDATE: "trackEcommerceCartUpdate",
12
+ // Add other Matomo instructions if needed, e.g., for goals
13
+ TRACK_GOAL: "trackGoal",
14
+ SET_USER_ID: "setUserId",
15
+ };
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAC3C,QAAA,WAAW,GAAG;IACzB,WAAW,EAAE,YAAY;IACzB,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,iBAAiB;IAC/B,UAAU,EAAE,eAAe;IAC3B,qBAAqB,EAAE,qBAAqB;IAC5C,2BAA2B,EAAE,0BAA0B;IACvD,2DAA2D;IAC3D,UAAU,EAAE,WAAW;IACvB,WAAW,EAAE,WAAW;CACzB,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export { default as MatomoProvider } from "./MatomoProvider";
2
+ export { default as useMatomo } from "./useMatomo";
3
+ export { default as MatomoContext } from "./MatomoContext";
4
+ export * from "./types";
5
+ export type { CustomDimension, UserOptions, // This is the core UserOptions, MatomoProviderProps is different
6
+ TrackPageViewParams, // Core type
7
+ TrackEventParams, // Core type
8
+ TrackLinkParams, // Core type
9
+ TrackSiteSearchParams, // Core type, though not directly used by simplified hook
10
+ TrackEcommerceOrderParams, // Core type
11
+ AddEcommerceItemParams, // Core type
12
+ RemoveEcommerceItemParams, // Core type
13
+ SetEcommerceViewParams, // Core type
14
+ TrackGoalParams, } from "./tracker-types";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3D,cAAc,SAAS,CAAC;AAExB,YAAY,EACV,eAAe,EACf,WAAW,EAAE,iEAAiE;AAC9E,mBAAmB,EAAE,YAAY;AACjC,gBAAgB,EAAE,YAAY;AAC9B,eAAe,EAAE,YAAY;AAC7B,qBAAqB,EAAE,yDAAyD;AAChF,yBAAyB,EAAE,YAAY;AACvC,sBAAsB,EAAE,YAAY;AACpC,yBAAyB,EAAE,YAAY;AACvC,sBAAsB,EAAE,YAAY;AACpC,eAAe,GAChB,MAAM,iBAAiB,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.MatomoContext = exports.useMatomo = exports.MatomoProvider = void 0;
21
+ var MatomoProvider_1 = require("./MatomoProvider");
22
+ Object.defineProperty(exports, "MatomoProvider", { enumerable: true, get: function () { return __importDefault(MatomoProvider_1).default; } });
23
+ var useMatomo_1 = require("./useMatomo");
24
+ Object.defineProperty(exports, "useMatomo", { enumerable: true, get: function () { return __importDefault(useMatomo_1).default; } });
25
+ var MatomoContext_1 = require("./MatomoContext"); // Optional: if users need direct context access
26
+ Object.defineProperty(exports, "MatomoContext", { enumerable: true, get: function () { return __importDefault(MatomoContext_1).default; } });
27
+ // Export types for consumers
28
+ __exportStar(require("./types"), exports); // Exports React-specific types and re-exports tracker-types
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,iDAA2D,CAAC,gDAAgD;AAAnG,+HAAA,OAAO,OAAiB;AAEjC,6BAA6B;AAC7B,0CAAwB,CAAC,4DAA4D"}
@@ -0,0 +1,76 @@
1
+ export interface CustomDimension {
2
+ id: number;
3
+ value: string;
4
+ }
5
+ export interface UserOptions {
6
+ urlBase: string;
7
+ siteId: number;
8
+ userId?: string;
9
+ trackerUrl?: string;
10
+ srcUrl?: string;
11
+ disabled?: boolean;
12
+ heartBeat?: {
13
+ active: boolean;
14
+ seconds?: number;
15
+ };
16
+ linkTracking?: boolean;
17
+ configurations?: {
18
+ [key: string]: any;
19
+ };
20
+ }
21
+ export interface TrackPageViewParams {
22
+ documentTitle?: string;
23
+ href?: string | Location;
24
+ customDimensions?: boolean | CustomDimension[];
25
+ }
26
+ export interface TrackParams extends TrackPageViewParams {
27
+ data: any[];
28
+ }
29
+ export interface TrackEventParams {
30
+ category: string;
31
+ action: string;
32
+ name?: string;
33
+ value?: number;
34
+ documentTitle?: string;
35
+ href?: string | Location;
36
+ customDimensions?: boolean | CustomDimension[];
37
+ }
38
+ export interface TrackLinkParams {
39
+ href: string;
40
+ linkType?: "download" | "link";
41
+ customDimensions?: boolean | CustomDimension[];
42
+ }
43
+ export interface TrackSiteSearchParams extends TrackPageViewParams {
44
+ keyword: string;
45
+ category?: string;
46
+ count?: number;
47
+ }
48
+ export interface TrackEcommerceOrderParams {
49
+ orderId: string;
50
+ orderRevenue: number;
51
+ orderSubTotal?: number;
52
+ taxAmount?: number;
53
+ shippingAmount?: number;
54
+ discountOffered?: boolean;
55
+ }
56
+ export interface AddEcommerceItemParams {
57
+ sku: string;
58
+ productName?: string;
59
+ productCategory?: string;
60
+ productPrice?: number;
61
+ productQuantity?: number;
62
+ }
63
+ export interface RemoveEcommerceItemParams {
64
+ sku: string;
65
+ }
66
+ export interface SetEcommerceViewParams {
67
+ sku: string | boolean;
68
+ productName?: string | boolean;
69
+ productCategory?: string;
70
+ productPrice?: number;
71
+ }
72
+ export interface TrackGoalParams {
73
+ goalId: number | string;
74
+ revenue?: number;
75
+ }
76
+ //# sourceMappingURL=tracker-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-types.d.ts","sourceRoot":"","sources":["../src/tracker-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE;QACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACtD,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAE/B,gBAAgB,CAAC,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tracker-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker-types.js","sourceRoot":"","sources":["../src/tracker-types.ts"],"names":[],"mappings":""}
package/lib/types.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ export * from "./tracker-types";
3
+ export interface MatomoProviderProps {
4
+ children: React.ReactNode;
5
+ urlBase: string;
6
+ siteId: string | number;
7
+ trackCookies?: boolean;
8
+ disabled?: boolean;
9
+ }
10
+ export interface MatomoInstance {
11
+ trackEvent: (category: string, action: string, name?: string, value?: number) => void;
12
+ trackPageView: (customTitle?: string) => void;
13
+ trackGoal: (goalId: number | string, revenue?: number) => void;
14
+ setUserId: (userId: string) => void;
15
+ trackLink: (url: string, linkType: "link" | "download") => void;
16
+ pushInstruction: (instruction: any[]) => void;
17
+ }
18
+ export type UseMatomo = MatomoInstance;
19
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,KACX,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;IAChE,eAAe,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAC/C;AAGD,MAAM,MAAM,SAAS,GAAG,cAAc,CAAC"}
package/lib/types.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Re-export tracker types for convenience if needed by consumers of the React package
18
+ __exportStar(require("./tracker-types"), exports);
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,sFAAsF;AACtF,kDAAgC"}
@@ -0,0 +1,4 @@
1
+ import { UseMatomo } from "./types";
2
+ declare function useMatomo(): UseMatomo;
3
+ export default useMatomo;
4
+ //# sourceMappingURL=useMatomo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMatomo.d.ts","sourceRoot":"","sources":["../src/useMatomo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,iBAAS,SAAS,IAAI,SAAS,CAgD9B;AAED,eAAe,SAAS,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = require("react");
7
+ var MatomoContext_1 = __importDefault(require("./MatomoContext"));
8
+ function useMatomo() {
9
+ var context = (0, react_1.useContext)(MatomoContext_1.default);
10
+ if (context === null) {
11
+ throw new Error("useMatomo must be used within a MatomoProvider");
12
+ }
13
+ var trackPageView = (0, react_1.useCallback)(function (customTitle) { return context.trackPageView(customTitle); }, [context]);
14
+ var trackEvent = (0, react_1.useCallback)(function (category, action, name, value) {
15
+ return context.trackEvent(category, action, name, value);
16
+ }, [context]);
17
+ var trackGoal = (0, react_1.useCallback)(function (goalId, revenue) {
18
+ return context.trackGoal(goalId, revenue);
19
+ }, [context]);
20
+ var setUserId = (0, react_1.useCallback)(function (userId) { return context.setUserId(userId); }, [context]);
21
+ var trackLink = (0, react_1.useCallback)(function (url, linkType) {
22
+ return context.trackLink(url, linkType);
23
+ }, [context]);
24
+ var pushInstruction = (0, react_1.useCallback)(function (instruction) { return context.pushInstruction(instruction); }, [context]);
25
+ return {
26
+ trackEvent: trackEvent,
27
+ trackPageView: trackPageView,
28
+ trackGoal: trackGoal,
29
+ setUserId: setUserId,
30
+ trackLink: trackLink,
31
+ pushInstruction: pushInstruction,
32
+ };
33
+ }
34
+ exports.default = useMatomo;
35
+ //# sourceMappingURL=useMatomo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMatomo.js","sourceRoot":"","sources":["../src/useMatomo.ts"],"names":[],"mappings":";;;;;AAAA,+BAAgD;AAChD,kEAA4C;AAG5C,SAAS,SAAS;IAChB,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,uBAAa,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,WAAoB,IAAK,OAAA,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAlC,CAAkC,EAC5D,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,QAAgB,EAAE,MAAc,EAAE,IAAa,EAAE,KAAc;QAC9D,OAAA,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;IAAjD,CAAiD,EACnD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,MAAuB,EAAE,OAAgB;QACxC,OAAA,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAAlC,CAAkC,EACpC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,MAAc,IAAK,OAAA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAzB,CAAyB,EAC7C,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,GAAW,EAAE,QAA6B;QACzC,OAAA,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;IAAhC,CAAgC,EAClC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,UAAC,WAAkB,IAAK,OAAA,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,EAApC,CAAoC,EAC5D,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO;QACL,UAAU,YAAA;QACV,aAAa,eAAA;QACb,SAAS,WAAA;QACT,SAAS,WAAA;QACT,SAAS,WAAA;QACT,eAAe,iBAAA;KAChB,CAAC;AACJ,CAAC;AAED,kBAAe,SAAS,CAAC"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "matomo-tracker-for-react",
3
+ "version": "1.0.0",
4
+ "description": "A minimal yet powerful React package that integrates Matomo analytics with React Router.",
5
+ "main": "lib/index.js",
6
+ "module": "es/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "scripts": {
9
+ "build": "npm run build:cjs && npm run build:esm",
10
+ "build:cjs": "tsc -p tsconfig.json --module commonjs --outDir lib",
11
+ "build:esm": "tsc -p tsconfig.json --module esnext --outDir es",
12
+ "clean": "rm -rf lib es *.tsbuildinfo",
13
+ "prepublishOnly": "npm run clean && npm run build"
14
+ },
15
+ "keywords": [
16
+ "matomo",
17
+ "react",
18
+ "analytics",
19
+ "tracking",
20
+ "react-router"
21
+ ],
22
+ "author": "Jonas Kenke",
23
+ "license": "MPL-2.0",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://github.com/JonasKenke/matomo-tracker-for-react.git"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/JonasKenke/matomo-tracker-for-react/issues"
30
+ },
31
+ "homepage": "https://github.com/JonasKenke/matomo-tracker-for-react#readme",
32
+ "files": [
33
+ "lib",
34
+ "es",
35
+ "src"
36
+ ],
37
+ "exports": {
38
+ ".": {
39
+ "import": "./es/index.js",
40
+ "require": "./lib/index.js",
41
+ "types": "./lib/index.d.ts"
42
+ }
43
+ },
44
+ "peerDependencies": {
45
+ "react": ">=16.8.0",
46
+ "react-dom": ">=16.8.0",
47
+ "react-router-dom": ">=5.0.0 || >=6.0.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/react": "^18.0.0",
51
+ "@types/react-dom": "^18.0.0",
52
+ "react": "^18.0.0",
53
+ "react-dom": "^18.0.0",
54
+ "react-router-dom": "^6.0.0",
55
+ "typescript": "^4.5.0"
56
+ },
57
+ "sideEffects": false
58
+ }
@@ -0,0 +1,6 @@
1
+ import { createContext } from 'react'
2
+ import { MatomoInstance } from './types'
3
+
4
+ const MatomoContext = createContext<MatomoInstance | null>(null)
5
+
6
+ export default MatomoContext
@@ -0,0 +1,93 @@
1
+ import React, { useEffect, useMemo, useRef } from 'react'
2
+ import { useLocation } from 'react-router-dom' // For automatic page view tracking
3
+ import MatomoContext from './MatomoContext'
4
+ import MatomoTracker from './MatomoTracker'
5
+ import { MatomoProviderProps, MatomoInstance, UserOptions } from './types'
6
+ import { TRACK_TYPES } from './constants'
7
+
8
+
9
+ const MatomoProvider: React.FC<MatomoProviderProps> = ({
10
+ children,
11
+ urlBase,
12
+ siteId,
13
+ disabled = false,
14
+ trackCookies = true,
15
+ }) => {
16
+ const matomoInstanceRef = useRef<MatomoTracker | null>(null)
17
+ const location = useLocation() // From react-router-dom
18
+
19
+ // Initialize MatomoTracker instance
20
+ if (!matomoInstanceRef.current && typeof window !== 'undefined' && !disabled) {
21
+ const matomoSiteId = typeof siteId === 'string' ? parseInt(siteId, 10) : siteId;
22
+ if (isNaN(matomoSiteId)) {
23
+ console.error("Matomo siteId must be a number or a string parseable to a number.");
24
+ } else {
25
+ const effectiveConfigurations: { [key: string]: any } = {};
26
+ if (!trackCookies) {
27
+ effectiveConfigurations.disableCookies = true;
28
+ }
29
+
30
+ const trackerOptions: UserOptions = {
31
+ urlBase,
32
+ siteId: matomoSiteId,
33
+ disabled,
34
+ configurations: effectiveConfigurations, // Pass only relevant configurations
35
+ };
36
+ matomoInstanceRef.current = new MatomoTracker(trackerOptions);
37
+ }
38
+ }
39
+
40
+ const matomoActions = useMemo<MatomoInstance | null>(() => {
41
+ const currentInstance = matomoInstanceRef.current; // Use a variable for the dependency array
42
+ if (!currentInstance || disabled) {
43
+ const noOp = () => {};
44
+ const noOpInstance: MatomoInstance = { // Ensure this matches the simplified MatomoInstance
45
+ trackEvent: noOp,
46
+ trackPageView: noOp,
47
+ trackGoal: noOp,
48
+ setUserId: noOp,
49
+ trackLink: noOp,
50
+ pushInstruction: (..._args: any[]) => {},
51
+ };
52
+ return noOpInstance;
53
+ }
54
+
55
+ return {
56
+ trackEvent: (category, action, name, value) =>
57
+ currentInstance.trackEvent({ category, action, name, value }),
58
+ trackPageView: (customTitle) =>
59
+ currentInstance.trackPageView(customTitle ? { documentTitle: customTitle } : undefined),
60
+ trackGoal: (goalId, revenue) =>
61
+ currentInstance.pushInstruction(TRACK_TYPES.TRACK_GOAL, goalId, revenue),
62
+ setUserId: (uid) => currentInstance.pushInstruction(TRACK_TYPES.SET_USER_ID, uid),
63
+ trackLink: (url, linkType) =>
64
+ currentInstance.trackLink({ href: url, linkType }),
65
+ pushInstruction: (instruction) => {
66
+ if (Array.isArray(instruction) && instruction.length > 0) {
67
+ const [name, ...args] = instruction;
68
+ currentInstance.pushInstruction(name, ...args);
69
+ } else {
70
+ console.warn('pushInstruction expects a non-empty array.');
71
+ }
72
+ },
73
+ }
74
+ }, [disabled, matomoInstanceRef.current]) // Use matomoInstanceRef.current here
75
+
76
+ // Effect for automatic page view tracking on route change
77
+ useEffect(() => {
78
+ if (matomoActions && matomoActions.trackPageView && !disabled) {
79
+ const currentPath = location.pathname + location.search + location.hash
80
+ matomoActions.pushInstruction(['setCustomUrl', window.location.origin + currentPath])
81
+ matomoActions.trackPageView() // Track with potentially new document.title or default
82
+ }
83
+ }, [location, matomoActions, disabled])
84
+
85
+
86
+ return (
87
+ <MatomoContext.Provider value={matomoActions}>
88
+ {children}
89
+ </MatomoContext.Provider>
90
+ )
91
+ }
92
+
93
+ export default MatomoProvider