UNPKG

ravendb

Version:
218 lines 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthorizationInfo = exports.SupportedFeatures = exports.TestConnectionFeatures = exports.HeartbeatsFeatures = exports.SubscriptionFeatures = exports.DropFeatures = exports.NoneFeatures = exports.PingFeatures = exports.TEST_CONNECTION_TCP_VERSION = exports.SUBSCRIPTION_TCP_VERSION = exports.HEARTBEATS_TCP_VERSION = exports.TEST_CONNECTION_BASE_LINE = exports.TCP_CONNECTIONS_WITH_COMPRESSION = exports.SUBSCRIPTION_TIME_SERIES_INCLUDES = exports.SUBSCRIPTION_COUNTER_INCLUDES = exports.SUBSCRIPTION_INCLUDES = exports.SUBSCRIPTION_BASE_LINE = exports.HEARTBEATS_WITH_TCP_COMPRESSION = exports.HEARTBEATS_42000 = exports.HEARTBEATS_41200 = exports.HEARTBEATS_BASE_LINE = exports.DROP_BASE_LINE = exports.NONE_BASE_LINE = exports.PING_BASE_LINE = exports.NUMBER_OR_RETRIES_FOR_SENDING_TCP_HEADER = void 0; exports.operationVersionSupported = operationVersionSupported; exports.getOperationTcpVersion = getOperationTcpVersion; exports.getSupportedFeaturesFor = getSupportedFeaturesFor; const index_js_1 = require("../../Exceptions/index.js"); const TypeUtil_js_1 = require("../../Utility/TypeUtil.js"); exports.NUMBER_OR_RETRIES_FOR_SENDING_TCP_HEADER = 2; exports.PING_BASE_LINE = -1; exports.NONE_BASE_LINE = -1; exports.DROP_BASE_LINE = -2; exports.HEARTBEATS_BASE_LINE = 20; exports.HEARTBEATS_41200 = 41_200; exports.HEARTBEATS_42000 = 42_000; exports.HEARTBEATS_WITH_TCP_COMPRESSION = 54_000; exports.SUBSCRIPTION_BASE_LINE = 40; exports.SUBSCRIPTION_INCLUDES = 41_400; exports.SUBSCRIPTION_COUNTER_INCLUDES = 50_000; exports.SUBSCRIPTION_TIME_SERIES_INCLUDES = 51_000; exports.TCP_CONNECTIONS_WITH_COMPRESSION = 53_000; exports.TEST_CONNECTION_BASE_LINE = 50; exports.HEARTBEATS_TCP_VERSION = exports.HEARTBEATS_WITH_TCP_COMPRESSION; exports.SUBSCRIPTION_TCP_VERSION = exports.TCP_CONNECTIONS_WITH_COMPRESSION; exports.TEST_CONNECTION_TCP_VERSION = exports.TEST_CONNECTION_BASE_LINE; class PingFeatures { baseLine = true; } exports.PingFeatures = PingFeatures; class NoneFeatures { baseLine = true; } exports.NoneFeatures = NoneFeatures; class DropFeatures { baseLine = true; } exports.DropFeatures = DropFeatures; class SubscriptionFeatures { baseLine = true; includes = false; counterIncludes = false; timeSeriesIncludes = false; } exports.SubscriptionFeatures = SubscriptionFeatures; class HeartbeatsFeatures { baseLine = true; sendChangesOnly = false; includeServerInfo; } exports.HeartbeatsFeatures = HeartbeatsFeatures; class TestConnectionFeatures { baseLine = true; } exports.TestConnectionFeatures = TestConnectionFeatures; class SupportedFeatures { protocolVersion; constructor(versionOrSource) { if (TypeUtil_js_1.TypeUtil.isNumber(versionOrSource)) { this.protocolVersion = versionOrSource; return; } const source = versionOrSource; this.protocolVersion = source.protocolVersion; this.ping = source.ping; this.none = source.none; this.drop = source.drop; this.subscription = source.subscription; this.heartbeats = source.heartbeats; this.testConnection = source.testConnection; this.dataCompression = source.dataCompression; } ping; none; drop; subscription; heartbeats; testConnection; dataCompression; } exports.SupportedFeatures = SupportedFeatures; const operationsToSupportedProtocolVersions = new Map(); const supportedFeaturesByProtocol = new Map(); { operationsToSupportedProtocolVersions.set("Ping", [exports.PING_BASE_LINE]); operationsToSupportedProtocolVersions.set("None", [exports.NONE_BASE_LINE]); operationsToSupportedProtocolVersions.set("Drop", [exports.DROP_BASE_LINE]); operationsToSupportedProtocolVersions.set("Subscription", [ exports.TCP_CONNECTIONS_WITH_COMPRESSION, exports.SUBSCRIPTION_TIME_SERIES_INCLUDES, exports.SUBSCRIPTION_COUNTER_INCLUDES, exports.SUBSCRIPTION_INCLUDES, exports.SUBSCRIPTION_BASE_LINE ]); operationsToSupportedProtocolVersions.set("Heartbeats", [ exports.HEARTBEATS_TCP_VERSION, exports.HEARTBEATS_42000, exports.HEARTBEATS_41200, exports.HEARTBEATS_BASE_LINE ]); operationsToSupportedProtocolVersions.set("TestConnection", [exports.TEST_CONNECTION_BASE_LINE]); const pingFeaturesMap = new Map(); supportedFeaturesByProtocol.set("Ping", pingFeaturesMap); const pingFeatures = new SupportedFeatures(exports.PING_BASE_LINE); pingFeatures.ping = new PingFeatures(); pingFeaturesMap.set(exports.PING_BASE_LINE, pingFeatures); const noneFeaturesMap = new Map(); supportedFeaturesByProtocol.set("None", noneFeaturesMap); const noneFeatures = new SupportedFeatures(exports.NONE_BASE_LINE); noneFeatures.none = new NoneFeatures(); noneFeaturesMap.set(exports.NONE_BASE_LINE, noneFeatures); const dropFeaturesMap = new Map(); supportedFeaturesByProtocol.set("Drop", dropFeaturesMap); const dropFeatures = new SupportedFeatures(exports.DROP_BASE_LINE); dropFeatures.drop = new DropFeatures(); dropFeaturesMap.set(exports.DROP_BASE_LINE, dropFeatures); const subscriptionFeaturesMap = new Map(); supportedFeaturesByProtocol.set("Subscription", subscriptionFeaturesMap); const subscriptionFeatures = new SupportedFeatures(exports.SUBSCRIPTION_BASE_LINE); subscriptionFeatures.subscription = new SubscriptionFeatures(); subscriptionFeaturesMap.set(exports.SUBSCRIPTION_BASE_LINE, subscriptionFeatures); const subscriptions41400Features = new SupportedFeatures(exports.SUBSCRIPTION_INCLUDES); subscriptions41400Features.subscription = new SubscriptionFeatures(); subscriptions41400Features.subscription.includes = true; subscriptionFeaturesMap.set(exports.SUBSCRIPTION_INCLUDES, subscriptions41400Features); const subscriptions50000Features = new SupportedFeatures(exports.SUBSCRIPTION_COUNTER_INCLUDES); subscriptions50000Features.subscription = new SubscriptionFeatures(); subscriptions50000Features.subscription.includes = true; subscriptions50000Features.subscription.counterIncludes = true; subscriptionFeaturesMap.set(exports.SUBSCRIPTION_COUNTER_INCLUDES, subscriptions50000Features); const subscriptions51000Features = new SupportedFeatures(exports.SUBSCRIPTION_TIME_SERIES_INCLUDES); subscriptions51000Features.subscription = new SubscriptionFeatures(); subscriptions51000Features.subscription.includes = true; subscriptions51000Features.subscription.counterIncludes = true; subscriptions51000Features.subscription.timeSeriesIncludes = true; subscriptionFeaturesMap.set(exports.SUBSCRIPTION_TIME_SERIES_INCLUDES, subscriptions51000Features); const subscriptions53000Features = new SupportedFeatures(exports.TCP_CONNECTIONS_WITH_COMPRESSION); subscriptions53000Features.dataCompression = true; subscriptions53000Features.subscription = new SubscriptionFeatures(); subscriptions53000Features.subscription.includes = true; subscriptions53000Features.subscription.counterIncludes = true; subscriptions53000Features.subscription.timeSeriesIncludes = true; subscriptionFeaturesMap.set(exports.TCP_CONNECTIONS_WITH_COMPRESSION, subscriptions53000Features); const heartbeatsFeaturesMap = new Map(); supportedFeaturesByProtocol.set("Heartbeats", heartbeatsFeaturesMap); const heartbeatsFeatures = new SupportedFeatures(exports.HEARTBEATS_BASE_LINE); heartbeatsFeatures.heartbeats = new HeartbeatsFeatures(); heartbeatsFeaturesMap.set(exports.HEARTBEATS_BASE_LINE, heartbeatsFeatures); const heartbeats41200Features = new SupportedFeatures(exports.HEARTBEATS_41200); heartbeats41200Features.heartbeats = new HeartbeatsFeatures(); heartbeats41200Features.heartbeats.sendChangesOnly = true; heartbeatsFeaturesMap.set(exports.HEARTBEATS_41200, heartbeats41200Features); const heartbeats42000Features = new SupportedFeatures(exports.HEARTBEATS_42000); heartbeats42000Features.heartbeats = new HeartbeatsFeatures(); heartbeats42000Features.heartbeats.sendChangesOnly = true; heartbeats42000Features.heartbeats.includeServerInfo = true; heartbeatsFeaturesMap.set(exports.HEARTBEATS_42000, heartbeats42000Features); const heartbeatsWithTcpCompressionFeatures = new SupportedFeatures(exports.HEARTBEATS_WITH_TCP_COMPRESSION); heartbeatsWithTcpCompressionFeatures.heartbeats = new HeartbeatsFeatures(); heartbeatsWithTcpCompressionFeatures.heartbeats.sendChangesOnly = true; heartbeatsWithTcpCompressionFeatures.heartbeats.includeServerInfo = true; heartbeatsWithTcpCompressionFeatures.dataCompression = true; heartbeatsFeaturesMap.set(exports.HEARTBEATS_WITH_TCP_COMPRESSION, heartbeatsWithTcpCompressionFeatures); const testConnectionFeaturesMap = new Map(); supportedFeaturesByProtocol.set("TestConnection", testConnectionFeaturesMap); const testConnectionFeatures = new SupportedFeatures(exports.TEST_CONNECTION_BASE_LINE); testConnectionFeatures.testConnection = new TestConnectionFeatures(); testConnectionFeaturesMap.set(exports.TEST_CONNECTION_BASE_LINE, testConnectionFeatures); } function operationVersionSupported(operationType, version, currentRef) { currentRef(-1); const supportedProtocols = operationsToSupportedProtocolVersions.get(operationType); if (!supportedProtocols) { (0, index_js_1.throwError)("InvalidOperationException", "This is a bug. Probably you forgot to add '" + operationType + "' operation to the operationsToSupportedProtocolVersions map"); } for (const current of supportedProtocols) { currentRef(current); if (current === version) { return "Supported"; } if (current < version) { return "NotSupported"; } } return "OutOfRange"; } function getOperationTcpVersion(operationType, index) { // we don't check the if the index go out of range, since this is expected and means that we don't have switch (operationType) { case "Ping": case "None": { return -1; } case "Drop": { return -2; } case "Subscription": case "Replication": case "Cluster": case "Heartbeats": case "TestConnection": { return operationsToSupportedProtocolVersions.get(operationType)[index]; } default: { (0, index_js_1.throwError)("InvalidArgumentException", "Invalid operation type: " + operationType); } } } function getSupportedFeaturesFor(type, protocolVersion) { const features = supportedFeaturesByProtocol.get(type).get(protocolVersion); if (!features) { (0, index_js_1.throwError)("InvalidArgumentException", type + "in protocol " + protocolVersion + " was not found in the features set"); } return features; } class AuthorizationInfo { authorizeAs; authorizationFor; } exports.AuthorizationInfo = AuthorizationInfo; //# sourceMappingURL=TcpConnectionHeaderMessage.js.map