@openziti/ziti-browzer-core
Version:
Core componentry for the Ziti browZer ecosystem (used internally by ziti-browzer-runtime and ziti-sdk-browzer)
1,422 lines (1,396 loc) • 36.4 kB
TypeScript
import { Buffer } from 'buffer';
declare class ZitiSocket {
constructor(opts: any);
/**
*
*/
isWebSocket: any;
/**
* This stream is where we'll put any data returned from a Ziti connection (see ziti_dial.data.call_back)
*/
readableZitiStream: ReadableStream<any>;
/**
* The underlying Ziti Context
* @private
* @type {string}
*/
private zitiContext;
/**
* The active HTTP request
*/
req: any;
/**
* The underlying Ziti Connection
* @private
* @type {string}
*/
private zitiConnection;
/**
*
*/
_writable: boolean;
/**
*
*/
_id: number;
/**
* Make a connection to the specified Ziti 'service'. We do this by invoking the ziti_dial() function in the Ziti NodeJS-SDK.
* @param {*} service
*/
ziti_dial(service: any): Promise<any>;
/**
* Write data onto the underlying Ziti connection by invoking the ziti_write() function in the Ziti NodeJS-SDK. The
* NodeJS-SDK expects incoming data to be of type Buffer.
*/
ziti_write(conn: any, buffer: any): Promise<any>;
/**
*
*/
captureResponseData(conn: any, data: any): void;
/**
* Connect to a Ziti service.
*/
connect(opts: any): Promise<void>;
/**
*
*/
_read(): void;
read(): void;
/**
*
*/
destroy(): void;
/**
*
*/
destroy(): Promise<void>;
/**
* Returns a Promise that will resolve _only_ after a Ziti connection has been established for this instance of ZitiSocket.
*/
getZitiConnection(): Promise<any>;
connAsHex(conn: any): string;
/**
* Implements the writeable stream method `_write` by pushing the data onto the underlying Ziti connection.
* It is possible that this function is called before the Ziti connect has completed, so this function will (currently)
* await Ziti connection establishment (as opposed to buffering the data).
*/
write(chunk: any, encoding: any, cb: any): Promise<void>;
/**
*
*/
cork(): void;
uncork(): void;
/**
*
*/
pause(): void;
resume(): void;
/**
*
*/
end(data: any, encoding: any, callback: any): Promise<void>;
/**
* Implements the writeable stream method `_final` used when .end() is called to write the final data to the stream.
*/
_final(cb: any): void;
/**
*
*/
setTimeout(): void;
/**
*
*/
setNoDelay(): void;
/**
*
*/
unshift(head: any): void;
get writable(): any;
}
/**
* Base HTTP "ZitiAgent" class.
*
*/
declare class ZitiAgent {
constructor(options: any);
options: any;
proxy: any;
secure: boolean;
defaultPort: number;
/**
*
*/
end(): void;
/**
* Creates and returns a `ZitiSocket` instance to use for an HTTP request. If
* the serviceScheme is 'https', then the socket will also embed a `ZitiInnerTLSSocket`
* instance to facilitate TLS traffic over/within the outer mTLS socket.
*
* @api public
*/
createConnection(opts: any, deferredFn: any): Promise<void>;
deferredFn: any;
socket: ZitiSocket;
}
declare class ZitiAgentPool {
constructor(options: any);
options: any;
logger: any;
ZitiAgent: typeof ZitiAgent;
Promise: any;
_zitiAgents: any[];
_idle: any[];
_expired: WeakSet<object>;
_pendingQueue: any[];
_endCallback: any;
ending: boolean;
ended: boolean;
_hasFive(): boolean;
_isFull(): boolean;
_pulseQueue(): Promise<void>;
_remove(zitiAgent: any): void;
connect(req: any, reqOptions: any, cb: any): Promise<any>;
newZitiAgent(pendingItem: any): Promise<void>;
_acquireZitiAgent(zitiAgent: any, pendingItem: any, idleListener: any, isNew: any): void;
_releaseOnce(zitiAgent: any, idleListener: any): (err: any) => void;
_release(zitiAgent: any, idleListener: any, err: any): void;
query(text: any, values: any, cb: any): any;
end(cb: any): any;
get waitingCount(): number;
get idleCount(): number;
get expiredCount(): any;
get totalCount(): number;
}
/**
* ZitiEnroller
*/
declare class ZitiEnroller {
/**
*
*/
constructor(options: any);
_zitiContext: any;
logger: any;
/**
*
*/
initialize(): Promise<void>;
/**
*
*/
enroll(): Promise<boolean>;
/**
*
*/
generateCSR(wasmInstance: any): Promise<void>;
_csr: any;
/**
*
*/
createEphemeralCert(): Promise<boolean>;
_cas: any;
_cert: any;
_certExpiryTime: any;
printEphemeralCert(): Promise<void>;
/**
*
*/
get casPEM(): any;
/**
*
*/
get certPEM(): any;
/**
*
*/
get certPEMExpiryTime(): any;
}
/**
* Messages
*/
declare class Messages {
/**
*
*/
constructor(options: any);
_items: Map<any, any>;
_zitiContext: any;
_conn: any;
_channel: any;
/**
* Creates new message and stores it in the list.
*
* @param {String|Number} messageId
* @param {Function} fn
* @param {Number} timeout
* @returns {Promise}
*/
create(conn: any, messageId: string | number, fn: Function, timeout: number): Promise<any>;
resolve(conn: any, data: any): void;
rejectAll(error: any): void;
_rejectExistingMessage(messageId: any): void;
_getNativePromise(): any;
_createNewMessage(conn: any, messageId: any, fn: any, timeout: any): any;
_deleteMessage(messageId: any, message: any): void;
}
/**
* ZitiConnection
*/
declare class ZitiConnection {
/**
*
*/
constructor(options: any);
_zitiContext: any;
_data: any;
_state: number;
_timeout: any;
_edgeMsgSeq: number;
_id: any;
_messages: Messages;
get zitiContext(): any;
get data(): any;
get messages(): Messages;
set state(state: number);
get state(): number;
get id(): any;
get appData(): any;
getAndIncrementSequence(): number;
set socket(socket: any);
get socket(): any;
_socket: any;
set dataCallback(fn: any);
get dataCallback(): any;
_dataCallback: any;
set channel(channel: any);
get channel(): any;
_channel: any;
set encrypted(encrypted: any);
get encrypted(): any;
_encrypted: any;
set cryptoEstablishComplete(complete: any);
get cryptoEstablishComplete(): any;
_cryptoEstablishComplete: any;
set keypair(keypair: any);
get keypair(): any;
_keypair: any;
set sharedRx(sharedRx: any);
get sharedRx(): any;
_sharedRx: any;
set sharedTx(sharedTx: any);
get sharedTx(): any;
_sharedTx: any;
set crypt_o(crypt_o: any);
get crypt_o(): any;
_crypt_o: any;
set crypt_i(crypt_i: any);
get crypt_i(): any;
_crypt_i: any;
set networkSessionToken(networkSessionToken: any);
get networkSessionToken(): any;
_networkSessionToken: any;
}
/**
* ZitiWebSocketWrapperCtor:
*
*/
declare class ZitiWebSocketWrapperCtor {
/**
* Create a new `ZitiWebSocketWrapper`.
*
*/
constructor(address: any, protocols: any, options: any);
}
/**
* ZitiContext
*/
declare class ZitiContext {
/**
*
*/
constructor(options: any);
_initialized: boolean;
_initializedInnerWASM: boolean;
_keyType: any;
logger: any;
controllerApi: any;
updbUser: any;
updbPswd: any;
token_type: any;
id_token: any;
access_token: any;
sdkType: any;
sdkVersion: any;
sdkBranch: any;
sdkRevision: any;
apiSessionHeartbeatTimeMin: any;
apiSessionHeartbeatTimeMax: any;
bootstrapperTargetService: any;
bootstrapperHost: any;
proxydomain: string;
_libCrypto: any;
_libCryptoInitialized: boolean;
_network_sessions: Map<any, any>;
_services: Map<any, any>;
_channels: Map<any, any>;
_channelsById: Map<any, any>;
_wasmFDsById: Map<any, any>;
/**
* We start the channel id's at 10 so that they will be well above any 'fd'
* used by traditional WebAssembly (i.e. stdin, stdout, stderr). In the WebAssembly
* we have logic that watches for read/write operations to 'fd' values, and
* any that target a 'fd' above 10 will route the i/o to the appropriate ZitiChannel|ZitiTLSSocket.
*/
_channelSeq: number;
_wasmFDSeq: number;
_connSeq: number;
_ensureAPISessionMutex: any;
_getNetworkSessionByServiceIdMutex: any;
_getServiceNameByHostNameAndPortMutex: any;
_isCertExpiredMutex: any;
_connectMutexWithTimeout: any;
_tlsHandshakeLock: any;
_fetchSemaphoreHTTP: any;
_fetchSemaphoreHTTPS: any;
_pkey: any;
_privateKeyPEM: any;
_publicKeyPEM: any;
_casPEM: any;
_certPEM: any;
_apiSession: any;
_timeout: number;
_didInitialGetPendingChannelConnects: boolean;
_agentPool: ZitiAgentPool;
controllerCapabilities: any[];
controllerCapabilitiesOIDCErrorEncountered: boolean;
get libCrypto(): any;
get timeout(): number;
setKeyTypeEC(): void;
setKeyTypeRSA(): void;
/**
*
*/
initialize(options: any): Promise<void>;
_zitiBrowzerEdgeClient: any;
targetService: any;
targetServiceAppData: {
dst_protocol: undefined;
dst_port: any;
};
targetServiceHost: string;
targetServiceHostAndPort: string;
_zitiEnroller: ZitiEnroller;
/**
*
*/
sdk_initialize_loadWASM(options: any): Promise<void>;
/**
*
* @param {*} access_token
*/
setAccessToken(access_token: any): boolean;
createEnroller(): void;
printEphemeralCert(): Promise<void>;
generateKeyPair(): Promise<any>;
/**
* Remain in lazy-sleepy loop until context is initialized.
*
* @param {*} ctx
*/
awaitInitializationComplete(): Promise<any>;
/**
* Remain in lazy-sleepy loop until we have the access token.
*
* @param {*} ctx
*/
awaitAccessTokenPresent(): Promise<any>;
/**
*
*/
getZitiAgentPool(): ZitiAgentPool;
/**
*
*/
getWASMInstance(): Promise<any>;
/**
*
*/
reInitialize(options: any): Promise<void>;
/**
*
* @param {*} options
* @returns ZitiContext
*/
createZitiBrowzerEdgeClient(options: any): any;
/**
*
*/
generateRSAKey(): any;
/**
*
*/
generateECKey(): Promise<any>;
/**
*
*/
getPrivateKeyPEM(pkey: any): any;
/**
*
*/
getPublicKeyPEM(pkey: any): any;
/**
*
*/
createCertificateSigningRequest(wasmInstance: any, { key, curve, compressed, version, name, }: {
key?: any;
curve?: any;
compressed?: any;
version?: number;
name?: string;
}): any;
_csrPEM: any;
/**
*
*/
get_rsaKey(): Promise<any>;
/**
*
*/
get_ecKey(): Promise<any>;
/**
*
*/
get_pKey(): Promise<any>;
/**
*
*/
get_privateKeyPEM(): Promise<any>;
/**
*
*/
get_publicKeyPEM(): Promise<any>;
/**
*
* @returns
*/
ssl_CTX_new(wasmInstance: any): Promise<any>;
/**
*
* @returns
*/
ssl_CTX_add_private_key(wasmInstance: any, sslContext: any): Promise<any>;
/**
*
* @returns
*/
ssl_CTX_add_certificate(wasmInstance: any, sslContext: any): Promise<any>;
/**
*
* @returns
*/
ssl_CTX_verify_certificate_and_key(wasmInstance: any, sslContext: any): any;
/**
*
*/
bio_new_ssl_connect(wasmInstance: any, sslContext: any): any;
/**
*
*/
bio_get_ssl(wasmInstance: any, bio: any): any;
/**
*
*/
ssl_do_handshake(useLock: any, fd: any, wasmInstance: any, ssl: any): Promise<any>;
ssl_is_init_finished(wasmInstance: any, ssl: any): any;
/**
*
* @returns
*/
ssl_set_fd(wasmInstance: any, ssl: any, fd: any): any;
/**
*
*/
acquireTLSHandshakeLock(fd: any): Promise<void>;
_tlsHandshakeLockRelease: any;
_tlsHandshakeLockFD: any;
releaseTLSHandshakeLock(fd: any): void;
/**
*
* @param {*} wasmFD // id of socket
* @param {*} arrayBuffer // ArrayBuffer
*/
tls_enqueue(wasmInstance: any, wasmFD: any, arrayBuffer: any): Promise<void>;
/**
*
* @param {*} wasmFD // id of socket
*/
peekTLSData(wasmInstance: any, wasmFD: any): any;
/**
*
*/
tls_write(wasmInstance: any, ssl: any, wireData: any): Promise<any>;
/**
*
*/
tls_read(wasmInstance: any, ssl: any): Promise<any>;
serializeQueryParams(parameters: any): string;
/**
* do_oidc_authorize
*
* Utilize Controller's HA OIDC endpoint to acquire an authID.
* This code exists here, inline, instead of being in the zitiBrowzerEdgeClient, because the controller's
* swagger spec doesn't include the new HA OIDC endpoint refs.
*/
do_oidc_authorize(codeChallange: any): any;
/**
* do_oidc_login_ext_jwt
*
* Utilize Controller's HA OIDC endpoint to authenticate.
* This code exists here, inline, instead of being in the zitiBrowzerEdgeClient, because the controller's
* swagger spec doesn't include the new HA OIDC endpoint refs.
*/
do_oidc_login_ext_jwt(parameters: any): Promise<any>;
/**
* do_oidc_authorize_callback
*
* Utilize Controller's HA OIDC endpoint to authenticate.
* This code exists here, inline, instead of being in the zitiBrowzerEdgeClient, because the controller's
* swagger spec doesn't include the new HA OIDC endpoint refs.
*/
do_oidc_authorize_callback(parameters: any): Promise<any>;
/**
* do_oidc_oauth_token
*
* Utilize Controller's HA OIDC endpoint to acquire an apiToken.
* This code exists here, inline, instead of being in the zitiBrowzerEdgeClient, because the controller's
* swagger spec doesn't include the new HA OIDC endpoint refs.
*/
do_oidc_oauth_token(parameters: any): Promise<any>;
/**
* do_oidc_token_refresh
*
* Utilize Controller's HA OIDC endpoint to acquire a refreshed apiToken.
* This code exists here, inline, instead of being in the zitiBrowzerEdgeClient, because the controller's
* swagger spec doesn't include the new HA OIDC endpoint refs.
*/
do_oidc_token_refresh(): Promise<any>;
/**
*
*/
doAuthenticate(token: any): any;
delay(time: any): Promise<any>;
/**
*
*/
getAccessTokenEmail(): Promise<any>;
/**
*
*/
isControllerHA(): boolean;
/**
*
*/
getFreshAPISessionWithToken(token: any): Promise<boolean>;
/**
*
*/
getCurrentAPISession(): any;
/**
*
*/
setCurrentAPISession(apiSession: any): void;
/**
*
*/
getFreshAPISession(): Promise<any>;
/**
*
*/
ensureAPISession(): Promise<undefined>;
/**
*
*/
enroll(): Promise<boolean>;
_certExpiryTime: any;
_certPEMLeaf: any;
_certPEMIntermediatesArray: any;
/**
*
*/
getCasPEM(): Promise<any>;
/**
*
*/
getCertPEM(): Promise<any>;
/**
*
*/
getCertPEMLeaf(): Promise<any>;
/**
*
*/
getCertPEMIntermediatesArray(): Promise<any>;
/**
*
*/
getCertPEMExpiryTime(): Promise<any>;
/**
*
*/
apiSessionHeartbeat(self: any): Promise<void>;
/**
*
*/
getApiSessionHeartbeatTime(): number;
/**
* Returns a random integer between min (inclusive) and max (inclusive).
*/
getRandomInt(min: any, max: any): any;
/**
*
*/
fetchServices(): Promise<Map<any, any>>;
/**
*
*/
listControllerVersion(): Promise<any>;
_controllerVersion: any;
get controllerVersion(): any;
/**
*
*/
listExternalJwtSigners(): Promise<any>;
_externalJwtSigners: any;
/**
*
*/
getExternalJwtSignerScopesByClientId(clientId: any): any;
get services(): Map<any, any>;
/**
*
*/
getServiceIdByName(name: any): any;
/**
*
*/
getServiceEncryptionRequiredByName(name: any): any;
/**
*
*/
getServiceConfigByName(name: any): Promise<any>;
/**
*
*/
getConfigHostByServiceName(name: any): Promise<string>;
/**
*
*/
getServiceNameByConfigHost(hostname: any): Promise<any>;
/**
* If scheme is 'https' then look for port 443. If 443 not found,
* use portRange.low
*
* If scheme is 'http' then look for any port that is NOT 443
*/
getPortByScheme(portRanges: any, scheme: any): any;
getProtocol(protocolsArray: any): undefined;
/**
*
*/
getConnectAppDataByServiceName(name: any, scheme: any): Promise<{
dst_protocol: undefined;
dst_port: any;
}>;
/**
*
*/
getConfigHostAndPortByServiceName(name: any): Promise<{
host: any;
port: any;
}>;
/**
*
*/
getNetworkSessionByServiceId(serviceID: any): Promise<any>;
memoized_getNetworkSessionByServiceId: any;
/**
*
*/
createNetworkSession(id: any): Promise<any>;
/**
* Allocate a new Connection.
*
* @param {*} data
* @return {ZitiConnection}
*/
newConnection(data: any): ZitiConnection;
_getNativePromise(): any;
/**
* Dial the `service`.
*
* @param {ZitiConnection} conn
* @param {String} service
*/
dial(conn: ZitiConnection, service: string): Promise<any>;
getEdgeRouterURL(edgeRouter: any): any;
/**
* Connect specified ZitiConnection to the nearest Edge Router.
*
* @param {Array} edgeRouters
*/
_getPendingChannelConnects(conn: any, edgeRouters: any[]): Promise<any[]>;
/**
* Remain in lazy-sleepy loop until specified channel is connected.
*
* @param {*} channel
*/
awaitChannelConnectComplete(ch: any): Promise<any>;
getChannelByEdgeRouter(conn: any, edgeRouter: any): Promise<undefined>;
/**
*
*/
addWASMFD(socket: any): any;
/**
*
*/
findChannelByEdgeRouter(edgeRouter: any): {};
activeChannelCount(): number;
/**
*
*/
updateChannelsWithUpdatedToken(apiSessionToken: any): void;
/**
* Connect specified ZitiConnection to the nearest Edge Router.
*
* @param {ZitiConnection} conn
* @param {*} networkSession
*/
connect(conn: ZitiConnection, networkSession: any): Promise<void>;
/**
* Determine if the given URL should be routed over Ziti.
*
* @param {*} url
*/
shouldRouteOverZiti(url: any): Promise<any>;
memoized_shouldRouteOverZiti: any;
shouldRouteOverZitiSync(url: any): any;
/**
* Determine if the given URL should be handled via CORS Proxy.
*
*/
shouldRouteOverCORSProxy(url: any): boolean;
/**
*
* @param {*} hostname
* @param {*} port
* @returns
*/
getServiceNameByHostName(hostname: any): Promise<any>;
memoized_getServiceNameByHostName: any;
/**
*
* @param {*} hostname
* @param {*} port
* @returns
*/
getServiceNameByHostNameAndPort(hostname: any, port: any): Promise<any>;
memoized_getServiceNameByHostNameAndPort: any;
/**
"config": {
"ziti-tunneler-client.v1": {
"ziti-tunneler-client.v1": {
"hostname": "example.com",
"port": 443
}
}
}
*/
_getMatchConfigTunnelerClientV1: (config: any, hostname: any, port: any) => boolean;
/**
"config": {
"intercept.v1": {
"addresses": ["example.com"],
"portRanges": [{
"high": 443,
"low": 443
}],
"protocols": ["tcp"]
}
}
*/
_getMatchConfigInterceptV1: (config: any, hostname: any, port: any) => boolean;
/**
*
*/
isCertExpired(): Promise<void>;
/**
*
*/
flushExpiredAPISessionData(): void;
/**
*
*/
getNextConnectionId(): number;
/**
*
*/
getNextChannelId(): number;
/**
*
*/
getNextWASMFDId(): number;
closeChannelByEdgeRouter(edgeRouter: any): void;
closeAllChannels(): void;
get zitiWebSocketWrapper(): typeof ZitiWebSocketWrapperCtor;
/**
* Close specified ZitiConnection with Edge Router.
*
* @param {ZitiConnection} conn
*/
close(conn: ZitiConnection): Promise<void>;
/**
*
*/
truncateString(str: any, num: any): any;
/**
*
* @param {*} options
* @returns Response
*/
httpFetch(url: any, opts: any): Promise<any>;
}
/**
*
*/
declare class ZitiBrowzerCore {
/**
*
*/
constructor(options?: {});
/**
*
*/
createZitiContext(options: any): ZitiContext;
_zitiContext: ZitiContext;
/**
*
* @param {*} defaults
* @returns ZitiContext
*/
createZitiContextWithDefaults(defaults: any): any;
get context(): ZitiContext;
/**
*
* @param {*} options
* @returns ZitiLogger
*/
createZitiLogger(options: any): any;
_zitiLogger: any;
/**
*
* @returns ZitiLogger
*/
createZitiLoggerWithDefaults(): any;
get logger(): any;
}
/**
* Initialize a new `HttpHeaders`.
*
* @param Object headers Response headers
* @api public
*/
declare function HttpHeaders(init?: any): any;
declare class HttpHeaders {
/**
* Initialize a new `HttpHeaders`.
*
* @param Object headers Response headers
* @api public
*/
constructor(init?: any);
/**
* Return combined header value given name
*
* @param String name Header name
* @return Mixed
*/
get(name: any): any;
/**
* Iterate over all headers
*
* @param Function callback Executed for each item with parameters (value, name, thisArg)
* @param Boolean thisArg `this` context for callback function
* @return Void
*/
forEach(callback: any, thisArg?: any): void;
/**
* Overwrite header values given name
*
* @param String name Header name
* @param String value Header value
* @return Void
*/
set(name: any, value: any): void;
/**
* Append a value onto existing header
*
* @param String name Header name
* @param String value Header value
* @return Void
*/
append(name: any, value: any): void;
/**
* Check for header name existence
*
* @param String name Header name
* @return Boolean
*/
has(name: any): boolean;
/**
* Delete all header values given name
*
* @param String name Header name
* @return Void
*/
delete(name: any): void;
/**
* Return raw headers (non-spec api)
*
* @return Object
*/
raw(): any;
/**
* Get an iterator on keys.
*
* @return Iterator
*/
keys(): any;
/**
* Get an iterator on values.
*
* @return Iterator
*/
values(): any;
/**
* Get an iterator on entries.
*
* This is the default iterator of the HttpHeaders object.
*
* @return Iterator
*/
entries(): any;
/**
* Create a HttpHeaders object from an object of headers, ignoring those that do
* not conform to HTTP grammar productions.
*
* @param Object obj Object of headers
* @return HttpHeaders
*/
createHeadersLenient(obj: any): HttpHeaders;
getAllHeaders(): any[];
[MAP]: any;
}
declare const MAP: unique symbol;
/**
* Initialize a new `ZitiHttpRequest`.
*
* @api public
*/
declare function ZitiHttpRequest(serviceNameOrConn: any, input: any, init: {}, zitiContext: any): any;
declare class ZitiHttpRequest {
/**
* Initialize a new `ZitiHttpRequest`.
*
* @api public
*/
constructor(serviceNameOrConn: any, input: any, init: {}, zitiContext: any);
getZitiContext(): any;
getServiceName(): string;
getServiceScheme(): any;
getServiceConnectAppData(): any;
getConn(): any;
getMethod(): any;
getHeaders(): HttpHeaders;
getRedirect(): any;
getParsedURL(): URL;
getRequestOptions(): Promise<{
zitiContext: any;
serviceName: string;
serviceScheme: any;
serviceConnectAppData: any;
conn: any;
method: any;
headers: HttpHeaders;
body: any;
}>;
[INTERNALS$1]: {
serviceName: string;
serviceScheme: any;
serviceConnectAppData: any;
conn: any;
method: any;
redirect: any;
headers: HttpHeaders;
parsedURL: URL;
zitiContext: any;
};
}
declare const INTERNALS$1: unique symbol;
/**
* Initialize a new `HttpResponse`.
*
* @api public
*/
declare function HttpResponse(body?: any, opts?: {}): any;
declare class HttpResponse {
/**
* Initialize a new `HttpResponse`.
*
* @api public
*/
constructor(body?: any, opts?: {});
[INTERNALS]: {
url: any;
status: any;
headers: HttpHeaders;
counter: any;
};
}
declare const INTERNALS: unique symbol;
/**
* Create readable "multipart/form-data" streams.
* Can be used to submit forms
* and file uploads to other web applications.
*
* @constructor
* @param {Object} options - Properties to be added/overriden for ZitiFormData and CombinedStream
*/
declare function ZitiFormData(options: any): ZitiFormData;
declare class ZitiFormData {
/**
* Create readable "multipart/form-data" streams.
* Can be used to submit forms
* and file uploads to other web applications.
*
* @constructor
* @param {Object} options - Properties to be added/overriden for ZitiFormData and CombinedStream
*/
constructor(options: any);
_overheadLength: number;
_valueLength: number;
_valuesToMeasure: any[];
_streams: any[];
append(field: any, value: any, options: any): void;
_trackLength(header: any, value: any, options: any): void;
_lengthRetriever(value: any, callback: any): void;
_multiPartHeader(field: any, value: any, options: any): any;
_getContentDisposition(value: any, options: any): string;
_getContentType(value: any, options: any): any;
_multiPartFooter(): any;
_lastBoundary(): string;
getHeaders(userHeaders: any): {
'content-type': string;
};
setBoundary(boundary: any): void;
_boundary: any;
getBoundary(): any;
getStream(): any;
getBuffer(): Promise<any>;
_generateBoundary(): void;
getLengthSync(): number;
hasKnownLength(): boolean;
getLength(cb: any): void;
_error(err: any): void;
error: any;
toString(): string;
}
declare namespace ZitiFormData {
let LINE_BREAK: string;
let DEFAULT_CONTENT_TYPE: string;
}
declare class BrowserStdout {
constructor(opts: any);
req: any;
_write(chunk: any, encoding: any, cb: any): void;
write(chunk: any, encoding: any, cb: any): void;
end(): void;
}
declare function ClientRequest(input: any, options: any, cb: any): void;
declare class ClientRequest {
constructor(input: any, options: any, cb: any);
socketPath: any;
method: any;
maxHeaderSize: any;
path: any;
domProxyHit: any;
useChunkedEncodingByDefault: boolean;
_ended: boolean;
res: any;
aborted: boolean;
timeoutCb: any;
upgradeOrConnect: boolean;
parser: any;
maxHeadersCount: any;
reusedSocket: boolean;
host: any;
protocol: string;
_last: boolean;
shouldKeepAlive: boolean;
_finish(): void;
_implicitHeader(): void;
abort(): void;
destroy(err: any): this;
destroyed: boolean;
onSocket(socket: any, err: any): void;
_deferToConnect: typeof _deferToConnect;
setTimeout(msecs: any, callback: any): this;
setNoDelay(noDelay: any): void;
setSocketKeepAlive(enable: any, initialDelay: any): void;
clearTimeout(cb: any): void;
[kError]: any;
}
declare function _deferToConnect(method: any, arguments_: any, cb: any): void;
declare const kError: unique symbol;
declare class BufferList {
constructor(options: any);
head: any;
tail: any;
length: number;
push(v: any): void;
unshift(v: any): void;
shift(): any;
clear(): void;
join(s: any): string;
/**
* @type {Buffer}
* @return {Buffer}
*/
concat(n: any): Buffer;
consume(n: any, hasStrings: any): any;
first(): any;
_getString(n: any): any;
/**
* @type {Buffer}
* @return {Buffer}
*/
_getBuffer(n: any): Buffer;
value(_: any, options: any): any;
}
/**
* @extends {Stream}
*/
declare class Readable {
constructor(options: any);
_readableState: ReadableState;
readable: boolean;
_read(n: any): void;
_destroy(err: any, cb: any): void;
set destroyed(value: any);
get destroyed(): any;
destroy: any;
_undestroy: any;
push(chunk: any, encoding: any): boolean;
unshift(chunk: any): boolean;
readableAddChunk(stream: any, chunk: any, encoding: any, addToFront: any, skipChunkCheck: any): boolean;
isPaused(): boolean;
setEncoding(enc: any): this;
read(n: any): any;
pipe(dest: any, pipeOpts: any): any;
unpipe(dest: any): this;
on(ev: any, fn: any): any;
addListener: (ev: any, fn: any) => any;
removeListener(ev: any, fn: any): any;
removeAllListeners(ev: any): any;
resume(): this;
pause(): this;
wrap(stream: any): this;
get readableHighWaterMark(): any;
get readableBuffer(): any;
set readableFlowing(state: any);
get readableFlowing(): any;
get readableLength(): any;
ReadableState: typeof ReadableState;
}
declare function ReadableState(options: any, stream: any, isDuplex: any): void;
declare class ReadableState {
constructor(options: any, stream: any, isDuplex: any);
objectMode: boolean;
highWaterMark: number;
buffer: BufferList;
length: number;
pipes: any;
pipesCount: number;
flowing: any;
ended: boolean;
endEmitted: boolean;
reading: boolean;
sync: boolean;
needReadable: boolean;
emittedReadable: boolean;
readableListening: boolean;
resumeScheduled: boolean;
paused: boolean;
emitClose: boolean;
autoDestroy: boolean;
destroyed: boolean;
defaultEncoding: any;
awaitDrain: number;
readingMore: boolean;
decoder: any;
encoding: any;
}
declare class IncomingMessage extends Readable {
socket: any;
httpVersionMajor: any;
httpVersionMinor: any;
httpVersion: any;
complete: boolean;
headers: {};
rawHeaders: any[];
trailers: {};
rawTrailers: any[];
aborted: boolean;
upgrade: any;
url: string;
method: any;
statusCode: any;
statusMessage: any;
client: any;
_consuming: boolean;
_dumped: boolean;
set connection(val: any);
get connection(): any;
setTimeout(msecs: any, callback: any): this;
_addHeaderLines(headers: any, n: any): void;
_addHeaderLine(field: any, value: any, dest: any): void;
_dump(): void;
}
declare function validateHeaderName(name: any): void;
declare function validateHeaderValue(name: any, value: any): void;
declare function OutgoingMessage(): void;
declare class OutgoingMessage {
outputData: any[];
outputSize: number;
writable: boolean;
destroyed: boolean;
_last: boolean;
chunkedEncoding: boolean;
shouldKeepAlive: boolean;
useChunkedEncodingByDefault: boolean;
sendDate: boolean;
_removedConnection: boolean;
_removedContLen: boolean;
_removedTE: boolean;
_contentLength: number;
_hasBody: boolean;
_trailer: string;
finished: boolean;
_headerSent: boolean;
_closed: boolean;
socket: any;
_header: any;
_keepAliveTimeout: number;
_onPendingData: typeof noopPendingOutput;
get writableFinished(): boolean;
get writableObjectMode(): boolean;
get writableLength(): any;
get writableHighWaterMark(): any;
get writableCorked(): any;
set connection(value: any);
get connection(): any;
_renderHeaders(): {};
cork(): void;
uncork(): void;
setTimeout(msecs: any, callback: any): this;
destroy(error: any): this;
_send(data: any, encoding: any, callback: any): any;
_writeRaw: typeof _writeRaw;
_storeHeader: typeof _storeHeader;
setHeader(name: any, value: any): void;
getHeader(name: any): any;
getHeaderNames(): string[];
getHeaders(): any;
hasHeader(name: any): boolean;
removeHeader(name: any): void;
_implicitHeader(): never;
get headersSent(): boolean;
get writableEnded(): boolean;
write(chunk: any, encoding: any, callback: any): any;
addTrailers(headers: any): void;
end(chunk: any, encoding: any, callback: any): this;
_finish(): void;
_flush(): void;
_flushOutput(socket: any): any;
flushHeaders(): void;
pipe(): void;
[kCorked]: number;
}
declare function noopPendingOutput(amount: any): void;
declare function _writeRaw(data: any, encoding: any, callback: any): any;
declare function _storeHeader(firstLine: any, headers: any): void;
declare class _storeHeader {
constructor(firstLine: any, headers: any);
chunkedEncoding: boolean;
shouldKeepAlive: boolean;
_last: boolean;
_header: string;
_headerSent: boolean;
}
declare const kCorked: unique symbol;
declare namespace http {
export let METHODS: string[];
export { ClientRequest };
export { IncomingMessage };
export { OutgoingMessage };
export { validateHeaderName };
export { validateHeaderValue };
export { get };
export { request };
}
declare function get(url: any, options: any, cb: any): ClientRequest;
declare function request(url: any, options: any, cb: any): ClientRequest;
declare namespace ZITI_CONSTANTS {
let ZITI_JWT: string;
let ZITI_CONTROLLER: string;
let ZITI_CONTROLLER_WS: string;
let ZITI_EXPIRY_TIME: string;
let ZITI_IDENTITY_CERT: string;
let ZITI_IDENTITY_PUBLIC_KEY_FILENAME: string;
let ZITI_IDENTITY_PRIVATE_KEY_FILENAME: string;
let ZITI_IDENTITY_PUBLIC_KEY_FILE_NOT_FOUND: string;
let ZITI_IDENTITY_PRIVATE_KEY_FILE_NOT_FOUND: string;
let ZITI_IDENTITY_KEYPAIR_FOUND: string;
let ZITI_IDENTITY_KEYPAIR_OBTAIN_FROM_FS: string;
let ZITI_IDENTITY_KEYPAIR_OBTAIN_FROM_IDB: string;
let ZITI_IDENTITY_PUBLIC_KEY: string;
let ZITI_IDENTITY_PRIVATE_KEY: string;
let ZITI_IDENTITY_CA: string;
let ZITI_SERVICES: string;
let ZITI_API_SESSION_TOKEN: string;
let ZITI_IDENTITY_USERNAME: string;
let ZITI_IDENTITY_PASSWORD: string;
let ZITI_NETWORK_SESSIONS: string;
let ZITI_DEFAULT_TIMEOUT: number;
let ZITI_EVENT_XGRESS: string;
let ZITI_EVENT_XGRESS_TX: string;
let ZITI_EVENT_XGRESS_RX: string;
let ZITI_EVENT_INVALID_AUTH: string;
let ZITI_EVENT_NO_SERVICE: string;
let ZITI_EVENT_NO_CONFIG_FOR_SERVICE: string;
let ZITI_EVENT_NO_CONFIG_FOR_HOSTNAME: string;
let ZITI_EVENT_SESSION_CREATION_ERROR: string;
let ZITI_EVENT_NO_WSS_ROUTERS: string;
let ZITI_EVENT_IDP_AUTH_HEALTH: string;
let ZITI_EVENT_CHANNEL_CONNECT_FAIL: string;
let ZITI_EVENT_NESTED_TLS_HANDSHAKE_TIMEOUT: string;
let ZITI_EVENT_NO_CONFIG_PROTOCOL_FOR_SERVICE: string;
let ZITI_EVENT_WSS_ROUTER_CONNECTION_ERROR: string;
let ZITI_EVENT_CONTROLLER_CONNECTION_ERROR: string;
let ZITI_EVENT_DEPRECATION_ID_TOKEN: string;
let ZITI_EVENT_ACCESS_TOKEN_REFRESHED: string;
let ZITI_EVENT_XGRESS_RX_NESTED_TLS: string;
let ZITI_HA_CONTROLLER: string;
let ZITI_OIDC_AUTH: string;
let ZITI_BOOTSTRAPPER_CONTROLLER_PROXY_PATH: string;
}
export { BrowserStdout, HttpResponse, ZITI_CONSTANTS, ZitiBrowzerCore, ZitiFormData, ZitiHttpRequest, http };