@yash101/schwab-api-client
Version:
A TypeScript client library for interacting with the Charles Schwab Brokerage APIs.
239 lines • 13.1 kB
JavaScript
;
/**
* Represents a comprehensive set of TypeScript interfaces, types, and enums for interacting with a market data API.
* These definitions are designed to facilitate the retrieval and manipulation of financial market data, including quotes,
* option chains, fundamental data, and reference information for various asset types.
*
* ### Key Features:
* - **Quote Retrieval**: Interfaces for requesting and receiving quotes for multiple symbols or a single symbol.
* - **Option Chains**: Support for retrieving detailed option chain data, including contract types, expiration dates, and theoretical values.
* - **Market Hours**: Provides information about market hours, including session intervals and open/close status.
* - **Reference Data**: Includes detailed reference information for equities, forex, mutual funds, futures, and options.
* - **Error Handling**: Structured error responses with detailed descriptions and sources of errors.
* - **Fundamental Data**: Access to fundamental metrics such as dividend yield, P/E ratio, and earnings per share.
* - **Enums for Standardization**: Enums for asset types, option strategies, expiration types, and more to ensure consistency.
*
* ### Interfaces Overview:
* - **GetQuotesRequest**: Represents a request to retrieve quotes for a list of symbols, with optional fields and indicative quotes.
* - **GetQuotesResponse**: Represents the response for a quotes request, including quote data or error information.
* - **GetOptionChainsRequest**: Represents a request to retrieve option chains for a specific symbol, with various optional parameters.
* - **OptionChain**: Represents the detailed structure of an option chain, including call and put expiration date maps.
* - **MarketHours**: Provides detailed market hours information for a specific date and market type.
* - **ErrorResponse**: Represents a structured error response with detailed error information.
* - **Fundamental**: Provides fundamental metrics for a financial instrument, such as dividend yield and P/E ratio.
* - **InstrumentResponse**: Represents detailed information about a financial instrument, including bonds and fundamental data.
*
* ### Enums Overview:
* - **AssetMainTypeEnum**: Enum for main asset types such as equity, bond, ETF, and option.
* - **OptionStrategyEnum**: Enum for various option strategies, including single, vertical, and straddle.
* - **OptionExpirationType**: Enum for expiration types such as monthly, quarterly, and weekly.
* - **DividendFrequency**: Enum for dividend payment frequencies, such as annual, quarterly, and monthly.
* - **HttpStatusCode**: Enum for HTTP status codes, including 400 (Bad Request) and 500 (Internal Server Error).
*
* ### Usage:
* These TypeScript definitions are intended to be used in applications that interact with a financial market data API.
* They provide a strongly-typed structure for making API requests and handling responses, ensuring type safety and clarity.
*
* ### Example:
* ```typescript
* const request: GetQuotesRequest = {
* symbols: ['AAPL', 'MSFT'],
* fields: [GetQuotesAcceptableFieldsEnum.QUOTE, GetQuotesAcceptableFieldsEnum.FUNDAMENTAL],
* indicative: true,
* };
*
* const response: GetQuotesResponse = await fetchQuotes(request);
* if ('errors' in response) {
* console.error('Error fetching quotes:', response.errors);
* } else {
* console.log('Quotes:', response);
* }
* ```
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpStatusCode = exports.DirectionEnum = exports.AssetMainTypeEnum = exports.EquityAssetSubTypeEnum = exports.MutualFundAssetSubType = exports.DividendFrequency = exports.OptionExpiryMonthEnum = exports.OptionExerciseTypeEnum = exports.FundStrategyEnum = exports.OptionStrategyEnum = exports.QuoteTypeEnum = exports.OptionSettlementTypeEnum = exports.OptionExpirationType = exports.GetQuotesAcceptableFieldsEnum = exports.FrequencyTypeEnum = exports.PeriodTypeEnum = exports.EntitlementEnum = exports.SortMoversByEnum = exports.IndexSymbolEnum = exports.MarketsEnum = exports.SearchByEnum = void 0;
var SearchByEnum;
(function (SearchByEnum) {
SearchByEnum["SYMBOL_SEARCH"] = "symbol-search";
SearchByEnum["SYMBOL_REGEX"] = "symbol-regex";
SearchByEnum["DESC_SEARCH"] = "desc-search";
SearchByEnum["DESC_REGEX"] = "desc-regex";
SearchByEnum["SEARCH"] = "search";
SearchByEnum["FUNDAMENTAL"] = "fundamental";
})(SearchByEnum || (exports.SearchByEnum = SearchByEnum = {}));
var MarketsEnum;
(function (MarketsEnum) {
MarketsEnum["EQUITY"] = "equity";
MarketsEnum["OPTION"] = "option";
MarketsEnum["FUTURE"] = "future";
MarketsEnum["BOND"] = "bond";
})(MarketsEnum || (exports.MarketsEnum = MarketsEnum = {}));
var IndexSymbolEnum;
(function (IndexSymbolEnum) {
IndexSymbolEnum["DJI"] = "$DJI";
IndexSymbolEnum["COMPX"] = "$COMPX";
IndexSymbolEnum["SPX"] = "$SPX";
IndexSymbolEnum["NYSE"] = "NYSE";
IndexSymbolEnum["NASDAQ"] = "NASDAQ";
IndexSymbolEnum["OTCBB"] = "OTCBB";
IndexSymbolEnum["INDEX_ALL"] = "INDEX_ALL";
IndexSymbolEnum["EQUITY_ALL"] = "EQUITY_ALL";
IndexSymbolEnum["OPTION_ALL"] = "OPTION_ALL";
IndexSymbolEnum["OPTION_PUT"] = "OPTION_PUT";
IndexSymbolEnum["OPTION_CALL"] = "OPTION_CALL";
})(IndexSymbolEnum || (exports.IndexSymbolEnum = IndexSymbolEnum = {}));
var SortMoversByEnum;
(function (SortMoversByEnum) {
SortMoversByEnum["VOLUME"] = "VOLUME";
SortMoversByEnum["TRADES"] = "TRADES";
SortMoversByEnum["PERCENT_CHANGE_UP"] = "PERCENT_CHANGE_UP";
SortMoversByEnum["PERCENT_CHANGE_DOWN"] = "PERCENT_CHANGE_DOWN";
})(SortMoversByEnum || (exports.SortMoversByEnum = SortMoversByEnum = {}));
var EntitlementEnum;
(function (EntitlementEnum) {
EntitlementEnum["PP"] = "PP";
EntitlementEnum["NP"] = "NP";
EntitlementEnum["PN"] = "PN";
})(EntitlementEnum || (exports.EntitlementEnum = EntitlementEnum = {}));
var PeriodTypeEnum;
(function (PeriodTypeEnum) {
PeriodTypeEnum["DAY"] = "day";
PeriodTypeEnum["MONTH"] = "month";
PeriodTypeEnum["YEAR"] = "year";
PeriodTypeEnum["YTD"] = "ytd";
})(PeriodTypeEnum || (exports.PeriodTypeEnum = PeriodTypeEnum = {}));
var FrequencyTypeEnum;
(function (FrequencyTypeEnum) {
FrequencyTypeEnum["MINUTE"] = "minute";
FrequencyTypeEnum["DAILY"] = "daily";
FrequencyTypeEnum["WEEKLY"] = "weekly";
FrequencyTypeEnum["MONTHLY"] = "monthly";
})(FrequencyTypeEnum || (exports.FrequencyTypeEnum = FrequencyTypeEnum = {}));
var GetQuotesAcceptableFieldsEnum;
(function (GetQuotesAcceptableFieldsEnum) {
GetQuotesAcceptableFieldsEnum["QUOTE"] = "quote";
GetQuotesAcceptableFieldsEnum["FUNDAMENTAL"] = "fundamental";
// These were recommended by GitHub copilot. I'm unsure if they are correct.
GetQuotesAcceptableFieldsEnum["EXTENDED"] = "extended";
GetQuotesAcceptableFieldsEnum["REFERENCE"] = "reference";
GetQuotesAcceptableFieldsEnum["REGULAR"] = "regular";
})(GetQuotesAcceptableFieldsEnum || (exports.GetQuotesAcceptableFieldsEnum = GetQuotesAcceptableFieldsEnum = {}));
var OptionExpirationType;
(function (OptionExpirationType) {
OptionExpirationType["MONTHLY"] = "M";
OptionExpirationType["QUARTERLY"] = "Q";
OptionExpirationType["WEEKLY"] = "W";
OptionExpirationType["REGULAR_S"] = "S"; // Expires 3rd Friday of the month
})(OptionExpirationType || (exports.OptionExpirationType = OptionExpirationType = {}));
var OptionSettlementTypeEnum;
(function (OptionSettlementTypeEnum) {
OptionSettlementTypeEnum["AM"] = "A";
OptionSettlementTypeEnum["PM"] = "P"; // PM settlement
})(OptionSettlementTypeEnum || (exports.OptionSettlementTypeEnum = OptionSettlementTypeEnum = {}));
var QuoteTypeEnum;
(function (QuoteTypeEnum) {
QuoteTypeEnum["NBBO"] = "NBBO";
QuoteTypeEnum["NFL"] = "NFL";
})(QuoteTypeEnum || (exports.QuoteTypeEnum = QuoteTypeEnum = {}));
var OptionStrategyEnum;
(function (OptionStrategyEnum) {
OptionStrategyEnum["SINGLE"] = "SINGLE";
OptionStrategyEnum["ANALYTICAL"] = "ANALYTICAL";
OptionStrategyEnum["COVERED"] = "COVERED";
OptionStrategyEnum["VERTICAL"] = "VERTICAL";
OptionStrategyEnum["CALENDAR"] = "CALENDAR";
OptionStrategyEnum["STRANGLE"] = "STRANGLE";
OptionStrategyEnum["STRADDLE"] = "STRADDLE";
OptionStrategyEnum["BUTTERFLY"] = "BUTTERFLY";
OptionStrategyEnum["CONDOR"] = "CONDOR";
OptionStrategyEnum["DIAGONAL"] = "DIAGONAL";
OptionStrategyEnum["COLLAR"] = "COLLAR";
OptionStrategyEnum["ROLL"] = "ROLL";
})(OptionStrategyEnum || (exports.OptionStrategyEnum = OptionStrategyEnum = {}));
var FundStrategyEnum;
(function (FundStrategyEnum) {
FundStrategyEnum["ACTIVE"] = "A";
FundStrategyEnum["LEVERAGED"] = "L";
FundStrategyEnum["PASSIVE"] = "P";
FundStrategyEnum["QUANTITATIVE"] = "Q";
FundStrategyEnum["SHORT"] = "S";
})(FundStrategyEnum || (exports.FundStrategyEnum = FundStrategyEnum = {}));
var OptionExerciseTypeEnum;
(function (OptionExerciseTypeEnum) {
OptionExerciseTypeEnum["AMERICAN"] = "A";
OptionExerciseTypeEnum["EUROPEAN"] = "E";
})(OptionExerciseTypeEnum || (exports.OptionExerciseTypeEnum = OptionExerciseTypeEnum = {}));
var OptionExpiryMonthEnum;
(function (OptionExpiryMonthEnum) {
OptionExpiryMonthEnum["JANUARY"] = "JAN";
OptionExpiryMonthEnum["FEBRUARY"] = "FEB";
OptionExpiryMonthEnum["MARCH"] = "MAR";
OptionExpiryMonthEnum["APRIL"] = "APR";
OptionExpiryMonthEnum["MAY"] = "MAY";
OptionExpiryMonthEnum["JUNE"] = "JUN";
OptionExpiryMonthEnum["JULY"] = "JUL";
OptionExpiryMonthEnum["AUGUST"] = "AUG";
OptionExpiryMonthEnum["SEPTEMBER"] = "SEP";
OptionExpiryMonthEnum["OCTOBER"] = "OCT";
OptionExpiryMonthEnum["NOVEMBER"] = "NOV";
OptionExpiryMonthEnum["DECEMBER"] = "DEC";
OptionExpiryMonthEnum["ALL"] = "ALL";
})(OptionExpiryMonthEnum || (exports.OptionExpiryMonthEnum = OptionExpiryMonthEnum = {}));
var DividendFrequency;
(function (DividendFrequency) {
DividendFrequency[DividendFrequency["ANNUAL"] = 1] = "ANNUAL";
DividendFrequency[DividendFrequency["SEMI_ANNUAL"] = 2] = "SEMI_ANNUAL";
DividendFrequency[DividendFrequency["THREE_TIMES_A_YEAR"] = 3] = "THREE_TIMES_A_YEAR";
DividendFrequency[DividendFrequency["QUARTERLY"] = 4] = "QUARTERLY";
DividendFrequency[DividendFrequency["EVERY_OTHER_MONTH"] = 6] = "EVERY_OTHER_MONTH";
DividendFrequency[DividendFrequency["ELEVEN_TIMES_A_YEAR"] = 11] = "ELEVEN_TIMES_A_YEAR";
DividendFrequency[DividendFrequency["MONTHLY"] = 12] = "MONTHLY";
})(DividendFrequency || (exports.DividendFrequency = DividendFrequency = {}));
var MutualFundAssetSubType;
(function (MutualFundAssetSubType) {
MutualFundAssetSubType["OPEN_ENDED_FUND"] = "OEF";
MutualFundAssetSubType["CLOSED_ENDED_FUND"] = "CEF";
MutualFundAssetSubType["MONEY_MARKET_FUND"] = "MMF";
})(MutualFundAssetSubType || (exports.MutualFundAssetSubType = MutualFundAssetSubType = {}));
var EquityAssetSubTypeEnum;
(function (EquityAssetSubTypeEnum) {
EquityAssetSubTypeEnum["COMMON_EQUITY"] = "COE";
EquityAssetSubTypeEnum["PREFERRED_EQUITY"] = "PRF";
EquityAssetSubTypeEnum["AMERICAN_DEPOSITARY_RECEIPT"] = "ADR";
EquityAssetSubTypeEnum["GLOBAL_DEPOSITARY_RECEIPT"] = "GDR";
EquityAssetSubTypeEnum["CLOSED_END_FUND"] = "CEF";
EquityAssetSubTypeEnum["EXCHANGE_TRADED_FUND"] = "ETF";
EquityAssetSubTypeEnum["EXCHANGE_TRADED_NOTE"] = "ETN";
EquityAssetSubTypeEnum["UNIT_INVESTMENT_TRUST"] = "UIT";
EquityAssetSubTypeEnum["WARRANT"] = "WAR";
EquityAssetSubTypeEnum["RIGHTS"] = "RGT";
})(EquityAssetSubTypeEnum || (exports.EquityAssetSubTypeEnum = EquityAssetSubTypeEnum = {}));
var AssetMainTypeEnum;
(function (AssetMainTypeEnum) {
AssetMainTypeEnum["BOND"] = "BOND";
AssetMainTypeEnum["EQUITY"] = "EQUITY";
AssetMainTypeEnum["ETF"] = "ETF";
AssetMainTypeEnum["EXTENDED"] = "EXTENDED";
AssetMainTypeEnum["FOREX"] = "FOREX";
AssetMainTypeEnum["FUTURE"] = "FUTURE";
AssetMainTypeEnum["FUTURE_OPTION"] = "FUTURE_OPTION";
AssetMainTypeEnum["FUNDAMENTAL"] = "FUNDAMENTAL";
AssetMainTypeEnum["INDEX"] = "INDEX";
AssetMainTypeEnum["INDICATOR"] = "INDICATOR";
AssetMainTypeEnum["MUTUAL_FUND"] = "MUTUAL_FUND";
AssetMainTypeEnum["OPTION"] = "OPTION";
AssetMainTypeEnum["UNKNOWN"] = "UNKNOWN";
})(AssetMainTypeEnum || (exports.AssetMainTypeEnum = AssetMainTypeEnum = {}));
var DirectionEnum;
(function (DirectionEnum) {
DirectionEnum["UP"] = "UP";
DirectionEnum["DOWN"] = "DOWN";
})(DirectionEnum || (exports.DirectionEnum = DirectionEnum = {}));
var HttpStatusCode;
(function (HttpStatusCode) {
HttpStatusCode[HttpStatusCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
HttpStatusCode[HttpStatusCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
HttpStatusCode[HttpStatusCode["NOT_FOUND"] = 404] = "NOT_FOUND";
HttpStatusCode[HttpStatusCode["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
})(HttpStatusCode || (exports.HttpStatusCode = HttpStatusCode = {}));
//# sourceMappingURL=dataapi.types.js.map