{"_id":"07-navegation-router","_rev":"23-ad8b08d59a06afe05c64f69d4c32e07e","name":"07-navegation-router","dist-tags":{"latest":"0.3.3"},"versions":{"0.0.1":{"name":"07-navegation-router","version":"0.0.1","_id":"07-navegation-router@0.0.1","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"f123cd12913674f81e5b922f3bf84eeca0a6eed5","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.1.tgz","fileCount":4,"integrity":"sha512-JwIhcYG/pc/TKqvXNz3pbDnEswNDg2upMeC7K6FB1Sbj0ox+1j33rJctOOzk26twrz07VFR+HYPP9obWZzEJFQ==","signatures":[{"sig":"MEYCIQDJggIGsxxEqrpzgsHpOVyLsVjnNHoDe9kQ8jRsqOISdQIhANDGC1+li1bBz47Idi34EVarmbLlq7RtdbeF9vSxDUa6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2868},"main":"lib/index.js","type":"module","module":"lib/index.js","private":false,"scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"vite build","prepare":"swc ./src/*.jsx -d lib && rm lib/src/App.js lib/src/main.js lib/src/Router.test.js && cp src/*.js lib","preview":"vite preview","test:ui":"vitest --ui"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- [x] Instalar el linter - [x] Crear una forma de hacer MPAs (Multiple Page Application) - [x] Crea una forma de hacer SPAs (Single Page Applications) - [x] Poder navegar entre páginas con el botón de atrás - [x] Crear componente Link para hacerlo declara","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.1_1727683094577_0.5986544199021373","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"07-navegation-router","version":"0.0.2","_id":"07-navegation-router@0.0.2","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"7784b77c5924873a0095708f8603d959712c2323","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.2.tgz","fileCount":4,"integrity":"sha512-k3wOiMrV0+WYoYF1P0S9TFlSOmmaD2sAabIOWQa3dIuyMvfEexAQx9NThD0CwV/lCrUNTNVBbGgOvZKwWyAISA==","signatures":[{"sig":"MEUCIQDdICT79tCtsQpDpHV66sMohXIqzB5MrRe39uD+Hs02YwIgZc8mM89s2OjtXDS+ywdIGmG9is8IOREXWQ2+u1whm3w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2892},"main":"lib/index.js","type":"module","module":"lib/index.js","private":false,"scripts":{"dev":"vite","lint":"eslint .","test":"vitest","build":"vite build","prepare":"swc ./src/*.jsx -d lib && rm lib/src/App.js lib/src/main.js lib/src/Router.test.js && cp src/*.js lib","preview":"vite preview","test:ui":"vitest --ui"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.2_1727683809229_0.4623595644335561","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"07-navegation-router","version":"0.0.3","_id":"07-navegation-router@0.0.3","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"ef749c80f84f5142f0e810061d0b34c4d972f967","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.3.tgz","fileCount":4,"integrity":"sha512-IIlTT3T42TjD2stw1UHdQSXwKm/Rl3Zsx4+3tmOEeBBsnHnazMYyHLEK40TrIDRZpqoPTnI2estGxMjciTSjEA==","signatures":[{"sig":"MEYCIQDGTXM2Tpxv1e11O8cDgwt/yfr755CGtg4V9YUbqOZlAQIhAKSjrEefVOloJMAIh8cm3EW8ob/I2aNgWSWGd1U2sy+O","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2940},"main":"lib/index.js","type":"module","module":"lib/index.js","private":false,"scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build","prepare":"npm run test && swc ./src/*.jsx -d lib && rm lib/src/App.js lib/src/main.js lib/src/Router.test.js && cp src/*.js lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.3_1727685853761_0.2181304131104278","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"07-navegation-router","version":"0.0.4","_id":"07-navegation-router@0.0.4","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"cc8606ed8c1ef4d50b0de6da6be39199cdffb105","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.4.tgz","fileCount":8,"integrity":"sha512-PMZFmfpXSXUlUkg8MYDJyahlLOFlkN82AMz8TFI6r+yzvBPi9Y6AaCg/4Mvbz7LvOnA1D+SUKrW1AVU8eB1H0Q==","signatures":[{"sig":"MEUCICpJszZPqMtFrQYox5SEtnN4AZ58nB3N8nACst/s7HVjAiEA23WTz1q8eWZISQWXkNGGyR7G8v8bdC4uuQ996Q/5K+k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5043},"main":"lib/index.js","type":"module","module":"lib/index.js","private":false,"scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.4_1727686729745_0.8206795446145991","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"07-navegation-router","version":"0.0.5","_id":"07-navegation-router@0.0.5","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"c09589b0f60e794979178a04cdf623f3e2bc7c8a","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.5.tgz","fileCount":8,"integrity":"sha512-tCnafTFL1K2VpaAwnOcOSJoRVOzKOFGBkPAI38k70DqTHp/LRUe2f28ooyoXqxFOSOoWdcxeP7Qi7Dhj0RKgcQ==","signatures":[{"sig":"MEQCIGV7Y17TbBp5arB0RyYRbZQtUxog2EkA9dfhZtfxNeosAiAVnkwCJBtcq9fdupX5gjm9ffHKlb4bKv2zFJBLxgfWCA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5188},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","lint":"eslint .","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.5_1727687778604_0.22496385781475126","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"07-navegation-router","version":"0.0.6","_id":"07-navegation-router@0.0.6","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"0a67cd30b38cc35105ea86fa31fa22ef5f0f0003","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.6.tgz","fileCount":3,"integrity":"sha512-CPr+6zQz7NGYLvd3Q6BCPuC9ocHh75cKSBlxI5xiNcmlQusGjLY7JyX0jit3an2u1DdNrvIuAUFQNSJkf314Gg==","signatures":[{"sig":"MEYCIQDnsRSfcnd4f279aZ0fsyZnKXSYbKjj0Uey3/PTzMUs5QIhAKAH32MnoCbWucTSaRhyKbmHX/e7zgQroufWcwKOj3u4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2945},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.6_1727688989381_0.9686905685512821","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"07-navegation-router","version":"0.0.7","_id":"07-navegation-router@0.0.7","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"8808b48105b9ee5ab1697119982813a371e0af7a","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.7.tgz","fileCount":7,"integrity":"sha512-73lBgjOKBEbrrvzr/gJI54daNCDtC73mihOh3LorXjcr1StJAq4zknymDkNdAXPC8dnIbUIHAJUDsmXXhCzreQ==","signatures":[{"sig":"MEQCIDAhpq2B4DuP1nYdrJa2hHak8uoE+EZKCiSiOhkzYCG0AiButJUPGgva4R1dg264pslY68Gvq76JV+xWJ9wdqBw1Mw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5028},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.7_1727689154037_0.305984384432165","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"07-navegation-router","version":"0.0.8","_id":"07-navegation-router@0.0.8","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"f605472a7df33ede361433c6ef4ef4fdc4dbdbb6","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.8.tgz","fileCount":9,"integrity":"sha512-2Jbp+RNZEV5P6yl+a2KFk41YrEGMJ2l2VBY7sxoPZt4RDT41QJgxedWeQ5MN9XQ3HlJRngyzksh4xT9gqVTfFA==","signatures":[{"sig":"MEYCIQDXq8YvEfeOQX/YBtCFBXPbEtPUipHDjY9Rtac/m9Z1nQIhAKQPt8vU/8cflfCLWibYKpmOo1m6yXW4RdEwRmupWHMF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5149},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.8_1727689510788_0.5288831344844922","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"07-navegation-router","version":"0.0.9","_id":"07-navegation-router@0.0.9","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"7c1379e814141ac71739efd2973fb42c217bd213","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.0.9.tgz","fileCount":9,"integrity":"sha512-95hvX6cZaZqMyvVpbrMd0QfKUDjuJLyATOrb5n2w4ec8/XL6H2AIq4BMash48XNyAH77AmKFANBK+z6sLl4A1g==","signatures":[{"sig":"MEUCIQDkuiDjid+DwDSsEKc89xFT8GQJDbw86R+r6AQTwgkS1QIgHnIPpOOB29bvQT1YCe3G0QBdfz315fxpVwn0JdXRqHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5149},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.0.9_1727690216726_0.38249741631502454","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"07-navegation-router","version":"0.1.0","_id":"07-navegation-router@0.1.0","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"a0b691755ff79816f9cf7573c8c375e03f42ec8d","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.0.tgz","fileCount":3,"integrity":"sha512-0cMXMNJ8QKy6HKYWRGB/TyASPWEr6CeITd0jrjrrEDTBfHQUE7CVg5xTydSQEqQVwLq1RfnsRwWUVjdySKCi+g==","signatures":[{"sig":"MEYCIQCVNH+11hHJ+GUwPjRZe2lozJjd3rBHAUwZNkllCgnKXwIhAMK4AAN78qKkfmsNKlsV42mGMNCO0EP9/PI1j3o89lfv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2945},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.0_1727692578588_0.6723082426820775","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"07-navegation-router","version":"0.1.1","_id":"07-navegation-router@0.1.1","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"17346abbbcf8f5bcdb63f9b9c5565fec0dcc9728","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.1.tgz","fileCount":9,"integrity":"sha512-gFCOzJJrxXzYAsg258DePL6fgjUyCmoz8YuVrcbWYzYnfnDRQIKR0YQ+SFEQ7T7l5m6aK1oDf/tcz/0WxvKVfQ==","signatures":[{"sig":"MEQCIEjUvs8QFhdZ6XM2cwv6y8t1iWZGyuLxoqHx3Mda/FX2AiBhhExAC7fzSvj0Nn73lw1NlFMWOaXe/O0y9mGnul6APw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5299},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.1_1727692811985_0.4058014261876699","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"07-navegation-router","version":"0.1.2","_id":"07-navegation-router@0.1.2","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"7ab6e6d01130b3672c7c30d733dca3a918e4065c","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.2.tgz","fileCount":9,"integrity":"sha512-dGIy2D7opqCVmKY2gCudcCuGenEZpiyzG5PVuwMu5UoiBg6Yi0SavijasilFGgIwWE9GPASYek4+2VXWkZ9vnQ==","signatures":[{"sig":"MEQCICvHkQoLtLFRuwi942kt3HXfQOZWC74+g72L+ONHFP/VAiBbmHwu/cdC6FdBCqDtMzxVgg+y1h++lVVwa1/ayDoPMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5315},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"npm run test && swc src/components src/utils src/index.jsx -d lib","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.8.3","description":"- ✅ Instalar el linter - ✅ Crear una forma de hacer MPAs (Multiple Page Application) - ✅ Crea una forma de hacer SPAs (Single Page Applications) - ✅ Poder navegar entre páginas con el botón de atrás - ✅ Crear componente Link para hacerlo declarativo - ✅ C","directories":{},"_nodeVersion":"22.1.0","dependencies":{"path-to-regexp":"8.2.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"5.4.1","eslint":"9.9.0","vitest":"2.1.1","globals":"15.9.0","@swc/cli":"^0.4.1-nightly.20240914","@swc/core":"^1.7.26","happy-dom":"15.7.4","@eslint/js":"9.9.0","@vitest/ui":"^2.1.1","@types/react":"18.3.3","@types/react-dom":"18.3.0","eslint-plugin-react":"7.35.0","@testing-library/react":"16.0.1","@vitejs/plugin-react-swc":"3.5.0","eslint-plugin-react-hooks":"5.1.0-rc.0","eslint-plugin-react-refresh":"0.4.9"},"peerDependencies":{"react":"18.3.1","react-dom":"18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.2_1727704835667_0.726459446364355","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"07-navegation-router","version":"0.1.3","_id":"07-navegation-router@0.1.3","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"8431e5aaa79ce81b7d4621f4024fba383adf2bc6","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.3.tgz","fileCount":9,"integrity":"sha512-bUKro/Bll7bVH0KJZJ3VgFlyGIURSXEvoM+r8LlkZ7OOJ4ebqLbC8/ZRiOSNTvQ9y4izgK6lFVrrzLgkjccIKA==","signatures":[{"sig":"MEYCIQDCZun1S5gYG3/48GrodD0Xx2WQgMcCcrVx/u2yEHiahwIhALfltDxZHn0L4HgvoIarxqca6on+s1tfsYsCaYtkNWir","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5717},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src/*.jsx -d lib && cp -r ./src/utils lib/ && rm -rf lib/src","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.9.2","description":"- [✅] Uso de Simple.css (`https://simplecss.org/`) - [✅] Instalar el linter - [✅] Crear una forma de hacer MPAs (Multiple Page Application) - [✅] Crea una forma de hacer SPAs (Single Page Applications) - [✅] Poder navegar entre páginas con el botón de atr","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":"18.2.0","react-dom":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.3_1760805267435_0.6700080050272423","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"07-navegation-router","version":"0.1.4","_id":"07-navegation-router@0.1.4","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"887cee16e42407a7773cb837a5c5fbba4a660f6d","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.4.tgz","fileCount":9,"integrity":"sha512-Dw9FlkLBW0aRsKjHsVyFMBRua44HjCXtBQ5nBigd6JxseX/On6yJnMv1ca0MSwoKtP1/8TX5oblaGrVNBVfrJA==","signatures":[{"sig":"MEUCIEW2/Xn5h/9DpgBpqhFeBD7CwlfdvTIDgUQWCeKICqYMAiEA/lRVPgBcOE19faIW5cFnuoT3F7/uq9NIaRjfXstSJ4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5557},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.9.2","description":"- [✅] Uso de Simple.css (`https://simplecss.org/`) - [✅] Instalar el linter - [✅] Crear una forma de hacer MPAs (Multiple Page Application) - [✅] Crea una forma de hacer SPAs (Single Page Applications) - [✅] Poder navegar entre páginas con el botón de atr","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":"18.2.0","react-dom":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.4_1760806097477_0.10752626745705363","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"07-navegation-router","version":"0.1.5","_id":"07-navegation-router@0.1.5","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"9c3587d3fb6dd82f4230887a1b6dda723beef545","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.5.tgz","fileCount":9,"integrity":"sha512-XWUFlD+BoZBEjK/6nZIsFRnhn1KTLKpf++3wIovhivdn8c+OVpC5eCEzKnXIhJm8TmijYERh4zsd/OcVW+aHhQ==","signatures":[{"sig":"MEUCIB1LtH0MQEnRkZoVQjomzs6i6hKKFc6qLZFRwQvlE3MWAiEAkAwIW/WHTT3kc6SS4XXMTvjw7cjoI913/AUC6VKv0OI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5554},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.9.2","description":"- [✅] Uso de Simple.css (`https://simplecss.org/`) - [✅] Instalar el linter - [✅] Crear una forma de hacer MPAs (Multiple Page Application) - [✅] Crea una forma de hacer SPAs (Single Page Applications) - [✅] Poder navegar entre páginas con el botón de atr","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":"18.2.0","react-dom":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.5_1760806372683_0.8451353722036736","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"07-navegation-router","version":"0.1.6","_id":"07-navegation-router@0.1.6","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"3156d84e39810e68aa5684a53eda1df6d1b54c0f","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.6.tgz","fileCount":9,"integrity":"sha512-lvR5bwqdPy/lMiOsUhibvSItEuUOE4sZ3zYCWfRd/5HuIMoSI3oAdvX7BkMNK96A9PVVhrI6UDAX7Z6Czt/1Jw==","signatures":[{"sig":"MEQCIFcf/lrLzjDsOSqU1tsJ5qR2ZnQeUzMbJbj0XnJ9OknbAiAnqImmgrzxED6O0EFtwS8dgD42RrUfg8wQf0dyIlR2VQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10887},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.9.2","description":"[![npm version](https://img.shields.io/npm/v/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router) [![npm downloads](https://img.shields.io/npm/dm/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router) [![L","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":"18.2.0","react-dom":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.6_1760806637048_0.09115709108293668","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"07-navegation-router","version":"0.1.7","_id":"07-navegation-router@0.1.7","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"dist":{"shasum":"a349f4eb4cbff74dfd799ef5bdc1d95bd7f39ed0","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.1.7.tgz","fileCount":9,"integrity":"sha512-eFKZYF1T4vuMc37ZF/YvqPl3qoxzxugdr5xeRTxm/KrnLOlwYVse1KRD/f2dWyWQAZYWNAJmJZL/E9KMf1XG9A==","signatures":[{"sig":"MEUCIGErdy60ipGrqiNO+tYHpMe2NTsY8uVD8JF0Hm0ksBUPAiEA8D6QFLhYoRc2zgLL5XAQqRIRJMd6sTuq9/ur/4T/0oI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10888},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"6dade3ad984ed9d150771b0b86d302609d0aa7ac","private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"_npmVersion":"10.9.2","description":"[![npm version](https://img.shields.io/npm/v/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router) [![npm downloads](https://img.shields.io/npm/dm/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router) [![L","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":"18.2.0","react-dom":"18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.1.7_1760806965402_0.3505829630996371","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"07-navegation-router","version":"0.2.0","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"url":"https://github.com/CarlosCG2000","name":"Carlos Caño Gómez"},"license":"MIT","_id":"07-navegation-router@0.2.0","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"homepage":"https://github.com/CarlosCG2000/React-Router#readme","bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"dist":{"shasum":"f60ece5d98c46f770a6ad163efc32bccf6dac473","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.2.0.tgz","fileCount":9,"integrity":"sha512-nf2xKD1J1Bi0o2553bq7cLMwvXdFYWYRCMgc3ln32G5rQLiAf5u/L39MSgUuBBFYqGo16huv1TnQQIZ9OloEZw==","signatures":[{"sig":"MEYCIQDAhRPlO4yFNJS9zN7MWp4ItLz3GNa17eVPS/QrIuuWdgIhAJeLvromnTE0nT9dMaNGyPfvOxz245J3OVO1fUGJYZ7n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12819},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"8b8fdd217fc5735562b56813b281902ffc8f8507","private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"repository":{"url":"git+https://github.com/CarlosCG2000/React-Router.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","prop-types":"^15.8.1","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.2.0_1760807775086_0.7048966508283239","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"07-navegation-router","version":"0.2.1","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"url":"https://github.com/CarlosCG2000","name":"Carlos Caño Gómez"},"license":"MIT","_id":"07-navegation-router@0.2.1","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"homepage":"https://github.com/CarlosCG2000/React-Router#readme","bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"dist":{"shasum":"93d9512cab8a552aafbcb596809a6ce58f00abda","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.2.1.tgz","fileCount":9,"integrity":"sha512-LU/pCKERo4Gu816F9pqLrqC7H2gblMgLl1XB7z8m6w1qF4zDLN7OtWNhnY3sWIIbPWwoCIELZfqlgGZoOBrVPQ==","signatures":[{"sig":"MEUCIBcPo9zxLIVkDHj4nwgA9MeN/yNBBh/Qrp4Ovq0IjFIaAiEAmh6Csk7C7Jiug1Qdi9PYU+YXukVL4S42yt7u6/yMLxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12819},"main":"lib/index.js","type":"module","module":"lib/index.js","exports":{".":{"import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"18f591640637c03a2587ee7fbac73e500c072799","private":false,"scripts":{"dev":"vite","test":"vitest run","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"repository":{"url":"git+https://github.com/CarlosCG2000/React-Router.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","prop-types":"^15.8.1","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.2.1_1760807955556_0.0339699139643892","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"07-navegation-router","version":"0.3.0","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"url":"https://github.com/CarlosCG2000","name":"Carlos Caño Gómez"},"license":"MIT","_id":"07-navegation-router@0.3.0","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"homepage":"https://github.com/CarlosCG2000/React-Router#readme","bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"dist":{"shasum":"83eb960e325d6952d76f0e7f2465a979ea161a60","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.3.0.tgz","fileCount":10,"integrity":"sha512-T/3eoQM5/97JF6SVloDfc9ILTupRLv4UIGz3lcKzvdEkt0hlWIjznfjfsrO4MlVuNASAvTMEom71yh+jc/Yzxw==","signatures":[{"sig":"MEYCIQDgKnumuSJv4JBtdmHof466OP1CyfxiBQ8EkkrQX/ysXQIhAJCniB9OK/+FumRXMWo4g+Fxmb/y+ajBJ2BcUABnMHGW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14303},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"4a0645b5e321ce60f257b5cc8593e9a2ebb65773","private":false,"scripts":{"dev":"vite","test":"vitest run","bench":"node benchmarks/route-matching.bench.js","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"repository":{"url":"git+https://github.com/CarlosCG2000/React-Router.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","prop-types":"^15.8.1","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.3.0_1760808825156_0.06903975275736052","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"07-navegation-router","version":"0.3.1","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"url":"https://github.com/CarlosCG2000","name":"Carlos Caño Gómez"},"license":"MIT","_id":"07-navegation-router@0.3.1","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"homepage":"https://github.com/CarlosCG2000/React-Router#readme","bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"dist":{"shasum":"77981e01d8321e62ae502f2d67e09e35295ccf2f","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.3.1.tgz","fileCount":12,"integrity":"sha512-9YxF4/mIZ5TzOSHgKHDBBpQAjVnoYRZ9RCb3u/4AFoIrsFo3xDVqeWA/PfHaCYeTGIKz/bTLKfTgzsiwc/uOog==","signatures":[{"sig":"MEUCIEr5rSOzI+xvejw8ZESev3iiKxcBdoQ1sAxRAgA8SCQMAiEAmKKBENENMm/MAgVFKYhmC0Zu7ZU9s0q+GLP1d5tA3WM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14417},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"9e2ab13eaa0fbbf271ce79962b26146949d7b98b","private":false,"scripts":{"dev":"vite","test":"vitest run","bench":"node benchmarks/route-matching.bench.js","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"repository":{"url":"git+https://github.com/CarlosCG2000/React-Router.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","prop-types":"^15.8.1","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.3.1_1760809433817_0.5043364976612765","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"07-navegation-router","version":"0.3.2","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"url":"https://github.com/CarlosCG2000","name":"Carlos Caño Gómez"},"license":"MIT","_id":"07-navegation-router@0.3.2","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"homepage":"https://github.com/CarlosCG2000/React-Router#readme","bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"dist":{"shasum":"9d5c0f735f2d2716fcac998fac0632c4808dd471","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.3.2.tgz","fileCount":12,"integrity":"sha512-35XkRKjxJKegt8uhcicBA6MpJuEEbh/yO/96A2hlUBHPpHNoO+w4eaMsYj5kgN2F84h1qTeiVniaqAhnvNdI9g==","signatures":[{"sig":"MEUCIENJdF6Rzt0kwdwx5B7VoNTUqsS/PakIvwesHgUNkyTRAiEA9t40rbMuG5cu4IU+cLXlIwMwk6jH6vjB2mJ287nx1P0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21765},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"gitHead":"23def248e28811ce1940f3dd542b244125525e39","private":false,"scripts":{"dev":"vite","test":"vitest run","bench":"node benchmarks/route-matching.bench.js","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"repository":{"url":"git+https://github.com/CarlosCG2000/React-Router.git","type":"git"},"_npmVersion":"10.9.2","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","directories":{},"_nodeVersion":"22.16.0","dependencies":{"path-to-regexp":"8.3.0"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.1.10","eslint":"9.38.0","vitest":"3.2.4","globals":"16.4.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","happy-dom":"20.0.5","@eslint/js":"9.38.0","@vitest/ui":"3.2.4","prop-types":"^15.8.1","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint-plugin-react":"7.37.5","@testing-library/react":"16.3.0","@vitejs/plugin-react-swc":"4.1.0","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/07-navegation-router_0.3.2_1760810176623_0.48710864388175557","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"07-navegation-router","private":false,"version":"0.3.3","description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","type":"module","main":"lib/index.js","module":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js","require":"./lib/index.js"},"./package.json":"./package.json"},"keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"author":{"name":"Carlos Caño Gómez","url":"https://github.com/CarlosCG2000"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/CarlosCG2000/React-Router.git"},"bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"homepage":"https://github.com/CarlosCG2000/React-Router#readme","scripts":{"dev":"vite","build":"vite build","prepare":"swc ./src -d lib --strip-leading-paths --ignore '**/*.test.jsx' && rm -rf lib/assets lib/pages lib/main.js lib/index.css lib/App.js","preview":"vite preview","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui","bench":"node benchmarks/route-matching.bench.js"},"dependencies":{"path-to-regexp":"8.3.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"devDependencies":{"@eslint/js":"9.38.0","@swc/cli":"0.7.8","@swc/core":"1.13.5","@testing-library/react":"16.3.0","@types/react":"19.2.2","@types/react-dom":"19.2.2","@vitejs/plugin-react-swc":"4.1.0","@vitest/ui":"3.2.4","eslint":"9.38.0","eslint-plugin-react":"7.37.5","eslint-plugin-react-hooks":"7.0.0","eslint-plugin-react-refresh":"0.4.24","globals":"16.4.0","happy-dom":"20.0.5","prop-types":"^15.8.1","vite":"7.1.10","vitest":"3.2.4"},"eslintConfig":{"extends":"./node_modules/standard/eslintrc.json"},"_id":"07-navegation-router@0.3.3","gitHead":"d726e7ade7b9475b0f8d4d859586e38b12f0c434","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-jlsVOW5Bs92PbAv7s9c+E2DPyjeCHMSuXLG1vwiMiUljAxvk6wZEDYS1cYSQ/YJtJ6HwV7zegPgeH01pJjsH+w==","shasum":"497c959ca76578c191e320e3683f6eaca08462e2","tarball":"https://registry.npmjs.org/07-navegation-router/-/07-navegation-router-0.3.3.tgz","fileCount":12,"unpackedSize":24259,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDjXdjqDJvfzt0ZDm8HsA46vYeusDUM108OTuje9MD0zAiEAn60HhZrydvzPO85aSIjXXHB2/JbWLKJ++weT+C54ROw="}]},"_npmUser":{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"},"directories":{},"maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/07-navegation-router_0.3.3_1760810883239_0.17994717528658133"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-30T07:58:14.576Z","modified":"2025-10-18T18:08:03.625Z","0.0.1":"2024-09-30T07:58:14.779Z","0.0.2":"2024-09-30T08:10:09.436Z","0.0.3":"2024-09-30T08:44:13.934Z","0.0.4":"2024-09-30T08:58:49.928Z","0.0.5":"2024-09-30T09:16:18.832Z","0.0.6":"2024-09-30T09:36:29.537Z","0.0.7":"2024-09-30T09:39:14.203Z","0.0.8":"2024-09-30T09:45:10.939Z","0.0.9":"2024-09-30T09:56:56.881Z","0.1.0":"2024-09-30T10:36:18.732Z","0.1.1":"2024-09-30T10:40:12.144Z","0.1.2":"2024-09-30T14:00:35.874Z","0.1.3":"2025-10-18T16:34:27.638Z","0.1.4":"2025-10-18T16:48:17.662Z","0.1.5":"2025-10-18T16:52:52.871Z","0.1.6":"2025-10-18T16:57:17.254Z","0.1.7":"2025-10-18T17:02:45.593Z","0.2.0":"2025-10-18T17:16:15.277Z","0.2.1":"2025-10-18T17:19:15.748Z","0.3.0":"2025-10-18T17:33:45.369Z","0.3.1":"2025-10-18T17:43:54.003Z","0.3.2":"2025-10-18T17:56:16.818Z","0.3.3":"2025-10-18T18:08:03.438Z"},"bugs":{"url":"https://github.com/CarlosCG2000/React-Router/issues"},"author":{"name":"Carlos Caño Gómez","url":"https://github.com/CarlosCG2000"},"license":"MIT","homepage":"https://github.com/CarlosCG2000/React-Router#readme","keywords":["react","router","routing","spa","single-page-application","navigation","react-router","client-side-routing","declarative-routing","dynamic-routes","lazy-loading","history-api","browser-history","lightweight-router","minimal-router"],"repository":{"type":"git","url":"git+https://github.com/CarlosCG2000/React-Router.git"},"description":"A lightweight, modern, and powerful React routing library with declarative routing, dynamic parameters, lazy loading, and full browser history support","maintainers":[{"name":"carloscg2000","email":"canogomezcarlos@gmail.com"}],"readme":"# 🚀 Navigation Router\n\n[![npm version](https://img.shields.io/npm/v/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router)\n[![npm downloads](https://img.shields.io/npm/dm/07-navegation-router.svg)](https://www.npmjs.com/package/07-navegation-router)\n[![License](https://img.shields.io/npm/l/07-navegation-router.svg)](https://github.com/carloscg00/navegation-router/blob/main/LICENSE)\n[![CI](https://github.com/CarlosCG2000/React-Router/actions/workflows/ci.yml/badge.svg)](https://github.com/CarlosCG2000/React-Router/actions/workflows/ci.yml)\n[![GitHub Pages](https://github.com/CarlosCG2000/React-Router/actions/workflows/pages.yml/badge.svg)](https://carloscg2000.github.io/React-Router/)\n\nA lightweight, modern, and powerful **React routing library** built from scratch. Create single-page applications (SPAs) with declarative routing, dynamic parameters, lazy loading, and full browser history support.\n\n> 📚 **[View Full Documentation](https://carloscg2000.github.io/React-Router/)** | **[Live Examples](https://carloscg2000.github.io/React-Router/)** | **[API Reference](#-api-reference)**\n\n## ✨ Features\n\n- 🎯 **Declarative Routing** - Define routes with intuitive `<Router>`, `<Route>`, and `<Link>` components\n- 🔗 **Dynamic Parameters** - Support for route parameters using `path-to-regexp`\n- ⚡ **Lazy Loading** - Code-split your routes for optimal performance\n- 🔄 **Browser History** - Full support for browser back/forward navigation\n- 🎨 **404 Handling** - Built-in support for default/fallback routes\n- 🛡️ **Error Boundaries** - Graceful error handling with `RouterErrorBoundary`\n- 🧪 **Well Tested** - 28 comprehensive tests with Vitest and Testing Library\n- 📦 **Lightweight** - Only **5.9 kB** (gzipped) with minimal dependencies\n- 🔧 **TypeScript Support** - Full TypeScript definitions included\n- 📝 **JSDoc Comments** - Complete inline documentation\n- 🚀 **Production Ready** - Battle-tested and optimized for performance\n- 🌍 **i18n Support** - Internationalization-friendly routing patterns\n\n## 📦 Installation\n\n```bash\nnpm install 07-navegation-router\n```\n\n```bash\nyarn add 07-navegation-router\n```\n\n```bash\npnpm add 07-navegation-router\n```\n\n## � Documentation & Examples\n\n**🌐 Full documentation and interactive examples are available on our GitHub Pages site:**\n\n### 👉 **[https://carloscg2000.github.io/React-Router/](https://carloscg2000.github.io/React-Router/)**\n\nThe documentation site includes:\n\n- 📖 **Complete API Documentation** - Detailed guides for all components\n- 💻 **Interactive Examples** - Try the router live in your browser\n- 🎯 **Basic Routing Example** - Get started quickly\n- 🔗 **Dynamic Routes Example** - Learn parameter handling\n- 🛡️ **Error Handling Example** - Robust error boundary patterns\n- ⚡ **Performance Benchmarks** - See how fast the router is\n- 📝 **TypeScript Support** - Full type definitions and examples\n\n## �🚀 Quick Start\n\n```jsx\nimport { Router, Route, Link } from \"07-navegation-router\";\n\nfunction App() {\n  return (\n    <Router>\n      <nav>\n        <Link to=\"/\">Home</Link>\n        <Link to=\"/about\">About</Link>\n        <Link to=\"/users/123\">User Profile</Link>\n      </nav>\n\n      <Route path=\"/\" Component={Home} />\n      <Route path=\"/about\" Component={About} />\n      <Route path=\"/users/:id\" Component={UserProfile} />\n      <Route path=\"/404\" Component={NotFound} />\n    </Router>\n  );\n}\n\nfunction Home() {\n  return (\n    <div>\n      <h1>Home Page</h1>\n      <Link to=\"/about\">Go to About</Link>\n    </div>\n  );\n}\n\nfunction About() {\n  return (\n    <div>\n      <h1>About Page</h1>\n      <Link to=\"/\">Back to Home</Link>\n    </div>\n  );\n}\n\nfunction UserProfile({ routeParams }) {\n  // Access route parameters\n  return <h1>User Profile #{routeParams.id}</h1>;\n}\n\nfunction NotFound() {\n  return <h1>404 - Page Not Found</h1>;\n}\n```\n\n## 📖 API Reference\n\n### `<Router>`\n\nThe main container component that enables routing in your application.\n\n```jsx\n<Router defaultComponent={NotFound}>{/* Your routes go here */}</Router>\n```\n\n**Props:**\n\n- `defaultComponent` (React.Component, optional): Component to render when no route matches (404 handler)\n- `routes` (Array, optional): Array of route objects for programmatic routing\n- `children` (React.Node): Route components\n\n### `<Route>`\n\nDefines a route with a specific path and component to render.\n\n**Props:**\n\n- `path` (string): The URL path pattern (supports parameters like `/users/:id`)\n- `Component` (React.Component): The component to render when the path matches\n\n```jsx\n<Route path=\"/products/:id\" Component={ProductDetail} />\n```\n\n**Route Parameters:**\n\nThe matched component receives `routeParams` as a prop:\n\n```jsx\nfunction ProductDetail({ routeParams }) {\n  const { id } = routeParams;\n  return <h1>Product {id}</h1>;\n}\n```\n\n### `<Link>`\n\nDeclarative navigation component for client-side routing without page reloads.\n\n**Props:**\n\n- `to` (string): The destination path\n- `target` (string, optional): Link target attribute (e.g., `_blank`)\n- Any other props are passed to the underlying `<a>` element\n\n```jsx\n<Link to=\"/about\">About Us</Link>\n<Link to=\"/docs\" target=\"_blank\">Documentation</Link>\n<Link to=\"/contact\" className=\"nav-link\">Contact</Link>\n```\n\n### `navigate(path)`\n\nProgrammatic navigation function for imperatively changing routes.\n\n```jsx\nimport { navigate } from \"07-navegation-router\";\n\nfunction handleLogin() {\n  // Perform login logic\n  navigate(\"/dashboard\");\n}\n```\n\n### `<RouterErrorBoundary>`\n\nError boundary component for catching and handling routing errors gracefully.\n\n**Props:**\n\n- `fallback` (React.Component | React.Element, optional): Custom error fallback UI\n- `children` (React.Node): Components to wrap\n\n```jsx\nimport { Router, Route, RouterErrorBoundary } from \"07-navegation-router\";\n\nfunction App() {\n  return (\n    <RouterErrorBoundary fallback={<ErrorPage />}>\n      <Router>\n        <Route path=\"/\" Component={Home} />\n        <Route path=\"/error\" Component={BuggyComponent} />\n      </Router>\n    </RouterErrorBoundary>\n  );\n}\n\nfunction ErrorPage({ error, resetError }) {\n  return (\n    <div>\n      <h1>Something went wrong</h1>\n      <pre>{error.message}</pre>\n      <button onClick={resetError}>Try again</button>\n    </div>\n  );\n}\n```\n\n## 🎯 Advanced Usage\n\n### Dynamic Route Parameters\n\nAccess route parameters in your components:\n\n```jsx\nimport { Router, Route, Link } from \"07-navegation-router\";\n\nfunction App() {\n  return (\n    <Router>\n      <Route path=\"/blog/:slug\" Component={BlogPost} />\n      <Route path=\"/users/:userId/posts/:postId\" Component={UserPost} />\n    </Router>\n  );\n}\n\nfunction BlogPost({ routeParams }) {\n  const { slug } = routeParams;\n  return <article>Post: {slug}</article>;\n}\n\nfunction UserPost({ routeParams }) {\n  const { userId, postId } = routeParams;\n  return (\n    <div>\n      User {userId}, Post {postId}\n    </div>\n  );\n}\n```\n\n### Lazy Loading Routes\n\nImprove performance by code-splitting your routes:\n\n```jsx\nimport { lazy, Suspense } from \"react\";\n\nconst Dashboard = lazy(() => import(\"./pages/Dashboard\"));\n\nfunction App() {\n  return (\n    <Router>\n      <Suspense fallback={<div>Loading...</div>}>\n        <Route path=\"/dashboard\" Component={Dashboard} />\n      </Suspense>\n    </Router>\n  );\n}\n```\n\n### 404 Fallback Routes\n\nDefine a default route for unmatched paths:\n\n```jsx\n<Router>\n  <Route path=\"/\" Component={Home} />\n  <Route path=\"/about\" Component={About} />\n  <Route path=\"/404\" Component={NotFound} />\n</Router>\n```\n\n### Programmatic Navigation\n\nUse the `navigate` function for imperative routing:\n\n```jsx\nimport { navigate } from \"07-navegation-router\";\n\nfunction LoginForm() {\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    const success = await login();\n    if (success) {\n      navigate(\"/dashboard\");\n      window.scrollTo(0, 0); // Optional: scroll to top\n    }\n  };\n\n  return <form onSubmit={handleSubmit}>...</form>;\n}\n\n// Navigate with state\nfunction goToProfile() {\n  navigate(\"/profile\");\n  // The navigation event is automatically dispatched\n}\n```\n\n### Error Handling\n\nProtect your routes with error boundaries:\n\n```jsx\nimport { RouterErrorBoundary, Router, Route } from \"07-navegation-router\";\n\nfunction App() {\n  return (\n    <RouterErrorBoundary\n      fallback={({ error, resetError }) => (\n        <div>\n          <h2>Oops! Something went wrong</h2>\n          <details>\n            <summary>Error details</summary>\n            <pre>{error.message}</pre>\n          </details>\n          <button onClick={resetError}>Reset</button>\n          <button onClick={() => navigate(\"/\")}>Go Home</button>\n        </div>\n      )}\n    >\n      <Router>\n        <Route path=\"/\" Component={Home} />\n        <Route path=\"/risky\" Component={RiskyComponent} />\n      </Router>\n    </RouterErrorBoundary>\n  );\n}\n```\n\n### TypeScript Support\n\nFull TypeScript definitions are included:\n\n```typescript\nimport {\n  Router,\n  Route,\n  Link,\n  navigate,\n  RouterErrorBoundary,\n} from \"07-navegation-router\";\nimport type { RouteParams, RouteComponentProps } from \"07-navegation-router\";\n\ninterface UserProfileProps extends RouteComponentProps {\n  routeParams: {\n    id: string;\n  };\n}\n\nconst UserProfile: React.FC<UserProfileProps> = ({ routeParams }) => {\n  return <h1>User {routeParams.id}</h1>;\n};\n\n// Type-safe navigation\nnavigate(\"/users/123\");\n```\n\n## 🏗️ Project Structure\n\n```\nnavegation-router/\n├── src/\n│   ├── components/\n│   │   ├── Router.jsx          # Main router component\n│   │   ├── Route.jsx           # Route definition component\n│   │   ├── Link.jsx            # Navigation link component\n│   │   ├── ErrorBoundary.jsx   # Error boundary component\n│   │   ├── Router.test.jsx     # Router tests (13 tests)\n│   │   ├── Link.test.jsx       # Link tests (10 tests)\n│   │   └── Route.test.jsx      # Route tests (5 tests)\n│   ├── utils/\n│   │   ├── consts.js           # Constants\n│   │   ├── getCurrentPath.js   # Path utility\n│   │   └── navigation.js       # Navigation utilities\n│   ├── index.jsx               # Main entry point\n│   └── navigation.js           # Navigation exports\n├── lib/                        # Compiled output (published to npm)\n├── docs/                       # Documentation site\n├── examples/                   # Interactive examples\n├── benchmarks/                 # Performance benchmarks\n├── .github/workflows/          # CI/CD pipelines\n│   ├── ci.yml                  # Test & lint automation\n│   └── pages.yml               # GitHub Pages deployment\n├── package.json\n├── LICENSE                     # MIT License\n├── CHANGELOG.md               # Version history\n├── CONTRIBUTING.md            # Contribution guidelines\n└── README.md\n```\n\n## 🧪 Testing\n\nThis library is thoroughly tested using:\n\n- **Vitest** - Fast unit test framework\n- **Happy DOM** - Lightweight DOM implementation\n- **Testing Library** - React component testing utilities\n\n**Test Coverage:**\n\n- ✅ 28 tests passing\n- ✅ Router component (13 tests)\n- ✅ Link component (10 tests)\n- ✅ Route component (5 tests)\n\n```bash\nnpm run test        # Run tests once\nnpm run test:watch  # Watch mode\nnpm run test:ui     # UI mode\nnpm run bench       # Run performance benchmarks\n```\n\n## 📊 Performance\n\nBenchmarks show excellent performance:\n\n- **Route Matching**: ~0.05ms per route\n- **Bundle Size**: 5.9 kB gzipped\n- **Tree-shakeable**: Import only what you need\n\nRun benchmarks yourself:\n\n```bash\nnpm run bench\n```\n\n## 🛠️ Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Run development server\nnpm run dev\n\n# Build the library\nnpm run prepare\n\n# Run tests\nnpm run test\n```\n\n## 📝 Browser Support\n\n- ✅ Chrome (latest)\n- ✅ Firefox (latest)\n- ✅ Safari (latest)\n- ✅ Edge (latest)\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Write tests for your changes\n4. Ensure all tests pass (`npm test`)\n5. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n6. Push to the branch (`git push origin feature/AmazingFeature`)\n7. Open a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👨‍💻 Author\n\n**Carlos Caño Gómez**\n\n- GitHub: [@CarlosCG2000](https://github.com/CarlosCG2000)\n- npm: [07-navegation-router](https://www.npmjs.com/package/07-navegation-router)\n\n## 📚 Resources & Links\n\n### 🌐 Documentation\n\n- 📖 **[Official Documentation Site](https://carloscg2000.github.io/React-Router/)** - Complete guides and API reference\n- 💻 **[Interactive Examples](https://carloscg2000.github.io/React-Router/)** - Try the router in your browser\n- � **[Changelog](CHANGELOG.md)** - Version history and updates\n\n### �📦 Package\n\n- 📦 **[npm Package](https://www.npmjs.com/package/07-navegation-router)** - Install from npm registry\n- � **[GitHub Repository](https://github.com/CarlosCG2000/React-Router)** - Source code\n\n### 🤝 Community\n\n- �🐛 **[Report Issues](https://github.com/CarlosCG2000/React-Router/issues)** - Bug reports and feature requests\n- 💡 **[Contributing Guide](CONTRIBUTING.md)** - How to contribute\n- ⭐ **[Star on GitHub](https://github.com/CarlosCG2000/React-Router)** - Show your support!\n\n### 🚀 CI/CD\n\n- ✅ **[CI Pipeline](https://github.com/CarlosCG2000/React-Router/actions/workflows/ci.yml)** - Automated testing\n- 📄 **[Pages Deployment](https://github.com/CarlosCG2000/React-Router/actions/workflows/pages.yml)** - Documentation site status\n\n## 🙏 Acknowledgments\n\n- **Special thanks to [Midudev](https://github.com/midudev)** for his invaluable educational content and didactic approach to teaching React and modern web development. His tutorials and courses were a significant inspiration for this project.\n- Inspired by React Router and modern routing libraries\n- Built with modern React best practices and hooks\n- Powered by `path-to-regexp` for advanced pattern matching\n- Tested with Vitest and React Testing Library\n- Compiled with SWC for blazing-fast builds\n\n### 🎓 Learning Resources\n\n- [Midudev's YouTube Channel](https://www.youtube.com/@midudev) - Excellent React tutorials in Spanish\n- [Midudev's Courses](https://midu.dev) - In-depth web development courses\n\n## 🔄 Version History\n\nSee [CHANGELOG.md](CHANGELOG.md) for a detailed version history.\n\n**Latest Release: v0.3.1**\n\n- ✅ TypeScript definitions\n- ✅ Error boundary support\n- ✅ 28 comprehensive tests\n- ✅ Performance benchmarks\n- ✅ Interactive examples\n- ✅ CI/CD automation\n\n## 🔗 Related Projects\n\n- [React Router](https://reactrouter.com/) - The most popular React routing library\n- [Wouter](https://github.com/molefrog/wouter) - Minimalist routing for React\n- [Reach Router](https://reach.tech/router/) - Accessible routing library\n\n## 📊 Keywords\n\nreact, router, routing, spa, single-page-application, navigation, react-router, client-side-routing, declarative-routing, dynamic-routes, lazy-loading, history-api, browser-history, lightweight-router, minimal-router\n\n---\n\n## 🌟 Ready to Get Started?\n\nVisit our **[Documentation Site](https://carloscg2000.github.io/React-Router/)** for:\n\n- 📖 Complete guides and tutorials\n- 💻 Live, interactive examples you can try in your browser\n- 🎯 Step-by-step implementation guides\n- 🛡️ Best practices and patterns\n- ⚡ Performance optimization tips\n\n**Made with ❤️ by Carlos Caño Gómez**\n\nIf you find this project useful, please consider:\n\n- ⭐ Starring the [GitHub Repository](https://github.com/CarlosCG2000/React-Router)\n- 📢 Sharing it with other developers\n- 🐛 [Reporting issues](https://github.com/CarlosCG2000/React-Router/issues) to help improve it\n- 🤝 [Contributing](CONTRIBUTING.md) to the project\n\n**Happy routing! 🚀**\n","readmeFilename":"README.md"}