{"_id":"@adaskothebeast/hierarchical-convert-to-date","_rev":"18-05f9a2d9342e598a56a7309d14b2a434","name":"@adaskothebeast/hierarchical-convert-to-date","dist-tags":{"latest":"11.0.1"},"versions":{"1.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"1.0.0","_id":"@adaskothebeast/hierarchical-convert-to-date@1.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"d37e8593a3753b2165dd5224794e928be3ba57e8","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-1.0.0.tgz","fileCount":8,"integrity":"sha512-OeqCJyMEpsUXc2aypOUDqGEec72VfVrk6Vgsj3VD61drKNOxAYkcNLUppTjbRXaUqLC4VkPS8XmUU2fqy+XOEA==","signatures":[{"sig":"MEUCIDmPjNISYtLX/cBYpaW5trYOKG5rvbAWg8IL2BgFsYKfAiEAiNRJz7I+PlKo4oS+uMA70Wc2GFKB2L42zHE3BV90Eb8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19204},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"5a8393de558ed881da2eaed1093b1f44d8b84013","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"9.5.1","description":"Dates in JSON are usually serialized as strings. This library helps to convert them to Date objects. It also helps to convert duration strings to Duration objects.","directories":{},"_nodeVersion":"18.16.1","_hasShrinkwrap":false,"peerDependencies":{"tslib":"2.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_1.0.0_1690045870323_0.28496095954119305","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"1.1.0","_id":"@adaskothebeast/hierarchical-convert-to-date@1.1.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"c12afc3f85ef47b8faafef54ae1c230bc08aec1e","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-1.1.0.tgz","fileCount":8,"integrity":"sha512-Cmyf2emk1PTv0pAf8kZsl7tHernZY2M8oUezm5ApZqCQW2nHoB10icTOf2Q73AHU20Y8711tKANSz6uo7iXFhg==","signatures":[{"sig":"MEYCIQD+DKefkjzQlSYHe0JMZ3zkTbdYDWYisNT81Vrc2N8IeQIhAOdk4Ju7xoC4BYupyJG8Bp+CwHwoaoNz2tw/r4vpHY9C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19204},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"5a8393de558ed881da2eaed1093b1f44d8b84013","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"9.5.1","description":"Dates in JSON are usually serialized as strings. This library helps to convert them to Date objects. It also helps to convert duration strings to Duration objects.","directories":{},"_nodeVersion":"18.16.1","_hasShrinkwrap":false,"peerDependencies":{"tslib":"2.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_1.1.0_1690184231287_0.973110829483373","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"1.2.0","_id":"@adaskothebeast/hierarchical-convert-to-date@1.2.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"7ba26b53b6a3283454ef3d2813355df4780c2d2b","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-1.2.0.tgz","fileCount":8,"integrity":"sha512-4CX+gBwxo+5tVPGTaz63yayVqtwr3y2hpEIlC32n0WbL3K5760kAKGx7Wc1hJ4kAARgaWPj2dGh2YZ9p3T3QOA==","signatures":[{"sig":"MEUCIFm+T/7W/17IOW2NtM+ImDaurXTAPGLTL1xAiaDTY42dAiEAgM7GZEIAN0Li40t24Wwt7LJU2qsCMgK6I2JJ/1uoyds=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19154},"main":"./src/index.js","types":"./src/index.d.ts","gitHead":"e4b5c4c39932b5fc44e14c9d216b31eb05e5443f","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"9.6.7","description":"Dates in JSON are usually serialized as strings. This library helps to convert them to Date objects. It also helps to convert duration strings to Duration objects.","directories":{},"_nodeVersion":"18.17.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_1.2.0_1691015791230_0.3578578098729668","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"2.0.0","_id":"@adaskothebeast/hierarchical-convert-to-date@2.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"c680fc8237f1c307579a33aa84c68c673a0b12ee","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-2.0.0.tgz","fileCount":8,"integrity":"sha512-oBTTEjgF6IJFSsxuGRdIE4R6GTIU+9Iuf6pKLP6s+3w2bp+kWYA1afQyJUbrRq8izXpsuz6Jxvv+A034yJmv1Q==","signatures":[{"sig":"MEUCIQC5HOi65qzZ2U4aNHwBR7QJ6lsN7kU7rfz/9w/LEZvzEwIgLQvZ9ad1wQ6YRVNzCaVlB2Mv6suHMUC7j18c4iXxbxg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18425},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"a680a7de38721a64c7252058496d6bc3580f5d05","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.1.0","description":"Dates in JSON are usually serialized as strings. This library helps to convert them to Date objects. It also helps to convert duration strings to Duration objects.","directories":{},"_nodeVersion":"20.9.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_2.0.0_1699714649491_0.5076826085442545","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"3.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@3.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"95f794a85ce46cd431c175954db3e96fdf21b6a8","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-3.0.0.tgz","fileCount":8,"integrity":"sha512-nRRXW9P+Q4/XWFJZnNEfq2FGFA8hAMOb+DN68ck+6QZByCyzW3lk4dB+Y1kTrr8XCOIWrapLWX3GTFm3SSymXQ==","signatures":[{"sig":"MEYCIQCc2vsv1POBrcHIaGlOnFFKL5+/pokKmrgVTTLT76nA/wIhAOFNa8i6XNqFK5TiNIwvA2ouvZNlTvqgwQ7Fn4SOFR/9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18700},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ddfd51225dea744f8d13646f74264b5e17e45020","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"10.2.3","description":"Dates in JSON are usually serialized as strings. This library helps to convert them to Date objects. It also helps to convert duration strings to Duration objects.","directories":{},"_nodeVersion":"20.10.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_3.0.0_1704557929385_0.9054089918679211","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"4.0.1","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@4.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"06fe7f7c4ed485b86132969cf9f93a6bd9655730","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-4.0.1.tgz","fileCount":8,"integrity":"sha512-RgjaE7EjOQ3y/XshDvuc+FuORqpmSpY2giteX9nNYptf+PzvH7+HUDDgFeCm1EFvqoRniDYYTZVGo8y11cMe+w==","signatures":[{"sig":"MEUCIQCD/7h7beb8ivcpniGhJz2wcCP49PLQAF5mWEz9PFNy8QIgB+sns8QndHp7uOjyg4x0BXm0IWUSZjIgsQridBjQ5WE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24424},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"a04bf19e09f1872e8c4c4c0f45bc6d1a737b8157","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"10.5.2","description":"## What problem does this set of libraries solve?","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_4.0.1_1716917844631_0.20215822472103984","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"5.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@5.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"f801b4caee0e4ca0a93b25906a1a4d9c2f06645e","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-5.0.0.tgz","fileCount":8,"integrity":"sha512-NfOSvcXcOIFqfMaegHsPZmUphV6+hS8aIbNdSg5XmHNzcOEFtaEZjBma5qsGr6/V8e70rZhlqEpsoYofHVJQlA==","signatures":[{"sig":"MEYCIQClob2Kzrv6nMufRYp2pVaOAE21yjm9QPd+bM+um/8QVgIhAMkLzknXXT2xTgwiqof3gcMTwbQ0ZTkp2e9ZnESiIvbh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24410},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"ac396ac45c5f37d050e30d30fe47c0a6f7b620df","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"10.9.0","description":"## What problem does this set of libraries solve?","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_5.0.0_1735898919747_0.6813154179252918","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"6.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@6.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"4179e274283c493ab85c7da1efeacdb5c48dbd98","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-6.0.0.tgz","fileCount":8,"integrity":"sha512-DK66jn8WL3B0616DEuxqsEj1QJXml9eYuO5x3gN9xTaI0nQ/betNBeGMDEY111YpPRQsfwaOZmbGkDYnSfLWvA==","signatures":[{"sig":"MEQCIEHwT6f3aUCcg9x/KVfL8ZbKCKI53kftvBqCfOXdlJX/AiAC+aGI9lBgkST1ty44f8KLDXe15e17fCpdHGBq5zEl4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24367},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"55f79fc389d6933a3a9659c77e3f23eb13be379c","_npmUser":{"name":"adasko","actor":{"name":"adasko","type":"user","email":"adaskothebeast@gmail.com"},"email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"10.9.2","description":"## What problem does this set of libraries solve?","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_6.0.0_1750513329031_0.7478928022387661","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"7.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@7.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"4156852d3b7e4adb29ce00d81f485fa0b8ad60b8","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-7.0.0.tgz","fileCount":8,"integrity":"sha512-U96jEdWroRso2jgip7SqKVW5OA7mwOK7QLV28VJMrRFI4MP2LhzIBNG26Aa+OeY+DV8wd4eyDBmbm7R0gxyA2g==","signatures":[{"sig":"MEQCIDf6m+6eW1H0nO+usPEUSkCoHDEzNKA6dlrvwO8PztNlAiBuFIdF6UyoaMvcYPGnjx5NhgDt0gPBsf3DGzOe4PAo4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24367},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"4b1f3945958b60806b57550bbd812ae9fbca679b","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"10.9.3","description":"Working with dates and durations in JSON can be cumbersome and error-prone due to the lack of a standard format for date-time serialization. JSON, by its nature, does not have a specific data type for dates or durations. As a result, dates are usually ser","directories":{},"_nodeVersion":"22.20.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_7.0.0_1760267576851_0.1127553192195676","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"8.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@8.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"cc1479167465f00b121945160206632e92f2086e","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-8.0.0.tgz","fileCount":8,"integrity":"sha512-A6XrjH5eAuJMZizBaYhCJUIm2XpTKZ0c1oy+k1QZJU6yNXihQbvjMF8TCk5tfrVguVgJi1ezSl3msoQgpdFbvQ==","signatures":[{"sig":"MEYCIQDDKL5A0Y+zqriIYFALSgN7zjUyIxqO9ya4y1vgcaksCAIhAJHCfVersrUHvX0JNzIvISP84b6xWwm9jz0FRBufswYe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44532},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","gitHead":"b452bdb4251a869fc28fbf45cb6916616651a876","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.6.2","description":"> **Production-ready, security-hardened date/time conversion for JSON APIs**   > Automatically converts ISO 8601 date strings in JSON responses into native Date objects — deeply, safely, and blazingly fast.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_8.0.0_1763832757047_0.21856511756022834","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"9.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@9.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"95c6ebdeb1a1f1251f0b5c3d502fc800830db80d","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-9.0.0.tgz","fileCount":8,"integrity":"sha512-iWx1PL54V1sISwKStkR2/NJcarQqDr+4VteqJtxgxxui+B0p0pt5ndYXs7qDdlfQOb88ClYCqDaoijLsKixsJA==","signatures":[{"sig":"MEUCIQDi835KnItYNDiL46SdH7CgxGJKsKklCe0vU2a8+BrNMAIgKjtadFKc6iAHMzZIrLBEWP74e5WDCBSIdoy70aspfM4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@9.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44532},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.6.2","description":"> **Production-ready, security-hardened date/time conversion for JSON APIs**   > Automatically converts ISO 8601 date strings in JSON responses into native Date objects — deeply, safely, and blazingly fast.","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_9.0.0_1767539369334_0.7142617204667518","host":"s3://npm-registry-packages-npm-production"}},"9.0.1":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"9.0.1","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@9.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"8f3f56dc2be325c1ea6c2aef669b0d52f1807d38","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-9.0.1.tgz","fileCount":8,"integrity":"sha512-kX/KLqUVwwrBjXfSMCfBJof+92mg5Lzas6/4LX4eDsn+NhUXr1unM2nfbZV6NuIO3V7nWronmxx7ongigR1Ixg==","signatures":[{"sig":"MEUCIQCfjjxwzDX54EcNvGxpJzmCgdvYge/76D5ZYBBxdxCMLgIgC9I85aEOcQiFEd4om23ZsbaiGOV/W3tsQSOfrrm+45c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@9.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44532},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.6.2","description":"> **Production-ready, security-hardened date/time conversion for JSON APIs**   > Automatically converts ISO 8601 date strings in JSON responses into native Date objects — deeply, safely, and blazingly fast.","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_9.0.1_1767539927235_0.053877299584403904","host":"s3://npm-registry-packages-npm-production"}},"9.1.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"9.1.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@9.1.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"8280d6d4ddfc89815dd7aadd5ff2e326886f6cf3","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-9.1.0.tgz","fileCount":8,"integrity":"sha512-eitoxMY+XHWihdTlMjMaGBz2dfzwy6VP23aouzq0ZlLZYzDtD5pswH7KoCnkdH6CkBXZIcHx0fG8JeTRlmovDw==","signatures":[{"sig":"MEUCIQCDt10IpXvB9DYYK8HXpo3sQ1QKPagPtYHPKbGlxmxG6gIgedJaLuF+KvjYQ0ug4ydFqVwCYIccpqLEf2gH8EJH6og=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@9.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44532},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.11.0","description":"> **Production-ready, security-hardened date/time conversion for JSON APIs**   > Automatically converts ISO 8601 date strings in JSON responses into native Date objects — deeply, safely, and blazingly fast.","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_9.1.0_1775284647547_0.15363472703388847","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"10.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@10.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"e9a363fb908cec8ce83873b7f05a78af7f74af09","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-10.0.0.tgz","fileCount":18,"integrity":"sha512-iY/n2XLalKP5otoC++UBtluYFLIUTY/wPxVt4so3g6cQmW84ciuyxo794e9NBV9xIbCx+x3qolE8Ui4v7QZ0Vg==","signatures":[{"sig":"MEUCIGrvQkpjRRy6WR2ZER+Q0bHYe5qNe3R/b/XmwcZGft3zAiEA9IJUcWZDTeu1gruzgLquzJbbkLpuuzlrEnoUf95ZIMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110242},"gitHead":"d939a562c5f5947e98df253b28d384399481063e","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.16.0","description":"**The zero-dependency core of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors): walks a parsed JSON graph and replaces ISO 8601 date strings with native `Date` instances in place.**","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_10.0.0_1785246866580_0.24460064632965905","host":"s3://npm-registry-packages-npm-production"}},"10.0.1":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"10.0.1","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@10.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"f4165747ea820261d7959d06eee086fae3a25571","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-10.0.1.tgz","fileCount":11,"integrity":"sha512-H35g/h2hUMKTlaJzLvQ/sVlQpn/ww+/flpwzk03vgr5qbZX/mKdILzOItcymACv6jZQFeJtJsijyA3PURzIUnw==","signatures":[{"sig":"MEQCIEnY2W02gqeCS/91pW3t5X/49qNAlo3p0zwp5BrH4nt/AiAVl6vjGMItNrCvjW1Xcx3DrgMlAkQ3aYO9sbIiY/P4NA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@10.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18613},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.16.0","description":"**The zero-dependency core of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors): walks a parsed JSON graph and replaces ISO 8601 date strings with native `Date` instances in place.**","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_10.0.1_1785250687759_0.020678721848733206","host":"s3://npm-registry-packages-npm-production"}},"10.0.2":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"10.0.2","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@10.0.2","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"759f18c42be3bc39ee3d1393d137a1cff1b291d2","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-10.0.2.tgz","fileCount":11,"integrity":"sha512-mvQS/V85akYtVZCOLRS0QTe+VsEm8+eHaXfvKHx5Vzur8SJbVbm9o4Z3ccDgM/5xkZouoB/wOs+VGTw2JFR+Uw==","signatures":[{"sig":"MEQCICy5ulwrvV20mHJFR3F5/qM/cpv85TO8skcJBj73kIFkAiANsc2ZroN+2JIoM/Wz9BQXunOsFHgH5FGfRERdKGzzCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@10.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18613},"main":"./src/index.js","type":"commonjs","types":"./src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.16.0","description":"**The zero-dependency core of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors): walks a parsed JSON graph and replaces ISO 8601 date strings with native `Date` instances in place.**","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"peerDependencies":{"tslib":"^2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_10.0.2_1785252314181_0.7457305796141875","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@adaskothebeast/hierarchical-convert-to-date","version":"11.0.0","keywords":["date","iso8601","converter","deserialize","json","typescript"],"author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/hierarchical-convert-to-date@11.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-date#readme","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"8cbac877e3ad80d3c101b5b866d28d146f2ce7a3","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-11.0.0.tgz","fileCount":13,"integrity":"sha512-9KWIvuvlBPsf15JX6ZTrLH7by3gvRIztyyakfwtV22fodAxIgKItiBAe4wtDbai8oTb0INb7N/C7otawBrCM6g==","signatures":[{"sig":"MEUCIDSGRZRq1lStXfxQ3PUmwTY37aHKCC2R+9DK2wfHFvnNAiEAo4O/29JZwys6wrq6slaXCjNExIfVb7IzTIUC6E/1ie0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC1ETkh93tTF/DrFqXh47BFbosxGcbfXuVQo+OKfNZ1HAIhAIUXnW9urumcweLoK8AieFE99/ro/j/YSVaYYmHBmRLO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@11.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20032},"main":"./index.cjs","type":"module","types":"./index.d.ts","module":"./index.esm.js","engines":{"node":">=22.12"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.esm.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"./package.json":"./package.json"},"gitHead":"23dc193eb4d8d834b51de51e1900225a26c143ff","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-date"},"_npmVersion":"11.19.0","description":"Deep, in-place conversion of ISO 8601 date strings in JSON payloads into native JavaScript Date objects.","directories":{},"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"@adaskothebeast/hierarchical-convert-core":"^11.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hierarchical-convert-to-date_11.0.0_1790551388130_0.5868402370467192","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"_id":"@adaskothebeast/hierarchical-convert-to-date@11.0.1","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"a3ae919aa797c56ad73e3be8fd77c51daa78c835","tarball":"https://registry.npmjs.org/@adaskothebeast/hierarchical-convert-to-date/-/hierarchical-convert-to-date-11.0.1.tgz","fileCount":13,"integrity":"sha512-uz4kyrTvIq5w4JEzK2eZZ1m+E+2V7QDdTfflS/xXCTca5YwcykXZCgBBMLNe2J+l0MbbDDe2ptQDoJpH1krOig==","signatures":[{"sig":"MEYCIQCnFEQtUDsT568Sg1K0CHnuzWCqyvHTJTZlDmQNUfrpHwIhALSFmu9NLVF9fXKTr/0Yf0ITHZCydHKKXqq5v2REitMs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDE1COuCo1geFpBrQw2PC4EMKCX4xXZNRfJQ6QCABeLTgIgL/8OtXc4eawWpCGH6imvNtX+e+DEbdcyz4cbo2vnNyY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fhierarchical-convert-to-date@11.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20032},"main":"./index.cjs","name":"@adaskothebeast/hierarchical-convert-to-date","type":"module","types":"./index.d.ts","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"module":"./index.esm.js","engines":{"node":">=22.12"},"exports":{".":{"import":{"types":"./index.d.ts","default":"./index.esm.js"},"require":{"types":"./index.d.cts","default":"./index.cjs"}},"./package.json":"./package.json"},"gitHead":"f9edf319c5e23bf1a17f5ec4eb8dac0008b9fd26","license":"MIT","version":"11.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"3be20041-ae55-49c9-8d4e-5e8dc44affa7"}},"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-date#readme","keywords":["date","iso8601","converter","deserialize","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-date"},"_npmVersion":"11.19.0","description":"Deep, in-place conversion of ISO 8601 date strings in JSON payloads into native JavaScript Date objects.","directories":{},"maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"@adaskothebeast/hierarchical-convert-core":"^11.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hierarchical-convert-to-date_11.0.1_1790750032046_0.5676918489946392"}}},"time":{"created":"2023-07-22T17:11:10.145Z","modified":"2026-09-30T06:33:52.515Z","1.0.0":"2023-07-22T17:11:10.506Z","1.1.0":"2023-07-24T07:37:11.428Z","1.2.0":"2023-08-02T22:36:31.489Z","2.0.0":"2023-11-11T14:57:29.676Z","3.0.0":"2024-01-06T16:18:49.543Z","4.0.1":"2024-05-28T17:37:24.798Z","5.0.0":"2025-01-03T10:08:39.916Z","6.0.0":"2025-06-21T13:42:09.263Z","7.0.0":"2025-10-12T11:12:57.040Z","8.0.0":"2025-11-22T17:32:37.249Z","9.0.0":"2026-01-04T15:09:29.525Z","9.0.1":"2026-01-04T15:18:47.390Z","9.1.0":"2026-04-04T06:37:27.686Z","10.0.0":"2026-07-28T13:54:26.706Z","10.0.1":"2026-07-28T14:58:07.908Z","10.0.2":"2026-07-28T15:25:14.340Z","11.0.0":"2026-09-27T23:23:08.204Z","11.0.1":"2026-09-30T06:33:52.142Z"},"bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/hierarchical-convert-to-date#readme","keywords":["date","iso8601","converter","deserialize","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/hierarchical-convert-to-date"},"description":"Deep, in-place conversion of ISO 8601 date strings in JSON payloads into native JavaScript Date objects.","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"readme":"# 📅 @adaskothebeast/hierarchical-convert-to-date\n\n**The date-library-free member of [date-interceptors](https://github.com/AdaskoTheBeAsT/date-interceptors): walks a parsed JSON graph and replaces ISO 8601 date strings with native `Date` instances in place.**\n\n[![npm](https://img.shields.io/npm/v/%40adaskothebeast%2Fhierarchical-convert-to-date?color=cb3837&logo=npm)](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-date)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n\nThe only runtime dependency is the dependency-free [`@adaskothebeast/hierarchical-convert-core`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-core); no date library, no framework.\n\n---\n\n## 📦 Install\n\n```bash\nnpm i @adaskothebeast/hierarchical-convert-to-date\n```\n\n---\n\n## 🎯 What it does\n\n`JSON.parse` gives you strings where your API meant instants. This package fixes that after the fact: it walks the arrays and plain objects of a parsed payload, recognizes ISO 8601 date-time strings, and assigns a `Date` back into the same slot.\n\n```ts\nconst payload = { createdAt: '2023-07-17T23:06:00.000Z' };\nhierarchicalConvertToDate(payload);\npayload.createdAt instanceof Date; // true\n```\n\nThe traversal is deliberately defensive: own `__proto__`, `constructor` and `prototype` keys are skipped, only arrays and plain objects are entered, cycles terminate, frozen or read-only properties are left alone instead of throwing, and recursion stops past a fixed depth. That makes it safe to point at untrusted response bodies.\n\n`fetchJson` is a thin convenience wrapper: one `fetch` call, status and Problem Details handling, JSON parsing, then the conversion.\n\n---\n\n## 🧰 API\n\n### Conversion\n\n| Symbol                           | Signature                | Notes                                   |\n| -------------------------------- | ------------------------ | --------------------------------------- |\n| `hierarchicalConvertToDate(obj)` | `(obj: unknown) => void` | Mutates `obj` in place; returns nothing |\n\n### Fetch helper\n\n| Symbol                                         | Signature                                                                                                | Notes                                                                          |\n| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |\n| `fetchJson<T>(input, init?, options?)`         | `(input: RequestInfo \\| URL, init?: RequestInit, options?: FetchJsonOptions) => Promise<T \\| undefined>` | Resolves with converted data, or `undefined` for an empty successful response  |\n| `FetchJsonOptions`                             | `{ readonly fetch?: typeof globalThis.fetch }`                                                           | Inject a custom `fetch` (tests, polyfills, instrumented client)                |\n| `FetchJsonError`                               | `class FetchJsonError extends Error`                                                                     | `name: 'FetchJsonError'`, plus readonly `status`, `statusText`, and `response` |\n| `isProblemDetailsError`, `ProblemDetailsError` | Re-exported from core                                                                                    | Narrow and inspect JSON Problem Details failures                               |\n\n`FetchJsonError`'s message reads `HTTP request failed with status 503 Service Unavailable`. The original, unconsumed `Response` is available as `error.response`.\n\n---\n\n## ⚡ Usage\n\nConvert a payload you already have:\n\n```ts\nimport { hierarchicalConvertToDate } from '@adaskothebeast/hierarchical-convert-to-date';\n\ninterface Order {\n  id: string;\n  createdAt: Date;\n  lines: { shippedAt: Date | null }[];\n}\n\nconst raw: unknown = JSON.parse(text);\nhierarchicalConvertToDate(raw);\nconst order = raw as Order;\n```\n\nFetch and convert in one step:\n\n```ts\nimport { FetchJsonError, fetchJson } from '@adaskothebeast/hierarchical-convert-to-date';\n\ntry {\n  const order = await fetchJson<Order>('/api/orders/1');\n  console.log(order?.createdAt.getFullYear());\n} catch (e) {\n  if (e instanceof FetchJsonError) {\n    console.error(e.status, e.statusText);\n  }\n}\n```\n\nInject a `fetch` implementation:\n\n```ts\nawait fetchJson<Order>('/api/orders/1', { method: 'GET' }, { fetch: myInstrumentedFetch });\n```\n\n---\n\n## 🎛️ Recognition rules\n\nThere is nothing to configure. Recognition and traversal are shared with the other converters through `hierarchical-convert-core`; the full rules are in the repository [conversion contract](https://github.com/AdaskoTheBeAsT/date-interceptors/blob/main/docs/conversion-contract.md#heuristic-date-conversion). In short:\n\n- A string converts when it has the shape `YYYY-MM-DDTHH:mm:ss`, an optional fraction of one to nine digits, and an optional `Z` or `±HH:MM` offset.\n- Calendar and clock components are validated first (leap years, days per month, hours below 24, minutes and seconds below 60, offset hours below 24 and offset minutes below 60), so impossible dates never reach `new Date`.\n- Fractions beyond milliseconds are truncated, never rounded into the next second.\n- The root plus 100 nested levels are walked.\n\n---\n\n## 📤 Output examples\n\n| Input                                               | After conversion                                  |\n| --------------------------------------------------- | ------------------------------------------------- |\n| `{ date: '2023-07-17T23:06:00.000Z' }`              | `{ date: Date('2023-07-17T23:06:00.000Z') }`      |\n| `{ date: '2023-07-17T23:06:00.000+01:00' }`         | `{ date: Date('2023-07-17T23:06:00.000+01:00') }` |\n| `{ date: '2023-07-17T23:06:00' }`                   | `{ date: Date(...) }` in the local timezone       |\n| `{ nested: { date: '2023-07-17T23:06:00.000Z' } }`  | `{ nested: { date: Date(...) } }`                 |\n| `['2023-07-17T23:06:00.000Z']`                      | `[Date(...)]`                                     |\n| `{ text: 'adam', number: 42, flag: true, n: null }` | untouched                                         |\n| `{ d: '2023/07/17 23:06:00' }`                      | untouched (wrong format)                          |\n| `{ d: '2023-02-30T00:00:00Z' }`                     | untouched (impossible calendar date)              |\n| `{ d: '2023-07-17' }`                               | untouched (date-only)                             |\n\n```text\n// fetchJson\n200 + body                   -> resolved value with Date instances in place of ISO strings\n204, 205, or empty body      -> resolves to undefined\n503                          -> rejects with FetchJsonError { status: 503, statusText: 'Service Unavailable' }\napplication/problem+json     -> rejects with a FetchJsonError recognised by isProblemDetailsError, even for HTTP 200\n```\n\n---\n\n## ⚠️ Edge cases\n\n- **Mutation in place.** The function returns `void` and rewrites your object. Clone first (`structuredClone`) if the caller needs the original strings.\n- **Only arrays and plain objects are entered (11.0.0).** Class instances, `Map`, `Set`, `Date`, Buffers and typed arrays are left untouched, so running the converter twice is a no-op. Before 11.0.0 every non-null object was entered.\n- **Prototype pollution is blocked.** Own `__proto__`, `constructor` and `prototype` keys are skipped entirely and never entered.\n- **Cycles are safe.** Shared references and cycles are visited once.\n- **Frozen or read-only values stay strings.** Frozen objects, non-writable properties, and getter-only properties are skipped rather than throwing mid-walk.\n- **Past depth 100 nothing changes.** Deeper values stay strings; no error, no warning.\n- **Invalid dates stay strings.** You never get an `Invalid Date` object out of this package.\n- **Offset-less values are local time**, because that is what `new Date('2023-07-17T23:06:00')` does. Values with `Z` or an explicit offset are exact instants.\n- **Date-only strings are never touched**, which avoids the classic \"plain date silently became midnight UTC\" bug.\n- **Durations are not handled.** `P1Y2M3D` stays a string; use the `-date-fns`, `-dayjs`, `-luxon`, `-moment` or `-temporal` packages if your payload carries ISO durations.\n- `hierarchicalConvertToDate` on a primitive, `null` or `undefined` is a no-op, so it is safe to call on any `unknown`.\n- **`fetchJson` never converts problem responses.** Non-`ok` responses reject with `FetchJsonError` before the body is read; nonempty bodies must contain valid JSON or the call rejects with `SyntaxError`.\n\n---\n\n## 🔗 Related packages\n\n- Same traversal, other date libraries: [`-date-fns`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-date-fns), [`-dayjs`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-dayjs), [`-luxon`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-luxon), [`-moment`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-moment), [`-js-joda`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-js-joda), [`-temporal`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-temporal)\n- Other value kinds: [`-decimal`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-decimal), [`-uuid`](https://www.npmjs.com/package/@adaskothebeast/hierarchical-convert-to-uuid)\n- Transports: [`angular-date-http-interceptor`](https://www.npmjs.com/package/@adaskothebeast/angular-date-http-interceptor), [`axios-interceptor`](https://www.npmjs.com/package/@adaskothebeast/axios-interceptor), [`react-redux-toolkit-hierarchical-date-hook`](https://www.npmjs.com/package/@adaskothebeast/react-redux-toolkit-hierarchical-date-hook)\n- Schema-driven alternative: [`typewriter-schema`](https://www.npmjs.com/package/@adaskothebeast/typewriter-schema), [`typewriter-runtime`](https://www.npmjs.com/package/@adaskothebeast/typewriter-runtime)\n\nFull matrix and recipes: [main README](https://github.com/AdaskoTheBeAsT/date-interceptors#readme).\n\n---\n\n## 📄 License\n\n[MIT](./LICENSE) © Adam Pluciński\n\nJSON Problem Details (`application/problem+json`) bypass success conversion, including HTTP 200 responses. Use the exported `isProblemDetailsError(error)` guard to read `httpStatus`, typed `problem` members, and the original decoded `body`. Extension members such as `errors` and `traceId` are preserved. See the repository [conversion contract](https://github.com/AdaskoTheBeAsT/date-interceptors/blob/main/docs/conversion-contract.md#json-problem-details) for transport-specific behavior.\n","readmeFilename":"README.md"}