external-consumers

star 1.0k

Known external consumers of APIs from this monorepo's extensions. Use when changing public API surfaces (activate return types, exported types, services sub-objects), evaluating breaking changes, removing exports, or checking if anything uses a given API member.

forcedotcom By forcedotcom schedule Updated 6/12/2026

name: external-consumers description: Known external consumers of APIs from this monorepo's extensions. Use when changing public API surfaces (activate return types, exported types, services sub-objects), evaluating breaking changes, removing exports, or checking if anything uses a given API member.

External Consumers

Other repos consume APIs from this monorepo's extensions. Some are private.

  • Exported extension APIs = public contracts
  • Remove/change field, method, behavior = breaking
  • Add field = non-breaking
  • Cannot grep this monorepo alone — must check external repos
  • Consumers version-gate (semver.satisfies) — major bump alone insufficient

On-demand validation via gh CLI

# search specific repo
gh api -X GET "search/code?q=SYMBOL+repo:forcedotcom/REPO&per_page=20" \
  --jq '.items[] | "\(.path)"'

# read file from private repo
gh api repos/forcedotcom/REPO/contents/PATH --jq '.content' | base64 -d

# search all forcedotcom repos
gh api -X GET "search/code?q=SYMBOL+org:forcedotcom&per_page=30" \
  --jq '.items[] | "\(.repository.name): \(.path)"'

# search salesforcecli org too
gh api -X GET "search/code?q=SYMBOL+org:salesforcecli&per_page=30" \
  --jq '.items[] | "\(.repository.name): \(.path)"'

Rate limit ~30 req/min on search API. Use contents API for targeted reads.

Direct core API consumers (SalesforceVSCodeCoreApi)

Via vscode.extensions.getExtension('salesforce.salesforcedx-vscode-core').exports:

Repo Visibility Consumed
einstein-gpt Private services.{ChannelService,WorkspaceContext,SalesforceProjectConfig,CommandEventDispatcher}, workspaceContextUtils.getOrgShape
vscode-agents Public services.{ChannelService,TelemetryService,WorkspaceContext}
metadata-visualizer Private services.TelemetryService
code-analyzer Public services.WorkspaceContext (direct), telemetry via service-provider

@salesforce/vscode-service-provider consumers

Repo (public) — abstraction bridging to core services. Still depends on core being active.

Repo Service
code-analyzer ServiceType.Telemetry
einstein-gpt ServiceType.Telemetry

extensionDependency-only (no API consumption)

Repo Visibility Notes
ui-preview Private Activation ordering only. Uses bundled WorkspaceContextUtil from utils-vscode.

No current core dependency

Repo Notes
slds No extensionDep, no getExtension. In same extension pack.
apex-language-support Experimental. String refs only in tests/comments.

In-repo consumers

IMPORTANT: In-repo packages access core API via TWO patterns:

  1. Wrapper functions in coreExtensionUtils.ts (easy to grep)
  2. Direct .exports.MEMBER() calls scattered across source files (easy to miss)

Always grep for \.exports\.\w+ across the full monorepo, not just coreExtensionUtils.ts.

Package Files Members accessed
apex coreExtensionUtils.ts, index.ts, languageServer.ts .WorkspaceContext, .services.TelemetryService, .getAuthFields, .services.SalesforceProjectConfig
apex-debugger coreExtensionUtils.ts, index.ts, debugConfigurationProvider.ts .channelService, .SfCommandlet, .telemetryService, .SfCommandletExecutor, .isCLIInstalled
apex-replay-debugger index.ts, checkpointService.ts, quickLaunch.ts, debugConfigurationProvider.ts .services.WorkspaceContext, .getUserId
apex-oas index.ts, oasUtils.ts, externalServiceRegistrationManager.ts .WorkspaceContext, .services.SalesforceProjectConfig, .services.RegistryAccess, .services.FsService
utils-vscode authUtils.ts, workspaceContextUtil.ts, telemetryUtils.ts .sharedAuthState, .channelService, .getSharedTelemetryUserId (phantom — not on API type)

Keeping current

Verified 2026-04-29. Before asserting "nobody uses X":

  1. Grep monorepo for \.exports\.MEMBER — catches direct access outside wrapper files
  2. Search org:forcedotcom and org:salesforcecli via gh api
  3. Read private repos via contents API
  4. Check extensionPack in salesforcedx-vscode and salesforcedx-vscode-expanded for new extensions
Install via CLI
npx skills add https://github.com/forcedotcom/salesforcedx-vscode --skill external-consumers
Repository Details
star Stars 1,020
call_split Forks 455
navigation Branch main
article Path SKILL.md
More from Creator