156 lines
5.8 KiB
JavaScript
156 lines
5.8 KiB
JavaScript
"use strict";
|
|
/*
|
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0.
|
|
*/
|
|
var __extends = (this && this.__extends) || (function () {
|
|
var extendStatics = function (d, b) {
|
|
extendStatics = Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
return extendStatics(d, b);
|
|
};
|
|
return function (d, b) {
|
|
if (typeof b !== "function" && b !== null)
|
|
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
extendStatics(d, b);
|
|
function __() { this.constructor = d; }
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
})();
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.enable_logging = exports.SocketOptions = exports.ClientTlsContext = exports.TlsContext = exports.TlsConnectionOptions = exports.ClientBootstrap = exports.InputStream = exports.is_alpn_available = exports.SocketDomain = exports.SocketType = exports.TlsVersion = exports.LogLevel = exports.setLogLevel = void 0;
|
|
/**
|
|
*
|
|
* A module containing a grab bag of support for core network I/O functionality, including sockets, TLS, DNS, logging,
|
|
* error handling, streams, and connection -> thread mapping.
|
|
*
|
|
* Categories include:
|
|
* - Network: socket configuration
|
|
* - TLS: tls configuration
|
|
* - Logging: logging controls and configuration
|
|
* - IO: everything else
|
|
*
|
|
* @packageDocumentation
|
|
* @module io
|
|
* @mergeTarget
|
|
*/
|
|
var io_1 = require("../common/io");
|
|
// Do not re-export the logging functions in common; they are package-private
|
|
var io_2 = require("../common/io");
|
|
Object.defineProperty(exports, "setLogLevel", { enumerable: true, get: function () { return io_2.setLogLevel; } });
|
|
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return io_2.LogLevel; } });
|
|
Object.defineProperty(exports, "TlsVersion", { enumerable: true, get: function () { return io_2.TlsVersion; } });
|
|
Object.defineProperty(exports, "SocketType", { enumerable: true, get: function () { return io_2.SocketType; } });
|
|
Object.defineProperty(exports, "SocketDomain", { enumerable: true, get: function () { return io_2.SocketDomain; } });
|
|
/**
|
|
* @return false, as ALPN is not configurable from the browser
|
|
*
|
|
* @category TLS
|
|
*/
|
|
function is_alpn_available() {
|
|
return false;
|
|
}
|
|
exports.is_alpn_available = is_alpn_available;
|
|
/**
|
|
* Wrapper for any sort of body data in requests. As the browser does not implement streaming,
|
|
* this is merely an interface wrapper around a memory buffer.
|
|
*
|
|
* @category IO
|
|
*/
|
|
var InputStream = /** @class */ (function () {
|
|
function InputStream(data) {
|
|
this.data = data;
|
|
}
|
|
return InputStream;
|
|
}());
|
|
exports.InputStream = InputStream;
|
|
/**
|
|
* Represents resources required to bootstrap a client connection, provided as
|
|
* a stub for the browser API
|
|
*
|
|
* @category IO
|
|
*/
|
|
var ClientBootstrap = /** @class */ (function () {
|
|
function ClientBootstrap() {
|
|
}
|
|
return ClientBootstrap;
|
|
}());
|
|
exports.ClientBootstrap = ClientBootstrap;
|
|
;
|
|
/**
|
|
* TLS options that are unique to a given connection using a shared TlsContext.
|
|
* Provided as a stub for browser API.
|
|
*
|
|
* @category TLS
|
|
*/
|
|
var TlsConnectionOptions = /** @class */ (function () {
|
|
function TlsConnectionOptions(tls_ctx, server_name, alpn_list) {
|
|
if (alpn_list === void 0) { alpn_list = []; }
|
|
this.tls_ctx = tls_ctx;
|
|
this.server_name = server_name;
|
|
this.alpn_list = alpn_list;
|
|
}
|
|
return TlsConnectionOptions;
|
|
}());
|
|
exports.TlsConnectionOptions = TlsConnectionOptions;
|
|
;
|
|
/**
|
|
* TLS context used for TLS communications over sockets. Provided as a
|
|
* stub for the browser API
|
|
*
|
|
* @category TLS
|
|
*/
|
|
var TlsContext = /** @class */ (function () {
|
|
function TlsContext() {
|
|
}
|
|
return TlsContext;
|
|
}());
|
|
exports.TlsContext = TlsContext;
|
|
;
|
|
/**
|
|
* TLS context used for client TLS communications over sockets. Provided as a
|
|
* stub for the browser API
|
|
*
|
|
* @category TLS
|
|
*/
|
|
var ClientTlsContext = /** @class */ (function (_super) {
|
|
__extends(ClientTlsContext, _super);
|
|
function ClientTlsContext(options) {
|
|
return _super.call(this) || this;
|
|
}
|
|
return ClientTlsContext;
|
|
}(TlsContext));
|
|
exports.ClientTlsContext = ClientTlsContext;
|
|
;
|
|
/**
|
|
* Standard Berkeley socket style options.
|
|
*
|
|
* Provided for compatibility with nodejs, but this version is largely unused.
|
|
* @category Network
|
|
*/
|
|
var SocketOptions = /** @class */ (function () {
|
|
function SocketOptions(type, domain, connect_timeout_ms, keepalive, keep_alive_interval_sec, keep_alive_timeout_sec, keep_alive_max_failed_probes) {
|
|
if (type === void 0) { type = io_1.SocketType.STREAM; }
|
|
if (domain === void 0) { domain = io_1.SocketDomain.IPV6; }
|
|
if (connect_timeout_ms === void 0) { connect_timeout_ms = 5000; }
|
|
if (keepalive === void 0) { keepalive = false; }
|
|
if (keep_alive_interval_sec === void 0) { keep_alive_interval_sec = 0; }
|
|
if (keep_alive_timeout_sec === void 0) { keep_alive_timeout_sec = 0; }
|
|
if (keep_alive_max_failed_probes === void 0) { keep_alive_max_failed_probes = 0; }
|
|
this.type = type;
|
|
this.domain = domain;
|
|
this.connect_timeout_ms = connect_timeout_ms;
|
|
this.keepalive = keepalive;
|
|
this.keep_alive_interval_sec = keep_alive_interval_sec;
|
|
this.keep_alive_timeout_sec = keep_alive_timeout_sec;
|
|
this.keep_alive_max_failed_probes = keep_alive_max_failed_probes;
|
|
}
|
|
return SocketOptions;
|
|
}());
|
|
exports.SocketOptions = SocketOptions;
|
|
function enable_logging(level) {
|
|
(0, io_1.setLogLevel)(level);
|
|
}
|
|
exports.enable_logging = enable_logging;
|
|
//# sourceMappingURL=io.js.map
|