{"_id":"@clickbar/dot-diver","_rev":"7-cdec696354288fb75374d03e903f090d","name":"@clickbar/dot-diver","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@clickbar/dot-diver","version":"1.0.0","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.0","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"76f3a94119b75328abf9fdb636848683f4a20463","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.0.tgz","fileCount":3,"integrity":"sha512-FtOHroAYvGPYKcdIGB4iYAjihomdn0dgtEB8CpqplT55+J+zcgxE4/dDKTdRJsqC5DhLGaAoU3h0DC6z0/EqEw==","signatures":[{"sig":"MEUCIAv2Nx7MULHmwH5RBe+c4ELiKaM+HocfxHagxvlllN+xAiEAjry7iL0bnqSqTLQAiD4qFFWNvM12mPLPiDkYcJlABY0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9820,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIKg1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7Pw//VBZ69A0YePesXzdn/PWmP+5kYxBYMJYJxSzfkxYC4INdtqmp\r\n7EhfvFJY2ZLqoIlhPW7L6HqegO22GFHOM/yvyoNchp2bz2hztL9GtW6LAMZX\r\n0AoCz3UZMr+VFit8Wj/trQ7PtswkxTEfJbhITj38xIQfM9mHdMLZ+AANLRPz\r\nRbdBs+So6nW9kEwsaPv12JbrpoqWd1FWpD8zi9pCGcmfBdO8tx3mmUoQr6xS\r\n9pXYJlk9URJ0DTuCuMUZKCNU4mx/0tyBz/wnhyqa0E6q0k0GbEjTnS0pB4NE\r\nfhPbxUUjYpZpDqgqeyD8bI3C4dxEQ3u7Y+mj+0hOiHakTLVbfvPcFeb5MqkW\r\n/oBCtOSd1OK87ejQHxE0eGsKwWiXcVUkm/p142oJ5BlUrijTq+ZwCC81vVRs\r\n9Y2idFHtKyORaXy036kpAMBw/j0uEZNMnacUihpZ0zJYWQFMTale8jxNJi7F\r\nc7BM6q+ZpXMHJTqccc6EGJd8nQ7cEWELI95TkSmirBjv5/8hAhx8rjM4dOd+\r\nvbdyjIDS+APBuHalBbNCIPyRfDkc6NMlxRQ/1makoyZ/zlVb53SHspLGR7LD\r\nmjq78Rx5CwRMDaU8RCgLRE4mdxyxD/6/vTnWzKBvUDtlvmYwNYADyxA6T45n\r\nnqoYYzGYoTQNzK8cNDk2xjR9vs2KSlSXK84=\r\n=lRXA\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:clickbar-dot-diver-1.0.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"fix":"eslint ./ --ext=js,ts --fix","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/private/var/folders/r0/y7yr_jks3r9fdc2cz32nf52m0000gn/T/308819df05535a152abd77d95879a563/clickbar-dot-diver-1.0.0.tgz","_integrity":"sha512-FtOHroAYvGPYKcdIGB4iYAjihomdn0dgtEB8CpqplT55+J+zcgxE4/dDKTdRJsqC5DhLGaAoU3h0DC6z0/EqEw==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"9.5.1","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"19.8.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.2.1","eslint":"^8.36.0","vitest":"^0.29.7","prettier":"^2.8.7","typescript":"^5.0.2","vite-plugin-dts":"^2.1.0","@clickbar/eslint-config-typescript":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.0_1679861813207_0.012769873804443943","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@clickbar/dot-diver","version":"1.0.1","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.1","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"f408940f32398c4abce397ef396095187de1b040","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.1.tgz","fileCount":8,"integrity":"sha512-Jepnq6e/2DApECLgXzflMyo069oW3j36wdceCCydcsxWl+0nHcBgZ47lucb8JG3L2QJwa1EXj4kOer+ScXKtUg==","signatures":[{"sig":"MEUCIBDRCaz1MiVKfEapa6ORHEurv7+M3QSuMSUzkeEoVkViAiEAvu/+C1ssN9AwIXgJ41Ac5E8VBNEcZUYWjigChe8dwP0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkIKs+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomWQ//WDmRGJQhgvw1W/qGZbkAdUfZuikJ699gTcInWERXUjqYY5aN\r\n8EDGrI+dBeIMlwcx38Q4DIGjeBnb7f87qofRKg+ZJZXj/wBytjqJmz+alazH\r\nQY5o32V78AmZ7PcZcHzwrrRd/ZSRtb9xrqs+fSn53cyNNaK4+200UBkWWTjc\r\nk5cTNslX6ANYniOtRpw/jF9ePGC54rh6iAxntSE6ROXgzRkSLeay1HyZSvQa\r\nTkm0jkQzIi4Wm5ADwGCtQsm5hBV1Pq3UNsEneAf1V4njV1iS51HUMXAfzqv0\r\nV7f5LRSLY8hTMUc8ysfO2sQrlkz3L0orJ4auO7VdAMP70bD2zeprKdktEmiA\r\n2fbV3qZh5QEf2aoPEBVuLlYjRcVkWB1imCdUx5AiMW+Kc9E3FUx2s6fDS69a\r\nYg5iYbqZ61lWFIrKx44Wux6s+72DgQKNRg7IY6s52CYvhww4iPu3c7Ev0HlL\r\nxhhMr8VXvkQCqkN1xTboqn8WNkwltKIHMnPuEI8LGbilfhhknxLYpHEAcgEz\r\ng+pHljtuHJYpgOD89AOtLqG/iRpFIPBP8uu5bg0aXhdKIiOxb8rM+VfXErJv\r\n8mPOAzp97zWjxVP12oO6zodBPGZ+6bqzVUzWKMZ/o/BDpj7GdJkmiWICfsK6\r\nI4HHRFVqtIDHZu0uDv3cH8ZMRxfGOlG3PEY=\r\n=prNF\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:clickbar-dot-diver-1.0.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"fix":"eslint ./ --ext=js,ts --fix","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/private/var/folders/r0/y7yr_jks3r9fdc2cz32nf52m0000gn/T/c2734cdd0be749e27d7056be116b8236/clickbar-dot-diver-1.0.1.tgz","_integrity":"sha512-Jepnq6e/2DApECLgXzflMyo069oW3j36wdceCCydcsxWl+0nHcBgZ47lucb8JG3L2QJwa1EXj4kOer+ScXKtUg==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"9.5.1","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"19.8.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.2.1","eslint":"^8.36.0","vitest":"^0.29.7","prettier":"^2.8.7","typescript":"^5.0.2","vite-plugin-dts":"^2.1.0","@clickbar/eslint-config-typescript":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.1_1679862590697_0.3153468486578541","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@clickbar/dot-diver","version":"1.0.3","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.3","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"029d8dd949aed0837d02c6db680339c5e4fa51a4","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.3.tgz","fileCount":11,"integrity":"sha512-y1OLqkUC/9FHCWuHUb3rtXhosdKOzTuhN0qpZll+OAea4KLPcYKZn/e+xIdNR4zT+YsLv5t8mUS/iw6Is26XCg==","signatures":[{"sig":"MEUCIG92fuVqJHDo9KGyU3MernQwUlnNgQhET/JMBMACqN5fAiEAoyn5edcrKLWuawQTsgeeDNPSkpUTwRsUNFsOfAEtSx8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40490},"type":"module","_from":"file:clickbar-dot-diver-1.0.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"fix":"pnpm lint --fix && pnpm format","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build","format":"pnpm prettier --write","prettier":"prettier . --cache"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/tmp/de3f5262f94c7db215d8df423a29739e/clickbar-dot-diver-1.0.3.tgz","_integrity":"sha512-y1OLqkUC/9FHCWuHUb3rtXhosdKOzTuhN0qpZll+OAea4KLPcYKZn/e+xIdNR4zT+YsLv5t8mUS/iw6Is26XCg==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"10.1.0","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.8.0","devDependencies":{"vite":"^4.4.11","eslint":"^8.51.0","vitest":"^0.34.6","prettier":"^3.0.3","typescript":"^5.2.2","vite-plugin-dts":"^3.6.0","@clickbar/eslint-config-typescript":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.3_1698967637034_0.40543834200016216","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@clickbar/dot-diver","version":"1.0.4","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.4","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"590b01b370ef32258bf88fe7c914a10c6a5834f7","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.4.tgz","fileCount":8,"integrity":"sha512-93D4DWoFdsWobcxGgOgisRbvIsGf0slmuT/mwXu4REisDe4aIyIgSsjuDqPATEbNph+ugTpJmAAlDChDagLHgg==","signatures":[{"sig":"MEUCIQCgVrO2aY9HjJqMOG3EHMQr+Eui94+L7H7BsoCkrd3MEAIgWBPYB6o4JLt3HinvMBjzORFeAtNlIQnCoJk6va0qwAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40705},"type":"module","_from":"file:clickbar-dot-diver-1.0.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"scripts":{"fix":"pnpm lint --fix && pnpm format","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build","format":"pnpm prettier --write","prettier":"prettier . --cache"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/tmp/889b80d880c5e59eb8da378bf9ffc172/clickbar-dot-diver-1.0.4.tgz","_integrity":"sha512-93D4DWoFdsWobcxGgOgisRbvIsGf0slmuT/mwXu4REisDe4aIyIgSsjuDqPATEbNph+ugTpJmAAlDChDagLHgg==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"10.1.0","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"packageManager":"pnpm@8.8.0","devDependencies":{"vite":"^4.4.11","eslint":"^8.51.0","vitest":"^0.34.6","prettier":"^3.0.3","typescript":"^5.2.2","vite-plugin-dts":"^3.6.0","@clickbar/eslint-config-typescript":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.4_1699352309009_0.04834000574674535","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@clickbar/dot-diver","version":"1.0.5","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.5","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"2821c5092a118f4c761acb4cbb6fa3c56af64f36","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.5.tgz","fileCount":8,"integrity":"sha512-3vZhf4mWl51N0Cj2dD+ieXttPKqfOISDJcKsf1NX9J9ZK7+oM/mLuWxt9IObmxuVcInUE1CdusXRxnnt9jI62g==","signatures":[{"sig":"MEYCIQCgJLUY063qoL+3VK3WtIzVw0H/TZtvj0jQ6+Se7L1jCgIhAIxLWlchL9hgz3L60yQSPuI1FY8tdwfxqN+9O4sJ4ncU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40840},"type":"module","_from":"file:clickbar-dot-diver-1.0.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"scripts":{"fix":"pnpm lint --fix && pnpm format","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build","format":"pnpm prettier --write","prettier":"prettier . --cache"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/tmp/568f1de0536a392fa35c6f6ae7ef98bb/clickbar-dot-diver-1.0.5.tgz","_integrity":"sha512-3vZhf4mWl51N0Cj2dD+ieXttPKqfOISDJcKsf1NX9J9ZK7+oM/mLuWxt9IObmxuVcInUE1CdusXRxnnt9jI62g==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"10.2.4","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@8.8.0","devDependencies":{"vite":"^4.4.11","eslint":"^8.51.0","vitest":"^0.34.6","prettier":"^3.0.3","typescript":"^5.2.2","vite-plugin-dts":"^3.6.0","@clickbar/eslint-config-typescript":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.5_1710980871466_0.5729480659482193","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"@clickbar/dot-diver","version":"1.0.6","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@1.0.6","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"18021d4af1cd1fe88dc625a45b546c17b8e36aab","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.6.tgz","fileCount":8,"integrity":"sha512-bqsWKKiC9T1fbpKTGGtsbxln8sHXUA1WEZ9hkxhj525uUQeWkcEvDVJbYeCaxxT07AF7K+cogxLESkWCf4kvpA==","signatures":[{"sig":"MEUCIDfbDn+9Y0jrx/QIAGM9dsX83l0L/mEqOD0f8HpERykUAiEAxqNjGl+c+aZnPGPwNcSnAfc3RFNZ5s3vg5dbFD97BpU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":40684},"type":"module","_from":"file:clickbar-dot-diver-1.0.6.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"scripts":{"fix":"pnpm lint --fix && pnpm format","lint":"eslint ./ --ext=js,ts","test":"vitest run && vitest typecheck --run","build":"vite build","format":"pnpm prettier --write","prettier":"prettier . --cache"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/tmp/a1ccbf53a625bd47547b1d77c7c85385/clickbar-dot-diver-1.0.6.tgz","_integrity":"sha512-bqsWKKiC9T1fbpKTGGtsbxln8sHXUA1WEZ9hkxhj525uUQeWkcEvDVJbYeCaxxT07AF7K+cogxLESkWCf4kvpA==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"10.2.4","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"packageManager":"pnpm@8.8.0","devDependencies":{"vite":"^4.4.11","eslint":"^8.51.0","vitest":"^0.34.6","prettier":"^3.0.3","typescript":"^5.2.2","vite-plugin-dts":"^3.6.0","@clickbar/eslint-config-typescript":"^9.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_1.0.6_1711363772748_0.42493346392093323","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@clickbar/dot-diver","version":"2.0.0","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"license":"MIT","_id":"@clickbar/dot-diver@2.0.0","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"homepage":"https://github.com/clickbar/dot-diver#readme","bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"dist":{"shasum":"dcfa68469bc0241f6a2432224d6d54acf3134dd5","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-2.0.0.tgz","fileCount":8,"integrity":"sha512-igeB1dXdUPFEC/WcA/QoHIfnLo/cUqachhdMIYZFSuYEGHxgDz+pDrRNmf0txR7hnoMkhKogqoHRTeK+GFjDAw==","signatures":[{"sig":"MEUCICr36Im9N0dANYO8JTbxS/joV53eDxfBOZXZgaapvmIRAiEAg3kFfnwpNHr+7zGlBCCeqNgTN2D3kCQMoVUuw+BUoAo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":71178},"type":"module","_from":"file:clickbar-dot-diver-2.0.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"scripts":{"fix":"pnpm lint --fix && pnpm prettier --write","lint":"eslint ./","perf":"tsc --noEmit --extendedDiagnostics --p ./performance/tsconfig.json","test":"vitest run --typecheck","build":"vite build","prettier":"prettier . --cache"},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"_resolved":"/tmp/99f82a85acab15f438b1a8678f981e81/clickbar-dot-diver-2.0.0.tgz","_integrity":"sha512-igeB1dXdUPFEC/WcA/QoHIfnLo/cUqachhdMIYZFSuYEGHxgDz+pDrRNmf0txR7hnoMkhKogqoHRTeK+GFjDAw==","repository":{"url":"git+https://github.com/clickbar/dot-diver.git","type":"git"},"_npmVersion":"10.8.1","description":"Types and utilities to access object properties by dot notation.","directories":{},"sideEffects":false,"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^5.4.1","eslint":"^9.9.0","vitest":"^2.0.5","prettier":"^3.3.3","typescript":"^5.5.4","@types/node":"^22.4.0","@vue/reactivity":"^3.4.38","vite-plugin-dts":"^4.0.3","@clickbar/eslint-config-typescript":"^11.0.4"},"_npmOperationalInternal":{"tmp":"tmp/dot-diver_2.0.0_1723958672189_0.031757129740430656","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"@clickbar/dot-diver","version":"1.0.7","description":"Types and utilities to access object properties by dot notation.","packageManager":"pnpm@8.8.0","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"type":"module","sideEffects":false,"keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"author":{"name":"clickbar."},"repository":{"type":"git","url":"git+https://github.com/clickbar/dot-diver.git"},"bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"license":"MIT","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"devDependencies":{"@clickbar/eslint-config-typescript":"^10.2.0","@types/node":"^20.12.12","@vue/reactivity":"^3.4.38","eslint":"^8.57.0","prettier":"^3.2.5","typescript":"^5.4.5","vite":"^5.2.11","vite-plugin-dts":"^3.9.1","vitest":"^1.6.0"},"scripts":{"build":"vite build","test":"vitest run --typecheck","lint":"eslint ./ --ext=js,ts","prettier":"prettier . --cache","fix":"pnpm lint --fix && pnpm prettier --write"},"_id":"@clickbar/dot-diver@1.0.7","homepage":"https://github.com/clickbar/dot-diver#readme","_integrity":"sha512-JChq+Yhj5SboT28ZTs+Zu+kcwSdp+Jx385YC2JGjnz1HTSMajEY2ZWsKlY2mtXKagSP6GRv2hCtl5HpehawTZg==","_resolved":"/tmp/b3a93d6fa156fe6db3fd3e895ac12318/clickbar-dot-diver-1.0.7.tgz","_from":"file:clickbar-dot-diver-1.0.7.tgz","_nodeVersion":"20.16.0","_npmVersion":"10.8.1","dist":{"integrity":"sha512-JChq+Yhj5SboT28ZTs+Zu+kcwSdp+Jx385YC2JGjnz1HTSMajEY2ZWsKlY2mtXKagSP6GRv2hCtl5HpehawTZg==","shasum":"da61b244f0bd6ada30a7b36381752dca40ac8ee1","tarball":"https://registry.npmjs.org/@clickbar/dot-diver/-/dot-diver-1.0.7.tgz","fileCount":8,"unpackedSize":41693,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clickbar%2fdot-diver@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSpf/nJfW5chshUS16DjK+y1dGSXbIRki1qsK8cbvf6wIhAOs/r9GDWsepZYKjAOcErB75KnfC6PgfkU06saGhLARQ"}]},"_npmUser":{"name":"saibotk","email":"npm@saibotk.de"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dot-diver_1.0.7_1724356428493_0.24729255965430763"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-26T20:16:53.146Z","modified":"2024-08-22T19:53:49.156Z","1.0.0":"2023-03-26T20:16:53.358Z","1.0.1":"2023-03-26T20:29:50.862Z","1.0.3":"2023-11-02T23:27:17.199Z","1.0.4":"2023-11-07T10:18:29.169Z","1.0.5":"2024-03-21T00:27:51.753Z","1.0.6":"2024-03-25T10:49:32.906Z","2.0.0":"2024-08-18T05:24:32.355Z","1.0.7":"2024-08-22T19:53:48.646Z"},"bugs":{"url":"https://github.com/clickbar/dot-diver/issues"},"author":{"name":"clickbar."},"license":"MIT","homepage":"https://github.com/clickbar/dot-diver#readme","keywords":["ts","types","typescript","util","utility","utilities","dot","path","dot-path"],"repository":{"type":"git","url":"git+https://github.com/clickbar/dot-diver.git"},"description":"Types and utilities to access object properties by dot notation.","maintainers":[{"name":"saibotk","email":"npm@saibotk.de"},{"name":"studnitz","email":"alexander.von.studnitz+npm@gmail.com"}],"readme":"# Dot Diver 🌊🔍\n\nA lightweight, powerful, and dependency-free TypeScript utility library that provides types and functions to work with object paths in dot notation. Dive into your objects with ease, while maintaining comprehensive type safety! 🎉\n\nDot notation is a popular and convenient way to access deeply nested properties in objects. With Dot Diver, you can safely work with object paths in TypeScript projects, ensuring type correctness and productivity!\n\nExample:\n\n```typescript\nimport { getByPath } from '@clickbar/dot-diver'\n\nconst object = {\n  a: 'Hello world',\n}\n\nconst result = getByPath(object, 'a') // result is 'Hello world'\n```\n\n<br>\n\n## 🌟 Features\n\n- 🎯 Works with arrays, tuples, and objects\n- 🛡️ Works with readonly properties\n- ✅ Tests included\n- 🌀 Works with cyclic dependencies in types\n- 🚫 No dependencies\n- 🪶 Tiny footprint\n\n<br>\n<br>\n\n## 📦 Installation\n\nInstall the package using your favorite package manager:\n\nnpm\n\n```sh\nnpm install -D @clickbar/dot-diver\n```\n\nyarn\n\n```sh\nyarn add -D @clickbar/dot-diver\n```\n\npnpm\n\n```sh\npnpm install -D @clickbar/dot-diver\n```\n\n<br>\n<br>\n\n## 🚀 Usage\n\n### 🔎 `getByPath` and 🔏 `setByPath`\n\n<br>\n\n```ts\nimport { getByPath, setByPath } from '@clickbar/dot-diver'\n\n// Define a sample object with nested properties\nconst object = {\n  a: 'hello',\n  b: {\n    c: 42,\n    d: {\n      e: 'world',\n    },\n  },\n  f: [{ g: 'array-item-1' }, { g: 'array-item-2' }],\n}\n\n// Example 1: Get a value by path\nconst value1 = getByPath(object, 'a') // Output: 'hello'\nconsole.log(value1)\n\nconst value2 = getByPath(object, 'b.c') // Output: 42\nconsole.log(value2)\n\nconst value3 = getByPath(object, 'b.d.e') // Output: 'world'\nconsole.log(value3)\n\nconst value4 = getByPath(object, 'f.0') // Output: { g: 'array-item-1' }\nconsole.log(value4)\n\nconst value5 = getByPath(object, 'f.1.g') // Output: 'array-item-2'\nconsole.log(value5)\n\n// Example 2: Set a value by path\nsetByPath(object, 'a', 'new hello')\nconsole.log(object.a) // Output: 'new hello'\n\nsetByPath(object, 'b.c', 100)\nconsole.log(object.b.c) // Output: 100\n\nsetByPath(object, 'b.d.e', 'new world')\nconsole.log(object.b.d.e) // Output: 'new world'\n\nsetByPath(object, 'f.0', { g: 'new array-item-1' })\nconsole.log(object.f[0]) // Output: { g: 'new array-item-1' }\n\nsetByPath(object, 'f.1.g', 'new array-item-2')\nconsole.log(object.f[1].g) // Output: 'new array-item-2'\n```\n\n<br>\n<br>\n\n### 🛣️ Path and 🔖 PathValue\n\n<br>\n\n```typescript\nimport type { Path, PathValue } from '@clickbar/dot-diver'\n\n// Define a sample object type with nested properties\ntype MyObjectType = {\n  a: string\n  b: {\n    c: number\n    d: {\n      e: boolean\n    }\n  }\n  f: [{ g: string }, { g: string }]\n}\n\n// Example 1: Using the Path type\ntype MyObjectPaths = Path<MyObjectType>\n\n// MyObjectPaths will be a union type representing all valid paths in dot notation:\n// 'a' | 'b' | 'f' | 'b.c' | 'b.d' | 'b.d.e' | 'f.0' | 'f.1' | 'f.0.g' | 'f.1.g'\n\n// Example 2: Using the PathValue type\ntype ValueAtPathA = PathValue<MyObjectType, 'a'> // Output: string\ntype ValueAtPathB_C = PathValue<MyObjectType, 'b.c'> // Output: number\ntype ValueAtPathB_D_E = PathValue<MyObjectType, 'b.d.e'> // Output: boolean\ntype ValueAtPathF_0 = PathValue<MyObjectType, 'f.0'> // Output: { g: string }\ntype ValueAtPathF_0_G = PathValue<MyObjectType, 'f.0.g'> // Output: string\n```\n\n<br>\n<br>\n\n### 🔄 Objects with cyclic dependency\n\n<br>\n\n```typescript\nimport type { Path, PathValue } from '@clickbar/dot-diver'\n\n// Define an object type with nested properties and a cyclic dependency\ntype Node = {\n  id: number\n  label: string\n  parent: Node\n  children: Node[]\n}\n\n// Example 1: Using the Path type with a Depth limit\ntype NodePathsDepth2 = Path<Node, 2> // Depth limit of 2\n\n// NodePathsDepth2 will be a union type representing all valid paths in dot notation up to a depth of 3:\n// 'id' | 'label' | 'parent' | 'children' | 'parent.id' | 'parent.label' | 'parent.parent' | 'parent.children' | `parent.parent.${any}` | `parent.children.${any}` | `children.${number}` | `children.${number}.${any}`\n\n// Example 2: Using the PathValue type with a Depth limit\ntype ValueAtPathParent_Id = PathValue<Node, 'parent.id', 3> // Output: number\ntype ValueAtPathChildren_0_Label = PathValue<Node, 'children.0.label', 3> // Output: string | undefined\ntype ValueAtPathParent_Parent_Parent = PathValue<Node, 'parent.parent.parent.parent', 3> // Output: unknown (due to the depth limit)\n```\n\nThe default depth is currently **10**.\\\nAt the moment, it is not possible to customize it when using the provided `getByPath` and `setByPath` functions.\nThis is further explained in this [issue](https://github.com/clickbar/dot-diver/issues/1).\n\n<br>\n<br>\n\n### ⚙️ Customizing the Depth Limit\n\nYou can still customize it, by implementing your own functions, which just calls ours.\nExample:\n\n<br>\n\n```typescript\nimport { getByPath, setByPath } from '@clickbar/dot-diver'\n\nimport type { Path, SearchableObject, PathValue } from '@clickbar/dot-diver'\n\nfunction getByPathDepth5<T extends SearchableObject, P extends Path<T, 5> & string>(\n  object: T,\n  path: P,\n): PathValue<T, P, 5> {\n  return getByPath(object, path) as PathValue<T, P, 5>\n}\n\nfunction setByPathDepth5<\n  T extends SearchableObject,\n  P extends Path<T, 5> & string,\n  V extends PathValue<T, P, 5>,\n>(object: T, path: P, value: V): void {\n  setByPath(object, path, value as PathValue<T, P>)\n}\n\nexport { getByPathDepth5 as getByPath, setByPathDepth5 as setByPath }\n```\n\nThe intersection between `Path<T, 5>` and `string` is necessary for TypeScript to successfully narrow down the type of `P` based on the user-provided `path` input.\nWithout the intersection, the `path` would just be of type `Path<T, 5>` and `PathValueEntry` would be a union of all possible return types.\nBy using the intersection, TypeScript is forced to apply the `Path` constraints and infer the type from the provided user input.\n\n<br>\n<br>\n\n## ❓ FAQ\n\n### ❗ Why are my paths truncated in a object with index signature?\n\nSee this [issue](https://github.com/clickbar/dot-diver/issues/2).\n\n<br>\n\n### ❗ Why are my paths truncated inside an array?\n\nYour paths are not truncated. Typescript will still validate them.\nSome IDEs have problems with displaying `children.${number}` paths.\nIf you can, define the array as an tuple. This will include all paths in the auto completion.\n\n<br>\n\n### ❗ I get the error \"Type instantiation is excessively deep and possibly infinite.ts(2589)\"\n\nThis happens if typescript reaches its maximum depth limit. This library should prevent this, but it can still happen if a object has a lot of cyclic dependencies.\\\nFor example:\n\n```typescript\ntype TestType = {\n  a: TestType\n  b: [TestType]\n  c: TestType[]\n  d: {\n    e: TestType\n  }\n  f: TestType2\n}\n```\n\nYou can try to decrease the depth limit of the auto completion by reimplementing the `getByPath` and `setByPath` functions.\nSee [this section](#%EF%B8%8F-customizing-the-depth-limit) for customizing the depth limit.\n\n<br>\n\n## 👨‍💻 Contributing\n\nIf you would like to contribute to Dot Diver, feel free to fork the repository, make changes, and submit a pull request. We appreciate any help and feedback.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more information.\n\n<br>\n\n## 🔒 Security Vulnerabilities\n\nPlease see [SECURITY](SECURITY.md) for details.\n\n<br>\n\n## 📄 License\n\nDot Diver is licensed under the [MIT License](LICENSE.md).\n\n<br>\n\n🎉 Happy diving! 🌊\n","readmeFilename":"README.md"}