UNPKG

@ultipa-graph/ultipa-node-sdk

Version:

NodeJS SDK for ultipa-server 4.0

826 lines (825 loc) 22 kB
/// <reference types="node" /> import { ULTIPA } from '.'; /** * 请求参数类型指定 */ export declare namespace RequestParamType { /** 选择 */ type SELECT_TYPE = string[] | string; /** 返回 */ type RETURN_TYPE = string[] | string | string[][]; /** 深度 */ type DEPTH_TYPE = number | (number | string)[]; /** 过滤 */ type FILTER_TYPE = string; /** 方向 */ type DIRECTION_TYPE = "left" | "right"; /** 任务 */ type TASK_STATUS = "*" | "pending" | "computing" | "writing" | "failed" | "done" | "stopped"; } /** * 请求参数命名空间 */ export declare namespace RequestType { enum TASK_STATUS { TASK_ALL = "*", TASK_PENDING = "pending", TASK_COMPUTING = "computing", TASK_WRITING = "writing", TASK_FAILED = "failed", TASK_DONE = "done", TASK_STOPPED = "stopped" } interface Graph { /** 图集名称 */ name: string; } interface GraphSet { clusterId?: string; id?: string; name: string; totalNodes?: string; totalEdges?: string; description?: string; status?: string; } interface GetSchema { /** schema名称 */ name: string; } interface DeleteSchema { /** schema名称 */ name: string; } interface CreateSchemaBase { /** schema名称 */ name: string; /** schema介绍 */ desc?: string; } interface CreateSchema extends CreateSchemaBase { /** 点或者边 */ dbType: ULTIPA.DBType; } interface Schema { /** schema名称 */ name: string; /** schema介绍 */ desc?: string; /** 点或者边 */ dbType: ULTIPA.DBType; } interface UpdateSchema { /** schema原名称 */ name: string; /** 点或边 */ dbType: ULTIPA.DBType; /** schema新名称 */ newName?: string; /** schema新介绍 */ newDesc?: string; } interface Node { [key: string]: any; } interface Edge { [key: string]: any; } interface Truncate { /** 图集名 */ graphName: string; /** schema名 */ schema?: string; /** 点或边 */ dbType?: ULTIPA.DBType; } interface CopyGraph { /** 图集来源 */ fromGraphSetName: string; /** 新图集名称 */ newGraphSetName: string; } interface UpdateGraph { /** 原图集 */ oldGraphSetName: string; /** 新图集名 */ newGraphSetName?: string; /** 新图集介绍 */ newDesc?: string; } interface Auth { authType: ULTIPA.AuthenticateType; uql?: string; } /** * 通用请求参数 */ interface RequestConfig { /** 指定图集名称,创建connection pool一开始指定的图集,如果都没有,那么默认是 default图集 */ graphSetName?: string; /** 指定集群ID */ clusterId?: string; /** 时区 */ timeZone?: string; /** utc offset */ timeZoneOffset?: number; timestampToString?: boolean; /** 超时设置 */ timeout?: number; threadNum?: number; /** stream方式处理结果 */ stream?: Stream; /** 指定重试方式 */ retry?: { /** 当前次数 */ current?: number; /** 最大次数 */ max?: number; }; /** 使用指定host */ useHost?: string; /** 使用master节点请求 */ useMaster?: boolean; /** 每次返回包条目限制 */ package_limit?: number; /** 是不是要刷新集群信息 */ forceRefresh?: boolean; logUql?: boolean; } interface CommonStreamRequire extends RequestConfig { /** stream方式处理结果 */ stream: Stream; } interface GraphPrivilege { [x: string]: string[]; } interface PropertyPrivilege { node?: { read?: string[][]; write?: string[][]; deny?: string[][]; }; edge?: { read?: string[][]; write?: string[][]; deny?: string[][]; }; } interface CreateUser { /** 用户名 */ username: string; /** 密码 */ password: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; /** 策略 */ policies?: string[]; /**属性权限 */ property_privileges?: PropertyPrivilege; } interface GetUser { /** 用户名 */ username: string; } interface AlterUser { /** 用户名 */ username: string; /** 密码 */ password?: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; /** 策略 */ policies?: string[]; /**属性权限 */ property_privileges?: PropertyPrivilege; } interface DeleteUser { /** 用户名 */ username: string; } interface Policy { /** 策略名 */ name: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; /** 策略 */ policies?: string[]; /**属性权限 */ property_privileges?: PropertyPrivilege; } interface CreatePolicy extends Policy { } interface GetPolicy { /** 策略名 */ name: string; } interface Kill { /** 进程ID */ id?: string; /** 所有进程 */ all?: boolean; } interface UpdatePolicy { /** 策略名 */ name: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; /** 策略 */ policies?: string[]; } interface DeletePolicy { /** 策略名 */ name: string; } interface GrantPolicy { /** 用户名 */ username: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; property_privileges?: PropertyPrivilege; /** 策略 */ policies?: string[]; } interface RevokePolicy { /** 用户名 */ username: string; /** 图集权限 */ graph_privileges?: GraphPrivilege; /** 系统权限 */ system_privileges?: string[]; property_privileges?: PropertyPrivilege; /** 策略 */ policies?: string[]; } interface ListAllProperty { } interface PropertyBase { /** schema名 */ schema?: string; } interface ListProperty extends PropertyBase { /** 属性类型 */ dbType: ULTIPA.DBType; } interface GetProperty extends ListProperty { /** 属性名 */ name: string; } interface GetNodeEdgeProperty extends PropertyBase { /** 属性名 */ name: string; } interface CreatePropertyBase { /** 属性名 */ name: string; /** schema名 */ schema: string; /** 类型 */ type?: ULTIPA.PropertyType; subTypes?: ULTIPA.PropertyType[]; /** 介绍 */ description?: string; extra?: PropertyExtraInfo; } interface Property extends CreatePropertyBase { } interface CreateProperty extends CreatePropertyBase { /** 点边类型 */ dbType: ULTIPA.DBType; } interface PropertyExtraInfo { precision?: number; scale?: number; } interface DeletePropertyBase { /** schema名称 */ schema?: string; /** 属性名 */ name: string; } interface DeleteProperty extends DeletePropertyBase { /** 数据库类型 */ dbType: ULTIPA.DBType; } interface UpdatePropertyBase { /** schema名 */ schema?: string; /** 属性名 */ name: string; /** 新属性名 */ newName?: string; /** 新属性介绍 */ newDesc?: string; } interface UpdateProperty extends UpdatePropertyBase { /** 数据库点、边类型 */ dbType: ULTIPA.DBType; } interface GetUserSetting { /** 用户名 */ username: string; /** 指定类型 */ type?: string; } interface SetUserSetting extends GetUserSetting { /** 数据 */ data?: string; } interface Backup { backupPath: string; } /** * 用户uql返回的数据流方式 */ interface Stream { /** 开始回调 */ onStart?: () => void; /** 关闭回调 */ onClose?: () => void; /** 获取数据 */ onData: (data: any) => void | Promise<any>; /** 结束回调 */ onEnd: () => void; /** 错误回调 */ onError?: (err: Error) => void; /** 暂停回调 */ onPause?: () => void; /** Readable回调 */ onReadable?: () => void; /** 恢复回调 */ onResume?: () => void; /** 包大小限制 */ package_limit?: number; } /** * 用户uql返回的数据流方式 */ interface UqlResponseStream { /** 开始回调 */ onStart?: () => void; /** 关闭回调 */ onClose?: () => void; /** 获取数据 */ onData: (data: ULTIPA.UQLResponse) => Promise<void>; /** 结束回调 */ onEnd: () => void; /** 错误回调 */ onError?: (err: Error) => void; /** 暂停回调 */ onPause?: () => void; /** Readable回调 */ onReadable?: () => void; /** 恢复回调 */ onResume?: () => void; /** 包大小限制 */ package_limit?: number; } /** 导出 */ interface ExportRequest { /** 导出类型 */ dbType: ULTIPA.DBType; /** schema名 */ schemaName: string; /** 条目限制 */ limit: number; /** 属性列表 */ selectPropertiesName: string[]; } /** 下载 */ interface DownloadBase { /** 任务ID */ taskId: string; } interface Download extends DownloadBase { /** 下载文件名 */ fileName: string; } /** 下载 */ interface DownloadAll extends DownloadBase { /** 下载文件名 */ fileName?: string; } /** 插入点 */ interface InsertNodes { /** schema名 */ schema: string; /** 数据 */ rows: Node[]; /** 覆盖插入 */ overwrite?: boolean; /** 更新插入 */ upsert?: boolean; /** 是否返回ID */ silent?: boolean; } /** 插入边 */ interface InsertEdges { /** schema名 */ schema: string; /** 数据 */ rows: Edge[]; /** 覆盖插入 */ overwrite?: boolean; /** 更新插入 */ upsert?: boolean; /** 是否返回ID */ silent?: boolean; } /** 安装算法 */ interface _InstallAlgo { datas: { /** 文件字节 */ chunk: Buffer; /** 文件名 */ fileName: string; /** 文件md5值 */ md5: string; }[]; isExta?: boolean; } interface InstallAlgo { /** 按文件路径 */ paths?: { /** 算法.so文件的目录 */ algoFilePath: string; /** 算法.yml描述文件的目录 */ infoFilePath: string; }; /** 按详细数据 */ datas?: _InstallAlgo; } interface InsertExta extends InstallAlgo { } /** 安装算法 */ interface InstallAlgoAio extends InstallAlgo { isExta?: boolean; } /** 卸载算法 */ interface UninstallAlgo { algoName: string; } /** 批量插入点 */ interface InsertHugeNodes { /** schema名 */ schemaName: string; /** 表头 */ headers: string[]; /** 数据 */ rows: any[][]; } interface InsertRequestConfig extends RequestConfig { insertType: ULTIPA.InsertType; createNodeIfNotExist?: boolean; silent: boolean; } /** * 获取插入类型 */ function GetInsertType(insertTypeNormal?: boolean, insertTypeOverwrite?: boolean, insertTypeUpsert?: boolean): 0 | 2 | 1; /** 批量插入边 */ interface InsertHugeEdges extends InsertHugeNodes { } /** 查找点 */ interface SearchNodes extends SearchBase { /** 过滤 */ filter?: string; } /** 查找边 */ interface SearchEdges extends SearchNodes { } /** 删除边 */ interface DeleteEdges { /** 过滤 */ filter?: string; /** 是否返回ID */ silent?: boolean; } /** 删除点 */ interface DeleteNodes extends DeleteEdges { } /** 更新点 */ interface UpdateNodes { /** 过滤 */ filter: string; /** 数据值 */ values: object; } /** 更新边 */ interface UpdateEdges extends UpdateNodes { } /** 清除任务 */ interface ClearTask { /** 所有任务 */ all?: boolean; /** 指定ID */ id?: string; /** 指定名称 */ name?: string; /** 任务状态 */ status?: RequestParamType.TASK_STATUS; } /** 显示任务 */ interface ShowTask extends ClearTask { /** 条目限制 */ limit?: number; } /** 暂停任务 */ interface PauseTask { /** 所有任务 */ all: boolean; /** 指定ID */ id: number; } /** 恢复任务 */ interface ResumeTask extends PauseTask { } /** 暂停任务 */ interface StopTask extends PauseTask { } /** 创建索引 */ interface CreateIndexBase { /** schema名称 */ schema?: string; /** 属性名 */ propertyName: string; } interface CreateIndex extends CreateIndexBase { /** 数据库类型 */ dbType: ULTIPA.DBType; } interface DropIndexBase extends CreateIndex { } interface DropIndex extends DropIndexBase { /** 数据库类型 */ dbType: ULTIPA.DBType; } /** 创建全文索引 */ interface CreateFullTextBase { /** schema名称 */ schema?: string; /** 属性名 */ propertyName: string; /** 全文名称 */ name: string; } interface CreateFullText extends CreateFullTextBase { /** 数据库类型 */ dbType: ULTIPA.DBType; } /** 删除全文索引 */ interface DropFullText { /** 全文名称 */ name: string; /** 数据库类型 */ dbType: ULTIPA.DBType; } /** 属性加载到引擎 */ interface LoadToEnginBase { /** schema名称 */ schema?: string; /** 属性名 */ name: string; } interface LoadToEngin extends LoadToEnginBase { /** 数据库类型 */ dbType: ULTIPA.DBType; } /** 属性从引擎卸载 */ interface UnloadFromEngin extends LoadToEngin { } /** 查找基类 */ interface SearchBase { /** 别名 */ as?: string; /** 返回 */ return?: RequestParamType.RETURN_TYPE; /** 条目限制 */ limit?: number; } /** AB查找 */ interface SearchAb extends SearchBase { /** 路径起点的过滤条件 */ src: RequestParamType.FILTER_TYPE; /** 路径终点的过滤条件 */ dest: RequestParamType.FILTER_TYPE; /** 设置路径的深度 */ depth: RequestParamType.DEPTH_TYPE; /** * 不指定边属性时,查询最短路径; * 指定边属性时,查询以该属性为权值的最小权重和路径(无该属性的边不构成路径) */ shortest?: string; /** 中介点的过滤条件 */ nodeFilter?: RequestParamType.FILTER_TYPE; /** 所有边的过滤条件 */ edgeFilter?: RequestParamType.FILTER_TYPE; /** 升序 */ pathAsc?: string; /** 降序 */ pathDesc?: string; /** 边方向 */ direction?: RequestParamType.DIRECTION_TYPE; /** 无环设置 */ noCircle?: boolean; } /** 自动组网 */ interface SearchAutoNet extends SearchBase { /** 起点 */ src: RequestParamType.FILTER_TYPE; /** 终点 */ dest?: RequestParamType.FILTER_TYPE; /** 深度 */ depth: RequestParamType.DEPTH_TYPE; /** 最短路径查询 */ shortest?: string; /** 中介点的过滤条件 */ nodeFilter?: RequestParamType.FILTER_TYPE; /** 所有边的过滤条件 */ edgeFilter?: RequestParamType.FILTER_TYPE; /** 无环设置 */ noCircle?: boolean; } /** khop查找 */ interface SearchKhop extends SearchBase { /** 起点 */ src: RequestParamType.FILTER_TYPE; /** 终点 */ depth: RequestParamType.DEPTH_TYPE; /** 中介点的过滤条件 */ nodeFilter?: RequestParamType.FILTER_TYPE; /** 所有边的过滤条件 */ edgeFilter?: RequestParamType.FILTER_TYPE; /** 边方向 */ direction?: RequestParamType.DIRECTION_TYPE; } /** * 自动展开 */ interface Spread extends SearchBase { /** 起点 */ src: RequestParamType.FILTER_TYPE; /** 深度 */ depth: number; /** 中介点的过滤条件 */ nodeFilter?: RequestParamType.FILTER_TYPE; /** 所有边的过滤条件 */ edgeFilter?: RequestParamType.FILTER_TYPE; /** 边方向 */ direction?: RequestParamType.DIRECTION_TYPE; } } export declare namespace ResponseType { interface GraphPrivilege { [name: string]: string[]; } interface PropertyPrivilege { node?: { read?: string[][]; write?: string[][]; deny?: string[][]; }; edge?: { read?: string[][]; write?: string[][]; deny?: string[][]; }; } interface Algo { clusterId: string; name: string; param: { name: string; description: string; parameters: object; result_opt: string; version: string; }; detail: string; result_opt: { can_realtime: boolean; can_write_back: boolean; can_visualization: boolean; }; } interface Exta { author: string; detail: string; name: string; version: string; } interface User { username: string; create: string; lastLogin: string; graph_privileges: GraphPrivilege; system_privileges: string[]; policies: string[]; property_privileges: PropertyPrivilege; } interface Index { name: string; properties: string; status: string; } interface IndexMap { nodeIndex: Index[]; edgeIndex: Index[]; } interface Stat { cpuUsage: string; memUsage: string; expiredDate: string; } interface ClusterInfo extends ULTIPA.RaftPeerInfo { cpuUsage?: string; memUsage?: string; expiredDate?: string; } interface Property { schema: string; name: string; type: string; description?: string; lte?: "false" | "creating" | "true"; extra?: RequestType.PropertyExtraInfo; } interface AllProperty { node: Property[]; edge: Property[]; } interface GraphSet { clusterId?: string; id: string; name: string; totalNodes: string; totalEdges: string; description: string; status: string; } interface Schema { name: string; description: string; properties: Property[]; totalNodes: string; totalEdges: string; } interface AllSchema { nodeSchema: Schema[]; edgeSchema: Schema[]; } interface Privilege { graph_privileges: string[]; system_privileges: string[]; } interface Policy { name: string; policies: string[]; graph_privileges: GraphPrivilege; system_privileges: string[]; property_privileges: PropertyPrivilege; } interface Top { process_id: string; process_uql: string; duration: string; } interface InsertEdges { uuids: string[]; ignore_indexes: number[]; ignore_error_codes: number[]; } interface InsertNodes extends InsertEdges { ids: string[]; } interface Task { param: object; task_info: { task_id: string; algo_name: string; start_time: number; writing_start_time: number; end_time: number; time_cost: number; TASK_STATUS: number; status_code: string; engine_cost: number; }; error_msg: string; result: any; return_type: { is_realtime: boolean; is_visualization: boolean; is_write_back: boolean; }; } }