mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-31 19:12:20 +08:00
336 lines
9.7 KiB
TypeScript
336 lines
9.7 KiB
TypeScript
// Type definitions for clearbladejs-server 1.0
|
|
// Project: https://docs.clearblade.com/v/3/4-developer_reference/platformsdk/ClearBlade.js/
|
|
// Definitions by: Jim Bouquet <https://github.com/ClearBlade>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.4
|
|
|
|
/// <reference types="paho-mqtt" />
|
|
|
|
interface BasicReq {
|
|
readonly isLogging: boolean;
|
|
readonly params: {
|
|
[id: string]: any;
|
|
};
|
|
readonly systemKey: string;
|
|
readonly systemSecret: string;
|
|
readonly userEmail: string;
|
|
readonly userToken: string;
|
|
readonly userid: string;
|
|
}
|
|
type ReqTypes = BasicReq;
|
|
declare var req: ReqTypes;
|
|
interface Resp {
|
|
error(msg: any): never;
|
|
success(msg: any): never;
|
|
}
|
|
declare var resp: Resp;
|
|
|
|
declare enum MessagingQOS {
|
|
MESSAGING_QOS_AT_MOST_ONCE = 0,
|
|
MESSAGING_QOS_AT_LEAST_ONCE = 1,
|
|
MESSAGING_QOS_EXACTLY_ONCE = 2
|
|
}
|
|
|
|
interface InitOptions {
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
logging?: boolean;
|
|
callback?: CbCallback;
|
|
authToken?: string;
|
|
userToken?: string;
|
|
email?: string;
|
|
password?: string;
|
|
registerUser?: boolean;
|
|
useUser?: APIUser;
|
|
URI?: string;
|
|
messagingURI?: string;
|
|
messagingPort?: number;
|
|
defaultQoS?: MessagingQOS;
|
|
callTimeout?: number;
|
|
}
|
|
|
|
interface APIUser {
|
|
email: string;
|
|
authToken: string;
|
|
user_id?: string;
|
|
}
|
|
|
|
interface KeyValuePair {
|
|
[key: string]: any;
|
|
}
|
|
|
|
type CbCallback = (error: boolean, response: Resp) => void;
|
|
|
|
interface ClearBladeGlobal extends ClearBladeInt {
|
|
user: APIUser;
|
|
}
|
|
|
|
interface ClearBladeInt {
|
|
Trigger: TriggerClass;
|
|
Timer: TimerClass;
|
|
|
|
about(): string;
|
|
addToQuery(queryObj: QueryObj, key: string, value: string): void;
|
|
addFilterToQuery(queryObj: QueryObj, condition: QueryConditions, key: string, value: QueryValue): void;
|
|
addSortToQuery(queryObj: QueryObj, direction: QuerySortDirections, column: string): void;
|
|
Code(): Code;
|
|
Collection(options: string | CollectionOptionsWithName | CollectionOptionsWithID | CollectionOptionsWithCollection): Collection;
|
|
Deployment(): Deployment;
|
|
Device(): Device;
|
|
edgeId(): string;
|
|
execute(error: object, response: object, callback: CbCallback): any;
|
|
getAllCollections(callback: CbCallback): void;
|
|
http(): object;
|
|
init(options: InitOptions | {request: BasicReq}): void;
|
|
isEdge(callback: CbCallback): boolean;
|
|
isCurrentUserAuthenticated(callback: CbCallback): void;
|
|
isObjectEmpty(obj: object): boolean;
|
|
Item(data: object, options: string | ItemOptions): Item;
|
|
logger(message: string): void;
|
|
loginAnon(callback: CbCallback): void;
|
|
loginUser(email: string, password: string, callback: CbCallback): void;
|
|
logoutUser(callback: CbCallback): void;
|
|
makeKVPair(key: string, value: string): KeyValuePair;
|
|
Messaging(options: MessagingOptions, callback: CbCallback): Messaging;
|
|
newCollection(name: string, callback: CbCallback): void;
|
|
Query(options: QueryOptionsWithCollection | QueryOptionsWithName | QueryOptionsWithID): QueryObj;
|
|
parseOperationQuery(query: Query): string;
|
|
parseQuery(query: Query | QueryObj): string;
|
|
registerUser(email: string, password: string, callback: CbCallback): void;
|
|
setUser(email: string, authToken: string, userId: string): void;
|
|
User(): AppUser;
|
|
|
|
createDevice(name: string, data: object, causeTrigger: boolean, callback: CbCallback): void;
|
|
deleteDevice(name: string, causeTrigger: boolean, callback: CbCallback): void;
|
|
updateDevice(name: string, data: object, causeTrigger: boolean, callback: CbCallback): void;
|
|
getDeviceByName(name: string, callback: CbCallback): void;
|
|
getAllDevicesForSystem(callback: CbCallback): void;
|
|
validateEmailPassword(email: string, password: string): void;
|
|
}
|
|
|
|
interface CollectionOptionsWithCollection {
|
|
collection: string;
|
|
}
|
|
|
|
interface CollectionOptionsWithName {
|
|
collectionName: string;
|
|
}
|
|
|
|
interface CollectionOptionsWithID {
|
|
collectionID: string;
|
|
}
|
|
|
|
interface Collection {
|
|
user: APIUser;
|
|
URI: string;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
addColumn(options: object, callback: CbCallback): void;
|
|
dropColumn(name: string, callback: CbCallback): void;
|
|
deleteCollection(callback: CbCallback): void;
|
|
fetch(query: Query, callback: CbCallback): void;
|
|
create(newItem: Item, callback: CbCallback): void;
|
|
update(query: Query, changes: object, callback: CbCallback): void;
|
|
remove(query: Query, callback: CbCallback): void;
|
|
columns(callback: CbCallback): void;
|
|
count(query: Query, callback: CbCallback): void;
|
|
}
|
|
|
|
declare enum QuerySortDirections {
|
|
QUERY_SORT_ASCENDING = 'ASC',
|
|
QUERY_SORT_DESCENDING = 'DESC'
|
|
}
|
|
|
|
declare enum QueryConditions {
|
|
QUERY_EQUAL = 'EQ',
|
|
QUERY_NOTEQUAL = 'NEQ',
|
|
QUERY_GREATERTHAN = 'GT',
|
|
QUERY_GREATERTHAN_EQUAL = 'GTE',
|
|
QUERY_LESSTHAN = 'LT',
|
|
QUERY_LESSTHAN_EQUAL = 'LTE',
|
|
QUERY_MATCHES = 'RE'
|
|
}
|
|
|
|
type QueryValue = string|number|boolean;
|
|
|
|
interface QueryOptions {
|
|
offset?: number;
|
|
limit?: number;
|
|
}
|
|
|
|
interface QueryOptionsWithCollection extends CollectionOptionsWithCollection, QueryOptions {}
|
|
|
|
interface QueryOptionsWithName extends CollectionOptionsWithName, QueryOptions {}
|
|
|
|
interface QueryOptionsWithID extends CollectionOptionsWithID, QueryOptions {}
|
|
|
|
interface Query {
|
|
SELECTCOLUMNS?: string[];
|
|
SORT?: QuerySortDirections;
|
|
FILTERS?: QueryFilter[];
|
|
PAGESIZE?: number;
|
|
PAGENUM?: number;
|
|
}
|
|
|
|
interface QueryFilter {
|
|
[QueryConditions: string]: QueryFilterValue;
|
|
}
|
|
|
|
interface QueryFilterValue {
|
|
[name: string]: QueryValue;
|
|
}
|
|
|
|
interface QueryObj {
|
|
id: string;
|
|
user: APIUser;
|
|
URI: string;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
query: Query;
|
|
OR: Query[];
|
|
offset: number;
|
|
limit: number;
|
|
|
|
ascending(field: string): void;
|
|
descending(field: string): void;
|
|
equalTo(field: string, value: QueryValue): void;
|
|
greaterThan(field: string, value: QueryValue): void;
|
|
greaterThanEqualTo(field: string, value: QueryValue): void;
|
|
lessThan(field: string, value: QueryValue): void;
|
|
lessThanEqualTo(field: string, value: QueryValue): void;
|
|
notEqualTo(field: string, value: QueryValue): void;
|
|
matches(field: string, pattern: QueryValue): void;
|
|
or(query: QueryObj): void;
|
|
setPage(pageSize: number, pageNum: number): void;
|
|
fetch(callback: CbCallback): void;
|
|
update(changes: object, callback: CbCallback): void;
|
|
columns(columnsArray: string[]): void;
|
|
remove(callback: CbCallback): void;
|
|
}
|
|
|
|
interface ItemOptions extends CollectionOptionsWithID {}
|
|
|
|
interface Item {
|
|
data: object;
|
|
|
|
save(): void;
|
|
refresh(): void;
|
|
destroy(): void;
|
|
}
|
|
|
|
interface Code {
|
|
user: APIUser;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
execute(name: string, params: object, loggingEnabled: boolean, callback: CbCallback): void;
|
|
getAllServices(callback: CbCallback): void;
|
|
}
|
|
|
|
interface DeploymentOptions {}
|
|
|
|
interface Deployment {
|
|
user: APIUser;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
create(name: string, description: string, options: DeploymentOptions, callback: CbCallback): void;
|
|
update(name: string, options: DeploymentOptions, callback: CbCallback): void;
|
|
delete(name: string, callback: CbCallback): void;
|
|
read(name: string, callback: CbCallback): void;
|
|
readAll(query: QueryObj, callback: CbCallback): void;
|
|
}
|
|
|
|
interface AppUser {
|
|
user: APIUser;
|
|
URI: string;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
getUser(callback: CbCallback): void;
|
|
setUser(data: object, callback: CbCallback): void;
|
|
setUsers(query: QueryObj, data: object, callback: CbCallback): void;
|
|
allUsers(query: QueryObj, callback: CbCallback): void;
|
|
count(query: QueryObj, callback: CbCallback): void;
|
|
}
|
|
|
|
interface Messaging {
|
|
user: APIUser;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
getMessageHistoryWithTimeFrame(topic: string, count: number, last: number, start: number, stop: number, callback: CbCallback): void;
|
|
getMessageHistory(topic: string, start: number, count: number, callback: CbCallback): void;
|
|
getAndDeleteMessageHistory(topic: string, count: number, last: number, start: number, stop: number, callback: CbCallback): void;
|
|
getCurrentTopics(callback: CbCallback): void;
|
|
publish(topic: string, payload: string | ArrayBuffer): void;
|
|
}
|
|
|
|
interface MessagingOptions {}
|
|
|
|
interface Device {
|
|
URI: string;
|
|
systemKey: string;
|
|
systemSecret: string;
|
|
|
|
fetch(query: Query, callback: CbCallback): void;
|
|
update(query: Query, changes: object, callback: CbCallback): void;
|
|
delete(query: Query, callback: CbCallback): void;
|
|
create(newDevice: object, callback: CbCallback): void;
|
|
}
|
|
|
|
declare enum TriggerModule {
|
|
DEVICE = "Device",
|
|
Data = "Data",
|
|
MESSAGING = "Messaging",
|
|
USER = "User"
|
|
}
|
|
|
|
interface TriggerCreateOptions {
|
|
system_key: string;
|
|
name: string;
|
|
def_module: TriggerModule;
|
|
def_name: string;
|
|
key_value_pairs: KeyValuePair[];
|
|
service_name: string;
|
|
}
|
|
|
|
interface TriggerClass {
|
|
Create(name: string, options: TriggerCreateOptions, callback: CbCallback): void;
|
|
Fetch(name: string, callback: CbCallback): void;
|
|
}
|
|
|
|
interface TimerCreateOptions {
|
|
description?: string;
|
|
start_time?: Date;
|
|
repeats?: number;
|
|
frequency?: number;
|
|
service_name?: string;
|
|
user_id?: string;
|
|
user_token?: string;
|
|
}
|
|
|
|
interface TimerClass {
|
|
Create(name: string, options: TimerCreateOptions, callback: CbCallback): void;
|
|
Fetch(name: string, callback: CbCallback): void;
|
|
}
|
|
|
|
interface TriggerInstance {
|
|
name: string;
|
|
systemKey: string;
|
|
|
|
Update(options: object, callback: CbCallback): void;
|
|
Delete(callback: CbCallback): void;
|
|
}
|
|
|
|
interface TimerInstance {
|
|
name: string;
|
|
systemKey: string;
|
|
|
|
Update(options: object, callback: CbCallback): void;
|
|
Delete(callback: CbCallback): void;
|
|
}
|
|
|
|
declare var ClearBlade: ClearBladeGlobal;
|