{"_id":"param-tracker","_rev":"12-0efe4d29705fdff02378298c0c5b0ce8","name":"param-tracker","dist-tags":{"latest":"5.0.1"},"versions":{"3.0.1":{"name":"param-tracker","version":"3.0.1","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@3.0.1","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"20858ba1cc816215b66e66998aab3d67aa41959e","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-3.0.1.tgz","fileCount":12,"integrity":"sha512-WoqUG8cmmnQwXgYIIdbCn0RoI/PDDDDL89Z6sIQMJssQXdjRSry5YBvhmm+IUH13Rhu6ZnrROxYpDutIzuVYJA==","signatures":[{"sig":"MEUCIEZAbnez0hFFoHPjjVNLSqXKZCC8Fq//TbGTnCzMu9j8AiEApj3HTG56AK1wUDPdKDkx0xXP9N8qTkZRUsMxI6Q4HgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104592},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"9220378d2ac636c21769acd2243de6c8ca6fbd33","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","lint:fix":"eslint src/ --fix"},"_npmUser":{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"10.9.3","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_3.0.1_1762668114616_0.10590533539821245","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"param-tracker","version":"3.0.2","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@3.0.2","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"7beda3dc73ce132d549acf5c7250fa0a8b1989bb","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-3.0.2.tgz","fileCount":15,"integrity":"sha512-xIb4tf/Zwv019i5jTorPxM4ViHnw9FKgtRHUefAyI2Jq2XE9ZrA/tQ0nGAukCmqpcW5SwIk3XsTRPhzJEAmYPQ==","signatures":[{"sig":"MEQCIF1jXsAidunwKd6gwC71IvMIqxr8j+Px8+PmvSbKKxBAAiAlH+uHl1JTm2PywUEuVjIO/BuAWNXX0yBVcYAi36+GTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106829},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"04203672932a15e696c1feb75744b26da8fa580c","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","release":"semantic-release","lint:fix":"eslint src/ --fix"},"_npmUser":{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"10.9.4","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","semantic-release":"^24.1.2","eslint-plugin-import":"^2.32.0","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.3","@semantic-release/exec":"^6.0.3","eslint-config-prettier":"^10.1.8","@semantic-release/github":"^9.2.3","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^11.1.0"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_3.0.2_1762749383799_0.43285331192602206","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"param-tracker","version":"3.1.0","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@3.1.0","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"2c66803fea5a1fb3e8e9d197de5732a9f217cd56","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-3.1.0.tgz","fileCount":27,"integrity":"sha512-4SxdEb7YkxUje8TKy0X2Vv+EGnLWjBRPOopNNBHKjYWyYtfClOxT7ddf381IcmUhop5x+df2zT5Khs8+URU9gg==","signatures":[{"sig":"MEYCIQDKZiewbUU/I0pOAk1ItDaft/jnhWXaXu9MmTZ7kYaH/wIhAIIEYJiziCFXI+9dXLwZeW9qvkMgggwahQ66XPaAYoEd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177559},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"5dcb37e92736d2e79f436e71dc716cdc4c3346cb","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","dry-run":"rs-dry-run create","lint:fix":"eslint src/ --fix","changelog":"rs-changelog generate","tag:create":"rs-tag create","dry-run:clean":"rs-dry-run remove","release-notes":"rs-release-notes generate","version:compute":"rs-version compute"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","globals":"^17.0.0","release-suite":"^3.0.4","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_3.1.0_1772679205973_0.8781982244438238","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"param-tracker","version":"3.1.1","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@3.1.1","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"e63fe929ece506aabfeda9d8f992a818d66a813f","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-3.1.1.tgz","fileCount":27,"integrity":"sha512-gdyC+wpg4E4F4DNgJybdrTOPCOzRKMrlXXdpYzyLEL1hadXnq73NLJoizUhtBuErxNqxyzZkyp1yedv0SGj9sg==","signatures":[{"sig":"MEYCIQDm+60lteuinoRtWoeAljioRzP/SHfM8bH8nNwrtLAsPQIhAI0totZDTAucUKaF3kra8wUW8XE7HCIfj58wqC7BW/xL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177775},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"72a9a1810a78fcd9241f753e35ea24c780160090","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","dry-run":"rs-dry-run create","lint:fix":"eslint src/ --fix","changelog":"rs-changelog generate","tag:create":"rs-tag create","dry-run:clean":"rs-dry-run remove","release-notes":"rs-release-notes generate","version:compute":"rs-version compute"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","globals":"^17.0.0","release-suite":"^3.0.4","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_3.1.1_1772681832094_0.010747146730263113","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"param-tracker","version":"4.0.0","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@4.0.0","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"b3e74bbb420f3153d689f6f87036fb75d8b7c9cd","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-4.0.0.tgz","fileCount":36,"integrity":"sha512-CLXGJaHymx8hg2X7cuLBx+FHQVU1q9zRvogV1AF4WFzx/re94ocossbbho4UdWnxMM8umXp55arqb9g994oPMA==","signatures":[{"sig":"MEYCIQDHb6iznYzq1EtaCac1TwaSsZE577FyLb+jWiNUgWKqdQIhAOZBCj1cqQG+HUWrdgtEsOuQMkUVT2YQjIS43o9PPyDP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212998},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"df4a03c78803a642f0a295dd90f93e43dd860f33","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","dry-run":"rs-dry-run create","lint:fix":"eslint src/ --fix","changelog":"rs-changelog generate","tag:create":"rs-tag create","dry-run:clean":"rs-dry-run remove","release-notes":"rs-release-notes generate","version:compute":"rs-version compute"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","globals":"^17.0.0","release-suite":"^3.0.4","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_4.0.0_1774155636873_0.5531542125474413","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"param-tracker","version":"4.0.1","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@4.0.1","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"0fef50ffe7b9e7eef4ba24b023dacd3d50f485fd","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-4.0.1.tgz","fileCount":36,"integrity":"sha512-yABhfZnImVlxa648aJRXqDf/Im7GpnGtlzX3ddFFmipPSdpAgfUjLOGrmpeQJcgoV1+lGrzZAJ8dv02bBiIWYw==","signatures":[{"sig":"MEYCIQCVyzq5Bt5NmmpUXVAT8QpCeI0jH1TUcV8So3ObPc/pngIhALavZciq18xU3SkJy+i/AHtSFrXVV99mG2Hayb/6W43R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214693},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"16e31d07ae677a739fde9cee949027d7a47c5efb","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","dry-run":"rs-dry-run create","lint:fix":"eslint src/ --fix","changelog":"rs-changelog generate","tag:create":"rs-tag create","dry-run:clean":"rs-dry-run remove","release-notes":"rs-release-notes generate","version:compute":"rs-version compute"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","globals":"^17.0.0","release-suite":"^3.1.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_4.0.1_1774207436372_0.8367368006769018","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"param-tracker","version":"5.0.0","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","_id":"param-tracker@5.0.0","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"homepage":"https://github.com/jonasmzsouza/param-tracker#readme","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"dist":{"shasum":"371f431a0df90e86439a76a54791f1d6d77e80df","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-5.0.0.tgz","fileCount":48,"integrity":"sha512-91FqJfVBzB5p/np3BuWfNS1NKcCMvTkTrmPYCKEHXownOMeebkoH1k7q3TInnlALGEtTtP0u8f2NlMpdlOk5Tw==","signatures":[{"sig":"MEQCIHGgg2I7Y4dElKn0NvmVBJCwufxOIaU00fkW1pPRgAFXAiAlMUrfSXJNgFchGKhgnpELsom40Gf5W61hXx2MQyorRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1059047},"main":"dist/tracker.cjs.js","type":"module","unpkg":"dist/tracker.min.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","exports":{".":{"import":"./dist/tracker.esm.js","default":"./dist/tracker.min.js","require":"./dist/tracker.cjs.js"}},"gitHead":"b24dd9680f8631841c45c9803ee62aa9d3940e82","scripts":{"lint":"eslint src/","test":"echo 'No tests configured yet.'","build":"node build.mjs","watch":"node build.mjs --watch","dry-run":"rs-dry-run create","lint:fix":"eslint src/ --fix","changelog":"rs-changelog generate","tag:create":"rs-tag create","dry-run:clean":"rs-dry-run remove","release-notes":"rs-release-notes generate","version:compute":"rs-version compute"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"jsdelivr":"dist/tracker.min.js","repository":{"url":"git+https://github.com/jonasmzsouza/param-tracker.git","type":"git"},"_npmVersion":"11.9.0","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"tldts":"^7.0.27"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.38.0","esbuild":"^0.25.11","globals":"^17.0.0","release-suite":"^3.1.0","eslint-plugin-import":"^2.32.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/param-tracker_5.0.0_1774665905280_0.7137657057687703","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"param-tracker","version":"5.0.1","description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","type":"module","main":"dist/tracker.cjs.js","module":"dist/tracker.esm.js","browser":"dist/tracker.min.js","unpkg":"dist/tracker.min.js","jsdelivr":"dist/tracker.min.js","sideEffects":false,"exports":{".":{"import":"./dist/tracker.esm.js","require":"./dist/tracker.cjs.js","default":"./dist/tracker.min.js"}},"scripts":{"lint":"eslint src/","lint:fix":"eslint src/ --fix","format":"prettier . --write","build":"node build.mjs","watch":"node build.mjs --watch","test":"echo 'No tests configured yet.'","dry-run":"rs-dry-run create","dry-run:clean":"rs-dry-run remove","version:compute":"rs-version compute","changelog":"rs-changelog generate","release-notes":"rs-release-notes generate","tag:create":"rs-tag create"},"repository":{"type":"git","url":"git+https://github.com/jonasmzsouza/param-tracker.git"},"keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"devDependencies":{"esbuild":"^0.25.11","eslint":"9.38.0","eslint-config-prettier":"^10.1.8","eslint-plugin-import":"^2.32.0","globals":"^17.0.0","prettier":"^3.8.1","release-suite":"^3.2.1"},"dependencies":{"tldts":"^7.0.27"},"gitHead":"fc944820096c6725c71ab40578de39feaab8fc77","_id":"param-tracker@5.0.1","homepage":"https://github.com/jonasmzsouza/param-tracker#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-Z9qotaBnMMtirTApiKeh2W3Hd5Q1uBLUWv/oH4G27+kBlz9wZqYXrJwk1ZOO4AVSj9rtKlheRJBrP8Q7W51dIw==","shasum":"e46dbdb18cdf429eb47f5ee97ca6865dd9904933","tarball":"https://registry.npmjs.org/param-tracker/-/param-tracker-5.0.1.tgz","fileCount":65,"unpackedSize":1085953,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/param-tracker@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDb3/6vDF/2Ika6KplRpr/ZRxFeZyFnBFrSlDpN7kUIiAiAxXKUIl0FJT8c7houdymh1FvV2eppKraMrcfAEbH7ylw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a9dc95ab-6ab9-4f18-b617-597ffadb52d5"}},"directories":{},"maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/param-tracker_5.0.1_1775497853036_0.22702168643268683"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-09T06:01:54.615Z","modified":"2026-04-06T17:50:53.457Z","2.1.0":"2025-11-03T02:51:41.646Z","3.0.0":"2025-11-04T04:47:05.650Z","2.0.0":"2025-11-04T04:53:21.452Z","3.0.1":"2025-11-09T06:01:54.821Z","3.0.2":"2025-11-10T04:36:24.003Z","3.1.0":"2026-03-05T02:53:26.125Z","3.1.1":"2026-03-05T03:37:12.287Z","4.0.0":"2026-03-22T05:00:37.016Z","4.0.1":"2026-03-22T19:23:56.536Z","5.0.0":"2026-03-28T02:45:05.457Z","5.0.1":"2026-04-06T17:50:53.173Z"},"bugs":{"url":"https://github.com/jonasmzsouza/param-tracker/issues"},"author":{"name":"Jonas Souza","email":"jonasmzsouza@gmail.com"},"license":"MIT","homepage":"https://github.com/jonasmzsouza/param-tracker#readme","keywords":["utm","tracker","tracking","forms","links","link-cleaner","url-utils","javascript","browser","frontend","analytics","seo","esbuild","browser","esmodule","commonjs","amd","nodejs","no-jquery"],"repository":{"type":"git","url":"git+https://github.com/jonasmzsouza/param-tracker.git"},"description":"Universal JavaScript utility for tracking and preserving UTM parameters in links and forms — compatible with browsers, Node.js, and ES Modules.","maintainers":[{"name":"jonasmzsouza","email":"jonasmzsouza@gmail.com"}],"readme":"# 🧭 ParamTracker\n\n[![param-tracker (latest_)](https://img.shields.io/npm/v/param-tracker/latest.svg)](https://img.shields.io/npm/v/param-tracker)\n[![param-tracker (donwloads)](https://img.shields.io/npm/dy/param-tracker.svg)](https://img.shields.io/npm/dm/param-tracker)\n[![](https://data.jsdelivr.com/v1/package/npm/param-tracker/badge)](https://www.jsdelivr.com/package/npm/param-tracker)\n![bundle size](https://img.shields.io/bundlejs/size/param-tracker)\n![license](https://img.shields.io/npm/l/param-tracker)\n![build](https://img.shields.io/github/actions/workflow/status/jonasmzsouza/param-tracker/create-and-publish.yml)\n\n**ParamTracker** is a lightweight JavaScript library for intelligent manipulation of **links and forms**, preserving **UTM parameters** and removing irrelevant search parameters.  \nIt now supports **ES Modules**, **CommonJS**, and **browser global (UMD)** environments — perfect for WordPress, landing pages, or any website that relies on campaign tracking.\n\nNow available for **ES Modules** _and_ **global browser usage (UMD/IIFE)** — no build tools required.\n\n---\n\n## 📚 Table of Contents\n\n- [Why ParamTracker](#-why-paramtracker)\n- [Features](#-features)\n- [Installation](#-installation)\n- [Quick Start](#-quick-start)\n- [Usage](#-usage)\n- [Lifecycle](#-lifecycle-control)\n- [Architecture](#-architecture)\n- [Configuration](#-configuration)\n- [Advanced Usage](#-advanced-usage)\n- [Build Outputs](#️-build-outputs)\n- [License](#-license)\n\n---\n\n## ❓ Why ParamTracker?\n\nModern websites often rely on marketing attribution parameters such as UTM tags.\n\nHowever, these parameters are frequently lost when users navigate through internal links or submit forms.\n\nParamTracker solves this by automatically:\n\n• preserving tracking parameters across links  \n• injecting parameters into configured forms  \n• removing irrelevant query parameters  \n• working with dynamic DOM environments (SPA frameworks)\n\nThis ensures consistent campaign tracking without requiring manual URL management.\n\n---\n\n## 🚀 Features\n\n✅ Maintains UTM parameters (`utm_source`, `utm_medium`, `utm_campaign`, etc.).  \n✅ Keeps **custom parameters** defined in the configuration (`includeParams`)  \n✅ Removes unnecessary or unwanted search parameters (`excludeParams` such as `s`, `type`, `category`, etc.)  \n✅ Cleans malformed URLs (`??`, `%3F`, etc.)  \n✅ Preserves` #hash` anchors for smooth navigation  \n✅ Automatically injects UTM and **custom parameters** into configured forms (`acceptFormIds`)  \n✅ Compatible with multiple domains and subdomains (`acceptOrigins`)  \n✅ Ignores **file URLs** and links with specific **protocols** (`mailto:`, `tel:`, etc.)  \n✅ Ignores links containing **specific CSS classes** (`ignoreClasses`)  \n✅ Skips links located in **specific pathnames** (`ignorePathnames`)  \n✅ Dynamically manages and validates custom link attributes (`manageAttributes`)  \n✅ Skips links whose **attribute values** match ignored patterns (`ignoreAttrValues`) —  \n&nbsp;&nbsp;&nbsp;🔹 Used together with `manageAttributes` to filter links by attribute content.  \n✅ Fully supports ES Modules (`import`/`export`), CommonJS, AMD, and browser globals (UMD)  \n✅ Full lifecycle control (`init`, `refresh`, `destroy`)  \n✅ SPA-ready with DOM observation (MutationObserver)\n\n---\n\n## ⚙️ Installation\n\n### via NPM\n\n```bash\nnpm install param-tracker\n```\n\n### Or Via CDN (UMD ready):\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/param-tracker@latest/dist/tracker.min.js\"></script>\n```\n\n### Or manual download\n\nDownload one the latest [releases](https://github.com/jonasmzsouza/param-tracker/releases). The files you need are inside the dist.\n\n---\n\n## ⚡ Quick Start\n\nA simple example of how to use **ParamTracker** on a website with links and forms.\n\nFor more practical examples, including advanced use cases with all configuration options, check out the [`/demos`](./demos) folder — it contains multiple `.html` files demonstrating different tracking scenarios.\n\n### Basic Example\n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <title>ParamTracker Quick Start</title>\n  </head>\n  <body>\n    <!-- Example Links -->\n    <a href=\"https://example.com/page1?custom=example\">Page 1</a>\n    <a href=\"https://example.com/page2\">Page 2</a>\n\n    <!-- Example Form -->\n    <form id=\"registrationForm\">\n      <input type=\"text\" name=\"name\" placeholder=\"Name\" />\n      <input type=\"email\" name=\"email\" placeholder=\"Email\" />\n      <button type=\"submit\">Submit</button>\n    </form>\n\n    <script src=\"https://cdn.jsdelivr.net/npm/param-tracker@latest/dist/tracker.min.js\"></script>\n    <script>\n      // Initialize ParamTracker with configuration\n      const tracker = new ParamTracker({\n        form: {\n          acceptFormIds: ['registrationForm'],\n        },\n        link: {\n          acceptOrigins: ['example.com'], //cross-domain\n        },\n      }).init();\n    </script>\n  </body>\n</html>\n```\n\nWhen your page is visited with UTM parameters such as `?utm_source=tracker&utm_medium=demo`\nand you click a link like `Page 1` or `Page 2`. While the current page contains UTM parameters,\nParamTracker will automatically append them to the target URL:\n\n```bash\n# Page 1\nhttps://example.com/page1?utm_source=tracker&utm_medium=demo&custom=example\n\n# Page 2\nhttps://example.com/page2?utm_source=tracker&utm_medium=demo\n```\n\nAnd when you submit a form with an accepted ID, the library automatically injects hidden inputs containing the same UTM parameters (and any additional parameters defined in the configuration).\n\n### 🔍 Learn More with Demos\n\nThe [`/demos`](./demos) directory includes multiple examples to help you understand how each configuration option behaves, such as:\n\n- Ignoring specific pathnames (ignorePathnames)\n- Ignoring links by class (ignoreClasses)\n- Ignoring attributes by value (ignoreAttrValues)\n- Managing extra attributes (manageAttributes)\n- Handling includeParams and excludeParams in links and forms\n- Demonstrating form behavior using event.preventDefault() to show how UTMs and custom parameters are injected before submission.\n\nThese demos illustrate how ParamTracker keeps, merges, or ignores parameters based on your configuration — ensuring consistent tracking even when users navigate across different domains or pages.\n\n---\n\n## 🧠 Usage\n\n#### 🧩 Option 1 — Browser (Global Usage)\n\n```html\n<script src=\"https://cdn.jsdelivr.net/npm/param-tracker@latest/dist/tracker.min.js\"></script>\n<script>\n  const tracker = new ParamTracker({\n    // Your custom settings go here\n  }).init();\n</script>\n```\n\n#### 📦 Option 2 — ES Module (Modern Apps)\n\n```js\nimport { ParamTracker } from 'param-tracker';\n\nconst tracker = new ParamTracker({\n  // Your custom settings go here\n}).init();\n```\n\n#### 💻 Option 3 — Node.js / CommonJS\n\n```js\nconst { ParamTracker } = require('param-tracker');\n\nconst tracker = new ParamTracker({\n  // Your custom settings go here\n}).init();\n```\n\n---\n\n## 🔄 Lifecycle Control\n\nParamTracker now provides full lifecycle control, allowing you to initialize, refresh, and destroy the instance when needed — especially useful for SPA (React, Vue, Angular) or dynamic environments.\n\n### Methods\n\n```js\n// Config (Optional)\nconst config = {};\n\n// Instance\nconst tracker = new ParamTracker(config);\n\n// Initialize\ntracker.init();\n\n// Re-run link sanitization and clear internal cache\ntracker.refresh();\n\n// Remove all listeners and observers (cleanup)\ntracker.destroy();\n```\n\n**Notes**\n\n- `init()` is idempotent (safe to call multiple times)\n- `destroy()` removes all event listeners and stops DOM observation\n- `refresh()` is useful when URL parameters or DOM state changes dynamically\n\n---\n\n## 🏗 Architecture\n\nParamTracker uses a **micro-kernel architecture with specialized handlers** to keep the core lightweight and extensible.\n\nThe core orchestrates lifecycle and configuration while dedicated handlers manage:\n\n• event delegation  \n• DOM observation  \n• link processing  \n• form parameter propagation\n\nThis modular design improves maintainability, testability, and extensibility.\n\nLearn more:\n\n👉 [./docs/architecture/](./docs/architecture/)\n\n---\n\n## 🧩 Configuration\n\nParamTracker provides a flexible configuration system for controlling how parameters propagate across links and forms.\n\nBelow is a **quick overview of the available options**.\n\n| Nest | Option           | Type     | Description                                        |\n| ---- | ---------------- | -------- | -------------------------------------------------- |\n| form | acceptFormIds    | string[] | Forms that should receive parameters automatically |\n| link | acceptOrigins    | string[] | Allowed domains for propagation                    |\n| link | ignorePathnames  | string[] | Pathnames excluded from tracking                   |\n| link | ignoreClasses    | string[] | CSS classes that disable tracking                  |\n| link | ignoreProtocols  | string[] | Protocols that should not be modified              |\n| link | manageAttributes | string[] | Attributes inspected for filtering                 |\n| link | ignoreAttrValues | string[] | Attribute values that trigger ignore               |\n| link | includeParams    | string[] | Parameters to preserve and propagate               |\n| link | excludeParams    | string[] | Parameters removed from URLs                       |\n\nParamTracker performs a deep merge between the internal default configuration and the user-provided configuration.\n\nThis means:\n\n• Default values are always preserved  \n• Only the properties you specify are merged into the configuration  \n• Unspecified options continue using the default values\n\n👉 Full configuration documentation including default values:\nSee [./docs/configuration/](./docs/configuration/)\n\n---\n\n### Link Filtering Rules\n\nBefore modifying links, ParamTracker applies several filtering rules to ensure safe behavior.\n\nThese rules include:\n\n- File URL detection (downloads and media files)\n- Protocol filtering (`ignoreProtocols`)\n- CSS class filtering (`ignoreClasses`)\n- Attribute filtering (`manageAttributes` + `ignoreAttrValues`)\n- Origin validation (`acceptOrigins`)\n- Pathname filtering (`ignorePathnames`)\n\nFor a complete explanation of how links are evaluated, see:\n\n👉 [`./docs/link-filtering/`](./docs/link-filtering/)\n\n---\n\n## 🧩 Advanced Usage\n\nParamTracker is designed to be extensible and will support advanced configuration patterns such as presets and plugins for framework-specific behavior.\n\nStay tuned for upcoming releases.\n\n---\n\n## 🏗️ Build Outputs\n\n| Format       | File                      | Description                              |\n| ------------ | ------------------------- | ---------------------------------------- |\n| UMD          | `dist/tracker.js`         | Universal build for browsers and Node.js |\n| UMD Minified | `dist/tracker.min.js`     | Minified version for production use      |\n| ESM          | `dist/tracker.esm.js`     | ES Module format (`import`)              |\n| ESM Minified | `dist/tracker.esm.min.js` | Minified version for production use      |\n| CJS          | `dist/tracker.cjs.js`     | CommonJS format (`require`)              |\n| CJS Minified | `dist/tracker.cjs.min.js` | Minified version for production use      |\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](./LICENSE).\n\n---\n\n## ✨ Author\n\n<table>\n  <tr>\n    <td align=\"center\">\n      <a href=\"https://jonasmzsouza.github.io/\">\n         <img style=\"border-radius: 50%;\" src=\"https://avatars.githubusercontent.com/u/61324433?v=4\" width=\"100px;\" alt=\"\"/>\n         <br />\n         <sub><b>Jonas Souza</b></sub>\n      </a>\n    </td>\n  </tr>\n</table>\n \n💼 [LinkedIn](https://linkedin.com/in/jonasmzsouza)\n💻 [GitHub](https://github.com/jonasmzsouza)\n","readmeFilename":"README.md"}