Options
All
  • Public
  • Public/Protected
  • All
Menu

Module @sap-cloud-sdk/core

Index

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

AuthenticationType

AuthenticationType: "NoAuthentication" | "BasicAuthentication" | "OAuth2SAMLBearerAssertion" | "OAuth2ClientCredentials" | "ClientCertificateAuthentication"

BatchResponse

DeepFieldType

DeepFieldType: FieldType | {}
deprecated

Use FieldType instead. Represents types of nested fields.

DestinationOptions

DestinationProxyType

DestinationProxyType: "OnPremise" | "Internet" | null

DestinationRetrievalOptions

Options to use while fetching destinations. Encompasses both DestinationCachingOptions and ResilienceOptions interfaces.

DestinationSelectionStrategy

DestinationSelectionStrategy: (allDestinations: AllDestinations, destinationName: string) => Destination | null

Type declaration

    • (allDestinations: AllDestinations, destinationName: string): Destination | null
    • Parameters

      • allDestinations: AllDestinations
      • destinationName: string

      Returns Destination | null

EdmToPrimitive

EdmToPrimitive<T>: T extends "Edm.Int16" | "Edm.Int32" | "Edm.Single" | "Edm.Double" | "Edm.Float" | "Edm.Byte" | "Edm.SByte" ? number : T extends "Edm.Decimal" | "Edm.Int64" ? BigNumber : T extends "Edm.DateTime" | "Edm.DateTimeOffset" ? Moment : T extends "Edm.String" | "Edm.Guid" ? string : T extends "Edm.Boolean" ? boolean : T extends "Edm.Time" ? Time : any

Type parameters

EdmType

EdmType: "Edm.String" | "Edm.Boolean" | "Edm.Guid" | "Edm.Decimal" | "Edm.Double" | "Edm.Single" | "Edm.Float" | "Edm.Int16" | "Edm.Int32" | "Edm.Int64" | "Edm.SByte" | "Edm.DateTime" | "Edm.DateTimeOffset" | "Edm.Time" | "Edm.Binary" | "Edm.Byte"

EntityBuilderType

EntityBuilderType<EntityT, EntityTypeForceMandatoryT>: {} & EntityBuilder<EntityT, EntityTypeForceMandatoryT>

Type parameters

  • EntityT: Entity

  • EntityTypeForceMandatoryT

ExecuteHttpRequestFn

ExecuteHttpRequestFn: (request: HttpRequest) => Promise<HttpResponse>

Type declaration

FieldType

FieldType: string | number | boolean | Time | Moment | BigNumber | null | undefined

Union type to represent all possible types of a field.

FilterFunctionParameterType

FilterFunctionParameterType<EntityT>: number | string | Field<EntityT> | FilterFunction<EntityT, FieldType>

Type of a parameter of a filter function. This can either be an explicit value (string or number), a reference to a field or another filter function.

Type parameters

FilterOperator

FilterOperator: FilterOperatorString | FilterOperatorBoolean | FilterOperatorNumber

FilterOperatorByType

FilterOperatorByType<FieldT>: FieldT extends string ? FilterOperatorString : FieldT extends number ? FilterOperatorNumber : FilterOperatorBoolean

Type parameters

Filterable

Filterable<EntityT>: Filter<EntityT, FieldType> | FilterLink<EntityT, any> | FilterList<EntityT>

A union of all types that can be used for filtering.

Type parameters

  • EntityT: Entity

    Type of the entity to be filtered on

FunctionImportParameters

FunctionImportParameters<ParametersT>: {}

Internal representation of all parameters of a function import as a map

Type parameters

  • ParametersT

    External represenation of all parameters

Type declaration

HttpRequest

JwtKeyMapping

JwtKeyMapping<TypescriptKeys, JwtKeys>: {}

Type parameters

  • TypescriptKeys

  • JwtKeys

Type declaration

Orderable

Orderable<EntityT>: Order<EntityT> | OrderLink<EntityT, Entity>

A union of all types that can be used for ordering.

Type parameters

  • EntityT: Entity

    Type of the entity to be ordered

OrderableInput

OrderableInput<EntityT>: SimpleTypeFields<EntityT> | Link<EntityT, Entity> | ComplexTypePropertyFields<EntityT>

A union of all types that can be used as input for ordering.

Type parameters

  • EntityT: Entity

    Type of the entity to be ordered

RegisteredJWTClaims

Interface to represent the registered claims of a JWT.

RequestMethodType

RequestMethodType: "get" | "post" | "patch" | "delete" | "put"

Selectable

Selectable<EntityT>: SimpleTypeFields<EntityT> | Link<EntityT, any> | ComplexTypeField<EntityT> | CustomField<EntityT> | AllFields<EntityT>

Represents all selectables, i.e. everything that can be used in a .select statement.

Type parameters

  • EntityT: Entity

    Type of the entity to be selected on

Variables

Const clientCredentialsTokenCache

clientCredentialsTokenCache: { cacheRetrievedToken: any; clear: any; getCacheInstance: any; getGrantTokenFromCache: any } = ClientCredentialsTokenCache(new Cache<ClientCredentialsResponse>())

Type declaration

Const content_transfer_encoding_line

content_transfer_encoding_line: "Content-Transfer-Encoding: binary" = "Content-Transfer-Encoding: binary"

Const destinationCache

destinationCache: { cacheRetrievedDestinations: any; clear: any; getCacheInstance: any; retrieveDestinationFromCache: any } = DestinationCache(new Cache<Destination>({ hours: 0, minutes: 5, seconds: 0 }))

Type declaration

Const executeHttpRequest

executeHttpRequest: (Anonymous function) = execute(executeWithAxios)

Builds a DestinationHttpRequestConfig for the given destination, merges it into the given requestConfig and executes it (using Axios).

param

A destination or a destination name and a JWT.

param

Any object representing an HTTP request.

returns

An HttpResponse.

Const http_version

http_version: "HTTP/1.1" = "HTTP/1.1"

Const part_content_type_line

part_content_type_line: "Content-Type: application/http" = "Content-Type: application/http"

Const verificationKeyCache

verificationKeyCache: Cache<unknown> = new Cache({ minutes: 15 })

Functions

addAuthorizationHeader

  • addAuthorizationHeader<RequestT>(request: ODataRequest<RequestT>, headers: MapType<string>): Promise<MapType<string>>
  • Adds authorization headers for a given ODataRequest to existing headers.

    Type parameters

    • RequestT: ODataRequestConfig

    Parameters

    • request: ODataRequest<RequestT>

      an ODataRequest.

    • headers: MapType<string>

      The headers that should be added to.

    Returns Promise<MapType<string>>

    The provided headers with the new authorization headers.

addCsrfTokenAndCookies

  • addCsrfTokenAndCookies<RequestT>(request: ODataRequest<RequestT>, headers: MapType<string>): Promise<MapType<string>>

addDestinationToRequestConfig

  • Builds a DestinationHttpRequestConfig for the given destination and then merges it into the given requestConfig. NOTE: If the properties baseURL, httpClient, and httpsClient exist on the given requestConfig, they will be overwritten. Headers will be merged, whereby any headers built from the given destination will overwrite existing headers (e.g. the Authorization header).

    Type parameters

    • T

    Parameters

    Returns Promise<T & DestinationHttpRequestConfig>

    The given request config merged with the config built for the given destination.

Const addLocationIdHeader

  • addLocationIdHeader(locationId?: undefined | string): (Anonymous function)

addProxyConfiguration

  • Given a destination and a JWT (required for subscriber destinations), this function will add a proxy configuration to a destination. See also ProxyConfiguration.

    This function will reject if no connectivity service is bound, no XSUAA service with plan application is bound or the client credentials grant with the XSUAA service fails.

    deprecated

    In version 1.16.0 web proxy support was added so this method was renamed to addProxyConfigurationOnPrem to better distinguish the to cases.

    Parameters

    • destination: Destination

      The destination to which the proxy configuration should be added.

    • Optional jwt: undefined | string

      The JWT of the current user.

    Returns Promise<Destination>

    A promise resolving to the destiation with the added proxy configuration.

addProxyConfigurationInternet

  • addProxyConfigurationInternet(destination: any): Destination

addProxyConfigurationOnPrem

Const addProxyHeaders

addSapClientHeader

  • addSapClientHeader(sapClient?: undefined | string): (Anonymous function)

alwaysProvider

  • alwaysProvider(allDestinations: AllDestinations, destinationName: string): Destination | null
  • Constraints the selection to provider destinations.

    Parameters

    • allDestinations: AllDestinations

      Retrieved destinations

    • destinationName: string

      Name of the destination to retrieve

    Returns Destination | null

    the destination to retrieve, returns null if no matched provider destination is found

alwaysSubscriber

  • alwaysSubscriber(allDestinations: AllDestinations, destinationName: string): Destination | null
  • Constraints the selection to subscriber destinations.

    Parameters

    • allDestinations: AllDestinations

      Retrieved destinations

    • destinationName: string

      Name of the destination to retrieve

    Returns Destination | null

    the destination to retrieve, returns null if no matched subscriber destination is found

and

  • Create a FilterList by combining Filterables with logical and.

    Example:

    Entity.requestBuilder()
     .getAll()
     .filter(and(filterExp1, filterExp2));

    Note that the GetAllRequestBuilder.filter method takes a rest parameter and thereby an array of filter expressions that are then combined conjunctively. As a consequence following is equivalent to the example above:

    Entity.requestBuilder()
     .getAll()
     .filter(filterExp1, filterExp2);

    Type parameters

    • EntityT: Entity

      Type of the entity to be filtered on

    Parameters

    • Rest ...expressions: Array<Filterable<EntityT>>

      Filterables to be combined with logical and

    Returns FilterList<EntityT>

    The newly created FilterList

asc

  • Create new Order by orderBy._fieldName in ascending order.

    Type parameters

    • EntityT: Entity

      Type of the entity to be ordered

    Parameters

    Returns Order<EntityT>

    New order

audiences

  • audiences(decodedToken: DecodedJWT): Set<string>
  • Retrieve the audiences of a decoded JWT based on the audiences and scopes in the token.

    Parameters

    • decodedToken: DecodedJWT

      Token to retrieve the audiences from.

    Returns Set<string>

    A set of audiences.

basicHeader

  • basicHeader(username: string, password: string): string

Const buildAndAddAuthorizationHeader

  • buildAndAddAuthorizationHeader(destination: Destination): (Anonymous function)

buildHeaders

  • buildHeaders<RequestT>(request: ODataRequest<RequestT>): Promise<MapType<string>>
  • Create object containing all headers, including custom headers for a given OData request configuration and destination. Custom headers override duplicate headers.

    typeparam

    Type of the entity the headers are built for

    Type parameters

    • RequestT: ODataRequestConfig

    Parameters

    • request: ODataRequest<RequestT>

      OData request configuration to create headers for

    Returns Promise<MapType<string>>

    Key-value pairs where the key is the name of a header property and the value is the respective value

Const buildHeadersForDestination

  • buildHeadersForDestination(destination: Destination): Promise<MapType<string>>

buildHttpRequest

checkMandatoryValue

  • checkMandatoryValue<TypeScriptKeys, JwtKeys>(key: keyof TypeScriptKeys, mapping: JwtKeyMapping<TypeScriptKeys, JwtKeys>, decodedJWT: DecodedJWT): void
  • Checks if a given key is in the decoded JWT. If not an error is raised

    exception

    Error is thrown if the key is not present.

    Type parameters

    • TypeScriptKeys

    • JwtKeys

    Parameters

    Returns void

clientCredentialsGrant

  • Executes a client credentials grant request. If the first parameter is an instance of XsuaaServiceCredentials, the response's access_token will be verified. If the first parameter is an URI, the response will not be verified.

    Parameters

    • xsuaaUriOrCredentials: string | XsuaaServiceCredentials

      The URI or the credentials of a XSUAA service instance.

    • clientCredentials: ClientCredentials

      Client credentials for which to request a token

    • Optional options: ResilienceOptions

      Options to use by retrieving access token

    • Default value customBody: MapType<any> = {}

      Object containing value required for the body request

    Returns Promise<ClientCredentialsResponse>

    A promise resolving to the response

convertToUriForEdmString

  • convertToUriForEdmString(value: any): string

createComplexType

  • createComplexType<ComplexT>(json: any, converters: any): ComplexT

customAttributes

  • customAttributes(decodedToken: DecodedJWT): Map<string, string[]>
  • Extracts the custom attributes in the JWT

    Parameters

    • decodedToken: DecodedJWT

      Token to read the custom attributes

    Returns Map<string, string[]>

    custom attributes added by the xsuaa to the issued JWT.

decodeJwt

desc

  • Create new Order by orderBy._fieldName in descending order.

    Type parameters

    • EntityT: Entity

      Type of the entity to be ordered

    Parameters

    Returns Order<EntityT>

    New order

deserializeEntity

  • deserializeEntity<EntityT, JsonT>(json: Partial<JsonT>, entityConstructor: Constructable<EntityT>, requestHeader?: any): EntityT
  • Converts the JSON payload for a single entity into an instance of the corresponding generated entity class. It sets the remote state to the data provided by the JSON payload. If a version identifier is found in the '__metadata' or in the request header, the method also sets it.

    Type parameters

    Parameters

    • json: Partial<JsonT>

      The JSON payload.

    • entityConstructor: Constructable<EntityT>

      The constructor function of the entity class.

    • Optional requestHeader: any

    Returns EntityT

    An instance of the entity class.

destinationForServiceBinding

  • Tries to build a destination from a service binding with the given name. Throws an error if no services are bound at all, no service with the given name can be found, or the service type is not supported. The last error can be circumvent by using the second parameter to provide a custom function that transforms a service binding to a destination.

    Parameters

    Returns Destination

    A destination.

Const execute

extractClientCredentials

extractCustomFields

  • extractCustomFields<EntityT, JsonT>(json: Partial<JsonT>, entityConstructor: Constructable<EntityT>): MapType<any>
  • Extracts all custom fields from the JSON payload for a single entity. In this context, a custom fields is every property that is not known in the corresponding entity class.

    Type parameters

    Parameters

    • json: Partial<JsonT>

      The JSON payload.

    • entityConstructor: Constructable<EntityT>

      The constructor function of the entity class.

    Returns MapType<any>

    An object containing the custom fields as key-value pairs.

fetchDestination

  • Fetches a specific destination by name from the given URI, including authorization tokens. For destinations with authenticationType OAuth2SAMLBearerAssertion, this call will trigger the OAuth2SAMLBearerFlow against the target destination.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    • destinationName: string

      The name of the desired destination

    • Optional options: ResilienceOptions

      Options to use by retrieving destinations

    Returns Promise<Destination>

    A Promise resolving to the destination

fetchInstanceDestinations

  • Fetches all instance destinations from the given URI.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    • Optional options: ResilienceOptions

      Options to use by retrieving destinations

    Returns Promise<Destination[]>

    A promise resolving to a list of instance destinations

fetchSubaccountDestinations

  • Fetches all subaccount destinations from the given URI.

    Parameters

    • destinationServiceUri: string

      The URI of the destination service

    • jwt: string

      The access token

    • Optional options: ResilienceOptions

      Options to use by retrieving destinations

    Returns Promise<Destination[]>

    A promise resolving to a list of subaccount destinations

fetchVerificationKeys

  • Fetches verification keys from the XSUAA service for the given credentials.

    Parameters

    Returns Promise<TokenKey[]>

    An array of TokenKeys.

  • Fetches verification keys from the XSUAA service for the given URL, with the given pair of credentials.

    Parameters

    • url: string

      URL of the XSUAA service instance.

    • clientId: string

      Client ID of the XSUAA service instance.

    • clientSecret: string

      Client secret of the XSUAA service instance.

    Returns Promise<TokenKey[]>

    An array of TokenKeys.

filterFunction

getAgentConfig

  • Returns the http or https-agent config depending on the destination URL. If the destination contains a proxy configuration, the agent will be a proxy-agent. If not it will be the default http-agent coming from node.

    Parameters

    • destination: Destination

      determining which kind of configuration is returned

    Returns HttpAgentConfig | HttpsAgentConfig

    The http or http-agent configuration.

getAxiosConfigWithDefaults

  • getAxiosConfigWithDefaults(): AxiosRequestConfig
  • Builds an Axios config with default configuration i.e. no_proxy, default http and https agent and GET as request method.

    Returns AxiosRequestConfig

    AxiosRequestConfig with default parameters

getDestination

  • Builds a destination from one of three sources (in the given order):

    • from the environment variable "destinations"
    • from service bindings
    • from the destination service

    If you want to get a destination only from a specific source, use the corresponding function directly (getDestinationFromEnvByName, destinationForServiceBinding, getDestinationFromDestinationService).

    Parameters

    • name: string

      The name of the destination to be retrieved.

    • Default value options: DestinationOptions = {}

      Configuration for how to retrieve destinations from the destination service.

    Returns Promise<Destination | null>

    A promise returning the requested destination on success.

getDestinationBasicCredentials

  • getDestinationBasicCredentials(): BasicCredentials

getDestinationByName

  • getDestinationByName(name: string): Destination | null
  • deprecated

    Since v1.4.2. Use getDestinationFromEnvByName instead.

    Get a destination from the environment variables by name. Throws an error if there are multiple destinations with the same name. This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Parameters

    • name: string

      Name of the destination

    Returns Destination | null

    The requested destination if existent, otherwise null

getDestinationFromDestinationService

  • Retrieves a destination with the given name from the Cloud Foundry destination service. Returns null if no destination can be found. Requires the following service bindings: destination, XSUAA By default, selects subscriber over provider and instance over subaccount destinations.

    If the destinations are read from the environment, the jwt will be ignored.

    Parameters

    • name: string

      The name of the destination to be retrieved.

    • options: DestinationOptions & { iss?: undefined | string }

      Configuration for how to retrieve destinations from the destination service.

    Returns Promise<Destination | null>

    A promise returning the requested destination on success.

getDestinationFromEnvByName

  • getDestinationFromEnvByName(name: string): Destination | null
  • Get a destination from the environment variables by name. Throws an error if there are multiple destinations with the same name. This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Parameters

    • name: string

      Name of the destination

    Returns Destination | null

    The requested destination if existent, otherwise null

getDestinationOptions

  • deprecated

    Since v1.0.1. Use getDestination instead.

    Retrieves a destination with the given name from the Cloud Foundry destination service. Returns null if no destination can be found. Requires the following service bindings: destination, XSUAA By default, selects subscriber over provider and instance over subaccount destinations.

    If the destinations are read from the environment, the jwt will be ignored.

    Parameters

    • name: string

      The name of the destination to be retrieved.

    • Default value options: DestinationOptions = {}

      The options of the fetching query of the destination that include the JWT of the current request and the strategy for selecting a destination.

    Returns Promise<Destination | null>

    A promise returning the requested destination on success.

getDestinationServiceCredentials

  • getDestinationServiceCredentials(): any

getDestinationServiceCredentialsList

getDestinationServiceUri

  • getDestinationServiceUri(): string | null
  • Destination URI getter NOTICE: If there exist more than one destination/uri, the function returns the first entry.

    returns:

    the first existing uri in destination. null: if no valid destination is found.

    Returns string | null

getDestinations

getDestinationsFromEnv

  • Get all destinations from the environment variable "destinations". This is discouraged for productive use! Use destination-accessor/useOrFetchDestination for fetching destinations from the Cloud Foundry destination service.

    Returns Destination[]

    A list of destinations

getEntityKeys

  • getEntityKeys<EntityT>(entity: EntityT, entityConstructor: Constructable<EntityT>): MapType<any>
  • Helper function that maps an entity to its keys map with their original names.

    Type parameters

    Parameters

    • entity: EntityT

      Entity to map

    • entityConstructor: Constructable<EntityT>

      The constructor of the entity

    Returns MapType<any>

    object that includes all keys that represent given entity

getEnvironmentVariable

  • getEnvironmentVariable(name: string): string | undefined | null
  • Environment variables accessor.

    Parameters

    • name: string

      Environment variable name.

    Returns string | undefined | null

    Env variable value if defined. null: If not defined.

getGrantTokenCacheKey

getOAuth2ClientCredentialsToken

  • getOAuth2ClientCredentialsToken(destination: Destination): Promise<ClientCredentialsResponse>
  • Retrieves an access token required for "OAuth2ClientCredentials" destination authentication type.

    Parameters

    • destination: Destination

      A destination having OAuth2ClientCredentials authentication type

    Returns Promise<ClientCredentialsResponse>

    A promise returning the requested access token on success.

getProtocolOrDefault

  • Extracts the http protocol from the destination url. The default value is http if no protocol is given.

    throws

    Error in case a unsupported protocol is given in the destination URL like rfc://example.com.

    Parameters

    • destination: Destination

      URL of this destination is parsed

    Returns Protocol

    The protocol either https or http.

getQueryParametersForFilter

  • getQueryParametersForFilter<EntityT>(filter: Filterable<EntityT>, entityConstructor: Constructable<EntityT>): Partial<{ filter: string }>
  • Get an object containing the given filter as query parameter, or an empty object if none was given.

    Type parameters

    • EntityT: Entity

      Type of the entity to filter on

    Parameters

    • filter: Filterable<EntityT>

      The filter to transform to a query parameter

    • entityConstructor: Constructable<EntityT>

      Constructor type of the entity to filter on

    Returns Partial<{ filter: string }>

    } An object containing the query parameter or an empty object

getQueryParametersForOrderBy

  • getQueryParametersForOrderBy<EntityT>(orderBy: Array<Orderable<EntityT>>): Partial<{ orderby: string }>
  • Get an object containing the given order bys as query parameter, or an empty object if none was given.

    Type parameters

    • EntityT: Entity

      Type of the entity to order

    Parameters

    • orderBy: Array<Orderable<EntityT>>

      A list of orderables to get the query parameters for

    Returns Partial<{ orderby: string }>

    } An object containing the query parameter or an empty object

getQueryParametersForSelection

  • getQueryParametersForSelection<EntityT>(selects: Array<Selectable<EntityT>>): Partial<{ expand: string; select: string }>
  • Get an object containing the given Selectables as query parameter, or an empty object if none were given. This retrieves where in addition to the selection (select) there is also an expansion (expand) needed.

    Type parameters

    • EntityT: Entity

      Type of the entity to get the selection for

    Parameters

    • selects: Array<Selectable<EntityT>>

      The list of selectables to be transformed to query parameters

    Returns Partial<{ expand: string; select: string }>

    An object containing the query parameters or an empty object

getRequestLine

  • Generate the request line, containing method, url and http version from the request builder, e.g.: GET /sap/opu/odata/sap/API_BUSINESS_PARTNER/A_BusinessPartnerAddress?$format=json&$top=1 HTTP/1.1

    Parameters

    Returns string

    the generated request line.

getResourcePathForKeys

  • getResourcePathForKeys<EntityT>(keys?: MapType<FieldType>, entityConstructor: Constructable<EntityT>): string
  • Get the resource path of an entity specified by key-value pairs.

    Type parameters

    • EntityT: Entity

      Type of the entity to get the resource path for

    Parameters

    • Default value keys: MapType<FieldType> = {}

      Key-value pairs where the key is the name of a key property of the given entity and the value is the respective value

    • entityConstructor: Constructable<EntityT>

      Constructor type of the entity to get the resource path for

    Returns string

    The path to the resource

getService

  • getService(service: string): Service | undefined

getServiceCredentialsList

  • getServiceCredentialsList(service: string): any[]

getServiceList

  • getServiceList(service: string): Service[]
  • Services getter for a given service.

    Parameters

    • service: string

      Service name.

    Returns Service[]

    List of service bindings of the given type. Returns an empty array if no service binding exists for the given type.

getUrlProtocol

  • deprecated

    Since v1.5.1. use getProtocolOrDefault instead Takes the destination URL and return everything before the '://'.

    Parameters

    • destination: Destination

      URL of this destination is parsed

    Returns Protocol | undefined

    The protocol either undefined if no :// is found or anything before the delimiter.

getVcapService

  • getVcapService(): MapType<any> | null
  • 'VCAP_SERVICES' Getter from environment variables. This function returns the VCAP_SERVICES as object or null if it is not defined (i.e. no services are bound to the application).

    returns:

    'VCAP_SERVICES' found in environment variables or null if not defined. The key denotes the name ov the service and the value is the definition.

    Returns MapType<any> | null

getXsuaaServiceCredentials

  • Takes a decoded JWT and uses the client_id and audience claims to determine the XSUAA service instance that issued the JWT. Returns the credentials if a match is found, otherwise throws an error. If no decoded JWT is specified, then returns the first existing XSUAA credential service plan "application".

    Parameters

    • Optional token: DecodedJWT | string

      Either an encoded or decoded JWT.

    Returns XsuaaServiceCredentials

    The credentials for a match, otherwise null.

headerForClientCredentials

isDestination

  • isDestination(destination: any): destination is Destination

isDestinationNameAndJwt

  • isDestinationNameAndJwt(destination: any): destination is DestinationNameAndJwt

isFilter

  • isFilter<T, FieldT>(filterable: Filterable<T>): filterable is Filter<T, FieldT>

isFilterLink

  • isFilterLink<EntityT, LinkedT>(filterable: Filterable<EntityT>): filterable is FilterLink<EntityT, LinkedT>

isFilterList

  • isFilterList<T>(filterable: Filterable<T>): filterable is FilterList<T>

isIdenticalTenant

  • Compare two decoded JWTs based on their tenantIds.

    Parameters

    Returns boolean

    Whether the tenant is identical.

issuerUrl

  • issuerUrl(decodedToken: DecodedJWT): string | undefined
  • Get the issuer url of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the issuer url from.

    Returns string | undefined

    The issuer url if available.

length

or

  • Create a FilterList by combining Filterables with logical or.

    Example:

    Entity.requestBuilder()
     .getAll()
     .filter(or(filterExp1, filterExp2));

    Type parameters

    • EntityT: Entity

      Type of the entity to be filtered on

    Parameters

    • Rest ...expressions: Array<Filterable<EntityT>>

      Filterables to be combined with logical or

    Returns FilterList<EntityT>

    The newly created FilterList

parseDestination

  • parseDestination(destinationJson: DestinationJSON | DestinationConfiguration): Destination
  • Takes a JSON object returned by any of the calls to the destination service and returns an SDK compatible destination object.

    Parameters

    • destinationJson: DestinationJSON | DestinationConfiguration

      A JSON object returned by the destination service.

    Returns Destination

    An SDK compatible destination object.

parseProxyEnv

  • Parses the environment variable for the web proxy and extracts the values considering defaults like http for the protocol and 80 or 443 for the port. The general pattern to be parsed is protocol://user:password@host:port, where everything besides the host is optional. Special characters in the user and password need to be percent encoded.

    Parameters

    • proxyEnvValue: string

      Environment variable which is parsed

    Returns ProxyConfiguration | undefined

    Configuration with default values or undefined if the parsing failed.

proxyAgent

  • Builds the http(s)-agent config. Note that the proxy agent type like http or https is determined by the destination RUL protocol. The protocol from the proxy is unrelated to this and in most cases http.

    Parameters

    Returns HttpAgentConfig | HttpsAgentConfig

    The http(s)-agent containing the proxy configuration

proxyStrategy

  • Determines the proxy strategy. If noProxy is set the ProxyConfiguration in the destination is omitted. For onPremProxy or internetProxy the connectivy service or enviroment varialbes are checked to fill the ProxyConfiguration.

    Parameters

    • destination: Destination

      from which the proxy strategy is derived.

    Returns ProxyStrategy

    ProxyStrategy possible values are noProxy, internetProxy or onPremProxy.

refreshTokenGrant

  • Executes a refresh token grant request against the given URI. If the first parameter is an instance of XsuaaServiceCredentials, the response's access_token will be verified. If the first parameter is an URI, the response will not be verified.

    Parameters

    • xsuaaUriOrCredentials: string | XsuaaServiceCredentials

      The URI or the credentials of a XSUAA service instance.

    • clientCredentials: ClientCredentials

      The credentials (client_id, client_secret) if the target XSUAA service instance.

    • refreshToken: string

      The refresh token that should be used to generate a new access token.

    • Optional options: ResilienceOptions

      Options to use by retrieving access token.

    Returns Promise<UserTokenResponse>

    A promise resolving to the response of the XSUAA service.

resolveService

retrieveJwt

  • retrieveJwt(req: IncomingMessage): string | undefined
  • Retrieve JWT from a request that is based on the node IncomingMessage. Fails if no authorization header is given or has the wrong format. Expected format is 'Bearer '.

    Parameters

    • req: IncomingMessage

      Request to retrieve the JWT from

    Returns string | undefined

    JWT found in header

sanitizeDestination

  • sanitizeDestination(destination: MapType<any>): Destination
  • Takes an existing or a parsed destination and returns an SDK compatible destination object.

    Parameters

    • destination: MapType<any>

      A JSON object returned by the destination service.

    Returns Destination

    An SDK compatible destination object.

secondsToTime

  • secondsToTime(n: number): Time
  • Converts from seconds to time in HH:MM:SS format.

    Parameters

    • n: number

      Number of seconds to convert (should be positive).

    Returns Time

    Time The converted time from the given number of seconds

serializeEntity

  • serializeEntity<EntityT>(entity: EntityT, entityConstructor: Constructable<EntityT>): MapType<any>
  • Converts an instance of an entity class into a JSON payload to be sent to an OData service.

    Type parameters

    Parameters

    • entity: EntityT

      An instance of an entity.

    • entityConstructor: Constructable<EntityT>

      The constructor function of that entity.

    Returns MapType<any>

    JSON.

serializeEntityNonCustomFields

  • serializeEntityNonCustomFields<EntityT>(entity: EntityT, entityConstructor: Constructable<EntityT>): MapType<any>
  • Converts an instance of an entity class into a JSON payload to be sent to an OData service, ignoring custom fields.

    Type parameters

    Parameters

    • entity: EntityT

      An instance of an entity.

    • entityConstructor: Constructable<EntityT>

      The constructor function of that entity.

    Returns MapType<any>

    JSON.

serviceToken

  • Returns an access token that can be used to call the given service. The token is fetched via a client credentials grant with the credentials of the given service. If multiple instances of the provided service exist, the first instance will be selected. When a JWT is passed, the tenant of the JWT will be used when performing the grant. When no JWT is passed, the grant will be performed using the provider tenant.

    Throws an error if there is no instance of the given service type or the XSUAA service, or if the request to the XSUAA service fails.

    Parameters

    Returns Promise<string>

    Access token.

subscriberFirst

  • subscriberFirst(allDestinations: AllDestinations, destinationName: string): Destination | null
  • Prioritizes the selection of subscriber destinations.

    Parameters

    • allDestinations: AllDestinations

      Retrieved destinations

    • destinationName: string

      Name of the destination to retrieve

    Returns Destination | null

    the destination to retrieve, returns null if no matched destination is found

substring

  • Build an OData (V2) filter function to get a substring starting from a designated position. Evaluates to string.

    Type parameters

    Parameters

    • p0: string | Field<EntityT> | StringFilterFunction<EntityT>

      the original string. This can either be a string, a reference to a field or another filter function.

    • pos: number | Field<EntityT> | NumberFilterFunction<EntityT>

      the starting position of the original string. This can be either a number, a reference to a field or another filter function.

    Returns StringFilterFunction<EntityT>

    The newly created filter function

substringOf

tenantFromJwt

  • Creates a tenant object from the decoded JWT.

    exception

    Error Raised if no id is found in the decoded JWT.

    Parameters

    Returns Tenant

    Representation of the tenant.

tenantId

  • tenantId(decodedToken: DecodedJWT): string | undefined
  • Get the tenant id of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the tenant id from.

    Returns string | undefined

    The tenant id if available.

tenantName

  • tenantName(decodedToken: DecodedJWT): string | undefined
  • Get the tenant name of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the tenant id from.

    Returns string | undefined

    The tenant id if available.

timeToSeconds

  • timeToSeconds(time: Time): number
  • Converts the given time to seconds in positive numerical format.

    Parameters

    • time: Time

      Time to convert.

    Returns number

    number Time in seconds.

toBatchChangeSet

toBatchRetrieveBody

  • Build a string as the request body of the retrieve request. Below is an example of the generated body, where the two empty line are mandatory to make the request valid. * example starts * Content-Type: application/http Content-Transfer-Encoding: binary

    GET /SomeUrl/API_BUSINESS_PARTNER/A_BusinessPartnerBank?$format=json&$top=1 HTTP/1.1

    * example ends *

    Parameters

    Returns string

    The request body.

toDestinationNameUrl

toPascalCase

  • toPascalCase(str: string): string
  • Converts a string to PascalCase format e.g. "MyNameInPascalCase".

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

toPropertyFormat

  • toPropertyFormat(str: string): string
  • Converts a string to the format used by properties. Use this for serialization.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

toStaticPropertyFormat

  • toStaticPropertyFormat(str: string): string
  • Converts a string to the case used by static methods on entity classes. Use this for serialization.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The input string in the case used by static methods on entity-classes.

toTitleFormat

  • toTitleFormat(str: string): string
  • Converts a string to a human readable format, e.g. it transforms to_BusinessPartner to To Business Partner. Use this for serialization.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

toTypeNameFormat

  • toTypeNameFormat(str: string): string
  • Converts a string to the format used by properties. Use this for serialization.

    Parameters

    • str: string

      The string to be transformed.

    Returns string

    The transformed string.

transformReturnValueForComplexType

  • transformReturnValueForComplexType<ReturnT>(data: any, builderFn: (data: any) => ReturnT): ReturnT

transformReturnValueForComplexTypeList

  • transformReturnValueForComplexTypeList<ReturnT>(data: any, builderFn: (data: any) => ReturnT): ReturnT[]

transformReturnValueForEdmType

  • transformReturnValueForEdmType<ReturnT>(data: any, builderFn: (data: any) => ReturnT): ReturnT

transformReturnValueForEdmTypeList

  • transformReturnValueForEdmTypeList<ReturnT>(data: any, builderFn: (data: any) => ReturnT): ReturnT[]

transformReturnValueForEntity

  • transformReturnValueForEntity<ReturnT>(data: any, entityConstructor: Constructable<ReturnT>): ReturnT

transformReturnValueForEntityList

  • transformReturnValueForEntityList<ReturnT>(data: any, entityConstructor: Constructable<ReturnT>): ReturnT[]

useOrFetchDestination

  • Returns the parameter if it is a destination, calls getDestination otherwise (which will try to fetch the destination from the Cloud Foundry destination service).

    Fetching a destination requires:

    • a binding to exactly one XSUAA service instance with service plan "application"
    • a binding to a destination service instance

    If either of the prerequisites is not met or one of the services returns an error, this function will either throw an error or return a promise that rejects.

    Parameters

    Returns Promise<Destination | null>

    A promise resolving to the requested destination on success.

userApprovedServiceToken

  • Returns a user approved access token that can be used to call the given service on behalf of the given user. The token is fetched via user token + refresh token grant. This can be necessary for scenarios in which a token for a service is required, but the service needs to know about the user on whose behalf the request is performed (for example to let the destination service perform principal propagation with SAP S/4HANA Cloud).

    Throws an error if there is no instance of the given service type or the XSUAA service, or if the request to the XSUAA service fails.

    Parameters

    • userJwt: string

      The JWT of the user for whom the access token should be fetched.

    • service: string | Service

      The type of the service or an instance of Service.

    • Optional options: ResilienceOptions

      Options to influence resilience behavior (see ResilienceOptions). By default, usage of a circuit breaker is enabled.

    Returns Promise<string>

    A user approved access token.

userEmail

  • userEmail(decodedToken: DecodedJWT): string | undefined
  • Get the user's email of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the user id from.

    Returns string | undefined

    The user id if available.

userFamilyName

  • userFamilyName(decodedToken: DecodedJWT): string | undefined
  • Get the user's family name of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the user id from.

    Returns string | undefined

    The user id if available.

userFromJwt

  • Creates a user object from the decoded JWT.

    exception

    Error Raised if no id is found in the decoded JWT.

    Parameters

    Returns User

    Representation of the user

userGivenName

  • userGivenName(decodedToken: DecodedJWT): string | undefined
  • Get the user's given name of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the user id from.

    Returns string | undefined

    The user id if available.

userId

  • userId(decodedToken: DecodedJWT): string | undefined
  • Get the user id of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the user id from.

    Returns string | undefined

    The user id if available.

userName

  • userName(decodedToken: DecodedJWT): string | undefined
  • Get the user name of a decoded JWT.

    Parameters

    • decodedToken: DecodedJWT

      Token to read the user id from.

    Returns string | undefined

    The user id if available.

userScopes

userTokenGrant

  • userTokenGrant(xsuaaUri: string, userJwt: string, clientId: string, options?: ResilienceOptions): Promise<UserTokenResponse>
  • Executes a user token grant request against the given URI.

    Parameters

    • xsuaaUri: string

      The URI of the target XSUAA service instance.

    • userJwt: string

      The JWT of the user on whose behalf the request is executed.

    • clientId: string

      The client_id of the target XSUAA service instance.

    • Optional options: ResilienceOptions

      Options to use by retrieving access token

    Returns Promise<UserTokenResponse>

    A promise resolving to the response of the XSUAA service.

verifyJwt

  • Verifies the given JWT and returns the decoded payload.

    Parameters

    • token: string

      JWT to be verified

    • Optional options: VerifyJwtOptions

      Options to control certain aspects of JWT verification behavior.

    Returns Promise<DecodedJWT>

    A Promise to the decoded and verified JWT.

verifyJwtWithKey

  • verifyJwtWithKey(token: string, key: string): Promise<DecodedJWT>
  • Verifies the given JWT with the given key and returns the decoded payload.

    Parameters

    • token: string

      JWT to be verified

    • key: string

      Key to use for verification

    Returns Promise<DecodedJWT>

    A Promise to the decoded and verified JWT.

wrapJwtInHeader

  • wrapJwtInHeader(token: string): AxiosRequestConfig
  • Wraps the access token in header's authorization.

    Parameters

    • token: string

      Token to attach in request header

    Returns AxiosRequestConfig

    The request header that holds the access token

Object literals

Const DestinationSelectionStrategies

DestinationSelectionStrategies: object

Selector of destination selection strategies. See alwaysProvider, alwaysSubscriber and subscriberFirst for more information available selection strategies.

alwaysProvider

alwaysProvider: alwaysProvider

alwaysSubscriber

alwaysSubscriber: alwaysSubscriber

subscriberFirst

subscriberFirst: subscriberFirst

Const EnvironmentAccessor

EnvironmentAccessor: object
deprecated

Use directly exported functions instead

getDestinationBasicCredentials

getDestinationBasicCredentials: getDestinationBasicCredentials

getDestinationServiceCredentials

getDestinationServiceCredentials: getDestinationServiceCredentials

getDestinationServiceCredentialsList

getDestinationServiceCredentialsList: getDestinationServiceCredentialsList

getDestinationServiceUri

getDestinationServiceUri: getDestinationServiceUri

getEnvironmentVariable

getEnvironmentVariable: getEnvironmentVariable

getServiceCredentialsList

getServiceCredentialsList: getServiceCredentialsList

getServiceList

getServiceList: getServiceList

getVcapService

getVcapService: getVcapService

getXsuaaServiceCredentials

getXsuaaServiceCredentials: getXsuaaServiceCredentials

Const circuitBreakerDefaultOptions

circuitBreakerDefaultOptions: object

errorThresholdPercentage

errorThresholdPercentage: number = 50

resetTimeout

resetTimeout: number = 30000

timeout

timeout: number = 10000

Const mapping

mapping: object

Mapping between key name in the Tenant and key name in decoded JWT and the

id

id: object

extractorFunction

extractorFunction: tenantId = tenantId

keyInJwt

keyInJwt: "zid" = "zid"

name

name: object

extractorFunction

extractorFunction: tenantName = tenantName

keyInJwt

keyInJwt: "zdn" = "zdn"

Const mapping

mapping: object

Mapping between key name in the User and key name in decoded JWT and the

customAttributes

customAttributes: object

extractorFunction

extractorFunction: customAttributes = customAttributes

keyInJwt

keyInJwt: "xs.user.attributes" = "xs.user.attributes"

email

email: object

extractorFunction

extractorFunction: userEmail = userEmail

keyInJwt

keyInJwt: "email" = "email"

familyName

familyName: object

extractorFunction

extractorFunction: userFamilyName = userFamilyName

keyInJwt

keyInJwt: "family_name" = "family_name"

givenName

givenName: object

extractorFunction

extractorFunction: userGivenName = userGivenName

keyInJwt

keyInJwt: "given_name" = "given_name"

id

id: object

extractorFunction

extractorFunction: userId = userId

keyInJwt

keyInJwt: "user_id" = "user_id"

scopes

scopes: object

extractorFunction

extractorFunction: userScopes = userScopes

keyInJwt

keyInJwt: "scope" = "scope"

userName

userName: object

extractorFunction

extractorFunction: userName = userName

keyInJwt

keyInJwt: "user_name" = "user_name"