@socketsecurity/sdk
Advanced tools
+10
-2
@@ -7,2 +7,12 @@ # Changelog | ||
| ## [3.3.1](https://github.com/SocketDev/socket-sdk-js/releases/tag/v3.3.1) - 2026-03-03 | ||
| ### Changed | ||
| - **createRepository**: Now requires `repoSlug` as second parameter with typed options including `workspace`, `visibility`, `homepage`, `archived`, `default_branch`, and `description` | ||
| ### Added | ||
| - New API endpoints from OpenAPI sync: CSV/PDF export for full scans, delete triage alerts, new alert types | ||
| ## [3.3.0](https://github.com/SocketDev/socket-sdk-js/releases/tag/v3.3.0) - 2026-01-25 | ||
@@ -346,4 +356,2 @@ | ||
| See [docs/migration-v3.md](./docs/migration-v3.md) and [docs/when-to-use-what.md](./docs/when-to-use-what.md) for migration guidance. | ||
| ## [2.0.7](https://github.com/SocketDev/socket-sdk-js/releases/tag/v2.0.7) - 2025-10-22 | ||
@@ -350,0 +358,0 @@ |
@@ -15,2 +15,6 @@ { | ||
| }, | ||
| "createFullScan": { | ||
| "quota": 0, | ||
| "permissions": ["full-scans:create"] | ||
| }, | ||
| "createOrgFullScan": { | ||
@@ -231,4 +235,20 @@ "quota": 0, | ||
| "permissions": [] | ||
| }, | ||
| "batchOrgPackageFetch": { | ||
| "quota": 100, | ||
| "permissions": ["packages:list"] | ||
| }, | ||
| "exportOpenVEX": { | ||
| "quota": 0, | ||
| "permissions": ["report:read"] | ||
| }, | ||
| "getOrgAlertFullScans": { | ||
| "quota": 10, | ||
| "permissions": ["alerts:list"] | ||
| }, | ||
| "rescanFullScan": { | ||
| "quota": 0, | ||
| "permissions": ["full-scans:create"] | ||
| } | ||
| } | ||
| } |
@@ -16,2 +16,2 @@ import type { ALERT_ACTION } from './types'; | ||
| export declare const httpAgentNames: Set<string>; | ||
| export declare const publicPolicy: Map<"ambiguousClassifier" | "badEncoding" | "badSemver" | "badSemverDependency" | "bidi" | "binScriptConfusion" | "chromeContentScript" | "chromeHostPermission" | "chromePermission" | "chromeWildcardHostPermission" | "chronoAnomaly" | "compromisedSSHKey" | "copyleftLicense" | "criticalCVE" | "cve" | "debugAccess" | "deprecated" | "deprecatedException" | "deprecatedLicense" | "didYouMean" | "dynamicRequire" | "emptyPackage" | "envVars" | "explicitlyUnlicensedItem" | "extraneousDependency" | "fileDependency" | "filesystemAccess" | "floatingDependency" | "generic" | "ghaArgToEnv" | "ghaArgToOutput" | "ghaArgToSink" | "ghaContextToEnv" | "ghaContextToOutput" | "ghaContextToSink" | "ghaEnvToSink" | "gitDependency" | "gitHubDependency" | "gptAnomaly" | "gptDidYouMean" | "gptMalware" | "gptSecurity" | "hasNativeCode" | "highEntropyStrings" | "homoglyphs" | "httpDependency" | "installScripts" | "invalidPackageJSON" | "invisibleChars" | "licenseChange" | "licenseException" | "licenseSpdxDisj" | "longStrings" | "majorRefactor" | "malware" | "manifestConfusion" | "mediumCVE" | "mildCVE" | "minifiedFile" | "miscLicenseIssues" | "missingAuthor" | "missingDependency" | "missingLicense" | "missingTarball" | "mixedLicense" | "modifiedException" | "modifiedLicense" | "networkAccess" | "newAuthor" | "noAuthorData" | "noBugTracker" | "noLicenseFound" | "noREADME" | "noRepository" | "noTests" | "noV1" | "noWebsite" | "nonOSILicense" | "nonSPDXLicense" | "nonpermissiveLicense" | "notice" | "obfuscatedFile" | "obfuscatedRequire" | "peerDependency" | "potentialVulnerability" | "recentlyPublished" | "semverAnomaly" | "shellAccess" | "shellScriptOverride" | "shrinkwrap" | "socketUpgradeAvailable" | "suspiciousStarActivity" | "suspiciousString" | "telemetry" | "tooManyFiles" | "trivialPackage" | "troll" | "typeModuleCompatibility" | "uncaughtOptionalDependency" | "unclearLicense" | "unidentifiedLicense" | "unmaintained" | "unpopularPackage" | "unpublished" | "unresolvedRequire" | "unsafeCopyright" | "unstableOwnership" | "unusedDependency" | "urlStrings" | "usesEval" | "vsxActivationWildcard" | "vsxDebuggerContribution" | "vsxExtensionDependency" | "vsxExtensionPack" | "vsxProposedApiUsage" | "vsxUntrustedWorkspaceSupported" | "vsxVirtualWorkspaceSupported" | "vsxWebviewContribution" | "vsxWorkspaceContainsActivation" | "zeroWidth", ALERT_ACTION>; | ||
| export declare const publicPolicy: Map<"ambiguousClassifier" | "badEncoding" | "badSemver" | "badSemverDependency" | "bidi" | "binScriptConfusion" | "chromeContentScript" | "chromeHostPermission" | "chromePermission" | "chromeWildcardHostPermission" | "chronoAnomaly" | "compromisedSSHKey" | "copyleftLicense" | "criticalCVE" | "cve" | "debugAccess" | "deprecated" | "deprecatedException" | "deprecatedLicense" | "didYouMean" | "dynamicRequire" | "emptyPackage" | "envVars" | "explicitlyUnlicensedItem" | "extraneousDependency" | "fileDependency" | "filesystemAccess" | "floatingDependency" | "generic" | "ghaArgToEnv" | "ghaArgToOutput" | "ghaArgToSink" | "ghaContextToEnv" | "ghaContextToOutput" | "ghaContextToSink" | "ghaEnvToSink" | "gitDependency" | "gitHubDependency" | "gptAnomaly" | "gptDidYouMean" | "gptMalware" | "gptSecurity" | "hasNativeCode" | "highEntropyStrings" | "homoglyphs" | "httpDependency" | "installScripts" | "invalidPackageJSON" | "invisibleChars" | "licenseChange" | "licenseException" | "licenseSpdxDisj" | "longStrings" | "majorRefactor" | "malware" | "manifestConfusion" | "mediumCVE" | "mildCVE" | "minifiedFile" | "miscLicenseIssues" | "missingAuthor" | "missingDependency" | "missingLicense" | "missingTarball" | "mixedLicense" | "modifiedException" | "modifiedLicense" | "networkAccess" | "newAuthor" | "noAuthorData" | "noBugTracker" | "noLicenseFound" | "noREADME" | "noRepository" | "noTests" | "noV1" | "noWebsite" | "nonOSILicense" | "nonSPDXLicense" | "nonpermissiveLicense" | "notice" | "obfuscatedFile" | "obfuscatedRequire" | "peerDependency" | "potentialVulnerability" | "recentlyPublished" | "semverAnomaly" | "shellAccess" | "shellScriptOverride" | "shrinkwrap" | "skillAutonomyAbuse" | "skillCommandInjection" | "skillDataExfiltration" | "skillDiscoveryAbuse" | "skillHardcodedSecrets" | "skillObfuscation" | "skillPromptInjection" | "skillResourceAbuse" | "skillSupplyChain" | "skillToolAbuse" | "skillToolChaining" | "skillTransitiveTrust" | "socketUpgradeAvailable" | "suspiciousStarActivity" | "suspiciousString" | "telemetry" | "tooManyFiles" | "trivialPackage" | "troll" | "typeModuleCompatibility" | "uncaughtOptionalDependency" | "unclearLicense" | "unidentifiedLicense" | "unmaintained" | "unpopularPackage" | "unpublished" | "unresolvedRequire" | "unsafeCopyright" | "unstableOwnership" | "unusedDependency" | "urlStrings" | "usesEval" | "vsxActivationWildcard" | "vsxDebuggerContribution" | "vsxExtensionDependency" | "vsxExtensionPack" | "vsxProposedApiUsage" | "vsxUntrustedWorkspaceSupported" | "vsxVirtualWorkspaceSupported" | "vsxWebviewContribution" | "vsxWorkspaceContainsActivation" | "zeroWidth", ALERT_ACTION>; |
@@ -19,2 +19,3 @@ /** | ||
| response: IncomingMessage; | ||
| url?: string | undefined; | ||
| /** | ||
@@ -24,3 +25,3 @@ * Create a new ResponseError from an HTTP response. | ||
| */ | ||
| constructor(response: IncomingMessage, message?: string); | ||
| constructor(response: IncomingMessage, message?: string, url?: string | undefined); | ||
| } | ||
@@ -79,3 +80,3 @@ /** | ||
| */ | ||
| export declare function getResponseJson(response: IncomingMessage, method?: string | undefined): Promise<JsonValue | undefined>; | ||
| export declare function getResponseJson(response: IncomingMessage, method?: string | undefined, url?: string | undefined): Promise<JsonValue | undefined>; | ||
| /** | ||
@@ -82,0 +83,0 @@ * Create DELETE request with automatic retry logic. |
+1
-1
@@ -12,5 +12,5 @@ /** | ||
| export type { ALERT_ACTION, ALERT_TYPE, Agent, ArtifactPatches, BatchPackageFetchResultType, BatchPackageStreamOptions, CompactSocketArtifact, CompactSocketArtifactAlert, CreateDependenciesSnapshotOptions, CreateOrgFullScanOptions, CreateScanFromFilepathsOptions, CustomResponseType, Entitlement, EntitlementsResponse, FileValidationCallback, FileValidationResult, GetOptions, GotOptions, HeadersRecord, PatchFile, PatchRecord, PatchViewResponse, TelemetryConfig, PostOrgTelemetryPayload, PostOrgTelemetryResponse, QueryParams, RequestInfo, RequestOptions, RequestOptionsWithHooks, ResponseInfo, SecurityAlert, SendMethod, SendOptions, SocketArtifact, SocketArtifactAlert, SocketArtifactWithExtras, SocketId, SocketMetricSchema, SocketSdkArrayElement, SocketSdkData, SocketSdkErrorResult, SocketSdkGenericResult, SocketSdkOperations, SocketSdkOptions, SocketSdkResult, SocketSdkSuccessResult, StreamOrgFullScanOptions, UploadManifestFilesError, UploadManifestFilesOptions, UploadManifestFilesResponse, UploadManifestFilesReturnType, Vulnerability, } from './types'; | ||
| export type { CreateFullScanOptions, DeleteRepositoryLabelResult, DeleteResult, FullScanItem, FullScanListData, FullScanListResult, FullScanResult, GetRepositoryOptions, ListFullScansOptions, ListRepositoriesOptions, OrganizationItem, OrganizationsResult, RepositoriesListData, RepositoriesListResult, RepositoryItem, RepositoryLabelItem, RepositoryLabelResult, RepositoryLabelsListData, RepositoryLabelsListResult, RepositoryResult, StreamFullScanOptions, StrictErrorResult, StrictResult, } from './types-strict'; | ||
| export type { CreateFullScanOptions, DeleteRepositoryLabelResult, DeleteResult, FullScanItem, FullScanListData, FullScanListResult, FullScanResult, GetRepositoryOptions, ListFullScansOptions, ListRepositoriesOptions, OrganizationItem, OrganizationsResult, RepositoriesListData, RepositoriesListResult, RepositoryItem, RepositoryLabelItem, RepositoryLabelResult, RepositoryLabelsListData, RepositoryLabelsListResult, RepositoryListItem, RepositoryResult, StreamFullScanOptions, StrictErrorResult, StrictResult, } from './types-strict'; | ||
| export { createUserAgentFromPkgJson } from './user-agent'; | ||
| export { calculateWordSetSimilarity, filterRedundantCause, normalizeBaseUrl, promiseWithResolvers, queryToSearchParams, resolveAbsPaths, resolveBasePath, shouldOmitReason, }; | ||
| export { DEFAULT_USER_AGENT, httpAgentNames, publicPolicy }; |
+130
-25
@@ -115,3 +115,3 @@ import type { ArtifactPatches, BatchPackageFetchResultType, BatchPackageStreamOptions, CreateDependenciesSnapshotOptions, Entitlement, GetOptions, PatchViewResponse, PostOrgTelemetryPayload, PostOrgTelemetryResponse, QueryParams, SendOptions, SocketSdkGenericResult, SocketSdkOptions, SocketSdkResult, StreamOrgFullScanOptions, UploadManifestFilesError, UploadManifestFilesOptions, UploadManifestFilesReturnType } from './types'; | ||
| * @apiEndpoint POST /orgs/{org_slug}/full-scans | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:create | ||
@@ -125,5 +125,38 @@ * @throws {Error} When server returns 5xx status codes | ||
| * | ||
| * @param orgSlug - Organization identifier | ||
| * @param options - Diff scan creation options | ||
| * @param options.after - ID of the after/head full scan (newer) | ||
| * @param options.before - ID of the before/base full scan (older) | ||
| * @param options.description - Description of the diff scan | ||
| * @param options.external_href - External URL to associate with the diff scan | ||
| * @param options.merge - Set true for merged commits, false for open PR diffs | ||
| * @returns Diff scan details | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * const result = await sdk.createOrgDiffScanFromIds('my-org', { | ||
| * before: 'scan-id-1', | ||
| * after: 'scan-id-2', | ||
| * description: 'Compare versions', | ||
| * merge: false | ||
| * }) | ||
| * | ||
| * if (result.success) { | ||
| * console.log('Diff scan created:', result.data.diff_scan.id) | ||
| * } | ||
| * ``` | ||
| * | ||
| * @see https://docs.socket.dev/reference/createorgdiffscanfromids | ||
| * @apiEndpoint POST /orgs/{org_slug}/diff-scans/from-ids | ||
| * @quota 0 units | ||
| * @scopes diff-scans:create, full-scans:list | ||
| * @throws {Error} When server returns 5xx status codes | ||
| */ | ||
| createOrgDiffScanFromIds(orgSlug: string, queryParams?: QueryParams | undefined): Promise<SocketSdkResult<'createOrgDiffScanFromIds'>>; | ||
| createOrgDiffScanFromIds(orgSlug: string, options: { | ||
| after: string; | ||
| before: string; | ||
| description?: string | undefined; | ||
| external_href?: string | undefined; | ||
| merge?: boolean | undefined; | ||
| }): Promise<SocketSdkResult<'createOrgDiffScanFromIds'>>; | ||
| /** | ||
@@ -182,3 +215,10 @@ * Create a full scan from an archive file (.tar, .tar.gz/.tgz, or .zip). | ||
| * @param orgSlug - Organization identifier | ||
| * @param params - Repository configuration (name, description, homepage, etc.) | ||
| * @param repoSlug - Repository name/slug | ||
| * @param params - Additional repository configuration | ||
| * @param params.archived - Whether the repository is archived | ||
| * @param params.default_branch - Default branch of the repository | ||
| * @param params.description - Description of the repository | ||
| * @param params.homepage - Homepage URL of the repository | ||
| * @param params.visibility - Visibility setting ('public' or 'private') | ||
| * @param params.workspace - Workspace of the repository | ||
| * @returns Created repository details | ||
@@ -188,6 +228,6 @@ * | ||
| * ```typescript | ||
| * const result = await sdk.createRepository('my-org', { | ||
| * name: 'my-repo', | ||
| * const result = await sdk.createRepository('my-org', 'my-repo', { | ||
| * description: 'My project repository', | ||
| * homepage: 'https://example.com' | ||
| * homepage: 'https://example.com', | ||
| * visibility: 'private' | ||
| * }) | ||
@@ -202,7 +242,14 @@ * | ||
| * @apiEndpoint POST /orgs/{org_slug}/repos | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo:write | ||
| * @throws {Error} When server returns 5xx status codes | ||
| */ | ||
| createRepository(orgSlug: string, params?: QueryParams | undefined): Promise<RepositoryResult | StrictErrorResult>; | ||
| createRepository(orgSlug: string, repoSlug: string, params?: { | ||
| archived?: boolean | undefined; | ||
| default_branch?: null | string | undefined; | ||
| description?: null | string | undefined; | ||
| homepage?: null | string | undefined; | ||
| visibility?: 'private' | 'public' | undefined; | ||
| workspace?: string | undefined; | ||
| } | undefined): Promise<RepositoryResult | StrictErrorResult>; | ||
| /** | ||
@@ -229,3 +276,3 @@ * Create a new repository label for an organization. | ||
| * @apiEndpoint POST /orgs/{org_slug}/repos/labels | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo-label:create | ||
@@ -255,3 +302,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint DELETE /orgs/{org_slug}/full-scans/{full_scan_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:delete | ||
@@ -300,3 +347,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint DELETE /orgs/{org_slug}/repos/{repo_slug} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo:write | ||
@@ -326,3 +373,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint DELETE /orgs/{org_slug}/repos/labels/{label_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo-label:delete | ||
@@ -414,3 +461,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/export/openvex/{id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes report:read | ||
@@ -461,2 +508,31 @@ * @throws {Error} When server returns 5xx status codes | ||
| /** | ||
| * Get GitHub-flavored markdown comments for a diff scan. | ||
| * Returns dependency overview and alert comments suitable for pull requests. | ||
| * | ||
| * @param orgSlug - Organization identifier | ||
| * @param diffScanId - Diff scan identifier | ||
| * @param options - Optional query parameters | ||
| * @param options.github_installation_id - GitHub installation ID for settings | ||
| * @returns Diff scan metadata with formatted markdown comments | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * const result = await sdk.getDiffScanGfm('my-org', 'diff-scan-id') | ||
| * | ||
| * if (result.success) { | ||
| * console.log(result.data.dependency_overview_comment) | ||
| * console.log(result.data.dependency_alert_comment) | ||
| * } | ||
| * ``` | ||
| * | ||
| * @see https://docs.socket.dev/reference/getdiffscangfm | ||
| * @apiEndpoint GET /orgs/{org_slug}/diff-scans/{diff_scan_id}/gfm | ||
| * @quota 0 units | ||
| * @scopes diff-scans:list | ||
| * @throws {Error} When server returns 5xx status codes | ||
| */ | ||
| getDiffScanGfm(orgSlug: string, diffScanId: string, options?: { | ||
| github_installation_id?: string | undefined; | ||
| } | undefined): Promise<SocketSdkResult<'GetDiffScanGfm'>>; | ||
| /** | ||
| * Retrieve the enabled entitlements for an organization. | ||
@@ -497,3 +573,3 @@ * | ||
| * @apiEndpoint GET /orgs/{org_slug}/full-scans/{full_scan_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:list | ||
@@ -525,3 +601,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/full-scans/{full_scan_id}/metadata | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:list | ||
@@ -749,3 +825,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/repos/{repo_slug} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo:read | ||
@@ -777,3 +853,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/repos/labels/{label_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo-label:list | ||
@@ -791,5 +867,34 @@ * @throws {Error} When server returns 5xx status codes | ||
| /** | ||
| * Get list of supported file types for full scan generation. | ||
| * Returns glob patterns for supported manifest files, lockfiles, and configuration formats. | ||
| * | ||
| * Files whose names match the patterns returned by this endpoint can be uploaded | ||
| * for report generation. Examples include `package.json`, `package-lock.json`, and `yarn.lock`. | ||
| * | ||
| * @param orgSlug - Organization identifier | ||
| * @returns Nested object with environment and file type patterns | ||
| * | ||
| * @example | ||
| * ```typescript | ||
| * const result = await sdk.getSupportedFiles('my-org') | ||
| * | ||
| * if (result.success) { | ||
| * console.log('NPM patterns:', result.data.NPM) | ||
| * console.log('PyPI patterns:', result.data.PyPI) | ||
| * } | ||
| * ``` | ||
| * | ||
| * @see https://docs.socket.dev/reference/getsupportedfiles | ||
| * @apiEndpoint GET /orgs/{org_slug}/supported-files | ||
| * @quota 0 units | ||
| * @scopes No scopes required, but authentication is required | ||
| * @throws {Error} When server returns 5xx status codes | ||
| */ | ||
| getSupportedFiles(orgSlug: string): Promise<SocketSdkResult<'getSupportedFiles'>>; | ||
| /** | ||
| * Get list of file types and formats supported for scanning. | ||
| * Returns supported manifest files, lockfiles, and configuration formats. | ||
| * | ||
| * @deprecated Use getSupportedFiles() instead. This endpoint has been deprecated | ||
| * since 2023-01-15 and now uses the /report/supported endpoint. | ||
| * @throws {Error} When server returns 5xx status codes | ||
@@ -825,3 +930,3 @@ */ | ||
| * @apiEndpoint GET /orgs/{org_slug}/full-scans | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:list | ||
@@ -851,3 +956,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /organizations | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @throws {Error} When server returns 5xx status codes | ||
@@ -889,3 +994,3 @@ */ | ||
| * @apiEndpoint GET /orgs/{org_slug}/repos | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo:list | ||
@@ -918,3 +1023,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/repos/labels | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo-label:list | ||
@@ -1001,3 +1106,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint POST /orgs/{org_slug}/full-scans/{full_scan_id}/rescan | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:create | ||
@@ -1053,3 +1158,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint GET /orgs/{org_slug}/full-scans/{full_scan_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes full-scans:list | ||
@@ -1147,3 +1252,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint POST /orgs/{org_slug}/repos/{repo_slug} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo:write | ||
@@ -1175,3 +1280,3 @@ * @throws {Error} When server returns 5xx status codes | ||
| * @apiEndpoint PUT /orgs/{org_slug}/repos/labels/{label_id} | ||
| * @quota 1 unit | ||
| * @quota 0 units | ||
| * @scopes repo-label:update | ||
@@ -1178,0 +1283,0 @@ * @throws {Error} When server returns 5xx status codes |
@@ -53,2 +53,3 @@ /** | ||
| scan_state?: 'pending' | 'precrawl' | 'resolve' | 'scan' | null | undefined; | ||
| scan_type?: string | null | undefined; | ||
| updated_at: string; | ||
@@ -83,2 +84,3 @@ workspace?: string | undefined; | ||
| repo?: string | undefined; | ||
| scan_type?: string | undefined; | ||
| sort?: 'name' | 'created_at' | undefined; | ||
@@ -114,5 +116,48 @@ startAfterCursor?: string | undefined; | ||
| nextPage?: number | null | undefined; | ||
| results: RepositoryItem[]; | ||
| results: RepositoryListItem[]; | ||
| }; | ||
| /** | ||
| * Strict type for repository list item. | ||
| */ | ||
| export type RepositoryListItem = { | ||
| archived: boolean; | ||
| created_at: string; | ||
| default_branch: string | null; | ||
| description: string | null; | ||
| head_full_scan_id: string | null; | ||
| homepage: string | null; | ||
| id: string; | ||
| integration_meta?: { | ||
| /** @enum {string} */ | ||
| type?: 'github'; | ||
| value?: { | ||
| /** | ||
| * @description The GitHub installation_id of the active associated Socket GitHub App | ||
| * @default | ||
| */ | ||
| installation_id: string; | ||
| /** | ||
| * @description The GitHub login name that the active Socket GitHub App installation is installed to | ||
| * @default | ||
| */ | ||
| installation_login: string; | ||
| /** | ||
| * @description The name of the associated GitHub repo. | ||
| * @default | ||
| */ | ||
| repo_name: string | null; | ||
| /** | ||
| * @description The id of the associated GitHub repo. | ||
| * @default | ||
| */ | ||
| repo_id: string | null; | ||
| }; | ||
| } | null | undefined; | ||
| name: string; | ||
| slug: string; | ||
| updated_at: string; | ||
| visibility: 'public' | 'private'; | ||
| workspace: string; | ||
| }; | ||
| /** | ||
| * Strict type for repository item. | ||
@@ -155,3 +200,3 @@ */ | ||
| name: string; | ||
| slig?: string | undefined; | ||
| slig: string; | ||
| slug: string; | ||
@@ -158,0 +203,0 @@ updated_at: string; |
+6
-5
@@ -143,2 +143,3 @@ /** | ||
| success: false; | ||
| url?: string | undefined; | ||
| _operation?: T | undefined; | ||
@@ -172,2 +173,3 @@ }; | ||
| success: false; | ||
| url?: string | undefined; | ||
| }; | ||
@@ -273,10 +275,9 @@ /** | ||
| /** | ||
| * Number of retry attempts on failure (default: 0, retries disabled). | ||
| * Retries are opt-in following Node.js fs.rm() pattern. | ||
| * Recommended: 3 for production, 0 for testing. | ||
| * Number of retry attempts on failure (default: 3). | ||
| * Uses exponential backoff between retries. | ||
| */ | ||
| retries?: number | undefined; | ||
| /** | ||
| * Initial delay in milliseconds between retries (default: 100). | ||
| * Uses exponential backoff: 100ms, 200ms, 400ms, etc. | ||
| * Initial delay in milliseconds between retries (default: 1000). | ||
| * Uses exponential backoff: 1000ms, 2000ms, 4000ms, etc. | ||
| */ | ||
@@ -283,0 +284,0 @@ retryDelay?: number | undefined; |
+6
-7
| { | ||
| "name": "@socketsecurity/sdk", | ||
| "version": "3.3.0", | ||
| "packageManager": "pnpm@10.28.1", | ||
| "version": "3.3.1", | ||
| "packageManager": "pnpm@10.30.3", | ||
| "license": "MIT", | ||
@@ -60,3 +60,3 @@ "description": "SDK for the Socket API client", | ||
| "@socketregistry/packageurl-js": "1.3.5", | ||
| "@socketsecurity/lib": "5.5.3", | ||
| "@socketsecurity/lib": "5.7.0", | ||
| "form-data": "4.0.5" | ||
@@ -70,5 +70,6 @@ }, | ||
| "@biomejs/biome": "2.2.4", | ||
| "@dotenvx/dotenvx": "^1.51.4", | ||
| "@dotenvx/dotenvx": "^1.52.0", | ||
| "@eslint/compat": "1.3.2", | ||
| "@eslint/js": "9.35.0", | ||
| "@sveltejs/acorn-typescript": "1.0.8", | ||
| "@types/babel__traverse": "7.28.0", | ||
@@ -78,3 +79,2 @@ "@types/node": "24.9.2", | ||
| "@vitest/coverage-v8": "4.0.3", | ||
| "@sveltejs/acorn-typescript": "1.0.8", | ||
| "acorn": "8.15.0", | ||
@@ -102,4 +102,3 @@ "del": "8.0.1", | ||
| "typescript-eslint": "8.44.1", | ||
| "vitest": "4.0.3", | ||
| "yoctocolors-cjs": "2.1.3" | ||
| "vitest": "4.0.3" | ||
| }, | ||
@@ -106,0 +105,0 @@ "pnpm": { |
+2
-15
@@ -5,3 +5,3 @@ # @socketsecurity/sdk | ||
| [](https://github.com/SocketDev/socket-sdk-js/actions/workflows/ci.yml) | ||
|  | ||
|  | ||
@@ -39,3 +39,3 @@ [](https://twitter.com/SocketSecurity) | ||
| if (result.success) { | ||
| console.log(`Security Score: ${result.data.score}/100`) | ||
| console.log(`Dependency Score: ${result.data.depscore}`) | ||
| } | ||
@@ -56,20 +56,7 @@ | ||
| |-------|-------------| | ||
| | **[Getting Started](./docs/getting-started.md)** | Quick start for contributors (5 min setup) | | ||
| | **[API Reference](./docs/api-reference.md)** | Complete API method documentation | | ||
| | **[Usage Examples](./docs/usage-examples.md)** | Real-world patterns and code samples | | ||
| | **[Quota Management](./docs/quota-management.md)** | Cost tiers (0/10/100) and utilities | | ||
| | **[Testing Guide](./docs/dev/testing.md)** | Test helpers, fixtures, and patterns | | ||
| | **[Method Reference](./docs/when-to-use-what.md)** | Quick method selection guide | | ||
| ## Examples | ||
| See **[usage-examples.md](./docs/usage-examples.md)** for complete examples including: | ||
| - Package security analysis | ||
| - Batch operations | ||
| - Full scans with SBOM | ||
| - Policy management | ||
| - Quota planning | ||
| ## License | ||
| MIT |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
1001635
6.25%36
-2.7%26875
5.87%60
-17.81%83
5.06%+ Added
- Removed
Updated