{"_id":"@alessiofrittoli/url-utils","_rev":"14-b11bb75e1d1f323cd5d6a8fb74e4cdb9","name":"@alessiofrittoli/url-utils","dist-tags":{"latest":"4.0.0"},"versions":{"0.1.0":{"name":"@alessiofrittoli/url-utils","version":"0.1.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@0.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"68ed540cfabd7840482ba7a1b2228adf067124f5","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-0.1.0.tgz","fileCount":19,"integrity":"sha512-61ZmakF8Hnor//o4sdaBREbyQKnKVpqkVs/W6/9Jo5SKA3RZab6GGz9QEaJOBbRNjTxfTf0M7Q0j2dFhRUXvvA==","signatures":[{"sig":"MEUCIQDp7MzPnEm71iqC+dQtlFow4VRLfom798tbW9Tx6xW04gIgDJktuOAq5SN+mSDQeGWGd+dRqwB8CzWIy7BClUWDKEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20538},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"gitHead":"111af7942a8449ebd96832e3f831bcc5678c2eab","scripts":{"lint":"eslint","test":"jest --watchAll --verbose","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","test:ci":"jest --ci --verbose","test:jest":"pnpm test jest.test.ts","test:check":"pnpm test check.test.ts","test:jsdom":"JSDOM=true pnpm test","test:parse":"pnpm test parse.test.ts","test:slash":"pnpm test slash.test.ts","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"concurrently --prefix none --kill-others \"pnpm jest --watchAll --verbose --coverage\" \"pnpm test:serve-coverage\"","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","esbuild":"0.24.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.2","http-server":"^14.1.1","concurrently":"^9.1.0","@jest/globals":"^29.7.0","typescript-eslint":"^8.18.0","jest-environment-jsdom":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_0.1.0_1734716882810_0.6310092028721315","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alessiofrittoli/url-utils","version":"1.0.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@1.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"22be752e7fc6c9f87c4ef16bf5aede42f24edeb2","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-1.0.0.tgz","fileCount":19,"integrity":"sha512-z4LJUtS6tT2MRDu6Sqcy7fYNW03B44+JXEQC3Xn1MpbWJ8xgz0a52dDvlag8e7eGivDGOfX7ZeXYq6iEI+Z27w==","signatures":[{"sig":"MEYCIQDTeMd1y2Hztdp+qDd1gVpBJdcIZTNuo9+1tMdpRw4Q6AIhAJX58+GODX/tJlF0PXnCl9apx/LXoSOkBm0G8vuHnexR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35205},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"gitHead":"ab145847509cf5b1c25e260493a9d2c16dbaa753","scripts":{"lint":"eslint","test":"pnpm test:watch","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:jest":"pnpm test:watch jest.test.ts","test:check":"pnpm test check.test.ts","test:jsdom":"JSDOM=true pnpm test:watch","test:parse":"pnpm test parse.test.ts","test:slash":"pnpm test slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"pnpm test:watch --coverage","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:ci:coverage":"pnpm test:ci --coverage","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:jsdom:serve":"JSDOM=true pnpm test:coverage:serve"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.5","dotenv":"^16.4.7","eslint":"^9.17.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.17.0","typescript":"^5.7.2","@types/jest":"^29.5.14","@types/node":"^22.10.3","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.19.0","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_1.0.0_1735825766946_0.7362932334690249","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alessiofrittoli/url-utils","version":"2.0.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@2.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"7950cc7980d850d10370c9b9fa6b59c7cee1ef83","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-2.0.0.tgz","fileCount":27,"integrity":"sha512-nJpz4XhT1RQ8XV49nqPg0ClzreH2P1zw6V2+EQzCDFWSYeqkpwApQrKGNq1mok3o5Twx3auw1dBlSVDINVaGLg==","signatures":[{"sig":"MEUCICBcOajt8MLyB/mHpkusS3LwV2Dx2TJR4MgazqDCJddtAiEAw2k7yJxvaL7krggeAztrZKh046e8EEvxYKNDJoJVeW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92070},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"gitHead":"f306b26b526bf9ee6a2f75ff61b39c39a5c67812","scripts":{"lint":"eslint","test":"jest","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index-jsdom.test.ts","test:jest":"pnpm test:watch jest.test.ts","test:check":"pnpm test:watch check.test.ts check-jsdom.test.ts","test:jsdom":"JSDOM=true pnpm test:watch","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"pnpm test:watch --coverage","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:ci:coverage":"pnpm test:ci --coverage","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:jsdom:serve":"JSDOM=true pnpm test:coverage:serve"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.3.6","dotenv":"^16.4.7","eslint":"^9.19.0","globals":"^15.14.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","@eslint/js":"^9.19.0","typescript":"^5.7.3","@types/jest":"^29.5.14","@types/node":"^22.12.0","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.22.0","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_2.0.0_1738320470244_0.7642681662946678","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@alessiofrittoli/url-utils","version":"3.0.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.0.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"922c228706e09c9d7edc3fc882bd1479ab38c8d0","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.0.0.tgz","fileCount":27,"integrity":"sha512-Q5ILMsI1m8f9ykoZZRJvgV3pxnBuQkf7tYBNhBzuIOfSHrXVSxvNupipeZIYB3fpZVM0w/lMPUmLNsUGjBrrMw==","signatures":[{"sig":"MEUCIF3CUB3chExzZ5Ql/icLyxESzpdpySWuET2X9g1en2bnAiEAxK0OfPa5PkpIcofMt1eLj1/PeuKetLss/UwzZ5pP3Mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85294},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"gitHead":"ed3961ad32dd9f9e0f8c42cf6088f6776d7b07e7","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index-jsdom.test.ts","test:jest":"pnpm test:watch jest.test.ts","test:check":"pnpm test:watch check.test.ts check-jsdom.test.ts","test:jsdom":"JSDOM=true pnpm test:watch","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"pnpm test:watch --coverage","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:ci:coverage":"pnpm test:ci --coverage","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:jsdom:serve":"JSDOM=true pnpm test:coverage:serve"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.22.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.22.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.26.1","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.0.0_1741798570584_0.4001243699863266","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@alessiofrittoli/url-utils","version":"3.1.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.1.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"8b770f9193237c4d4329305ddf2b0fc65ebe0b7e","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.1.0.tgz","fileCount":27,"integrity":"sha512-uzDfynrkDM22qPl+yndzuOluMH1KsQEIkCxnJoUWICDioFlx2D7rYbUtoW6zRigVYOwAQk521+lfE0NmUQzsRA==","signatures":[{"sig":"MEUCIDskAa1oGY4JwiOx52Sh0XaHzKqbu38J6q8DdFQwwChVAiEAoEDbWL4QeVe++xhPInCCb3uHl+sWmYiq/ZNaWAej1mk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104028},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"gitHead":"3f2ad3a90d7021aed42e8e58b9eae4fbed4e2b30","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index-jsdom.test.ts","test:jest":"pnpm test:watch jest.test.ts","test:check":"pnpm test:watch check.test.ts check-jsdom.test.ts","test:jsdom":"JSDOM=true pnpm test:watch","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"pnpm test:watch --coverage","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:ci:coverage":"pnpm test:ci --coverage","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:jsdom:serve":"JSDOM=true pnpm test:coverage:serve"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.22.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.22.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.26.1","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.1.0_1742054602176_0.19652986103108594","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@alessiofrittoli/url-utils","version":"3.2.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.2.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"9322dc93ced384744f33a2f37a4febbad9dd30bb","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.2.0.tgz","fileCount":27,"integrity":"sha512-nm6XMM0KFQqwZyq1XMaiEMP37orO0zhLjcUL0EWGilkAlvYFQUHhfsWgZMb+Pfkkk4rOjLk7H58TN6Gu3TLPzA==","signatures":[{"sig":"MEUCIQCJyhD6xsfG0nGNfrHlaZ9IkBvl8EFpuKLCkaZyIn5JbAIgIv2rSBBZgB6eQqbYrWQ0GfmdKwq7omwZSXmVZGm4Ky0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104829},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"b48a46fa2f0f1f5345077a45a24c6041a55c4ffb","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm test:ci:jsdom && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index-jsdom.test.ts","test:jest":"pnpm test:watch jest.test.ts","test:check":"pnpm test:watch check.test.ts check-jsdom.test.ts","test:jsdom":"JSDOM=true pnpm test:watch","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:ci:jsdom":"JSDOM=true pnpm test:ci","test:coverage":"pnpm test:watch --coverage","test:jest:jsdom":"JSDOM=true pnpm test:jest","test:check:jsdom":"JSDOM=true pnpm test:check","test:ci:coverage":"pnpm test:ci --coverage","test:parse:jsdom":"JSDOM=true pnpm test:parse","test:slash:jsdom":"JSDOM=true pnpm test:slash","test:coverage:jsdom":"JSDOM=true pnpm test:coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:jsdom:serve":"JSDOM=true pnpm test:coverage:serve"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.22.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.22.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.10","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.27.0","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.3.1"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.2.0_1742473532660_0.21229150173017008","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@alessiofrittoli/url-utils","version":"3.3.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.3.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"24a3af9a0fa0c91247b4f8a5e938c686159bc5b5","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.3.0.tgz","fileCount":27,"integrity":"sha512-nKmWUEkWWd330WkpgAA+I16vg9k/BrizRDuf/zuUX2L7bqej8yvS6QoAgSk53XcRMJZTy0IwXnoacR5M/5PdUg==","signatures":[{"sig":"MEUCIFui+FDHp7O6iQLzgoP914gV4DiAAogKVnC81fi1b0zsAiEA+NqHg4LPNOlYn6q4N+By5zSy4cDZnXiUKxCU3BCP6oQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104334},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"c83da4614649c51379dbcc67ff56428a6393fd60","scripts":{"//1a":"*********************************************************************","//1b":"*********************** BUILD - LINT - RELEASE **********************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && tsup","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","build:watch":"tsup --watch","test:coverage":"pnpm test:watch --coverage","test:ci:coverage":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"10.9.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.4.7","eslint":"^9.22.0","globals":"^16.0.0","ts-jest":"^29.2.6","ts-node":"^10.9.2","@eslint/js":"^9.22.0","typescript":"^5.8.2","@types/jest":"^29.5.14","@types/node":"^22.13.11","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.27.0","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.3.0_1742568922196_0.2860477106991892","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@alessiofrittoli/url-utils","version":"3.4.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.4.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"f356723b250f92d2fbcf6023fec579a4ee203d86","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.4.0.tgz","fileCount":25,"integrity":"sha512-fBtD+QwSI2ZisPTCMxWL6iRN2bftOdpwTaDABBqqdrk9NMmAqF3WIe92oTm61f80dcdg+in8l0THJuRLeCMv4A==","signatures":[{"sig":"MEQCIA4ICUUxxtYYM97I4Zcb50Vw1qyyX10gcw/mcnsmC5knAiBo/JttaKdXzx/1+hfHJ9cck5+XboGfMI2czKlYXbBtgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35664},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"577c5d2cc3c880773b81fb00e641806c232845a1","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","build:prod":"NODE_ENV=production tsup","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"11.0.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.4.0","dotenv":"^16.5.0","eslint":"^9.25.1","globals":"^16.0.0","ts-jest":"^29.3.2","ts-node":"^10.9.2","@eslint/js":"^9.25.1","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.3","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.31.1","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.4.0_1746208750521_0.02717188360164635","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@alessiofrittoli/url-utils","version":"3.5.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.5.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"dbb47e425903e20bd5179ee7570eeee4abca2ac8","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.5.0.tgz","fileCount":25,"integrity":"sha512-NISzE+Y+6iJPqPMrdbB8jNo3zXgMKI4FsfqRyMzy2oyC713ihoqA01eVhv4NzIq0wfny+ac6+fzzrFvN470FQQ==","signatures":[{"sig":"MEYCIQDDgOoflfOJZV8VmqaGVp1/UJeMU+M06fgxXHHgzH4fOQIhAJGyL8NVd3jfqEgRZgiHJZKPWE+qT2jx1mkQJWOxYS4y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35724},"main":"./dist/index.js","pnpm":{"onlyBuiltDependencies":["@alessiofrittoli/type-utils","esbuild"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./check":{"types":"./dist/check/index.d.ts","import":"./dist/check/index.mjs","require":"./dist/check/index.js"},"./parse":{"types":"./dist/parse/index.d.ts","import":"./dist/parse/index.mjs","require":"./dist/parse/index.js"},"./slash":{"types":"./dist/slash/index.d.ts","import":"./dist/slash/index.mjs","require":"./dist/slash/index.js"}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"de1806f607adbfa549c92a86e62e83c79378cebd","scripts":{"dev":"NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/publish.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","build:prod":"NODE_ENV=production tsup","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"11.4.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/web-utils":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.5.0","dotenv":"^16.5.0","eslint":"^9.27.0","globals":"^16.1.0","ts-jest":"^29.3.4","ts-node":"^10.9.2","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/jest":"^29.5.14","@types/node":"^22.15.21","http-server":"^14.1.1","concurrently":"^9.1.2","@jest/globals":"^29.7.0","typescript-eslint":"^8.32.1","jest-environment-jsdom":"^29.7.0","@alessiofrittoli/node-scripts":"^2.6.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.5.0_1748095525348_0.5358608733958699","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@alessiofrittoli/url-utils","version":"3.6.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.6.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"b240a437c4c345a149896aa900184dd5f56232f6","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.6.0.tgz","fileCount":35,"integrity":"sha512-TqmDDR+Llez4+tKErDKyGAQdFg103ccCJ8bNPLzQxLz7/vcqBrn7Nr7iJUpJjrQssS2Q6NkuBopGKZ0s+dIeyw==","signatures":[{"sig":"MEQCIA/wbwc7qieEFHZHsKV8Zr4kFxaFW3cGMIQMl0iyvFdwAiBSn2scxK8NKzIIaWQIc0uGJkOcf3W2/QqQQZTKS+LVrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38687},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./lib":{"import":{"types":"./dist/lib/index.d.mts","default":"./dist/lib/index.mjs"},"require":{"types":"./dist/lib/index.d.ts","default":"./dist/lib/index.js"}},"./check":{"import":{"types":"./dist/check/index.d.mts","default":"./dist/check/index.mjs"},"require":{"types":"./dist/check/index.d.ts","default":"./dist/check/index.js"}},"./parse":{"import":{"types":"./dist/parse/index.d.mts","default":"./dist/parse/index.mjs"},"require":{"types":"./dist/parse/index.d.ts","default":"./dist/parse/index.js"}},"./slash":{"import":{"types":"./dist/slash/index.d.mts","default":"./dist/slash/index.mjs"},"require":{"types":"./dist/slash/index.d.ts","default":"./dist/slash/index.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"1b6ed833a756b39ccc1cdeb59a354340f3eb0f8a","scripts":{"dev":"cross-env NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/release.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","build:prod":"cross-env NODE_ENV=production tsup","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"11.4.0","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/web-utils":"^1.17.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","dotenv":"^17.2.0","eslint":"^9.31.0","globals":"^16.3.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","cross-env":"^7.0.3","@eslint/js":"^9.31.0","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^24.0.15","http-server":"^14.1.1","concurrently":"^9.2.0","@jest/globals":"^30.0.4","typescript-eslint":"^8.37.0","jest-environment-jsdom":"^30.0.4","@alessiofrittoli/node-scripts":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.6.0_1753102263019_0.496665466824995","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@alessiofrittoli/url-utils","version":"3.7.0","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.7.0","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"899bde0785a8e8581c4e24e47ea2b7039e7bbb4b","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.7.0.tgz","fileCount":35,"integrity":"sha512-ktGcRYVWRucMP7GrC/Mp71ENwFi7NyTimEE/2jn+KhfRfHCrAuVsJ3nzlNFwRmtqswNiXW9J4BJZMs50319ILQ==","signatures":[{"sig":"MEUCIFbr6JVFbPhfpJ/+FpTFKDrAPy0H6pJk6DG2fGrKSHOJAiEAvPgAyQ5IEXtQtfF6IzmS5ZaVkH3L4XL+FLfElFuzBa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38687},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./lib":{"import":{"types":"./dist/lib/index.d.mts","default":"./dist/lib/index.mjs"},"require":{"types":"./dist/lib/index.d.ts","default":"./dist/lib/index.js"}},"./check":{"import":{"types":"./dist/check/index.d.mts","default":"./dist/check/index.mjs"},"require":{"types":"./dist/check/index.d.ts","default":"./dist/check/index.js"}},"./parse":{"import":{"types":"./dist/parse/index.d.mts","default":"./dist/parse/index.mjs"},"require":{"types":"./dist/parse/index.d.ts","default":"./dist/parse/index.js"}},"./slash":{"import":{"types":"./dist/slash/index.d.mts","default":"./dist/slash/index.mjs"},"require":{"types":"./dist/slash/index.d.ts","default":"./dist/slash/index.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"89930f5d6440a866170327ade7474bde904ca740","scripts":{"dev":"cross-env NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/release.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","build:prod":"cross-env NODE_ENV=production tsup","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"deprecated":"Corrupted pnpm-lock.yaml file. Please install v3.7.1 instead.","repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"11.5.2","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/web-utils":"^1.17.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","tsup":"^8.5.0","dotenv":"^17.2.0","eslint":"^9.31.0","globals":"^16.3.0","ts-jest":"^29.4.0","ts-node":"^10.9.2","cross-env":"^7.0.3","@eslint/js":"^9.31.0","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^24.0.15","http-server":"^14.1.1","concurrently":"^9.2.0","@jest/globals":"^30.0.4","typescript-eslint":"^8.37.0","jest-environment-jsdom":"^30.0.4","@alessiofrittoli/node-scripts":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.7.0_1764788436942_0.3019729096504711","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@alessiofrittoli/url-utils","version":"3.7.1","keywords":["url-utils"],"author":{"url":"https://alessiofrittoli.it","name":"Alessio Frittoli","email":"info@alessiofrittoli.it"},"license":"MIT","_id":"@alessiofrittoli/url-utils@3.7.1","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"dist":{"shasum":"c4cb401499815bbc277d25767201c1e4e8b3e266","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-3.7.1.tgz","fileCount":35,"integrity":"sha512-d4IY0H2lQoXt8Iq3riD7nYvfa+VEAnkBh2R9mvZNxbqQo0TmGc32+mf0w+FKviZ/xth2JhusVoSG804dHXHIdg==","signatures":[{"sig":"MEQCIBrZcNvGh3nfOpvX0ynxRFn6iqocbufC1Oq7LzsN8MuaAiANUXjf4Mz0dIyhhTX2vcUUSxNdQ5AVC8cMxC9xxD2PqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38688},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./lib":{"import":{"types":"./dist/lib/index.d.mts","default":"./dist/lib/index.mjs"},"require":{"types":"./dist/lib/index.d.ts","default":"./dist/lib/index.js"}},"./check":{"import":{"types":"./dist/check/index.d.mts","default":"./dist/check/index.mjs"},"require":{"types":"./dist/check/index.d.ts","default":"./dist/check/index.js"}},"./parse":{"import":{"types":"./dist/parse/index.d.mts","default":"./dist/parse/index.mjs"},"require":{"types":"./dist/parse/index.d.ts","default":"./dist/parse/index.js"}},"./slash":{"import":{"types":"./dist/slash/index.d.mts","default":"./dist/slash/index.mjs"},"require":{"types":"./dist/slash/index.d.ts","default":"./dist/slash/index.js"}}},"funding":[{"url":"https://github.com/sponsors/alessiofrittoli","type":"github"}],"gitHead":"ef7fc09de3fd47c1e172325127d1356103f999ee","scripts":{"dev":"cross-env NODE_ENV=development tsup --watch","//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","lint":"eslint","test":"jest --verbose","build":"pnpm lint && pnpm test:ci && pnpm build:prod","release":"node scripts/release.js --verbose --npm","test:ci":"jest --ci --verbose","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","build:prod":"cross-env NODE_ENV=production tsup","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts","test:watch":"jest --watchAll --verbose","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent"},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"repository":{"url":"git+https://github.com/alessiofrittoli/url-utils.git","type":"git"},"_npmVersion":"11.5.2","description":"TypeScript URL utility library","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","dependencies":{"@alessiofrittoli/web-utils":"^1.17.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","tsup":"^8.5.1","dotenv":"^17.2.3","eslint":"^9.39.1","globals":"^16.5.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","cross-env":"^10.1.0","@eslint/js":"^9.39.1","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^24.10.1","http-server":"^14.1.1","concurrently":"^9.2.1","@jest/globals":"^30.2.0","typescript-eslint":"^8.48.1","jest-environment-jsdom":"^30.2.0","@alessiofrittoli/node-scripts":"^3.2.0"},"_npmOperationalInternal":{"tmp":"tmp/url-utils_3.7.1_1764788785331_0.09644015994607202","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@alessiofrittoli/url-utils","version":"4.0.0","description":"TypeScript URL utility library","author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","funding":[{"type":"github","url":"https://github.com/sponsors/alessiofrittoli"}],"keywords":["url-utils"],"homepage":"https://github.com/alessiofrittoli/url-utils#readme","bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/url-utils.git"},"main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./*":{"import":{"types":"./dist/*/index.d.mts","default":"./dist/*/index.mjs"},"require":{"types":"./dist/*/index.d.ts","default":"./dist/*/index.js"}}},"sideEffects":false,"scripts":{"//1a":"*********************************************************************","//1b":"******************** DEV - BUILD - LINT - RELEASE *******************","//1c":"*********************************************************************","dev":"cross-env NODE_ENV=development tsup --watch","build:prod":"cross-env NODE_ENV=production tsup","build":"pnpm lint && pnpm test:ci && pnpm build:prod","lint":"eslint","release":"node scripts/release.js --verbose --npm","//2a":"*********************************************************************","//2b":"***************************** UNIT TESTS ****************************","//2c":"*********************************************************************","test":"jest --verbose","test:watch":"jest --watchAll --verbose","test:ci":"jest --ci --verbose","//3a":"*********************************************************************","//3b":"************************ UNIT TESTS COVERAGE ************************","//3c":"*********************************************************************","test:coverage":"pnpm test:watch --coverage","test:coverage:ci":"pnpm test:ci --coverage","test:serve-coverage":"http-server ./coverage/lcov-report --gzip true -p 0 -o --silent","test:coverage:serve":"concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"","//4a":"*********************************************************************","//4b":"************************ TARGETED UNIT TESTS ************************","//4c":"*********************************************************************","test:url":"pnpm test:watch index.test.ts index.jsdom.test.ts","test:check":"pnpm test:watch check.test.ts check.jsdom.test.ts","test:parse":"pnpm test:watch parse.test.ts","test:slash":"pnpm test:watch slash.test.ts"},"devDependencies":{"@alessiofrittoli/node-scripts":"^3.3.0","@eslint/js":"^10.0.1","@jest/globals":"^30.2.0","@types/jest":"^30.0.0","@types/node":"^25.3.0","concurrently":"^9.2.1","cross-env":"^10.1.0","dotenv":"^17.3.1","eslint":"^10.0.2","globals":"^17.3.0","http-server":"^14.1.1","jest":"^30.2.0","jest-environment-jsdom":"^30.2.0","ts-jest":"^29.4.6","ts-node":"^10.9.2","tsup":"^8.5.1","typescript":"^5.9.3","typescript-eslint":"^8.56.1"},"dependencies":{"@alessiofrittoli/web-utils":"^1.20.0"},"_id":"@alessiofrittoli/url-utils@4.0.0","gitHead":"3a06551314f2cc9e8b44e432a90d41452a42d6e5","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-MFtsYYNH2HnwasxkdTZ/Emgjzu1vwoI0bGeC6RXpX4Vv3W3AQDUdaEcFtD+r0nFXwt0tDbg4b+5ynUCZ+/oyiA==","shasum":"6be308e8fd56fd89793fa424fc1299cea9d6938d","tarball":"https://registry.npmjs.org/@alessiofrittoli/url-utils/-/url-utils-4.0.0.tgz","fileCount":7,"unpackedSize":38781,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQClI9txroNEHbZCjYy3SHjDvi+pcRkg6bW+mdyGQnQP9wIhANDpe6VhWPhRdNG1GD1okutLkvufqmyCEMr7qQ6QnRXi"}]},"_npmUser":{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"},"directories":{},"maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/url-utils_4.0.0_1772050011757_0.5258720958214027"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-20T17:48:02.697Z","modified":"2026-02-25T20:06:52.005Z","0.1.0":"2024-12-20T17:48:03.031Z","1.0.0":"2025-01-02T13:49:27.160Z","2.0.0":"2025-01-31T10:47:50.410Z","3.0.0":"2025-03-12T16:56:10.758Z","3.1.0":"2025-03-15T16:03:22.366Z","3.2.0":"2025-03-20T12:25:32.915Z","3.3.0":"2025-03-21T14:55:22.408Z","3.4.0":"2025-05-02T17:59:10.724Z","3.5.0":"2025-05-24T14:05:25.515Z","3.6.0":"2025-07-21T12:51:03.209Z","3.7.0":"2025-12-03T19:00:37.163Z","3.7.1":"2025-12-03T19:06:25.492Z","4.0.0":"2026-02-25T20:06:51.899Z"},"bugs":{"url":"https://github.com/alessiofrittoli/url-utils/issues","email":"info@alessiofrittoli.it"},"author":{"name":"Alessio Frittoli","email":"info@alessiofrittoli.it","url":"https://alessiofrittoli.it"},"license":"MIT","homepage":"https://github.com/alessiofrittoli/url-utils#readme","keywords":["url-utils"],"repository":{"type":"git","url":"git+https://github.com/alessiofrittoli/url-utils.git"},"description":"TypeScript URL utility library","maintainers":[{"name":"alessiofrittoli","email":"info@alessiofrittoli.it"}],"readme":"# URL utils 🔗\n\n[![NPM Latest Version][version-badge]][npm-url] [![Coverage Status][coverage-badge]][coverage-url] [![Socket Status][socket-badge]][socket-url] [![NPM Monthly Downloads][downloads-badge]][npm-url] [![Dependencies][deps-badge]][deps-url]\n\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\n\n[version-badge]: https://img.shields.io/npm/v/%40alessiofrittoli%2Furl-utils\n[npm-url]: https://npmjs.org/package/%40alessiofrittoli%2Furl-utils\n[coverage-badge]: https://coveralls.io/repos/github/alessiofrittoli/url-utils/badge.svg\n[coverage-url]: https://coveralls.io/github/alessiofrittoli/url-utils\n[socket-badge]: https://socket.dev/api/badge/npm/package/@alessiofrittoli/url-utils\n[socket-url]: https://socket.dev/npm/package/@alessiofrittoli/url-utils/overview\n[downloads-badge]: https://img.shields.io/npm/dm/%40alessiofrittoli%2Furl-utils.svg\n[deps-badge]: https://img.shields.io/librariesio/release/npm/%40alessiofrittoli%2Furl-utils\n[deps-url]: https://libraries.io/npm/%40alessiofrittoli%2Furl-utils\n[sponsor-badge]: https://img.shields.io/static/v1?label=Fund%20this%20package&message=%E2%9D%A4&logo=GitHub&color=%23DB61A2\n[sponsor-url]: https://github.com/sponsors/alessiofrittoli\n\n## TypeScript URL utility library\n\n### Table of Contents\n\n- [Getting started](#getting-started)\n- [What's Changed](#whats-changed)\n- [API Reference](#api-reference)\n  - [Url utility Class](#url-utility-class)\n  - [Check functions](#check-functions)\n  - [Various functions](#various-functions)\n  - [Parse functions](#parse-functions)\n  - [Slash functions](#slash-functions)\n- [Development](#development)\n  - [Install depenendencies](#install-depenendencies)\n  - [Build the source code](#build-the-source-code)\n  - [ESLint](#eslint)\n  - [Jest](#jest)\n- [Contributing](#contributing)\n- [Security](#security)\n- [Credits](#made-with-)\n\n---\n\n### Getting started\n\nRun the following command to start using `url-utils` in your projects:\n\n```bash\nnpm i @alessiofrittoli/url-utils\n```\n\nor using `pnpm`\n\n```bash\npnpm i @alessiofrittoli/url-utils\n```\n\n---\n\n### What's Changed\n\n#### Updates in the latest release 🎉\n\n- Removed subpath exports delivering smaller package size\n\n---\n\n### API Reference\n\n#### Url utility Class\n\nThe `Url` utility class provides methods for parsing and formatting URLs. It supports multiple input types, ensuring flexibility in handling URL manipulation.\n\n##### Type Definitions\n\n###### `UrlInput`\n\nThe Url parse/format accepted input.\n\n| Type        | Description                                                            |\n| ----------- | ---------------------------------------------------------------------- |\n| `string`    | A URL string.                                                          |\n| `URL`       | An instance of the `URL` class.                                        |\n| `Location`  | An instance of the `Location` class.                                   |\n| `UrlObject` | An object containing URL properties, similar to `node:url` structures. |\n\n---\n\n##### Methods\n\n###### `Url.parse()`\n\nParses a given URL input into a `URL` instance. If the `host` is not provided, it defaults to `unresolved`.\n\n<details>\n\n<summary>Parameters</summary>\n\n| Parameter | Type       | Default | Description                                                                |\n| --------- | ---------- | ------- | -------------------------------------------------------------------------- |\n| `url`     | `UrlInput` | -       | The URL string, `URL` instance, `Location` instance or UrlObject to parse. |\n| `params`  | `boolean`  | `true`  | Whether to keep search parameters or not.                                  |\n\n</details>\n\n---\n\n<details>\n\n<summary>Returns</summary>\n\nType: `URL`\n\nA new instance of `URL`.\n\n</details>\n\n---\n\n<details>\n\n<summary>Examples</summary>\n\n```ts\nimport { Url } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(Url.parse(\"/pathname\"));\n\n/**\n * Outputs:\n *\n * URL {\n *   href: 'http://unresolved/pathname',\n *   origin: 'http://unresolved',\n *   protocol: 'http:',\n *   username: '',\n *   password: '',\n *   host: 'unresolved',\n *   hostname: 'unresolved',\n *   port: '',\n *   pathname: '/pathname',\n *   search: '',\n *   searchParams: URLSearchParams {},\n *   hash: ''\n * }\n */\n\nconsole.log(\n  Url.parse(\"https://user:pass@example.com:3000/pathname?param=value#hash\"),\n);\n\n/**\n * Outputs:\n *\n * URL {\n *   href: 'https://user:pass@example.com:3000/pathname?param=value#hash',\n *   origin: 'https://example.com:3000',\n *   protocol: 'https:',\n *   username: 'user',\n *   password: 'pass',\n *   host: 'example.com:3000',\n *   hostname: 'example.com',\n *   port: '3000',\n *   pathname: '/pathname',\n *   search: '?param=value',\n *   searchParams: URLSearchParams { 'param' => 'value' },\n *   hash: '#hash'\n * }\n */\n\nconsole.log(\n  Url.parse({\n    href: \"https://user:pass@example.com:3000/pathname?param=value#hash\",\n  }),\n);\n\n/**\n * Outputs:\n *\n * URL {\n *   href: 'https://user:pass@example.com:3000/pathname?param=value#hash',\n *   origin: 'https://example.com:3000',\n *   protocol: 'https:',\n *   username: 'user',\n *   password: 'pass',\n *   host: 'example.com:3000',\n *   hostname: 'example.com',\n *   port: '3000',\n *   pathname: '/pathname',\n *   search: '?param=value',\n *   searchParams: URLSearchParams { 'param' => 'value' },\n *   hash: '#hash'\n * }\n */\n```\n\n</details>\n\n---\n\n###### `Url.format()`\n\nFormats a given URL input into a URL string. If the `hostname` is `unresolved`, it returns a relative URL string.\n\n<details>\n\n<summary>Parameters</summary>\n\n| Parameter | Type       | Default | Description                                                                 |\n| --------- | ---------- | ------- | --------------------------------------------------------------------------- |\n| `url`     | `UrlInput` | -       | The URL string, `URL` instance, `Location` instance or UrlObject to format. |\n| `params`  | `boolean`  | `true`  | Whether to keep search parameters or not.                                   |\n\n</details>\n\n---\n\n<details>\n\n<summary>Returns</summary>\n\nType: `string`\n\nThe formatted URL string.\n\n</details>\n\n---\n\n<details>\n\n<summary>Examples</summary>\n\n```ts\nimport { Url } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(Url.format({ pathname: \"/pathname\" })); // Outputs: \"/pathname\"\n\nconsole.log(\n  Url.format({\n    auth: \"user:pass\",\n    hostname: \"example.com\",\n    port: 3000,\n    pathname: \"/pathname\",\n    hash: \"hash\",\n    query: { param: \"value\" },\n    // search: '?param=value', // or\n    // query: new URLSearchParams( { param: 'value' } ), // or\n  }),\n); // Outputs: \"http://user:pass@example.com:3000/pathname?param=value#hash\"\n```\n\n</details>\n\n---\n\n#### Check functions\n\n##### `isExternalUrl`\n\nDetermines if a given URL is external compared to a provided or default location.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter  | Type       | Default           | Description                                                                                                                                                                  |\n| ---------- | ---------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `url`      | `UrlInput` | -                 | A URL `string`, `URL` instance, `Location` instance or `UrlObject` representing the URL to be checked.                                                                       |\n| `location` | `UrlInput` | `window.location` | A URL `string`, `URL` instance, `Location` instance or `UrlObject` representing the current location. Defaults to `window.location` if available in the browser environment. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `boolean`\n\n- `true` if the URL is external.\n- `false` otherwise.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { isExternalUrl } from \"@alessiofrittoli/url-utils\";\n\n// External URL check\nconst result1 = isExternalUrl(\"https://example.com\", \"https://mywebsite.com\");\nconsole.log(result1); // true\n\n// Internal URL check\nconst result2 = isExternalUrl(\"/about\", \"https://mywebsite.com\");\nconsole.log(result2); // false\n```\n\n</details>\n\n---\n\n##### `isAbsoluteUrl`\n\nChecks if a given URL is absolute.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type       | Description                                                                                            |\n| --------- | ---------- | ------------------------------------------------------------------------------------------------------ |\n| `url`     | `UrlInput` | A URL `string`, `URL` instance, `Location` instance or `UrlObject` representing the URL to be checked. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `boolean`\n\n- `true` if the URL is absolute.\n- `false` otherwise.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { isExternalUrl } from \"@alessiofrittoli/url-utils\";\n\n// Absolute URL check\nconst result1 = isAbsoluteUrl(\"https://example.com\");\nconsole.log(result1); // true\n\n// Relative URL check\nconst result2 = isAbsoluteUrl(\"/about\");\nconsole.log(result2); // false\n```\n\n</details>\n\n---\n\n#### Various functions\n\n##### `getCurrentLocationURL`\n\nGet current Window Location URL.\n\n<details>\n\n<summary style=\"cursor:pointer\">Returns</summary>\n\nType: `URL | null`\n\nThe current Window Location URL, `null` if Window object is not defined.\n\n</details>\n\n---\n\n<details>\n\n<summary style=\"cursor:pointer\">Usage</summary>\n\n```ts\nimport { getCurrentLocationURL } from \"@alessiofrittoli/url-utils\";\n\nconst currentPathname = getCurrentLocationURL()?.pathname;\n```\n\n</details>\n\n---\n\n#### Parse functions\n\n##### `slugify`\n\nConverts a given string into a URL-friendly slug.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter   | Type      | Default | Description                                                                                                                                                               |\n| ----------- | --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `text`      | `string`  | -       | A `string` to be converted into a slug.                                                                                                                                   |\n| `trim`      | `boolean` | `true`  | A `boolean` indicating whether to trim whitespace from both ends of the string. This options is pretty usefull when using `slugify` to transform user input while typing. |\n| `keepSlash` | `boolean` | `false` | A `boolean` indicating whether to retain slashes (/) in the string.                                                                                                       |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` representing the slugified version of the input text.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n###### Basic usage\n\n```ts\nimport { slugify } from \"@alessiofrittoli/url-utils\";\n\nconst slug = slugify(\"Hello World! Let's Code.\");\nconsole.log(slug); // Outputs: 'hello-world-lets-code'\n```\n\n###### Transforming user input\n\n```ts\nimport { slugify } from \"@alessiofrittoli/url-utils\";\n\ninput.addEventListener(\"input\", (event) => {\n  const input = event.target;\n  // setting `trim` to false will allow the user to type whitespace characters that will be converted to hyphen characters, improving typing experience.\n  input.value = slugify(input.value, false);\n});\n```\n\n</details>\n\n---\n\n##### `getDomain`\n\nExtracts the domain name from a given URL.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter   | Type       | Default | Description                                                                              |\n| ----------- | ---------- | ------- | ---------------------------------------------------------------------------------------- |\n| `url`       | `UrlInput` | -       | A URL `string`, `URL` instance, `Location` instance or `UrlObject` representing the URL. |\n| `subdomain` | `boolean`  | `true`  | A `boolean` indicating whether to include subdomains in the result.                      |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` representing the domain name.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n###### Basic usage\n\n```ts\nimport { getDomain } from \"@alessiofrittoli/url-utils\";\n\nconst domain = getDomain(\"https://www.sub.example.com/path\");\nconsole.log(domain); // 'sub.example.com'\n```\n\n###### Getting 1st level domain name\n\n```ts\nconst domain = getDomain(\"https://www.sub.example.com/path\", false);\nconsole.log(domain); // 'example.com'\n```\n\n</details>\n\n---\n\n#### Slash functions\n\n##### `backToForwardSlashes`\n\nConverts all backslashes (`\\`) in a string to forward slashes (`/`).\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Description            |\n| --------- | -------- | ---------------------- |\n| `input`   | `string` | A `string` to process. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` with all backslashes replaced by forward slashes.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { backToForwardSlashes } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(backToForwardSlashes(\"path\\\\to\\\\file\")); // Outputs: 'path/to/file'\n```\n\n</details>\n\n---\n\n##### `forwardToBackSlashes`\n\nConverts all forward slashes (`/`) in a string to backslashes (`\\`).\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Description            |\n| --------- | -------- | ---------------------- |\n| `input`   | `string` | A `string` to process. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` with all forward slashes replaced by backslashes.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { forwardToBackSlashes } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(forwardToBackSlashes(\"path/to/file\")); // Outputs: 'path\\to\\file'\n```\n\n</details>\n\n---\n\n##### `addLeadingSlash`\n\nAdds a leading slash (`/` or `\\`) to a `string` if it doesn’t already have one.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Default | Description                            |\n| --------- | -------- | ------- | -------------------------------------- |\n| `input`   | `string` | -       | A `string` to process.                 |\n| `slash`   | `/ \\| \\` | `/`     | The type of slash to add (`/` or `\\`). |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` with the specified leading slash.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { addLeadingSlash } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(addLeadingSlash(\"path/to/file\")); // Outputs: '/path/to/file'\nconsole.log(addLeadingSlash(\"path\\\\to\\\\file\", \"\\\\\")); // Outputs: '\\path\\to\\file'\n```\n\n</details>\n\n---\n\n##### `removeLeadingSlash`\n\nRemoves any leading slashes (`/` or `\\`) from a string.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Description            |\n| --------- | -------- | ---------------------- |\n| `input`   | `string` | A `string` to process. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` without leading slashes.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { removeLeadingSlash } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(removeLeadingSlash(\"/path/to/file\")); // Outputs: 'path/to/file'\nconsole.log(removeLeadingSlash(\"\\\\path\\\\to\\\\file\")); // Outputs: 'path\\to\\file'\n```\n\n</details>\n\n---\n\n##### `addTrailingSlash`\n\nAdds a trailing slash (`/` or `\\`) to a `string` if it doesn’t already have one.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Default | Description                            |\n| --------- | -------- | ------- | -------------------------------------- |\n| `input`   | `string` | -       | A `string` to process.                 |\n| `slash`   | `/ \\| \\` | `/`     | The type of slash to add (`/` or `\\`). |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` with the specified trailing slash.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { addTrailingSlash } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(addTrailingSlash(\"path/to/file\")); // Outputs: 'path/to/file/'\nconsole.log(addTrailingSlash(\"path\\\\to\\\\file\", \"\\\\\")); // Outputs: 'path\\to\\file\\'\n```\n\n</details>\n\n---\n\n##### `removeTrailingSlash`\n\nRemoves any trailing slashes (`/` or `\\`) from a string.\n\n<details>\n<summary>Parameters</summary>\n\n| Parameter | Type     | Description            |\n| --------- | -------- | ---------------------- |\n| `input`   | `string` | A `string` to process. |\n\n</details>\n\n---\n\n<details>\n<summary>Returns</summary>\n\nType: `string`\n\nA `string` without trailing slashes.\n\n</details>\n\n---\n\n<details>\n<summary>Example usage</summary>\n\n```ts\nimport { removeTrailingSlash } from \"@alessiofrittoli/url-utils\";\n\nconsole.log(removeTrailingSlash(\"path/to/file/\")); // Outputs: 'path/to/file'\nconsole.log(removeTrailingSlash(\"path\\\\to\\\\file\\\\\")); // Outputs: 'path\\\\to\\\\file'\n```\n\n</details>\n\n---\n\n### Development\n\n#### Install depenendencies\n\n```bash\nnpm install\n```\n\nor using `pnpm`\n\n```bash\npnpm i\n```\n\n#### Build the source code\n\nRun the following command to test and build code for distribution.\n\n```bash\npnpm build\n```\n\n#### [ESLint](https://www.npmjs.com/package/eslint)\n\nwarnings / errors check.\n\n```bash\npnpm lint\n```\n\n#### [Jest](https://npmjs.com/package/jest)\n\nRun all the defined test suites by running the following:\n\n```bash\n# Run tests and watch file changes.\npnpm test:watch\n\n# Run tests and watch file changes with jest-environment-jsdom.\npnpm test:jsdom\n\n# Run tests in a CI environment.\npnpm test:ci\n\n# Run tests in a CI environment with jest-environment-jsdom.\npnpm test:ci:jsdom\n```\n\nYou can eventually run specific suits like so:\n\n- See [`package.json`](./package.json) file scripts for more info.\n\n```bash\npnpm test:jest\npnpm test:jest:jsdom\n```\n\nRun tests with coverage.\n\nAn HTTP server is then started to serve coverage files from `./coverage` folder.\n\n⚠️ You may see a blank page the first time you run this command. Simply refresh the browser to see the updates.\n\n```bash\ntest:coverage:serve\n```\n\n---\n\n### Contributing\n\nContributions are truly welcome!\n\nPlease refer to the [Contributing Doc](./CONTRIBUTING.md) for more information on how to start contributing to this project.\n\nHelp keep this project up to date with [GitHub Sponsor][sponsor-url].\n\n[![GitHub Sponsor][sponsor-badge]][sponsor-url]\n\n---\n\n### Security\n\nIf you believe you have found a security vulnerability, we encourage you to **_responsibly disclose this and NOT open a public issue_**. We will investigate all legitimate reports. Email `security@alessiofrittoli.it` to disclose any security vulnerabilities.\n\n### Made with ☕\n\n<table style='display:flex;gap:20px;'>\n  <tbody>\n    <tr>\n      <td>\n        <img alt=\"avatar\" src='https://avatars.githubusercontent.com/u/35973186' style='width:60px;border-radius:50%;object-fit:contain;'>\n      </td>\n      <td>\n        <table style='display:flex;gap:2px;flex-direction:column;'>\n          <tbody>\n              <tr>\n                <td>\n                  <a href='https://github.com/alessiofrittoli' target='_blank' rel='noopener'>Alessio Frittoli</a>\n                </td>\n              </tr>\n              <tr>\n                <td>\n                  <small>\n                    <a href='https://alessiofrittoli.it' target='_blank' rel='noopener'>https://alessiofrittoli.it</a> |\n                    <a href='mailto:info@alessiofrittoli.it' target='_blank' rel='noopener'>info@alessiofrittoli.it</a>\n                  </small>\n                </td>\n              </tr>\n          </tbody>\n        </table>\n      </td>\n    </tr>\n  </tbody>\n</table>\n","readmeFilename":"README.md"}