Releases: msrivastav13/node-sf-bulk2
Releases · msrivastav13/node-sf-bulk2
v1.0.1 — Security: resolve all dependency vulnerabilities
Patch release resolving all 4 vulnerabilities reported by `npm audit` (now 0 vulnerabilities).
| Package | Severity | Fix |
|---|---|---|
| form-data | high | pinned `^4.0.6` via overrides (only vuln reaching published consumers, via axios) |
| vite | high | 8.0.16 (dev) |
| markdown-it | moderate | 14.2.0 (dev) |
| js-yaml | moderate | 4.2.0 (dev) |
Also bumps axios to ^1.17.0.
v1.0.0
First major release. Adds partial/parallel result downloads and corrects the result-pages model to match the live Bulk API 2.0 shape.
✨ New Features
getResultPage(resultLink)— download a single query result chunk as CSV (buffered).getResultPageStream(resultLink)— stream a single result chunk as a Node.jsReadable.
Together with getBulkQueryResultPages, these enable partial / parallel downloads (the PartialDownloadAndJobEvent feature) — results can be retrieved chunk-by-chunk while the query job is still running.
🐛 Fixes
getBulkQueryResultPagespreviously returned all-undefinedfields: the model declaredresultPages[].resultUrl, but the API actually returnsresultChunks[].resultLink. Now corrected and verified against a live org.resultLinkvalues (relative to/services/data/vXX.0) are resolved automatically.
⚠️ Breaking Changes
- Exported interface
ResultPage→ResultChunk ParallelQueryResultsResponse.resultPages→resultChunks; element fieldresultUrl→resultLinkParallelQueryResultsResponse.nextRecordsUrlis nowstring | null
The old field names resolved to undefined at runtime, so no working code could have depended on them — but the public type surface changes, hence the major version bump.
✅ Verification
- 41 unit tests + 16 integration tests passing (integration run against a live org, including a real chunk downloaded both buffered and streamed)
- Build and lint clean
Full Changelog: v0.2.1...v1.0.0
v0.2.1
What's Changed
Security patch release.
Dependencies
- Bump
axios1.15.2→1.16.0, resolving 3 Dependabot advisories:- GHSA-hfxv-24rg-xrqf (High) — ReDoS via Cookie Name Injection
- GHSA-777c-7fjr-54vf (High) — Allocation of Resources Without Limits or Throttling
- GHSA-654m-c8p4-x5fp (Low) — Proxy-Authorization Header Injection via Prototype Pollution
npm audit fix: transitivebrace-expansion5.0.5→5.0.6(dev-only)
Docs
- Update
CLAUDE.mdto document the vitest test suite (unit + integration)
Full Changelog: v0.1.0...v0.2.1
v0.1.0
[0.1.0] - 2026-04-30
Added
- Sforce-Call-Options header support —
Connectionnow acceptscallOptionswithclientanddefaultNamespacefields, sent as theSforce-Call-Optionsheader on every request. deleteIngestJob(jobId)— delete a completed ingest job.deleteBulkQueryJob(jobId)— delete a completed query job.getAllIngestJobInfo(config?)— list all ingest jobs with optional filters (jobType,isPkChunkingEnabled,queryLocator).getBulkQueryResultPages(jobId)— retrieve result page URLs for parallel query result downloads.createDataUploadJobWithData(request, csv)— create an ingest job and upload CSV data in a single multipart request.JOBTYPEenum (BigObjectIngest,Classic,V2Ingest,V2Query).InProgressadded toSTATEenum.queryandqueryAlladded toOPERATIONenum.isPkChunkingSupportedfield onBulkJobInfoResponse.- New model types exported from the barrel:
AllIngestJobsInfoResponse,IngestJobConfig,JOBTYPE,ParallelQueryResultsResponse,ResultPage. - Unit test suite using Vitest — 33 tests covering all public methods, endpoint construction, headers, and error propagation.
- Integration test suite — runs against a real Salesforce org (skipped when credentials are not set).
- Vitest configuration and
test,test:unit,test:integration,test:watchnpm scripts. - Rewritten README with full query and ingest lifecycle examples, API reference table, and testing docs.
- Simplified examples directory — two runnable TypeScript scripts (
query-job.ts,ingest-job.ts) replacing the four nested mini-projects.