{"_id":"@adaskothebeast/angular-typed-http-client","_rev":"13-7716157955de0fa862b98a153aaf14c9","name":"@adaskothebeast/angular-typed-http-client","dist-tags":{"latest":"11.0.1"},"versions":{"4.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"4.0.0","_id":"@adaskothebeast/angular-typed-http-client@4.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"b1f35c1f66e4145f9067630266fb9487fe33d099","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-4.0.0.tgz","fileCount":16,"integrity":"sha512-BBW1+XMAp2zge7Lb2EU0C6EuR5yshuR4QWTxFzxEz5qTtY0KRyIB1FoeLgEUvbndkGOwjrZk0dW6TZise2XIgA==","signatures":[{"sig":"MEYCIQChvVmsK+z1TrFrreGo3jX9PYdFEjVPVx2Xj9QNAKuCeQIhAPV1pWuxxn8CJ5fbdd/YaNuLFUAH52x9l7dW8ECoxT47","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78039},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"esm":"./esm2022/adaskothebeast-angular-typed-http-client.mjs","types":"./index.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs","esm2022":"./esm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"6b89c7f372480dd74104e1189d966a4dcad092b2","typings":"index.d.ts","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.5.2","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":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^18.0.0","@angular/common":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_4.0.0_1716916818784_0.6904341447587978","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"@adaskothebeast/angular-typed-http-client","version":"4.0.1","_id":"@adaskothebeast/angular-typed-http-client@4.0.1","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"fb3df49196275fb7405739f13c9b10dcd0999ec0","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-4.0.1.tgz","fileCount":16,"integrity":"sha512-qFm4nhHEdEuf9hAquk9ckaKoQEuR4BivS1GMJPBK6SJxxP2GMx3iZRWaVzOHibeeRI6J9KUo71XibbmOKqkF2g==","signatures":[{"sig":"MEYCIQDiSfsz5lJMC3pZQcc0xz9aQkfbZ71pjlpamGo/Ce2eEQIhAPo9XN4bTwCSY8N4JSrO3/yo8KfkF5WxHovK7Y7OGZYp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":76463},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"esm":"./esm2022/adaskothebeast-angular-typed-http-client.mjs","types":"./index.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs","esm2022":"./esm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a04bf19e09f1872e8c4c4c0f45bc6d1a737b8157","typings":"index.d.ts","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.5.2","description":"## What problem does this set of libraries solve?","directories":{},"sideEffects":false,"_nodeVersion":"20.13.1","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^18.0.0","@angular/common":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_4.0.1_1716917482008_0.8987012522537277","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"5.0.0","_id":"@adaskothebeast/angular-typed-http-client@5.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"891f58592a6dfe8ecca85a953100ff104a61fc9f","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-5.0.0.tgz","fileCount":10,"integrity":"sha512-7jNkHpjwCZmjgYgscGnx74vlPywcIcpFkmJW3b+hsDGBwwjv1TuARLjFOP2v0Gmw+dpqrN1wirA99JmVSkNNbw==","signatures":[{"sig":"MEUCIHFB6GVY8mRdRWuYbvTx8Nx7BFK+2584L4+SQGzV+T14AiEA6I2gfVsExbzl9Mjpt5VOPnmDgP3eBXJa1jfH8ygQXJ8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47763},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ac396ac45c5f37d050e30d30fe47c0a6f7b620df","typings":"index.d.ts","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.0","description":"## What problem does this set of libraries solve?","directories":{},"sideEffects":false,"_nodeVersion":"22.11.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.1","@angular/core":"^19.0.5","@angular/common":"^19.0.5","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_5.0.0_1735898556671_0.6817349152433481","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"6.0.0","_id":"@adaskothebeast/angular-typed-http-client@6.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"afcf96fca6c5b3db2fe90d291afa00ff77184313","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-6.0.0.tgz","fileCount":6,"integrity":"sha512-8h3vcojz2NThIz+0Eb2dv6b+xA3CI3YvKElp2/sx/6nMeaLoH34PnnAv13FANUCDZ4+zth6Av1F3QwgkROTYHg==","signatures":[{"sig":"MEUCIQCvVnAr3TFv0vyUnWEfTatFY/PRjpL+lv4sBQWU6a/LQwIgBfuCyKazEzPHwtRNbkYSzXAW0RNngXSbZEUDzoAxkRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71502},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"55f79fc389d6933a3a9659c77e3f23eb13be379c","typings":"index.d.ts","_npmUser":{"name":"adasko","actor":{"name":"adasko","type":"user","email":"adaskothebeast@gmail.com"},"email":"adaskothebeast@gmail.com"},"_npmVersion":"10.9.2","description":"## What problem does this set of libraries solve?","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^20.0.3","@angular/common":"^20.0.3","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_6.0.0_1750512966972_0.552446673310732","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"7.0.0","_id":"@adaskothebeast/angular-typed-http-client@7.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"86579251e0440516c811c8f14e4da15c6f2d1c49","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-7.0.0.tgz","fileCount":6,"integrity":"sha512-cxp1TLjDNDywJhETWUO0lwYu46sZaJsVwz/iCLYPTUaFMgk8/ntmSTnw2RMUwbRvJLR3o2ciSV7FNxgMaG3MvQ==","signatures":[{"sig":"MEQCIHSMvqsrrf8A6A22DoyNE7G/b130z2esfpqrH5l5qt+9AiAVBb7XaczF9qtkFXGUw+SD+aK1vZ40f+d4BzeiHYJF+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76189},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./index.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"4b1f3945958b60806b57550bbd812ae9fbca679b","typings":"index.d.ts","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_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":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^20.3.4","@angular/common":"^20.3.4","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_7.0.0_1760267214093_0.16441825473320382","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"8.0.0","_id":"@adaskothebeast/angular-typed-http-client@8.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"dist":{"shasum":"a34ddaf8943a14f1d7136a43db70723b52b2b200","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-8.0.0.tgz","fileCount":6,"integrity":"sha512-I12WT/jF9Lp/Rp4cH1oGX5m0h0ZgOea1fxpXubgHb4ofMaV+BB0PZRpTRvPsgQDKg0x7fSDmfDey9H4kWopR0A==","signatures":[{"sig":"MEYCIQCOLg1hWZO4zg96usxPiCSwF5zeJG7klv4PcrRszukyVQIhAIZGnQyD9/6k1BSNjPWDoveGuuZ+TojcGHrH4bCNbcRJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69307},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b452bdb4251a869fc28fbf45cb6916616651a876","typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"adasko","email":"adaskothebeast@gmail.com"},"_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":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"20.3.13","@angular/common":"20.3.13","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_8.0.0_1763832394835_0.04581503985891411","host":"s3://npm-registry-packages-npm-production"}},"9.0.1":{"name":"@adaskothebeast/angular-typed-http-client","version":"9.0.1","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@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":"5ce3e1b803d7d9f8ffe080053817dc545bc12974","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-9.0.1.tgz","fileCount":6,"integrity":"sha512-5w9mpQRfcDu2zvt0Lpoo85mqNLk+j4jKbFXjuht1cH4tW5TZ1UEeluKNwYdfYuAx8DVaFcal86uE5t/5bj5nOQ==","signatures":[{"sig":"MEYCIQDnx1nw+m9M+2KJg3FA+/fZym+2ckEvY/ViC0ezPOizOQIhAItJv+QA6TFoUgGPj1QBvDo46AuG+IEe45b+LAcDEMQZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@9.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69679},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"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":{},"sideEffects":false,"_nodeVersion":"24.12.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"21.0.6","@angular/common":"21.0.6","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_9.0.1_1767539926134_0.44657875009711656","host":"s3://npm-registry-packages-npm-production"}},"9.1.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"9.1.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@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":"2b5c04760d5cb7d9013c58d59f4609e58d0f2608","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-9.1.0.tgz","fileCount":6,"integrity":"sha512-mR5KE8of9trEzldr+PFV9vAKZejz/W0jhlNQL0XlujABxJPCeLT0lKYhHHzubzC4bHe6EAP6XbDFpxH1Q3aoMA==","signatures":[{"sig":"MEYCIQCXCXQ8TGs30clMy5lDZYrOvFmIsa3GV7lehT7m952v4QIhAKjxTNCy2Y5l2b0VO9kJdLUMC5bppXaItNeq8ES1x4kS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@9.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69701},"type":"module","module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"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":{},"sideEffects":false,"_nodeVersion":"24.14.1","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^21.1.7","@angular/common":"^21.2.7","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_9.1.0_1775284649804_0.29848149360048315","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"10.0.0","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@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":"74f34732b0c46b7c8df96c573168266ed5afc423","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-10.0.0.tgz","fileCount":29,"integrity":"sha512-r4wE8CmfUwPA7lrxWsk6SmukKzerlEi1Qp+huU+9UV58VZvtGPUguZcDb1str2PjKSnEtweW83YPC8QInQkyrA==","signatures":[{"sig":"MEQCIAF/6kQiOeAT2WjV3m+MNHLZ0XQ6diUn79m+4XJ/EKV2AiAltnxZ3pkAMo7yfNZURejWZlwYY2FyErW+1kleAyfjqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118898},"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":"`@adaskothebeast/angular-typed-http-client` adds class-aware request serialization and response hydration to Angular `HttpClient`, using `class-transformer`. `TypedHttpClient` is a small wrapper that accepts the response class explicitly, so responses can","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^22.0.8","@angular/common":"^22.0.8","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_10.0.0_1785246839699_0.4790332018671095","host":"s3://npm-registry-packages-npm-production"}},"10.0.1":{"name":"@adaskothebeast/angular-typed-http-client","version":"10.0.1","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@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":"a743bf8ff3dbfcbddb632382bf45e495e822e98b","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-10.0.1.tgz","fileCount":6,"integrity":"sha512-QDJvihf2mqKhcM5TT5vytJDi4x9DpaYAlrtW4+7gI+oGPyz42E2a6LVeS7bbC9S+YczXKP14Y0Ic9VlEKjbLYQ==","signatures":[{"sig":"MEUCIQDEkuoDxD8FgLMzjIgLpBNn1kuUXb2RVahbKL19VJxeGAIgDRspIk+S9NI83FSwvqKI0JeEKP2na9blpg5+54ueYds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@10.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33540},"type":"module","module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.16.0","description":"`@adaskothebeast/angular-typed-http-client` adds class-aware request serialization and response hydration to Angular `HttpClient`, using `class-transformer`. `TypedHttpClient` is a small wrapper that accepts the response class explicitly, so responses can","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^22.0.8","@angular/common":"^22.0.8","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_10.0.1_1785250684499_0.7366443051419107","host":"s3://npm-registry-packages-npm-production"}},"10.0.2":{"name":"@adaskothebeast/angular-typed-http-client","version":"10.0.2","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@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":"b956cb2ca36260ee6650848028c0a1cf67f547fc","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-10.0.2.tgz","fileCount":6,"integrity":"sha512-XkKQB8LZhD3qoBwkh4qt7zYP7PH6unb//uC8Cx75uwQGeyty+xQSTLIs5ZbXhuBRf1wATXpVrgzSsmfCWSG7YQ==","signatures":[{"sig":"MEUCIQDYUblB9NnCc3NNQxeVDLOq0glMPpw8U3WFGCNt4L2XkQIgd5zSXL0YqriszfKLbgKQKfkuquXvb56tblFYB/h8MTo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@10.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":33540},"type":"module","module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git"},"_npmVersion":"11.16.0","description":"`@adaskothebeast/angular-typed-http-client` adds class-aware request serialization and response hydration to Angular `HttpClient`, using `class-transformer`. `TypedHttpClient` is a small wrapper that accepts the response class explicitly, so responses can","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"~7.8.2","@angular/core":"^22.0.8","@angular/common":"^22.0.8","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_10.0.2_1785252308923_0.26520011710821767","host":"s3://npm-registry-packages-npm-production"}},"11.0.0":{"name":"@adaskothebeast/angular-typed-http-client","version":"11.0.0","keywords":["angular","httpclient","class-transformer","hydration","date","json","typescript"],"author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"license":"MIT","_id":"@adaskothebeast/angular-typed-http-client@11.0.0","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/angular-typed-http-client#readme","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"4cf9409aaa9f0b7f3c4721e7b86f1ca9c734f4ea","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-11.0.0.tgz","fileCount":6,"integrity":"sha512-CVTm4aXPfpggEvtiAlKjzzC7zcWEQn0vJRMDf/woccrAos64qVzdWleQy3H4FLSQZ1qBXd+JkwCsC34u5IJ/+A==","signatures":[{"sig":"MEUCIQDNSUuXMaX9DnLF6+G1EKsP0mpmpXvhfM6P4R/mHRH0GgIgPnl1UOeNZoK1sObYdt6cefX85TxSZWCBtnIWaSmXHPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDQwM82MlE+YupQYy5CzyiRKYUgB5kwLVEBGVnSDAUdrAiEAuCN2J6HtjCPUc6d4itQ1M7HuaP1/uJf9Cbr70ahIsUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@11.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42043},"type":"module","module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","engines":{"node":"^22.22.3 || ^24.15.0 || >=26.0.0"},"exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"23dc193eb4d8d834b51de51e1900225a26c143ff","typings":"types/adaskothebeast-angular-typed-http-client.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/angular-typed-http-client"},"_npmVersion":"11.19.0","description":"Angular HttpClient wrapper that serializes requests and hydrates JSON responses into class instances with class-transformer.","directories":{},"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"tslib":"^2.3.0","@adaskothebeast/hierarchical-convert-core":"^11.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.0","@angular/core":"^22.0.0","@angular/common":"^22.0.0","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"tmp":"tmp/angular-typed-http-client_11.0.0_1790551319836_0.3043077924250921","host":"s3://npm-registry-packages-npm-production"}},"11.0.1":{"_id":"@adaskothebeast/angular-typed-http-client@11.0.1","bugs":{"url":"https://github.com/AdaskoTheBeAsT/date-interceptors/issues"},"dist":{"shasum":"ce30d5b8a0f9560d0fd5a55814449d7bc34efb64","tarball":"https://registry.npmjs.org/@adaskothebeast/angular-typed-http-client/-/angular-typed-http-client-11.0.1.tgz","fileCount":6,"integrity":"sha512-itVPYFo4VF0amfKy5n8vznTrsSEkplOmCyPCw+PdpMh2ZPSQZeiyhh3XK8NdGYoqNegDd9b/nIKoQIUQsE99wQ==","signatures":[{"sig":"MEQCIF9laxFhUhG6uRR+Yi+WB+2ilS4JoyCbJidnyL3XQcACAiBI+VRKl96JJiCkZlqgThDf3OOcHEdMLjqmj67XeRCT4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGt6M3mASE9WZ+GpKJRmPlsJEvnk2qjDiPYi2mBh1xoUAiEA6tIwiSgH4T66TrHZU5wvkkdoKAj1UNBoQo/2HO0dDaE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@adaskothebeast%2fangular-typed-http-client@11.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42043},"name":"@adaskothebeast/angular-typed-http-client","type":"module","author":{"url":"https://github.com/adaskothebeast","name":"Adam Pluciński","email":"adaskothebeast@gmail.com"},"module":"fesm2022/adaskothebeast-angular-typed-http-client.mjs","engines":{"node":"^22.22.3 || ^24.15.0 || >=26.0.0"},"exports":{".":{"types":"./types/adaskothebeast-angular-typed-http-client.d.ts","default":"./fesm2022/adaskothebeast-angular-typed-http-client.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"f9edf319c5e23bf1a17f5ec4eb8dac0008b9fd26","license":"MIT","typings":"types/adaskothebeast-angular-typed-http-client.d.ts","version":"11.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"c762c1b9-09ad-4947-a5c5-07f97dd2b840"}},"homepage":"https://github.com/AdaskoTheBeAsT/date-interceptors/tree/main/libs/angular-typed-http-client#readme","keywords":["angular","httpclient","class-transformer","hydration","date","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/angular-typed-http-client"},"_npmVersion":"11.19.0","description":"Angular HttpClient wrapper that serializes requests and hydrates JSON responses into class instances with class-transformer.","directories":{},"maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.10.0","dependencies":{"tslib":"^2.3.0","@adaskothebeast/hierarchical-convert-core":"^11.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.0","@angular/core":"^22.0.0","@angular/common":"^22.0.0","class-transformer":"^0.5.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/angular-typed-http-client_11.0.1_1790749955109_0.4386907740478885"}}},"time":{"created":"2024-05-28T17:20:18.698Z","modified":"2026-09-30T06:32:35.523Z","4.0.0":"2024-05-28T17:20:18.954Z","4.0.1":"2024-05-28T17:31:22.193Z","5.0.0":"2025-01-03T10:02:36.842Z","6.0.0":"2025-06-21T13:36:07.135Z","7.0.0":"2025-10-12T11:06:54.265Z","8.0.0":"2025-11-22T17:26:35.059Z","9.0.1":"2026-01-04T15:18:46.278Z","9.1.0":"2026-04-04T06:37:29.951Z","10.0.0":"2026-07-28T13:53:59.838Z","10.0.1":"2026-07-28T14:58:04.642Z","10.0.2":"2026-07-28T15:25:09.054Z","11.0.0":"2026-09-27T23:21:59.918Z","11.0.1":"2026-09-30T06:32:35.195Z"},"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/angular-typed-http-client#readme","keywords":["angular","httpclient","class-transformer","hydration","date","json","typescript"],"repository":{"url":"git+https://github.com/AdaskoTheBeAsT/date-interceptors.git","type":"git","directory":"libs/angular-typed-http-client"},"description":"Angular HttpClient wrapper that serializes requests and hydrates JSON responses into class instances with class-transformer.","maintainers":[{"name":"adasko","email":"adaskothebeast@gmail.com"}],"readme":"# 🅰️ Angular Typed HTTP Client\n\n`@adaskothebeast/angular-typed-http-client` adds class-aware request serialization and response hydration to Angular `HttpClient`, using `class-transformer`. `TypedHttpClient` is a small wrapper that accepts the response class explicitly, so responses can be returned as class instances rather than plain JSON objects.\n\n## 📦 Install\n\n```bash\nnpm install @adaskothebeast/angular-typed-http-client class-transformer reflect-metadata\n```\n\n`reflect-metadata` is required whenever your models use `@Type` (for nested classes and dates): `class-transformer` reads decorator metadata through the `Reflect` API. Import it once, before any model class is loaded, for example at the top of `main.ts`:\n\n```ts\nimport 'reflect-metadata';\n```\n\n## ⚙️ Configure Angular\n\nAdd the `withTypedHttpClient()` feature to your own `provideHttpClient` call. It registers the serialization and hydration interceptors as functional interceptors and leaves the backend choice (`withFetch()`, XHR), SSR, and the transfer cache to your application.\n\n```ts\nimport { withTypedHttpClient } from '@adaskothebeast/angular-typed-http-client';\nimport { provideHttpClient, withFetch } from '@angular/common/http';\n\nexport const appConfig = {\n  providers: [provideHttpClient(withFetch(), withTypedHttpClient())],\n};\n```\n\nThe class-based interceptors (`ClassTransformerSerializeInterceptor`, `ClassTransformerHttpInterceptor`) remain available for applications that register interceptors through `HTTP_INTERCEPTORS` and `withInterceptorsFromDi()`. Their functional counterparts are exported as `classTransformerSerializeInterceptorFn` and `classTransformerHttpInterceptorFn`.\n\n> ⚠️ **Deprecated:** `provideTypedHttpClient()` and `TypedHttpClientModule` still work, but they call `provideHttpClient(withXhr(), withInterceptorsFromDi())` themselves. That forces the XHR backend (disabling `withFetch()`) and duplicates the application's own `provideHttpClient`. Replace them with `provideHttpClient(..., withTypedHttpClient())`.\n\n### Combining with the date interceptor\n\nIf you also use `@adaskothebeast/angular-date-http-interceptor`, list `withTypedHttpClient()` **before** the date interceptor:\n\n```ts\nprovideHttpClient(withFetch(), withTypedHttpClient(), withHierarchicalDateHttpInterceptor(hierarchicalConvertToDate));\n```\n\nAngular passes responses through interceptors in reverse registration order, so the date interceptor then converts the plain JSON first and `class-transformer` hydrates the converted values. In the opposite order, the date interceptor's `structuredClone` receives the hydrated class instances and turns them back into plain objects. The same rule applies to `HTTP_INTERCEPTORS` registrations: register `ClassTransformerHttpInterceptor` before `HierarchicalDateHttpInterceptor`.\n\n## 🧬 Request typed responses\n\nPass the model constructor as the second argument. The response interceptor calls `plainToInstance` with that constructor; the body-only methods return the instance, while the `*Response` methods return the full `HttpResponse`.\n\n```ts\nimport { TypedHttpClient } from '@adaskothebeast/angular-typed-http-client';\nimport { Expose, Type } from 'class-transformer';\n\nclass Customer {\n  @Expose()\n  name!: string;\n\n  @Type(() => Date)\n  createdAt!: Date;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CustomersApi {\n  private readonly http = inject(TypedHttpClient);\n\n  getCustomer(id: string) {\n    return this.http.get(`/api/customers/${id}`, Customer);\n  }\n\n  listCustomers() {\n    // Observable<Customer[]>; every element is a Customer instance.\n    return this.http.getArray('/api/customers', Customer);\n  }\n}\n```\n\n`get`, `post`, `put`, `patch`, and `delete` return the transformed body. Their `getResponse`, `postResponse`, `putResponse`, `patchResponse`, and `deleteResponse` counterparts return `HttpResponse<T>` when status and headers are needed.\n\nFor endpoints that return a JSON array, use `getArray` (or `getArrayResponse`), which are typed as `Observable<T[]>` and `Observable<HttpResponse<T[]>>`. `get` is typed for a single object; `plainToInstance` still hydrates array bodies, but `get` would report them as `T`.\n\n## 📤 Serialize request instances\n\nRequests made through `TypedHttpClient` serialize non-GET, non-native bodies with `instanceToPlain` by default. This honors your `class-transformer` decorators and adds `Content-Type: application/json; charset=utf-8` when the request did not specify a content type.\n\nDecorators only apply to class instances. Create the request body as an instance, for example with `plainToInstance`; an object literal would be sent unchanged.\n\n```ts\nimport { Expose, plainToInstance } from 'class-transformer';\n\nclass CreateCustomer {\n  @Expose({ name: 'display_name' })\n  displayName!: string;\n}\n\nconst body = plainToInstance(CreateCustomer, { displayName: 'Ada' });\n// Sends {\"display_name\":\"Ada\"}\nthis.http.post('/api/customers', body, Customer);\n```\n\nUse the `serialize` request option to turn this off or supply `class-transformer` options:\n\n```ts\nthis.http.post('/api/customers', body, Customer, { serialize: false });\nthis.http.post('/api/customers', body, Customer, {\n  serialize: { strategy: 'excludeAll' },\n});\n```\n\n> 💡 Strings, `FormData`, `Blob`, `ArrayBuffer`, typed arrays and `DataView`s, `URLSearchParams`, and `ReadableStream` bodies are passed through without serialization or a `Content-Type` change.\n\n## Explicit runtime validation\n\nHydration creates class instances. It does not check field types or execute\nvalidation decorators. For application rules, install the optional\n`class-validator` package and call `validateOrReject` explicitly:\n\n```bash\nnpm install class-validator\n```\n\n```ts\nimport { TypedHttpClient } from '@adaskothebeast/angular-typed-http-client';\nimport { IsEmail, validateOrReject } from 'class-validator';\nimport { mergeMap } from 'rxjs';\n\nclass User {\n  @IsEmail()\n  email!: string;\n}\n\nexport function getValidatedUser(client: TypedHttpClient) {\n  return client.get('/user', User).pipe(\n    mergeMap(async (user) => {\n      await validateOrReject(user);\n      return user;\n    }),\n  );\n}\n```\n\nAn invalid email now reaches the observable's error channel. Without the explicit\ncall, it remains on the hydrated instance. Validate request instances before\ncalling `post`/`put` when the same rules should apply to outgoing data. This flow\nis exercised by `validation-example.spec.ts`; `class-validator` is a development\ndependency here, not a required dependency of the published client.\n\n## Problem Details\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"}