{"_id":"@apeleghq/http-media-type-negotiator","_rev":"9-b640ebb0efb244c824e47c38b8dad88e","name":"@apeleghq/http-media-type-negotiator","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.0","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.0","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"05220c6ce510c15ce52671953364ef8f52ed86d7","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.0.tgz","fileCount":54,"integrity":"sha512-f3jak4t8C59ABIAPRA2xS0vrFcHhGzJsg26jpbfhl8KuaP4jLt9vZ4GkSdpWm74pDaa/X4HqAKKukbbzw3eP1A==","signatures":[{"sig":"MEUCIHK5vM70iPLYztm8pgUHw8QOo9KS4NGclsFEwOzXTSHAAiEAzpSbBumr0dO/6/Z0fWf8yXYm02LV69I3L47uQ8vrpPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73153},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"572e8d858dd1ec94474da38560f061a1562d93ac","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC‑aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real‑world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.0_1758149733363_0.7881076003072858","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.1","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.1","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"5ed7d69c8afbc295bd8ac888534eaefc49bd2dc9","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.1.tgz","fileCount":54,"integrity":"sha512-rYL7/TUBl16H6bmdfCgQElwcNWujjF1KudxCxzFeL9xmADyH0+eRLhUtrcTBImU7erRnImxeXKnO/Fw4zcHQ5A==","signatures":[{"sig":"MEUCIB0E7qAQMu3lauzDuGjmHJD3+Stv4Bmq5rHa4I5In1XNAiEA8yC0gxm6R5d2lMDov/yAiNQOagF/8dBjkGwvbUnjdA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73786},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"15d92896fcf8e1d96ae21f2b584beee61de1fc48","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC‑aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real‑world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.1_1758151201196_0.6707330291535201","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.2","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.2","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"1653084b1cf0e19112f11fedab8cec6a59bf55c7","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.2.tgz","fileCount":54,"integrity":"sha512-/0OT7xzARQm6s+FRaxVcK59+C+HQmlne13BqnnKyC0Xw1LfhkX04taBLquxYsZ8axOm7dDHk3bbR4JgG0ZPkDw==","signatures":[{"sig":"MEUCIDrqZPtsPCYITTZIWt52yhmqraRenHy9ThCgvBd8uCxZAiEAl4HFL0MYH3m63bavAIJT1lmBFyHGrLbMTHi8UY8OXf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74669},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"5c747b6c88d9a1c40d8d1bf9246282531dd5e5f0","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC‑aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real‑world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.2_1758412873999_0.05172798550208446","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.3","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.3","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"411d80fbe9c3d1c054c8102f6a180987ccb48cb1","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.3.tgz","fileCount":54,"integrity":"sha512-Wuwl1EpGCKscSLb4QObbhlsWT+nPiJDLQNIDT1cjbA2oIRtK5ncV//uNpAxj+ndwGafAPht5ZYfSftobU8elDw==","signatures":[{"sig":"MEUCIQDYeSF3EHBTNqMQpSowPXJ2xzlyGbsOWJ6EP3TG0mlnlAIgVrfOSz/e9NUWv9R2G8sYdOY3EIJGepJpCyVD9ycZCcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79379},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"3fb43cd298c9b770bacca018620cf841a0042d4c","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC‑aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real‑world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.3_1758559761634_0.43896608146250604","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.4","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.4","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"d2f558f4c9dfdb5284cf923544bbf8ab807fc4ef","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.4.tgz","fileCount":60,"integrity":"sha512-lc9xsExACZAiVwur4LAjj9utOEH9aX8ATRgacUGI9X6gD8lr/K1W6+9/kl8mkOyl5Rt0JXTjUhxbc0gImwm4PA==","signatures":[{"sig":"MEQCIAteOQruI7iAhPGNDT5Lg+9NxChzW+MznWParHvwNoMLAiBVrqVLZsFvWwQQvkWmaDlA/zy4UiZDDgcJlV6yHgxx8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92009},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./compat/Negotiator":{"import":{"types":"./dist/compat/Negotiator.d.mts","default":"./dist/compat/Negotiator.mjs"},"require":{"types":"./dist/compat/Negotiator.d.cts","default":"./dist/compat/Negotiator.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"f2a524b21ae9efe78228c2ea990c227f7d6edec8","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.4_1759449099351_0.8358583437062537","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.5","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.5","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"a424a11d18b26ae91b84cd6aa669962992417af3","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.5.tgz","fileCount":71,"integrity":"sha512-dCbdDch9zXKpm2UlYNKDYwjtuFpDFpshtcVizdPNK/r1At8DjgV5lydWWx5Vplf7I5MbiqebUyKfLtaAV6o0Iw==","signatures":[{"sig":"MEYCIQCwOyB0EuXYfdEFrC58m67IlUYX7YqFHM7TebMsjlhySQIhAOUpVVQBkmgq8sNADXooc55dmiL1EG0EfB0T8nTph8Y+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110015},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./compat/Negotiator":{"import":{"types":"./dist/compat/Negotiator.d.mts","default":"./dist/compat/Negotiator.mjs"},"require":{"types":"./dist/compat/Negotiator.d.cts","default":"./dist/compat/Negotiator.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./rawParseAcceptHeader":{"import":{"types":"./dist/exports/rawParseAcceptHeader.d.ts","default":"./dist/rawParseAcceptHeader.mjs"},"require":{"types":"./dist/exports/rawParseAcceptHeader.d.cts","default":"./dist/rawParseAcceptHeader.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"4c18debb8e2351a79ca4474671a1104128bde40c","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"10.9.3","description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","directories":{},"_nodeVersion":"22.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.35.0","esbuild":"^0.25.9","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.35.0","typescript":"^5.9.2","@types/node":"^24.5.0","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.4.4","@typescript-eslint/parser":"^8.44.0","@typescript-eslint/eslint-plugin":"^8.44.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.5_1759497227168_0.6504385631870817","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.6","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.6","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"7d1c2f86aab87f27a86f9a6333ca020292925853","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.6.tgz","fileCount":71,"integrity":"sha512-wcEU6eEStiw6hQN4qstp1uo+mPIaXlf/aZHp3+vJVjQvOlEwLCZnzwHj7aBgkrwE3pj2kHIFVF8dX5zJo7IXBg==","signatures":[{"sig":"MEUCIHh0M5P4S8B0SVZB6WdtzLw3glHiaxzztdg6rHshy19bAiEAv4OnPDGeOP9KH1HhXImycwG/4St5PZuPqsp/8mM6hgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110016},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./compat/Negotiator":{"import":{"types":"./dist/compat/Negotiator.d.mts","default":"./dist/compat/Negotiator.mjs"},"require":{"types":"./dist/compat/Negotiator.d.cts","default":"./dist/compat/Negotiator.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./rawParseAcceptHeader":{"import":{"types":"./dist/exports/rawParseAcceptHeader.d.ts","default":"./dist/rawParseAcceptHeader.mjs"},"require":{"types":"./dist/exports/rawParseAcceptHeader.d.cts","default":"./dist/rawParseAcceptHeader.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"a3e48bcf7402d91757dd02ad3f657ca9f6dc86f2","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b37a42de-aa47-4f4d-8115-27b0b019a6ab"}},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"11.6.0","description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","directories":{},"_nodeVersion":"24.9.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.37.0","esbuild":"^0.25.10","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/node":"^24.7.2","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.6_1760199041266_0.8346904638819197","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.7","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/http-media-type-negotiator@1.0.7","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"dist":{"shasum":"ceef87e91a7394db792e42d53b59f3ccdc103ae9","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.7.tgz","fileCount":74,"integrity":"sha512-HMuFrR1LtEmKyS9qlUI4sMxbZIEjK/SlL5c8J2vt4dWcAuTQghaUdU480R4WpVACraooet0xPtzCpK11PVUDfA==","signatures":[{"sig":"MEUCIBa9kwTPOm6fkMAMnVnr63LpqtklkJ5qNuNRe52kgkhmAiEA8oBIwXUSHyhv1Ee4pAGyeJFVIrJ+PADAGfUbtXOqQnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121207},"main":"dist/index.cjs","type":"module","types":"dist/index.d.cts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./compat/Negotiator":{"import":{"types":"./dist/compat/Negotiator.d.mts","default":"./dist/compat/Negotiator.mjs"},"require":{"types":"./dist/compat/Negotiator.d.cts","default":"./dist/compat/Negotiator.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./rawParseAcceptHeader":{"import":{"types":"./dist/exports/rawParseAcceptHeader.d.ts","default":"./dist/rawParseAcceptHeader.mjs"},"require":{"types":"./dist/exports/rawParseAcceptHeader.d.cts","default":"./dist/rawParseAcceptHeader.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}}},"gitHead":"87c578afc968cadcbf212dd610f157919ff69811","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","prepack":"npm run build","version":"npm run lint && git add -A src","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","preversion":"npm run lint","postversion":"git push && git push --tags","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b37a42de-aa47-4f4d-8115-27b0b019a6ab"}},"repository":{"url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git","type":"git"},"_npmVersion":"11.6.1","description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.37.0","esbuild":"^0.25.10","globals":"^16.4.0","ts-node":"^10.9.2","prettier":"^3.6.2","@eslint/js":"^9.37.0","typescript":"^5.9.3","@types/node":"^24.7.2","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.0","@typescript-eslint/eslint-plugin":"^8.46.0"},"_npmOperationalInternal":{"tmp":"tmp/http-media-type-negotiator_1.0.7_1760357553235_0.015594174187080867","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@apeleghq/http-media-type-negotiator","version":"1.0.8","description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","type":"module","main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.cts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./negotiateMediaType":{"import":{"types":"./dist/exports/negotiateMediaType.d.ts","default":"./dist/negotiateMediaType.mjs"},"require":{"types":"./dist/exports/negotiateMediaType.d.cts","default":"./dist/negotiateMediaType.cjs"}},"./negotiateMediaTypeFactory":{"import":{"types":"./dist/exports/negotiateMediaTypeFactory.d.ts","default":"./dist/negotiateMediaTypeFactory.mjs"},"require":{"types":"./dist/exports/negotiateMediaTypeFactory.d.cts","default":"./dist/negotiateMediaTypeFactory.cjs"}},"./parseAcceptHeader":{"import":{"types":"./dist/exports/parseAcceptHeader.d.ts","default":"./dist/parseAcceptHeader.mjs"},"require":{"types":"./dist/exports/parseAcceptHeader.d.cts","default":"./dist/parseAcceptHeader.cjs"}},"./parseMediaType":{"import":{"types":"./dist/exports/parseMediaType.d.ts","default":"./dist/parseMediaType.mjs"},"require":{"types":"./dist/exports/parseMediaType.d.cts","default":"./dist/parseMediaType.cjs"}},"./rawParseAcceptHeader":{"import":{"types":"./dist/exports/rawParseAcceptHeader.d.ts","default":"./dist/rawParseAcceptHeader.mjs"},"require":{"types":"./dist/exports/rawParseAcceptHeader.d.cts","default":"./dist/rawParseAcceptHeader.cjs"}},"./compat/Negotiator":{"import":{"types":"./dist/compat/Negotiator.d.mts","default":"./dist/compat/Negotiator.mjs"},"require":{"types":"./dist/compat/Negotiator.d.cts","default":"./dist/compat/Negotiator.cjs"}}},"devDependencies":{"@eslint/eslintrc":"^3.3.1","@eslint/js":"^9.37.0","@types/node":"^24.7.2","@typescript-eslint/eslint-plugin":"^8.46.0","@typescript-eslint/parser":"^8.46.0","esbuild":"^0.25.10","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","globals":"^16.4.0","prettier":"^3.6.2","ts-node":"^10.9.2","typescript":"^5.9.3"},"repository":{"type":"git","url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git"},"scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","build":"tsc --emitDeclarationOnly --declarationMap --declaration && node --import ./loader.mjs esbuild.ts","test":"node --import ./loader.mjs --test test/index.test.ts","prepack":"npm run build","prepublishOnly":"npm test && npm run lint","preversion":"npm run lint","version":"npm run lint && git add -A src","postversion":"git push && git push --tags"},"author":{"name":"Apeleg Limited"},"license":"ISC","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"gitHead":"51d5ab1ca27340540d3bc1b45ddaa3100d5ac483","_id":"@apeleghq/http-media-type-negotiator@1.0.8","bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-++L55qZ9p6rSGa7YWXwoWXNijqz8jL4tFvd0w+WkVUVxLoLrOCNpJXrsXIzrWBsftoldjpROZLFlZtNiS19dtA==","shasum":"27232597681917b502e8af201fa8db1b4d79334f","tarball":"https://registry.npmjs.org/@apeleghq/http-media-type-negotiator/-/http-media-type-negotiator-1.0.8.tgz","fileCount":77,"unpackedSize":124721,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fhttp-media-type-negotiator@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDCBgzy+eB869xUiRyKsxpx+K6mfwuZALKdTgITdzt9WgIgUFFXqcM4TKYVE4p0iWgxNlwGv0r09VBkUiKOkXPk0xk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b37a42de-aa47-4f4d-8115-27b0b019a6ab"}},"directories":{},"maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/http-media-type-negotiator_1.0.8_1760394709686_0.6505141522538394"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-17T22:55:33.281Z","modified":"2025-10-13T22:31:50.366Z","1.0.0":"2025-09-17T22:55:33.554Z","1.0.1":"2025-09-17T23:20:01.381Z","1.0.2":"2025-09-21T00:01:14.237Z","1.0.3":"2025-09-22T16:49:21.816Z","1.0.4":"2025-10-02T23:51:39.528Z","1.0.5":"2025-10-03T13:13:47.344Z","1.0.6":"2025-10-11T16:10:41.474Z","1.0.7":"2025-10-13T12:12:33.464Z","1.0.8":"2025-10-13T22:31:49.882Z"},"bugs":{"url":"https://github.com/ApelegHQ/ts-http-media-type-negotiator/issues"},"author":{"name":"Apeleg Limited"},"license":"ISC","homepage":"https://github.com/ApelegHQ/ts-http-media-type-negotiator#readme","keywords":["http","content-negotiation","accept-header","media-type","mime","rfc9110","parser","negotiation","qvalue","content-type"],"repository":{"type":"git","url":"git+https://github.com/ApelegHQ/ts-http-media-type-negotiator.git"},"description":"RFC-aware HTTP media type negotiator - parses and normalises Accept headers and media types (RFC 9110), supports q-value ranking, wildcard matching, and a permissive mode for real-world headers.","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"readme":"# HTTP Media Type Negotiator\r\n\r\n ![NPM Downloads](https://img.shields.io/npm/dw/@apeleghq/http-media-type-negotiator?style=flat-square)\r\n\r\n\r\n---\r\n## 🚀 Features\r\n\r\n- No runtime dependencies.\r\n- Runtime and framework agnostic.\r\n- Negotiates HTTP media types (Accept header) against server-supported types\r\n  following RFC 9110 §5.6.\r\n- Parses and normalises media types and Accept headers with optional permissive\r\n  mode to tolerate common real-world deviations.\r\n- Supports q-value parsing and ranking.\r\n- Tie-breaking by specificity, shared parameters, then server order for\r\n  deterministic results.\r\n- Exposes both a reusable factory for repeated negotiation and a one-shot\r\n  convenience function.\r\n- It also exposes convenience functions (also used internally) for:\r\n  * Parsing media types (`parseMediaType`)\r\n  * Normalising said media types (`normaliseMediaType`)\r\n  * Parsing `Accept` heades (`parseAcceptHeader`)\r\n\r\n## 💻 Installation\r\n\r\nInstall from npm or yarn:\r\n\r\n```sh\r\nnpm install @apeleghq/http-media-type-negotiator\r\n```\r\n\r\nor\r\n\r\n```sh\r\nyarn add @apeleghq/http-media-type-negotiator\r\n```\r\n\r\n## 📚 Usage\r\n\r\n### One-shot negotiation\r\n\r\nUse the convenience function when you just need to negotiate once:\r\n\r\n```javascript\r\nimport { negotiateMediaType } from '@apeleghq/http-media-type-negotiator';\r\n\r\nconst available = [\r\n  'text/plain; charset=utf-8',\r\n  'application/json',\r\n];\r\n\r\nconst best = negotiateMediaType(available, 'text/*;q=0.9, application/json;q=0.8');\r\n// best -> 'text/plain; charset=utf-8'\r\n```\r\n\r\n### Reusable negotiator (recommended for repeated calls)\r\n\r\nCreate a negotiator once for a fixed set of server-supported media types to\r\navoid reparsing:\r\n\r\n```javascript\r\nimport { negotiateMediaTypeFactory } from '@apeleghq/http-media-type-negotiator';\r\n\r\nconst available = [\r\n  'text/plain; charset=utf-8',\r\n  'application/json',\r\n];\r\n\r\nconst negotiate = negotiateMediaTypeFactory(available);\r\n\r\n// Later, for each request:\r\nconst best1 = negotiate('application/json');\r\nconst best2 = negotiate('text/*;q=0.9, application/json;q=0.8');\r\n```\r\n\r\n### Permissive mode\r\n\r\nPass the optional permissive flag to tolerate non-RFC-compliant inputs\r\n(extra whitespace, empty parameter values, flag parameters like `;foo`, and\r\ntruncated quoted values at EOF):\r\n\r\n```javascript\r\nconst best = negotiate(acceptHeader, true); // permissive parsing\r\n```\r\n\r\n### Compatibility with `negotiator`\r\n\r\nAn API that emulates the [`negotiator`](https://github.com/jshttp/negotiator)\r\npackage is available via the `@apeleghq/http-media-type-negotiator/compat/Negotiator`\r\nexport.\r\n\r\nThe `mediaType` and `mediaTypes` interfaces are exposed, although they don't\r\nbehave identically to those in `negotiator`:\r\n\r\n  * `mediaTypes` will return at most a single media type if the\r\n    `availableMediaTypes` parameter is provided.\r\n  * The negotiation algorithm may produce different results.\r\n\r\n## ⚙️ Behaviour notes\r\n\r\n- Returned strings are the original server-provided strings from the\r\n  `availableMediaTypes` array.\r\n- Q-values are parsed and converted to integer weights between **0** and\r\n  **1000** (1.0 → 1000). Entries with `q=0` are ignored.\r\n- Matching supports exact `type/subtype`, type with wildcard subtype\r\n  (e.g. `text/*`), and `*/*`.\r\n- When multiple acceptable ranges tie on `q`, the negotiator prefers:\r\n  1. More specific type/subtype (non-`*`),\r\n  2. Media-range that shares the most non-q parameters with the available type,\r\n  3. Server order (the order of available types provided).\r\n- The parser returns substrings for `Accept` entries and reparses them into\r\n  structured media types internally; this keeps the implementation\r\n  allocation-light.\r\n- Parameter values are _not_ normalised and evaluated as exact matches\r\n  (meaning case-sensitively).\r\n\r\n## ✅ Recommended usage pattern\r\n\r\n- If negotiating repeatedly for the same server-supported types, use\r\n  `negotiateMediaTypeFactory` once and reuse the returned function to avoid\r\n  reparsing available types.\r\n- Normalise case if you need canonical string comparisons beyond what the\r\n  negotiator provides.\r\n\r\n## 🤝 Contributing\r\n\r\nContributions welcome. Please open issues or pull requests on the repository.\r\nConsider adding unit tests for edge cases and performance benchmarks if you\r\nchange parsing behaviour.\r\n\r\n## 📜 License\r\n\r\nThis project is released under the ISC license. See the `LICENSE` file\r\nfor details.\r\n","readmeFilename":"README.md"}