{"_id":"@bernierllc/file-uploader","_rev":"12-adeeaa39fcfa328d28216d661e256634","name":"@bernierllc/file-uploader","dist-tags":{"latest":"0.7.1"},"versions":{"0.1.0":{"name":"@bernierllc/file-uploader","version":"0.1.0","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"1d520eb1794866d5e8dfe517fef94474758d487a","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.1.0.tgz","fileCount":16,"integrity":"sha512-QiVzwYXcKXYOLUuUv8PTy8HNQlE7KWCmGWQ8T5vVbSV3NPZeLzYE6+S/fy2LJRlPxdBPs9b9jzz0AQwNw/p3Zg==","signatures":[{"sig":"MEYCIQDUUcPGcEW10zx/oMLGqHj9ow7swdaymGtqxFJMZh4ZEwIhAMpmXjzZfo/T/aXjUCIVQerOAC5Sy/TfNzXGQrYD/OUf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41623},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.1.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/59a7ddd115fe3a724f91d207ff44e256/bernierllc-file-uploader-0.1.0.tgz","_integrity":"sha512-QiVzwYXcKXYOLUuUv8PTy8HNQlE7KWCmGWQ8T5vVbSV3NPZeLzYE6+S/fy2LJRlPxdBPs9b9jzz0AQwNw/p3Zg==","_npmVersion":"11.7.0","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.1.0_1766087445326_0.40893216236078267","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bernierllc/file-uploader","version":"0.1.1","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.1.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"4e2a5bf6f964dc3083c177cde8fa7a57a0c8058e","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.1.1.tgz","fileCount":17,"integrity":"sha512-8c01RQyGbvS12uivYOkg+9PPcBzkL/RTnipI74K44ECbPD7uGyZ/OFqW2CJGRGYzYouJ+odI7EcHsYrBpXkv9g==","signatures":[{"sig":"MEUCIC4sftmepTl3EvRBkC5ieoFqlDpZfRhC7JykGIEhBOlCAiEA5Bo/u5kAETjcMC6Kjd5nIS/V4cj1wfFbrBXojNVL8qc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41833},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.1.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/tmp/80b5ad1ebbaa5920c76dc9d67643554a/bernierllc-file-uploader-0.1.1.tgz","_integrity":"sha512-8c01RQyGbvS12uivYOkg+9PPcBzkL/RTnipI74K44ECbPD7uGyZ/OFqW2CJGRGYzYouJ+odI7EcHsYrBpXkv9g==","_npmVersion":"11.7.0","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.1.1_1766437769200_0.9654407696875138","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bernierllc/file-uploader","version":"0.1.2","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.1.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"c598bd7c8e6728109ffaf1cc8fa5239213dd3dd5","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.1.2.tgz","fileCount":17,"integrity":"sha512-kQSKzH3FSH6+TAyDhwW01UHM9KKEsiIbGyDrrlxC/BWcJyyKq0RV2PzMAj7P5jX4SPI3UFTn6P2sKEKTZ5KpBQ==","signatures":[{"sig":"MEYCIQDBIzIIe+bG172kxMYTw1qxsyIE7zXiHGzitTbwxfusAQIhAOWCI0iZnludMwgo/UX2ouiwYVBhRqRFBKQPSICgf7Tt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42015},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.1.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/tmp/8aa9a8a1d301b3bdf5454eec9f145b86/bernierllc-file-uploader-0.1.2.tgz","_integrity":"sha512-kQSKzH3FSH6+TAyDhwW01UHM9KKEsiIbGyDrrlxC/BWcJyyKq0RV2PzMAj7P5jX4SPI3UFTn6P2sKEKTZ5KpBQ==","_npmVersion":"11.7.0","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.1.2_1766454402988_0.8264583843809021","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/file-uploader","version":"0.3.0","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"7fb38030189fbd54c0f4656299a7c704de062e95","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.3.0.tgz","fileCount":17,"integrity":"sha512-yXMO3h3su5D/YDIUitU5NUB4K6AT553z5YnPeezz3dcTHYBshade0Sdtx2C6dNZ8jSktm5403JO8mJoq3LFGXw==","signatures":[{"sig":"MEQCID3xVgRu0+02yAMLyGGXlcOVHRYC+QWsi09JJb8aJPsJAiBBcos1LsnTGiAXCJf54YkkRmrUHgOIenytCffMWr18+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43689},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.19.6","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.3.0_1767642440461_0.7016402791658936","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@bernierllc/file-uploader","version":"0.3.2","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.3.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"956178ab8a6ed657ea882713aed1bf4ade0dceda","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.3.2.tgz","fileCount":17,"integrity":"sha512-HvzRnuBm/jKPjWTami9D53+LyWl2rYyEmAi/qWHJHdksX2M3BlIAAvbo4jP9lJv9+albwswd0qk4gCEJzHH2RQ==","signatures":[{"sig":"MEQCIDInJtRdLloINmYkSfxq0JYj4qiumNL0tXbY3aKlMM9sAiBqjKlzFwQgRSnZtABETLaTvBoUcYz7Pe5tUpVsMcPaYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44045},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.3.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.3.2.tgz","_integrity":"sha512-HvzRnuBm/jKPjWTami9D53+LyWl2rYyEmAi/qWHJHdksX2M3BlIAAvbo4jP9lJv9+albwswd0qk4gCEJzHH2RQ==","_npmVersion":"11.11.0","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.0","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.3.2_1773163182892_0.13123704429631555","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@bernierllc/file-uploader","version":"0.3.3","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.3.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"5a6a997fe3a187abfa7feca18b0499a1bf6a1170","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.3.3.tgz","fileCount":17,"integrity":"sha512-DqUkQUpIN0/InIVyCBdRBPKNfFxBoESFD+Xz5XHo3wstK3dNOdZ1GlmwJ0iw8YnL639tI3LioDuI+a8DZyjH+g==","signatures":[{"sig":"MEYCIQCupnz+KPxVJejtDDxBXUUDL23SBBQrpoELpO6E41eD6QIhAOLCClbW855rhGGjPHdSw9TSC3B5UHX2mALp1Qyr1X9K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44252},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.3.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.3.3.tgz","_integrity":"sha512-DqUkQUpIN0/InIVyCBdRBPKNfFxBoESFD+Xz5XHo3wstK3dNOdZ1GlmwJ0iw8YnL639tI3LioDuI+a8DZyjH+g==","_npmVersion":"11.14.1","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.3.3_1779133466074_0.041685511028166644","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@bernierllc/file-uploader","version":"0.3.4","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.3.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"d7339b8e907f7587fd25f1f6dc3e2a24cd8e2ccd","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.3.4.tgz","fileCount":17,"integrity":"sha512-c/Dyr63gp/oIpIrS0907x9j7SyYCsnZ0erwVkjqmTV0VqDF5ydiI54BdzLICa3EQYMDXdb8ELZCqbOIaLYt4dA==","signatures":[{"sig":"MEYCIQDC4s2wD4f647uwucVIRRT4yeciB0zy1y89UQDU2+MhpgIhANtdwefbWLbGO4rZ3dvoHjW3AyQZzgH6DA58VB36Onq+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44459},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.3.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.3.4.tgz","_integrity":"sha512-c/Dyr63gp/oIpIrS0907x9j7SyYCsnZ0erwVkjqmTV0VqDF5ydiI54BdzLICa3EQYMDXdb8ELZCqbOIaLYt4dA==","_npmVersion":"11.14.1","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.3.4_1779157217112_0.9075361359375929","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@bernierllc/file-uploader","version":"0.3.5","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.3.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"d7b0228cd0e0dbcb45d545b5e035b4c87363f4c4","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.3.5.tgz","fileCount":17,"integrity":"sha512-LKrIsxQUZ41x3RGxringyA2W3uYAoxzQblw5o5ehz3nlxno4qFcr3EepXVNzgXvtq+43n23j9GdcoWHmExRUDg==","signatures":[{"sig":"MEUCIBmYOn30Uict1YTZqL7ET96eDnXPws4eMdhYgF576MwwAiEAyI8sDUusskO9swNMyyVx5SVNDJLjJojnn8trO6i0zCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44666},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.3.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.3.5.tgz","_integrity":"sha512-LKrIsxQUZ41x3RGxringyA2W3uYAoxzQblw5o5ehz3nlxno4qFcr3EepXVNzgXvtq+43n23j9GdcoWHmExRUDg==","_npmVersion":"11.14.1","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.4.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.3.5_1779221331792_0.8058608274668608","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/file-uploader","version":"0.5.0","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.5.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"15aa339e15ef21d833a35ada702a29e301c7d37d","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.5.0.tgz","fileCount":11,"integrity":"sha512-aMVAj4pb51m+OrCjMl3/dFfCbqTo4IKZTZsNVT3UA+2Qxy7am3VbE/Kv53uv84hMqePfSRZdXq8FFYlaB2gBMQ==","signatures":[{"sig":"MEUCIQDsllbCxQX076IDSeh/eERZdOXuRrsnRp6bbgDXBErOfwIgBwsYNDG+3J/qdFup8h2ic4f3wNVNHuPCAuUxLy4vxoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17271},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.5.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.5.0.tgz","_integrity":"sha512-aMVAj4pb51m+OrCjMl3/dFfCbqTo4IKZTZsNVT3UA+2Qxy7am3VbE/Kv53uv84hMqePfSRZdXq8FFYlaB2gBMQ==","_npmVersion":"11.14.1","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.5.0_1779241176798_0.4705023720190431","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bernierllc/file-uploader","version":"0.6.0","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.6.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"650865a47f0329b943754d9cf74258f8a5777c92","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.6.0.tgz","fileCount":11,"integrity":"sha512-88qAnKJBBitnDmsu+91WUIURhnwNmnEk6lJlVB0+SZngDy8yOCRjyAiCfEFE2v0NB+lP0Yiqu4mrwKFQXbdu5w==","signatures":[{"sig":"MEQCIB+DluxSHIwZ+36eaF8UCEUs271sgSKlR3V6T+BBNDgpAiAZ7ystfqXCLP2hLiT0ZmTaybq2KRju8l4Y+DEXi/sO8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17271},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.6.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.6.0.tgz","_integrity":"sha512-88qAnKJBBitnDmsu+91WUIURhnwNmnEk6lJlVB0+SZngDy8yOCRjyAiCfEFE2v0NB+lP0Yiqu4mrwKFQXbdu5w==","_npmVersion":"11.14.1","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^9.0.0","busboy":"^1.6.0","@bernierllc/logger":"1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.6.0_1779249921634_0.8319083446188573","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@bernierllc/file-uploader","version":"0.7.0","keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/file-uploader@0.7.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"dist":{"shasum":"14f4d0542d071abddcc0978dab4007447cc78361","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.7.0.tgz","fileCount":11,"integrity":"sha512-UT/MqwXmrz0co1rMuEwmdG83/cIRNbWGf1cwV1ZmbOHVrphMv/vRtcixLNbS9o5nAMO1yeAX+oWeRW3ej5N5OQ==","signatures":[{"sig":"MEQCIEJSt4qZdUgwgfqle88dqPlbfuExnRbLAiR/1zxKOYjbAiAfD1KTDL6xzoleL++7pircewBBwxUTrh79k+7s+JMPWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17243},"main":"dist/index.js","type":"module","_from":"file:bernierllc-file-uploader-0.7.0.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src __tests__ --ext .ts","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src __tests__ --ext .ts --fix","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.7.0.tgz","_integrity":"sha512-UT/MqwXmrz0co1rMuEwmdG83/cIRNbWGf1cwV1ZmbOHVrphMv/vRtcixLNbS9o5nAMO1yeAX+oWeRW3ej5N5OQ==","_npmVersion":"11.15.0","description":"Multipart file upload handler with validation and progress tracking","directories":{},"_nodeVersion":"20.20.2","dependencies":{"uuid":"^11.1.1","busboy":"^1.6.0","@bernierllc/logger":"1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/busboy":"^1.5.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-uploader_0.7.0_1779840641952_0.35959463179550566","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@bernierllc/file-uploader","version":"0.7.1","description":"Multipart file upload handler with validation and progress tracking","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"keywords":["upload","multipart","file","media","form-data"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","dependencies":{"busboy":"^1.6.0","uuid":"^11.1.1","@bernierllc/logger":"1.7.1"},"devDependencies":{"@types/busboy":"^1.5.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.5.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","typescript":"^5.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","test":"node --experimental-vm-modules node_modules/jest/bin/jest.js","test:run":"node --experimental-vm-modules node_modules/jest/bin/jest.js --no-watch","test:coverage":"node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage --no-watch","lint":"eslint src __tests__ --ext .ts","lint:fix":"eslint src __tests__ --ext .ts --fix","clean":"rimraf dist"},"_id":"@bernierllc/file-uploader@0.7.1","_integrity":"sha512-zaulna8Ff918rgg/85h1JSiKAP1AKLvU4PjnnMkdImRGttXKwzQjh2XYuq/BQ3dnfFjQSUtbFA06DOc+axedKw==","_resolved":"/home/runner/work/tools/tools/packages/core/file-uploader/bernierllc-file-uploader-0.7.1.tgz","_from":"file:bernierllc-file-uploader-0.7.1.tgz","_nodeVersion":"24.18.0","_npmVersion":"12.0.1","dist":{"integrity":"sha512-zaulna8Ff918rgg/85h1JSiKAP1AKLvU4PjnnMkdImRGttXKwzQjh2XYuq/BQ3dnfFjQSUtbFA06DOc+axedKw==","shasum":"cc830b190a4d93c15c458222ce5ac1758bb698d5","tarball":"https://registry.npmjs.org/@bernierllc/file-uploader/-/file-uploader-0.7.1.tgz","fileCount":11,"unpackedSize":17243,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHGbQuFN8Xt1WrSZB+/m/oo5nP5pCL4tbPxDx1OtkRrkAiAQCM8s8v1g4rkZLyR1ZXj7U6Ql8230q3mpvpjGBQHthw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:02e8ea68-3f5b-466f-a6db-10b2b5d0637b"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-uploader_0.7.1_1784015617985_0.5858967527119459"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-18T19:50:45.267Z","modified":"2026-07-14T07:53:38.293Z","0.1.0":"2025-12-18T19:50:45.496Z","0.1.1":"2025-12-22T21:09:29.361Z","0.1.2":"2025-12-23T01:46:43.115Z","0.3.0":"2026-01-05T19:47:20.617Z","0.3.2":"2026-03-10T17:19:43.057Z","0.3.3":"2026-05-18T19:44:26.266Z","0.3.4":"2026-05-19T02:20:17.248Z","0.3.5":"2026-05-19T20:08:51.928Z","0.5.0":"2026-05-20T01:39:36.973Z","0.6.0":"2026-05-20T04:05:21.787Z","0.7.0":"2026-05-27T00:10:42.103Z","0.7.1":"2026-07-14T07:53:38.138Z"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","keywords":["upload","multipart","file","media","form-data"],"description":"Multipart file upload handler with validation and progress tracking","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/file-uploader\n\nMultipart file upload handler with validation and progress tracking\n\n## Installation\n\n```bash\nnpm install @bernierllc/file-uploader\n```\n\n## Features\n\n- **Multipart form parsing** - Handles multipart/form-data uploads\n- **File validation** - Size limits, MIME type checking, file count limits\n- **Progress tracking** - Real-time upload progress callbacks\n- **Framework agnostic** - Works with Express, Koa, Fastify, etc.\n- **Stream-based** - Efficient handling of large files\n- **TypeScript support** - Full type safety\n\n## Usage\n\n### Basic Usage\n\n```typescript\nimport { FileUploader } from '@bernierllc/file-uploader';\nimport express from 'express';\n\nconst app = express();\nconst uploader = new FileUploader({\n  maxFileSize: 10 * 1024 * 1024, // 10MB\n  allowedMimeTypes: ['image/jpeg', 'image/png', 'image/webp'],\n  onProgress: (progress) => {\n    console.log(`Upload progress: ${progress.percentage}%`);\n  }\n});\n\napp.post('/upload', async (req, res) => {\n  try {\n    const results = await uploader.handleMultipart(req);\n    res.json({ files: results });\n  } catch (error) {\n    res.status(400).json({ error: error.message });\n  }\n});\n```\n\n### File Validation\n\n```typescript\nconst uploader = new FileUploader({\n  maxFileSize: 5 * 1024 * 1024, // 5MB\n  allowedMimeTypes: ['image/jpeg', 'image/png'],\n  maxFiles: 5\n});\n\n// Validate before upload\nconst fileInfo = {\n  fieldname: 'file',\n  filename: 'photo.jpg',\n  encoding: '7bit',\n  mimeType: 'image/jpeg',\n  size: 1024 * 1024\n};\n\nconst validation = uploader.validateFile(fileInfo);\nif (!validation.valid) {\n  console.error(validation.error);\n}\n```\n\n### Progress Tracking\n\n```typescript\nconst uploader = new FileUploader({\n  onProgress: (progress) => {\n    console.log(`File ${progress.fileId}: ${progress.percentage}%`);\n    console.log(`Uploaded: ${progress.bytesUploaded}/${progress.totalBytes}`);\n  }\n});\n```\n\n### Custom Destination\n\n```typescript\nconst uploader = new FileUploader({\n  destination: async (file) => {\n    // Generate custom path\n    return `/uploads/${Date.now()}-${file.filename}`;\n  }\n});\n```\n\n## API\n\n### `new FileUploader(config?: UploadConfig)`\n\nCreates a new file uploader instance.\n\n### `uploader.handleMultipart(req: IncomingMessage): Promise<UploadResult[]>`\n\nProcesses a multipart form upload request.\n\n### `uploader.validateFile(file: FileInfo): { valid: boolean; error?: string }`\n\nValidates a file against configuration rules.\n\n### `uploader.getProgress(fileId: string): UploadProgress | null`\n\nGets upload progress for a specific file.\n\n## Integration Status\n\n### Logger Integration\n**Status**: ✅ Integrated\n\nUses `@bernierllc/logger` for upload events, errors, and progress tracking.\n\n### NeverHub Integration\n**Status**: ⚠️ Optional\n\nCan emit upload events to NeverHub for distributed monitoring and observability. File uploader can publish events like `upload.started`, `upload.progress`, `upload.completed`, and `upload.failed` to NeverHub when available.\n\n**Pattern**: Optional service discovery integration - package can emit upload lifecycle events to NeverHub for distributed monitoring.\n\n**Example Integration**:\n```typescript\n// If NeverHub is available, emit events\nif (typeof detectNeverHub === 'function') {\n  uploader.on('upload.completed', (result) => {\n    neverhub.emit('file-uploader.upload.completed', result);\n  });\n}\n```\n\n### Docs-Suite Integration\n**Status**: ✅ Ready\n\nTypeDoc-compatible JSDoc comments are included throughout the source code. All public APIs are documented with examples and type information.\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.\n\n","readmeFilename":"README.md"}