{"_id":"@codyduong/nav","_rev":"8-a10bc854f34633c096ae630f1036ae38","name":"@codyduong/nav","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.0","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"69ebe962d2857fbdf0c8ff69d3fe8aa4bf441363","_id":"@codyduong/nav@0.1.0","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-jdtt3g/S4G5yO8uBxFMuZACGHjAlhk9NZNsZi3KnYE4MriuanXsgTB9npn3r6fLd7wnfwtkKH+NyCOde3Q5nQw==","shasum":"e7c8a78af705de19e3d461ca5e5b69f5b86c7a22","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.0.tgz","fileCount":6,"unpackedSize":37482,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNO6oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrB8g//Sy2H93DqEO7foeE/m9jTpsre+VujfYxiYk+m+tx8bFgqCghK\r\nfqRrFaGQ9P/xHPW3Zr6B1VdxWx0wHO5ezrM7sIMbZisFS6yRDpcbdXUNSkC5\r\n47Re8v5pKTtEEpgLvtg2Pgk4L/aJUdVm3KoiwLdi1ZXdWpKIJYqcIGKIT44i\r\njRbpIqAEJaK8v/q07MHcjyvpPlgKFHYciqWQoQMtpjgLTnqemuqvtoUCu/DL\r\nB5jK0Hpdhv/SKgelqa5Guqy5ywExThl4bmLV93qBi2kGoV+aWh6WnbL/G4fj\r\nL6qnM9lJL7N+P8+1R+AZyEjyjn0YjHp9V9NUVIB0xwz7zzd0klhcVKs8i5Wi\r\nj9RfJuLXZ0VtDnzIewc2aTvFzs39WD957q4fEjonOWRwF+egGJO1eWs/cGur\r\nJsOka6+FSPkm+UlDccfMa04loojUM2aE4sLSfdHI9DFz61s7T45M9/1Z9VyJ\r\nUcn8OFMMdMsHNb5Lq0Eqfq4ujxqJRHTSkG66EEUsVP5fYqnH47cmepYGKcWi\r\noyf2mqHEmWONzZXhnrZUtvFqXWmkN/2EMtB2g5z8QuHLxaeY455t0YzVhjEH\r\nECFyZacQ3rlDM1Ix8JoyIKUCi4CrPdiyAf0kBDFnv3liSnt7A2B6E36MxeVC\r\nshDVt7XoiKoiocmMZpC3SbH1LbpDcw/LmNc=\r\n=CLIU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDrJezTMsVtp60dNaR0xttthwrhxVCoPOf3Oe6StcAt1AiEAuPYSQLAGZFyDt9CdSHq+kZffCUtYciVDh6G0FwekZRM="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.0_1647636136055_0.6085733213568043"},"_hasShrinkwrap":false},"0.1.1":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.1","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"b7893df58bfe627e7324e00cbd5348c95b76bd40","_id":"@codyduong/nav@0.1.1","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-cV0XVy8GEf+vdfwHgce7JJHVn9uA24Y4ok/89poW/V2bxGjlNVCoEqRVs6rsnjAkrAWJOHtxeT5m/nFn3/zxJg==","shasum":"69559aa5de8609c68aaf22cef6c17f603eca89f5","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.1.tgz","fileCount":5,"unpackedSize":10178,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiNmNcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnpQ/9H3/VCuUlnkUCjO6fa3QuSOg5iRdQXmecuRbm3UPcZNQZSY4g\r\nFYt7oYfIZkfFLbgP813erZpFRpaLq/5+W/MNEc4oroLygfM3+d0ZF8Bk3QW0\r\nPGlBepZXwqNNLgnoYKn+m1WnkL88gGyk2z5ooAFuvQu7LHJcyHu54T4j9Gfp\r\nv5gAYAlbkrHqv35gWsiEhSrqbjaXQPUTbu5gthsGUinrFIJNx2XKs+oIUH1c\r\nEpBSHyeX2B71Onj8XHaszyEK0dLH2mVg7jLcqclg7ahnh4pI8xwkqKyJH74Q\r\nyjsQjII6IiH9Jwx4WdYUrwmDYl238RXRHEptGYRgPC25z9x6M7TVy7Hzctr8\r\n1uqL1oIqLTHDIIpK7xOtvd/fXv5/JPEcwLFyRrjd9VhyIeVi3ce/FRJ2Xcpn\r\nEKyEGVFjOfTwIlbl2BZhzAtzdXNhxontlE8bxEUOCCNFLlcBrFC9clCmx0es\r\nsXvI1t6f+PQViBMHFrQRAyLCW2dyfXOW9xoxbv3bm8H3PCHxRPcpFLsDiLV9\r\nMkxDnuyDuNAu+sQKnsJLnHH1qBGIHeTqyROJwI0cPQXaqEYfztcJLzbKGh+q\r\nhsOedZVJ06vZ9KGEn8FxO7IcT4JRnGYSnJYDr2Fzb2XUeor2Mb3OGJAcc1d6\r\nKbPrECxRj2yHq6DwNCWwBxsLJTRvCufBG6w=\r\n=+AwZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqJfwK8+K4xFnXWAMvub/c53Fw6dsmNUxuRryfEkrukAiEA+8cRzLgvAMBDcb+lRSUUSgRSBTbY3JVoFyu2FqvEaYg="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.1_1647731548367_0.6215212686472336"},"_hasShrinkwrap":false},"0.1.2":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.2","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"c732e92458a0a6e33c5e6d77a9eaa503832f6285","_id":"@codyduong/nav@0.1.2","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-PgQqScStno8mU6OCs9RM8zeiRP5u1ymgCSgBWw5vCmizBmwF4sJQzgCYdwpkfANzKNcFtDNQK7DPs+YnqQRc+g==","shasum":"868b75c6a050e6b6f61eb578296dd77e25f9dee6","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.2.tgz","fileCount":5,"unpackedSize":10285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN56vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrK4g/5AdYQxx0oAiN14INy/HYhzZhhTvJVBrIETx0InsoH6fH7tZVY\r\nfABzyJS1ZGAr6maR31CRxITRC/gOz5KVbkctdpXJYsypbXzly+Q69dJh3Q6s\r\ncy7KdTSwvp9YiORK6Uak7UOxtEDH3iocjfsC25FjRZhyBljm8J2WJpDvy/lF\r\nfeGMsV1RwjgBLKV8eSPXhhSBhuTJtvDiVE0yuyTzJwvza7HrN96js8stKGtQ\r\nPomH4gRz4eDOF+oOTWwlTzl2UUPu0OMnaR25D6RNZm70S+AblBZLeDkUetgP\r\ne5WQuy1Au3oNcozGwlHBLnumhUcHtiVVPLN/ckl/UhBgpSKneChRzA8meIms\r\n0N1Aflu/4mswhqwWpWuq70nPfNUh8AqUCA5vLG70EMxTecoSE7FpkXxtgzZU\r\nYhCTtmNidL0++u5FjM4nEvHNzQImWxA0FOmMNZCEEwUSKYNpSNLSsYc5okkM\r\n+1bFth5ViHzP7fKiVE+KjY1WQHwcgr1fzHskXnG5pt82kN69FpPeCoEQHax1\r\nIS8cKhR2ouWrnesi3COoICeGeXUv3dFbZH45HMoLJ2VwLCSZO/S/p6ITRAtU\r\nJbLEcdFk+iqQRXfoNJyncC3/BxoFrXEkVzBEoKaW7rmAt+CTlzWTvPWof8IQ\r\nGRkfDsc1ShP8NiJYikKILOllla9UYsALWFI=\r\n=cZzw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFHiUG3KU1r+Ailwizb9IgxHlrNKgxDqnr1MhSHT6OLwIhAKS+9Fxb3Jx0ue1njXtJqJwt3COVw7lCU/hmI15CjEDu"}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.2_1647812271740_0.5637829786050519"},"_hasShrinkwrap":false},"0.1.3-rc0":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.3-rc0","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"dd310aa607515142534ceccc78235b7e6f45af4b","_id":"@codyduong/nav@0.1.3-rc0","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-tamgC6xoE1bPP8ERZBv45kXnXjTZofepOtXD5cyY+aY6DGH69WldG5VDyj+4XsSJIv0NoU6xhl5AKliumIrKvQ==","shasum":"e109f8e20acd24c43598e9def44473299e8031f7","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.3-rc0.tgz","fileCount":5,"unpackedSize":10289,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN6FPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoEEg//dbf60OADU0Ss35mJb36F0oCuqDMUyt7mQ+GDpqLnYDlMVlXK\r\ni1h1joLJVODn2DuhiGRj3E+ZRQ1+AXKz8nqKPte5bHZJguoJjwbN0/Sw4FxP\r\n137Y4LUcg04wrblhhrQ8BKTYJgFpR3MoKwPpQJ9R6915fsSRivCJQA4i644u\r\nssgBwP9FN8d87qewPwKaDO/2NY4HJD4EeHPha9E/FAEjjb091LRnRcngQlcR\r\nxBFvTGrlLzPui1f6nQ4dmuXdw05x6h9glCGqSkStFTazIysQAxiFRLnUO2xn\r\ny/OBNXZbU6hWeTWScUviRf/rXDFAhh0EeoN9yOoWxaqGLkkl06L/TWgIunYp\r\nPhwhqW49/qtZBwySjKzpKR232RPn+7PxUoIspTUtDkdyO/s5jL32J76aH1cb\r\nodqRVvOooDi2kbnVKNxyM+mX2CtMVXBYmA5EA36BxSpCE/G1XHBkjmP2dw+q\r\nAvXovNoqNSlljp5jpkQf7hn5PV1H4wTgzHXqGE/MMe+GVXPWVQBW8Uu8FlBo\r\nKhrvMBzcQKcZ9gOka3L3x+zpUxWbVm0uBMChm3eXkL4qBvrjLnVOzgCF64MD\r\ny2p0V2jBMIElQb97sNoUAqL2yHxFMwWzlEPFLo2SR2HY9620CR9sZHZT1N9S\r\nLFIf044SRF2G2mhDI4Ur8HWyz89mGVkILyc=\r\n=7F4O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZOQhOGCn5u+ZgwS3EXFepewI7uqnJqhmpWODoW1wx7AiEAruJ/xr1yiqB+tyR8+WA6ZslZwyXaNpMQWMEyijuo2Zk="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.3-rc0_1647812943248_0.17569410827474252"},"_hasShrinkwrap":false},"0.1.3":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.3","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"59e4b6066059943598d5381f90866458b25d2f04","_id":"@codyduong/nav@0.1.3","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-5uO9UEEfl/QDN9DW4yGJTBVEfdUYl/sHnDCjUC1CXeWj55Td6WmidTfzAwuxOt3YtGPQmPbdfb5RDhFnzJMCGA==","shasum":"c6f22bed7b2edaa1697b28a319021b893818c4eb","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.3.tgz","fileCount":5,"unpackedSize":10285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN6LlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2OBAAo7ocJe6WDaccoPLrpq23YyyjoxET85VVQFd0wD1wlUSzmnxt\r\nszU4RGZHZIhXjj46TkxP2t24cUu7Ccq6182fT+qW75hD/6Nb6ym5gOlVUmpQ\r\n4Gmjgxl+mv9sqnl0eBVvU6k6JUwSv59YEmRmpw0FUShvBwngHDPysjmgSzhR\r\ni6KT8v6QG+ntlEhhmNh+Wl2SHCceQd4RkgZAuviAhBzrP/s163LDepYXppIV\r\n58abiEikRZG5D23/gFY0edMrWVaoRvtIUdv+o9sV0BxvPRfsqfmVmUCdRxrq\r\nRdZ+3g30bqR4Sl2HpB2Z7RDgnlA43e3qmi8F487Z/V5d1Sy0IoAwyfK2X6HR\r\nnFwcEmGkWOR5pnR8oVFzlknop4Izs0+x9Eigc5Ftsqt1YKcwOCYV6ES/0jrJ\r\nCN2mjJ3c3YJilC3IeOSBIXcTh8roATA4uA/PpKYov1/4+8cwlVvxWqSLuiV7\r\nG+fHPsj4wrM/160aEY/NGC/0LUmoFYat7W8+sAP7Bwy3z1J29efVMjuiU5xA\r\nYlVMaMqG423qMXA1iBDSjXoFvGamx52BVSex9a2IPAdy5/MJyt7Ihw+LlzIT\r\n01kswOFX5FgPYFJi5vo6c95aUCGtnRTHGjidvLEYp4iubNUclfkr8bcSSlRA\r\nSA5qGSWbPCQjTlCor5zVdAhbw23QfXrl0to=\r\n=Hpig\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBp5MSrRdS/abagTtFmWLAZDPrccihvq6P2Fg4bqRxOcAiBdIbj4OFoIYnkPjNWoyRMgPUeOtWalu/3/89HMUz4wgg=="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.3_1647813349763_0.1328230396310286"},"_hasShrinkwrap":false},"0.1.4":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.4","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"59e4b6066059943598d5381f90866458b25d2f04","_id":"@codyduong/nav@0.1.4","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-ofTBQqZHN1qVF/tTx1FIJOrkGkse1cX//cRotCqUrfF+2kOMcnqumHpvtwckfWC2sW6SD5eQQa5Ql7JhSMQFXQ==","shasum":"fcd324b6364e77d3ad81b435e1d89169971ba37f","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.4.tgz","fileCount":5,"unpackedSize":10334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN6QgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpypg//Yrm7MZlbcYrl/33bcVDtDFcHx8HxYCfwYQgceHNdNyLHvHPi\r\n0I1FihkfGAPkuNPSoFQ9tZW2BaPdqc0CKTr4JEJwfpo7kGXQc3hwxp/2dOkz\r\nc0K3vOtqiDXXDbeSDzKs28qy3Ml7tQXrCHuSBTjcArSDalMAzE2ktohrpE4P\r\n0ORO99Z7S3+lHc2tIn1fCBlIIkaoPWz9O8d/XSgwzccG5SUWGexJmmI419k8\r\n4eREMp5/1DufRIR0eYasVH19KXH5vEANaJVh9ZNM8POs7+G5ZBox80Xq60nr\r\nmD4qz+4VT2JEglqXeq5Z7Uuu2olSVpiixEgNvF45VtXUw3busWZOEoTFrl7E\r\nuMs4cRIlJPCXY45/oRw+IuPoMbfFhCdepG+9BtNyJ3LfbYxYnYGsW/62jsFa\r\n9vLMh+9KFWSWYj/gtYj7WSuQ8J1mMxd8Z9dkmsMkkedJSc4SDjVrtcGfTWyr\r\n4iBtuim/2+BdN5oRRLr5EDdsqqOFhwmD9XM8L0Bh/9W7pZRrvgEd1c4qu1pl\r\niLQgp1ii7uGn5LXisxR9VKIO4GF1/WO0sB8uDXHCADlIVHeMw66ehVt/7CGh\r\n8tCLTqfXWpFmmtp+NBXUoNI5G9xz0PHpQfPYQH5+XB+wIvQlrXPNdSokfvHC\r\nJFnq4bxQx5ftmDq+EKwbepYp0kS7Z7xGizc=\r\n=rmT5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQKqMpxfBf8jBGCII6Cj5D23S6HWL5Q8g5aUO4Cj8omAiB+OS8nzsJwdsm/QLAoMW/cWPHhWcura00bM+ymYQyfkQ=="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.4_1647813664404_0.4491423389605138"},"_hasShrinkwrap":false},"0.1.5":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.1.5","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"d2229ae23fe889144b4e403411267c906f5cdde0","_id":"@codyduong/nav@0.1.5","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-Bf1ShdssaKXvz6T26tMaLPSl16ptn8BQsbdvaA0wF3WtheiPbcuq0W5n+WsVr6zp17lthG0bR93lFqA+VXbANA==","shasum":"b174adefac28b5b537a384bd1dd623354c7d9b7b","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.1.5.tgz","fileCount":5,"unpackedSize":10336,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiN6eDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq7FBAAkutwheRV7ekjQLXhtimhlSNnpyVwHNDzQKA/Pw/oduwcKBBd\r\nxHF5OkvR5YA9wterKDXGks3LG226qwS+CfHfk2TDkiui6S4gnqkYdhmDj9E/\r\nZdytsiWlDaln/VhoTbyWWdSigQ6raGSqG0bnjc0Q8fg9487tXwHcfR7hWNkm\r\n3bIfJ0pJieavOSbfbr4lazUOaAMeP4o+34ooqKf37z0KcvVRuqZhqxxf4l07\r\n79wn5jIY4KKQRbzL2xPV99xnozbKHvFy5gIoy63O/DOxhOjAZZrJPonfryMR\r\ndSehTMlMTA75UatD99pwb9B5rJEOCYorI+06Oo47KU4zYjkC1R5+OfVzLZKF\r\ndNGcJTgvpWfqylX/8xhaO9NNqf40U7r/g4sRac6MkTCw6D/Uso42ecQFigXb\r\n8sEWI6B3ZBhlYZo0eWpCEg74QJgItITcfmHpDfjzjvKEZHRPTf2IRi9Ddf4f\r\nBbpQ96oCvfqYMgeAzKlNCInabWRk+dvGQVYfYx+hW4rfBCMZACNb8gR43Z5L\r\nRFRodlvKVfVnpWBjv1Te0tBFfJYHSo8F4dGkx3JqimzpXzmmJeeauxOn8ks3\r\n+JR1d/crdP0ifzmhYRH3GjDj/mWqrbo88yhk2w2XmcJ/mD9+nXiM57WJLcvj\r\nQi+ICXEzCy06Wi+Zg2/U9vrP98EVQOc7WAc=\r\n=hPpB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2T1NO1Jrdbd2zQzGvQVwdruiBV/byMiRwduvVuPXIQwIgDGyk0a/WKt378huiKM5HGtF/XH0yRKld7EG9NVNbzdU="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.1.5_1647814531039_0.28975916185986095"},"_hasShrinkwrap":false},"0.2.0":{"name":"@codyduong/nav","description":"Nav utility with strong TS inference tooling","version":"0.2.0","author":{"name":"Cody Duong"},"license":"MIT","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"yarn jest","ci":"yarn install --frozen-lockfile","lint":"prettier \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" -c \".eslintrc.js\"","lint:fix":"prettier --write \"./src/**/*{ts, tsx}\" && eslint \"./src/**/*{ts,tsx}\" --fix -c \".eslintrc.js\"","prepublish":"yarn tsc"},"devDependencies":{"@types/jest":"^27.4.1","@types/node":"^17.0.18","@typescript-eslint/eslint-plugin":"^5.12.0","@typescript-eslint/parser":"^5.12.0","eslint":"^7.32.0","eslint-config-prettier":"^4.0.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-promise":"^5.2.0","jest":"^27.5.1","prettier":"^2.4.1","prettier-eslint-cli":"^5.0.1","ts-jest":"^27.1.3","ts-node":"^10.5.0","type-fest":"^2.12.0","typescript":"^4.6.2"},"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"gitHead":"34232216745c6fda93342ce823969f86dd2ce334","_id":"@codyduong/nav@0.2.0","_nodeVersion":"16.2.0","_npmVersion":"7.13.0","dist":{"integrity":"sha512-9xS75o2BkrZo8Zz5bPHJVI1kHxlx7MI8PsnT6Sy58dtFBCubY7d5f6Vzopvv2B8JlKBxblTKPlu5M0lsDrm6OA==","shasum":"ec5660d97aba1dcb0f4b4af4fb3fce6020cd91ef","tarball":"https://registry.npmjs.org/@codyduong/nav/-/nav-0.2.0.tgz","fileCount":5,"unpackedSize":10390,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiQoolACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZiA//YOqz7u4VRMDpXY3xvambF3xNdg7j/i0h62MU42tqScW3nX8l\r\nlkJjnSJnvC7BZBI+YA/rMoCQ/mw4PQFM1lnP5GQPqFgpKkiXu+eYCZCzwJoB\r\n4cnoxNwkdaoQmsJ4TadPtZ+Lskm+fqehf0WGMM3FF58djdFb2IHbIZw1/tnQ\r\nXk8CwFxdt9+1/sIQU3vJ46VVgyOV4aHWOjCWx2N0lfLodTJW/gk4ikdxgUSK\r\nYIuHagYw/NwH7fTxjf+M9SvPfQDfCyUQ30RTi4YpppnyInDI3ZcDkEwexnVc\r\nKZG2qGQq15+buVznkPvfhZhJSaaHyTrRyqZM3crqknZBuUwu2s2blrMoQx+c\r\nUMrYhJx8S3VM83SEzj628XCF9Yi3GFGxrorflBrZbLlfJvBO1cdk4oYe48WO\r\nUnjW/sB1DH/zZ0t4JUiCd9zBn4PFHAFucUj15Mm2EcW8XdnNw0JcCcPMWUkM\r\ne4qRke5PIMY90Q1qBUlQ5ZYHd3DItFRQLBhVpMxciDLjO3IKCb8oGPJe1Qkp\r\nUSocvUGKPIu1B7rz3qHEUt6XkwvZCDbd3HlHqeuPDk5MHPMSTY/opnAvwqPL\r\nPhYm/tUiq7FfYdAFpwesr3z0Ia4z/NlVGYuCqR3T5qhwzBMp7qD2MGXIcxf3\r\n1u744crQeVe3IhtdVSJhzQff24sMzXvlp/c=\r\n=GXyT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIMNWWQ0eE8yYeeFoQw0JELC+/tUwf3IScG2s6CmVJfQIgfyIYq4oHKzm/7mSyqOl93HMXzc7HsXZb43SXJ4RuUOY="}]},"_npmUser":{"name":"codyduong","email":"duongcody507@gmail.com"},"directories":{},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nav_0.2.0_1648527908888_0.21466881384536274"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-18T20:42:15.907Z","0.1.0":"2022-03-18T20:42:16.273Z","modified":"2022-04-05T00:10:15.733Z","0.1.1":"2022-03-19T23:12:28.515Z","0.1.2":"2022-03-20T21:37:51.907Z","0.1.3-rc0":"2022-03-20T21:49:03.371Z","0.1.3":"2022-03-20T21:55:49.915Z","0.1.4":"2022-03-20T22:01:04.544Z","0.1.5":"2022-03-20T22:15:31.253Z","0.2.0":"2022-03-29T04:25:09.064Z"},"maintainers":[{"name":"codyduong","email":"duongcody507@gmail.com"}],"description":"Nav utility with strong TS inference tooling","homepage":"https://github.com/codyduong/nav#readme","keywords":["Nav","Navigation","Utility"],"repository":{"type":"git","url":"git+https://github.com/codyduong/nav.git"},"author":{"name":"Cody Duong"},"bugs":{"url":"https://github.com/codyduong/nav/issues"},"license":"MIT","readme":"[![Downloads](https://img.shields.io/npm/dm/@codyduong/nav?style=flat-square)](https://www.npmjs.com/package/@codyduong/nav)\n[![Code coverage](https://img.shields.io/codecov/c/github/codyduong/nav?style=flat-square)](https://codecov.io/gh/codyduong/nav)\n[![Latest release](https://img.shields.io/github/v/release/codyduong/nav?style=flat-square)](https://github.com/codyduong/nav/releases)\n[![Commits since latest release](https://img.shields.io/github/commits-since/codyduong/nav/latest?style=flat-square)](https://github.com/codyduong/nav/releases)\n# Nav\nA navigation utility for parsing API responses.\n\nWritten in TypeScript with strong inference engine. Handles all your data for you.\n\n## Install\n| npm  | yarn |\n| ------------- | ------------- |\n| `npm install @codyduong/nav`  | `yarn add @codyduong/nav` |\n\n```typescript\nimport { nav } from '@codyduong/nav';\n```\n\n## Usage\n```typescript\nnav(root, tuplePath, default) \n```\n* root - an Object to navigate through\n* tuplePath - a tuple containing keys to navigate through the object with\n* default - the default value to return if encountering an undefined/null value\n\n## Patterns\nAPI Response\n```typescript\ntype foobarAPIReturn = Promise<{\n  foo: 'bar';\n  array: {\n    name: `name_${string}`\n    id: `ID_ABXDe_${string}`\n  }[]\n}>;\nconst foobar: foobarAPIReturn = await foobarAPI();\nconst results = nav(foobar, ['foo'] as const); //=> 'bar'\nconst foobarList = nav(foobar, ['array'] as const); //=> { name: `name_${string}`, id: `ID_ABXDe_${string}` }[]\n```\n\n## Anti-Patterns\nHighly recommended to always declare the object, path, and default with `as const` or explicitly type, \nthis will prevent any short circuiting or narrowing logic done by TypeScript intepreter.\n```typescript\n// ❌ This will work and type correctly sometimes, but will fail on larger and more complex objects, see below\nnav({ foo: 'bar'}, ['foo']) //=> string\n\n// ❌ If path is not asserted with `as const` it can fail on arrays since it short circuits to the path to (string | number)[]\nconst path = ['foo', 0, 'bar']\nnav({ foo: [ { bar: true } ] }, ['foo', 0, 'bar']) // => { bar: boolean; }[] | { bar: boolean; }\nnav({ foo: [ { bar: true } ] }, path) // <= Path! Argument of type '(string | number)[]' is not assignable to parameter of type...\n\n// ✔️ Always assert the object and path.\nconst path = ['foo', 0, 'bar'] as const\nnav({ foo: [ { bar: true } ] } as const, path) //=> true\nnav({ foo: [ { bar: 'foobar' } ] } as const, path) //=> 'foobar'\n\n// ✔️ Or explicitly type the object and path\ntype foobar = { foo: [{ bar: true }] };\ntype path = ['foo', 0, 'bar']\nconst foobar: foobar = await foobarAPI(...)\nconst path: path = ['foo', 0, 'bar']\nnav(foobar, path) //=> true\n\n// 🆗 Or use the built in generics (while acceptable is also extra verbose)\ntype foobar = { foo: [{ bar: true }] };\nnav<foobar, ['foo', 0, 'bar']>(foobar, ['foo', 0, 'bar']) //=> true\n\n// 🆗 It is OK to not assert the object, but it will be less narrow than possible\nnav({ foo: 'bar' }, ['foo'] as const) //=> string\n```\n\n## Idiosyncrasies\nQ: Why do we have to `as const`?<br>\nA: Read more on const assertion in this [TS 3.4 Release](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) or in this [StackOverflow answer](https://stackoverflow.com/a/66993654/17954209). In short, the TS intepreter uses this to narrow types down from type `string` to something narrower such as `foobar`. It also automatically narrows objects/tuples. Since the path parameter is a tuple, we can't afford narrowing this type, otherwise it will blow up the inference engine.\n\n## Contributing\nAny contributing is welcome.\n","readmeFilename":"README.md"}