@lcap/nasl
Version:
NetEase Application Specific Language
213 lines (181 loc) • 18.2 kB
text/typescript
declare namespace nasl.util {
export function Convert(value: null): <T extends never>() => T;
export function Convert(value: nasl.core.Long): <T extends nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.DateTime>() => T;
export function Convert(value: nasl.core.Decimal): <T extends nasl.core.Decimal | nasl.core.Boolean | nasl.core.Long | nasl.core.String>() => T;
export function Convert(value: nasl.core.Binary): <T extends nasl.core.String>() => T;
export function Convert(value: nasl.core.String): <T extends nasl.core.String | nasl.core.Decimal | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Long | nasl.core.Boolean>() => T;
export function Convert(value: nasl.core.Date): <T extends nasl.core.DateTime | nasl.core.String>() => T;
export function Convert(value: nasl.core.Time): <T extends nasl.core.String>() => T;
export function Convert(value: nasl.core.DateTime): <T extends nasl.core.Date | nasl.core.Time | nasl.core.String | nasl.core.Long>() => T;
export function Convert(value: nasl.core.Boolean): <T extends nasl.core.Boolean | nasl.core.String | nasl.core.Long | nasl.core.Decimal>() => T; // 先给雨森加一下
export function Convert(value: nasl.core.Any): <T extends nasl.core.String>() => T;
export function ConvertLong<T extends nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.DateTime>(value: nasl.core.Long): T;
export function ConvertDecimal<T extends nasl.core.Decimal | nasl.core.Boolean | nasl.core.Long | nasl.core.String>(value: nasl.core.Decimal): T;
export function ConvertBinary<T extends nasl.core.String>(value: nasl.core.Binary): T;
export function ConvertString<T extends nasl.core.String | nasl.core.Decimal | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Long | nasl.core.Boolean>(value: nasl.core.String): T;
export function ConvertDate<T extends nasl.core.DateTime | nasl.core.String>(value: nasl.core.Date): T;
export function ConvertTime<T extends nasl.core.String>(value: nasl.core.Time): T;
export function ConvertDateTime<T extends nasl.core.Date | nasl.core.Time | nasl.core.String | nasl.core.Long>(value: nasl.core.DateTime): T;
export function ConvertBoolean<T extends nasl.core.Boolean | nasl.core.String | nasl.core.Long | nasl.core.Decimal>(value: nasl.core.Boolean): T;
export function Convertany<T extends nasl.core.String>(value: nasl.core.Any): T;
export function ToString(value: nasl.core.Any, timeZone?: nasl.core.String): nasl.core.String;
export function FromString(value: nasl.core.String): <T extends nasl.core.Decimal | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Long | nasl.core.Boolean>() => T;
export function EnumToList<T extends nasl.core.Enums<nasl.core.Long>>(): nasl.collection.List<nasl.core.AStructure<{ text: nasl.core.String, value: nasl.core.Long, item: T }>>;
export function EnumToList<T extends nasl.core.Enums<nasl.core.String>>(): nasl.collection.List<nasl.core.AStructure<{ text: nasl.core.String, value: nasl.core.String, item: T }>>;
export function EnumItemToText<T extends nasl.core.Enums<nasl.core.Long | nasl.core.String>>(value: nasl.core.Enums<nasl.core.Long | nasl.core.String>): nasl.core.String;
export function EnumItemToStructure<T extends nasl.core.Enums<nasl.core.Long>>(value: nasl.core.Enums<nasl.core.Long>): nasl.core.AStructure<{ text: nasl.core.String, value: nasl.core.Long, item: T }>;
export function EnumItemToStructure<T extends nasl.core.Enums<nasl.core.String>>(value: nasl.core.Enums<nasl.core.String>): nasl.core.AStructure<{ text: nasl.core.String, value: nasl.core.String, item: T }>;
export function ToEnumItem<T extends nasl.core.Enums<nasl.core.Long>>(value: nasl.core.Long): T;
export function ToEnumItem<T extends nasl.core.Enums<nasl.core.String>>(value: nasl.core.String): T;
export function Split(str: nasl.core.String, separator: nasl.core.String | nasl.util.Regex, trail: nasl.core.Boolean): nasl.collection.List<nasl.core.String>;
export function Join<T>(list: nasl.collection.List<T>, separator: nasl.core.String): nasl.core.String;
export function Length(str1: nasl.core.String): nasl.core.Long;
export function Length<K, V>(str1: nasl.collection.Map<K, V>): nasl.core.Long;
export function Length<T>(str1: nasl.collection.List<T>): nasl.core.Long;
export function IndexOf(str: nasl.core.String, search: nasl.core.String, formIndex: nasl.core.Long, ignoreCase: nasl.core.Boolean): nasl.core.Long;
export function LastIndexOf(str: nasl.core.String, search: nasl.core.String, ignoreCase: nasl.core.Boolean): nasl.core.Long;
export function Replace(str: nasl.core.String, search: nasl.core.String | nasl.util.Regex, replace: nasl.core.String): nasl.core.String;
export function SubString(str: nasl.core.String, start: nasl.core.Long, length?: nasl.core.Long): nasl.core.String;
export function ToLower(str1: nasl.core.String): nasl.core.String;
export function ToUpper(str1: nasl.core.String): nasl.core.String;
export function Trim(str1: nasl.core.String): nasl.core.String;
export function Get<T>(list: nasl.collection.List<T>, index: nasl.core.Long): T;
export function Set<T, K extends T>(list: nasl.collection.List<T>, index: nasl.core.Long, item: K): T;
export function Contains<T, K extends T>(list: nasl.collection.List<T>, item: K): nasl.core.Boolean;
export function Add<T, K extends T>(list: nasl.collection.List<T>, item: K): void;
export function AddAll<T>(list: nasl.collection.List<T>, addList: nasl.collection.List<T>): nasl.core.Long;
export function Insert<T, K extends T>(list: nasl.collection.List<T>, index: nasl.core.Long, item: K): void;
export function Remove<T, K extends T>(list: nasl.collection.List<T>, item: K): void;
export function RemoveAt<T>(list: nasl.collection.List<T>, index: nasl.core.Long): T;
export function ListHead<T>(list: nasl.collection.List<T>): T;
export function ListLast<T>(list: nasl.collection.List<T>): T;
export function ListFlatten<T>(list: nasl.collection.List<nasl.collection.List<T>>): nasl.collection.List<T>;
export function ListTransform<T0, T>(list: nasl.collection.List<T0>, by: (elem: T0) => T): nasl.collection.List<T>;
export function ListToMap<T, K extends nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime, V>
(map: nasl.collection.List<T>, byKey: (elem: T) => K, byVal: (elem: T) => V): nasl.collection.Map<K, V>;
export function ListGroupBy<A, K extends nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Enums<nasl.core.String | nasl.core.Long>>
(list: nasl.collection.List<A>, by: (elem: A) => K): nasl.collection.Map<K, nasl.collection.List<A>>;
export function ListSum<T extends nasl.core.Long | nasl.core.Decimal>(list: nasl.collection.List<T>): T;
export function ListProduct<T extends nasl.core.Long | nasl.core.Decimal>(list: nasl.collection.List<T>): T;
export function ListMax<T extends nasl.core.Long | nasl.core.Decimal | nasl.core.String>(list: nasl.collection.List<T>): T;
export function ListMin<T extends nasl.core.Long | nasl.core.Decimal | nasl.core.String>(list: nasl.collection.List<T>): T;
export function ListAverage(list:
nasl.collection.List<nasl.core.Long> |
nasl.collection.List<nasl.core.Decimal> |
nasl.collection.List<nasl.core.Long | nasl.core.Decimal>
): nasl.core.Decimal;
// the type is not precise, we must exclude union instantiation for T2, which is done at
// packages/nasl-language-server-core/src/checker.ts error(node, mkIncompatibleTyErr(env, selForSort, '非 union 的基础类型:如字符串、整数、布尔等'));
export function ListSort<T1>(
list: nasl.collection.List<T1>,
...fns: ((item: T1) => { asc: nasl.core.Boolean, by: nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime })[]): nasl.collection.List<T1>;
export function ListFind<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): T;
export function ListFindIndex<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): nasl.core.Long;
export function ListFindAll<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): nasl.collection.List<T>;
export function ListFilter<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): nasl.collection.List<T>;
export function ListReverse<T>(list: nasl.collection.List<T>): nasl.collection.List<T>;
export function ListDistinct<T>(list: nasl.collection.List<T>): nasl.collection.List<T>;
export function ListDistinctBy<A>(list: nasl.collection.List<A>
,by: nasl.collection.List<{ items: Array<(elem: A) => any> }>): nasl.collection.List<A>;
export function ListSlice<T>(list: nasl.collection.List<T>, start: nasl.core.Long, end: nasl.core.Long): nasl.collection.List<T>;
export function ListRange(end: nasl.core.Long): nasl.collection.List<nasl.core.Long>;
export function ListRange(start: nasl.core.Long, end: nasl.core.Long, step?: nasl.core.Long): nasl.collection.List<nasl.core.Long>;
export function ListRepeat<T>(item: T, length: nasl.core.Long): nasl.collection.List<T>;
export function MapGet<K, V>(map: nasl.collection.Map<K, V>, key: K): V;
export function MapPut<K, V>(map: nasl.collection.Map<K, V>, key: K, value: V): void;
export function MapRemove<K, V>(map: nasl.collection.Map<K, V>, key: K): void;
export function MapContains<K, V>(map: nasl.collection.Map<K, V>, key: K): nasl.core.Boolean;
export function MapKeys<K, V>(map: nasl.collection.Map<K, V>): nasl.collection.List<K>;
export function MapValues<K, V>(map: nasl.collection.Map<K, V>): nasl.collection.List<V>;
export function MapFilter<K, V>(map: nasl.collection.Map<K, V>, by: (key: K, value: V) => nasl.core.Boolean): nasl.collection.Map<K, V>;
// 将元素类型为 K0, V0 的 Map 映射为元素类型为 K, V 的 Map
export function MapTransform<
K0,
V0,
K extends nasl.core.Boolean | nasl.core.Long | nasl.core.Decimal | nasl.core.String | nasl.core.Date | nasl.core.DateTime | nasl.core.Time,
V
>(map: nasl.collection.Map<K0, V0>, byKey: (key: K0, value: V0) => K, byVal: (key: K0, value: V0) => V): nasl.collection.Map<K, V>;
export function CurrDate(timeZone?: nasl.core.String): nasl.core.Date;
export function CurrTime(timeZone?: nasl.core.String): nasl.core.Time;
export function CurrDateTime(timeZone?: nasl.core.String): nasl.core.DateTime;
export function FormatDate(date: nasl.core.Date, formatter: nasl.core.String): nasl.core.String;
export function FormatDateTime(dateTime: nasl.core.DateTime, formatter: nasl.core.String, timeZone?: nasl.core.String): nasl.core.String;
export function FormatTime(time: nasl.core.Time, formatter: nasl.core.String): nasl.core.String;
export function FormatNumber(doubleValue: nasl.core.Decimal | nasl.core.Long, digits: nasl.core.Long, omit: nasl.core.Boolean, showGroups: nasl.core.Boolean, fix: nasl.core.String, unit: nasl.core.String): nasl.core.String;
export function FormatPercent(doubleValue: nasl.core.Decimal | nasl.core.Long, digits: nasl.core.Long, omit: nasl.core.Boolean, showGroups: nasl.core.Boolean): nasl.core.String;
export function AddDays(dateTime: nasl.core.Date, amount: nasl.core.Long): nasl.core.Date;
export function AddDays(dateTime: nasl.core.DateTime, amount: nasl.core.Long): nasl.core.DateTime;
export function AddMonths(dateTime: nasl.core.Date, amount: nasl.core.Long): nasl.core.Date;
export function AddMonths(dateTime: nasl.core.DateTime, amount: nasl.core.Long): nasl.core.DateTime;
export function DateDiff<T extends nasl.core.Date | nasl.core.Time | nasl.core.DateTime>(dateTime1: T, dateTime2: T, calcType: nasl.core.String, isAbs: nasl.core.Boolean): nasl.core.Long;
export function ConvertTimezone<T extends nasl.core.DateTime>(dateTime: T, timeZone: nasl.core.String): T;
export function AlterDateTime<T extends nasl.core.Date | nasl.core.DateTime>(dateTime: T, option: nasl.core.String, amount: nasl.core.Long, unit: nasl.core.String): T;
export function GetDateCount<T extends nasl.core.Date | nasl.core.DateTime>
(dateTime: T, metric: nasl.core.String, timeZone?: nasl.core.String): nasl.core.Long;
export function GetDateCountOld<T extends nasl.core.Date | nasl.core.DateTime>
(dateTime: T, metric: nasl.core.String, timeZone?: nasl.core.String): nasl.core.Long;
export function GetSpecificDaysOfWeek<T extends nasl.core.Date | nasl.core.DateTime>(startDate: T, endDate: T,
target: nasl.collection.List<nasl.core.Long>, timeZone?: nasl.core.String): nasl.collection.List<T>;
export function Clone<T>(struct: T): T;
// export function Clear<T>(struct: T): T;
export function Clear<T>(struct: T, mode?: nasl.core.String): T;
export function RandomInt(start: nasl.core.Long, end: nasl.core.Long): nasl.core.Long;
export function New<T>(): T;
export function NewList<T>(...args: T[]): nasl.collection.List<T>;
export function NewMap<K, T>(key: K, ...args: T[]): nasl.collection.Map<K, T>;
export function ValidMapKey<K extends nasl.core.Boolean | nasl.core.Long | nasl.core.Decimal | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime>(key: K): K;
export function CreateListPage<T>(list: nasl.collection.List<T>, total: nasl.core.Long): nasl.core.AStructure<{ list: nasl.collection.List<T>, total: nasl.core.Long }>;
// 为防止nasl没有被干净,先保留这部分的声明
export function consoleLog(arg: nasl.core.Any): void;
export function jsonSerialize(arg: nasl.core.Any, timeZone?: nasl.core.String): nasl.core.String;
export function jsonDeserialize<T>(arg: nasl.core.String): T;
export function concatString(...args: Array<nasl.core.String>): any;
export function stringInterpolation(...args: Array<nasl.core.Any>): nasl.core.String;
export function Round(value: nasl.core.Decimal, mode: nasl.core.String): nasl.core.Long;
export function HasValue(value: nasl.core.Any, ...rest: Array<nasl.core.Any>): nasl.core.Boolean;
export function ListSortAsync<T1>(
list: nasl.collection.List<T1>,
...fns: ((item: T1) => { asc: nasl.core.Boolean, by: nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime })[]): nasl.collection.List<T1>;
export function ListFindAsync<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): T;
export function ListFindIndexAsync<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): nasl.core.Long;
export function ListFilterAsync<T>(list: nasl.collection.List<T>, by: (item: T) => nasl.core.Boolean): nasl.collection.List<T>;
export function ListDistinctByAsync<A, B>(list: nasl.collection.List<A>, by: (elem: A) => B): nasl.collection.List<A>;
export function ListGroupByAsync<A, K extends nasl.core.Boolean | nasl.core.Long | nasl.core.Decimal | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime | nasl.core.Enums>(list: nasl.collection.List<A>, by: (elem: A) => K): nasl.collection.Map<K, nasl.collection.List<A>>;
export function ListTransformAsync<T0, T>(list: nasl.collection.List<T0>, by: (elem: T0) => T): nasl.collection.List<T>;
export function MapFilterAsync<K, V>(map: nasl.collection.Map<K, V>, by: (key: K, value: V) => nasl.core.Boolean): nasl.collection.Map<K, V>;
export function MapTransformAsync<K0, V0, K extends nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime, V>
(map: nasl.collection.Map<K0, V0>, byKey: (key: K0, value: V0) => K, byVal: (key: K0, value: V0) => V): nasl.collection.Map<K, V>;
export function ListToMapAsync<T, K extends nasl.core.Long | nasl.core.Decimal | nasl.core.Boolean | nasl.core.String | nasl.core.Date | nasl.core.Time | nasl.core.DateTime, V>
(map: nasl.collection.List<T>, byKey: (elem: T) => K, byVal: (elem: T) => V): nasl.collection.Map<K, V>;
// 逻辑调用和验证器函数的包装器
export function callLogicWithChecker<T extends (...args: any[]) => any>(func: T, checker: (...args: Parameters<T>) => any): T;
// 分页组件函数
export function paginateLimit<T>(list: nasl.collection.List<T>, page: nasl.core.Long, size: nasl.core.Long): nasl.core.AStructure<{ list: nasl.collection.List<T>, total: nasl.core.Long }>;
// 审批人判断函数
export function isListorString(value: nasl.core.String | nasl.collection.List<nasl.core.String>): Boolean;
// 任务标题判断函数
export function isStringTaskTitle(value: nasl.core.String): Boolean;
export function Ceil(value: nasl.core.Decimal): nasl.core.Long;
export function Floor(value: nasl.core.Decimal): nasl.core.Long;
export function Trunc(value: nasl.core.Decimal): nasl.core.Long;
export function TruncDivide(dividend: nasl.core.Decimal, divisor: nasl.core.Decimal): nasl.core.Long;
export function Abs<T extends nasl.core.Long | nasl.core.Decimal>(value: T): T;
export function Pow(base: nasl.core.Decimal, exponent: nasl.core.Decimal): nasl.core.Decimal;
export function Sqrt(value: nasl.core.Decimal): nasl.core.Decimal;
export function Cbrt(value: nasl.core.Decimal): nasl.core.Decimal;
export function Log(value: nasl.core.Decimal): nasl.core.Decimal;
export function PadStart(str: nasl.core.String, length: nasl.core.Long, padStr: nasl.core.String): nasl.core.String;
export function PadEnd(str: nasl.core.String, length: nasl.core.Long, padStr: nasl.core.String): nasl.core.String;
export function TrimStart(str: nasl.core.String): nasl.core.String;
export function TrimEnd(str: nasl.core.String): nasl.core.String;
export function MatchRegex(
str: nasl.core.String,
regex: nasl.util.Regex
): nasl.collection.List<nasl.core.String>;
export function $NewRegex(pattern: nasl.core.String, flags?: nasl.core.String): nasl.util.Regex;
export class Regex {
private accept: 'Regex';
flags: nasl.core.String;
pattern: nasl.core.String;
}
}