vpn.email.client
Version:
Vpn.Email client IMAP core
461 lines (428 loc) • 10.4 kB
TypeScript
/// <reference path='../tsd.d.ts' />
/// <reference path='../../proxy/execImap.ts' />
interface ICallBack {
<T> ( err?: Error, result?: any, data?: any ) : void;
}
declare module "shortid" {
interface main {
generate:()=>string;
}
let u:main
export = u
}
interface VE_IPptpStream {
type?: string;
buffer: Buffer;
host: string;
port: number;
cmd: number;
ATYP: number;
uuid?: string;
length?:number;
randomBuffer?: Buffer
}
interface IpairConnect {
listenFolder: string;
saveFolder: string;
}
interface IinputData {
account:string;
email:string;
password:string;
smtpServer:string;
imapServer:string;
smtpUserName:string;
imapUserName:string;
smtpUserPassword:string;
imapUserPassword:string;
smtpPortNumber:string;
imapPortNumber:string;
imapSsl:boolean,
smtpSsl:boolean,
// imap 0 == deable, 1 == imap connectReady, 2 == imapConnect between VpnVia.email and client
Status:number;
publicKey:string;
uuid:string;
remoteImapConnect?:boolean;
systemPassword: string;
publicKey_id: string;
serverMailBoxName: string;
imapConnect?:boolean;
dummyData:string;
VpnviaEmailCheckOK: boolean;
power: string;
machineID: string;
runningContainerData: string
}
interface INodeMasterToContainerFirstTimeData {
sendData: string;
keyPass: string;
keyPassFileName: string;
keyID: string;
privateKeyAsc: string;
pubkeyAsc: string
}
interface INodeClientSocket {
serverMailBoxName: string;
command: string,
data: string;
uid: string;
account: string;
}
interface IContainer_running {
domain?: string;
key_id?: string;
running_pve_region: string;
account: string; // user aaccount
command?: string;
running_docker_name: string;
is_test_connect?: boolean;
create_date_uuid?: string;
imap_user_name?: string;
attachments?: string;
power?: string
create_date?: string;
pid?: string;
user_addon?: string;
start_date?: string;
running_cluster_name?: string;
alife?: boolean;
//PRIMARY KEY ((pve_region), name, command, create_date_uuid)) WITH CLUSTERING ORDER BY ( name DESC, command DESC, create_date_uuid DESC);';
}
interface IcheckAccountReturn {
data: IinputData;
dataStr: string;
sentMessage: ISentMessage;
sentMessageEncrypt: string;
serverMailFolder: string;
AlreadySentMail: boolean;
container: VE_IContainer;
}
interface ICpuPowerCluster {
socketManager?: string;
socketmanagerData?: IContainer_running;
command: string; // exec command
keepRun?: boolean;
params: any; // exec command params
CallBack?: ICallBack;
power?: number;
ID?: string;
err?: Error
}
interface IshellDecryptionReturnData {
text: string;
sign: boolean[];
}
interface VE_IDocker {
keyPublic: string;
keyPrivate: string;
keyPassword: string;
keyID: string;
name: string;
veRegion: string;
createDate?: Date;
cluster : VE_IDockerCluster
clusterName : string;
}
interface VE_IDockerCluster {
cluster_name: string;
clusterID: string;
clusterCreateDate?: Date;
publicIp4: string;
}
interface IFirstRun {
private_ip4: string;
public_ip4: string;
cluster_name: string;
provider: string;
pve_region: string;
id: string;
create_date: Date;
private_region: string;
destroy?: Date;
keepTime?: number;
}
interface IClientEmailCommand {
command: string;
data: string;
account: string;
result: any;
}
interface INewKeyPair {
email:string;
name: string;
keyBitLength: string;
password: string;
}
interface ICluster {
name: string;
create_date: Date,
}
interface VE_ISocket_dockerCommandRequest_emit {
dockerName: string;
requestID: string;
}
interface VE_ISocket_dockerCommandRequest {
dockerName: string;
message: any;
requestID: string;
}
interface ICommand {
command: string;
env: Object;
}
interface ITimeCount {
year: number,
monthly: number,
day: number,
hour: number,
tenMins: number,
min: number
}
interface gcloud_dataStore_dataExclude {
name: string;
value: any;
excludeFromIndexes: boolean;
}
interface master_init_json_initCommand {
exec: string;
args: string[];
loop: number
}
interface master_init_json {
initCommand: master_init_json_initCommand[]
}
interface IPve_Global_Production {
name: string;
name_language: string[];
create_date: string;
day_max_transfer: number;
can_over_transfer: boolean;
over_transfer_fee: string;
active: boolean;
power_node: number;
price: string;
validity: number;
is_promotions: boolean;
limit_quantity: number;
discount: number;
annual: string;
multi_email: number;
detail: string[],
bg_color: string;
can_vpn: boolean;
order: number;
monthly_max_transfer: number;
}
interface IPve_global_pve_region {
provider_name: string;
show_text: string[];
sub_script: string;
pve_region: string;
provider_region: string[];
available: boolean
}
interface IPve_global_account {
account: string; // account email
publicKey: string; // currently public pem
publicKeyID: string;
keyDestroyPassword: string;
machineID: string;
createDate: Date; // account regiest time
cardAccount: string;
production: string; // 当前所购产品
activeStatus: boolean; // 用户激活狀態
balanceTransferStartDate: Date;
tempPublicKey: string;
tempPublicKeyID: string;
// PRIMARY KEY ((prepare), email)) WITH CLUSTERING ORDER BY (email DESC );';
}
interface VE_ISaveLog_nodeLog {
nodeName: string;
dockerName: string;
containerName: string;
log: string;
level: number;
}
interface VE_IPublicKey {
publicKey: string;
publicKeyID: string
}
interface VE_ITempPublicKey extends VE_IPublicKey {
createDate: Date;
keyDestroyPassword: string;
}
interface VE_IAccountProduction {
createDate: Date;
production: string;
maxBalanceTransfer: number
}
interface VE_IPayment {
}
interface VE_IContainer {
name: string
createDate: Date;
power: number,
running: gcloud_datastore_keyOption,
runningDockerName: string;
account: string,
}
interface VE_IContainerRunningData {
docker: VE_IDocker,
transfer: number
startDate: Date,
endDate: Date
keepTime: number,
account: string
}
interface VE_IAccount {
publicKey: VE_IPublicKey,
tempPublicKey: VE_ITempPublicKey,
machineID: string,
createDate: Date,
activeStatus: boolean,
account: string,
production: VE_IAccountProduction,
activeDate: Date,
payment: VE_IPayment
}
interface ISentMessage {
// if client's public key is different than regiest will true
publicKeyChanged: boolean;
serverError: string;
// system message for user
message: string[];
keyDestroyPassword: string;
// active user
active: boolean;
serverMailFolder: string;
tempText: string;
toServerPassword: string;
toServer_command: String;
account: string;
publicKeyId: string;
production: string;
accountTypeList: IAccountType[];
accountType: string;
stripePayment: stripePayment;
random: string;
region: region[];
echo: boolean;
disconnect: boolean;
haveDockerPublicKey: boolean;
}
interface region {
}
interface stripePayment {
stripeToken: string;
stripeTokenType: string;
stripeEmail: string;
}
interface IContainer {
isTestConnect: boolean;
alife: boolean;
createDate: Date;
power: string
}
interface IAccountType {
name: string;
detail: string;
price: string;
active: boolean;
is_promotions: boolean;
annual: string;
monthly_max_transfer: string;
multi_email: string;
over_transfer_fee: string;
day_max_transfer: string;
}
interface VE_IgreData {
clientIp: string;
data: Buffer;
}
interface ISaveDataPool {
buffer: Buffer;
uuid: string;
index: number;
noExcrypt: boolean;
}
declare module Pem {
interface option {
serviceKey?: any;
serviceKeyPassword?: string;
serviceCertificate?: any;
serial?: number;
selfSigned?: boolean;
csr?: any;
days: number;
extFile?: any;
config?: any;
}
interface key {
certificate: string;
csr: string;
serviceKey: string;
clientKey: string;
}
export interface Static {
createCertificate: ( option: option, CallBack: ( err: Error, keys: key ) => void ) => void
}
}
declare module "pem" {
var pem: Pem.Static;
export = pem;
}
declare module "request-image-size" {
interface length {
height: number
width: number
type: string
}
interface pen {
( option: any , CallBack: ( err: Error, dimensions, length: length ) => void ): void
}
var pem: pen
export = pem;
}
interface domainRecord {
ipv4: string;
ipv6: string;
}
declare module "dns" {
interface lookup_option {
family?: number;
hints?: number;
all?: boolean
}
interface address {
address: string;
family: number
connect?: number []
}
export function lookup ( domain: string, option: lookup_option , callback: ( err: Error, address: address[] ) => void ): string;
}
interface AsyncBooleanIterator1 <T> {( item: T, callback: ( err?: Error, truthValue?: boolean ) => void ): void; }
interface Async {
someSeries < T > ( arr: T[], iterator: AsyncBooleanIterator1 < T >, callback?: ( err?: Error, result?: boolean ) => void ) : any
}
declare module "crypto" {
interface Cipher {
getAuthTag: () => Buffer;
}
interface Decipher {
setAuthTag: ( tag: Buffer ) => void;
}
}
declare module "net" {
import * as events from "events";
export interface Server extends events.EventEmitter {
getConnections: ( Callback: ( err?: Error, num?: number ) => void ) => void
}
}
declare module "http" {
import * as events from "events";
import * as stream from "stream"
export interface ServerResponse extends events.EventEmitter, stream.Writable {
finished: boolean;
}
}