///
import { PortableTextBlock } from '@portabletext/types';
interface IResolveServiceOptions {
optional?: boolean;
}
interface IServiceLocator {
register(name: string, service: T): void;
resolve(name: string, options?: IResolveServiceOptions): T;
}
type LocalizedField = {
[key: string]: T;
};
declare enum LogLevel {
Debug = "debug",
Info = "info",
Warn = "warn",
Error = "error",
Fatal = "fatal"
}
declare enum MetaSerializationType {
None = "none",
JSON = "json"
}
interface ILoggerProvider {
debug(loggerName: string, message: string, meta?: any): void;
info(loggerName: string, message: string, meta?: any): void;
warn(loggerName: string, message: string, meta?: any): void;
error(loggerName: string, message: string, meta?: any): void;
fatal(loggerName: string, message: string, meta?: any): void;
exception(loggerName: string, message: string, error: Error, meta?: any): void;
}
interface ILogger {
debug(message: string, meta?: any): void;
info(message: string, meta?: any): void;
warn(message: string, meta?: any): void;
error(message: string, meta?: any): void;
fatal(message: string, meta?: any): void;
exception(message: string, error: Error, meta?: any): void;
}
declare const logMemoryUsage: () => void;
declare const processArrayDifferences: ({ elements, elementIdSelector, desiredItems, desiredItemSelector, }: {
elements: TItem[];
elementIdSelector: (item: TItem) => TId;
desiredItems: TInputItem[];
desiredItemSelector: (item: TInputItem) => TId;
}) => {
missingElements: TInputItem[];
exceedingElements: TItem[];
correspondingElements: {
current: TItem;
desired: TInputItem;
}[];
};
declare const processArrayItemMove: (items: TItem[], input: {
oldIndex: number;
newIndex: number;
}) => {
item: TItem;
newIndex: number;
oldIndex: number;
isMoved: boolean;
}[];
type LoggerInstance = {
options: LoggerOptions;
provider: ILoggerProvider;
};
type LoggerOptions = {
enabled: boolean;
level: LogLevel;
loggerName?: string;
serialization: MetaSerializationType;
maxMetaLength?: number;
};
declare class Log {
private static readonly container;
static configure(instance: LoggerInstance): void;
static getLogger(loggerName: string): ILogger;
}
declare class ConsoleLogger implements ILoggerProvider {
debug(loggerName: string, message: string, meta?: any): void;
info(loggerName: string, message: string, meta?: any): void;
warn(loggerName: string, message: string, meta?: any): void;
error(loggerName: string, message: string, meta?: any): void;
fatal(loggerName: string, message: string, meta?: any): void;
exception(loggerName: string, message: string, error: Error, meta?: any): void;
}
type StdoutLoggerSettings = {
includeOpenTelemetryContext?: boolean;
};
declare class StdoutLogger implements ILoggerProvider {
private readonly logger;
constructor(settings?: StdoutLoggerSettings);
debug(loggerName: string, message: string, meta?: any): void;
info(loggerName: string, message: string, meta?: any): void;
warn(loggerName: string, message: string, meta?: any): void;
error(loggerName: string, message: string, meta?: any): void;
fatal(loggerName: string, message: string, meta?: any): void;
exception(loggerName: string, message: string, error: Error, meta?: any): void;
}
type AppServiceReference = {
serviceName: string;
appName: string;
roleName: string;
environmentName: string;
};
type DatadogApiSettings = {
apiKey: string;
site: string;
};
type DatadogLoggingSettings = {
service: AppServiceReference;
datadog: DatadogApiSettings;
};
declare class DatadogLogger implements ILoggerProvider {
private readonly logger;
private readonly serviceMeta;
constructor(settings: DatadogLoggingSettings);
private enrichMeta;
debug(loggerName: string, message: string, meta?: any): void;
info(loggerName: string, message: string, meta?: any): void;
warn(loggerName: string, message: string, meta?: any): void;
error(loggerName: string, message: string, meta?: any): void;
fatal(loggerName: string, message: string, meta?: any): void;
exception(loggerName: string, message: string, error: Error, meta?: any): void;
}
type FileLoggerSettings = {
folder?: string;
};
type FileLoggingSettings = {
service: AppServiceReference;
files?: FileLoggerSettings;
};
declare class FileLogger implements ILoggerProvider {
private readonly logger;
private readonly serviceMeta;
constructor(settings: FileLoggingSettings);
private enrichMeta;
debug(loggerName: string, message: string, meta?: any): void;
info(loggerName: string, message: string, meta?: any): void;
warn(loggerName: string, message: string, meta?: any): void;
error(loggerName: string, message: string, meta?: any): void;
fatal(loggerName: string, message: string, meta?: any): void;
exception(loggerName: string, message: string, error: Error, meta?: any): void;
}
interface ITreeNode {
id: TKey;
value: TValue;
children: ITreeNode[];
}
interface ITree {
root: ITreeNode[];
}
type RichText = PortableTextBlock[];
type Optional = T | undefined;
declare const range: (start: number, end: number) => number[];
declare const indexes: (startIndex: number, count: number) => number[];
interface Dict {
[key: string]: TVal;
}
declare const toDict: (array: TVal[], keySelector: (value: TVal) => string) => Dict;
declare const toItemsDict: (array: TItem[], keySelector: (value: TItem) => string, elementSelector: (value: TItem) => TVal) => Dict;
declare const toArrayDict: (array: TVal[], keySelector: (value: TVal) => string) => Dict;
declare const toMap: (array: TVal[], key: (val: TVal) => TKey) => Map;
declare const toItemsMap: (array: TItem[], key: (val: TItem) => TKey, element: (val: TItem) => TVal) => Map;
declare const last: (arr: T[]) => T;
declare const first: (arr: T[]) => T;
type ArrayComparer = (a: T, b: T) => number;
declare const byField: (selector: (value: T) => any) => ArrayComparer;
declare const byFieldDesc: (selector: (value: T) => any) => ArrayComparer;
declare const sort: (array: T[], ...comparers: ArrayComparer[]) => T[];
declare const notUndefined: (x: T | undefined) => x is T;
declare const notNull: (x: T | null) => x is T;
declare const selectMany: (array: TArr[], selector: (value: TArr) => TVal[]) => TVal[];
declare const flatten: (array: T[][]) => T[];
declare const distinct: (values: T[]) => T[];
declare const distinctElements: (values: T[], comparer: (value: T) => any) => T[];
declare const jsonDistinct: (values: T[]) => T[];
declare const iterate: (values: T[], action: (item: T, next?: T | undefined, prev?: T | undefined) => void) => void;
declare const groupBy: (values: TValue[], keySelector: (value: TValue) => TKey) => Map;
declare const subArrays: (array1: T[], array2: T[], eqFn: (a: T, b: T) => boolean) => T[];
declare const testInternetConnection: (options?: {
healthCheckUrls?: string[];
}) => Promise<{
status: string;
details?: undefined;
} | {
status: string;
details: ({
status: string;
message?: undefined;
} | {
status: string;
message: any;
})[];
}>;
type TimeUnit = "years" | "months" | "days" | "hours" | "minutes" | "seconds" | "milliseconds";
declare const addTime: (date: Date, offset: {
value: number;
unit: TimeUnit;
}) => Date;
declare const subtractTime: (date: Date, offset: {
value: number;
unit: TimeUnit;
}) => Date;
declare function floorDateToSecond(date: Date): Date;
declare const csvParse: (data: string | string[] | Buffer, separator?: string) => Record[];
interface CsvColumnDefinition {
name: string;
value: (item: T) => any;
}
type CsvBuildOptions = {
delimiter?: string;
};
declare const csvBuild: (data: T[], columns: CsvColumnDefinition[], options?: CsvBuildOptions) => string;
declare const getDirectoryFilePaths: (directoryPath: string, options?: {
recursive?: boolean;
}) => Promise;
declare const joinPath: (...paths: string[]) => string;
declare const splitPath: (filePath: string) => string[];
declare const ensureDirectory: (path: string) => void;
declare const getDirectoryPath: (filePath: string) => string;
declare const createDayPath: (d?: Date, separator?: string) => string;
declare const trimStart: (str: string, value: string) => string;
declare const trimEnd: (str: string, value: string) => string;
declare const trim: (str: string, value: string) => string;
declare const camelToSnakeCase: (str: string) => string;
declare const camelToKebabCase: (str: string) => string;
declare const toCamelCase: (str: string) => string;
declare const toTitleCase: (str: string) => string;
declare const ensureTailingSlash: (value: string) => string;
declare const ensureStartSlash: (value: string) => string;
declare const multipleSplit: (str: string, separators: string[]) => string[];
declare const truncateString: (str: string, maxLength: number, filler?: string) => string;
type ReplaceUndefinedWithNull = T extends undefined ? null : T extends (infer U)[] ? ReplaceUndefinedWithNull[] : T extends object ? {
[K in keyof T]: ReplaceUndefinedWithNull;
} : T;
declare const removeUndefinedProps: >(obj: T, options?: {
recursive?: boolean;
}) => T;
declare const isNullOrUndefined: (value: any) => boolean;
declare const buildObject: (...props: {
key: string;
value: any;
}[]) => T;
declare const mergeDeep: (a: any, b: any) => T;
declare const jsonSerialize: (obj: any, options?: {
removeNonSerializableObjects?: boolean;
removeCircularReferences?: boolean;
stripBinaryData?: boolean;
maxStringsLength?: number;
prettify?: boolean;
}) => string;
declare function replaceUndefinedWithNull(obj: T): ReplaceUndefinedWithNull;
declare const encodeUtf8: (value: Uint8Array) => string;
declare const decodeUtf8: (value: string) => Buffer;
declare const encodeBase64: (value: Uint8Array) => string;
declare const decodeBase64: (value: string) => Buffer;
interface StateMachineOptions {
readonly allowedTags?: Set;
readonly disallowedTags?: Set;
readonly tagReplacementText: string;
readonly encodePlaintextTagDelimiters: boolean;
}
declare function stripTags(text: string, options?: Partial): string;
declare const maskVariable: (value: string | undefined, unmaskedLength?: number) => string;
declare const pluralize: (word: string) => string;
declare function sleep(ms: number): Promise;
declare const mapAsync: (array: T[], callback: (value: T, index: number, array: T[]) => Promise) => Promise;
type TreeNodeBuilder> = {
idSelector: (record: TRecord) => TKey;
parentIdSelector: (record: TRecord) => TKey | undefined;
additionalPropsBuilder?: (record: TRecord, ancestors: TRecord[], children: TRecord[]) => Promise>;
};
declare const buildTree: , TTree extends ITree>(data: TRecord[], nodeBuilder: TreeNodeBuilder) => Promise;
declare const mapOrThrow: ({ mapper, throw: throwFn, }: {
mapper: () => T | undefined;
throw: () => void;
}) => T;
declare const newUuid: () => string;
declare const generateHash: (length: number) => string;
declare function serializeQueryString(obj: {
[key: string]: any;
}): string;
declare const joinUrl: (base: string, path: string) => string;
declare const buildUrl: (path: string, query: {
[key: string]: any;
}) => string;
declare function deserializeQueryString(queryString: string): {
[key: string]: any;
};
declare const getQueryParameter: (name: string, location?: Location) => any;
declare const updateQueryParameters: (queryString: string, params: {
[key: string]: any;
}) => string;
interface ExcelColumnDefinition {
value: (row: T) => any;
header: string;
headerSize?: number;
}
type ExcelSheetDefinition = {
sheetName: string;
data: T[];
columns: ExcelColumnDefinition[];
};
declare const excelBuild: (...sheets: ExcelSheetDefinition[]) => ArrayBuffer;
declare const parseExcelRaw: (file: string | ArrayBuffer) => {
name: string;
data: any[][];
}[];
declare enum ExcelKeyTransform {
Lower = "lower",
Upper = "upper"
}
type ParsedExcelSheet = ReturnType[number];
type ExcelParseOptions = {
keysTransform?: ExcelKeyTransform;
sheetIndex?: number;
dateColumns?: string[];
sheetFilter?: (sheet: ParsedExcelSheet) => boolean;
};
declare const excelParse: (file: string | ArrayBuffer, options?: ExcelParseOptions) => any;
export { AppServiceReference, ConsoleLogger, CsvBuildOptions, CsvColumnDefinition, DatadogLogger, Dict, ExcelColumnDefinition, ExcelKeyTransform, ExcelParseOptions, ExcelSheetDefinition, FileLogger, ILogger, ILoggerProvider, IResolveServiceOptions, IServiceLocator, ITree, ITreeNode, LocalizedField, Log, LogLevel, MetaSerializationType, Optional, RichText, StdoutLogger, TimeUnit, TreeNodeBuilder, addTime, buildObject, buildTree, buildUrl, byField, byFieldDesc, camelToKebabCase, camelToSnakeCase, createDayPath, csvBuild, csvParse, decodeBase64, decodeUtf8, deserializeQueryString, distinct, distinctElements, encodeBase64, encodeUtf8, ensureDirectory, ensureStartSlash, ensureTailingSlash, excelBuild, excelParse, first, flatten, floorDateToSecond, generateHash, getDirectoryFilePaths, getDirectoryPath, getQueryParameter, groupBy, indexes, isNullOrUndefined, iterate, joinPath, joinUrl, jsonDistinct, jsonSerialize, last, logMemoryUsage, mapAsync, mapOrThrow, maskVariable, mergeDeep, multipleSplit, newUuid, notNull, notUndefined, pluralize, processArrayDifferences, processArrayItemMove, range, removeUndefinedProps, replaceUndefinedWithNull, selectMany, serializeQueryString, sleep, sort, splitPath, stripTags, subArrays, subtractTime, testInternetConnection, toArrayDict, toCamelCase, toDict, toItemsDict, toItemsMap, toMap, toTitleCase, trim, trimEnd, trimStart, truncateString, updateQueryParameters };