{"_id":"typed-path","_rev":"18-142c960ae93f2d14d15b83112d0a2a36","name":"typed-path","description":"Type safe object string paths for typescript.","dist-tags":{"latest":"2.2.3","beta":"2.2.0-beta.0"},"versions":{"1.0.0":{"name":"typed-path","version":"1.0.0","main":"index.ts","repository":{},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"files":["LICENSE","index.ts"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","mocha":"^3.2.0","ts-node":"^2.1.0","tslint":"^4.4.2"},"gitHead":"d1b686d294996d5db4d8f32b2d4f9a6c706ead86","description":"---","_id":"typed-path@1.0.0","_shasum":"13d205a71ce4380bef2b8998f4adf912c8e7a7af","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"dist":{"shasum":"13d205a71ce4380bef2b8998f4adf912c8e7a7af","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-1.0.0.tgz","integrity":"sha512-juCxOGYDtfpqxaY3QlIIatAoPPSlWhmZv33TZKlpLLcnyKdisjTpXFjekj0sfIqOTznaO37eTENDr+L9boHuEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIET8unI4CD6SaRlMO7PntT/wKMkqjwr1pHFGBj1FAMcYAiEAol2jOlW1TGZAoDahN+PgxAze0P9cinFD1dK6VsTx4o0="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/typed-path-1.0.0.tgz_1487459403232_0.09894073102623224"},"directories":{}},"1.0.1":{"name":"typed-path","version":"1.0.1","main":"index.js","repository":{},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"files":["LICENSE","index.ts","index.js","index.js.map","index.d.ts"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^3.2.0","ts-node":"^2.1.0","tslint":"^4.4.2","typescript":"^2.2.1"},"gitHead":"7f5e3dea889cc4032f794d2b18d0d2781835c623","description":"---","_id":"typed-path@1.0.1","_shasum":"31e6e32a0196fb542c1277b7f30cab91bd1d9295","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"dist":{"shasum":"31e6e32a0196fb542c1277b7f30cab91bd1d9295","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-1.0.1.tgz","integrity":"sha512-z94a6RpeFyMewmrqgh3dSjOFSzr45jhujpo/eabg5CUuZI23D7bpFSrG8J0M5U2GRa/ABTV48qFa6QcE9Lmihw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzXGjPn4A+8RIDbcXMtEbDqQ4PQF6cW3RMr88Rz9HW5AiABLkFDUT3wJSdOJbFtA0SxT1fyqS1QvdHcVw9bfZXp7Q=="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/typed-path-1.0.1.tgz_1487979058919_0.23022805503569543"},"directories":{}},"1.0.2":{"name":"typed-path","version":"1.0.2","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"files":["LICENSE","index.ts","index.js","index.js.map","index.d.ts"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^3.2.0","ts-node":"^2.1.0","tslint":"^4.4.2","typescript":"^2.2.1"},"gitHead":"070bb90755126a29daeaa9e0ff994877894eae93","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@1.0.2","_shasum":"567b42ea7ac0cba84f33ab8385635e43445de526","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.6.0","_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"dist":{"shasum":"567b42ea7ac0cba84f33ab8385635e43445de526","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-1.0.2.tgz","integrity":"sha512-szf7kKFnjgWRuFg4JaHblXRuqFOkId/Ak9DFu+hjMDQvTyzHAsEQb3gqs0ISz867FITcw7LBhbEEABEBuSffgQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2xbeSnlzV9VVLD+vpqBH5AsWIYpyTbOnpEuxsBTtlKAiEA736Qm1gOACWp2BLvbxAtTF1kLuUq+j4lFCwIQP3M2KE="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/typed-path-1.0.2.tgz_1488669852603_0.7701664690393955"},"directories":{}},"1.0.3":{"name":"typed-path","version":"1.0.3","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"files":["LICENSE","index.ts","index.js","index.js.map","index.d.ts"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^3.2.0","ts-node":"^2.1.0","tslint":"^4.4.2","typescript":"^2.2.1"},"gitHead":"3d522a6979902f2a41d58a60ba573d996383a241","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@1.0.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.2","_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"dist":{"integrity":"sha512-7RoNzEUYCTxaZXSZNjXDGuCHgLSG+j7BdU7FMCA8Q3I7tR33kHqgg0VoGZTrVIhHB46iZVo0ehIgng46E6/P3Q==","shasum":"7d3e58751ad841ad78410a01fbe43be968d58e75","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-1.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHgH+/Bsn67aom7ujNItaT19CuTZw2l6VnLDCZHeHsn1AiAO7XPuTRJQVACmWIXu5q5o4ZnhEUkkgb2IqI6yIEDOnw=="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path-1.0.3.tgz_1498486762795_0.3840062879025936"},"directories":{}},"2.0.0":{"name":"typed-path","version":"2.0.0","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^6.2.0","ts-node":"8.3.0","tslint":"^4.4.2","typescript":"3.6.4"},"gitHead":"f8ca40a512eb049293acc75fe3b58a39ac386931","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.0.0","_nodeVersion":"12.11.1","_npmVersion":"6.11.3","dist":{"integrity":"sha512-esDVo6n6s1t/aLBrYU4XHG20Q0m+Xkgblg6saKdh7W8FHBSPgHS1AaN/2Tnt45+jg8yG2zId/nME2dXP9HKo4A==","shasum":"e73aac28d94a3646524479701db99e3569c40060","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.0.0.tgz","fileCount":4,"unpackedSize":3935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdp2OjCRA9TVsSAnZWagAAN2QQAIKSsR9tEwSyU3zWqACr\nGhopbSrPo3WfnArqkN+TUR307wrxVRSlA7yxbdn/E6FG1l37OGwAx8EuFNL9\n0kI2WiV2Ld6jeVfBSdK7/622P45ufe9Z0Yx/DiLsP8hGytdmTT7iLPybFqqV\ndATJAlM7uXuMtj7Z/yPcXmqM6aTLrJYdbP89G8/PbYfGM5l6U6U0oe9Vokcq\nRYxKHaOs7w2Pu7vMqLZyIXe433tJxVBT2YdqpXo0ZmpQAnND3dz6ywwLzjJm\nsp7DqTYVkTYHrhwwFt/M8MOvRupW50HbpL2AA7S2SHnvEmyMBKT1YacGQlym\nY2Ht0ExJKNMw+y0snxOyGzvd+7rhdOW0EYD4ssvJVBEFU9aC8Z4v45mbE34F\nrxH5rgOjjm6Bf5bXqxVTmvkwNkosRbkpOcph1Ar5Ew7InKNp5IOURSRqdCQM\nlEcFLIxIiOCdhG9vnSvDhu3fdipYMYrdNCqbyuZvqiMmJDdEdY3l0FMHOPIB\n45X8dnRBTw66SN+DfN6NeRG5+ycInzVIVc00So6iXywiRc3nQaGS6q9l954F\nMtU7KMXcDGYr5fo9AtyBRV/xqhgjbA/bw5XJSUduW7zlVX2FVyKarWbtaFfd\nnRQKGi7yVytqDLOLdDbTX+qedY+h7sf8LnQd6w1sXFweF0wcgyr7YXcn3Byo\nXsr8\r\n=6XmF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoU2W9fOEArGf+1G6WdFmSOBYgwcUmnfWlPyVNyJ4svwIgahxG/4bFJLuM0zLCP2zmwT8tUrf1jfzlgcDcCUmSD+c="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.0.0_1571251106973_0.16731935754089"},"_hasShrinkwrap":false,"deprecated":"The version is broken. No built files are added to the package. Please upgrade to 2.0.1. Thanks"},"2.0.1":{"name":"typed-path","version":"2.0.1","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^6.2.0","ts-node":"8.3.0","tslint":"^4.4.2","typescript":"3.6.4"},"gitHead":"f8ca40a512eb049293acc75fe3b58a39ac386931","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.0.1","_nodeVersion":"12.11.1","_npmVersion":"6.11.3","dist":{"integrity":"sha512-JbH+8hxoIx/Y7rDsd3YYhkGUM2pifqj0m9RTM0Ags44N7LCpiKya3CH/bQpvFWwuSas6xYW1YIKdC7JigQv89g==","shasum":"18401b6b0efb04f7530e5e8afcfab6be4486c142","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.0.1.tgz","fileCount":7,"unpackedSize":6697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdp4EfCRA9TVsSAnZWagAAqY8P/j1evshtq1XoRlhc3nJW\na1gsR03agA5/RBfAJPpuqlOeX+x4mr8DPe/Lhbg6KVPt41zKmTJ2xkn/+RRk\nc37MOzQKiiTHr8YfYnbBh10+r4IK09q2r3+PLea/pcZ/qrrucqY5H6M+bOqv\ncCzCZtIOcr/A+cJUPx6k8vRXtGCXxR8c8HN6PRoVy8lTYUL3qKz0Xt/KFrm6\nWIAkhDlzOTNP/KY2hUurvVgZH1MATb2ClHfqacLrzOJutwTUuaLVo08GKBGe\ndtF8bN9syiicgd4tw4aZo/qjJVXx7vX4kaHd7Jewi75gnjIj9c3VlyUBaaLT\njaHIlXKfnc1Ya1mdYfWb5vSFGDDYLXtwe3nY3ou4bJruR9VyGXDjquao4gnS\nJHjufDVIJ4Zmwzb5h51uo1F8Piqnx86tzVbqKL7R6uP8fhxpzwFgKbC2YlmQ\nLzTD5jYMcoMtn9QiqgCi1zp4Jf7j7SE/AkkIUUM28xw1sIomTVlqwPuNxGDQ\nCxaBNepvLpGOOWDnlqnioS6fv8rzdzGIJ3TAKWnq2qdJ/70LaE+je1OeQ8GS\nXGRFBci4bDQgJof9B0BZwUF4DebI+DF4FEUD4nyQAwzRg5DoKJykK5rOgYuY\nRqDRDdC6A6TVCAETl1xoXngMXqn8m+zl2VlhESwJCpP6KHFufhFAfxdx35Gq\nKxO1\r\n=yaPx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqdqy9mvJvuRKUSJsCuLOLnYH0yBeLP4DJ8oln9H8r1QIgOt+x9vuD0KbzQLcotcUgswGLICObVtthTI7avIHxa8M="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.0.1_1571258654583_0.9914134682667963"},"_hasShrinkwrap":false},"2.0.2":{"name":"typed-path","version":"2.0.2","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^6.2.0","ts-node":"8.3.0","tslint":"^4.4.2","typescript":"3.6.4"},"gitHead":"cdc4053b178103a56475dbe32b04a25182075833","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.0.2","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-y+1sw99L5JKGdMV95VBj6GWNwDQFCCmGwRwJ37wipyhgCdpjzqU/30CHlLpLLbW/TSyp9J96VFpF4b7W1oiSLw==","shasum":"74cf47bd27f8760bc706561326179317fbdb39f5","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.0.2.tgz","fileCount":7,"unpackedSize":7513,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDMzvCRA9TVsSAnZWagAA5e0P/jA+HEyri6sawHNYRwz0\n51PHvHI8uOnoarcv1WxGeWwMRcn+HKi0fWhYEuSTbfEYxDkqPET7GWDmyrmV\n7CqAMdqq5BKD12jBxdozqaMZAokOYQonsK1PCc7sx8Veby8qt3dmLBhaS8bv\nVECLmn0RReV+L69gT7kVmGCF0xOlBZtTd6mFkLGQ5IhXjwY9TMuS4QsYHiU5\nPdNGOYsRHezsQ0cqSCajUxrxgSvp2HZIxqq6ofD+PTVdOOhhWERMNo68wjel\n/tFeV3OQRnhceyk/JxOwRlE4Ldh2LuyorJO6pbubdsrK+889S0+ON1Biz5pY\n3f1YmS1/Ceyupdk1hKlgRXObhg5sSOA0CJv/4r/9MMNSXbvBso+zwv1DzIQn\nFQx9d3ig65BO2rAS15Cu0HhNR4CIXjXtMgD/FLDDbKocuHoQ+TPydXqrufiH\nSvWwMCIZAWVSli9UVTKMP0ljdu2hbCunoVn/oT0qXhKfLwidBfEssMg0mQKJ\nkd+qHE2lfEadKBF4lKSQJXDO/xtbE+9Rems7IyjoU+Iw3ubUpRNYZ3A0wVI7\ncCi9y3gMmFLOFwy/2wiTiZPDlvHsS3lb/fgsgGPvS2JTsuozIQojQy4gMEhs\nU+7/G9GchRBf/0/aVwNt625UokJR97xOmcAmwnMfqvPbbNFyavmePEK1DsUM\nDlJn\r\n=k8/j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUHeJqD5/wneISYMM6UDyIFqhVlJdgxQGpwrL9g0xWhQIgcQmzm7bYdsmfOq7YoRiI2vHuH68YLUxGNDl4RZo39S4="}]},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.0.2_1594674414567_0.6807536564556727"},"_hasShrinkwrap":false},"2.1.0":{"name":"typed-path","version":"2.1.0","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^6.2.0","ts-node":"^9.0.0","tslint":"^4.4.2","typescript":"^4.0.5"},"gitHead":"210620f3e4eab8cd777f4118765dba7940a5037a","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.1.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-ZQ5XhdBIE/K4Wa4uET7lrFMK664lTnBiIDMsLSIcCUAzdaK1HIcTzO77ztlJpKEyVlvaxqtrgWvXuYPgztewbg==","shasum":"578fc4cb08a9482327c641e96ede7071bf1606fc","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.1.0.tgz","fileCount":7,"unpackedSize":11399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrBD+CRA9TVsSAnZWagAAk+wP/1HsEVwRlGObZpzLl/qL\nTsR88jZEPEca90vkyF5GOoOxw6aCYQWb6aJ43fIgjstOvlkyDbLqRbIdKq3C\nGGRERdtjuhWz0FAkVuTZJ7iOscP8Pl8Ff4eMl1jRGi6+yZw29HI9tOQMWEIH\nvHEJpKS50rz2SG1xDTYPfImJ3kuM11bm6/vaiDJ3Sx2NFzoW1kloP+h9D8ws\n4mdRsCx61nbrAqDLaGu7Qzhc42RRpWD+PWsSSBfgJ+vjMu5AP8vJJ5hlCWpN\ng0GRprjtEugt2CJNQswxAPjp2Ssdx0QEhEwszky0MwtrLFbMXC+zhxqs0NJB\n/Xf9DJmbWW9/ETJ0Y342cBc0K5rSAayJQgbRePCrkIgaNYAXtQa8zyQmOzmX\nQ6S851zay5WeatGuCFcwoMyyibXZoT6Z4FawjJmzHANmh+GVoBP06m2mfOST\nE70U09OfWGVRtnQpksOUxruc0h/NEX/gTy+X9rfRm1pK5/sqFmvpHzUhXnRY\nFxqQ1e4DLQyUvaKsKrJxfT5B4Ph3hR+lTx/U8ZShDf/4/Bhnu9Qt0bUBL/U4\nMe/yjIqyYvBr3h1zKXCH2uejv8b1vWUZnVKn5B2MCAX3lVerUuvTG0A0mji0\n8PMaQDXTbeUyn2/xYIu4GN0ZMnkNCwdRqb8FRbS2poBfwq0/Lm/Zzrq6Gq46\nrJTZ\r\n=v2Kr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCed7Oylylgfr+0JZoxoiFs6g9smVesbhQH2RnA2ow9PAIgVwO08sseUAspZMfGm0O8B+hP7ZvU8MPgp9lIUfktORE="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.1.0_1605112062443_0.7699888858755999"},"_hasShrinkwrap":false},"2.1.2":{"name":"typed-path","version":"2.1.2","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"mocha --require ts-node/register index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"@types/chai":"^3.4.34","@types/mocha":"^2.2.39","chai":"^3.5.0","husky":"^0.13.1","mocha":"^6.2.0","ts-node":"^9.0.0","tslint":"^4.4.2","typescript":"^4.0.5"},"gitHead":"c7eda267b4bd695f9a09dacd1e955548a5c484e0","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.1.2","_nodeVersion":"15.2.0","_npmVersion":"7.0.8","dist":{"integrity":"sha512-UHCUkHxOQy7cn6pilYldMvd7GXlccfSEwVxHi8/ND37e1sW8KIwkdD2R5RAL8HKuoNvfbHlgeNW3wVJudabtbA==","shasum":"e4ff6061eb7101b406cf49425b859c2fc24a3e8e","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.1.2.tgz","fileCount":7,"unpackedSize":11440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfuEOlCRA9TVsSAnZWagAAnssP/26iqsZC6QVbsAa3tbVk\n3iuKMpFAg98PQ70iVUXjNtvVl85UXAYx6eKTjHwD8e7YONZjHVy4aii5jLm+\npZG8UvutqtQTuC0ME/XuRUFDsLNuIt652SvmD0RjkfCpZDJqvSSoJGPqf0sK\nV9wdLdFzx16LtYBKB27nuLNkWQQ+3jGH3jKH5LJ26sydNbApTf3gbgmSLrSi\ndpjtElCiDjQpF4vsfM9v8/0Wb4MAHSZHAdfgaOxDe+vwrMkAjGV0y9e/IDLh\n51un1LMxkbzRhBNHv3hN3DeUjQgkSUE16bry+nji9Lh/7rebblzP9C0vUxwh\nWf3B2YOjmxEMe5SKks04ZjHKp5K7hqmYP4LonirXdmiQqbKpydZRi9grE/T6\ni7sR5XNE5lEzs7Kwe7ITgkYtq9Nohtt8Kn+JJ7iWKT7p37DbVrrVeanFNwVB\nWOgI1PrgryD1K48KjK5256q4cQjNyWuTYxStWJc6LcR3S3qINnSE9rvjQFtL\n8AAyDuq7W3UaFMKGQXlL9UNoqQVQ6bqD9xr4p5uSRFEvlSA/FMn4cClAccoh\nyzC5imhdRUvjMliy86IUJ5UE3DPh4MENl/q6tjHWqTw+9GNqI309Rsr7AVCq\nlPLRjrP0Tqsbakeg/BilYSvFJ1sajcgyS2sE7kwxzARgPTV6f6o83d48wly0\nObH4\r\n=FvtH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQ1pQAQ2VYLP5b+k/7dNWk3I7gTutzC0YQwn99NTPJswIgYRV99fzC0ulVpLkAqKOC4IPRA7xCNEaFSy48aapvaz8="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.1.2_1605911460909_0.719198559016129"},"_hasShrinkwrap":false},"2.2.0-beta.0":{"name":"typed-path","version":"2.2.0-beta.0","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"jest index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","format":"prettier --parser typescript --write index.ts index.spec.ts","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"husky":"^0.13.1","jest":"^26.6.3","prettier":"2.2.0","ts-jest":"^26.4.4","ts-node":"^9.0.0","tslint":"^4.4.2","typescript":"^4.0.5"},"readme":"# Typed Path\n\n---\n\n## Problem\n\nTypes are lost when string paths are used in typescript.  \nI.e. `_.get, _.map, _.set, R.pluck` from libraries like [lodash](https://lodash.com), [ramda](http://ramdajs.com/).  \nIt makes those methods dangerous in case of refactoring, the same as JavaScript.  \n\n![](https://res.cloudinary.com/daren64mz/image/upload/v1487457505/string-refactoring_x2tubt.gif)\n\n---\n\n## Solution\n\n### Errors\n\nWith `typed-path` typescript can check paths and warns you about errors.\n\n![](http://res.cloudinary.com/daren64mz/image/upload/v1487457505/tp-refactoring_p4byr3.gif)\n\n#### .$path\n[@m-abboud](https://github.com/m-abboud)  \nAlso you can get access to the path string using `$path` special field. \n\nLike this:\n```js\n    console.log(tp<TestType>().a.b.c.d.$path); // this will output \"a.b.c.d\"\n```\n\n#### .$raw\n[@dcbrwn](https://github.com/dcbrwn)  \nIf you need a raw path, which is of type `string[]` - you can get it using `$raw` special field.  \n*Deprecated, since it transforms symbols and numbers to strings, which might be not an expected behavior (the method name is \"raw\").\nPlease use `.$rawPath`*\n```js\n    console.log(tp<TestType>().a.b.c.d.$raw); // this will output [\"a\", \"b\", \"c\", \"d\"]\n```\n\n#### .$rawPath\nIf you need a raw path, which is of type `(string | number | Symbol)[]` - you can get it using `$rawPath` special field.  \n```js\n    console.log(tp<TestType>().a.b[5].c.d.$rawPath); // this will output [\"a\", \"b\", 5, \"c\", \"d\"]\n```\n\n#### Additional handlers \n[@nick-lvov-dev](https://github.com/nick-lvov-dev)\n\nYou can extend path handlers functionality using additional handlers:\n\n```js\nconst testAdditionalHandlers = {\n    $url: (path: string[]) => path.join('/')\n}\n\nconsole.log(tp<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers).a.b.c.$url); // this will output \"a/b/c\"\n```\n\nThe additional handlers are also chainable:\n\n```js\nconst testAdditionalHandlers = {\n    $abs: (path: string[]) => typedPath<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers, ['', ...path]),\n    $url: (path: string[]) => path.join('/')\n}\n\nconsole.log(tp<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers).a.b.c.$abs.$url); // this will output \"/a/b/c\"\n```\n\n--- \n\n### Suggestions\n\nAlso `typed-path` allows typescript to suggest field names for you.\n\n![](http://res.cloudinary.com/daren64mz/image/upload/v1487458263/tp-suggestions_lg5vnb.gif)\n\n## License\n\nCopyright (c) 2020 Oleksandr Beshchuk <[bs.alex.mail@gmail.com](mailto:bs.alex.mail@gmail.com)>  \nLicensed under the [Apache License](http://www.apache.org/licenses/LICENSE-2.0).\n","readmeFilename":"README.md","gitHead":"9ec1c0c613f0ff4c0a2bd4c5e7c8a6102b25cc1a","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.2.0-beta.0","_nodeVersion":"15.2.0","_npmVersion":"7.0.8","dist":{"integrity":"sha512-5kPvEzIYfcc2pI9Av1u6hMJ3hvmgr13lfDpxkspmO7aQlHgeqldbjcx35NgNjXt9E0spaRyiNQYGWXt8hGHhbA==","shasum":"78c0fa30f441a023ccd9e6021effb28ddf5b665c","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.2.0-beta.0.tgz","fileCount":7,"unpackedSize":13678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfuF+pCRA9TVsSAnZWagAAe9AP/3FbprArkU8a7hoMy91u\npObIQ2LOY0ZL1otNsjaS1HrcyvhN8c2FoA6qmiiHY5H/1boh/Nv6Yj2G5fsD\nmM//mnV78ANc83FvC6uB7w5+7hew9BinFkTZi4aFv6fX3yf63Qw2W5B5Jl8+\nTmIGs6hv4w5qsTF8oI+y0JWh6d1TfgrwyOeBjfwbpmhgcNDqVoQhduz/tGNY\n1EfqFSofOt5LRrhn8VDzBrD6OSZyXoCWWnteNmfiNkJgKEWmBJSEYEiJcKwi\nagfVkCXwqX1aC7ZzU0D4XU7irGNmcCgRQpB7H3whNrkewUfnN0KgWndggpf0\nVMIP/a5SahnqjFafj6OXLoI2UkwHT0sp7FmeZTk2mu0lYP8Cbvl5ZtrC4QmT\nbVa2cO/LIih/ytbIDdsIzaz3sggWrFjYKK80VkPb4IbhY8+b/IvrMjfbFxzC\nGX6GFAanN4C1uCBiufAvJXVxR45baxbAbsGDrwbMd6QpAb9ah0iElwGmnpe7\nX21s1/H7AsVN0RlN9ywmI7kvCFjaprzIv8+hEYD8IltHB96+YFNnul1uZs46\n2SlCo+F61dBUUjt8E52kvv/5VUjldvEQQCCIqW4yOxVEhKEoi0ggnlSH4MAb\no4nlXeSgyNoa8XUXJOzqk+RNV6AVl1dzZYeiq7d0MAwxxLBehv8T+15etI+Q\nQNCo\r\n=rpNi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvcQitDKpSnmBARNtamjroC5FYS1hmM5EfxELdGqy/NAiBl+vHH0wHhLoP8uvQPHVXDe5qvyBwrXuw6/J9OtgHtiA=="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.2.0-beta.0_1605918632580_0.2823579929141966"},"_hasShrinkwrap":false},"2.2.0":{"name":"typed-path","version":"2.2.0","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string"],"scripts":{"test":"jest index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","format":"prettier --parser typescript --write index.ts index.spec.ts","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"husky":"^0.13.1","jest":"^26.6.3","prettier":"2.2.0","ts-jest":"^26.4.4","ts-node":"^9.0.0","tslint":"^4.4.2","typescript":"^4.0.5"},"gitHead":"b4ecc5e27f75f144d5732a7a6a32965188740cda","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.2.0","_nodeVersion":"15.3.0","_npmVersion":"7.0.14","dist":{"integrity":"sha512-fr341VagDsBNAradAn7Kn752gLcyHDLXL9eEEaaYdVPuR94ZRnidzC3D4y0Bvn3X2UOTMz5RyKN639Hs1t9WJA==","shasum":"60643d1f5e38ec5294a017957ca30cd84aa5be73","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.2.0.tgz","fileCount":7,"unpackedSize":14350,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwukJCRA9TVsSAnZWagAADdoP/0dfMtT0poCw61vMFZoB\nuru/kig5n47H2j5OoOemswXQ/7j0a2ty9NH2tFDLQMcOLXgO48SFiTY031Mu\nFzCVEXlKHgmL6/MWWxPPBi2NgqyIjFYl+SBNSOm71IUvtH42KzndeUVM9eeG\nA2dzK4zXXn6DF+3aySjcxVLp6OEi2TUnycEwr6tXuKC58ROoQCVn29esMBg1\n2/ZoinAvdJz+MAbMERYfp/7TJnsGHFPztuiHKbtTWOljoWCTMG+d4kIYL5Ti\n9zI5xfgyaLlr0C+qknKljFm0Txdm7kfuLjOzuDoMsv5QKz2S4OE9VfD3zMr+\nx+J2aqKw61Em0DpeT8uVVZ0QkgvuS6GZ7kxfll6nJiWmtuSLNVhl8A8G8Mkq\nuG/f30iPQ4LLp9ICR8Q43XN6wtW/kBSKwFbrfN2aHGcTXUq2mzXSVH2tgF8F\ng3Q0FWxcVpEkPHQasOpHEBpbPn/Rgi7QMCClXfaor8F9P0KAywqTBk2Mi0y/\n9l9OjfiasbisCY1FSfXbssf557N3lD4UXvU5N2ZszcblYMzz2Q+DbvoGRHxb\n6+uf29Nxl7zKW4yJLKa9SWma9IAKyLcfnt89TFqXk1wbuRSDzCmfMkuhaDQ2\nvfVVDPdMoMSqRQfj4eFIcg198K6CiCJC06kIMxXIQLzTgGojig/o5GojYbDw\ntH8T\r\n=ioj4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiaMBmgQc7RpGa+T1RrNLcmLUsqPhuNdi43hrX3NoqUAIgTUjLK7PWab6THNUVEwTXIdrjdnXCghP/8aONytfkEN8="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.2.0_1606609160682_0.712040156859683"},"_hasShrinkwrap":false},"2.2.1":{"name":"typed-path","version":"2.2.1","description":"Type safe object string paths for typescript.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string","ramda","route"],"scripts":{"test":"jest index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","format":"prettier --parser typescript --write index.ts index.spec.ts","prepush":"yarn lint && yarn build && git diff --exit-code","prepare":"yarn test && yarn build","build":"tsc"},"devDependencies":{"husky":"^0.13.1","jest":"^26.6.3","prettier":"2.2.0","ts-jest":"^26.4.4","ts-node":"^9.0.0","tslint":"^4.4.2","typescript":"^4.0.5"},"gitHead":"7a34508ad1f2752983fbdfc262adb925a8e84bb3","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.2.1","_nodeVersion":"15.3.0","_npmVersion":"7.0.14","dist":{"integrity":"sha512-yIboHnTK/8NHN+uXslGLrvN6JLv6OMm4yk4GKSHq4MYTffvMI12cd1h0oecrh96+C5UQpvR6XETyQEL71pblHw==","shasum":"55f3136e9e4bd98f54e03aa89897ec487c0b8d91","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.2.1.tgz","fileCount":7,"unpackedSize":15775,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfwwKLCRA9TVsSAnZWagAAK3AP/195KpJctNHgPY/Ox1hc\na8Y7Ayau2rq1vAddOovm1X+lFWri0YhcaMhgBM7nQ3Bwse0T1Qu4UQHIWQW6\nYze1JyJg3J05fglCiKQZ31j1lV9sdXMNB8bPVIqwLg6DsLmLBqE0DHPkSuNS\n92oiMGfTEwfCIUQ37dKCxwex+sWQE+unTGLERpITZnrbXUTgzWgol1b/kvcy\n/aTBn1uIzfYmz4WQ4o+BaE8KMODZF5EA94KwDksc3dJAgZOe5JsF8xt+Q2S9\nBkbDCv0R9ijp6XOtJrva9RUppRNKlWhGN5//74ripRACq2VPfI5Lcp8ln0Uz\nYhhQOTKDge8ZbH3ZOHvsHPuLiVpWI+lkfXA9c0qHrW/MVl89RVWMiUCP1yXt\nU08+eHKZ0v733uGEZ/RyzDXoL6nsjMbk00ZSG+kDV0skudkGv3VMyWwUAwCG\nrBamAymE2COezjHGWxZzyLj76ENW6svq/9AQcm2ddBzFIprxvpfc3Tf6wpG7\nkWfiHfMqWnbSUlH864AWWxeHIZbFGFcBy7zZme6lWGihdr2oRYrF4/KtQlLZ\nhpQ3oeOlXx8sJPOijs7ZLblDqAqjeCr0QVWCEbQiBLuSYcbYeD2smBRzEjN9\nXYbJgDuztQVQSdYYFaELIRwQMuLeNGBI1VA5u2GkYzVX/KE1SSlOelK1znSJ\nWffw\r\n=QB6X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEG/4JQLTc8IWLbpQWf25WFPX8t/k4pug3X73D5cOX0AiAshcRw1j5zCTN9qsvWK2pukjX+yTMMhUhtseaISWzsFw=="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.2.1_1606615691461_0.20762878540398577"},"_hasShrinkwrap":false},"2.2.2":{"name":"typed-path","version":"2.2.2","description":"Type safe object string paths for typescript.","main":"dist/index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string","ramda","route"],"types":"dist/index.d.ts","scripts":{"test":"yarn tsdlint && jest index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","tsdlint":"yarn build && tsd","format":"prettier --parser typescript --write index.ts index.spec.ts","prepush":"yarn prepare","prepare":"yarn test && yarn build","build":"tsc -p tsconfig.dist.json"},"devDependencies":{"husky":"^0.13.1","jest":"^26.6.3","prettier":"2.2.0","ts-jest":"^26.4.4","ts-node":"^9.0.0","tsd":"^0.13.1","tslint":"^4.4.2","typescript":"^4.0.5"},"tsd":{"directory":"dist"},"gitHead":"ef579e304f3c7b166cb50bb920491096e971ce64","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.2.2","_nodeVersion":"15.5.1","_npmVersion":"7.3.0","dist":{"integrity":"sha512-hgJX0ABEg4NAmpTrjTAalFaB4o6ptx9+3cZhKmYXeI6g1QdsxD39FodgymNvhZOtNhxe6qXsZk/vENzXD2rgTA==","shasum":"6d3706bfe1f687d7bcb0d58222379a359808686a","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.2.2.tgz","fileCount":7,"unpackedSize":17781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRKQJCRA9TVsSAnZWagAAz7wP/0IgLl/55ZwRAi9Zf6EQ\n7xvBPNtoRTDC4J8hkxkHQNW3sVxPsaUDg9wiS9USQpnmCaDcADEYFesPhbgS\nXPr3/ITjNuiTG9n1kabyXuYhBxO42OAVAUh/MQpLWYb2gGWHMuFpsosLkAvt\n28Oqn2ATt4FF0pNhwyxpFANeJt0pyw6jYnHZvDxg3TBahIvIdjkEarnpLXbW\nGsp+Hf6QN3SPuRMlZLmXjqGczK+U47lgyCvw0HAgOBOxGlHI9mO/AoWuOW2u\nK6DpggM5vuTTlUUki8icbUuuXPypia3g/DAkYqeIbORZrUCIknSpn2xUir5i\ncHOt6eBoVFzN69aUhQWXzQM8Vu/lZ9lmXctciTLVVXCg5P85HPstGJTGL/yk\nqs2dYqIS/MBzxH2UxlFP6tdTZ9QUMQgeCBNNI+//3lqofnYT6qPpC3Cy04+n\nEUGDwUK1mhWLyo3AGO72Gw1DJEk+BAh/Xf3e+emfiji92NDaQ01nMIs/AOhx\nSSNcujworU5H0qZ3WwwAvJw5TEpy5Z8rm+jvhh/PSs2AUtA7Qwn3zx0GsAKA\nmjr3vodDowQD8TLXqnGEv3wXKYGIMgh96Y+cUXku/V7wJXA2OcMYhk0qBncX\nIxzJscNK2NDqnEltQw+p5rizgQ5DGEQ8j/eF6sYiPpXKWixXKIvRDBTh2Jfh\nVbnM\r\n=hhAT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMlKC3kjtu9Y4ENlUlqwHfYJlkbwVxIK84rOKuekAnXAIgHoWdj9gOfgk+oPMCMjtC6Ox6JWZFSdqYUAd2svvfOE4="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.2.2_1615111176513_0.6870851060115357"},"_hasShrinkwrap":false},"2.2.3":{"name":"typed-path","version":"2.2.3","description":"Type safe object string paths for typescript.","main":"dist/index.js","repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","dependencies":{},"keywords":["lodash","underscore","typescript","path","types","type","string","ramda","route"],"types":"dist/index.d.ts","scripts":{"test":"yarn tsdlint && jest index.spec.ts","lint":"tslint 'src/**/*.ts' 'src/**/*.tsx'","tsdlint":"yarn build && tsd","format":"prettier --parser typescript --write index.ts index.spec.ts","prepush":"yarn prepare","prepare":"yarn test && yarn build","build":"tsc -p tsconfig.dist.json"},"devDependencies":{"husky":"^0.13.1","jest":"^26.6.3","prettier":"2.2.0","ts-jest":"^26.4.4","ts-node":"^9.0.0","tsd":"^0.13.1","tslint":"^4.4.2","typescript":"^4.0.5"},"tsd":{"directory":"dist"},"gitHead":"71ee7f73e3b6d8de867181822a1b912f31510b5d","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"homepage":"https://github.com/bsalex/typed-path#readme","_id":"typed-path@2.2.3","_nodeVersion":"15.5.1","_npmVersion":"7.3.0","dist":{"integrity":"sha512-di06YH2UdhIrTJSyO6xv+eQ40BmMUcQ0cll8mUJ8Y0JkG+w7/T/9eMZgDEUNLzwPT5I5yVuJkKf1YaBCm06+Uw==","shasum":"9cdd08e7b40bc6a03b9dd36a541be12d3150cc10","tarball":"https://registry.npmjs.org/typed-path/-/typed-path-2.2.3.tgz","fileCount":7,"unpackedSize":17795,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2+mxCRA9TVsSAnZWagAA+7cP/iDHbksXykTxyBhpFvhl\nK5mb+RNdPHoZ/7NbB9ybATdHY746YzOMNBz1Ovb2yKbcjYN3eXRdOEuWSebv\n7Ha/tt62TNENL+ZByXZ0HGFMLDgzIanQXoxQCUicXALHZk1io692qvU3jUOd\nzjpNtPia/xbeSDTy6im08n0In9ptDkrA8lL/ipm6vpGEr57s/di8j98VgDc0\nIDRRK+YJEC//ov8EJys/B7YrY0TCXCftCDDSouEXUcWSwq55yEUerLB9wqJQ\njJP5gWLaal2tvvq2JuCLvBqLij6uJ4ZUiuDOhif2JB849XrjUZ6OXpew/teC\nqq7NX9hFbO4uZAp87CuDrt28O1gCescDFqWoVt8C+iOvTTgWaewJ4l7XGLgO\n6v9Ak4rVQjhCrZACAkQPLm0/YOwxS2oKr8Zc7An6sLKDmAailcRMUSyxcUV6\nWtlXNsZFKSofEso8kBmIpgevmADpiQUDKdsmyN+PYk1rPL9fZHYHiamNqfHq\nYdnbuCn252KQ/R2G+oIqy+mW/DX3YJK63EBSMKdNpfI7YjOU6jRGbQwaKbVP\n//vogDoEYyz0iXnIFfBPtYNK+qCJIcZ2Z1paq/hewCcRb95coRWnYOGP4ENB\nsb7ADUts82RSFDt/yj40xUo/vJZ1WliW3Nad41mdx77HkDVLH0+0EPNR7JaH\np4b7\r\n=jZhT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB7Kfs3Ckz6j/KvMYKvxhya9bi3lx+4qdfjmL7LPwVl+AiEAjv5nGnu5GSuj6N5scegCBXTVqYV2SR2Us6QkI9eOrEk="}]},"_npmUser":{"name":"bsalex","email":"bs.alex.mail@gmail.com"},"directories":{},"maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typed-path_2.2.3_1631918295561_0.6173101964029897"},"_hasShrinkwrap":false}},"readme":"# Typed Path\n\n[![https://nodei.co/npm/typed-path.svg?downloads=true&downloadRank=true&stars=true](https://nodei.co/npm/typed-path.svg?downloads=true&downloadRank=true&stars=true)](https://www.npmjs.com/package/typed-path)  \n\n[![Travis](https://img.shields.io/travis/bsalex/typed-path)](https://travis-ci.org/github/bsalex/typed-path)\n[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fbsalex%2Ftyped-path&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)\n[![Contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/bsalex/typed-path/issues)\n![GitHub top language](https://img.shields.io/github/languages/top/bsalex/typed-path)\n![David](https://img.shields.io/david/bsalex/typed-path)\n![npm bundle size](https://img.shields.io/bundlephobia/min/typed-path)\n![GitHub last commit](https://img.shields.io/github/last-commit/bsalex/typed-path)\n![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/bsalex/typed-path)\n[![GitHub issues](https://img.shields.io/github/issues/bsalex/typed-path)](https://github.com/bsalex/typed-path/issues)\n[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability-percentage/bsalex/typed-path)](https://codeclimate.com/github/bsalex/typed-path/)\n[![Code Climate technical debt](https://img.shields.io/codeclimate/tech-debt/bsalex/typed-path)](https://codeclimate.com/github/bsalex/typed-path/)\n[![codecov](https://codecov.io/gh/bsalex/typed-path/branch/master/graph/badge.svg?token=uzpVtSWKbv)](https://codecov.io/gh/bsalex/typed-path)\n---\n  \n## Overview\n\nThis small utility helps to extract type information from a TypeScript class, interface or type to use it in your code. \n\nExample:\n\n```js\nimport {typedPath} from 'typed-path';\n\ntype TestType = {\n    a: {\n        testFunc: () => {result: string};\n        b: {\n            arrayOfArrays: string[][];\n            c: {\n                d: number;\n            };\n        }[];\n    };\n};\n\nconsole.log(typedPath<TestType>().a.b[5].c.d.$rawPath);\n/*\nOutputs\n[\"a\", \"b\", 5, \"c\", \"d\"]\n\n*/\n```\nPlease see other path access methods and how to add custom path access methods below.\n\nThe utility might also be used to add type protection to such methods as `_.get, _.map, _.set, R.pluck` from libraries like [lodash](https://lodash.com), [ramda](http://ramdajs.com/).  \n\n**It is recommended, though, to use [optional chaining](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#optional-chaining) instead.**\n\n\n---\n\n## Features\n\n### Errors\n\nWith `typed-path`, typescript can check paths and warns you about errors.\n\n![](http://res.cloudinary.com/daren64mz/image/upload/v1487457505/tp-refactoring_p4byr3.gif)\n\n### Path access methods\n#### Default\n##### .$path\n[@m-abboud](https://github.com/m-abboud)  \nAlso, you can get access to the path string using `$path` special field. \n\nLike this:\n```js\n    console.log(tp<TestType>().a.b.c.d.$path); // this will output \"a.b.c.d\"\n```\n\n##### .$raw\n[@dcbrwn](https://github.com/dcbrwn)  \nIf you need a raw path, which is of type `string[]` - you can get it using `$raw` special field.  \n*Deprecated, since it transforms symbols and numbers to strings, which might be not an expected behavior (the method name is \"raw\").\nPlease use `.$rawPath`*\n```js\n    console.log(tp<TestType>().a.b.c.d.$raw); // this will output [\"a\", \"b\", \"c\", \"d\"]\n```\n\n##### .$rawPath\nIf you need a raw path, which is of type `(string | number | Symbol)[]` - you can get it using `$rawPath` special field.  \n```js\n    console.log(tp<TestType>().a.b[5].c.d.$rawPath); // this will output [\"a\", \"b\", 5, \"c\", \"d\"]\n```\n\nThe `$rawPath` is something that you might want to use with the following methods from\nRamda, to add type safety on the path:\n- [R.assocPath](https://ramdajs.com/docs/#assocPath),\n- [R.dissocPath](https://ramdajs.com/docs/#dissocPath),\n- [R.hasPath](https://ramdajs.com/docs/#hasPath),\n- [R.path](https://ramdajs.com/docs/#path),\n- [R.pathEq](https://ramdajs.com/docs/#pathEq),\n- [R.pathOr](https://ramdajs.com/docs/#pathOr),\n- [R.paths](https://ramdajs.com/docs/#paths),\n- [R.lensPath](https://ramdajs.com/docs/#lensPath)\n\nExample: [https://codesandbox.io/s/typed-path-ramda-assoc-path-x3qby?file=/src/index.ts](https://codesandbox.io/s/typed-path-ramda-assoc-path-x3qby?file=/src/index.ts)\n\n#### Additional handlers \n[@nick-lvov-dev](https://github.com/nick-lvov-dev)\n\nYou can extend path handlers functionality using additional handlers:\n\n```js\nconst testAdditionalHandlers = {\n    $url: (path: TypedPathKey[]) => path.join('/')\n}\n\nconsole.log(tp<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers).a.b.c.$url); // this will output \"a/b/c\"\n```\n\nThe additional handlers are also chainable:\n\n```js\nconst testAdditionalHandlers = {\n    $abs: (path: TypedPathKey[]) => typedPath<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers, ['', ...path]),\n    $url: (path: TypedPathKey[]) => path.join('/'),\n    $length: (path: TypedPathKey[]) => path.length\n}\n\nconsole.log(tp<TestType, typeof testAdditionalHandlers>(testAdditionalHandlers).a.b.c.$abs.$url); // this will output \"/a/b/c\"\n```\n\n--- \n\n### Suggestions\n\nAlso, `typed-path` allows typescript to suggest field names for you.\n\n![](http://res.cloudinary.com/daren64mz/image/upload/v1487458263/tp-suggestions_lg5vnb.gif)\n\n## License\n\nCopyright (c) 2021 Oleksandr Beshchuk <[bs.alex.mail@gmail.com](mailto:bs.alex.mail@gmail.com)>  \nLicensed under the [Apache License](http://www.apache.org/licenses/LICENSE-2.0).\n","maintainers":[{"name":"bsalex","email":"bs.alex.mail@gmail.com"}],"time":{"modified":"2022-06-28T00:53:34.197Z","created":"2017-02-18T23:10:03.901Z","1.0.0":"2017-02-18T23:10:03.901Z","1.0.1":"2017-02-24T23:31:00.717Z","1.0.2":"2017-03-04T23:24:14.486Z","1.0.3":"2017-06-26T14:19:23.647Z","2.0.0":"2019-10-16T18:38:27.101Z","2.0.1":"2019-10-16T20:44:14.726Z","2.0.2":"2020-07-13T21:06:54.650Z","2.1.0":"2020-11-11T16:27:42.586Z","2.1.2":"2020-11-20T22:31:01.069Z","2.2.0-beta.0":"2020-11-21T00:30:32.774Z","2.2.0":"2020-11-29T00:19:20.786Z","2.2.1":"2020-11-29T02:08:11.619Z","2.2.2":"2021-03-07T09:59:36.640Z","2.2.3":"2021-09-17T22:38:15.692Z"},"repository":{"type":"git","url":"git+https://github.com/bsalex/typed-path.git"},"author":{"name":"Oleksandr Beshchuk","email":"bs.alex.mail@gmail.com"},"license":"Apache-2.0","readmeFilename":"README.md","homepage":"https://github.com/bsalex/typed-path#readme","bugs":{"url":"https://github.com/bsalex/typed-path/issues"},"keywords":["lodash","underscore","typescript","path","types","type","string","ramda","route"]}