{"_id":"@baldim/adapter-s3","_rev":"2-1570af8e1a376d6ec634f82f674c10f4","name":"@baldim/adapter-s3","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@baldim/adapter-s3","version":"0.1.1","license":"MIT","_id":"@baldim/adapter-s3@0.1.1","maintainers":[{"name":"fforattini","email":"filipeforattini1@gmail.com"}],"homepage":"https://github.com/forattini-dev/baldim#readme","bugs":{"url":"https://github.com/forattini-dev/baldim/issues"},"dist":{"shasum":"0e27ab93419786f72d97b8d3d110d70f87cb7d9f","tarball":"https://registry.npmjs.org/@baldim/adapter-s3/-/adapter-s3-0.1.1.tgz","fileCount":27,"integrity":"sha512-Xk27Ckek6wmcTpdy2z+icXibLmMN39ojndc82TlV3+hrnHrJoRrW+o2gojNuL9GcAR66jvR5uaHF93XvBrV4+Q==","signatures":[{"sig":"MEUCIQCVZP+wa2WmbN3jFAACuWHvP/e5QXYSWGcyZz+fEnrlkQIgBFwl387Le45vP+qoxDWxCtencv/0khzeLj8keXN3frI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144153},"main":"./dist/index.js","type":"module","_from":"file:baldim-adapter-s3-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest run","build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"fforattini","email":"filipeforattini1@gmail.com"},"_resolved":"/tmp/e68e2ea7457730e257a574483a56e814/baldim-adapter-s3-0.1.1.tgz","_integrity":"sha512-Xk27Ckek6wmcTpdy2z+icXibLmMN39ojndc82TlV3+hrnHrJoRrW+o2gojNuL9GcAR66jvR5uaHF93XvBrV4+Q==","repository":{"url":"git+https://github.com/forattini-dev/baldim.git","type":"git","directory":"adapters/s3"},"_npmVersion":"11.19.0","description":"S3-compatible storage adapter for Baldim, including AWS S3, Cloudflare R2, and MinIO.","directories":{},"sideEffects":true,"_nodeVersion":"24.20.0","dependencies":{"recker":"1.0.103","lodash-es":"^4.18.1","@baldim/core":"0.2.0","@aws-sdk/client-s3":"3.1127.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.2","@types/node":"25.5.2","@types/lodash-es":"^4.17.12"},"_npmOperationalInternal":{"tmp":"tmp/adapter-s3_0.1.1_1788985549273_0.949627698143688","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@baldim/adapter-s3@0.1.2","bugs":{"url":"https://github.com/forattini-dev/baldim/issues"},"dist":{"shasum":"59c6bf0f711a76fb6795065467f25de48723b7e4","tarball":"https://registry.npmjs.org/@baldim/adapter-s3/-/adapter-s3-0.1.2.tgz","fileCount":27,"integrity":"sha512-nzOy5QXYgM+g/ucw0Qs5ry/R87iCKt1Z0JzyD+876ejuJWLQsS2WoXmC59xvaLChFjQGPIq40YORKIjyW9G0Fg==","signatures":[{"sig":"MEUCIQDeQKFy9WFNQaKyO5tah5hRErXMDBEEkDWYLj7iogAejgIgRNL5J0BHLq6NWsEW1ciH38ks//T0GaptrpeW0L620PQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCgR/zHm1zSgqavdzbF2jCPAghYKW+c+RnMGn4vN03AcgIhAL4M2U9nOwofqTwZ78lp3WmKfUf0gO5dtqKKIitIZXKz"}],"unpackedSize":171559},"main":"./dist/index.js","name":"@baldim/adapter-s3","type":"module","_from":"file:baldim-adapter-s3-0.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"vitest run","build":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit"},"version":"0.1.2","_npmUser":{"name":"fforattini","email":"filipeforattini1@gmail.com"},"homepage":"https://github.com/forattini-dev/baldim#readme","_resolved":"/tmp/5ad63104def14c96a7d14873be778550/baldim-adapter-s3-0.1.2.tgz","_integrity":"sha512-nzOy5QXYgM+g/ucw0Qs5ry/R87iCKt1Z0JzyD+876ejuJWLQsS2WoXmC59xvaLChFjQGPIq40YORKIjyW9G0Fg==","repository":{"url":"git+https://github.com/forattini-dev/baldim.git","type":"git","directory":"adapters/s3"},"_npmVersion":"11.19.0","description":"S3-compatible storage adapter for Baldim, including AWS S3, Cloudflare R2, and MinIO.","directories":{},"maintainers":[{"name":"fforattini","email":"filipeforattini1@gmail.com"}],"sideEffects":true,"_nodeVersion":"24.20.0","dependencies":{"recker":"1.0.103","lodash-es":"^4.18.1","@baldim/core":"0.2.1","@aws-sdk/client-s3":"3.1127.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.2","@types/node":"25.5.2","@types/lodash-es":"^4.17.12"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adapter-s3_0.1.2_1789561250497_0.21821181380064747"}}},"time":{"created":"2026-09-09T20:25:48.981Z","modified":"2026-09-16T12:20:50.741Z","0.1.1":"2026-09-09T20:25:49.407Z","0.1.2":"2026-09-16T12:20:50.575Z"},"bugs":{"url":"https://github.com/forattini-dev/baldim/issues"},"license":"MIT","homepage":"https://github.com/forattini-dev/baldim#readme","repository":{"url":"git+https://github.com/forattini-dev/baldim.git","type":"git","directory":"adapters/s3"},"description":"S3-compatible storage adapter for Baldim, including AWS S3, Cloudflare R2, and MinIO.","maintainers":[{"name":"fforattini","email":"filipeforattini1@gmail.com"}],"readme":"# @baldim/adapter-s3\n\nS3-compatible storage for Baldim. Importing the package registers the `s3:`,\n`http:`, and `https:` protocols with `@baldim/core`.\n\n```ts\nimport { Baldim } from '@baldim/core';\nimport '@baldim/adapter-s3';\n\nconst database = new Baldim({\n  connectionString: process.env.BALDIM_URL!,\n});\n```\n\nThe same adapter supports AWS S3, Cloudflare R2, MinIO, and other services that\nimplement the S3 API. Endpoint, credentials, path-style addressing, retry, and\ntransport options remain part of the connection string and `clientOptions`.\n\nYou can also instantiate the client directly:\n\n```ts\nimport { S3Client } from '@baldim/adapter-s3';\n\nconst client = new S3Client({ connectionString: process.env.BALDIM_URL! });\n```\n\n## Multipart upload\n\nThe client implements multipart uploads and reports the `multipartUpload`\ncapability. Use `putObjectMultipart()` for large bodies: it chunks the body,\nuploads parts in parallel, aborts automatically when a part fails, and reports\nprogress:\n\n```ts\nawait client.putObjectMultipart({\n  key: 'videos/big.bin',\n  body: stream, // Buffer, string, or Readable\n  partSize: 16 * 1024 * 1024,\n  queueConcurrency: 4,\n  onProgress: ({ uploadedBytes }) => console.log(uploadedBytes),\n});\n```\n\nThe underlying primitives are exposed as well: `createMultipartUpload()`,\n`uploadPart()`, `completeMultipartUpload()`, `abortMultipartUpload()`,\n`listParts()`, and `listMultipartUploads()`. Part size defaults to 8 MiB and\nmust respect the S3 5 MiB minimum whenever the body needs more than one part.\n\nResources created through `@baldim/core` can opt into multipart on insert:\n\n```ts\nawait notes.insert({ id: 'big-one', title: 'Large record' }, { multipart: true });\nawait notes.insert(\n  { id: 'big-two', title: 'Large record' },\n  { multipart: { partSize: 16 * 1024 * 1024, queueConcurrency: 2 } },\n);\n```\n\nBecause multipart completion does not support `IfNoneMatch`, uniqueness of the\nid is enforced with a pre-check instead of the atomic conditional write used by\nthe regular path.\n\nCI runs the shared storage contract and a read-only object capture generated by\n`s3db.js` 21.6.2 against MinIO. Set `BALDIM_S3_CONTRACT_URL` to run the same tests\nagainst another isolated S3-compatible bucket or prefix.\n","readmeFilename":"README.md"}