{"_id":"@apeleghq/multipart-parser","_rev":"7-c7aecf022f32d4399280e937ae93cda6","name":"@apeleghq/multipart-parser","dist-tags":{"latest":"1.0.21"},"versions":{"1.0.15":{"name":"@apeleghq/multipart-parser","version":"1.0.15","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.15","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"3aff8269c22f0a07d054254efc11e762314d1f36","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.15.tgz","fileCount":48,"integrity":"sha512-cnKVrvLhdyHn5fGKGIGh7P7s/VV2hQe/8K+gNbxDdAy2o/0s+KkyG4lLW2stvdjYOtqMugVsRYhDE5yMxp7V9A==","signatures":[{"sig":"MEQCIAP6zJjPRlW5crvM2q0G5AYNqtpWJwkKYOC0SVDWVPz3AiBOO0Gx9M7vmI22GSRgatUyFeH6gE0ryn8LudlrzxBAYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43516},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"fd4e14dc8c26622789c857bb7a0f824f215b5441","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --loader ts-node/esm test/encodeMultipartMessage.test.ts && node --loader ts-node/esm test/parseMultipartMessage.test.ts","build":"npm run ts:declaration && node esbuild.mjs","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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"10.7.0","description":"TypeScript streaming parser for MIME multipart messages","directories":{},"_nodeVersion":"18.20.4","_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","prettier":"^3.3.3","typescript":"^5.6.2","@types/node":"^22.5.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@typescript-eslint/parser":"^8.5.0","@typescript-eslint/eslint-plugin":"^8.5.0"},"_npmOperationalInternal":{"tmp":"tmp/multipart-parser_1.0.15_1726072711679_0.2359149920988901","host":"s3://npm-registry-packages"}},"1.0.16":{"name":"@apeleghq/multipart-parser","version":"1.0.16","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.16","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"d8543e2ce0b8ae14e6018229d3e91e1e79c9fd0e","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.16.tgz","fileCount":48,"integrity":"sha512-eAw3iJunvJiGjiajvyqoAyB/W0s214nNyp1SnziZDFLxFze2bW2YdjJ63y3o92lzfjrFHhSh7oP56/k/Dbyhog==","signatures":[{"sig":"MEYCIQD/Zwjq5RvBiwn/T6XlxW9P7Qjn/Go2B4XQolZxByc+sQIhANNFC5tMXY1omIrKWCM02WzwDPeGBhStu3VGbclPo/K9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43598},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"25b02716d39d76b86658b53b3d3dbc87edbc3259","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"npm run ts: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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript streaming parser for MIME multipart messages","directories":{},"_nodeVersion":"18.20.7","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.23.0","esbuild":"^0.25.1","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/node":"^22.13.11","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","@typescript-eslint/parser":"^8.27.0","@typescript-eslint/eslint-plugin":"^8.27.0"},"_npmOperationalInternal":{"tmp":"tmp/multipart-parser_1.0.16_1742789799798_0.6332289416521171","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@apeleghq/multipart-parser","version":"1.0.17","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.17","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"13918b32028f406bc3a1cfa4ae35d04b68ec560b","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.17.tgz","fileCount":48,"integrity":"sha512-UB1mVRUyk6eFtkFZ0m3ZVbRTsg3cW5u8xsFd9IyQm3tO1wU1s0mE3dWBXoxiKCBfDx8SybKVmwUel8ytWg0Mng==","signatures":[{"sig":"MEYCIQD5JfPrqNsvgS+de4rTeTo4WJFTmELkLLKBzNKn2IXo+gIhAOxARmSHLU2QMFIavkkGLp0XCFL90LkbFR9yQRr/XBhv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44872},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"da9cc683b8165df2b6c1bb8bb4bd367cf41f6ee5","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"npm run ts: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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript streaming parser for MIME multipart messages","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","esbuild":"^0.25.4","globals":"^16.1.0","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.21","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/multipart-parser_1.0.17_1747788031281_0.7095018959438824","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@apeleghq/multipart-parser","version":"1.0.18","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.18","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"ebbbd642a80290d2969a3478ffe0f4eac221e7d4","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.18.tgz","fileCount":48,"integrity":"sha512-4H++A5cMIXNJtdi5cVRvNIvIdILrFma8xuJGT2k2Wn1e++dTVhlZKnEwcwknB7z025rw+n96ns58o76lM5x4dg==","signatures":[{"sig":"MEQCIC0Nh5AUa50I9XgqAmpcO/I5qrLl6xTh0PvXeuPxoio8AiBqebd4AcXP79/8mzqxehfgOtBuHVAuBU8BEtJ6uSAN+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":44260},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"0e3a72d9d7053d9980e0cfe533c70270f91b2a9d","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"npm run ts: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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript streaming parser for MIME multipart messages","directories":{},"_nodeVersion":"18.20.8","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.27.0","esbuild":"^0.25.4","globals":"^16.1.0","ts-node":"^10.9.2","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.21","@eslint/eslintrc":"^3.3.1","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/multipart-parser_1.0.18_1747788429930_0.2699983975204334","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@apeleghq/multipart-parser","version":"1.0.19","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.19","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"adda4b6c8e8d83551095ba95c3c5146862fec307","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.19.tgz","fileCount":45,"integrity":"sha512-xVHaoma2KHDXeO38zDnAT8ZLRPrafGCsVkcOVb8lfHOzY4eATD2VUpbxzTTWlc0Rjb2RDZ3WAGcVxzWGSNlGPg==","signatures":[{"sig":"MEUCIF5tprCXHKKTwQ6AHWruuYSCzepG8Rjh6HhAw7Mg0r70AiEA9SEjRTtA4dNQi8m6sktghTPFrkFHzOPfpPudn74NGkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42803},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"c8b1d607629bfee761d2ecbfa580d8e89e81e54b","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"npm run ts: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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7945e2af-1c46-4cc5-8f0b-bf53ffbd739b"}},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"11.6.0","description":"TypeScript streaming parser for MIME multipart messages","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/multipart-parser_1.0.19_1760196795228_0.012662045171284886","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@apeleghq/multipart-parser","version":"1.0.20","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"author":{"name":"Apeleg Limited"},"license":"ISC","_id":"@apeleghq/multipart-parser@1.0.20","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-multipart-parser#readme","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"dist":{"shasum":"92c3072430e67f3a5e0521973db2b35f53e1fe76","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.20.tgz","fileCount":57,"integrity":"sha512-1rAWDyvNH/g0w4mvw8bW+iF4pYR9yM28Apr9jQ1+7pE04b0yNzc46PvL5tmfcDP8fHhLqiPmN1iURVq/2trpyg==","signatures":[{"sig":"MEQCIDUZDZ/iF1+eSqSBpVO1+DD3v0bR9/zKnNBSGTXYl3m5AiARLC1ZR5Z5DinR9jACZkMBM+FxOOhes303S5heaAucfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47392},"main":"dist/index.cjs","type":"module","types":"./dist/index.d.cts","module":"./dist/index.mjs","engines":{"npm":">=8.0.0","node":">=16.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}}},"gitHead":"bbb6c9d0faafafbdd4ec6894e3ec7e53177e3805","scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","test":"node --import ./loader.mjs --test test/index.test.ts","build":"npm run ts: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","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7945e2af-1c46-4cc5-8f0b-bf53ffbd739b"}},"repository":{"url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git","type":"git"},"_npmVersion":"11.6.0","description":"TypeScript streaming parser for MIME multipart messages","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/multipart-parser_1.0.20_1760287521792_0.7471538889936373","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@apeleghq/multipart-parser","version":"1.0.21","description":"TypeScript streaming parser for MIME multipart messages","main":"dist/index.cjs","types":"./dist/index.d.cts","module":"./dist/index.mjs","type":"module","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./encodeMultipartMessage":{"import":{"types":"./dist/exports/encodeMultipartMessage.d.ts","default":"./dist/encodeMultipartMessage.mjs"},"require":{"types":"./dist/exports/encodeMultipartMessage.d.cts","default":"./dist/encodeMultipartMessage.cjs"}},"./parseMessage":{"import":{"types":"./dist/exports/parseMessage.d.ts","default":"./dist/parseMessage.mjs"},"require":{"types":"./dist/exports/parseMessage.d.cts","default":"./dist/parseMessage.cjs"}},"./parseMultipartMessage":{"import":{"types":"./dist/exports/parseMultipartMessage.d.ts","default":"./dist/parseMultipartMessage.mjs"},"require":{"types":"./dist/exports/parseMultipartMessage.d.cts","default":"./dist/parseMultipartMessage.cjs"}}},"scripts":{"lint":"eslint . --ext .js,.jsx,.ts,.tsx","lint:fix":"eslint . --ext .js,.jsx,.ts,.tsx --fix","ts:declaration":"tsc --build --emitDeclarationOnly --declarationMap --declaration","build":"npm run ts: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"},"repository":{"type":"git","url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git"},"engines":{"npm":">=8.0.0","node":">=16.0.0"},"author":{"name":"Apeleg Limited"},"license":"ISC","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"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"},"dependencies":{"@apeleghq/http-media-type-negotiator":"^1.0.6"},"gitHead":"21c49e3a052f64212e585efeac5a39180c58ed05","_id":"@apeleghq/multipart-parser@1.0.21","bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"homepage":"https://github.com/ApelegHQ/ts-multipart-parser#readme","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-PFwv38chHQc2/e0+C+vbDMTN/IDss/5gtvt5Eaj8XeEZcRGWq4Wr2OS8eUrgy0vmzRKYxfdYVcvY9ywk1PP+GA==","shasum":"6806fc0cbc5a13b839d23aee0cb7f86510adb707","tarball":"https://registry.npmjs.org/@apeleghq/multipart-parser/-/multipart-parser-1.0.21.tgz","fileCount":57,"unpackedSize":68379,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apeleghq%2fmultipart-parser@1.0.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEQlsZeabEFPayeFfHI1BdVmGMFG90ghFmzvZy0iCJ/TAiAQj89RvqMpldSqj533O3aVnB4LjKrUwn11XmGcwXtgpw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7945e2af-1c46-4cc5-8f0b-bf53ffbd739b"}},"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/multipart-parser_1.0.21_1760331337680_0.2914324848264158"},"_hasShrinkwrap":false}},"time":{"created":"2024-09-11T16:38:31.566Z","modified":"2025-10-13T04:55:38.314Z","1.0.15":"2024-09-11T16:38:31.908Z","1.0.16":"2025-03-24T04:16:39.975Z","1.0.17":"2025-05-21T00:40:31.485Z","1.0.18":"2025-05-21T00:47:10.127Z","1.0.19":"2025-10-11T15:33:15.437Z","1.0.20":"2025-10-12T16:45:22.079Z","1.0.21":"2025-10-13T04:55:37.861Z"},"bugs":{"url":"https://github.com/ApelegHQ/ts-multipart-parser/issues"},"author":{"name":"Apeleg Limited"},"license":"ISC","homepage":"https://github.com/ApelegHQ/ts-multipart-parser#readme","keywords":["form-data","formdata","mime","mime","multipart","multipart/form-data","multipart/mixed","multipart/related","parser","rfc2046","rfc2388","rfc7568"],"repository":{"type":"git","url":"git+https://github.com/ApelegHQ/ts-multipart-parser.git"},"description":"TypeScript streaming parser for MIME multipart messages","maintainers":[{"name":"er-ci-bot","email":"npmjs.com+er-ci-bot+fd8b22b478b6fac7@apeleg.com"},{"name":"corrideat","email":"3857362+corrideat@users.noreply.github.com"}],"readme":"# Multipart Message Parser\r\n\r\n [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Exact-Realty_ts-multipart-parser&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Exact-Realty_ts-multipart-parser)\r\n [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=Exact-Realty_ts-multipart-parser&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=Exact-Realty_ts-multipart-parser)\r\n [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=Exact-Realty_ts-multipart-parser&metric=bugs)](https://sonarcloud.io/summary/new_code?id=Exact-Realty_ts-multipart-parser)\r\n [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Exact-Realty_ts-multipart-parser&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=Exact-Realty_ts-multipart-parser)\r\n [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Exact-Realty_ts-multipart-parser&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=Exact-Realty_ts-multipart-parser)\r\n ![NPM Downloads](https://img.shields.io/npm/dw/@apeleghq/multipart-parser?style=flat-square)\r\n\r\nThis is a library for parsing MIME multipart messages, such as those used in\r\nHTTP requests and email messages, written in TypeScript. It provides an\r\neasy-to-use async generator that returns the parsed headers and body of each\r\npart in a multipart message. Nested multipart messages are supported.\r\n\r\n## Features\r\n\r\n  * Parses multipart messages according to the\r\n    [specification](https://www.ietf.org/rfc/rfc2046.html#section-5.1)\r\n  * Supports nested multipart messages\r\n  * Lightweight and fast\r\n  * Written in TypeScript, but can be used with plain JavaScript as well\r\n  * Well-tested\r\n\r\n## 🚀 Installation\r\n\r\nYou can install the library using either `npm` or `yarn`:\r\n\r\n```sh\r\nnpm install @apeleghq/multipart-parser\r\n```\r\n\r\n```sh\r\nyarn add @apeleghq/multipart-parser\r\n```\r\n\r\n## 🎬 Usage\r\n\r\nThe library exports the function `parseMultipartMessage`, which returns an async\r\ngenerator that yields objects with the headers and body (as a `Uint8Array`) of\r\neach part in the multipart message.\r\n\r\n### 📚 API\r\n\r\n#### `parseMultipartMessage(stream: ReadableStream, boundary: string): AsyncGenerator`\r\n\r\nThis function takes a `ReadableStream` and a boundary string as arguments, and\r\nreturns an asynchronous generator that yields objects with the following\r\nproperties:\r\n\r\n  * `headers`: a `Headers` object containing the headers of the current part\r\n  * `body`: a `Uint8Array` containing the body of the current part, or `null` if\r\n    the part is empty.\r\n  * `parts`: a nested iterator of the same structure for any parts within the\r\n    current part, if the part's `Content-Type` header indicates that it is a\r\nmultipart message.\r\n\r\n#### `boundaryRegex: RegExp`\r\n\r\nA regular expression that can be used to validate a boundary string.\r\n\r\n#### `boundaryMatchRegex: RegExp`\r\n\r\nA regular expression that can be used to extract a boundary string from a\r\n`Content-Type` header.\r\n\r\n#### `encodeMultipartMessage(boundary: string, msg: AsyncIterable<TDecodedMultipartMessage>): ReadableStream<ArrayBuffer>`\r\n\r\nThis function takes a boundary string and an array of messages as arguments and returns a `ReadableStream` that can be read to obtain a multipart message.\r\n\r\n`TDecodedMultipartMessage` is defined as an object with the following fields:\r\n\r\n  * `headers`: a `Headers` object containing the headers of the current part\r\n  * `body` (optional): The body of the current part, or `null` if the part is\r\n     empty. It can be any of the following types: `ArrayBuffer`, `Blob`, `ReadableStream` or any typed array, such as `Uint8Array`.\r\n  * `parts` (optional): An async or sync iterable of one element or more of\r\n     the same type (`TDecodedMultipartMessage`), for nested messages. If both\r\n     `body` and `parts` are specified, `body` takes precedence.\r\n\r\n### Example\r\n\r\n```js\r\nimport { parseMultipartMessage } from '@apeleghq/multipart-message-parser';\r\n\r\nconst decoder = new TextDecoder();\r\n\r\nconst stream = ... // a ReadableStream containing the multipart message\r\nconst boundary = 'my-boundary'; // the boundary of the multipart message\r\n\r\nfor await (const part of parseMultipartMessage(stream, boundary)) {\r\n  console.log(part.headers.get('content-type'));\r\n  console.log(decoder.decode(part.body));\r\n}\r\n```\r\n\r\n## 🤝 Contributing\r\n\r\nWe welcome contributions to this project! Feel free to submit a pull request or\r\nopen an issue if you find a bug or have a feature request.\r\n\r\n## 📄 License\r\n\r\nThis library is licensed under the ISC License, see LICENSE for more\r\ninformation.\r\n","readmeFilename":"README.md"}