Outlook_Addin_LLM/node_modules/applicationinsights/out/Library/Util.d.ts

100 lines
3.8 KiB
TypeScript

/// <reference types="node" />
import http = require("http");
import https = require("https");
import Config = require("./Config");
import TelemetryClient = require("../Library/TelemetryClient");
import { HttpRequest } from "../Library/Functions";
declare class Util {
static MAX_PROPERTY_LENGTH: number;
static tlsRestrictedAgent: https.Agent;
/**
* helper method to access userId and sessionId cookie
*/
static getCookie(name: string, cookie: string): string;
/**
* helper method to trim strings (IE8 does not implement String.prototype.trim)
*/
static trim(str: string): string;
/**
* Convert an array of int32 to Base64 (no '==' at the end).
* MSB first.
*/
static int32ArrayToBase64(array: number[]): string;
/**
* generate a random 32bit number (-0x80000000..0x7FFFFFFF).
*/
static random32(): number;
/**
* generate a random 32bit number (0x00000000..0xFFFFFFFF).
*/
static randomu32(): number;
/**
* generate W3C-compatible trace id
* https://github.com/w3c/distributed-tracing/blob/master/trace_context/HTTP_HEADER_FORMAT.md#trace-id
*/
static w3cTraceId(): string;
static w3cSpanId(): string;
static isValidW3CId(id: string): boolean;
/**
* Check if an object is of type Array
*/
static isArray(obj: any): boolean;
/**
* Check if an object is of type Error
*/
static isError(obj: any): boolean;
static isPrimitive(input: any): boolean;
/**
* Check if an object is of type Date
*/
static isDate(obj: any): boolean;
/**
* Convert ms to c# time span format
*/
static msToTimeSpan(totalms: number): string;
/**
* Using JSON.stringify, by default Errors do not serialize to something useful:
* Simplify a generic Node Error into a simpler map for customDimensions
* Custom errors can still implement toJSON to override this functionality
*/
protected static extractError(err: Error): {
message: string;
code: string;
};
/**
* Manually call toJSON if available to pre-convert the value.
* If a primitive is returned, then the consumer of this function can skip JSON.stringify.
* This avoids double escaping of quotes for Date objects, for example.
*/
protected static extractObject(origProperty: any): any;
/**
* Validate that an object is of type { [key: string]: string }
*/
static validateStringMap(obj: any): {
[key: string]: string;
};
/**
* Checks if a request url is not on a excluded domain list
* and if it is safe to add correlation headers
*/
static canIncludeCorrelationHeader(client: TelemetryClient, requestUrl: string): boolean;
static getCorrelationContextTarget(response: http.ClientResponse | http.ServerRequest | HttpRequest, key: string): any;
/**
* Generate request
*
* Proxify the request creation to handle proxy http
*
* @param {string} requestUrl url endpoint
* @param {Object} requestOptions Request option
* @param {Function} requestCallback callback on request
* @returns {http.ClientRequest} request object
*/
static makeRequest(config: Config, requestUrl: string, requestOptions: http.RequestOptions | https.RequestOptions, requestCallback: (res: http.IncomingMessage) => void): http.ClientRequest;
/**
* Parse standard <string | string[] | number> request-context header
*/
static safeIncludeCorrelationHeader(client: TelemetryClient, request: http.ClientRequest | http.ServerResponse, correlationHeader: any): void;
private static addCorrelationIdHeaderFromString(client, response, correlationHeader);
}
export = Util;