{"_id":"@bjornharrtell/json-api","_rev":"30-4f46fc0458b5e2915ab542709d106d71","name":"@bjornharrtell/json-api","dist-tags":{"latest":"7.0.0"},"versions":{"0.1.0":{"name":"@bjornharrtell/json-api","version":"0.1.0","_id":"@bjornharrtell/json-api@0.1.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"b55f997ca9156e4caa647a442ed178563607450b","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-0.1.0.tgz","fileCount":40,"integrity":"sha512-1h9o4pTKO0V9Iur99eBSRPt/+z8Z33RUSYAd7n6zznwxg86sBNXY6pdN5oRCzSSZn1bUvSr2Mxb5XWPGYYvlHg==","signatures":[{"sig":"MEQCIAIBriT+6ZOII2G649ZP7/XNjfgsoVvvzF4uyQVcRhQgAiBHzQi6OBlturog1D+pPCFMDPhnBqtIfb2mcgKB19D+Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507426},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"gitHead":"5caced8da94b85ce812a74229bd9983f2b762af5","scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.5.0","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"20.12.2","dependencies":{"ky":"^1.7.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.3","vitest":"^3.0.9","typedoc":"^0.28.1","typescript":"~5.8.2","@types/node":"^22.13.13","@types/jsdom":"^21.1.7","@vue/tsconfig":"^0.7.0","@biomejs/biome":"1.9.4","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_0.1.0_1744306382621_0.6298266124660201","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bjornharrtell/json-api","version":"0.2.0","_id":"@bjornharrtell/json-api@0.2.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"323060d7ba20ad4e3ae6136bd0c2dacb9b10b849","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-0.2.0.tgz","fileCount":40,"integrity":"sha512-5YUah2p2QXKT4L3kNJVT0vLbMZBh+YBNgBFhEIy/qoZ3jyfs2OBDHhp+5y8hYF1rpEAtAA6itZJ3jxO8qSn2ZA==","signatures":[{"sig":"MEUCIGlSPpz5ppfPNwzdX4bUlaUWBjLjxArnB8CBYCz+TCorAiEAri6Dr1GoffDlarlEpAgweZ6D4wLrTptzNmcva9sg8FU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509560},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"gitHead":"a52dac59057246924ef5b822182513f3a1f3ed79","scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.5.0","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"20.12.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.3","vitest":"^3.0.9","typedoc":"^0.28.1","typescript":"~5.8.2","@types/node":"^22.13.13","@types/jsdom":"^21.1.7","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_0.2.0_1744720666870_0.7309897625162238","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bjornharrtell/json-api","version":"0.2.1","license":"MIT","_id":"@bjornharrtell/json-api@0.2.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"dist":{"shasum":"953d0de630b052fcd001015db7c54860fbd24bff","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-0.2.1.tgz","fileCount":51,"integrity":"sha512-pSUrJRJGhISSP8Et4Xb6LR0gmpE968iu0kQHjXF/MlTk6mumIjY86Q1tNYhOt60rtCbOULlol+33zeJKhPvmiQ==","signatures":[{"sig":"MEUCIF2qwpD7SAAorO4v8vE5BDLhAq6YC9ZckyxHRXm7JsXPAiEAmB78FlgGtuw5lhY5P1h7FNeWtjhN3VFBg7M51vIjU7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509611},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Björn Harrtell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.3","vitest":"^3.0.9","typedoc":"^0.28.1","typescript":"~5.8.2","@types/node":"^22.13.13","@types/jsdom":"^21.1.7","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_0.2.1_1744792169522_0.7282060102217345","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bjornharrtell/json-api","version":"1.0.0","license":"MIT","_id":"@bjornharrtell/json-api@1.0.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"dist":{"shasum":"6f5328969f857eb65796f8a444086c618f465645","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-1.0.0.tgz","fileCount":51,"integrity":"sha512-aPfHBb2SZ/Tvsge7eemhSGmh1ilJevGHnZNKcXe9mVD+Vpg4QxCnCYyfscVZEd0UXi5Xp1dZFg+s/8YFg1jPPg==","signatures":[{"sig":"MEUCID1WLf6velrZgP8ttk1tt1jQxCWrjTwaW+1AAKIWpJrkAiEA+i2WQ/6TOHkqMAJrEhI17TV30oVjbzZ5k8IKtgaiYlk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509610},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Björn Harrtell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.2","vitest":"^3.1.2","typedoc":"^0.28.3","typescript":"~5.8.3","@types/node":"^22.14.1","@types/jsdom":"^21.1.7","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_1.0.0_1745330075563_0.8625619356733669","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bjornharrtell/json-api","version":"1.0.1","license":"MIT","_id":"@bjornharrtell/json-api@1.0.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"dist":{"shasum":"31629975b85994db5e313e654b5369934ce1bf39","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-1.0.1.tgz","fileCount":51,"integrity":"sha512-lAA8Xzd31UVU00xfVODUVKAJI4J/WCt4GUOlns3dpLJH12+w82myHhnjNo65twdgzPSqM5aGRZc7FoiGH6F39w==","signatures":[{"sig":"MEQCIH7EN8ax78z6V4tbfiUAR5cX/Y/o/yGZhUuip2O00ZgSAiBPOdLUYM4cqYuiDOfNKF1RA9H49qr68ZkgapmFZcJhnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510924},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Björn Harrtell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.2","vitest":"^3.1.2","typedoc":"^0.28.3","typescript":"~5.8.3","@types/node":"^22.14.1","@types/jsdom":"^21.1.7","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_1.0.1_1745341822092_0.6327105257128138","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bjornharrtell/json-api","version":"1.0.2","license":"MIT","_id":"@bjornharrtell/json-api@1.0.2","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"dist":{"shasum":"5f7800b98bb2f209913363b60e761622a1c3bf74","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-1.0.2.tgz","fileCount":51,"integrity":"sha512-2Q6T8upKJbzFTpd9ySPIdPC4PdfQ29CP1obusTnGuU0otMQzh9hvUrGpWD/T1l/+KEgiizSn7ePt2yHP7atlwQ==","signatures":[{"sig":"MEYCIQDDr1Sg9vC4u+d4WrAgxsAKQz6EyuvJ6EopGZIcIRP5QwIhAI8aCMwyrL9aP18X30aQZPFKeve1paQf1V0yTxcJTeBy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510924},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"vue-tsc --build"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Björn Harrtell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.3","vitest":"^3.1.2","typedoc":"^0.28.3","typescript":"~5.8.3","@types/node":"^22.15.2","@types/jsdom":"^21.1.7","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.3","@tsconfig/node22":"^22.0.1"},"_npmOperationalInternal":{"tmp":"tmp/json-api_1.0.2_1745742514448_0.4722821752661961","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bjornharrtell/json-api","version":"1.0.3","license":"MIT","_id":"@bjornharrtell/json-api@1.0.3","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"dist":{"shasum":"6fa52719ded1f9ee1e4c6074adfff6d0e1ced53b","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-1.0.3.tgz","fileCount":51,"integrity":"sha512-nIuSDaWCV5SUg+dKe8QYjq3NGLEpoHQAJpoOB+gAxgMAQGe15qxPvS4sRHfXqw8MIrAJbVG86ofhS6QAqxBPGA==","signatures":[{"sig":"MEYCIQCP40fNlHqfVYVCTlo9i0bBZL6Cj8OyzQezhBwPvXhOLQIhAMra//JTu5Fltm+IxZ41ZoQeZA6wON4K1IKL96PQlO9+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511357},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2025 Björn Harrtell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^3.1.4","typedoc":"^0.28.4","typescript":"~5.8.3","@types/node":"^22.15.21","@biomejs/biome":"1.9.4","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_1.0.3_1748088172029_0.25124131766926316","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@bjornharrtell/json-api","version":"2.0.1","_id":"@bjornharrtell/json-api@2.0.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"97154e7228321d6cca29bb98ed614f62c314caea","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-2.0.1.tgz","fileCount":40,"integrity":"sha512-PKyGddh1VW/CfXTOCf+KCKnMQRF3tTsYmbCBUhc/gTpvuMBULNT6HNvHwdpp7L/1CYOCq3pGaimpCUjSuU7dSw==","signatures":[{"sig":"MEQCIB12o5WaSRiOU6ctiwIWiI+X1NYsGH0pZY3AIxfQfyMTAiAOpHnG+xdWMLSczJlpboxRiiYnprN8x0h9nvHh9t22cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511921},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-2.0.1.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","actor":{"name":"bjornharrtell","type":"user","email":"bjorn@wololo.org"},"email":"bjorn@wololo.org"},"_resolved":"/tmp/9be8cf9a0edf90947a3dc0a76f9c856c/bjornharrtell-json-api-2.0.1.tgz","_integrity":"sha512-PKyGddh1VW/CfXTOCf+KCKnMQRF3tTsYmbCBUhc/gTpvuMBULNT6HNvHwdpp7L/1CYOCq3pGaimpCUjSuU7dSw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","vitest":"^3.2.4","typedoc":"^0.28.5","typescript":"~5.8.3","@types/node":"^24.0.3","@biomejs/biome":"2.0.4","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_2.0.1_1750608084359_0.17023228899062248","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@bjornharrtell/json-api","version":"2.0.2","_id":"@bjornharrtell/json-api@2.0.2","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"a556e9286151f8991942adc4d345024af1947807","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-2.0.2.tgz","fileCount":40,"integrity":"sha512-VQ9noI1MnxORlaFLHTWLXYtrWuaLnOAJOizW3d6quk7boNEtO7ZniGP02+js9cpo6b5e5LA536POzLgHSZt0mQ==","signatures":[{"sig":"MEQCIBkmmTJIlL1hhfWpOI7YsgUIbBoLTs+HDx5/XJeuefuWAiBMhPZ0FzxhRcbcqakbirrFt94ByRcVaU+iJDpKCSYxIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511837},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-2.0.2.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/1987cd86ab99d9bf7045b29466ab353c/bjornharrtell-json-api-2.0.2.tgz","_integrity":"sha512-VQ9noI1MnxORlaFLHTWLXYtrWuaLnOAJOizW3d6quk7boNEtO7ZniGP02+js9cpo6b5e5LA536POzLgHSZt0mQ==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.5","vitest":"^3.2.4","typedoc":"^0.28.7","typescript":"~5.8.3","@types/node":"^24.1.0","@biomejs/biome":"2.1.2","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_2.0.2_1753186841897_0.5756596922169215","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@bjornharrtell/json-api","version":"2.0.3","_id":"@bjornharrtell/json-api@2.0.3","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"fa73ad70af608a4a453d834ca103fa2d33f66484","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-2.0.3.tgz","fileCount":40,"integrity":"sha512-b+e5P7oVradGTeIF1rPAxI2VJJs4ckg2AAFzWXhxiEPw1u3I06uSHbbMaC95RzxBwISKBCnm8S1BPO3gVHL3pg==","signatures":[{"sig":"MEYCIQCyDTjyy38+rwC6Ms8Jh5zkr1MA5DD2Cmiv0bYSRdd+zgIhAIYEcknh2UydJ6kUEYcHu7QJz8SW9otrgBIeJS0SfRfq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511838},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-2.0.3.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/40cf01c1a5501c21f103d75fbb43e050/bjornharrtell-json-api-2.0.3.tgz","_integrity":"sha512-b+e5P7oVradGTeIF1rPAxI2VJJs4ckg2AAFzWXhxiEPw1u3I06uSHbbMaC95RzxBwISKBCnm8S1BPO3gVHL3pg==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.3","vitest":"^3.2.4","typedoc":"^0.28.11","typescript":"~5.9.2","@types/node":"^24.3.0","@biomejs/biome":"2.2.2","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_2.0.3_1756324939939_0.8421229461871218","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@bjornharrtell/json-api","version":"2.0.4","_id":"@bjornharrtell/json-api@2.0.4","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"29c11e2a5cdd98736090482e9934460c8ef3a2b9","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-2.0.4.tgz","fileCount":40,"integrity":"sha512-N1tsq2ikbT+VTCFn+AyemoN2fS0DZJupwoWA5Y2U3zdZkrOlFOixfzf40r/Pt2rRlcZRUBXIHcjkW/cVmpb5gw==","signatures":[{"sig":"MEQCIGEFU7ZIpc7oRlAs9tnPVlyKbCL8AOhmeKNrsT51ftSxAiAwpVTHqsCQ4u8/uD2MYkodjJ2i0dRpzZGhPQTIIBksOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":511203},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-2.0.4.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/11d8f90655904f7941182c8ed4c86c13/bjornharrtell-json-api-2.0.4.tgz","_integrity":"sha512-N1tsq2ikbT+VTCFn+AyemoN2fS0DZJupwoWA5Y2U3zdZkrOlFOixfzf40r/Pt2rRlcZRUBXIHcjkW/cVmpb5gw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via an JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.9","vitest":"^3.2.4","typedoc":"^0.28.13","typescript":"~5.9.3","@types/node":"^24.7.1","@biomejs/biome":"2.2.5","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_2.0.4_1760038645066_0.6315762359028871","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@bjornharrtell/json-api","version":"3.0.0","_id":"@bjornharrtell/json-api@3.0.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"29d8a794b4ab3ead933c88b7c336f0cc3dc3984b","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-3.0.0.tgz","fileCount":40,"integrity":"sha512-Ilks4TAbHnU90ULLktdYg4IbjFj9mAn9sJeHPOTmPuQBSB1zVNSYH6+VphcoN/Ua4fy1iVIGIhoX03Fw0gLY9A==","signatures":[{"sig":"MEYCIQDXfSvAeL+pKBLxAM+zPwUFHI8L5kyvheTUUxrJJUHmCQIhAKkjRoQQAqr3sT80AydIjmj90R7k7XrTN1gVDYuO7qk7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500539},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-3.0.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/142d02b57a2eb8c21a7b8b14a1f09bbf/bjornharrtell-json-api-3.0.0.tgz","_integrity":"sha512-Ilks4TAbHnU90ULLktdYg4IbjFj9mAn9sJeHPOTmPuQBSB1zVNSYH6+VphcoN/Ua4fy1iVIGIhoX03Fw0gLY9A==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.9","vitest":"^3.2.4","typedoc":"^0.28.13","typescript":"~5.9.3","@types/node":"^24.7.1","@biomejs/biome":"2.2.5","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_3.0.0_1760517188163_0.231475148211987","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@bjornharrtell/json-api","version":"4.0.2","_id":"@bjornharrtell/json-api@4.0.2","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"a409a412298d88620ca4a6ba01b75cc1673b53a0","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-4.0.2.tgz","fileCount":6,"integrity":"sha512-OeEvkeI1Zj3JAa3ejJiiwOLHkSju6nUtmvb1cfhxO4F0LRcRC7nCkiblq0WEkSsS8KlUv96StpkaHUza/jocyg==","signatures":[{"sig":"MEUCIQDXYBuXvEuAU18DFtqp/9fcbLrz7zgWepgqM1bAAK5L6QIgWd0/CP/GvfAzQw3KbVr2kdnPrODbSC5MWE3K0DaRMZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38924},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-4.0.2.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/71703dcbeede5e40dc03174fe23b2e52/bjornharrtell-json-api-4.0.2.tgz","_integrity":"sha512-OeEvkeI1Zj3JAa3ejJiiwOLHkSju6nUtmvb1cfhxO4F0LRcRC7nCkiblq0WEkSsS8KlUv96StpkaHUza/jocyg==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.9","vitest":"^3.2.4","typedoc":"^0.28.13","typescript":"~5.9.3","@types/node":"^24.7.1","@biomejs/biome":"2.2.5","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_4.0.2_1760527886744_0.864357786824139","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@bjornharrtell/json-api","version":"5.0.1","_id":"@bjornharrtell/json-api@5.0.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"0948d9aa2c68752fd3f29b56a970bae6bce040ca","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.0.1.tgz","fileCount":43,"integrity":"sha512-nR/CncfeQFM7LYr2XxDvvj95ApaLn2wbL33UjfNgLtC4CsM2+9svpwNxEKa73ZCiRhLd23l+Gp1n5XYb+fsIrw==","signatures":[{"sig":"MEQCIC++6sEdY1c6yCFfSgLENgeqMLW0S+UfopPPgUi4OL1YAiBHrwUGHuy/MHwZOsIh2EKnjYaQXO1x1idaZ2I6bh7yQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":501525},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.0.1.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/4ea1587ed1e56c44b34d8ae8c88a6f04/bjornharrtell-json-api-5.0.1.tgz","_integrity":"sha512-nR/CncfeQFM7LYr2XxDvvj95ApaLn2wbL33UjfNgLtC4CsM2+9svpwNxEKa73ZCiRhLd23l+Gp1n5XYb+fsIrw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.9","vitest":"^3.2.4","typedoc":"^0.28.13","typescript":"~5.9.3","@types/node":"^24.7.1","@biomejs/biome":"2.2.5","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.0.1_1761091402523_0.06936459957180308","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@bjornharrtell/json-api","version":"5.0.2","_id":"@bjornharrtell/json-api@5.0.2","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"767b439f265431d5148e775cccf63a9351bfc44e","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.0.2.tgz","fileCount":43,"integrity":"sha512-gRGLINKbtT4T8d1Sjt22agg4JzYks33NmMTPY8Bq4ZtU9Jn+xaQHKLFQLiuKF1HRXB4lmVAizQYH7qRZdX1phA==","signatures":[{"sig":"MEUCIBDf6QV0wEkPmjMvUPfweOHJ94Pn5Prf+BQQrYXWdZgeAiEAyzpu41MfkyCvfEvb8UYsLdPq42tpD+byLW7aYQ7ytnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505062},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.0.2.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/b6bf5145bc1ca524c1fc477d636b85f9/bjornharrtell-json-api-5.0.2.tgz","_integrity":"sha512-gRGLINKbtT4T8d1Sjt22agg4JzYks33NmMTPY8Bq4ZtU9Jn+xaQHKLFQLiuKF1HRXB4lmVAizQYH7qRZdX1phA==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.9","vitest":"^3.2.4","typedoc":"^0.28.13","typescript":"~5.9.3","@types/node":"^24.7.1","@biomejs/biome":"2.2.5","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.0.2_1762205533946_0.21046758872003868","host":"s3://npm-registry-packages-npm-production"}},"5.0.3":{"name":"@bjornharrtell/json-api","version":"5.0.3","_id":"@bjornharrtell/json-api@5.0.3","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"94b3d9f3b7b9f8804cfda7b8581480880ec67d10","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.0.3.tgz","fileCount":43,"integrity":"sha512-w2T8JhYjfTsTmHtP/Ln5RvHVGhHquu+S/TYUBMpjsQgMQRdGpW/0pzBZk/SLnkmmouNQAdTQ17k30IArZZfFCA==","signatures":[{"sig":"MEUCIQDjpWJi9exJpDzV/0FylKLsBO5dhV5Zcg1Xqk9OIO7zjgIgQ6QBpQFbKhmklcZgPsiVps36n/QLo1PqsoZn2xoC8jY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":505699},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.0.3.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/47e1174f28376017e3c70ea94278bf81/bjornharrtell-json-api-5.0.3.tgz","_integrity":"sha512-w2T8JhYjfTsTmHtP/Ln5RvHVGhHquu+S/TYUBMpjsQgMQRdGpW/0pzBZk/SLnkmmouNQAdTQ17k30IArZZfFCA==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.2.4","vitest":"^4.0.11","typedoc":"^0.28.14","typescript":"~5.9.3","@types/node":"^24.10.1","@biomejs/biome":"2.3.6","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.0.3_1763641648734_0.08255061421009913","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@bjornharrtell/json-api","version":"5.1.0","_id":"@bjornharrtell/json-api@5.1.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"27935413423007990d9f45f09a1d4b82838dc308","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.1.0.tgz","fileCount":43,"integrity":"sha512-qKcqYhdIaM4pzK3XWToKhDPhtFjpttLqEwCvVg21SAwYa9/vk5acZUnQxXD0j4iO/QnL2mTzSj35NzgjKKUN1w==","signatures":[{"sig":"MEQCIFBPC9B7GeytDFyuZcZeoDidx2X0v1mcsqc9IhnKSgpiAiB5b1KPDK4+53mo7HdqvRT9CejY234YKUHyScSdt18uKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":506569},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.1.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/1e2aacf79030ac26ee2c0941915f54fe/bjornharrtell-json-api-5.1.0.tgz","_integrity":"sha512-qKcqYhdIaM4pzK3XWToKhDPhtFjpttLqEwCvVg21SAwYa9/vk5acZUnQxXD0j4iO/QnL2mTzSj35NzgjKKUN1w==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.17","typedoc":"^0.28.16","typescript":"~5.9.3","@types/node":"^25.0.9","@biomejs/biome":"2.3.11","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.1.0_1768548222700_0.8862565415501689","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@bjornharrtell/json-api","version":"5.1.1","_id":"@bjornharrtell/json-api@5.1.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"2fb40e979a7bc9baa0fae019c3f09b1a6cc9aa40","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.1.1.tgz","fileCount":43,"integrity":"sha512-QYwMHH8Osz8yUHKpYfo581lcAwy7H/xQFlBdyvozpQmzR83KDwsOnJJYEMGirNPj209s7Vhj3Su89Co1FUBsuw==","signatures":[{"sig":"MEUCIQDh05MNjpO92eIeh8yFEurXqPWU/G3HNFvFQVhEXRvc7gIgJtaJlpkQWN6qlhmYPigJTaVwUlx3bZtUPtQDRvdIUCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507039},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.1.1.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/8830ffedf34958eb72cf6696675a88ef/bjornharrtell-json-api-5.1.1.tgz","_integrity":"sha512-QYwMHH8Osz8yUHKpYfo581lcAwy7H/xQFlBdyvozpQmzR83KDwsOnJJYEMGirNPj209s7Vhj3Su89Co1FUBsuw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.17","typedoc":"^0.28.16","typescript":"~5.9.3","@types/node":"^25.0.9","@biomejs/biome":"2.3.11","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.1.1_1768567179278_0.6633982582071234","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@bjornharrtell/json-api","version":"5.2.0","_id":"@bjornharrtell/json-api@5.2.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"07f63f69ebfde49cf33beee48400ff1756d334b8","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.2.0.tgz","fileCount":43,"integrity":"sha512-b4pFgo0MLArFvpPlwIieSX+chlVjP1ARi5nTes0Pw+BZAecshIa0DNkRf12HmWqpEw6f29FP/Mv1BzUsHC0GHw==","signatures":[{"sig":"MEQCIHAAb6je9zhvh52cCa3C1Q5re+QfKZYu8QYHqCX7k42rAiAsW4fWDlbSX941Gqlbk1O1KNjFNmb9GvDOeLVCb6r/HA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508442},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.2.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/863061288eb7a8e3e596e9f607973f5e/bjornharrtell-json-api-5.2.0.tgz","_integrity":"sha512-b4pFgo0MLArFvpPlwIieSX+chlVjP1ARi5nTes0Pw+BZAecshIa0DNkRf12HmWqpEw6f29FP/Mv1BzUsHC0GHw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.17","typedoc":"^0.28.16","typescript":"~5.9.3","@types/node":"^25.0.9","@biomejs/biome":"2.3.11","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.2.0_1768928057808_0.5869393596729495","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"@bjornharrtell/json-api","version":"5.2.1","_id":"@bjornharrtell/json-api@5.2.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"724154f079356bf4d77c8c032b2aba438eb1ee18","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.2.1.tgz","fileCount":43,"integrity":"sha512-uaLILKK0rGrMCLjFsG0irqVa8o6EEib1FF9kPRj+CRhrSKhbxNqULYs80ImIcUDMWFZDm3Ls8cufg3NdEWSatg==","signatures":[{"sig":"MEUCIQC6j+dwpxZFzGmjY7P+enDU+ssLP1szvb6UN2yKKbKEzQIgT0eUfzkSEVyK6l4kpXhc08Ew+zQkYrBleQGQdNR2WK8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":508094},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.2.1.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/4c1584f4eb1ebc66f09a28dda3cb851b/bjornharrtell-json-api-5.2.1.tgz","_integrity":"sha512-uaLILKK0rGrMCLjFsG0irqVa8o6EEib1FF9kPRj+CRhrSKhbxNqULYs80ImIcUDMWFZDm3Ls8cufg3NdEWSatg==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.17","typedoc":"^0.28.16","typescript":"~5.9.3","@types/node":"^25.0.9","@biomejs/biome":"2.3.11","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.2.1_1768928676792_0.050456289766049434","host":"s3://npm-registry-packages-npm-production"}},"5.2.2":{"name":"@bjornharrtell/json-api","version":"5.2.2","_id":"@bjornharrtell/json-api@5.2.2","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"d4c4167c1161ebf44471d1a66a3654ea56dd3baf","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.2.2.tgz","fileCount":43,"integrity":"sha512-NnzIwSq1NpqL253Z4NBuFFXduGH3q2DtOazTb65Kaw4jhKgCaECOxfu5BvOhzR3SQbtoHQE8qhy012AKESGsEQ==","signatures":[{"sig":"MEYCIQDqa8K6eGJu/L9cwCSdIX8WiBJNBmgjPAL6ipj8xzhzVwIhALnqy0vuC03y9DoTtF8khlW44d3qrHLxtrxpilVIPH1P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":509773},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.2.2.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","type-check":"tsc --noEmit"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/7439de3e99096d1c73b2545010f0e63b/bjornharrtell-json-api-5.2.2.tgz","_integrity":"sha512-NnzIwSq1NpqL253Z4NBuFFXduGH3q2DtOazTb65Kaw4jhKgCaECOxfu5BvOhzR3SQbtoHQE8qhy012AKESGsEQ==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"json-api can fetch typed data models via a JSON:API endpoint into record instances.","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.17","typedoc":"^0.28.16","typescript":"~5.9.3","@types/node":"^25.0.9","@biomejs/biome":"2.3.11","vite-plugin-dts":"^4.5.4"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.2.2_1769640207399_0.059592965910621576","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@bjornharrtell/json-api","version":"5.3.0","_id":"@bjornharrtell/json-api@5.3.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"bc22e1d71aea8640945d7c2ec4b11719a1da4c0e","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.3.0.tgz","fileCount":43,"integrity":"sha512-Sb52boVjFq2Uv4LM6fqjs1OS+hvTsndBliRdjzNKj4eel651fwsAfNEOZXpQDnsa1emAtkkwkfIBhLzYxplQVg==","signatures":[{"sig":"MEQCIChcqxS8ACmgoxfD8djua0HzlRpDiN/Q8Ow5SWMb8D2SAiBk/t6p5lWSxvmQLS6zLuXJuIB7yB1Fy4zDliblFibjow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514587},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.3.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/0d162eca99b0e0a3ab4f23d89c7fbc47/bjornharrtell-json-api-5.3.0.tgz","_integrity":"sha512-Sb52boVjFq2Uv4LM6fqjs1OS+hvTsndBliRdjzNKj4eel651fwsAfNEOZXpQDnsa1emAtkkwkfIBhLzYxplQVg==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.3.0_1771924293967_0.5909952272459658","host":"s3://npm-registry-packages-npm-production"}},"5.4.0":{"name":"@bjornharrtell/json-api","version":"5.4.0","_id":"@bjornharrtell/json-api@5.4.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"b001db8cf90d45c1f9cb03bf65a3c43b650e07cd","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.4.0.tgz","fileCount":43,"integrity":"sha512-An+P32iUn2E3atg3Tm2R32001xi8ZZm/376BJcmBSp279R7Mx62/fnyqHpOhxLWgzABJu8tjiAPNHnV+0AbwQQ==","signatures":[{"sig":"MEQCICOgko84VV2haMSpEGEJ+AeB2HCDryGkbU747itMcwCwAiAH/e7/MNxXoEtRLfNjOz1fy+GR0fOdsWhYxfoDzxBtZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517593},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.4.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/fb03db3c3898c1d3bfa7996a2c6917ae/bjornharrtell-json-api-5.4.0.tgz","_integrity":"sha512-An+P32iUn2E3atg3Tm2R32001xi8ZZm/376BJcmBSp279R7Mx62/fnyqHpOhxLWgzABJu8tjiAPNHnV+0AbwQQ==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.4.0_1773256710463_0.44468613741029883","host":"s3://npm-registry-packages-npm-production"}},"5.4.1":{"name":"@bjornharrtell/json-api","version":"5.4.1","_id":"@bjornharrtell/json-api@5.4.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"559dcd4d16873db8ec1b42530712c9d3775356aa","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-5.4.1.tgz","fileCount":43,"integrity":"sha512-kbNl1p3SOHwUAjcv0u9hgsK0LHvHj1E1/50PDG2HBMqwMf6HyFXJ3QvbqSS31pw7OPRItHjBiw4ehuIsgcGlIw==","signatures":[{"sig":"MEYCIQC2UyjZZpYw9U0ZTxIbGKOJoBsLEPjKad9Jt4NSmYQRbgIhAO3mx3gov8ikpFp+C41Nna6Pt0qvi614A3F3v48zIpQd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":517444},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-5.4.1.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/cb1585a72d7535dedd19745ff3dcb0dd/bjornharrtell-json-api-5.4.1.tgz","_integrity":"sha512-kbNl1p3SOHwUAjcv0u9hgsK0LHvHj1E1/50PDG2HBMqwMf6HyFXJ3QvbqSS31pw7OPRItHjBiw4ehuIsgcGlIw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"10.9.2","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_5.4.1_1773395164105_0.2553249734749725","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@bjornharrtell/json-api","version":"6.0.0","_id":"@bjornharrtell/json-api@6.0.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"ac5ee6376914cb03ae3339c422839a8b9aad7c35","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-6.0.0.tgz","fileCount":43,"integrity":"sha512-Mvf40FXNLyP5fWdEW2srS5sIrXOQCz9AEObK8dY/dGceIowBp31RU+zMNbAgL26IMNsLCoINKB7odD6YX23BnQ==","signatures":[{"sig":"MEUCIExuvjd2w3J7gXMqRjcFTDN7DlYFdwohemLZykqTAUNZAiEAuEhmNQCoeu0TVJ9tlkucoFkCKfnBQdyPMVkILL5Q2gA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519071},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"gitHead":"e723d39b18aa8e360d9450a64297c85f6d311005","scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.9.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_6.0.0_1774629161433_0.18195629890574994","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@bjornharrtell/json-api","version":"6.1.0","_id":"@bjornharrtell/json-api@6.1.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"f083893772a48856084ae7e9885c7bd11d4d8d23","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-6.1.0.tgz","fileCount":44,"integrity":"sha512-NaK89PBQuXztvfggKXIsBqLng8Zx99cu697E1Qmh4cMmYKRFVC7Ud4XvIPjwEZSKAVui9+zqpMNqsO+gUtObPg==","signatures":[{"sig":"MEQCIFlazs+fJd8ax+7bWwo2aOOutxD2lTxbT+OCmr0fdUSqAiA2Ge+HpzllRRDAXEDSM7TR8GDsdi6ScTk5fihgeGlW4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529710},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"gitHead":"90e63cff36cf3ddf3cf083cf725298f9e67a28ae","scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.9.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_6.1.0_1774646620076_0.25706842433465327","host":"s3://npm-registry-packages-npm-production"}},"6.1.1":{"name":"@bjornharrtell/json-api","version":"6.1.1","_id":"@bjornharrtell/json-api@6.1.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"58878411b50ec6053e3b2caae968aeeaaf9c93b3","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-6.1.1.tgz","fileCount":44,"integrity":"sha512-oMVjEXrNbbFr4DwCoPm5Z32DwnbLBkzPeB7OI4OuCtT5owLycmufGmvzchAofU6bl4aUhXvy1o97kNE4z4+Tcw==","signatures":[{"sig":"MEQCIEZiDffEt27bnSQP807y613dyz9Q3SEVxg/yonkHNCX8AiALAJEjQdVM8NoToig565lB8N+td8jF+jjWietbmimQAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529969},"main":"./dist/lib.js","type":"module","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"gitHead":"cf46963f5065a0066aced11e5c208dfb0d85cbbf","scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.9.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_6.1.1_1774647417457_0.6818376551410896","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"@bjornharrtell/json-api","version":"6.2.0","_id":"@bjornharrtell/json-api@6.2.0","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"ca31c1c50df652a7efbaba310d93a327de6cbaa8","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-6.2.0.tgz","fileCount":45,"integrity":"sha512-LdPMRKCm5l3ko4lRyqJH8FTxei9qcjOKx3vmbPNFjrJ8a7bnXmMc88NKvnVhqI/UNYB95qfPMh5f3u7F431dsw==","signatures":[{"sig":"MEUCICaUmxzlFAXK5uEmXLlymKXsgI815asIUzGsJKkWCBrqAiEAgB7Ipk9P9vfeSmoGdxau4GXXGnPMt8jwnWl18lvNjII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":541665},"main":"./dist/lib.js","type":"module","_from":"file:bjornharrtell-json-api-6.2.0.tgz","types":"./dist/lib.d.ts","module":"./dist/lib.js","exports":{".":"./dist/lib.js","./*":"./src/*"},"scripts":{"dev":"vite","test":"vitest","build":"vite build","preview":"vite preview","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"_resolved":"/tmp/d411ad37a322d6fe4e4ea3299dc3320f/bjornharrtell-json-api-6.2.0.tgz","_integrity":"sha512-LdPMRKCm5l3ko4lRyqJH8FTxei9qcjOKx3vmbPNFjrJ8a7bnXmMc88NKvnVhqI/UNYB95qfPMh5f3u7F431dsw==","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.9.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","vitest":"^4.0.18","typedoc":"^0.28.17","coveralls":"^3.1.1","typescript":"~5.9.3","@types/node":"^25.3.0","@biomejs/biome":"2.4.4","vite-plugin-dts":"^4.5.4","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/json-api_6.2.0_1774876083606_0.9925310142682975","host":"s3://npm-registry-packages-npm-production"}},"6.2.1":{"name":"@bjornharrtell/json-api","version":"6.2.1","_id":"@bjornharrtell/json-api@6.2.1","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"homepage":"https://github.com/bjornharrtell/json-api#readme","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"1ba323eab9ae999473e5c7c5d86d3c94c7dbecd4","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-6.2.1.tgz","fileCount":6,"integrity":"sha512-/2+T2NbBWvf/DPgX2VTFIUWZK53arbOh430aWTWK6YsPty9Z5gnGV6lBsfBUibr2Hd5u6gVNbpbSbe0NiEIFEQ==","signatures":[{"sig":"MEYCIQDC1vypo5+/YfSvoRxILFmSCdnCVrMFmuFXhuFISTivrwIhAIF4tRJCqs9AhFfvek9YtscSZtEmRS8VGbj8SLfQQIu1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDiqCsJeRKku94NHGc/BQClHyt99dhtCaewU/yti2MvFQIgJAzx+uAikHKZtMl7NElbmCRYB3mBGsAJZLDerCneyuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48815},"main":"./dist/lib.mjs","type":"module","types":"./dist/lib.d.mts","module":"./dist/lib.mjs","exports":{".":"./dist/lib.mjs","./*":"./src/*"},"gitHead":"31f33106200e4c58024985931260a28926ec9d54","scripts":{"dev":"tsdown src/lib.ts --format esm --dts --sourcemap --minify --watch","test":"vitest","build":"tsdown src/lib.ts --format esm --dts --sourcemap --minify --clean","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"_npmUser":{"name":"bjornharrtell","email":"bjorn@wololo.org"},"repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.9.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.8","vitest":"^4.1.10","typedoc":"^0.28.20","coveralls":"^3.1.1","typescript":"~6.0.3","@types/node":"^25.9.5","@biomejs/biome":"2.5.4","@vitest/coverage-v8":"^4.1.10","@microsoft/api-extractor":"^7.58.9"},"_npmOperationalInternal":{"tmp":"tmp/json-api_6.2.1_1790244560619_0.824141370754673","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"_id":"@bjornharrtell/json-api@7.0.0","bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"dist":{"shasum":"74b3e357192ef7103ab1686412e21e895e642056","tarball":"https://registry.npmjs.org/@bjornharrtell/json-api/-/json-api-7.0.0.tgz","fileCount":59,"integrity":"sha512-rgixQmH9aJYimBXkRgiGaBnbSIjbqFLqUnG0vcadJ30OODZHMAkVrwhh5aubuCCkTnQZBTwIzqiUv6tEhpOiUQ==","signatures":[{"sig":"MEYCIQDcN/j9VtuUbG0+tal1OUoYg7/D3C9/iZL+FovvkPEwuwIhAJZT3uOV7UwzmbpQ8j+qg75l2pHt+wGKiQCprdx57h9P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDKVY3mC7fhYBJKlDkW8RnQ9tPNFzdBovdHz8LwU6+5+gIgeAVIZojz16L/XOZgvmv3YQlMzsRw+uQmysGOmejMS5k="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bjornharrtell%2fjson-api@7.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":827189},"main":"./dist/lib.mjs","name":"@bjornharrtell/json-api","type":"module","types":"./dist/lib.d.mts","module":"./dist/lib.mjs","exports":{".":"./dist/lib.mjs"},"gitHead":"312357363a2ef6cec7e6fdfa324c2a0e59cdd423","scripts":{"dev":"tsdown src/lib.ts --format esm --dts --sourcemap --minify --watch","test":"vitest","build":"tsdown src/lib.ts --format esm --dts --sourcemap --minify --clean && pnpm typedoc","typedoc":"typedoc","coverage":"vitest run --coverage","coveralls":"pnpm run coverage && cat ./coverage/lcov.info | coveralls","type-check":"tsc --noEmit","test:coverage":"vitest run --coverage","test:integration":"vitest run tests/integration/jsonapi-dotnetcore.spec.ts","test:integration:coverage":"vitest run --coverage tests/integration/jsonapi-dotnetcore.spec.ts"},"version":"7.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:54eb9610-833f-4a85-a4d4-f886088c49f7"}},"homepage":"https://github.com/bjornharrtell/json-api#readme","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"_npmVersion":"11.19.0","description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","directories":{},"maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.22.8","vitest":"^4.1.10","typedoc":"^0.28.20","coveralls":"^3.1.1","typescript":"~6.0.3","@types/node":"^25.9.5","@biomejs/biome":"2.5.4","@vitest/coverage-v8":"^4.1.10","@microsoft/api-extractor":"^7.58.9"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/json-api_7.0.0_1790502983579_0.6963552065189034"}}},"time":{"created":"2025-04-10T17:33:02.554Z","modified":"2026-09-27T09:56:24.034Z","0.1.0":"2025-04-10T17:33:02.835Z","0.2.0":"2025-04-15T12:37:47.065Z","0.2.1":"2025-04-16T08:29:29.732Z","1.0.0":"2025-04-22T13:54:35.765Z","1.0.1":"2025-04-22T17:10:22.271Z","1.0.2":"2025-04-27T08:28:34.639Z","1.0.3":"2025-05-24T12:02:52.384Z","2.0.1":"2025-06-22T16:01:24.563Z","2.0.2":"2025-07-22T12:20:42.123Z","2.0.3":"2025-08-27T20:02:20.157Z","2.0.4":"2025-10-09T19:37:25.267Z","3.0.0":"2025-10-15T08:33:08.383Z","4.0.2":"2025-10-15T11:31:26.929Z","5.0.1":"2025-10-22T00:03:22.753Z","5.0.2":"2025-11-03T21:32:14.146Z","5.0.3":"2025-11-20T12:27:28.902Z","5.1.0":"2026-01-16T07:23:42.845Z","5.1.1":"2026-01-16T12:39:39.422Z","5.2.0":"2026-01-20T16:54:17.955Z","5.2.1":"2026-01-20T17:04:36.967Z","5.2.2":"2026-01-28T22:43:27.588Z","5.3.0":"2026-02-24T09:11:34.117Z","5.4.0":"2026-03-11T19:18:30.611Z","5.4.1":"2026-03-13T09:46:04.302Z","6.0.0":"2026-03-27T16:32:41.593Z","6.1.0":"2026-03-27T21:23:40.217Z","6.1.1":"2026-03-27T21:36:57.585Z","6.2.0":"2026-03-30T13:08:03.745Z","6.2.1":"2026-09-24T10:09:20.698Z","7.0.0":"2026-09-27T09:56:23.679Z"},"bugs":{"url":"https://github.com/bjornharrtell/json-api/issues"},"homepage":"https://github.com/bjornharrtell/json-api#readme","repository":{"url":"git+https://github.com/bjornharrtell/json-api.git","type":"git"},"description":"![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api) [![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)","maintainers":[{"name":"bjornharrtell","email":"bjorn@wololo.org"}],"readme":"# json-api\n\n![NPM Version](https://img.shields.io/npm/v/%40bjornharrtell%2Fjson-api)\n[![Coverage Status](https://coveralls.io/repos/github/bjornharrtell/json-api/badge.svg?branch=main)](https://coveralls.io/github/bjornharrtell/json-api?branch=main)\n\njson-api can fetch typed data models via a JSON:API endpoint into normalised records and/or post or update them.\n\nAn instance is created with an endpoint and model definitions and the instance API provides methods `findAll`, `findRecord` to fetch record(s). Included relationships will be automatically resolved. If relationships for a record are not included they can be fetched later using `findRelated`. A record can be created or updated `saveRecord`.\n\nAdditionally support for the [atomic operation extension](https://jsonapi.org/ext/atomic/) exists via types and `saveAtomic`.\n\nWhen a record is serialized (by `saveRecord` or a resource operation in `saveAtomic`), a relationship property set to `null` clears the relationship (`data: null` for to-one, `data: []` for to-many), while an `undefined` or absent property is omitted and left unchanged on the server.\n\n## Installation\n\n```sh\nnpm install @bjornharrtell/json-api\n```\n\nThe supported package entry point is `@bjornharrtell/json-api`.\n\n## Example usage\n\nA service returning the canonical example JSON:API document at https://jsonapi.org/ can be consumed this way:\n\n```ts\nimport { useJsonApi, type BaseEntity, type ModelDefinition, RelationshipType } from '@bjornharrtell/json-api'\n\nexport interface Person extends BaseEntity {\n  firstName?: string\n  lastName?: string\n  twitter?: string\n}\n\nexport interface Comment extends BaseEntity {\n  body?: string\n  author?: Person\n}\n\nexport interface Article extends BaseEntity {\n  title?: string\n  author?: Person\n  comments?: Comment[]\n}\n\nconst modelDefinitions: ModelDefinition[] = [\n  {\n    type: 'people',\n  },\n  {\n    type: 'comments',\n    relationships: {\n      author: { type: 'people', relationshipType: RelationshipType.BelongsTo },\n    },\n  },\n  {\n    type: 'articles',\n    relationships: {\n      author: { type: 'people', relationshipType: RelationshipType.BelongsTo },\n      comments: { type: 'comments', relationshipType: RelationshipType.HasMany },\n    },\n  },\n]\n\nexport const articlesApi = useJsonApi({\n  endpoint: 'http://localhost/api',\n  modelDefinitions,\n})\n```\n\nThe above can then be used as follows:\n\n```ts\nimport { articlesApi, type Article } from './api/articles'\n\nconst { records: articles } = await articlesApi.findAll<Article>('articles', { \n  include: ['comments', 'author'] \n})\nexpect(articles.length).toBe(1)\nconst article = articles[0]\nexpect(article.id).toBe('1')\nexpect(article.title).toBe('JSON:API paints my bikeshed!')\nexpect(article.comments?.length).toBe(2)\nexpect(article.comments?.[0]?.body).toBe('First!')\nexpect(article.comments?.[1]?.body).toBe('I like XML better')\nexpect(article.author?.firstName).toBe('Dan')\n```\n\n## API reference\n\n`useJsonApi({ endpoint, modelDefinitions, ...options }, fetcher?)` creates a client. Each model definition declares its JSON:API `type` and, optionally, named relationships with a related type and `RelationshipType.BelongsTo` or `RelationshipType.HasMany`.\n\n- `createRecord<T>(type, properties)` creates a local record. If no `id` is given, one is generated.\n- `findAll<T>(type, options?, params?)` returns `{ doc, records }` for the response page returned by that request. It does not automatically follow pagination links; use the returned `doc.links` to request subsequent pages. `options.page` sets `page[size]` and `page[number]`.\n- `findRecord<T>(type, id, options?, params?)` returns `{ doc, record }`.\n- `findRelated(record, relationshipName, options?, params?)` requests one declared relationship and assigns its normalized related record(s) to the supplied record.\n- `saveRecord<T>(record, options?)` creates a resource with POST or updates it with PATCH. A `204 No Content` PATCH response is followed by a GET to return the updated record.\n- `saveAtomic(operations, options?, serializeOptions?)` submits [JSON:API atomic operations](https://jsonapi.org/ext/atomic/). It returns `undefined` for a `204 No Content` response; otherwise it returns the response document and records for results that contain resource data.\n\n`FetchOptions` supports sparse fieldsets (`fields`), pagination (`page`), included relationships (`include`), a `filter` string, request `headers`, and an `AbortSignal` (`signal`). Additional query parameters can be passed as the `params` argument to read methods. `kebabCase: true` converts kebab-case attribute and relationship names to camelCase on records and back to their JSON:API names when serializing.\n\n## Response handling\n\nSuccessful responses that require a JSON:API document must contain valid JSON. If the body is empty or malformed, the fetcher throws `JsonApiResponseError` with the response status and the parse error as its cause. This error reports invalid JSON syntax; it does not validate that successfully parsed JSON conforms to the JSON:API schema. For non-success HTTP responses, the fetcher throws an HTTP error and includes a parsed response body when available.\n\n`204 No Content` is valid for PATCH and atomic-operation requests and returns `undefined`. A request that needs a document—such as a read or a POST that is expected to return a resource—throws `JsonApiResponseError` if it receives `204`.\n\n`preserveNullRelationships: true` in `useJsonApi` assigns an explicit `data: null` to-one relationship as `null` on the normalized record. By default, null relationships remain unset. Links-only relationships (which omit `data`) remain unset.\n\n`JsonApiWireDocument`, `JsonApiWireResource`, `JsonApiWireRelationship`, and related `JsonApiWire*` types describe incoming JSON:API payloads, including optional members, `data: null`, and links-only relationships. The existing `JsonApiDocument` and `JsonApiResource` types remain available unchanged for compatibility.\n\n## Development\n\n```sh\npnpm install --frozen-lockfile\npnpm type-check\npnpm test\npnpm test:integration\npnpm build\n```\n\nThe integration test starts a local .NET 10 JSON:API server; see [`tests/integration/jsonapi-server/README.md`](tests/integration/jsonapi-server/README.md) for prerequisites. `pnpm build` also generates the API reference under `dist/docs`.\n\n## Publishing\n\nConfigure npm trusted publishing for this GitHub repository and the `.github/workflows/publish.yml` workflow. To publish a release, push a tag matching the version in `package.json` (for example, `7.0.0`). The workflow verifies the tag, type-checks and builds the package, then publishes it to npm with provenance.\n","readmeFilename":"README.md"}