@jsforce/jsforce-node
Version:
Salesforce API Library for JavaScript
569 lines (568 loc) • 14.9 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { Optional } from './util';
import { URLSearchParams } from 'url';
import * as FormData from 'form-data';
/**
* type defs
*/
export type Callback<T, T2 = undefined> = (err: Error | null | undefined, ret?: T, ret2?: T2) => any;
export type HttpBody = Buffer | URLSearchParams | NodeJS.ReadableStream | string | FormData | null;
export type HttpMethods = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
export type HttpRequest = {
url: string;
method: HttpMethods;
headers?: {
[name: string]: string;
};
body?: HttpBody;
};
export type HttpRequestOptions = {
retry?: {
maxRetries?: number;
minTimeout?: number;
timeoutFactor?: number;
errorCodes?: string[];
methods?: HttpMethods[];
statusCodes?: number[];
};
httpProxy?: string;
timeout?: number;
followRedirect?: boolean | ((redirectUrl: string) => HttpRequest | null);
encoding?: BufferEncoding;
};
export type HttpResponse = {
statusCode: number;
headers: {
[name: string]: string;
};
body: string;
};
export type Record = {
[field: string]: any;
Id?: string;
attributes?: {
type: string;
url: string;
[prop: string]: any;
};
};
export type SavedRecord = Record & {
Id: string;
};
export type SaveError = {
errorCode: string;
message: string;
fields?: string[];
};
export type SaveResult = {
success: true;
id: string;
errors: never[];
} | {
success: false;
id?: undefined;
errors: SaveError[];
};
export type UpsertResult = {
success: true;
id: string;
created: boolean;
errors: never[];
} | {
success: false;
id?: undefined;
created?: undefined;
errors: SaveError[];
};
export type SearchResult = {
searchRecords: Record[];
};
export type RetrieveOptions = {
allOrNone?: boolean;
fields?: string[];
headers?: {
[name: string]: string;
};
};
export type DmlOptions = {
allOrNone?: boolean;
allowRecursive?: boolean;
headers?: {
[name: string]: string;
};
multipartFileFields?: {
[fieldName: string]: MultipartFileFieldOptions;
};
};
export type MultipartFileFieldOptions = {
filename?: string;
contentType: string;
};
export type SignedRequestObject = {
client: {
oauthToken: string;
};
};
export type Field = {
aggregatable: boolean;
autoNumber: boolean;
byteLength: number;
calculated: boolean;
calculatedFormula: Optional<string>;
cascadeDelete: boolean;
caseSensitive: boolean;
compoundFieldName: Optional<string>;
controllerName: Optional<string>;
createable: boolean;
custom: boolean;
defaultValue: Optional<string>;
defaultValueFormula: Optional<string>;
defaultedOnCreate: boolean;
dependentPicklist: boolean;
deprecatedAndHidden: boolean;
digits: number;
displayLocationInDecimal: boolean;
encrypted: boolean;
externalId: boolean;
extraTypeInfo: Optional<string>;
filterable: boolean;
filteredLookupInfo: object;
groupable: boolean;
highScaleNumber: boolean;
htmlFormatted: boolean;
idLookup: boolean;
inlineHelpText: Optional<string>;
label: string;
length: number;
mask: Optional<string>;
maskType: Optional<string>;
name: string;
nameField: boolean;
namePointing: boolean;
nillable: boolean;
permissionable: boolean;
picklistValues: Optional<any[]>;
precision: number;
queryByDistance: boolean;
referenceTargetField: object;
referenceTo: Optional<string[]>;
relationshipName: Optional<string>;
relationshipOrder: Optional<number>;
restrictedDelete: boolean;
restrictedPicklist: boolean;
scale: number;
soapType: string;
sortable: boolean;
type: string;
unique: boolean;
updateable: boolean;
writeRequiresMasterRead: boolean;
};
type ActionOverride = {
formFactor: string;
isAvailableInTouch: boolean;
name: string;
pageId: string;
url: Optional<string>;
};
type ChildRelationship = {
cascadeDelete: boolean;
childSObject: string;
deprecatedAndHidden: boolean;
field: string;
junctionIdListNames: string[];
junctionReferenceTo: string[];
relationshipName: Optional<string>;
restrictedDelete: boolean;
};
type NamedLayoutInfo = {
name: string;
urls: {
[key: string]: string;
};
};
type RecordTypeInfo = {
available: boolean;
defaultRecordTypeMapping: boolean;
master: boolean;
name: string;
recordTypeId: string;
urls: {
[key: string]: string;
};
};
type ScopeInfo = {
label: string;
name: string;
};
type DescribeGlobalSObjectResult = {
activateable: boolean;
createable: boolean;
custom: boolean;
customSetting: boolean;
deepCloneable: boolean;
deletable: boolean;
deprecatedAndHidden: boolean;
feedEnabled: boolean;
hasSubtypes: boolean;
idEnabled: boolean;
isInterface: boolean;
isSubtype: boolean;
keyPrefix: Optional<string>;
label: string;
labelPlural: string;
layoutable: boolean;
mergeable: boolean;
mruEnabled: boolean;
name: string;
queryable: boolean;
replicateable: boolean;
retrieveable: boolean;
searchable: boolean;
triggerable: boolean;
undeletable: boolean;
updateable: boolean;
urls: {
[key: string]: string;
};
};
export type DescribeSObjectResult = DescribeGlobalSObjectResult & {
actionOverrides: ActionOverride[];
childRelationships: ChildRelationship[];
compactLayoutable: boolean;
fields: Field[];
listviewable: boolean;
lookupLayoutable: boolean;
namedLayoutInfos: NamedLayoutInfo[];
networkScopeFieldName: Optional<string>;
recordTypeInfos: RecordTypeInfo[];
searchLayoutable: boolean;
supportedScopes: Optional<ScopeInfo[]>;
};
export type DescribeGlobalResult = {
encoding: string;
maxBatchSize: number;
sobjects: DescribeGlobalSObjectResult[];
};
type DescribeColor = {
color: string;
context: string;
theme: string;
};
type DescribeIcon = {
contentType: string;
height: Optional<number>;
theme: string;
url: string;
width: Optional<number>;
};
type WebLinkPosition = 'fullScreen' | 'none' | 'topLeft';
type WebLinkType = 'javascript' | 'page' | 'sControl' | 'url';
type WebLinkWindowType = 'newWindow' | 'noSidebar' | 'onClickJavaScript' | 'replace' | 'sidebar';
type DescribeLayoutButton = {
behavior: Optional<WebLinkWindowType>;
colors: Optional<DescribeColor[]>;
content: Optional<string>;
contentSource: Optional<WebLinkType>;
custom: boolean;
encoding: Optional<string>;
height: Optional<number>;
icons: Optional<DescribeIcon[]>;
label: string;
menubar: boolean;
name: string;
overridden: boolean;
resizeable: boolean;
scrollbars: boolean;
showsLocation: boolean;
showsStatus: boolean;
toolbar: boolean;
url: Optional<string>;
width: Optional<number>;
windowPosition: Optional<WebLinkPosition>;
};
type DescribeLayoutButtonSection = {
detailButtons: DescribeLayoutButton[];
};
type LayoutComponentType = 'AnalyticsCloud' | 'Canvas' | 'CustomLink' | 'EmptySpace' | 'ExpandedLookup' | 'Field' | 'ReportChart' | 'SControl' | 'Separator' | 'VisualforcePage';
type DescribeLayoutComponent = {
details?: any;
displayLines: number;
tabOrder: number;
type: LayoutComponentType;
value: Optional<string>;
};
type DescribeLayoutItem = {
editableForNew: boolean;
editableForUpdate: boolean;
label: string;
layoutComponents: DescribeLayoutComponent[];
placeholder: boolean;
required: boolean;
};
type DescribeLayoutRow = {
layoutItems: DescribeLayoutItem[];
numItems: number;
};
type DescribeLayoutSection = {
columns: number;
heading: string;
layoutRows: DescribeLayoutRow[];
parentLayoutId: string;
rows: number;
tabOrder: 'LeftToRight' | 'TopToBottom';
useCollapsibleSection: boolean;
useHeading: boolean;
};
type DescribeQuickActionListItemResult = {
colors: Optional<DescribeColor[]>;
iconUrl: Optional<string>;
icons: Optional<DescribeIcon[]>;
label: string;
miniIconUrl: Optional<string>;
quickActionName: string;
targetSobjectType: Optional<string>;
type: 'Create' | 'VisualforcePage';
};
type DescribeQuickActionListResult = {
quickActionListItems: DescribeQuickActionListItemResult[];
};
type DescribeRelatedContentItem = {
describeLayoutItem: DescribeLayoutItem;
};
type RelatedContent = {
relatedContentItems: DescribeRelatedContentItem[];
};
type RelatedListColumn = {
field: Optional<string>;
fieldApiName: string;
format: Optional<string>;
label: string;
lookupId: Optional<string>;
name: string;
sortable: boolean;
};
type RelatedListSort = {
column: string;
ascending: boolean;
};
type RelatedList = {
accessLevelRequiredForCreate: Optional<string>;
buttons: DescribeLayoutButton[];
columns: RelatedListColumn[];
custom: boolean;
field: Optional<string>;
label: string;
limitRows: number;
name: string;
sobject: Optional<string>;
sort: RelatedListSort[];
};
type DescribeLayoutSaveOption = {
defaultValue: boolean;
isDisplayed: boolean;
label: string;
name: string;
restHeaderName: string;
soapHeaderName: string;
};
type DescribeLayout = {
buttonLayoutSection: Optional<DescribeLayoutButtonSection>;
detailLayoutSections: DescribeLayoutSection[];
editLayoutSections: DescribeLayoutSection[];
feedView: Optional<DescribeLayoutFeedView>;
highlightsPanelLayoutSection: Optional<DescribeLayoutSection>;
multirowEditLayoutSections: DescribeLayoutSection[];
id: string;
quickActionList: DescribeQuickActionListResult;
relatedContent: RelatedContent;
relatedLists: RelatedList[];
saveOptions: DescribeLayoutSaveOption[];
};
type DescribeLayoutFeedFilter = {
label: string;
name: string;
type: 'AllUpdates' | 'FeedItemType';
};
type DescribeLayoutFeedView = {
feedFilters: DescribeLayoutFeedFilter[];
};
type RecordTypeMapping = any;
export type DescribeLayoutResult = {
layouts: DescribeLayout[];
recordTypeMappings: RecordTypeMapping[];
recordTypeSelectorRequired: boolean[];
};
export type DescribeCompactLayout = {
actions: DescribeLayoutButton[];
fieldItems: DescribeLayoutItem[];
id: Optional<string>;
imageItems: DescribeLayoutItem[];
label: string;
name: string;
objectType: string;
};
type RecordTypeCompactLayoutMapping = {
available: boolean;
compactLayoutId: Optional<string>;
compactLayoutName: string;
recordTypeId: string;
recordTypeName: string;
};
export type DescribeCompactLayoutsResult = {
compactLayouts: DescribeCompactLayout[];
defaultCompactLayoutId: Optional<string>;
recordTypeCompactLayoutMappings: RecordTypeCompactLayoutMapping[];
};
type DescribeApprovalLayout = {
id: string;
label: string;
layoutItems: DescribeLayoutItem[];
name: string;
};
export type DescribeApprovalLayoutsResult = {
approvalLayouts: DescribeApprovalLayout[];
};
export type DescribeTab = {
colors: DescribeColor[];
custom: boolean;
iconUrl: string;
icons: DescribeIcon[];
label: string;
miniIconUrl: string;
name: string;
sobjectName: Optional<string>;
url: string;
};
export type DescribeTheme = {
themeItems: Array<{
colors: Optional<DescribeColor[]>;
icons: Optional<DescribeIcon[]>;
name: string;
}>;
};
export type DescribeQuickActionResult = {
actionEnumOrId: string;
label: string;
name: string;
type: string;
urls: {
[key: string]: string;
};
};
type DescribeQuickActionDefaultValue = any;
type QuickActionLayout = {
collapsed: boolean;
columns: number;
heading: string | null;
layoutRows: any[];
layoutSectionId: string | null;
parentLayoutId: string | null;
rows: number;
tabOrder: string;
useCollapsibleSection: boolean;
useHeading: boolean;
};
export type DescribeQuickActionDetailResult = DescribeQuickActionResult & {
canvasApplicationId: string | null;
canvasApplicationName: string | null;
colors: DescribeColor[];
contextSobjectType: string | null;
defaultValues: DescribeQuickActionDefaultValue[];
flowDevName: string | null;
flowRecordIdVar: string | null;
height: number;
iconName: string | null;
iconUrl: string | null;
icons: DescribeIcon[];
layout: QuickActionLayout;
lightningComponentBundleId: string | null;
lightningComponentBundleName: string | null;
lightningComponentQualifiedName: string | null;
lightningWebComponentBundleId: string | null;
lightningWebComponentBundleName: string | null;
lightningWebComponentQualifiedName: string | null;
miniIconUrl: string;
mobileExtensionId: string | null;
showQuickActionLcHeader: boolean;
showQuickActionVfHeader: boolean;
targetParentField: string | null;
targetRecordTypeId: string | null;
targetSobjectType: string;
type: string;
visualforcePageName: string | null;
visualforcePageUrl: string | null;
width: number | null;
};
export type DeletedResult = {
deletedRecords: Array<{
id: string;
deletedDate: string;
}>;
earliestDateAvailable: string;
latestDateCovered: string;
};
export type UpdatedResult = {
ids: string[];
latestDateCovered: string;
};
export type OrganizationLimitsInfo = {
[key: string]: {
Max: number;
Remaining: number;
};
};
export type IdentityInfo = {
user_id: string;
organization_id: string;
id: string;
username: string;
display_name: string;
nick_name: string;
email: string;
photos: {
picture: string;
thumbnail: string;
};
urls: {
enterprise: string;
metadata: string;
partner: string;
rest: string;
sobjects: string;
search: string;
query: string;
profile: string;
};
user_type: string;
language: string;
};
export type UserInfo = {
id: string;
organizationId: string;
url: string;
};
export type LimitInfo = {
apiUsage?: {
used: number;
limit: number;
};
};
export type ProcessRule = {
actions: {
id: string;
name: string;
type: string;
};
description: string | null;
id: string;
name: string;
namespacePrefix: string | null;
object: string;
};
export type ProcessRules = {
[index: string]: ProcessRule;
};
export {};