{"_id":"@jondotsoy/utils-js","_rev":"45-918e6661bd7f85e057183822550326e4","name":"@jondotsoy/utils-js","dist-tags":{"latest":"1.8.1"},"versions":{"0.0.1":{"name":"@jondotsoy/utils-js","version":"0.0.1","_id":"@jondotsoy/utils-js@0.0.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"dist":{"shasum":"eb15c12965cf1d930091298ed0951b07953250fb","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.0.1.tgz","fileCount":15,"integrity":"sha512-f1hdMD21R+udoXEXmhuHJfSOGyJTrFKMMFHN95SgbZz95v6fMg+2LvLP+aLpLUjLrkAtHC7CXmaHnXB+0ufhkA==","signatures":[{"sig":"MEUCIQDbFZV7baefJ2KBddX5AL0cWy0LRpTSa+QDSH7o9na3QwIgZnNJ469sizjWyMsXBdl1si5Acp1d33D3+mohTfYU8Sg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7949},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"_npmVersion":"9.2.0","description":"","directories":{},"_nodeVersion":"19.4.0","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.0.1_1725571862588_0.5153038246533399","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@jondotsoy/utils-js","version":"0.0.2","_id":"@jondotsoy/utils-js@0.0.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"dist":{"shasum":"60bc39ba64725d3f146b7d2696e2659e190f274e","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.0.2.tgz","fileCount":15,"integrity":"sha512-/JjXkIek26KZ+3q/IQQ4BIVexIKrZU+ocFDDeKFVLnIc9raPm6enbVzESx1gaKCdzgKV8as8lC0IoTSQcMIpxg==","signatures":[{"sig":"MEUCIFOegtBv1m2z1BoiQCRP3OSfyps/JwKTtEug/ryxheu6AiEA5B1Ed2BhQVAqCQzC4NNtEmqvTdu+VAeXR9fo2dJOVUY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13288},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"_npmVersion":"9.2.0","description":"Some utilities to js","directories":{},"_nodeVersion":"19.4.0","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.0.2_1725657034941_0.9785499658783683","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"@jondotsoy/utils-js","version":"0.0.3","_id":"@jondotsoy/utils-js@0.0.3","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"dist":{"shasum":"ff260da1b2412b4ca5c7906e408e493202064d94","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.0.3.tgz","fileCount":15,"integrity":"sha512-d09EjweclvyLqggOEw1rwiUoPoNX/8C9joWA4sMHY1+BFvFyvNciVnki80C/5bb0/aRSBIZcrO8G4bBfhlGVFg==","signatures":[{"sig":"MEUCIHpjEjWk3/+ydD2v/IOEMG71yXccAwQ8pDpoxZkZwIEpAiEA5QSqQ9h2CYztSQnEjlixCElKj+qGOQhU0/bPlXcHVvw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13292},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"1c99bea924e1e1d769c62f4cfe667f62fbc29453","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"_npmVersion":"9.2.0","description":"Some utilities to js","directories":{},"_nodeVersion":"19.4.0","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.0.3_1725657243319_0.9305305878884258","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@jondotsoy/utils-js","version":"0.0.4","_id":"@jondotsoy/utils-js@0.0.4","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"917230e5a5e30010484776c1c0d6089d676c6d11","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.0.4.tgz","fileCount":15,"integrity":"sha512-eSoxyW0Q7h/6N0DTzA9uvYOWrUH3t/4qV9bIQjEpulhh55hSiuJWp8RNZcg01XErthfo6UiwGGbVM6qGIjN0aA==","signatures":[{"sig":"MEUCIQC2xYxICyZZSgExEIpBkWO7tyP+Vpk9QHn72f6ivlGc3gIgHv1J7eV5RvsZa/30r3nIiQtgeCdl8cJugd+0BkZjNCs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13393},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"a3077d640072eacc6b0a4021969b2873aea882b1","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"9.2.0","description":"Some utilities to js","directories":{},"_nodeVersion":"19.4.0","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.0.4_1725657343944_0.2147415190319759","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@jondotsoy/utils-js","version":"0.1.0","_id":"@jondotsoy/utils-js@0.1.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"1c901714c6919485d0c69b012f1ec972de14484b","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.1.0.tgz","fileCount":15,"integrity":"sha512-PqPQRPiS0D7Umn1XPvc7ErGFINMgB5OryyM0Mvsmorb7VbagLUWmkau4IKoVlnwJIDkguZExMAux4XP1y5vmbg==","signatures":[{"sig":"MEUCIQCf5UTGwyBMl3bqcg6uFcC6F6hjAzGNzE7TezfXn3xYIgIgT8Pa+ov5ybsbSWCANTyYq9H3euH62WvnBmXyM4akyrY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15522},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"1c4eecb28e4ea091f1ab317c343add2325e0de87","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.1.0_1726169078306_0.35275169872031364","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@jondotsoy/utils-js","version":"0.2.0","_id":"@jondotsoy/utils-js@0.2.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"6899d95214aedfe64684649fcad9e91048681afd","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.2.0.tgz","fileCount":19,"integrity":"sha512-szCdgtauePuj/YEly7hwCRKFlGNry1YULwW7LnhnPKLgUIp42aB1T25se+s1Z63lrho2GhFm1h7hb70UpzI0pA==","signatures":[{"sig":"MEUCIQCQpnk6eTrPGExbMVSlBhONvSYUVQmVCEGygcFl6feioAIgOrFma9im8l/0mwcTefRVY23H3dNzuGCsc9xObqisf60=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20664},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"f03f9c9e2e4332e1c0dc8fe72f044ea83e6735d9","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.2.0_1726170496702_0.4143786059632433","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@jondotsoy/utils-js","version":"0.2.1","_id":"@jondotsoy/utils-js@0.2.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"bb4ea5d4e825815dc01182e845c1d69ecd0215bb","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.2.1.tgz","fileCount":19,"integrity":"sha512-hGfYM7bcPili+e98+z05vOARsD3bWIEy2qrHiGLYrZ8Trv5/5fGNKoxwYSM3FVZiLgZV8o1ZUkhxNmu6wC94Pg==","signatures":[{"sig":"MEQCIDs6tmTkraeFSPqrgDpqYIhC0+zbPD5a8GMjB6dFyDC7AiBvmm4plC2tOx9uj2wkXq/tHxBPh+4aYLU6lxBbWSiAFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20125},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"6e7c8aee5d1de4c875bfb51278d828b11686fb96","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.2.1_1726261614548_0.9853744046706008","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@jondotsoy/utils-js","version":"0.3.0","_id":"@jondotsoy/utils-js@0.3.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"b5ba6bf7493a1f6bcdffd10d8838cde9c8955344","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.3.0.tgz","fileCount":23,"integrity":"sha512-x2lBDfFgFadimHjhhQlIehTrg1Q1VXESPkBHOr8Su1dfFnt24dLnxkGWB2efVEJu4A8jT6L2fHtnnAwSHO1L5Q==","signatures":[{"sig":"MEQCIDloeyxHMd7Qbi25UmvVs4bZOUxEUj/nIBZGbMEWeN6oAiBm90fiO/JLphCHuf5+8wmY8528bLRtpyheUIIzyRsKnA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25223},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"64abf07db11f3b5483ffad93e697124530568a75","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.3.0_1727110255480_0.9597459164639961","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@jondotsoy/utils-js","version":"0.3.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.3.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"8f5be7c759765df4d467afd03f897277d726e538","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.3.1.tgz","fileCount":23,"integrity":"sha512-gHCNhDY3j0MidjHVASLLKqEfnLAXmSUb0i6Nkm3O6jqK56bRGHNreNEXUP4zwyc600FKOfn7qac6KI2JijPvZg==","signatures":[{"sig":"MEYCIQCKRPHldVHAUG752fHvVHJ91CWweb0nNwZhzp+bdOayfgIhAMTJ+bT6RMyD91Of5ceWJ/knglxjTAxNfh0uQnbxnpdq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25418},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"}},"gitHead":"729c10c770c710df37d4afb93c8e9ebdd95de8e8","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.3.1_1727110645915_0.9820303618506823","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@jondotsoy/utils-js","version":"0.4.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.4.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"9e5e2e8d3b60a2645b50e6ab345518b730bac93d","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.4.0.tgz","fileCount":31,"integrity":"sha512-OGgE0JmgZdphg2TZwJl6lPxnD535nML0RzR3EOuPzXsRgAKTMGQRlquK3g2pIjUTXRsPmkEdH8gi6hAHRyGobA==","signatures":[{"sig":"MEQCICPKmIx3og0/+S4AIw2ZF8cFGEG7vOk/x+S69Lv9I04pAiBW+qWXuqN1uV++X+RSpbJMG31JJ27daOVIs2RX8WgYFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30704},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"2e14c7195410e1e66ea2c9e83c44ccffc6044a38","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.4.0_1727117567090_0.01828066318751853","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"@jondotsoy/utils-js","version":"0.4.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.4.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"a4de77feeadb33749a98aec32306e4b8a54f1f24","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.4.1.tgz","fileCount":31,"integrity":"sha512-TFJ+bvwi01KPg/IcCD47bZLlfTCyFenCEONjT7L7MsnocUmGhluvt9JeL/tiNlsnTE6WnCUD3oBQ0enI+PrPwQ==","signatures":[{"sig":"MEYCIQDYYoAKYa4UJq/ttQ7pYXzgofappgq08pOZjLYJH/9+xgIhAM09cl7i/T/IR6Kt89yU5LQimMCqQwitF0gvcKryGcVM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31140},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"97d6c348e22bed9aec88338272ff8a466d28dd65","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.4.1_1727117837255_0.889337722817064","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"@jondotsoy/utils-js","version":"0.4.2","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.4.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"7b5e6ce76fbd3b817eecf1a6e1ce77e6669bbe2e","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.4.2.tgz","fileCount":31,"integrity":"sha512-ST9j62cBHuwYSYP0kVE69biWHPQlC9c6MGjXKxcGmTfCylTgen6ABKPSX0mnImjDIQrZmyPGk1AD0Sd8taf3JQ==","signatures":[{"sig":"MEUCICWyAXpYxTDWAi5EhoJ67DbGMbNvIvUidDj2mx1x53VZAiEAtDPOmHqt52b8/7tzITJR4gzqHiKtrQy0gJPsb2+qogg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":33323},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"48f1e2617c48fa51f3b99d0916b3ca3cbb0b4cac","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.4.2_1727185268491_0.4126914718830432","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@jondotsoy/utils-js","version":"0.5.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.5.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"f597848bdd9622ea1a530c7c14040856422d850a","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.5.0.tgz","fileCount":31,"integrity":"sha512-+3dAjd6lzdajxs4IWENoyGlS/2E8BLAT+ssfX21aewWzYRtBJTmVd3dG0mCkcRk5aTNt7blSmtLBs22MV2oXEA==","signatures":[{"sig":"MEUCIDoPfWD0LiCr6Ihs1yeotNJH9WKFkRcvwdOhqK0SvQlcAiEA3ILC6E3+3tPaCnfhj6mKF1h/sHMpAptJfXm+vQNDgQo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":36658},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"be85da5698773b66f3fa83e9c470001b931dd391","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.5.0_1727202944754_0.8556883166112996","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@jondotsoy/utils-js","version":"0.5.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.5.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"aa7d504927b8a378f0dad38c0cac600ce9976858","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.5.1.tgz","fileCount":31,"integrity":"sha512-fq+ujCSbeDWxRL5tggU7/EfnLOWDTC2m8SRHORShW3sEgzhViDPmMpn3Hgiu8O4hXCZVO2AkTftE9Yna5Ak+GA==","signatures":[{"sig":"MEUCIH+5mTSaYTTKQhiP6Aa/2IQZtOLPsjNtRGIGdF2N+wEeAiEAhRmGHm9bxPuwSFPo36QMhP7XTLBz7RCe14VU+bixd+I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37749},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"7ee768b254fab49497051138700446a2cc99a3e4","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.5.1_1727445379462_0.07019412862001606","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"@jondotsoy/utils-js","version":"0.5.2","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.5.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"5f6305882a4ebb5c0baf4fd2fd9106164bb0e83d","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.5.2.tgz","fileCount":31,"integrity":"sha512-ceZIV0vCM4UKe5R0wtiG4BQoAlCwhXckJLTh08lY1UeoTSbc6FvRGP6R47gIF0JyuWfOnfjMhu5Wo1bnkkuBxw==","signatures":[{"sig":"MEUCIQC6BJ8EounCAlfvqNACvJa2kJYHtPYpqy4r4eZfY8nvjgIgFNnBK4LuXMUu4ncMKpJDwWxFiPw7gY/xywWN1BPV31c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37752},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"dbc6f6f8e10fac830a943d931f26d2a371622d22","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.7.0","description":"Some utilities to js","directories":{},"_nodeVersion":"18.20.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.5.2_1727820392037_0.4366086257044657","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@jondotsoy/utils-js","version":"0.6.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.6.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"a32ae6df7235acac1405e77be40a68007413a727","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.6.0.tgz","fileCount":35,"integrity":"sha512-OfU8zaSWexk/f3cyuoJbvi0/3YBtOwTadXRAy2bPbCGEBTrxzf1B+w0bvvJiPpOScBCTCMZbI76Kl6SxdwPHjw==","signatures":[{"sig":"MEQCIFkNfpleabSkKPtDwIXVhNFssKwFWHnN/3Y161Y19+TjAiAKCHV3tTf/n4tdmOg5jSZvkw2BTHY41X6wvXtLGWxupA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39580},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"3a1086d9f7eeade5b2fa9ae53fe05da059874ee4","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.18.1","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.6.0_1737598639385_0.09588884491388638","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@jondotsoy/utils-js","version":"0.7.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.7.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"d410a6f8e0d8e8f2bc26475675e01f47724cbec1","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.7.0.tgz","fileCount":35,"integrity":"sha512-X2LduOjWvEee0qnm+JKVurHKBMTV9zIz0ok91+dhBjuKrqoiOM6YF6+l7fKhFYFYLJFbSQ3xbcpNt4gAplFtmA==","signatures":[{"sig":"MEUCIQC0fwe7dLMBkW7gNB9dqi1v4cpmr/8EPkFrxJrAHjb6VwIgXlMIZmqIGgCmf2HgVSq0ieZ7Ej5kB66QHOOdjt7bC28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47011},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"0e0263ac03f2161792fb00d350e4ec9dc45b7297","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.1","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.7.0_1746727512922_0.18105673795152644","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@jondotsoy/utils-js","version":"0.8.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.8.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"e5dfc8b40b3521720b56b96d2d42fd46dea91a87","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.8.0.tgz","fileCount":47,"integrity":"sha512-85OVOvRNkqcT8MzVeezpPTY7iQp5dOl44pahgjvMr5uuWrYNmT1E8snhhMELtAuUiahqmQ3VQnyePeOE0oQbow==","signatures":[{"sig":"MEUCIQDxrwDU1jVzSlgdvArxT6qdWTtORUhCiYLq+mfna4+AvQIgPLHMmjp4LyQiYmvsz6W8GyZRainppS0FJ0aE1mqWqGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66181},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"b8cf47d793ce66c6f2a5b16dfd5c703b05ac9dea","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.1","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.8.0_1747073369133_0.6593799759673236","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@jondotsoy/utils-js","version":"0.8.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.8.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"6860727877289e4fb0892e413219c450f19f8522","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.8.1.tgz","fileCount":47,"integrity":"sha512-H8/31UtgjMxcmz0BzMWziBluDWDMx3iwremzAVlVxwbGVUano4dxrrqamSDHM2S9bFJiudlc7FCu8O3AirqHHA==","signatures":[{"sig":"MEQCIHyozbaErh8NHI+UQweaetx8NHVM0fFobWGlQEQUmhbxAiBTBiTzKWAcgJgzUdMstbMBl9eQZ6XdfnS0FrvrHEX1fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68063},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"d9a484e7a684ab14e92b06d85c387450a3c0b14c","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.1","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.8.1_1747075246262_0.39617737468484293","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@jondotsoy/utils-js","version":"0.9.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.9.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"202fe2eeb12e0266de4072351c0387fb7e9c3cd9","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.9.0.tgz","fileCount":47,"integrity":"sha512-Dxx6tzvdu3Q+jSyPu9m4tXNoADAcOwfxo2u5Xtutz9lbskFJvHOA6ysOSHEnvgAnoTAsLICJTkVYh9cqb6SHXg==","signatures":[{"sig":"MEQCIBwH/NSy/V+UGymvpduC56ccbZbiVfU5WkrIJE83bK1LAiA0SeNbIF3RMHSxdJpMU+PVQ1+obtaolbbkH0rDu4pjHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80551},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"5ae02bc8aabb38279e8bfbddd07e985aa67eee73","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.1","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.9.0_1747086452906_0.9296659078996343","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@jondotsoy/utils-js","version":"0.10.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.10.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"5d29d894f0dd52db99df8bb55b9406d9814f50ae","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.10.0.tgz","fileCount":47,"integrity":"sha512-oVC9BlHTN88aSfYfbKUOyIWaUaZKpjMEMYk1rGAkG4vSEspcrg6SnT/Of3MMv8CbzUhZzLU4/0UlqqZIKgs3rQ==","signatures":[{"sig":"MEUCIQDs62EQLJWlbP8C0cjwS7iPExAOucB+xrYwHEeJfcw+WwIgNcM1BHBeCdP9Xv4ApIY/VZUjSN+jbyWFnoRgvJNeeJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85073},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"4a65f11dd92eba8f24c4171198dd5a7510bc002f","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.2","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.10.0_1749150674366_0.860239651368067","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@jondotsoy/utils-js","version":"0.11.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.11.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"c12a8cdcae1eb4d2cc42baa0b390601d78ae12ff","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.11.0.tgz","fileCount":51,"integrity":"sha512-0TauM01bDKqsDT/NH4yNYLFaJoz7V16JKbY7mKyhSYiUf3HZYrYHkiT/UwXctgsAmvbd4bj+/JSSS7cgMHYFsg==","signatures":[{"sig":"MEUCIGs8B1CrBsbDlHHYWXn80pxOWPwygiuhEf9nmKnsJg0DAiEAgjFflTUxwjXQDC9zSxDNJ8U2go35gZcCzKezapkjezg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151616},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"f11c99740d4f464ac2c07240132394e84552cc4c","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.11.0_1756354098854_0.2837325156922128","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@jondotsoy/utils-js","version":"0.11.2","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.11.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"16d66f4ccfd71c1a2942b0f56dbb17221219e9fe","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.11.2.tgz","fileCount":51,"integrity":"sha512-A3wZRAxsdjqWFJ661xxzns15rg1BfLwtWn8dK31J3YvF5aKo8xJGhIqEkcObrpiAqWNQMca0Qm8BgWI+FFe57Q==","signatures":[{"sig":"MEYCIQCB+eZJy3fg7RnoiQy3psiousqfsamIfOSkzNYGvVRaOgIhAJElvKX3BrI3VjnW0pjTNlpdtoMDkGJfLq1i01Cqkdp7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":151616},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"187193c03ab42225498dacf44baafcf452c4da49","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.11.2_1756354382452_0.7685777335186785","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@jondotsoy/utils-js","version":"0.12.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.12.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"50eac220761a491f9725feb86ff0535b58849da9","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.12.0.tgz","fileCount":51,"integrity":"sha512-GTxIroeGh2Ud9a44jGepo+OOHpa6UFSbGpm1vBhZI5GTxe/AP6Y3aGVpvg1lbfNoPuohEbzbvjKb4LjyTPCJww==","signatures":[{"sig":"MEUCIEX8FFK9pYOdYZngbDxMgKhYBMjxrW+hwDanXUFfXTLiAiEA9laq9Pgm3VlBXJ9SOEFTCUAqZWDitcBUVATyIwcJZ04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145634},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"34d4774c5c00a0ff8e48e90908b318199e001fb9","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.12.0_1756565498400_0.8603145488420763","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@jondotsoy/utils-js","version":"0.13.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.13.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"661f6828cd03da560b05c33dd80cd36e1d27ba7d","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.13.0.tgz","fileCount":51,"integrity":"sha512-0eDqfBtzTbS5rfeifP3GIMWetP5plLw0qM0waJ0t6ce/HvWoNQsJo3CXruJPmc04OzbCzzp6OYbuAQW1LE4+zA==","signatures":[{"sig":"MEYCIQC8Q6UeER2qW3m5eQg5OPBtif8nlCxa0xXTLYxGYqNxhwIhALUmsC9efart+oSdu3ffOurvrCjQGvtpnp2fq+i7H5XW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159958},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"250babd94c3891d4952b85512a84735c3dc177c1","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.13.0_1756617140494_0.7417406049274884","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"@jondotsoy/utils-js","version":"0.13.2","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.13.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"16a02d11b7501cc1604878e672232a05f97ce4e3","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.13.2.tgz","fileCount":71,"integrity":"sha512-cZZ4LP2NPzmq8lLAn85i5XKirXDCxRkYN1Vw1yoSvAlZw9yoHMoFimylAK0KH6vW3CJXC251mGUL7lm+CNlaYA==","signatures":[{"sig":"MEYCIQD+a9+MyzlrQjwDFICuOLFfTxC9R7FHwstOqVhqS59XWgIhAO6j9+WVUuin3q7ntujsA7eCmKzZYfBTjEBZ/Jmd8HTL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":226111},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"6dacd0f26f1c37a98a2423c6672d1f77df2dd814","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.13.2_1756843440004_0.0824048855456847","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"@jondotsoy/utils-js","version":"0.13.3","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.13.3","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"71af34fe5fe1a2729231421f6cd3f3eaade025dc","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.13.3.tgz","fileCount":71,"integrity":"sha512-NPPQuMptG4r7FSgfNdpJkghhyVN7Ytif9cXLYVkYBh7rAsLhdRK/T6kP37UjWOrBoRV+xRVnSo+tdN+cJigrJg==","signatures":[{"sig":"MEQCIFtit674YhaPfQ1VNKEWA2Ropkq5RPkokSueWau8ltT7AiA/4/VZsoW8Jl652UcnIbGsf69MH0GuQT7pNfVJ4CwH2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":226298},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"}},"gitHead":"d6bc8b336010472a0dd7a7a01d03895159d1b48b","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.13.3_1756843822758_0.898505153147716","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@jondotsoy/utils-js","version":"0.14.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.14.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"d7f089697bccfa710a279ec11f3a4a2051004643","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.14.0.tgz","fileCount":75,"integrity":"sha512-OCXWUGdfYwtf4VwlNCTTHSKyaf8ugy4IMwyW7fRf8D4o2PQmi0QpmJfhFSdfYThn8AeJTFISGqZVmMPK7nVvXA==","signatures":[{"sig":"MEQCIDU58GVWTxoB/ixJ/pElfn6AEtt1Jq7QFoCigRovO2psAiAiQ64h9c3ccYYG1L6QJF/WMoJPXfAkWBFK98KnkoIZLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":282216},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"}},"gitHead":"d20ccd86d50fc12c46f341c7014db05379c9bc25","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.14.0_1756863053406_0.042152314309789274","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@jondotsoy/utils-js","version":"0.15.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.15.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"1cf32109947a13cb33aad4cabef311d3aafee75c","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.15.0.tgz","fileCount":75,"integrity":"sha512-e3wFcDWF0hskygziBm5iAEB3agkpyIDZnlfabn5wOXx5YHAECgfPxN7IzqNK0e4R6bqlMIrhB7Pr92NMO2Qzgw==","signatures":[{"sig":"MEUCIQDS6ggeMjTnCyK//2ZN5Xto/L2yvf4wv6E9UJuB7h65mgIgHtXsbPoWqEqJjx8tp0MTt5FK1fr3cJQBKq+c13jMI3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":305659},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"}},"gitHead":"e0043dfd377d78e64ea973ed646e36050d49ce64","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.15.0_1756956357733_0.2509280006752408","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@jondotsoy/utils-js","version":"0.16.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.16.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"892d8707b6cbc0c24da338f8ddf41562c053c20c","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.16.0.tgz","fileCount":103,"integrity":"sha512-1A3WkfF80/AGwuOZJYctXc6mWMMydVGBY4sF3Ap4hkX3wNO9j+kTJeHNZkxhTA3K9AJxXkphVPTLmbrdR2hxZA==","signatures":[{"sig":"MEYCIQDwBCiF1xSTxt53rHY3tOvXg/VHf2xKbb9005rZJmjaWAIhAN6ymZfYyPinP2aAGTPZcOWxz1eiw+ra6InQk1wGKROY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366674},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"2383c7c4b9ef053c459647d0d5321973a3505638","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.16.0_1757032163241_0.8549403428487341","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@jondotsoy/utils-js","version":"0.16.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.16.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"9d17603dde571458dfc02c5188e03cddcdf88b15","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.16.1.tgz","fileCount":103,"integrity":"sha512-c4YTrEA/SyDTrtm1BDwnRkK22sb0PUB4fTxSB2ZRpJgnQ2MsDWEcvdBAOom9/2jwzCv2qNJKgVUawijihLHa2w==","signatures":[{"sig":"MEUCIQDQQOzJOfr/Gdo2XnX+KvR9ATEDLITe9zVgjmvrXXHaGgIgTqjLIXBh4Utp6zTZiARKJxxO9U6HtS4AhHisE0tJroY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.16.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385051},"type":"module","module":"./libs/esm/index.js","exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"8425b184ef0ec2ffb86ed30c03bcf99f3177ebbf","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.16.1_1757296099511_0.8527542121323892","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@jondotsoy/utils-js","version":"0.17.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.17.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"d104f2dc0d3c944ee8bf1a27cd1fd6c5d8f897fa","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.17.0.tgz","fileCount":107,"integrity":"sha512-oC10XSK2KQ/B4K7gd1L7d2C46SShxyMG4MMfOu4AajKmL1osUhEfa7ciW/LTa9PfyaZm6SQ7dMHnO1YDfwYkjw==","signatures":[{"sig":"MEYCIQCKSrcozCgKhJx1TMooc3+BMGHQ9E0HQNeCNR/k8lOXkwIhAIcSqZYrjt7Hh6pIEeT86bLDDlcoBGVyi65qFxqs02U1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":423057},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"84e8706f299a64001985e077617b8cc0d5182d36","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.4","typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.17.0_1757369763901_0.7082521981579248","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@jondotsoy/utils-js","version":"0.17.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.17.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"9c52790cadeb7e6eddf39be678628c7fc0f7f6f1","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.17.1.tgz","fileCount":107,"integrity":"sha512-tltW52CJwRCJaC0ox6qtiVySVZF7xFcpTCwlnaLNvmaMz6JZTGyJcmuTxokbncjizEPq2zyeVlWywCh8Mw/DeQ==","signatures":[{"sig":"MEYCIQDi9XgTtr7D9/H5tXtMXgZuMNl73k3Mn6yOk1hvorGtowIhAMTJXfSbKWy0DakuX5OGcsrcSkkZHsaF3lOacozUOcqQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":398085},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./symbol-result":{"types":"./libs/types/symbol-result/symbol-result.d.ts","import":"./libs/esm/symbol-result/symbol-result.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"8eb2f8bc7858465dbbdbb079195f993ecb6e35c0","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"latest","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.17.1_1757463532318_0.5979275929067822","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"@jondotsoy/utils-js","version":"0.18.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.18.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"f59136a480bf7432ed4612b0761e9b07ee1f8614","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.18.1.tgz","fileCount":103,"integrity":"sha512-KZdwbyRzsFStbLXAU+uSClFD9E5PgblPTdPUM95aL+Wqo3ceYmhmtikgken0vY/KRS+327IzeUWpvaPNRbFzhw==","signatures":[{"sig":"MEUCIGAIuyN6lBdAxycrXhum2D5WM87APPmTCJlmGbiD9whCAiEAxyTB7zHCEFaICR4/zL4CvmqxlH3PZtdEBaVzKZCb+jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415815},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"15ef68a7a81a890fe3c431ab02f27df40b6b90ad","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.18.1_1758745132484_0.23322694332283112","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@jondotsoy/utils-js","version":"0.19.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.19.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"f3f592491804d7826f34b9beabe8a2af166ce0e1","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.19.0.tgz","fileCount":107,"integrity":"sha512-IqcYG9+R/u/RXn3yAnGxszAGkc7/JIavybumhU45syhvZmm4iJAw3887xTVZRe/7PXhDA2BuwI5bY3HU6H+W1w==","signatures":[{"sig":"MEUCIQCFmAo1lvFz17dgYislm67O1dshljdqYg/5Bipbox5asgIgUtuYadAA4zPutAjXt1vpfvoMqa9o89PX/4YUDUO11Wo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":435285},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"3d3ecdb99080d2715d18f72c33b47aa59c34ec7b","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.19.0_1762192990506_0.23968224086786738","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@jondotsoy/utils-js","version":"0.20.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@0.20.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"c4391aff2f276a4606f329fd515314621c3ec727","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-0.20.0.tgz","fileCount":111,"integrity":"sha512-S7Jmx2AxTMgm4ikJIpTenKsyOlhl8Z9wE6YQH4+MZcbrL4QYekGKWqrjmpZETjzdy9BRmd0DF/tagDPuNlzdQw==","signatures":[{"sig":"MEUCIFfhrdX4V5Ljp5gZqKao9j1FhgXbNG6MVnJ84hTV6DLYAiEA16laPm1oRRrCuLL8gX19HEczELFoDGQyPsYg0+wqzCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":547354},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"6152a2ab2e4ae6f7e9acabf5ebf2c12f1b8a521b","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_0.20.0_1763770042016_0.6350871112788994","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@jondotsoy/utils-js","version":"1.0.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.0.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"bb584f808043d8743157ce7d36c2aa1304211bce","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.0.0.tgz","fileCount":111,"integrity":"sha512-NlRfEPD2lNBDjnEmXxSu7phSrrWyteeCE0Hw+EqbkvRygVmHHAoGWOcUuw9DrQocWAD7COTcU/uIeaXB58X3hw==","signatures":[{"sig":"MEUCIQDJgRVphFREZcMbqpsHdBypA++yLgFgRKPPbLXkGCgQ/gIgG/MDLpw/FdqaXLasEzAFze2kBkejmi6DaPG6f1WcgGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550556},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"466c6314a9877f5cf728d6e2eff1da52b4f29c66","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.0.0_1763770787235_0.5182276303210644","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@jondotsoy/utils-js","version":"1.0.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.0.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"8c4644a27bcc5eab5fdafb4ae02746c7db8212c1","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.0.1.tgz","fileCount":111,"integrity":"sha512-U//dEYYLZUJs0hacDIsm2hhy+WfGaoRt6RlrJ8EQGvQio8fMz70hRGMqE/G3TQyIp0SIfHWqa+9xtoujLvguug==","signatures":[{"sig":"MEUCIQC62aFX3UTi2Bmm4C467eDS6WBSJGG4QrWzErc0sxkbGAIgAuXcHVKrFF6aJJDh9PKNB1Es41v+MCHaFO2r1EhdfO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":555403},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"0933c9b933c5d4fd040c1f233a9ee8b5eaa39ffb","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.0.1_1763772606852_0.5042710854285992","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@jondotsoy/utils-js","version":"1.0.2","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.0.2","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"28f78faade9d5af9abaf3c1084ca84680a008754","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.0.2.tgz","fileCount":111,"integrity":"sha512-AvmdT1uqcnIXOUhETWyemipfA5wF0Ahx4wuNepxtYcro5ddLXZ0VzKHdRPc7iOrAIZhaA7sMoI9Cm12S5o1gqg==","signatures":[{"sig":"MEQCIDJCHQHjipk6kyznA9GmP50TJysz9BYeFwxRpmrr3RU8AiBRFhGaiGecRfJzcB2q3K3V4WkOq54oYVJp1iaWIQ7K6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573966},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"cae7f7905965c58123170c781fd645af32dda634","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.0.2_1763773695967_0.7098922427661694","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@jondotsoy/utils-js","version":"1.1.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.1.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"0ac140217759d576ceb590f2241f85d9bbb63722","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.1.0.tgz","fileCount":111,"integrity":"sha512-/UoyPraomjkiZyskun0xRjW0mYZfn/0cexeMA3D4ze0joTHUKUV2moHltqVd7E60qz+UIA5hD3Pe14/fyVj+/g==","signatures":[{"sig":"MEUCIB4dEWjowDYtozU40pwyrAgr8i0Pow3b6eKl2wHEWQ9mAiEAqbZjvpAKjo2jGwBavnybgvDTsVZfTFmMLmH5PD1hgD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577152},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"03f36521bf9fc9827a3b1d2b1925da6d34ba65f3","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.1.0_1763774188533_0.9266528284690241","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@jondotsoy/utils-js","version":"1.2.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.2.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"0585aa4cbaf94a849465982b7aa4a1bf2a54d740","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.2.0.tgz","fileCount":111,"integrity":"sha512-dvzePW7EfxFe1V2We+M9+chYsXf9dvj5yzZvmRl5xFjoHD9bNULzt2VA9PQ8KsErUxbKcVi5dD5VzQbxfS3qqw==","signatures":[{"sig":"MEUCIEujhsVhy1gZX+GTYE7ETTmsyMVlzXTNn2WFjQJYVkqkAiEAp3IYfH4x6SLUf5ZBBM9PupeLPfNv+T9GHnX9YUuvb2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":577842},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"fdef71b093e0b65c6de33d9884c11e3ed3ddf097","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.2.0_1763781553479_0.48202035988068115","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@jondotsoy/utils-js","version":"1.3.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.3.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"eeaa50c7833f8f3b50f8742ea8674f209da30e95","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.3.0.tgz","fileCount":111,"integrity":"sha512-hjS3vnQRBGgF2qTNJnAm/YJEQUb6IoH+OZUkIHNPniUHd/SYUPtHWjYpureze6e/NZI7Ux0wYt7WfWB1Lxhzvg==","signatures":[{"sig":"MEYCIQDiIPYdqXwWmUn+BbKi8yt8hfyVwSTS9Bl+My1VFvvsKQIhAMtGe6+Q5PstGb2IgiUSnhLBf6Z8rWC9QCOWDbdUWgcR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":579929},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"bc20ca7e279ecee661949fe300a6d4d91334f409","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.5","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.3.0_1764082357091_0.6096693782043296","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@jondotsoy/utils-js","version":"1.4.1","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.4.1","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"69d10563341649114a2a81d943ed705b8930536e","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.4.1.tgz","fileCount":111,"integrity":"sha512-5uj83pbpwBjRG/rB6THe0aVKzza8+QBcuCuKpXM84mTz5TBqdPCG66DxNzHS51duBDq/uUR0jGu2BsVVcErTsQ==","signatures":[{"sig":"MEYCIQC+8O6tdZPy2k5wERvYFr8ocOq+/5DE1SFOVVP5buv48wIhAMIoYdy0NfwL0h93RQiTFVoWpkoOz6wMaTrBvLiXH9Zv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":598739},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"a3af88498f281e62befa9a613aca73c7e28183ec","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.4.1_1765470959128_0.8268870242373527","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@jondotsoy/utils-js","version":"1.5.0","keywords":["get","set","visit","pipe"],"license":"MIT","_id":"@jondotsoy/utils-js@1.5.0","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"homepage":"https://github.com/JonDotsoy/utils-js#readme","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"dist":{"shasum":"013b014c6e8db812d4519acd0290cfe802a01384","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.5.0.tgz","fileCount":111,"integrity":"sha512-b+GNApXq69OX9GpUXZzcC6ahqjuJ5w8Qm/qEN3GY12z5ssh+ERR9UOaPkp7jiSRqVjwnn2s+bzE7KK7BevNogw==","signatures":[{"sig":"MEUCIQDOc7O1dsbovfX1q9NyPLymE+TcDroRcJ3vZifQFt0DOQIgbqUT4GMVVuREKvQtl5ptm+XSu8b6v2+lZWHQIY88PHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":605729},"type":"module","module":"./libs/esm/index.js","engines":{"node":">=16.4.1"},"exports":{".":{"types":"./libs/types/index.d.ts","import":"./libs/esm/index.js"},"./get":{"types":"./libs/types/get/get.d.ts","import":"./libs/esm/get/get.js"},"./set":{"types":"./libs/types/set/set.d.ts","import":"./libs/esm/set/set.js"},"./pick":{"types":"./libs/types/pick/pick.d.ts","import":"./libs/esm/pick/pick.js"},"./pipe":{"types":"./libs/types/pipe/pipe.d.ts","import":"./libs/esm/pipe/pipe.js"},"./bytes":{"types":"./libs/types/bytes/bytes.d.ts","import":"./libs/esm/bytes/bytes.js"},"./meter":{"types":"./libs/types/meter/meter.d.ts","import":"./libs/esm/meter/meter.js"},"./queue":{"types":"./libs/types/queue/queue.d.ts","import":"./libs/esm/queue/queue.js"},"./visit":{"types":"./libs/types/visit/visit.d.ts","import":"./libs/esm/visit/visit.js"},"./result":{"types":"./libs/types/result/result.d.ts","import":"./libs/esm/result/result.js"},"./workspace":{"types":"./libs/types/workspace/workspace.d.ts","import":"./libs/esm/workspace/workspace.js"},"./bytes-format":{"types":"./libs/types/bytes-format/bytes-format.d.ts","import":"./libs/esm/bytes-format/bytes-format.js"},"./cleanuptasks":{"types":"./libs/types/cleanuptasks/cleanuptasks.d.ts","import":"./libs/esm/cleanuptasks/cleanuptasks.js"},"./queue/store/worker-store":{"types":"./libs/types/queue/store/worker-store.d.ts","import":"./libs/esm/queue/store/worker-store.js"},"./queue/store/indexeddb-store":{"types":"./libs/esm/queue/store/indexeddb-store.d.ts","import":"./libs/esm/queue/store/indexeddb-store.js"},"./queue/store/worker-store-be":{"types":"./libs/types/queue/store/worker-store-be.d.ts","import":"./libs/esm/queue/store/worker-store-be.js"}},"gitHead":"730c5a72e3d4e79dceaf67b5364eacf7d0116f14","scripts":{"fmt":"prettier -w .","prepack":"make build"},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"repository":{"url":"git+https://github.com/JonDotsoy/utils-js.git","type":"git"},"_npmVersion":"10.8.2","description":"Some utilities to js","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@jondotsoy/shell":"1.2.0"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.25.51","prettier":"^3.3.3","@types/bun":"1.2.22","expect-type":"^1.2.1","fake-indexeddb":"^6.0.0"},"peerDependencies":{"typescript":"5.9.2"},"_npmOperationalInternal":{"tmp":"tmp/utils-js_1.5.0_1765471730190_0.1363337224262724","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@jondotsoy/utils-js","description":"Some utilities to js","version":"1.8.1","module":"./libs/esm/index.js","type":"module","license":"MIT","engines":{"node":">=16.4.1"},"typesVersions":{"*":{"*":["./libs/types/*"]}},"exports":{".":{"import":"./libs/esm/index.js","types":"./libs/types/index.d.ts"},"./bytes":{"import":"./libs/esm/bytes/bytes.js","types":"./libs/types/bytes/bytes.d.ts"},"./bytes-format":{"import":"./libs/esm/bytes-format/bytes-format.js","types":"./libs/types/bytes-format/bytes-format.d.ts"},"./cleanuptasks":{"import":"./libs/esm/cleanuptasks/cleanuptasks.js","types":"./libs/types/cleanuptasks/cleanuptasks.d.ts"},"./get":{"import":"./libs/esm/get/get.js","types":"./libs/types/get/get.d.ts"},"./pipe":{"import":"./libs/esm/pipe/pipe.js","types":"./libs/types/pipe/pipe.d.ts"},"./queue":{"import":"./libs/esm/queue/queue.js","types":"./libs/types/queue/queue.d.ts"},"./result":{"import":"./libs/esm/result/result.js","types":"./libs/types/result/result.d.ts"},"./set":{"import":"./libs/esm/set/set.js","types":"./libs/types/set/set.d.ts"},"./visit":{"import":"./libs/esm/visit/visit.js","types":"./libs/types/visit/visit.d.ts"},"./queue/store/indexeddb-store":{"import":"./libs/esm/queue/store/indexeddb-store.js","types":"./libs/esm/queue/store/indexeddb-store.d.ts"},"./queue/store/worker-store":{"import":"./libs/esm/queue/store/worker-store.js","types":"./libs/types/queue/store/worker-store.d.ts"},"./queue/store/worker-store-be":{"import":"./libs/esm/queue/store/worker-store-be.js","types":"./libs/types/queue/store/worker-store-be.d.ts"},"./workspace":{"import":"./libs/esm/workspace/workspace.js","types":"./libs/types/workspace/workspace.d.ts"},"./meter":{"import":"./libs/esm/meter/meter.js","types":"./libs/types/meter/meter.d.ts"},"./pick":{"import":"./libs/esm/pick/pick.js","types":"./libs/types/pick/pick.d.ts"},"./argv":{"import":"./libs/esm/argv/argv.js","types":"./libs/types/argv/argv.d.ts"},"./circumference":{"import":"./libs/esm/circumference/circumference.js","types":"./libs/types/circumference/circumference.d.ts"},"./length":{"import":"./libs/esm/length/length.js","types":"./libs/types/length/length.d.ts"},"./temperature":{"import":"./libs/esm/temperature/temperature.js","types":"./libs/types/temperature/temperature.d.ts"},"./volume":{"import":"./libs/esm/volume/volume.js","types":"./libs/types/volume/volume.d.ts"},"./weight":{"import":"./libs/esm/weight/weight.js","types":"./libs/types/weight/weight.d.ts"},"./data-size":{"import":"./libs/esm/data-size/data-size.js","types":"./libs/types/data-size/data-size.d.ts"},"./__snapshots__":{},"./units-symbolic.spec":{}},"devDependencies":{"@types/bun":"1.2.22","expect-type":"^1.3.0","fake-indexeddb":"^6.0.0","prettier":"^3.3.3","zod":"^3.25.51"},"peerDependencies":{"typescript":"5.9.2"},"scripts":{"fmt":"prettier -w .","prepack":"make build"},"repository":{"type":"git","url":"git+https://github.com/JonDotsoy/utils-js.git"},"keywords":["get","set","visit","pipe"],"dependencies":{"@jondotsoy/shell":"1.2.0","urlpattern-polyfill":"10.1.0"},"_id":"@jondotsoy/utils-js@1.8.1","gitHead":"3fd622853e46ee912b20670b1c5c1c07e5ab8e74","bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"homepage":"https://github.com/JonDotsoy/utils-js#readme","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-M1QRWoLSsAGFKWMcuqOMJARKj++wP8dcQV2O87NF+4286PeieEdojjMzyeE+PrZGb1qVaEUqRFQxt49eQvc/HQ==","shasum":"acb388bcc409c0ea262ceabdf6f0a4e735b12308","tarball":"https://registry.npmjs.org/@jondotsoy/utils-js/-/utils-js-1.8.1.tgz","fileCount":199,"unpackedSize":742264,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@jondotsoy%2futils-js@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA0Irx7ZZyBtibrssenMDwoLNq6i5JN+S5SQi/SKwW8FAiABTmav8DrrbmD8QWesJ+gy7tFbYVY79N+/LDU8NT3POg=="}]},"_npmUser":{"name":"jondotsoy","email":"hi@jon.soy"},"directories":{},"maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/utils-js_1.8.1_1786469589790_0.48997756532297543"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-05T21:31:02.475Z","modified":"2026-08-11T17:33:10.401Z","0.0.1":"2024-09-05T21:31:02.775Z","0.0.2":"2024-09-06T21:10:35.133Z","0.0.3":"2024-09-06T21:14:03.519Z","0.0.4":"2024-09-06T21:15:44.143Z","0.1.0":"2024-09-12T19:24:38.470Z","0.2.0":"2024-09-12T19:48:16.914Z","0.2.1":"2024-09-13T21:06:54.754Z","0.3.0":"2024-09-23T16:50:55.670Z","0.3.1":"2024-09-23T16:57:26.076Z","0.4.0":"2024-09-23T18:52:47.286Z","0.4.1":"2024-09-23T18:57:17.432Z","0.4.2":"2024-09-24T13:41:08.809Z","0.5.0":"2024-09-24T18:35:44.926Z","0.5.1":"2024-09-27T13:56:19.654Z","0.5.2":"2024-10-01T22:06:32.221Z","0.6.0":"2025-01-23T02:17:19.594Z","0.7.0":"2025-05-08T18:05:13.109Z","0.8.0":"2025-05-12T18:09:29.364Z","0.8.1":"2025-05-12T18:40:46.432Z","0.9.0":"2025-05-12T21:47:33.094Z","0.10.0":"2025-06-05T19:11:14.549Z","0.11.0":"2025-08-28T04:08:19.060Z","0.11.2":"2025-08-28T04:13:02.639Z","0.12.0":"2025-08-30T14:51:38.600Z","0.13.0":"2025-08-31T05:12:20.690Z","0.13.2":"2025-09-02T20:04:00.186Z","0.13.3":"2025-09-02T20:10:22.943Z","0.14.0":"2025-09-03T01:30:53.592Z","0.15.0":"2025-09-04T03:25:57.930Z","0.16.0":"2025-09-05T00:29:23.449Z","0.16.1":"2025-09-08T01:48:19.716Z","0.17.0":"2025-09-08T22:16:04.151Z","0.17.1":"2025-09-10T00:18:52.545Z","0.18.1":"2025-09-24T20:18:52.766Z","0.19.0":"2025-11-03T18:03:10.694Z","0.20.0":"2025-11-22T00:07:22.243Z","1.0.0":"2025-11-22T00:19:47.445Z","1.0.1":"2025-11-22T00:50:07.064Z","1.0.2":"2025-11-22T01:08:16.234Z","1.1.0":"2025-11-22T01:16:28.738Z","1.2.0":"2025-11-22T03:19:13.766Z","1.3.0":"2025-11-25T14:52:37.299Z","1.4.1":"2025-12-11T16:35:59.265Z","1.5.0":"2025-12-11T16:48:50.392Z","1.8.1":"2026-08-11T17:33:10.023Z"},"bugs":{"url":"https://github.com/JonDotsoy/utils-js/issues"},"license":"MIT","homepage":"https://github.com/JonDotsoy/utils-js#readme","keywords":["get","set","visit","pipe"],"repository":{"type":"git","url":"git+https://github.com/JonDotsoy/utils-js.git"},"description":"Some utilities to js","maintainers":[{"name":"jondotsoy","email":"hi@jon.soy"}],"readme":"# utils-js\n\nSome utilities for JS. Will be util to reduce common logic in your code.\n\n- [visit](#visit)\n- [get](#get)\n- [set](#set)\n- [pick](#pick)\n- [argv](#argv)\n- [pipe](#pipe)\n- [result](#result)\n- [CleanupTasks](#cleanuptasks)\n- [Bytes](#bytes)\n- [BytesFormat](#bytesformat)\n- [Meter](#meter) _(deprecated — use [Length](#length))_\n- [Queue](#queue)\n- [Workspace](#workspace)\n- [Unit Conversion Family](#unit-conversion-family)\n  - [Weight](#weight)\n  - [Length](#length)\n  - [Temperature](#temperature)\n  - [Volume](#volume)\n  - [Circumference](#circumference)\n  - [Bytes](#bytes)\n  - [DataSize](#datasize)\n\n## Visit\n\nA generator function that recursively visits nodes in an object, yielding each node that passes the provided test.\n\n**Syntax**\n\n```ts\nvisit(node);\nvisit(node, test);\n```\n\n**Arguments:**\n\n- `node` `<unknown>`: The starting node to visit.\n- `test` `<(node: unknown) => boolean>`: An optional function that takes a node as input and returns a boolean. If true, the node will be yielded\n\n**Example:**\n\n```ts\nimport { visit } from \"@jondotsoy/utils-js/visit\";\n\nconst v = visit([1, 2, 3]);\nv.next().value; // [1, 2, 3]\nv.next().value; // 1\nv.next().value; // 2\nv.next().value; // 3\n\nconst v = visit(\n  {\n    children: [\n      { type: \"span\", value: \"foo\" },\n      { type: \"block\", children: [{ type: \"span\", value: \"var\" }] },\n    ],\n  },\n  (node) => node.type === \"span\",\n);\nv.next().value; // {type:\"span\",value:\"foo\"}\nv.next().value; // {type:\"span\",value:\"var\"}\n```\n\n### Visit.getParent\n\nThe Visit.getParent function is a helper method provided by the visit utility. It allows you to retrieve the parent node of a given node during the recursive traversal performed by the visit generator function. This can be useful when you need to access or modify the parent node based on the current node being visited.\n\n**Syntax:**\n\n```ts\nVisit.getParent(node); // => parent\n```\n\n**Arguments:**\n\n- `node` `<unknown>`: The node element for which to find the parent.\n\n**Return:**\n\nReturns the parent node that contains the provided node. If the node is the root node or has no parent, it returns undefined.\n\n**Example:**\n\n```ts\nfor (const node of visit(\n  { a: { b: { toVisit: true } } },\n  (node) => node.toVisit,\n)) {\n  visit.getParent(node); // => { b: { toVisit: true } }\n}\n```\n\n### Visit.getFieldName\n\nThe Visit.getFieldName function is a utility method provided by the visit library. It allows you to retrieve the field name (or key) under which the current node is stored in its parent object during the traversal process.\n\n**Syntax:**\n\n```ts\nVisit.getFieldName(node); // => string | number | symbol | undefined\n```\n\n**Arguments:**\n\n- `node` `<unknown>`: The node element for which to find the field name.\n\n**Return:**\n\nReturns a string representing the field name of the current node within its parent object. If the node is the root node or the field name cannot be determined, it returns undefined.\n\n**Example:**\n\n```ts\nfor (const node of visit(\n  { a: { b: { toVisit: true } } },\n  (node) => node.toVisit,\n)) {\n  visit.getFieldName(node); // => 'b'\n}\n```\n\n## Get\n\nSafely access deeply nested properties in JavaScript/TypeScript objects by following a sequence of keys. The module also exposes type extractors and advanced validators that validate and convert the value when possible, making dynamic data handling safer and more convenient.\n\n**Basic Syntax:**\n\n```ts\nget(obj); // => unknown | undefined\nget(obj, ...paths); // => unknown | undefined\n```\n\n**Type Extractors and Advanced Validators:**\n\nThese methods allow you to obtain and validate values of specific types, attempting to convert the value when possible. They return `undefined` if the conversion or validation fails.\n\n- `get.string(obj, ...paths)` → string | undefined\n- `get.number(obj, ...paths)` → number | undefined\n- `get.boolean(obj, ...paths)` → boolean | undefined\n- `get.function(obj, ...paths)` → function | undefined\n- `get.bigint(obj, ...paths)` → bigint | undefined\n- `get.symbol(obj, ...paths)` → symbol | undefined\n- `get.array(obj, ...paths)` → Array<unknown> | undefined\n- `get.date(obj, ...paths)` → Date | undefined\n- `get.numberDate(obj, ...paths)` → number | undefined (timestamp)\n- `get.isoStringDate(obj, ...paths)` → string | undefined (ISO)\n- `get.record(obj, ...paths)` / `get.object(obj, ...paths)` → object | undefined\n- `get.is(test)(obj, ...paths)` → custom validation using a predicate function\n- `get.parse(parser, obj, ...paths)` → advanced extraction and validation using a Zod schema or any object with a `safeParse` method\n\n**Examples:**\n\nBasic access:\n\n```ts\nconst obj = { a: { b: { c: 42 } } };\nget(obj, \"a\", \"b\", \"c\"); // 42\nget(obj, \"a\", \"x\"); // undefined\n```\n\nType extraction and conversion:\n\n```ts\nconst obj = { value: \"123\", created: \"2024-01-01T00:00:00Z\" };\nget.number(obj, \"value\"); // 123\nget.date(obj, \"created\"); // Date instance\nget.isoStringDate(obj, \"created\"); // '2024-01-01T00:00:00.000Z'\n```\n\nCustom validation:\n\n```ts\nconst isEven = (v: unknown): v is number =>\n  typeof v === \"number\" && v % 2 === 0;\nconst getEven = get.is(isEven);\nconst obj = { n: 4 };\ngetEven(obj, \"n\"); // 4\n```\n\nAdvanced extraction and validation with Zod or custom parser:\n\n```ts\nimport { z } from \"zod\";\nconst obj = { user: { profile: { age: \"25\" } } };\nconst schema = z.object({ age: z.preprocess(Number, z.number()) });\nget.parse(schema, obj, \"user\", \"profile\"); // { age: 25 }\n\nconst customParser = {\n  safeParse(v: any) {\n    if (v && typeof v.foo === \"number\") {\n      return { success: true as const, data: v.foo };\n    }\n    return { success: false as const, error: \"Not a number\" };\n  },\n};\nconst obj2 = { foo: 123 };\nget.parse(customParser, obj2); // 123\n```\n\nThese extractors and validators help you write more robust and safe code, especially when working with dynamic data or complex nested structures.\n\n## Set\n\nSets a value at a specified path within a nested object structure.\n\n**Syntax**\n\n```ts\nset(obj, paths, value);\n```\n\n**Arguments**\n\n- `obj` `<unknown>`: The object to modify.\n- `paths` `<Array<string | number | symbol>>`: An array of property keys representing the path to the target property.\n- `value` `<unknown>`: The value to set at the specified path.\n\n**Return**\n\nThe modified object.\n\n**Example:**\n\n```ts\nconst obj = { a: {} };\nset(obj, [\"a\", \"b\", \"c\"], 1); // => { a: { b: { c: 1} } }\n\nconst data = { a: { b: 1 } };\n\nset(data, [\"a\", \"b\"], 2); // => { a: { b: 2 } }\n\nset(data, [\"a\", \"c\", \"d\"], 3); //=> { a: { b: 2, c: { d: 3 } } }\n```\n\n## Pick\n\nA utility for safely navigating and validating data structures with a chainable API. Returns `undefined` when an operation fails, allowing elegant handling of cases where data doesn't meet expectations.\n\n**Import:**\n\n```ts\nimport { pick } from \"@jondotsoy/utils-js/pick\";\n```\n\n**Syntax:**\n\n```ts\npick(value);\n```\n\n**Arguments:**\n\n- `value` `<unknown>`: The value to wrap and validate.\n\n**Return:**\n\nA Pick instance with chainable validation methods.\n\n**Basic Examples:**\n\n```ts\n// Safe property access\nconst data = { user: { name: \"Alice\", age: 30 } };\nconst name = pick(data).property(\"user\")?.property(\"name\")?.valueOf();\n// name = \"Alice\"\n\n// Type validation\npick(\"hello\").string()?.valueOf(); // \"hello\"\npick(123).number()?.valueOf(); // 123\npick([1, 2, 3]).array()?.valueOf(); // [1, 2, 3]\n\n// Returns undefined on validation failure\npick(123).string(); // undefined\npick(\"text\").number(); // undefined\n```\n\n### Methods\n\n**Type Validators:**\n\n- `.string()` - Validates the value is a string\n- `.number()` - Validates the value is a number\n- `.integer()` - Validates the value is an integer\n- `.bigInt()` - Validates the value is a bigint\n- `.boolean()` - Validates the value is a boolean\n- `.array()` - Validates the value is an array\n- `.record()` - Validates the value is an object\n- `.native()` - Validates the value is a native JS type (string, number, boolean, array, or object)\n- `.date()` - Validates the value is a valid Date object (returns DatePick)\n- `.undefined()` - Validates the value is undefined\n- `.null()` - Validates the value is null\n- `.symbol()` - Validates the value is a symbol\n\n**Navigation & Transformation:**\n\n- `.property(key)` - Accesses an object property\n- `.pipe(transform)` - Applies a transformation function\n- `.find(filter)` - Finds an element in an array\n- `.filter(filter)` - Filters array elements\n- `.every(validator)` - Validates all array elements\n- `.oneOf(validators)` - Tries multiple validators\n- `.enum(values)` - Validates value is in a set of allowed values\n- `.valueOf()` - Returns the current value\n\n**String Validators:**\n\n- `.startsWith(prefix)` - Validates string starts with prefix\n- `.endsWith(suffix)` - Validates string ends with suffix\n- `.includes(search)` - Validates string/array/record contains element\n- `.length(length)` - Validates exact length\n- `.min(minValue)` - Validates minimum length/value\n- `.max(maxValue)` - Validates maximum length/value\n- `.regexp(pattern, flags?)` - Validates string matches regex\n- `.uppercase()` - Validates all alphabetic characters are uppercase\n- `.lowercase()` - Validates all alphabetic characters are lowercase\n- `.email()` - Validates email format\n- `.url()` - Validates URL format\n- `.trim()` - Removes whitespace from start and end\n- `.toUpperCase()` - Transforms to uppercase\n- `.toLowerCase()` - Transforms to lowercase\n\n**Number Validators:**\n\n- `.gt(other)` - Validates greater than\n- `.gte(other)` - Validates greater than or equal\n- `.lt(other)` - Validates less than\n- `.lte(other)` - Validates less than or equal\n- `.eq(other)` - Validates strict equality\n- `.between(min, max)` - Validates within range\n- `.positive()` - Validates positive number\n- `.negative()` - Validates negative number\n- `.multipleOf(divisor)` - Validates multiple of divisor\n- `.even()` - Validates even number\n- `.odd()` - Validates odd number\n\n**Array Validators:**\n\n- `.minLength(min)` - Validates minimum array length\n- `.maxLength(max)` - Validates maximum array length\n- `.notEmpty()` - Validates array is not empty\n- `.first()` - Gets first element\n- `.last()` - Gets last element\n- `.at(index)` - Gets element at index\n\n**Record Validators:**\n\n- `.hasKey(key)` - Validates object has key\n- `.hasKeys(keys)` - Validates object has all keys\n- `.keys()` - Gets object keys as ArrayPick\n- `.values()` - Gets object values as ArrayPick\n- `.minKeys(min)` - Validates minimum number of keys\n- `.maxKeys(max)` - Validates maximum number of keys\n\n**Advanced Examples:**\n\n```ts\n// Enum validation\nconst status = pick({ status: \"active\" })\n  .property(\"status\")\n  ?.enum([\"active\", \"inactive\", \"pending\"])\n  ?.valueOf();\n// status = \"active\"\n\n// Transformation pipeline\nconst port = pick({ port: \"3000\" })\n  .property(\"port\")\n  ?.string()\n  ?.pipe((str) => parseInt(str, 10))\n  .valueOf();\n// port = 3000\n\n// Array validation\nconst tags = pick({ tags: [\"typescript\", \"javascript\"] })\n  .property(\"tags\")\n  ?.every((v) => v.string())\n  ?.valueOf();\n// tags = [\"typescript\", \"javascript\"]\n\n// Flexible type validation\nconst timeout = pick({ timeout: 5000 })\n  .property(\"timeout\")\n  ?.oneOf([(v) => v.string(), (v) => v.number()])\n  ?.valueOf();\n// timeout = 5000\n\n// Array filtering\nconst users = [\n  { name: \"Alice\", active: true },\n  { name: \"Bob\", active: false },\n];\nconst activeUsers = pick(users)\n  .filter((user: any) => user.active)\n  ?.valueOf();\n// activeUsers = [{ name: \"Alice\", active: true }]\n\n// String validation with regex\nconst email = pick({ email: \"user@example.com\" })\n  .property(\"email\")\n  ?.string()\n  ?.regexp(/^[\\w.-]+@[\\w.-]+\\.\\w+$/)\n  ?.valueOf();\n// email = \"user@example.com\"\n\n// Date validation with range\nconst validDate = pick({ createdAt: new Date(\"2024-06-15\") })\n  .property(\"createdAt\")\n  ?.date()\n  ?.after(new Date(\"2024-01-01\"))\n  ?.before(new Date(\"2024-12-31\"))\n  ?.valueOf();\n// validDate = Date object if within range\n\n// Number range validation\nconst age = pick({ age: 25 })\n  .property(\"age\")\n  ?.number()\n  ?.gte(18)\n  ?.lte(65)\n  ?.valueOf();\n// age = 25\n\n// String length and case validation\nconst username = pick({ username: \"john_doe\" })\n  .property(\"username\")\n  ?.string()\n  ?.min(3)\n  ?.max(20)\n  ?.lowercase()\n  ?.valueOf();\n// username = \"john_doe\"\n```\n\n### DatePick\n\n`DatePick` is a specialized class for date validation, automatically returned by `.date()`:\n\n**Methods:**\n\n- `.after(minDate)` - Validates date is after minimum date\n- `.before(maxDate)` - Validates date is before maximum date\n- `.between(minDate, maxDate)` - Validates date is within range\n\n**Example:**\n\n```ts\nconst data = { createdAt: new Date(\"2024-01-01\") };\n\n// Validate Date object (does not convert timestamps or strings)\nconst date = pick(data).property(\"createdAt\")?.date()?.valueOf();\n// date = Date object\n\n// Validate date range\nconst inRange = pick(data)\n  .property(\"createdAt\")\n  ?.date()\n  ?.between(new Date(2024, 0, 1), new Date(2024, 11, 31))\n  ?.valueOf();\n// inRange = Date object if in 2024\n```\n\n**Utilities:**\n\nThe `pick.utils` namespace exposes type validation functions for independent use:\n\n```ts\npick.utils.isString(value); // boolean\npick.utils.isNumber(value); // boolean\npick.utils.isBoolean(value); // boolean\npick.utils.isArray(value); // boolean\npick.utils.isRecord(value); // boolean\npick.utils.isSymbol(value); // boolean\npick.utils.hasOwnProperty(obj, key); // boolean\npick.utils.includes(array, value); // boolean\n```\n\nFor complete API documentation and more examples, see [src/pick/README.md](src/pick/README.md).\n\n## Argv\n\n> Inspired by [Bun.$](https://bun.sh/docs/runtime/shell)'s tagged-template\n> interpolation and escaping semantics.\n\nA tagged template function that tokenizes a shell-style command string into\nan argument array. Interpolated values are always inserted as literal\ntokens (never re-parsed or split on whitespace), and interpolated arrays\nare spread into multiple tokens — this makes it safe to build argument\nlists from dynamic values without risking command injection or accidental\nre-tokenization.\n\n**Import:**\n\n```ts\nimport { argv } from \"@jondotsoy/utils-js/argv\";\n```\n\n**Syntax:**\n\n```ts\nargv`command arg1 arg2`;\nargv`command ${value}`;\nargv`command ${arrayOfValues}`;\nargv.escape(value);\n```\n\n**Basic Examples:**\n\n```ts\nargv`foo tar`; // => [\"foo\", \"tar\"]\nargv`foo \"tar\"`; // => [\"foo\", \"tar\"]\nargv`foo \"tar biz\"`; // => [\"foo\", \"tar biz\"]\n\n// Interpolated strings are kept as a single token, spaces and all\nargv`foo ${\"tar biz\"}`; // => [\"foo\", \"tar biz\"]\n\n// Interpolated arrays are spread into multiple tokens\nargv`foo ${[\"tar biz\", \"bliz\"]}`; // => [\"foo\", \"tar biz\", \"bliz\"]\n\n// Mixing static tokens and interpolations\nargv`run --name ${\"foo bar\"} --tags ${[\"a\", \"b\"]} -x`;\n// => [\"run\", \"--name\", \"foo bar\", \"--tags\", \"a\", \"b\", \"-x\"]\n```\n\n**`argv.escape`:**\n\nQuotes and escapes a value so it can be safely embedded in a raw\ncommand-line string built outside of `argv`'s own interpolation — e.g.\nwriting a generated command to a script file or logging a reconstructed\ncommand line.\n\n```ts\nargv.escape(\"tar biz\"); // => '\"tar biz\"'\nargv.escape('say \"hi\"'); // => '\"say \\\\\"hi\\\\\"\"'\n```\n\n## Pipe\n\n> Inspired by [tc39/proposal-pipeline-operator](https://github.com/tc39/proposal-pipeline-operator).\n\nAllows you to chain operations in a readable and simple way, supporting both synchronous and asynchronous functions. The pipeline type adapts automatically according to the value returned by each operation.\n\n**Import:**\n\n```ts\nimport { pipe } from \"@jondotsoy/utils-js/pipe\";\n```\n\n**Syntax**\n\n```ts\npipe(initialValue).value();\npipe(initialValue).pipe(operator).value();\npipe(initialValue).pipe(operator).pipe(operator).value();\n// ...and so on\n\n// If you use `await` directly, you do not need to call `.value()`:\nawait pipe(initialValue);\nawait pipe(initialValue).pipe(operator);\nawait pipe(initialValue).pipe(operator).pipe(operator);\n// ...and so on\n```\n\n**Basic usage:**\n\n```ts\nconst sum = (v: number) => (a: number) => a + v;\n\n// Synchronous operations\nconst res = pipe(3)\n  .pipe(sum(1))\n  .pipe((a) => a * 2)\n  .value(); // => 8\n\n// Asynchronous or mixed operations\nconst asyncSum = (v: number) => async (a: number) => a + v;\n\nconst result = await pipe(3)\n  .pipe(asyncSum(2))\n  .pipe((a) => a * 2)\n  .value(); // => 10\n```\n\n**API:**\n\n- `pipe(initialValue)`\n  - Creates a pipeline with the initial value (can be sync or a promise).\n- `.pipe(fn)`\n  - Chains a function that receives the previous value and returns a new value or a promise.\n  - If any function returns a promise, the pipeline becomes asynchronous automatically.\n- `.value()`\n  - Returns the final value (or a promise if any operation was asynchronous).\n\n**Additional examples:**\n\n```ts\n// Mixed chaining\nconst res = await pipe(1)\n  .pipe((a) => a + 1)\n  .pipe(async (a) => a * 3)\n  .pipe((a) => a - 2);\n// => 4\n\n// Only synchronous\npipe(5)\n  .pipe((a) => a * 2)\n  .pipe((a) => a + 1)\n  .value(); // => 11\n```\n\n**Types:**\n\n- The type returned by `.pipe()` and `.value()` automatically adjusts according to the value type (sync/async).\n- You do not need to import from `pipe/async`, the main `pipe` handles both cases.\n\n## result\n\n> Inspiring on [arthurfiorette/proposal-safe-assignment-operator](https://github.com/arthurfiorette/proposal-safe-assignment-operator)\n\nCapture the result of an expression and return it as a tuple with success status, error, and value. Provides type-safe error handling without try-catch blocks.\n\n```ts\nimport { result } from \"@jondotsoy/utils-js/result\";\n\nconst asyncExpression = () => fetch(\"https://example.com\");\n\nconst [ok, error, response] = await result(asyncExpression);\n\nif (!ok) {\n  console.error(error);\n  return;\n}\n\nconsole.log(response);\n```\n\n**Syntax**\n\n```ts\nconst [ok, error, value] = result(expression);\nconst [ok, error, value] = await result(asyncExpression);\nconst [ok, error, value] = result(fn, ...args); // Function with arguments\n```\n\n**Arguments**\n\n- `expression` `<() => unknown | Promise<unknown>>`: A function that returns a value or promise.\n- `asyncExpression` `<() => Promise<unknown>>`: A function that returns a promise.\n- `fn` `<(...args: any[]) => unknown | Promise<unknown>>`: A function to call with provided arguments.\n- `...args` `<any[]>`: Arguments to pass to the function.\n\n**Return**\n\nA tuple containing:\n\n- `ok` `<boolean>`: Success status (true if successful, false if error)\n- `error` `<Error | null>`: The error (null if successful)\n- `value` `<T | null>`: The result value (null if error)\n\n**Examples**\n\n**Basic synchronous function:**\n\n```ts\nimport { result } from \"@jondotsoy/utils-js/result\";\n\nconst [ok, error, data] = result(() => JSON.parse('{\"key\": \"value\"}'));\n\nif (!ok) {\n  console.error(\"Parse failed:\", error.message);\n  return;\n}\n\nconsole.log(\"Parsed data:\", data); // { key: \"value\" }\n```\n\n**Asynchronous function:**\n\n```ts\nconst [ok, error, response] = await result(async () => {\n  const res = await fetch(\"https://api.example.com/data\");\n  return res.json();\n});\n\nif (!ok) {\n  console.error(\"API call failed:\", error);\n  return;\n}\n\nconsole.log(\"API data:\", response);\n```\n\n**Function with arguments:**\n\n```ts\nconst [ok, error, parsed] = result(JSON.parse, '{\"name\": \"John\"}');\n\nif (!ok) {\n  console.error(\"JSON parsing failed:\", error.message);\n  return;\n}\n\nconsole.log(\"User:\", parsed.name); // \"John\"\n```\n\n**Direct Promise handling:**\n\n```ts\nconst [ok, error, value] = await result(Promise.resolve(42));\n\nif (ok) {\n  console.log(\"Value:\", value); // 42\n}\n```\n\n**Alternative exports:**\n\n```ts\nimport { Result, ok, error } from \"@jondotsoy/utils-js/result\";\n\n// Create results manually\nconst success = ok(42); // [true, null, 42]\nconst failure = error(new Error()); // [false, Error, null]\n\n// Use Result class methods\nconst [isOk, err, val] = Result.try(() => riskyOperation());\n```\n\n## CleanupTasks\n\n**syntax**\n\n```ts\nconst cleanupTasks = new CleanupTasks();\nawait using cleanupTasks = new CleanupTasks();\n```\n\n**Return**\n\nInstance of `CleanupTasks` class.\n\n**Example**\n\n```ts\nawait using cleanupTasks = new CleanupTasks();\n\ncleanupTasks.add(() => myCleanupTask());\n\nawait cleanupTasks.cleanup();\n```\n\n## Bytes\n\n> **Deprecated.** Use [`DataSize`](#datasize) from `@jondotsoy/utils-js/data-size` instead. `DataSize` follows the `.total(unit)` convention, supports both SI decimal (KB = 1 000 B) and IEC binary (KiB = 1 024 B) prefixes, and includes bit units.\n\nA utility class for converting and formatting byte values in different units (byte, kilobyte, megabyte, gigabyte, terabyte, petabyte). Supports aliases and plural forms for units, as well as parsing from strings.\n\n**Syntax:**\n\n```ts\nimport { Bytes } from \"@jondotsoy/utils-js/bytes\";\n\nconst bytes = new Bytes(1024); // 1024 bytes\n```\n\n### Methods\n\n| Method                              | Description                                                                 |\n| ----------------------------------- | --------------------------------------------------------------------------- |\n| `toBytes()`                         | Returns the value in bytes.                                                 |\n| `toKilobytes()`                     | Returns the value in kilobytes.                                             |\n| `toMegabytes()`                     | Returns the value in megabytes.                                             |\n| `toGigabytes()`                     | Returns the value in gigabytes.                                             |\n| `toTerabytes()`                     | Returns the value in terabytes.                                             |\n| `toPetabytes()`                     | Returns the value in petabytes.                                             |\n| `toLocaleString(locale?, options?)` | Returns a human-readable string (e.g., '1 MB'), accepts formatting options. |\n| `static from(value, unit?)`         | Creates a Bytes instance from a number and unit, or from a string.          |\n\n### Supported units\n\n- `byte`, `kilobyte`, `megabyte`, `gigabyte`, `terabyte`, `petabyte`\n- Aliases: `b`, `kb`, `mb`, `gb`, `tb`, `pb`\n- Plurals: `bytes`, `kilobytes`, etc.\n\n### Examples\n\n**Convert between units:**\n\n```ts\nconst bytes = new Bytes(1048576); // 1 MB\nbytes.toKilobytes(); // 1024\nbytes.toMegabytes(); // 1\nbytes.toGigabytes(); // 0.0009765625\n```\n\n**Create Bytes from number and unit:**\n\n```ts\nconst kb = Bytes.from(1, \"kilobyte\");\nkb.toBytes(); // 1024\n\nconst mb = Bytes.from(2, \"mb\");\nmb.toBytes(); // 2097152\n```\n\n**Create Bytes from string:**\n\n```ts\nconst b1 = Bytes.from(\"1kb\");\nb1.toBytes(); // 1024\n\nconst b2 = Bytes.from(\"2 MB\");\nb2.toBytes(); // 2097152\n```\n\n**Format as a human-readable string:**\n\n```ts\nconst bytes = new Bytes(123456789);\nbytes.toLocaleString(\"en-US\"); // '117.74 MB'\nbytes.toLocaleString(\"de-DE\"); // '117,74 MB'\n// With options:\nbytes.toLocaleString(\"en-US\", { unit: \"megabyte\", maximumFractionDigits: 1 }); // '117.7 MB'\n```\n\n**Error handling for invalid units:**\n\n```ts\nBytes.from(1, \"invalidUnit\"); // Throws: Invalid unit type: invalidUnit\nBytes.from(\"10zz\"); // Throws: Invalid unit type: zz\n```\n\n## BytesFormat\n\nA utility class for formatting byte values into human-readable strings with automatic or fixed units, supporting localization and custom formatting options.\n\n**Syntax:**\n\n```ts\nimport { BytesFormat } from \"@jondotsoy/utils-js/bytes-format\";\n\nconst formatter = new BytesFormat(\"en-US\");\nformatter.format(1048576); // '1 MB'\n```\n\n### Constructor\n\n```ts\nnew BytesFormat(locale?: string, options?: BytesFormatOptions)\n```\n\n- `locale`: Optional. A BCP 47 language tag (e.g., 'en-US', 'de-DE').\n- `options`: Optional. Formatting options:\n  - `unit`: Force a specific unit (e.g., 'megabyte'), or use 'auto' (default).\n  - `unitDisplay`: 'short' | 'long' | 'narrow' (default: 'short').\n  - `maximumFractionDigits`: Number of decimal places (default: 2).\n  - `maximumSignificantDigits`: Number of significant digits.\n\n### Methods\n\n| Method      | Description                                                  |\n| ----------- | ------------------------------------------------------------ |\n| `format(n)` | Formats the number of bytes as a localized string with unit. |\n\n### Examples\n\n**Automatic unit selection:**\n\n```ts\nconst f = new BytesFormat(\"en-US\");\nf.format(2048); // '2 kB'\nf.format(1048576); // '1 MB'\nf.format(512); // '512 byte'\n```\n\n**Force a specific unit:**\n\n```ts\nconst f = new BytesFormat(\"en-US\", { unit: \"megabyte\" });\nf.format(1048576); // '1 MB'\nf.format(2048); // '0 MB'\n```\n\n**Custom unit display:**\n\n```ts\nnew BytesFormat(\"en-US\", { unitDisplay: \"long\" }).format(2048); // '2 kilobytes'\nnew BytesFormat(\"en-US\", { unitDisplay: \"narrow\" }).format(2048); // '2kB'\n```\n\n**Custom decimal places:**\n\n```ts\nnew BytesFormat(\"en-US\", { maximumFractionDigits: 1 }).format(1536); // '1.5 kB'\nnew BytesFormat(\"en-US\", { maximumFractionDigits: 0 }).format(1536); // '2 kB'\n```\n\n**Localization:**\n\n```ts\nnew BytesFormat(\"de-DE\").format(123456789); // '117,74 MB'\n```\n\n## Meter\n\n> **Deprecated.** Use [`Length`](#length) instead — it covers all SI metric units plus Imperial and Nautical.\n\n`Meter` and `MeterFormat` are still functional but will be removed in a future major version.\n\n**Migration:**\n\n```ts\n// Before\nimport { Meter } from \"@jondotsoy/utils-js/meter\";\nMeter.parse(\"2.5 km\").toLocaleString(\"en\", { unit: \"meter\", unitDisplay: \"long\" });\n\n// After\nimport { Length } from \"@jondotsoy/utils-js/length\";\nLength.from(\"2.5km\").total(\"meter\"); // 2500\n```\n\n## Queue\n\nA lightweight asynchronous message queue system with support for pluggable storage, keep-alive acknowledgments, TTL (Time-to-Live) message expiration, and manual message confirmation. Perfect for background job processing, task coordination, and reliable message distribution with at-least-once delivery semantics.\n\n**Import:**\n\n```ts\nimport { Queue } from \"@jondotsoy/utils-js/queue\";\n\n// For persistent storage (browser environments)\nimport { IndexedDBStore } from \"@jondotsoy/utils-js/queue/store/indexeddb-store\";\n\n// For worker-based storage (browser and Node.js)\nimport { WorkerStore } from \"@jondotsoy/utils-js/queue/store/worker-store\";\n```\n\n### Basic Usage\n\n**Simple message processing with manual acknowledgment:**\n\n```ts\nconst queue = new Queue();\n\n// Add messages\nawait queue.add({ task: \"send-email\", to: \"user@example.com\" });\nawait queue.add({ task: \"process-image\", id: 123 });\n\n// Process messages with explicit acknowledgment\nfor await (const message of queue) {\n  try {\n    console.log(\"Processing:\", message);\n    await processMessage(message);\n\n    // Acknowledge successful processing - required for deletion\n    queue.ack(message);\n  } catch (error) {\n    // Don't acknowledge - message will be reclaimed\n    console.error(\"Processing failed:\", error);\n  }\n}\n```\n\n**Concurrent workers:**\n\n```ts\nconst queue = new Queue();\n\nconst worker = (name) => async () => {\n  for await (const job of queue) {\n    try {\n      console.log(`${name} processing:`, job);\n      await simulateWork(job);\n      queue.ack(job); // Acknowledge successful processing\n    } catch (error) {\n      console.error(`${name} failed:`, error);\n      // Don't acknowledge - message will be reclaimed by another worker\n    }\n  }\n};\n\n// Both workers process different messages concurrently\nawait Promise.all([worker(\"Worker-1\")(), worker(\"Worker-2\")()]);\n```\n\n**With persistent storage (IndexedDB):**\n\n```ts\nimport { IndexedDBStore } from \"@jondotsoy/utils-js/queue/store/indexeddb-store\";\n\n// Messages persist across browser sessions\nconst queue = new Queue({\n  store: new IndexedDBStore(\"my-app-queue\"),\n});\n\nawait queue.add({ task: \"process-order\", orderId: \"123\" });\n\nfor await (const job of queue) {\n  console.log(\"Processing:\", job);\n  // Messages are automatically persisted to IndexedDB\n  queue.ack(job);\n}\n```\n\n**With worker-based storage (non-blocking):**\n\n```ts\nimport { WorkerStore } from \"@jondotsoy/utils-js/queue/store/worker-store\";\n\n// Create worker that handles storage operations\nconst worker = new Worker(\"/worker-store-backend.js\");\nconst queue = new Queue({\n  store: new WorkerStore(worker),\n});\n\nawait queue.add({ task: \"cpu-intensive-work\", data: largeDataset });\n\nfor await (const job of queue) {\n  console.log(\"Processing:\", job);\n  // Storage operations happen in worker thread - main thread stays responsive\n  queue.ack(job);\n}\n\n// Health check\nconst response = await queue.store.ping(); // \"pong\"\n\n// Cleanup\nawait queue.close();\nworker.terminate();\n```\n\n**With TTL (Time-to-Live) expiration:**\n\n```ts\nimport { IndexedDBStore } from \"@jondotsoy/utils-js/queue/store/indexeddb-store\";\n\nconst queue = new Queue({\n  store: new IndexedDBStore(\"task-queue\"),\n});\n\n// Add message with TTL (expires in 1 hour)\nawait queue.add(\n  { task: \"send-notification\", userId: \"123\" },\n  { ttl: Temporal.Duration.from({ hours: 1 }).total(\"seconds\") },\n);\n\n// Add urgent task (expires in 5 minutes)\nawait queue.add(\n  { task: \"urgent-cleanup\", resource: \"/tmp\" },\n  { ttl: Temporal.Duration.from({ minutes: 5 }).total(\"seconds\") },\n);\n\n// Expired messages are automatically filtered out and cleaned up\n// Manual cleanup also available: await queue.store.cleanupExpiredMessages();\n```\n\n**With AbortSignal support:**\n\n```ts\nconst controller = new AbortController();\n\n// Consume with cancellation support\n(async () => {\n  for await (const job of queue.consume(controller.signal)) {\n    await processJob(job);\n    queue.ack(job);\n  }\n})();\n\n// Stop processing after 10 seconds\nsetTimeout(() => controller.abort(), Temporal.Duration.from({ seconds: 10 }).total(\"milliseconds\"));\n```\n\n**With TTL (Time-to-Live) message expiration:**\n\n```ts\nimport { Queue, Message } from \"@jondotsoy/utils-js/queue\";\n\nconst queue = new Queue();\n\n// Add a message that expires in 5 minutes\nconst message = new Message(\n  { task: \"send-notification\", userId: \"123\" },\n  { ttl: Temporal.Duration.from({ minutes: 5 }).total(\"seconds\") },\n);\nawait queue.add(message);\n\n// Messages are automatically cleaned up when expired\nfor await (const job of queue) {\n  console.log(\"Processing:\", job);\n  queue.ack(job);\n}\n```\n\n**Graceful shutdown:**\n\n```ts\nconst queue = new Queue();\n\n// Start consumers\nconst consumer = (async () => {\n  for await (const job of queue) {\n    await processJob(job);\n    queue.ack(job);\n  }\n  console.log(\"Consumer stopped gracefully\");\n})();\n\n// Graceful shutdown - completes current messages before stopping\nsetTimeout(() => queue.close(), Temporal.Duration.from({ seconds: 30 }).total(\"milliseconds\"));\nawait consumer;\n\n// Or use Disposable pattern for automatic cleanup\n{\n  using queue = new Queue();\n  // Queue automatically closed when leaving scope\n}\n```\n\n### Queue Options\n\n```ts\nconst queue = new Queue({\n  messageTimeoutMs: 100, // Time before message is considered unacknowledged (default: 100)\n  ackIntervalMs: 100, // Keep-alive acknowledgment interval (default: 100)\n  store: new MemoryStore(), // Custom storage backend (default: new MemoryStore())\n});\n```\n\n### Message Lifecycle & Acknowledgment\n\nMessages require **explicit acknowledgment** to be deleted from the queue:\n\n```ts\nfor await (const messageData of queue.consume()) {\n  try {\n    await processMessage(messageData);\n\n    // Required: Acknowledge successful processing\n    queue.ack(messageData); // or queue.acknowledgeMessage(messageData)\n  } catch (error) {\n    // Don't acknowledge - message will be reclaimed after timeout\n    console.error(\"Processing failed:\", error);\n  }\n}\n```\n\n**Key behaviors:**\n\n- Messages are only deleted when explicitly acknowledged with `queue.ack()`\n- Unacknowledged messages are automatically reclaimed after `messageTimeoutMs`\n- Keep-alive prevents timeout during long processing\n- Provides at-least-once delivery semantics\n\n### Custom Storage Backend\n\nImplement your own storage by extending the `Store` abstract class:\n\n```ts\nimport { Store, Message } from \"@jondotsoy/utils-js/queue\";\n\nabstract class Store {\n  abstract addMessage(message: Message): Promise<void>;\n  abstract getMessage(messageId: string): Promise<Message | null>;\n  abstract acknowledgeMessage(messageId: string): Promise<void>;\n  abstract deleteMessage(messageId: string): Promise<void>;\n  abstract claimMessage(\n    acknowledgeTimeoutMs: number,\n    now: number,\n    abort?: AbortSignal,\n  ): Promise<Message | null>;\n  abstract getSize(): Promise<number>;\n  abstract close(): Promise<void>;\n}\n\nclass RedisStore extends Store {\n  // Implement Redis-backed storage\n  async addMessage(message: Message): Promise<void> {\n    // Your Redis implementation\n  }\n\n  async getMessage(messageId: string): Promise<Message | null> {\n    // Your Redis implementation\n  }\n\n  async acknowledgeMessage(messageId: string): Promise<void> {\n    // Your Redis implementation\n  }\n\n  async deleteMessage(messageId: string): Promise<void> {\n    // Your Redis implementation\n  }\n\n  async claimMessage(\n    acknowledgeTimeoutMs: number,\n    now: number,\n  ): Promise<Message | null> {\n    // Your Redis implementation - should be atomic\n  }\n\n  async getSize(): Promise<number> {\n    // Your Redis implementation\n  }\n\n  async close(): Promise<void> {\n    // Your Redis cleanup implementation\n  }\n}\n\nconst queue = new Queue({ store: new RedisStore() });\n```\n\n**Built-in stores:**\n\n- **MemoryStore**: Default in-memory storage (development/testing) with automatic TTL cleanup\n- **IndexedDBStore**: Browser-only persistent storage with TTL support - messages survive browser restarts and include automatic cleanup of expired messages\n- **WorkerStore**: Worker-based storage that delegates operations to a Web Worker/Worker Thread - prevents main thread blocking for better performance\n\n### Features\n\n- **🔄 Async Iterator Support**: Clean `for await...of` consumption pattern\n- **🛑 Graceful Shutdown**: `close()` method and Disposable pattern support\n- **💾 Pluggable Storage**: Abstract `Store` interface with in-memory and IndexedDB implementations\n- **⚡ Keep-Alive Acknowledgments**: Prevents message timeout during long processing\n- **⏱️ TTL Support**: Optional Time-to-Live for automatic message expiration and cleanup\n- **🔀 Concurrent Workers**: Multiple consumers safely process different messages\n- **🛡️ Message Recovery**: Automatic reclaim of failed/stalled messages after timeout\n- **✋ Manual Acknowledgment**: Explicit `ack()` required for message deletion\n- **📦 Zero Dependencies**: Pure TypeScript implementation\n- **🔒 Type Safe**: Full TypeScript support with comprehensive type definitions\n- **🔁 At-Least-Once Delivery**: Failed messages are automatically retried\n\n### Use Cases\n\n- **Background job processing**\n- **Task queue coordination between workers**\n- **Event-driven microservices communication**\n- **Batch processing with failure recovery**\n- **Real-time message distribution systems**\n\nFor complete API documentation and advanced usage examples, see [src/queue/README.md](src/queue/README.md).\n\n## Workspace\n\nA powerful and flexible API for executing shell commands in Node.js applications with workspace-centric command execution, environment management, and isolation. Built on top of `@jondotsoy/shell`, it provides managed environments for executing multiple related commands with consistent configuration, automatic timeout handling, and temporary workspace creation. For complete API documentation and advanced usage examples, see [src/workspace/README.md](src/workspace/README.md).\n\n**Syntax:**\n\n```ts\nimport { Workspace } from \"@jondotsoy/utils-js/workspace\";\n// or for both workspace and direct shell access\nimport { shell, Workspace } from \"@jondotsoy/utils-js/workspace\";\n\n// Basic command execution (direct shell)\nconst response = shell(command);\nconst response = shell(command, options);\n\n// Workspace management\nconst workspace = new Workspace(options);\nconst response = workspace.run(command);\nconst response = workspace.run(command, options);\n```\n\n**Arguments:**\n\n- `command` `<string>`: Command to execute\n- `options` `<object>`: Optional configuration for shell commands\n  - `stdin` `<ReadableStream>`: Input stream to pipe to the command\n  - `env` `<Record<string, string>>`: Environment variables\n  - `shell` `<string>`: Shell to use for execution\n  - `cwd` `<string>`: Working directory\n  - `signal` `<AbortSignal>`: Signal for cancellation/timeout\n- `options` `<WorkspaceOptions>`: Configuration for workspace\n  - `workingDirectory` `<string | URL>` **required**: Working directory for the workspace\n  - `shell` `<string>`: Shell to use for command execution (default: '/bin/sh')\n  - `env` `<Record<string, string>>`: Environment variables\n  - `timeout` `<number>`: Timeout in milliseconds for all commands in workspace\n\n**Examples:**\n\n```ts\nimport { shell, Workspace } from \"@jondotsoy/utils-js/workspace\";\n\n// Direct shell command execution\nconst response = shell('echo \"Hello World\"');\nconst output = await response.text();\nconsole.log(output); // \"Hello World\"\n\n// Command with timeout\nconst timedResponse = shell(\"long-running-command\", {\n  signal: AbortSignal.timeout(Temporal.Duration.from({ seconds: 5 }).total(\"milliseconds\")),\n});\n\n// Create a workspace with default settings\nconst workspace = new Workspace({\n  workingDirectory: \"/path/to/project\",\n  shell: \"/bin/bash\",\n  timeout: Temporal.Duration.from({ seconds: 30 }).total(\"milliseconds\"),\n});\n\n// Execute commands in the workspace context\nconst result1 = workspace.run(\"npm install\");\nconst result2 = workspace.run(\"npm test\");\n\n// All commands inherit workspace configuration\nconst output = await result1.text();\nconst exitCode = await result1.exitCode;\n\n// Temporary workspace\nconst tmpWorkspace = Workspace.mktmp();\nconst response = tmpWorkspace.run('echo \"temp work\" > file.txt');\n\n// Workspace with environment variables\nconst devWorkspace = new Workspace({\n  workingDirectory: \"/project\",\n  env: { NODE_ENV: \"development\", CI: \"true\" },\n});\n\nconst buildResult = devWorkspace.run(\"npm run build\");\n```\n\n## Unit Conversion Family\n\nA family of measurement utility classes that share a consistent API pattern:\n\n```ts\nClassName.from({ unit1: value, unit2: value }).total(\"targetUnit\")\nClassName.from(value, \"unit\").total(\"targetUnit\")\nClassName.from(\"valueUnit\").total(\"targetUnit\")\n```\n\nEach class stores its value in a canonical base unit and converts on read via `.total(unit)`. All classes support string parsing, object input (combine multiple units), and a `{ unit }` object form for `.total()`.\n\n| Class | Import | Base unit | Measures | Highlights |\n|---|---|---|---|---|\n| [`Weight`](#weight) | `@jondotsoy/utils-js/weight` | gram | Mass | Metric, Imperial, Troy, Gemology |\n| [`Length`](#length) | `@jondotsoy/utils-js/length` | millimeter | Linear distance | Metric, Imperial, Nautical |\n| [`Temperature`](#temperature) | `@jondotsoy/utils-js/temperature` | Kelvin | Temperature | Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur, Rømer |\n| [`Volume`](#volume) | `@jondotsoy/utils-js/volume` | milliliter | Volume | Metric, US customary, Imperial, Cubic |\n| [`Circumference`](#circumference) | `@jondotsoy/utils-js/circumference` | millimeter | Circle circumference | Same units as Length plus `fromRadius()`, `fromDiameter()`, `.radius()`, `.diameter()` |\n| ~~[`Bytes`](#bytes)~~ _(deprecated)_ | `@jondotsoy/utils-js/bytes` | byte | Digital storage | Superseded by `DataSize` |\n| [`DataSize`](#datasize) | `@jondotsoy/utils-js/data-size` | byte | Data size | SI decimal (KB–YB), IEC binary (KiB–EiB), bits & kilobits–petabits; `.total(unit)` pattern |\n\n## Weight\n\nA utility class for converting between weight units. Stores values internally in grams and converts on read via `.total(unit)`.\n\n**Syntax:**\n\n```ts\nWeight.from({ kilograms: 12, grams: 345 }).total(\"oz\")\nWeight.from(1, \"lb\").total(\"grams\")\nWeight.from(\"2.5kg\").total({ unit: \"oz\" })\n```\n\n**Supported units:**\n\n| Category | Units | Short aliases |\n|---|---|---|\n| Metric | microgram, milligram, gram, kilogram, tonne | µg/mcg, mg, g, kg, t |\n| Imperial | grain, dram, ounce, pound, stone, short-ton, long-ton | gr, dr, oz, lb/lbs, st, ton |\n| Troy | troy-ounce, troy-pound | ozt, lbt |\n| Gemology | carat | ct |\n\n**Examples:**\n\n```ts\nimport { Weight } from \"@jondotsoy/utils-js/weight\";\n\n// Object form — combine multiple units\nWeight.from({ kilograms: 12, grams: 345 }).total(\"oz\"); // 435.58 oz\n\n// Number + unit\nWeight.from(1, \"lb\").total(\"grams\"); // 453.59\n\n// String parsing\nWeight.from(\"2.5kg\").total(\"oz\"); // 88.18\n\n// Object unit argument\nWeight.from({ pounds: 10 }).total({ unit: \"kg\" }); // 4.54\n```\n\n## Length\n\nA utility class for converting between length units. Stores values internally in millimeters and converts on read via `.total(unit)`.\n\n**Syntax:**\n\n```ts\nLength.from({ meters: 1, centimeters: 50 }).total(\"in\")\nLength.from(6, \"ft\").total(\"mm\")\nLength.from(\"1.5km\").total({ unit: \"mi\" })\n```\n\n**Supported units:**\n\n| Category | Units | Short aliases |\n|---|---|---|\n| Metric | picometer, nanometer, micrometer, millimeter, centimeter, decimeter, meter, decameter, hectometer, kilometer | pm, nm, µm/um, mm, cm, dm, m, dam, hm, km |\n| Imperial | thou, inch, foot, yard, mile | th/mil, in, ft/feet, yd, mi |\n| Nautical | nautical-mile | nmi |\n\n**Examples:**\n\n```ts\nimport { Length } from \"@jondotsoy/utils-js/length\";\n\n// Object form — combine multiple units\nLength.from({ meters: 1, centimeters: 50 }).total(\"in\"); // 59.06 in\n\n// Number + unit\nLength.from(6, \"ft\").total(\"mm\"); // 1828.8 mm\n\n// String parsing\nLength.from(\"5km\").total(\"mi\"); // 3.11 mi\n\n// Object unit argument\nLength.from({ inches: 12 }).total({ unit: \"ft\" }); // 1 ft\n```\n\n## Temperature\n\nA utility class for converting between temperature scales. Stores values internally in Kelvin and converts on read via `.total(unit)`.\n\n> Unlike weight or length, temperature scales are not related by a simple ratio — they involve offsets. The object form accepts exactly one unit key.\n\n**Syntax:**\n\n```ts\nTemperature.from({ celsius: 100 }).total(\"fahrenheit\")\nTemperature.from(32, \"fahrenheit\").total(\"celsius\")\nTemperature.from(\"100°C\").total({ unit: \"kelvin\" })\n```\n\n**Supported scales:**\n\n| Scale | Aliases |\n|---|---|\n| Kelvin | `kelvin`, `K`, `k` |\n| Celsius | `celsius`, `centigrade`, `C`, `c`, `°C` |\n| Fahrenheit | `fahrenheit`, `F`, `f`, `°F` |\n| Rankine | `rankine`, `Ra`, `R`, `r`, `°R` |\n| Delisle | `delisle`, `De`, `de`, `°De` |\n| Newton | `newton`, `N`, `n`, `°N` |\n| Réaumur | `reaumur`, `Re`, `re`, `°Re` |\n| Rømer | `romer`, `Ro`, `ro`, `°Ro` |\n\n**Examples:**\n\n```ts\nimport { Temperature } from \"@jondotsoy/utils-js/temperature\";\n\n// Object form\nTemperature.from({ celsius: 100 }).total(\"fahrenheit\"); // 212\nTemperature.from({ fahrenheit: 32 }).total(\"celsius\");  // 0\n\n// Number + unit\nTemperature.from(0, \"celsius\").total(\"kelvin\");         // 273.15\nTemperature.from(373.15, \"kelvin\").total(\"celsius\");    // 100\n\n// String parsing\nTemperature.from(\"100°C\").total(\"fahrenheit\");          // 212\nTemperature.from(\"32F\").total(\"celsius\");               // 0\n\n// Object unit argument\nTemperature.from(100, \"celsius\").total({ unit: \"reaumur\" }); // 80\n```\n\n## Volume\n\nA utility class for converting between volume units. Stores values internally in milliliters and converts on read via `.total(unit)`.\n\n**Syntax:**\n\n```ts\nVolume.from({ liters: 1, milliliters: 500 }).total(\"floz\")\nVolume.from(8, \"floz\").total(\"ml\")\nVolume.from(\"1.5l\").total({ unit: \"cup\" })\n```\n\n**Supported units:**\n\n| Category | Units | Short aliases |\n|---|---|---|\n| Metric | milliliter, centiliter, deciliter, liter, cubic-meter | ml, cl, dl, l, m³ |\n| Cubic | cubic-centimeter, cubic-inch, cubic-foot | cc/cm³, in³, ft³ |\n| US customary | us-teaspoon, us-tablespoon, us-fluid-ounce, us-cup, us-pint, us-quart, us-gallon | tsp, tbsp, floz, cup, pt, qt, gal |\n| Imperial | imperial-fluid-ounce, imperial-pint, imperial-quart, imperial-gallon | imp-fl-oz, imp-pt, imp-qt, imp-gal |\n\n**Examples:**\n\n```ts\nimport { Volume } from \"@jondotsoy/utils-js/volume\";\n\n// Object form — combine multiple units\nVolume.from({ liters: 1, milliliters: 500 }).total(\"floz\"); // 50.72 fl oz\n\n// Number + unit\nVolume.from(8, \"floz\").total(\"ml\");    // 236.59 ml\nVolume.from(1, \"gal\").total(\"l\");      // 3.785 l\nVolume.from(5, \"cc\").total(\"ml\");      // 5 ml\n\n// String parsing\nVolume.from(\"250ml\").total(\"cup\");     // 1.057 cups\nVolume.from(\"1 gal\").total(\"l\");       // 3.785 l\n\n// Object unit argument\nVolume.from({ cups: 2 }).total({ unit: \"ml\" }); // 473.18 ml\n```\n\n## Circumference\n\nA utility class for working with circle circumferences. Shares all length units with [`Length`](#length) and adds geometric factory methods and reverse conversions. Stores values internally in millimeters.\n\n**Syntax:**\n\n```ts\nCircumference.from({ meters: 1, centimeters: 50 }).total(\"mm\")\nCircumference.from(314, \"mm\").total(\"cm\")\nCircumference.fromRadius(5, \"cm\").total(\"mm\")\nCircumference.fromDiameter(10, \"cm\").radius(\"cm\")\n```\n\n**Examples:**\n\n```ts\nimport { Circumference } from \"@jondotsoy/utils-js/circumference\";\n\n// From a known circumference\nCircumference.from(314, \"mm\").total(\"cm\");         // 31.4 cm\n\n// From radius\nCircumference.fromRadius(1, \"m\").total(\"mm\");      // 6283.18 mm  (2π × 1000)\n\n// From diameter\nCircumference.fromDiameter(10, \"cm\").total(\"mm\"); // 314.16 mm  (π × 100)\n\n// Reverse — get radius or diameter from any circumference\nconst c = Circumference.fromRadius(7, \"cm\");\nc.radius(\"cm\");    // 7\nc.diameter(\"cm\");  // 14\n\n// Object form + object unit argument\nCircumference.from({ meters: 1 }).total({ unit: \"cm\" }); // 100\n```\n\n**Geometric methods:**\n\n| Method | Description |\n|---|---|\n| `Circumference.fromRadius(value, unit)` | Creates a circumference from a circle's radius |\n| `Circumference.fromDiameter(value, unit)` | Creates a circumference from a circle's diameter |\n| `.radius(unit)` | Returns the radius implied by this circumference |\n| `.diameter(unit)` | Returns the diameter implied by this circumference |\n\nSupported units are identical to [`Length`](#length): full metric scale (pm → km), Imperial (thou, in, ft, yd, mi), and Nautical (nmi).\n\n## DataSize\n\nA utility class for converting between data size units. Stores values internally in bytes and converts on read via `.total(unit)`. Supports both SI decimal prefixes (KB = 1 000 B) and IEC binary prefixes (KiB = 1 024 B), plus bit-based units.\n\n**Syntax:**\n\n```ts\nDataSize.from({ megabytes: 1, bytes: 500 }).total(\"bytes\")\nDataSize.from(1, \"GB\").total(\"MB\")\nDataSize.from(\"512KiB\").total(\"MiB\")\nDataSize.from(8, \"bit\").total(\"bytes\")\n```\n\n**Examples:**\n\n```ts\nimport { DataSize } from \"@jondotsoy/utils-js/data-size\";\n\n// SI decimal\nDataSize.from(1, \"GB\").total(\"MB\");          // 1000\nDataSize.from(1_000_000, \"bytes\").total(\"MB\"); // 1\n\n// IEC binary\nDataSize.from(1, \"GiB\").total(\"MiB\");        // 1024\nDataSize.from(1, \"GiB\").total(\"bytes\");      // 1073741824\n\n// Cross-system\nDataSize.from(1, \"MB\").total(\"KiB\");         // 976.5625\n\n// Bits\nDataSize.from(8, \"bit\").total(\"bytes\");      // 1\n\n// String parsing\nDataSize.from(\"1.5GB\").total(\"MB\");          // 1500\n\n// Object form\nDataSize.from({ megabytes: 1, bytes: 500 }).total(\"KB\"); // 1000.5\n```\n\n**Supported units:**\n\n| Category | Units |\n|---|---|\n| SI decimal | `byte`/`B`, `KB`, `MB`, `GB`, `TB`, `PB`, `EB`, `ZB`, `YB` |\n| IEC binary | `KiB`, `MiB`, `GiB`, `TiB`, `PiB`, `EiB` |\n| Bits | `bit`, `kbit`, `mbit`, `gbit`, `tbit`, `pbit` |\n\nAll units accept singular, plural, and short-form aliases (e.g. `megabyte`, `megabytes`, `MB`).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details\n","readmeFilename":"README.md"}