tradingview-screener-ts
Version:
TypeScript port of TradingView Screener with 100% Python parity - Based on the original Python library by shner-elmo (https://github.com/shner-elmo/TradingView-Screener)
153 lines • 11.1 kB
JavaScript
;
/**
* TradingView Screener TypeScript Library
*
* A world-class TypeScript package for creating stock screeners with the TradingView API.
* This package retrieves data directly from TradingView without web scraping or HTML parsing.
*
* 🎯 **100% Python Parity** - Complete feature compatibility with the original Python library
* 🔒 **Full Type Safety** - Comprehensive TypeScript definitions with IntelliSense support
* 🌍 **Global Markets** - 67+ countries including dedicated India market support
* 📊 **3000+ Fields** - Complete access to all TradingView data fields
* ⚡ **Modern Async** - Promise-based API with async/await patterns
* 🇮🇳 **India Market** - Dedicated support with INR currency formatting
*
* @example
* Basic stock screening:
* ```typescript
* import { Query, col } from 'tradingview-screener-ts';
*
* const result = await new Query()
* .select('name', 'close', 'volume', 'market_cap_basic')
* .where(
* col('market_cap_basic').gt(1_000_000_000),
* col('volume').gt(1_000_000)
* )
* .getScannerData();
*
* console.log(`Found ${result.totalCount} stocks`);
* ```
*
* @example
* India market screening:
* ```typescript
* import { Query, col } from 'tradingview-screener-ts';
*
* const indiaStocks = await new Query()
* .setMarkets('india')
* .select('name', 'close', 'volume', 'market_cap_basic', 'P/E')
* .where(
* col('market_cap_basic').gt(10_000_000_000), // ₹10B+
* col('P/E').between(8, 35),
* col('volume').gt(100_000)
* )
* .getScannerData();
* ```
*
* @example
* Advanced technical analysis:
* ```typescript
* import { Query, col, And, Or } from 'tradingview-screener-ts';
*
* const technicalScreen = await new Query()
* .select('name', 'close', 'RSI', 'MACD.macd', 'MACD.signal')
* .where(
* And(
* col('RSI').between(30, 70),
* col('MACD.macd').gt(col('MACD.signal')),
* Or(
* col('close').gt(col('EMA20')),
* col('volume').gt(col('volume').sma(20))
* )
* )
* )
* .orderBy('volume', false)
* .getScannerData();
* ```
*
* @example
* Multi-market screening:
* ```typescript
* const globalScreen = await new Query()
* .setMarkets('america', 'india', 'uk', 'germany')
* .where(col('market_cap_basic').gt(5_000_000_000))
* .getScannerData();
* ```
*
* @packageDocumentation
* @version 1.0.3
* @author TradingView Screener TypeScript Team
* @license MIT
* @see {@link https://github.com/Anny26022/TradingView-Screener-ts} GitHub Repository
* @see {@link https://www.npmjs.com/package/tradingview-screener-ts} NPM Package
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueryEventManager = exports.DataProcessingContext = exports.CryptoDataProcessor = exports.IndiaStockDataProcessor = exports.StockDataProcessor = exports.IndiaStockQueryBuilder = exports.ForexQueryBuilder = exports.CryptoQueryBuilder = exports.StockQueryBuilder = exports.QueryFactory = exports.Architecture = exports.TestFixtures = exports.MockHttpClient = exports.TestUtils = exports.MockDataGenerator = exports.Testing = exports.CryptoUtils = exports.SecurityAuditor = exports.ErrorSanitizer = exports.RequestSanitizer = exports.InputValidator = exports.Security = exports.monitored = exports.bundleInfo = exports.MemoryMonitor = exports.rateLimiter = exports.RateLimiter = exports.PerformanceMonitor = exports.performanceMonitor = exports.getMarketsByType = exports.getMarketCode = exports.getMarketName = exports.getMarketInfo = exports.isValidMarket = exports.MARKET_INFO = exports.COUNTRY_MARKETS = exports.ASSET_CLASSES = exports.MARKETS_LIST = exports.MARKETS_WITH_NAMES = exports.MARKETS = exports.default = exports.formatTechnicalRating = exports.col = exports.Column = exports.HEADERS = exports.URL = exports.DEFAULT_RANGE = exports.Or = exports.And = exports.Query = void 0;
exports.PluginManager = exports.PerformanceObserver = void 0;
// Export main classes
var query_1 = require("./query");
Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return query_1.Query; } });
Object.defineProperty(exports, "And", { enumerable: true, get: function () { return query_1.And; } });
Object.defineProperty(exports, "Or", { enumerable: true, get: function () { return query_1.Or; } });
Object.defineProperty(exports, "DEFAULT_RANGE", { enumerable: true, get: function () { return query_1.DEFAULT_RANGE; } });
Object.defineProperty(exports, "URL", { enumerable: true, get: function () { return query_1.URL; } });
Object.defineProperty(exports, "HEADERS", { enumerable: true, get: function () { return query_1.HEADERS; } });
var column_1 = require("./column");
Object.defineProperty(exports, "Column", { enumerable: true, get: function () { return column_1.Column; } });
Object.defineProperty(exports, "col", { enumerable: true, get: function () { return column_1.col; } });
// Export utility functions
var util_1 = require("./util");
Object.defineProperty(exports, "formatTechnicalRating", { enumerable: true, get: function () { return util_1.formatTechnicalRating; } });
// Re-export for convenience
var query_2 = require("./query");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return query_2.Query; } });
// Export constants - maintaining Python compatibility
var constants_1 = require("./constants");
Object.defineProperty(exports, "MARKETS", { enumerable: true, get: function () { return constants_1.MARKETS; } });
Object.defineProperty(exports, "MARKETS_WITH_NAMES", { enumerable: true, get: function () { return constants_1.MARKETS_WITH_NAMES; } });
Object.defineProperty(exports, "MARKETS_LIST", { enumerable: true, get: function () { return constants_1.MARKETS_LIST; } });
Object.defineProperty(exports, "ASSET_CLASSES", { enumerable: true, get: function () { return constants_1.ASSET_CLASSES; } });
Object.defineProperty(exports, "COUNTRY_MARKETS", { enumerable: true, get: function () { return constants_1.COUNTRY_MARKETS; } });
Object.defineProperty(exports, "MARKET_INFO", { enumerable: true, get: function () { return constants_1.MARKET_INFO; } });
Object.defineProperty(exports, "isValidMarket", { enumerable: true, get: function () { return constants_1.isValidMarket; } });
Object.defineProperty(exports, "getMarketInfo", { enumerable: true, get: function () { return constants_1.getMarketInfo; } });
Object.defineProperty(exports, "getMarketName", { enumerable: true, get: function () { return constants_1.getMarketName; } });
Object.defineProperty(exports, "getMarketCode", { enumerable: true, get: function () { return constants_1.getMarketCode; } });
Object.defineProperty(exports, "getMarketsByType", { enumerable: true, get: function () { return constants_1.getMarketsByType; } });
// Export advanced modules for enterprise features
var performance_1 = require("./performance");
Object.defineProperty(exports, "performanceMonitor", { enumerable: true, get: function () { return performance_1.performanceMonitor; } });
Object.defineProperty(exports, "PerformanceMonitor", { enumerable: true, get: function () { return performance_1.PerformanceMonitor; } });
Object.defineProperty(exports, "RateLimiter", { enumerable: true, get: function () { return performance_1.RateLimiter; } });
Object.defineProperty(exports, "rateLimiter", { enumerable: true, get: function () { return performance_1.rateLimiter; } });
Object.defineProperty(exports, "MemoryMonitor", { enumerable: true, get: function () { return performance_1.MemoryMonitor; } });
Object.defineProperty(exports, "bundleInfo", { enumerable: true, get: function () { return performance_1.bundleInfo; } });
Object.defineProperty(exports, "monitored", { enumerable: true, get: function () { return performance_1.monitored; } });
var security_1 = require("./security");
Object.defineProperty(exports, "Security", { enumerable: true, get: function () { return security_1.Security; } });
Object.defineProperty(exports, "InputValidator", { enumerable: true, get: function () { return security_1.InputValidator; } });
Object.defineProperty(exports, "RequestSanitizer", { enumerable: true, get: function () { return security_1.RequestSanitizer; } });
Object.defineProperty(exports, "ErrorSanitizer", { enumerable: true, get: function () { return security_1.ErrorSanitizer; } });
Object.defineProperty(exports, "SecurityAuditor", { enumerable: true, get: function () { return security_1.SecurityAuditor; } });
Object.defineProperty(exports, "CryptoUtils", { enumerable: true, get: function () { return security_1.CryptoUtils; } });
var testing_1 = require("./testing");
Object.defineProperty(exports, "Testing", { enumerable: true, get: function () { return testing_1.Testing; } });
Object.defineProperty(exports, "MockDataGenerator", { enumerable: true, get: function () { return testing_1.MockDataGenerator; } });
Object.defineProperty(exports, "TestUtils", { enumerable: true, get: function () { return testing_1.TestUtils; } });
Object.defineProperty(exports, "MockHttpClient", { enumerable: true, get: function () { return testing_1.MockHttpClient; } });
Object.defineProperty(exports, "TestFixtures", { enumerable: true, get: function () { return testing_1.TestFixtures; } });
var architecture_1 = require("./architecture");
Object.defineProperty(exports, "Architecture", { enumerable: true, get: function () { return architecture_1.Architecture; } });
Object.defineProperty(exports, "QueryFactory", { enumerable: true, get: function () { return architecture_1.QueryFactory; } });
Object.defineProperty(exports, "StockQueryBuilder", { enumerable: true, get: function () { return architecture_1.StockQueryBuilder; } });
Object.defineProperty(exports, "CryptoQueryBuilder", { enumerable: true, get: function () { return architecture_1.CryptoQueryBuilder; } });
Object.defineProperty(exports, "ForexQueryBuilder", { enumerable: true, get: function () { return architecture_1.ForexQueryBuilder; } });
Object.defineProperty(exports, "IndiaStockQueryBuilder", { enumerable: true, get: function () { return architecture_1.IndiaStockQueryBuilder; } });
Object.defineProperty(exports, "StockDataProcessor", { enumerable: true, get: function () { return architecture_1.StockDataProcessor; } });
Object.defineProperty(exports, "IndiaStockDataProcessor", { enumerable: true, get: function () { return architecture_1.IndiaStockDataProcessor; } });
Object.defineProperty(exports, "CryptoDataProcessor", { enumerable: true, get: function () { return architecture_1.CryptoDataProcessor; } });
Object.defineProperty(exports, "DataProcessingContext", { enumerable: true, get: function () { return architecture_1.DataProcessingContext; } });
Object.defineProperty(exports, "QueryEventManager", { enumerable: true, get: function () { return architecture_1.QueryEventManager; } });
Object.defineProperty(exports, "PerformanceObserver", { enumerable: true, get: function () { return architecture_1.PerformanceObserver; } });
Object.defineProperty(exports, "PluginManager", { enumerable: true, get: function () { return architecture_1.PluginManager; } });
//# sourceMappingURL=index.js.map