@copytrade/unified-broker
Version:
Unified broker interface library for Indian stock market brokers with plugin architecture
137 lines • 5.14 kB
JavaScript
;
/**
* @copytrade/unified-broker
* Unified broker interface library for Indian stock market brokers
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LIBRARY_INFO = exports.VERSION = exports.BrokerFactory = exports.BrokerRegistry = void 0;
exports.initializeUnifiedBroker = initializeUnifiedBroker;
exports.getBrokerSystemStatus = getBrokerSystemStatus;
exports.getLibraryInfo = getLibraryInfo;
exports.healthCheck = healthCheck;
exports.createBroker = createBroker;
exports.getSupportedBrokers = getSupportedBrokers;
// Core interfaces and types
__exportStar(require("./interfaces/IBrokerService"), exports);
// New unified interfaces for standardized broker responses
__exportStar(require("./interfaces/UnifiedBrokerResponse"), exports);
// Unified broker factory
__exportStar(require("./factories/UnifiedBrokerFactory"), exports);
// Registry system for plugin management
const BrokerRegistry_1 = require("./registry/BrokerRegistry");
Object.defineProperty(exports, "BrokerRegistry", { enumerable: true, get: function () { return BrokerRegistry_1.BrokerRegistry; } });
// Factory for creating broker instances
const BrokerFactory_1 = require("./factories/BrokerFactory");
Object.defineProperty(exports, "BrokerFactory", { enumerable: true, get: function () { return BrokerFactory_1.BrokerFactory; } });
// Note: Broker plugins are now separate packages
// Import @copytrade/broker-shoonya, @copytrade/broker-fyers, etc. to register brokers
// Version information
exports.VERSION = '1.1.0';
// Library metadata
exports.LIBRARY_INFO = {
name: '@copytrade/unified-broker',
version: exports.VERSION,
description: 'Unified broker interface library for Indian stock market brokers',
author: 'CopyTrade Team',
license: 'MIT',
repository: 'https://github.com/ravitejakamalapuram/copytradepro'
};
/**
* Initialize the unified broker library with explicit control
*/
function initializeUnifiedBroker() {
console.log(`🚀 Initializing ${exports.LIBRARY_INFO.name} v${exports.VERSION}`);
const registry = BrokerRegistry_1.BrokerRegistry.getInstance();
console.log(`✅ Unified broker library initialized - ready for broker registration`);
return registry;
}
/**
* Get the current status of the unified broker system
*/
function getBrokerSystemStatus() {
const registry = BrokerRegistry_1.BrokerRegistry.getInstance();
const availableBrokers = registry.getAvailableBrokers();
return {
initialized: true,
availableBrokers,
totalBrokers: availableBrokers.length
};
}
/**
* Get library information including available brokers
*/
function getLibraryInfo() {
const registry = BrokerRegistry_1.BrokerRegistry.getInstance();
return {
...exports.LIBRARY_INFO,
availableBrokers: registry.getAvailableBrokers(),
registeredPlugins: registry.getRegisteredPlugins()
};
}
/**
* Health check for the library
*/
function healthCheck() {
try {
const registry = BrokerRegistry_1.BrokerRegistry.getInstance();
const availableBrokers = registry.getAvailableBrokers();
if (availableBrokers.length === 0) {
return {
status: 'warning',
message: 'No broker plugins registered',
details: {
availableBrokers: [],
suggestion: 'Make sure broker plugins are properly loaded'
}
};
}
return {
status: 'healthy',
message: `Library is healthy with ${availableBrokers.length} broker(s) available`,
details: {
availableBrokers,
version: exports.VERSION
}
};
}
catch (error) {
return {
status: 'error',
message: 'Library health check failed',
details: {
error: error.message
}
};
}
}
/**
* Quick start helper - creates a broker instance
*/
function createBroker(brokerName) {
const factory = BrokerFactory_1.BrokerFactory.getInstance();
return factory.createBroker(brokerName);
}
/**
* Get list of all supported brokers
*/
function getSupportedBrokers() {
const factory = BrokerFactory_1.BrokerFactory.getInstance();
return factory.getSupportedBrokers();
}
// Auto-initialize when the library is imported
initializeUnifiedBroker();
//# sourceMappingURL=index.js.map