UNPKG

@jsforce/jsforce-node

Version:

Salesforce API Library for JavaScript

569 lines (568 loc) 14.9 kB
/// <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 {};