All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
4.0.1 - 2026-04-14
- Bundle
@socketsecurity/libandform-datainto dist output, making the SDK a zero-runtime-dependency package - Stub heavy
@socketsecurity/libinternals (npm-pack.js 2.5MB, pico-pack.js 260KB) and replacemime-db(212KB) with a minimal 3-entry lookup - dist/index.js: 3,897KB → 712KB (82% reduction)
- Strip
Authorizationheader (case-insensitive) from public firewall API endpoint requests
4.0.0 - 2026-04-06
- HTTP client refactored: All HTTP methods (
createGetRequest,createDeleteRequest,createRequestWithJson,createUploadRequest) now returnHttpResponsefrom@socketsecurity/lib/http-requestinstead of Node.jsIncomingMessage ResponseError.response: Changed fromIncomingMessagetoHttpResponse— access status via.status/.statusTextinstead of.statusCode/.statusMessage- Unified HTTP transport: File uploads now use
httpRequest()from@socketsecurity/lib— eliminated the dualnode:http/node:https+getResponse()stack - Trimmed public API surface: Removed internal helpers from the main entry point:
- HTTP functions:
createDeleteRequest,createGetRequest,createRequestWithJson,getErrorResponseBody,getResponseJson,isResponseOk,reshapeArtifactForPublicPolicy - File upload functions:
createRequestBodyForFilepaths,createRequestBodyForJson,createUploadRequest - Utilities:
calculateWordSetSimilarity,filterRedundantCause,normalizeBaseUrl,promiseWithResolvers,queryToSearchParams,resolveAbsPaths,resolveBasePath,shouldOmitReason - Constants:
DEFAULT_USER_AGENT,httpAgentNames,publicPolicy
- HTTP functions:
- Removed exports:
getHttpModuleandgetResponseare fully removed (not just from index) - Removed
PromiseQueue: ThePromiseQueueclass has been removed entirely - Removed
getSupportedScanFiles(): Deprecated since 2023-01-15 — usegetSupportedFiles()instead - Removed
http2-wrappertype dependency:Agenttype now usesClientHttp2Sessionfrom nativenode:http2
- Migrated HTTP internals to
@socketsecurity/lib/http-request(httpRequest), reducing code duplication and consolidating response handling - Retry logic improved: all 4xx client errors now bail immediately (previously only 401/403)
- New audit log action types:
CreateFirewallCustomRegistry,CreateFirewallDeploymentConfig,DeleteFirewallCustomRegistry,DeleteFirewallDeploymentConfig,UpdateFirewallCustomRegistry,UpdateFirewallDeploymentConfig
3.5.0 - 2026-04-03
- checkMalware: New API method for normalized malware detection across public and org tokens
- Public tokens use the firewall API with client-side
publicPolicyfiltering - Org tokens use the batch PURL API with full server-assigned org policy
- Both paths return the same normalized
MalwareCheckResultshape
- Public tokens use the firewall API with client-side
- New exported types:
MalwareCheckAlert,MalwareCheckPackage,MalwareCheckResult,MalwareCheckScore - New audit log action types:
CreateTicket,DisconnectJiraIntegration,JiraIntegrationConnected - New
alert-resolutionpermission scope (list, create, read, delete) - New
workspaceparameter forcreateOrgFullScanpackage entries - New
SocketSBOMScoreschema for supply chain risk score breakdowns with formulas and components - New
skillPreExecutionalert type and policy action - Full scan
include_scoresandinclude_scores_detailsquery parameters withscoresndjson event - Batch PURL
timeoutSecparameter for scan result timeout control
3.4.1 - 2026-03-12
- Synced OpenAPI type definitions with latest API specification
- Improved documentation for Org Triage API query parameters and request fields
- Updated
@socketsecurity/libto v5.8.1
3.4.0 - 2026-03-11
- listRepositories: New
workspacequery parameter to filter repositories by workspace (when provided, only repos in that workspace are returned) - New audit log action types for OAuth refresh tokens and repository access rules:
CreateOauthRefreshToken- Track OAuth refresh token creationRotateOauthRefreshToken- Track OAuth refresh token rotationCreateRepoAccessRule- Track repository access rule creationUpdateRepoAccessRule- Track repository access rule updatesDeleteRepoAccessRule- Track repository access rule deletion
- Synced OpenAPI type definitions with latest API specification
3.3.1 - 2026-03-03
- createRepository: Now requires
repoSlugas second parameter with typed options includingworkspace,visibility,homepage,archived,default_branch, anddescription
- New API endpoints from OpenAPI sync: CSV/PDF export for full scans, delete triage alerts, new alert types
3.3.0 - 2026-01-25
- New SDK convenience methods for OpenAPI v3.3.0 endpoints:
batchOrgPackageFetch(orgSlug, components, options)- Organization-scoped PURL batch lookup with security policy label supportexportOpenVEX(orgSlug, id, options)- Export vulnerability exploitability data as OpenVEX v0.2.0 documents (includes patch data and reachability analysis)getOrgAlertFullScans(orgSlug, options)- List full scans associated with specific alertsrescanFullScan(orgSlug, fullScanId, options)- Rescan existing full scans with shallow (policy reapplication) or deep (dependency resolution rerun) modes
- Repository endpoints now support optional
workspaceparameter for workspace-scoped operations:createRepository(orgSlug, params, { workspace })deleteRepository(orgSlug, repoSlug, { workspace })getRepository(orgSlug, repoSlug, { workspace })updateRepository(orgSlug, repoSlug, params, { workspace })
- Updated
@socketsecurity/libto v5.5.3 - TypeScript: Auto-generated strict types from OpenAPI schema for improved type safety
- TypeScript: All optional properties now explicitly include
| undefinedfor better null checking - Synced OpenAPI type definitions with latest API specification
3.2.0 - 2025-12-08
- New API methods:
getOrgTelemetryConfig()- Get organization telemetry configurationupdateOrgTelemetryConfig()- Update organization telemetry configurationgetOrgWebhooksList()- List organization webhookscreateOrgWebhook()- Create organization webhookgetOrgWebhook()- Get organization webhook detailsupdateOrgWebhook()- Update organization webhookdeleteOrgWebhook()- Delete organization webhookgetOrgAlertsList()- List organization alertsgetOrgFixes()- Get available vulnerability fixes for repositories or scanscreateOrgFullScanFromArchive()- Create full scan from archive file (.tar, .tar.gz/.tgz, or .zip)downloadOrgFullScanFilesAsTar()- Download full scan files as tarball to local filesystem
- Per-endpoint TTL configuration:
cacheTtloption accepts object with endpoint-specific TTL values (e.g.,{ default: 300_000, getIssues: 600_000 }) - Request/response logging:
hooksoption withonRequest(info)andonResponse(info)callbacks for debugging and monitoring - PURL batch processing:
cachedResultsOnlyquery parameter (return only cached results, skip new scans) andsummaryquery parameter (include summary with counts of malformed, resolved, and not found PURLs) inbatchPackageFetch()andbatchPackageStream() - UTF-8 filename support:
uploadManifestFiles(),createFullScan(),createDependenciesSnapshot(), andcreateOrgFullScanFromArchive()automatically handle international filenames (Japanese, Cyrillic, emoji, and other UTF-8 characters)
- Updated
@socketsecurity/libto v5.0.0 - Synced with OpenAPI definition
3.1.3 - 2025-11-04
- Updated OpenAPI type generation script to automatically preserve SDK v3 method name aliases during automated syncs
- Updated
@socketsecurity/libto v3.2.4
3.1.2 - 2025-11-02
- Add type aliases in
operationsinterface to map SDK v3 method names to OpenAPI operation names for TypeScript compatibility - Update
FileValidationCallbackto usecreateFullScaninstead ofcreateOrgFullScan
3.1.1 - 2025-11-02
- Use standard
.jsextension for CommonJS output instead of.mjs - Remove
"type": "module"from package.json to properly indicate CommonJS format
3.1.0 - 2025-11-02
- Changed SDK output format from ESM to CJS to resolve Node.js built-in module bundling issues when bundling CJS dependencies into ESM output
- SDK now correctly handles
@socketsecurity/libbundling without creating broken__require()wrappers that caused "Dynamic require of 'async_hooks' is not supported" errors in isolated environments
3.0.31 - 2025-11-02
- Bundle dependencies validation to prevent
link:dependencies in production
- Build process now correctly bundles
@socketsecurity/libinstead of marking it as external
- Updated
@socketsecurity/libto v3.1.3 - Updated
@socketregistry/packageurl-jsto v1.3.5
3.0.30 - 2025-11-01
- Validation guard against
link:dependencies in package.json - Pre-commit and pre-push hooks for development workflow
- Build output now uses relative paths instead of absolute paths for better portability
- Updated
@socketsecurity/libto v3.0.6 - Updated
@socketregistry/packageurl-jsto v1.3.3
3.0.29 - 2025-11-01
- Moved
@socketsecurity/liband@socketregistry/packageurl-jsto devDependencies (bundled SDK has no runtime dependencies)
3.0.28 - 2025-11-01
- Updated
@socketsecurity/libto v3.0.3
3.0.27 - 2025-10-31
- Updated
@socketsecurity/libto v2.10.4
3.0.26 - 2025-10-31
- Updated
@socketsecurity/libto v2.10.3
3.0.25 - 2025-10-31
- Updated
@socketsecurity/libto v2.10.2
3.0.24 - 2025-10-31
- Updated
@socketsecurity/libto v2.10.1
3.0.23 - 2025-10-30
- Updated
@socketsecurity/libto v2.10.0
3.0.22 - 2025-10-30
- Updated
@socketsecurity/libto v2.9.1
3.0.21 - 2025-10-30
- Consolidated Socket.dev URL constants (
SOCKET_CONTACT_URL,SOCKET_DASHBOARD_URL,SOCKET_API_TOKENS_URL) to use standardized exports from@socketsecurity/libinstead of duplicating them locally
3.0.20 - 2025-10-30
- Updated
@socketsecurity/libto v2.9.0
3.0.19 - 2025-10-30
- Updated
@socketsecurity/libto v2.8.4
3.0.18 - 2025-10-30
- Updated
@socketsecurity/libto v2.8.3
3.0.17 - 2025-10-29
- Updated
@socketsecurity/libto v2.8.2
3.0.16 - 2025-10-29
- Updated OpenAPI types with new alert filtering capabilities:
- Added
github_installation_idquery parameter to diff scan endpoints for GitHub installation-specific settings - Added KEV (Known Exploited Vulnerability) filter support (
filters.alertKEV) - Added EPSS (Exploit Prediction Scoring System) severity filter support (
filters.alertEPSS) - Updated aggregation fields to include
alertKEVandalertEPSSoptions
- Added
3.0.15 - 2025-10-29
- Updated
@socketsecurity/libto v2.8.1
3.0.14 - 2025-10-28
- Updated
@socketsecurity/libto v2.7.0
3.0.13 - 2025-10-28
- Updated
@socketsecurity/libto v2.6.0
3.0.12 - 2025-10-28
- Updated
@socketsecurity/libto v2.5.0
3.0.11 - 2025-10-28
- Updated
@socketsecurity/libto v2.4.0
3.0.10 - 2025-10-28
- Updated
@socketsecurity/libto v2.3.0
3.0.9 - 2025-10-28
- Updated
@socketsecurity/libto v2.2.0
3.0.8 - 2025-10-28
- Updated
@socketsecurity/libto v2.1.0
3.0.7 - 2025-10-27
- Updated
@socketsecurity/libto v2.0.0 - Added comprehensive getting started guide
3.0.6 - 2025-10-24
- Externalized
@socketsecurity/libdependency to prevent dynamic require errors in bundled applications
- Updated
@socketsecurity/libto v1.3.3
3.0.5 - 2025-10-24
- Cleanup package.json files entries
3.0.4 - 2025-10-24
- Include
.mjsfiles in published npm package to fix import errors
3.0.3 - 2025-10-24
- Updated
@socketsecurity/libto v1.3.2 to fix broken v1.3.1 release
3.0.2 - 2025-10-24
- Upgraded
@socketsecurity/libto v1.3.1 to resolve dependency compatibility issue
3.0.1 - 2025-10-23
- Export
FileValidationCallbackandFileValidationResulttypes for consumers implementing file validation callbacks
3.0.0 - 2025-10-23
The following methods mapped to deprecated /report/* backend endpoints and have been removed:
createScan()- UsecreateFullScan()insteaddeleteScan()- UsedeleteFullScan()insteadgetScan()- UsegetFullScan()insteadlistScans()- UselistFullScans()instead
Full Scans (Modern API):
getOrgFullScanList()→listFullScans()withListFullScansOptionscreateOrgFullScan()→createFullScan()withCreateFullScanOptionsgetOrgFullScanBuffered()→getFullScan()deleteOrgFullScan()→deleteFullScan()streamOrgFullScan()→streamFullScan()withStreamFullScanOptionsgetOrgFullScanMetadata()→getFullScanMetadata()
Organizations:
getOrganizations()→listOrganizations()
Repositories:
getOrgRepoList()→listRepositories()withListRepositoriesOptionsgetOrgRepo()→getRepository()createOrgRepo()→createRepository()updateOrgRepo()→updateRepository()deleteOrgRepo()→deleteRepository()
Strict types now mark guaranteed API fields as required instead of optional, improving IntelliSense autocomplete.
- File Validation Callback: New
onFileValidationoption inSocketSdkOptionsallows customizing error handling when unreadable files are detected. File-upload methods (uploadManifestFiles(),createFullScan(),createDependenciesSnapshot()) now automatically validate file readability, preventing ENOENT errors from Yarn Berry PnP virtual filesystems and pnpm symlink issues.
- File-upload methods automatically skip unreadable files with warnings instead of failing
2.0.7 - 2025-10-22
- Sync with openapi definition
2.0.6 - 2025-10-22
- TypeScript lint compliance for array type syntax in
SocketSdkArrayElementtype helper
2.0.5 - 2025-10-22
SocketSdkData<T>type helper for extracting data from SDK operation resultsSocketSdkArrayElement<T, K>type helper for extracting array element types from SDK operations
2.0.4 - 2025-10-22
- Support for
Retry-Afterheader in rate limit responses (HTTP 429)- Automatically respects server-specified retry delays
- Parses both delay-seconds (numeric) and HTTP-date formats
- Uses server delay instead of exponential backoff when available
2.0.3 - 2025-10-22
- Improved TypeScript module resolution with explicit type exports instead of wildcard re-exports
2.0.2 - 2025-10-22
- Ensured expected dist/ files are produced and refined package.json exports
2.0.1 - 2025-10-21
- Use
@socketsecurity/libunder the hood - Synced OpenAPI type definitions with latest API specification
- Added documentation for
scan_typequery parameter on manifest upload endpoint (used for categorizing multiple SBOM heads per repository branch) - Improved TypeScript helper types (
OpReturnType,OpErrorType) for better type inference and error handling
- Added documentation for
2.0.0 - 2025-10-10
- BREAKING: Migrated to ESM-only module format
- Package is now ESM-only (
"type": "module"in package.json) - All output files use
.mjsextension for JavaScript - TypeScript declaration files use
.d.mtsextension - CommonJS (
require()) is no longer supported
- Package is now ESM-only (
- Simplified build process for ESM-only output
- Updated TypeScript configuration to use ESM module resolution
- Improved code splitting for better tree-shaking with ESM
- BREAKING: Removed CommonJS support and exports
- Removed CommonJS-specific build configurations
To migrate from v1.x to v2.0:
-
Ensure your project supports ESM modules (Node.js 14+ with
"type": "module"or.mjsextensions) -
Update imports from CommonJS
require()to ESMimportstatements:// Before (v1.x) const { SocketSdk } = require('@socketsecurity/sdk') // After (v2.0) import { SocketSdk } from '@socketsecurity/sdk'
-
If your project still requires CommonJS, consider staying on v1.x or using a transpiler
1.11.2 - 2025-10-07
- Fixed typos in requirements.json
- Updated @socketsecurity/registry to fix bugs related to inlined runtime-dependent expressions
1.11.1 - 2025-10-06
- Performance optimizations with memoization for
normalizeBaseUrland quota utility functions - Performance tracking to HTTP client functions
- Comprehensive error handling tests for SDK methods across organization, scanning, and batch APIs
- Reusable assertion helpers for SDK tests
- Improved test coverage and reliability with additional test cases
- Streamlined documentation (README, TESTING.md, QUOTA.md, EXAMPLES.md) for better clarity and discoverability
1.11.0 - 2025-10-04
- Optional TTL caching for API responses with configurable cache duration
- New
cacheoption (default: false) to enable response caching - New
cacheTtloption (default: 5 minutes) to customize cache duration
1.10.1 - 2025-10-04
- Automatic retry with exponential backoff to all HTTP API calls for improved reliability on transient failures
1.10.0 - 2025-10-04
- Added
PromiseQueueutility for controlled concurrency in async operations - HTTP retry logic with exponential backoff for improved reliability on transient failures
- Added option type interfaces:
CreateDependenciesSnapshotOptions,CreateOrgFullScanOptions,CreateScanFromFilepathsOptions,StreamOrgFullScanOptions,UploadManifestFilesOptions
- BREAKING: Refactored SDK methods to use options objects instead of positional parameters for better API clarity:
createDependenciesSnapshot(filepaths, options)- replacedrepoandbranchpositional parameters with options objectcreateOrgFullScan(orgSlug, filepaths, options)- replaced positional parameters with options objectcreateScanFromFilepaths(filepaths, options)- replaced positional parameters with options objectstreamOrgFullScan(orgSlug, fullScanId, options)- replaced positional parameters with options objectuploadManifestFiles(orgSlug, filepaths, options)- replaced positional parameters with options object
- Improved type safety by replacing
anytypes withunknownorneverwhere appropriate - Enhanced code style with numeric separators for better readability of large numbers
- Improved coverage reporting accuracy with c8 ignore comments
- Updated
@socketsecurity/registrydependency to 1.4.0
- Fixed import assertion syntax for JSON imports to use standard import syntax
- Fixed HTTP retry test mocks to correctly match PUT method requests
- Fixed critical issues in type handling and URL search parameter conversions
1.9.2 - 2025-10-04
- Improved TypeScript type definitions - All optional properties now include explicit
| undefinedtype annotations for better type narrowing and null safety
1.9.1 - 2025-10-03
- Disabled TypeScript declaration map generation to reduce package size
1.9.0 - 2025-10-03
- BREAKING: Improved
SocketSdkResulttype compatibility - success and error results now have symmetric properties (data,error,cause) with explicitundefinedtypes for better TypeScript narrowing - BREAKING: Removed
CResulttype (CLI-specific) in favor of SDK-appropriateSocketSdkGenericResulttype forgetApi()andsendApi()methods - Updated
getApi()andsendApi()to useSocketSdkGenericResultwith consistent HTTP status codes instead of CLI exit codes - All result types now use
successdiscriminant withstatus(HTTP code),data,error, andcauseproperties on both branches
- If using
getApi()orsendApi()withthrows: false, update fromCResulttoSocketSdkGenericResult - Change
.okchecks to.success - Change
.codeto.status(now contains HTTP status code) - Change
.messageto.error - Both success and error branches now have all properties - check discriminant first with
if (result.success)
1.8.6 - 2025-10-02
- Reduced package size by excluding source map files (.js.map) from published package
1.8.5 - 2025-10-02
- Synced with OpenAPI definition
- Added new
/openapi.jsonendpoint for retrieving API specification in JSON format - Updated repo label filter descriptions to document empty string ("") usage for repositories with no labels
- Added 'dual' threat category type
1.8.4 - 2025-10-01
- Fixed registry constant import paths to use correct casing (SOCKET_PUBLIC_API_TOKEN, UNKNOWN_ERROR)
1.8.3 - 2025-09-30
- Synced with OpenAPI definition
1.8.2 - 2025-09-29
- Fixed publishing workflow to ensure dist folder is built before npm publish
- Changed prepublishOnly script to prevent accidental local publishing
1.8.1 - 2025-09-29
- Update test infrastructure and build configuration
1.8.0 - 2025-09-27
- Quota utility functions for API cost management in
quota-utils.ts - New exported functions:
checkQuota,formatQuotaReport,getEstimatedCost,getMethodCost,getQuotaSummary,isWithinQuota - Example files demonstrating quota usage patterns
- Improved error handling for quota utilities
1.7.0 - 2025-09-26
getApimethod for raw GET requests with configurable response handlingsendApimethod for POST/PUT requests with JSON body supportCResulttype pattern for non-throwing API operationsCustomResponseTypetype export for response type options- Support for custom response types (
response,text,json) ingetApi - Enhanced error handling with detailed error context from
error.detailsfield - Socket API
error.detailsparsing for richer error information getEntitlementsmethod for retrieving organization entitlementsgetEnabledEntitlementsmethod for getting enabled entitlement keysviewPatchmethod for retrieving patch details by UUIDstreamPatchesFromScanmethod for streaming patches from scan resultsEntitlementandEntitlementsResponsetypes for entitlements APIPatchFile,Vulnerability,SecurityAlert,PatchRecord,PatchViewResponse, andArtifactPatchestypes for patches API- Support for NDJSON streaming responses in patches API
- Comprehensive test coverage improvements (484 total tests, 99.92% line coverage, 99.39% branch coverage)
- Enhanced error handling tests for JSON parsing edge cases in streaming
- Additional coverage tests for invalid JSON line handling in NDJSON streams
- Improved error message formatting and JSON parsing error handling
- Enhanced type safety with better generic constraints
- Renamed option types to
GetOptionsandSendOptionsfor consistency - Reorganized test files into focused, functionality-based modules
- Raised coverage thresholds to match achieved levels (100% statements, functions, lines)
- Removed duplicate tests while maintaining coverage integrity
- Renamed
getIssuesByNPMPackagetogetIssuesByNpmPackagefor consistent naming convention - Improved method alphabetical ordering in source code
- Enhanced test coverage from 99.77% to 99.92% line coverage
- Improved branch coverage from 99.08% to 99.39%
1.6.1 - 2025-09-24
- Updated to use trusted publisher for npm package provenance
1.6.0 - 2025-09-24
- BREAKING: Converted to single CommonJS export type, removing dual ESM/CJS support
1.5.1 - 2025-09-24
- Added missing setup-script to provenance workflow
1.5.0 - 2025-09-23
getOrgFullScanBufferedmethod for buffered full scan retrieval
- BREAKING: Renamed
getOrgFullScantostreamOrgFullScanfor clarity
- Added missing
getResponseJsoncall tocreateScanFromFilepaths - Improved handling of empty response bodies
1.4.93 - 2025-09-15
- Fixed malformed part header issue for upload of manifest files
1.4.91 - 2025-09-11
- Improved URL handling
1.4.90 - 2025-09-11
- Improved error handling
1.4.84 - 2025-09-03
- Filter alerts by action
- Improved JSON parsing
1.4.82 - 2025-09-02
- Improved public policy handling
1.4.81 - 2025-09-02
- Add public security policy support
1.4.79 - 2025-08-27
- Fixed ESM module compatibility
1.4.77 - 2025-08-25
- Add timeout option for API requests
1.4.73 - 2025-08-08
- Fixed crates ecosystem support
1.4.72 - 2025-08-08
- Fixed rubygems ecosystem support
1.4.71 - 2025-08-08
- Support for crate and rubygem ecosystems
1.4.68 - 2025-08-02
- Improved type definitions
- Memory usage optimizations
1.4.66 - 2025-07-29
- Fixed file upload timing issue
- Fixed multipart form data formatting
1.4.64 - 2025-07-22
- Improved method signatures
1.4.62 - 2025-07-21
- Fixed query parameter handling for empty values
1.4.61 - 2025-07-21
- Improved query parameter normalization
1.4.60 - 2025-07-21
- Renamed result type for clarity
1.4.59 - 2025-07-20
- Add alias types for improved developer experience
1.4.0 - 2025-05-01
- Full scans feature support
- Audit log and repos features
- Organization security policy support (getOrgSecurityPolicy)
- Improved TypeScript type exports
- Enhanced ESM and CJS dual package support
1.3.0 - 2025-03-01
- Support for multiple ecosystem types
- Enhanced error handling and reporting
- Improved API client architecture
- Better TypeScript type definitions
1.2.0 - 2025-01-15
- File upload support for manifest files
- Request body creation for file paths
- Enhanced multipart form data handling
- Improved streaming support
1.1.0 - 2024-11-01
- Query parameter normalization
- Enhanced search parameter handling
- Improved URL parsing and handling
- Better error messages
1.0.0 - 2024-09-01
- Initial release of Socket SDK for JavaScript
- Full Socket API client implementation
- TypeScript support with comprehensive type definitions
- Dual ESM/CJS package support