fmp-node-api 0.2.0-beta.1 → 0.2.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundHolding, Article, News, Quote, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, FMPErrorType } from './types-only.mjs';
2
- export { ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyTranscriptDataSchema, CryptoListSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, ForexListSchema, Form13FResponseSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, MarketCapSchema, MarketHoliday, MarketHolidaySchema, MarketHoursSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, QueryParams, QuoteSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockListResponse, StockListSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.mjs';
1
+ import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundHolding, Article, News, Quote, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, SearchResult, AnalystEstimate, PriceTargetConsensus, PriceTargetSummary, StockGrade, DCFValuation, CompanyRating, TechnicalIndicator, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, FMPErrorType } from './types-only.mjs';
2
+ export { AnalystEstimateSchema, ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyRatingSchema, CompanyTranscriptDataSchema, CryptoListSchema, DCFValuationSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, ForexListSchema, Form13FResponseSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, MarketCapSchema, MarketHoliday, MarketHolidaySchema, MarketHoursSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, PriceTargetConsensusSchema, PriceTargetSummarySchema, QueryParams, QuoteSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SearchResultSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockGradeSchema, StockListResponse, StockListSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TechnicalIndicatorSchema, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.mjs';
3
3
  export { FMPValidation } from './utils/validation.mjs';
4
4
  import 'zod';
5
5
 
@@ -2712,6 +2712,105 @@ declare class ScreenerEndpoints {
2712
2712
  getAvailableCountries(): Promise<APIResponse<AvailableCountries[]>>;
2713
2713
  }
2714
2714
 
2715
+ declare class SearchEndpoints {
2716
+ private client;
2717
+ constructor(client: FMPClient);
2718
+ /**
2719
+ * Search for stocks, ETFs, and other instruments by ticker symbol or company name.
2720
+ *
2721
+ * Resolves a free-text query (e.g. a company name or partial ticker) to matching
2722
+ * symbols. Useful for turning a name like "Apple" into a ticker like "AAPL".
2723
+ *
2724
+ * @param params - Search parameters
2725
+ * @param params.query - The search query (ticker or company name)
2726
+ * @param params.limit - Maximum number of results to return (optional)
2727
+ * @param params.exchange - Restrict results to a specific exchange (optional, e.g. "NASDAQ")
2728
+ *
2729
+ * @returns Promise resolving to an array of matching instruments
2730
+ *
2731
+ * @example
2732
+ * ```typescript
2733
+ * const results = await fmp.search.search({ query: 'Apple', limit: 5 });
2734
+ * const aapl = results.data?.find(r => r.symbol === 'AAPL');
2735
+ * ```
2736
+ *
2737
+ * @see {@link https://site.financialmodelingprep.com/developer/docs#general-search|FMP Search Documentation}
2738
+ */
2739
+ search(params: {
2740
+ query: string;
2741
+ limit?: number;
2742
+ exchange?: string;
2743
+ }): Promise<APIResponse<SearchResult[]>>;
2744
+ }
2745
+
2746
+ declare class AnalystEndpoints {
2747
+ private client;
2748
+ constructor(client: FMPClient);
2749
+ /**
2750
+ * Get analyst estimates (revenue, EBITDA, net income, EPS) for a company.
2751
+ *
2752
+ * @param params.symbol - Stock symbol
2753
+ * @param params.period - 'annual' or 'quarter' (optional)
2754
+ * @param params.limit - Max number of periods (optional)
2755
+ */
2756
+ getEstimates(params: {
2757
+ symbol: string;
2758
+ period?: 'annual' | 'quarter';
2759
+ limit?: number;
2760
+ }): Promise<APIResponse<AnalystEstimate[]>>;
2761
+ /** Get the analyst price-target consensus (high/low/consensus/median) for a company. */
2762
+ getPriceTargetConsensus(params: {
2763
+ symbol: string;
2764
+ }): Promise<APIResponse<PriceTargetConsensus>>;
2765
+ /** Get a summary of analyst price targets over recent periods for a company. */
2766
+ getPriceTargetSummary(params: {
2767
+ symbol: string;
2768
+ }): Promise<APIResponse<PriceTargetSummary>>;
2769
+ /** Get analyst grades (upgrades/downgrades) for a company. */
2770
+ getGrades(params: {
2771
+ symbol: string;
2772
+ }): Promise<APIResponse<StockGrade[]>>;
2773
+ }
2774
+
2775
+ declare class ValuationEndpoints {
2776
+ private client;
2777
+ constructor(client: FMPClient);
2778
+ /** Get the discounted-cash-flow (DCF) fair-value estimate for a company. */
2779
+ getDiscountedCashFlow(params: {
2780
+ symbol: string;
2781
+ }): Promise<APIResponse<DCFValuation>>;
2782
+ /** Get FMP's current rating/score snapshot for a company. */
2783
+ getRatingSnapshot(params: {
2784
+ symbol: string;
2785
+ }): Promise<APIResponse<CompanyRating>>;
2786
+ /** Get FMP's historical ratings for a company. */
2787
+ getHistoricalRating(params: {
2788
+ symbol: string;
2789
+ limit?: number;
2790
+ }): Promise<APIResponse<CompanyRating[]>>;
2791
+ }
2792
+
2793
+ type TechnicalIndicatorType = 'sma' | 'ema' | 'wma' | 'dema' | 'tema' | 'rsi' | 'standardDeviation' | 'williams' | 'adx';
2794
+ type TechnicalTimeframe = '1min' | '5min' | '15min' | '30min' | '1hour' | '4hour' | '1day' | '1week' | '1month';
2795
+ declare class TechnicalEndpoints {
2796
+ private client;
2797
+ constructor(client: FMPClient);
2798
+ /**
2799
+ * Get a technical indicator series for a symbol.
2800
+ *
2801
+ * @param params.symbol - Stock/ETF symbol
2802
+ * @param params.type - Indicator type (sma, ema, rsi, ...)
2803
+ * @param params.periodLength - Lookback period for the indicator (e.g. 10)
2804
+ * @param params.timeframe - Bar timeframe (e.g. '1day')
2805
+ */
2806
+ getTechnicalIndicator(params: {
2807
+ symbol: string;
2808
+ type: TechnicalIndicatorType;
2809
+ periodLength: number;
2810
+ timeframe: TechnicalTimeframe;
2811
+ }): Promise<APIResponse<TechnicalIndicator[]>>;
2812
+ }
2813
+
2715
2814
  declare class SECEndpoints {
2716
2815
  private client;
2717
2816
  constructor(client: FMPClient);
@@ -3380,6 +3479,10 @@ declare class FMP {
3380
3479
  readonly news: NewsEndpoints;
3381
3480
  readonly quote: QuoteEndpoints;
3382
3481
  readonly screener: ScreenerEndpoints;
3482
+ readonly search: SearchEndpoints;
3483
+ readonly analyst: AnalystEndpoints;
3484
+ readonly valuation: ValuationEndpoints;
3485
+ readonly technical: TechnicalEndpoints;
3383
3486
  readonly sec: SECEndpoints;
3384
3487
  readonly senateHouse: SenateHouseEndpoints;
3385
3488
  readonly stock: StockEndpoints;
@@ -3462,4 +3565,4 @@ declare class FMPError extends Error {
3462
3565
  constructor(message: string, status?: number | undefined, code?: string | undefined);
3463
3566
  }
3464
3567
 
3465
- export { APIResponse, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyTranscriptData, CryptoList, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, ForexList, Form13FResponse, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, Quote, QuoteEndpoints, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockList, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TransactionType, TransactionTypesResponse, TreasuryRate, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };
3568
+ export { APIResponse, AnalystEndpoints, AnalystEstimate, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyRating, CompanyTranscriptData, CryptoList, DCFValuation, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, ForexList, Form13FResponse, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, PriceTargetConsensus, PriceTargetSummary, Quote, QuoteEndpoints, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SearchEndpoints, SearchResult, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockGrade, StockList, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TechnicalEndpoints, TechnicalIndicator, TransactionType, TransactionTypesResponse, TreasuryRate, ValuationEndpoints, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundHolding, Article, News, Quote, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, FMPErrorType } from './types-only.js';
2
- export { ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyTranscriptDataSchema, CryptoListSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, ForexListSchema, Form13FResponseSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, MarketCapSchema, MarketHoliday, MarketHolidaySchema, MarketHoursSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, QueryParams, QuoteSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockListResponse, StockListSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.js';
1
+ import { FMPConfig, APIResponse, EarningsCalendar, EarningsConfirmed, DividendsCalendar, EconomicsCalendar, IPOCalendar, SplitsCalendar, CompanyProfile, ExecutiveCompensation, CompanyNotes, HistoricalEmployeeCount, SharesFloat, HistoricalSharesFloat, EarningsCallTranscript, CompanyTranscriptData, TreasuryRate, EconomicIndicator, ETFHoldingDates, ETFHolding, ETFHolder, ETFProfile, ETFWeighting, ETFCountryWeighting, ETFStockExposure, IncomeStatement, BalanceSheet, CashFlowStatement, KeyMetrics, FinancialRatios, EnterpriseValue, CashflowGrowth, IncomeGrowth, BalanceSheetGrowth, FinancialGrowth, EarningsHistorical, EarningsSurprises, InsiderTradingRSSResponse, InsiderTradingSearchResponse, TransactionTypesResponse, InsidersBySymbolResponse, InsiderTradeStatisticsResponse, CikMapperResponse, CikMapperBySymbolResponse, BeneficialOwnershipResponse, FailToDeliverResponse, TransactionType, Form13FResponse, InstitutionalHolderResponse, StockList, ETFList, CryptoList, ForexList, AvailableIndexesList, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundHolding, Article, News, Quote, HistoricalPriceResponse, IntradayPrice, ScreenerParams, Screener, AvailableExchanges, AvailableSectors, AvailableIndustries, AvailableCountries, SearchResult, AnalystEstimate, PriceTargetConsensus, PriceTargetSummary, StockGrade, DCFValuation, CompanyRating, TechnicalIndicator, RSSFeedItem, RSSFeedAllItem, RSSFeedV3Item, RSSFeed8KItem, SECFiling, IndustryClassification, IndustryClassificationCode, SenateTradingResponse, SenateHouseTradingByNameResponse, HouseTradingResponse, MarketCap, StockSplitResponse, StockDividendResponse, StockRealTimePrice, StockRealTimePriceFull, FMPErrorType } from './types-only.js';
2
+ export { AnalystEstimateSchema, ArticleSchema, AvailableCountriesSchema, AvailableExchangesSchema, AvailableIndexesListSchema, AvailableIndustriesSchema, AvailableSectorsSchema, BalanceSheetGrowthSchema, BalanceSheetSchema, BeneficialOwnershipResponseSchema, CashFlowStatementSchema, CashflowGrowthSchema, CikMapperBySymbolResponseSchema, CikMapperResponseSchema, CompaniesPriceListResponse, CompanyNotesSchema, CompanyProfileSchema, CompanyRatingSchema, CompanyTranscriptDataSchema, CryptoListSchema, DCFValuationSchema, DateRangeParams, DividendsCalendarSchema, ETFCountryWeightingSchema, ETFHolderSchema, ETFHoldingDatesSchema, ETFHoldingSchema, ETFListSchema, ETFProfileSchema, ETFStockExposureSchema, ETFWeightingSchema, EarningsCalendarSchema, EarningsCallTranscriptSchema, EarningsConfirmedSchema, EarningsHistoricalSchema, EarningsSurprisesSchema, EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, EconomicsCalendarSchema, EnterpriseValueSchema, Exchange, ExecutiveCompensationSchema, FailToDeliverResponseSchema, FinancialGrowthSchema, FinancialRatiosSchema, ForexListSchema, Form13FResponseSchema, HistoricalEmployeeCountSchema, HistoricalPriceData, HistoricalPriceDataSchema, HistoricalPriceResponseSchema, HistoricalSharesFloatSchema, HouseTradingResponseSchema, IPOCalendarSchema, IncomeGrowthSchema, IncomeStatementSchema, IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, IndustryClassificationCodeSchema, IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, InsiderTradeStatisticsResponseSchema, InsiderTradingRSSResponseSchema, InsiderTradingSearchResponseSchema, InsidersBySymbolResponseSchema, InstitutionalHolderResponseSchema, IntradayPriceSchema, KeyMetricsSchema, MarketCapSchema, MarketHoliday, MarketHolidaySchema, MarketHoursSchema, MarketIndexSchema, MarketPerformanceSchema, MarketSectorPerformanceSchema, MutualFundHoldingSchema, NewsSchema, PaginationParams, Period, PeriodParams, PriceTargetConsensusSchema, PriceTargetSummarySchema, QueryParams, QuoteSchema, RSSFeed8KItemSchema, RSSFeed8KParams, RSSFeed8KParamsSchema, RSSFeedAllItemSchema, RSSFeedItemSchema, RSSFeedParams, RSSFeedParamsSchema, RSSFeedV3ItemSchema, RSSFeedV3Params, RSSFeedV3ParamsSchema, SECFilingSchema, SECFilingsParams, SECFilingsParamsSchema, ScreenerParamsSchema, ScreenerSchema, SearchResultSchema, SenateHouseTradingByNameResponseSchema, SenateTradingResponseSchema, SharesFloatSchema, SplitsCalendarSchema, StockDividend, StockDividendResponseSchema, StockDividendSchema, StockGradeSchema, StockListResponse, StockListSchema, StockRealTimePriceFullSchema, StockRealTimePriceSchema, StockSplit, StockSplitResponseSchema, StockSplitSchema, SymbolParams, TechnicalIndicatorSchema, TransactionTypeRecordSchema, TreasuryRateSchema } from './types-only.js';
3
3
  export { FMPValidation } from './utils/validation.js';
4
4
  import 'zod';
5
5
 
@@ -2712,6 +2712,105 @@ declare class ScreenerEndpoints {
2712
2712
  getAvailableCountries(): Promise<APIResponse<AvailableCountries[]>>;
2713
2713
  }
2714
2714
 
2715
+ declare class SearchEndpoints {
2716
+ private client;
2717
+ constructor(client: FMPClient);
2718
+ /**
2719
+ * Search for stocks, ETFs, and other instruments by ticker symbol or company name.
2720
+ *
2721
+ * Resolves a free-text query (e.g. a company name or partial ticker) to matching
2722
+ * symbols. Useful for turning a name like "Apple" into a ticker like "AAPL".
2723
+ *
2724
+ * @param params - Search parameters
2725
+ * @param params.query - The search query (ticker or company name)
2726
+ * @param params.limit - Maximum number of results to return (optional)
2727
+ * @param params.exchange - Restrict results to a specific exchange (optional, e.g. "NASDAQ")
2728
+ *
2729
+ * @returns Promise resolving to an array of matching instruments
2730
+ *
2731
+ * @example
2732
+ * ```typescript
2733
+ * const results = await fmp.search.search({ query: 'Apple', limit: 5 });
2734
+ * const aapl = results.data?.find(r => r.symbol === 'AAPL');
2735
+ * ```
2736
+ *
2737
+ * @see {@link https://site.financialmodelingprep.com/developer/docs#general-search|FMP Search Documentation}
2738
+ */
2739
+ search(params: {
2740
+ query: string;
2741
+ limit?: number;
2742
+ exchange?: string;
2743
+ }): Promise<APIResponse<SearchResult[]>>;
2744
+ }
2745
+
2746
+ declare class AnalystEndpoints {
2747
+ private client;
2748
+ constructor(client: FMPClient);
2749
+ /**
2750
+ * Get analyst estimates (revenue, EBITDA, net income, EPS) for a company.
2751
+ *
2752
+ * @param params.symbol - Stock symbol
2753
+ * @param params.period - 'annual' or 'quarter' (optional)
2754
+ * @param params.limit - Max number of periods (optional)
2755
+ */
2756
+ getEstimates(params: {
2757
+ symbol: string;
2758
+ period?: 'annual' | 'quarter';
2759
+ limit?: number;
2760
+ }): Promise<APIResponse<AnalystEstimate[]>>;
2761
+ /** Get the analyst price-target consensus (high/low/consensus/median) for a company. */
2762
+ getPriceTargetConsensus(params: {
2763
+ symbol: string;
2764
+ }): Promise<APIResponse<PriceTargetConsensus>>;
2765
+ /** Get a summary of analyst price targets over recent periods for a company. */
2766
+ getPriceTargetSummary(params: {
2767
+ symbol: string;
2768
+ }): Promise<APIResponse<PriceTargetSummary>>;
2769
+ /** Get analyst grades (upgrades/downgrades) for a company. */
2770
+ getGrades(params: {
2771
+ symbol: string;
2772
+ }): Promise<APIResponse<StockGrade[]>>;
2773
+ }
2774
+
2775
+ declare class ValuationEndpoints {
2776
+ private client;
2777
+ constructor(client: FMPClient);
2778
+ /** Get the discounted-cash-flow (DCF) fair-value estimate for a company. */
2779
+ getDiscountedCashFlow(params: {
2780
+ symbol: string;
2781
+ }): Promise<APIResponse<DCFValuation>>;
2782
+ /** Get FMP's current rating/score snapshot for a company. */
2783
+ getRatingSnapshot(params: {
2784
+ symbol: string;
2785
+ }): Promise<APIResponse<CompanyRating>>;
2786
+ /** Get FMP's historical ratings for a company. */
2787
+ getHistoricalRating(params: {
2788
+ symbol: string;
2789
+ limit?: number;
2790
+ }): Promise<APIResponse<CompanyRating[]>>;
2791
+ }
2792
+
2793
+ type TechnicalIndicatorType = 'sma' | 'ema' | 'wma' | 'dema' | 'tema' | 'rsi' | 'standardDeviation' | 'williams' | 'adx';
2794
+ type TechnicalTimeframe = '1min' | '5min' | '15min' | '30min' | '1hour' | '4hour' | '1day' | '1week' | '1month';
2795
+ declare class TechnicalEndpoints {
2796
+ private client;
2797
+ constructor(client: FMPClient);
2798
+ /**
2799
+ * Get a technical indicator series for a symbol.
2800
+ *
2801
+ * @param params.symbol - Stock/ETF symbol
2802
+ * @param params.type - Indicator type (sma, ema, rsi, ...)
2803
+ * @param params.periodLength - Lookback period for the indicator (e.g. 10)
2804
+ * @param params.timeframe - Bar timeframe (e.g. '1day')
2805
+ */
2806
+ getTechnicalIndicator(params: {
2807
+ symbol: string;
2808
+ type: TechnicalIndicatorType;
2809
+ periodLength: number;
2810
+ timeframe: TechnicalTimeframe;
2811
+ }): Promise<APIResponse<TechnicalIndicator[]>>;
2812
+ }
2813
+
2715
2814
  declare class SECEndpoints {
2716
2815
  private client;
2717
2816
  constructor(client: FMPClient);
@@ -3380,6 +3479,10 @@ declare class FMP {
3380
3479
  readonly news: NewsEndpoints;
3381
3480
  readonly quote: QuoteEndpoints;
3382
3481
  readonly screener: ScreenerEndpoints;
3482
+ readonly search: SearchEndpoints;
3483
+ readonly analyst: AnalystEndpoints;
3484
+ readonly valuation: ValuationEndpoints;
3485
+ readonly technical: TechnicalEndpoints;
3383
3486
  readonly sec: SECEndpoints;
3384
3487
  readonly senateHouse: SenateHouseEndpoints;
3385
3488
  readonly stock: StockEndpoints;
@@ -3462,4 +3565,4 @@ declare class FMPError extends Error {
3462
3565
  constructor(message: string, status?: number | undefined, code?: string | undefined);
3463
3566
  }
3464
3567
 
3465
- export { APIResponse, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyTranscriptData, CryptoList, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, ForexList, Form13FResponse, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, Quote, QuoteEndpoints, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockList, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TransactionType, TransactionTypesResponse, TreasuryRate, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };
3568
+ export { APIResponse, AnalystEndpoints, AnalystEstimate, Article, AvailableCountries, AvailableExchanges, AvailableIndexesList, AvailableIndustries, AvailableSectors, BalanceSheet, BalanceSheetGrowth, BeneficialOwnershipResponse, CalendarEndpoints, CashFlowStatement, CashflowGrowth, CikMapperBySymbolResponse, CikMapperResponse, type ClassifiedError, CompanyEndpoints, CompanyNotes, CompanyProfile, CompanyRating, CompanyTranscriptData, CryptoList, DCFValuation, DEFAULT_LIMIT, DEFAULT_TIMEOUT, DividendsCalendar, ETFCountryWeighting, ETFEndpoints, ETFHolder, ETFHolding, ETFHoldingDates, ETFList, ETFProfile, ETFStockExposure, ETFWeighting, EXCHANGES, EarningsCalendar, EarningsCallTranscript, EarningsConfirmed, EarningsHistorical, EarningsSurprises, EconomicEndpoints, EconomicIndicator, EconomicsCalendar, EnterpriseValue, ExecutiveCompensation, FMP, FMPClient, FMPConfig, FMPError, FMPErrorType, FailToDeliverResponse, FinancialEndpoints, FinancialGrowth, FinancialRatios, ForexList, Form13FResponse, HistoricalEmployeeCount, HistoricalPriceResponse, HistoricalSharesFloat, HouseTradingResponse, IPOCalendar, IncomeGrowth, IncomeStatement, IndustryClassification, IndustryClassificationCode, InsiderEndpoints, InsiderTradeStatisticsResponse, InsiderTradingRSSResponse, InsiderTradingSearchResponse, InsidersBySymbolResponse, InstitutionalEndpoints, InstitutionalHolderResponse, IntradayPrice, KeyMetrics, ListEndpoints, MAX_LIMIT, MarketCap, MarketEndpoints, MarketHours, MarketIndex, MarketPerformance, MarketSectorPerformance, MutualFundEndpoints, MutualFundHolding, News, NewsEndpoints, PERIODS, PriceTargetConsensus, PriceTargetSummary, Quote, QuoteEndpoints, RSSFeed8KItem, RSSFeedAllItem, RSSFeedItem, RSSFeedV3Item, SECEndpoints, SECFiling, SECTORS, Screener, ScreenerEndpoints, ScreenerParams, SearchEndpoints, SearchResult, SenateHouseEndpoints, SenateHouseTradingByNameResponse, SenateTradingResponse, SharesFloat, SplitsCalendar, StockDividendResponse, StockEndpoints, StockGrade, StockList, StockRealTimePrice, StockRealTimePriceFull, StockSplitResponse, TechnicalEndpoints, TechnicalIndicator, TransactionType, TransactionTypesResponse, TreasuryRate, ValuationEndpoints, classifyError, formatCurrency, formatDate, formatLargeNumber, formatPercentage, formatVolume };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var v=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var v__default=/*#__PURE__*/_interopDefault(v);var k=[/exclusive endpoint/i,/not available under your current/i,/premium/i,/special endpoint/i,/upgrade your plan/i];function F(n,e){let t=e?.trim()||"Unknown error occurred",r=k.some(s=>s.test(t));return n===429?{errorType:"rate-limit",message:`FMP rate limit reached: ${t}`}:n===401?{errorType:"auth",message:`FMP authentication failed (check your FMP_API_KEY): ${t}`}:n===402||n===403||r?{errorType:"plan-restricted",message:`This endpoint is not available on your current FMP plan. (${n}: ${t})`}:n===404?{errorType:"not-found",message:`Not found: ${t}`}:n===400?{errorType:"bad-request",message:`Invalid request: ${t}`}:n===0?{errorType:"network",message:`Network error: ${t}`}:{errorType:"unknown",message:t}}function w(n){return Array.isArray(n)&&n.length===1?n[0]:n}function D(n){return Array.isArray(n)?n:n??[]}function N(n){return n==null?{}:Array.isArray(n)&&n.length===0?{}:n}var c=class{constructor(e){if(!e.apiKey)throw new Error("API key is required for FMPClient");this.apiKey=e.apiKey,this.v3Client=v__default.default.create({baseURL:"https://financialmodelingprep.com/api/v3",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.v4Client=v__default.default.create({baseURL:"https://financialmodelingprep.com/api/v4",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.stableClient=v__default.default.create({baseURL:"https://financialmodelingprep.com/stable",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),[this.v3Client,this.v4Client,this.stableClient].forEach(t=>{t.interceptors.request.use(r=>(r.params={...r.params,apikey:this.apiKey},r));});}async get(e,t="v3",r){let s=this.getClientForVersion(t);try{let i=await s.get(e,{params:r}),o=i.data;return (Array.isArray(o)||o==null)&&(o=D(o)),{success:!0,data:o,error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}async getSingle(e,t="v3",r){let s=this.getClientForVersion(t);try{let i=await s.get(e,{params:r});return {success:!0,data:N(w(i.data)),error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}buildErrorResponse(e){let t=e?.response?.data,r=t&&typeof t=="object"?t["Error Message"]??t.message??null:typeof t=="string"?t:null,s=e?.response?.status??0,{errorType:i,message:o}=F(s,r||e?.message||"");return {success:false,data:null,error:o,errorType:i,status:s||500}}getClientForVersion(e){switch(e){case "v3":return this.v3Client;case "v4":return this.v4Client;case "stable":return this.stableClient;default:return this.v3Client}}};var m=class{static isValidSymbol(e){return !e||typeof e!="string"?false:/^[A-Z]{1,5}$/.test(e)}static isValidCryptoSymbol(e){return !e||typeof e!="string"?false:/^[A-Z]{2,10}(USD|EUR|GBP|JPY|CAD|AUD|CHF|CNY)$/.test(e)}static isValidForexPair(e){return !e||typeof e!="string"?false:/^[A-Z]{3}[A-Z]{3}$/.test(e)}static isValidDate(e){if(!e||typeof e!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(e))return false;let r=new Date(e);return !isNaN(r.getTime())&&r.toISOString().split("T")[0]===e}static isValidDateRange(e,t){if(!this.isValidDate(e)||!this.isValidDate(t))return false;let r=new Date(e),s=new Date(t);return r<=s}static isValidResponse(e){return !!(e&&typeof e=="object"&&typeof e.success=="boolean")}static isValidApiKey(e){return !e||typeof e!="string"?false:/^[a-zA-Z0-9]{32,}$/.test(e)}static isValidPeriod(e){return !e||typeof e!="string"?false:["annual","quarter","fy"].includes(e.toLowerCase())}static isValidLimit(e){return typeof e=="number"&&Number.isInteger(e)&&e>0&&e<=1e3}static validateQuoteParams(e){let t=[];return e?(e.symbol?!this.isValidSymbol(e.symbol)&&!this.isValidCryptoSymbol(e.symbol)&&!this.isValidForexPair(e.symbol)&&t.push("Invalid symbol format"):t.push("Symbol is required"),e.from&&!this.isValidDate(e.from)&&t.push("Invalid from date format (expected YYYY-MM-DD)"),e.to&&!this.isValidDate(e.to)&&t.push("Invalid to date format (expected YYYY-MM-DD)"),e.from&&e.to&&!this.isValidDateRange(e.from,e.to)&&t.push("From date must be before or equal to to date"),t):(t.push("Parameters object is required"),t)}static validateFinancialParams(e){let t=[];return e?(e.symbol?this.isValidSymbol(e.symbol)||t.push("Invalid symbol format"):t.push("Symbol is required"),e.period&&!this.isValidPeriod(e.period)&&t.push('Invalid period (must be "annual", "quarter", or "FY")'),e.limit&&!this.isValidLimit(e.limit)&&t.push("Invalid limit (must be a positive integer <= 1000)"),t):(t.push("Parameters object is required"),t)}static validateDateRangeParams(e){let t=[];return e?(e.from&&!this.isValidDate(e.from)&&t.push("Invalid from date format (expected YYYY-MM-DD)"),e.to&&!this.isValidDate(e.to)&&t.push("Invalid to date format (expected YYYY-MM-DD)"),e.from&&e.to&&!this.isValidDateRange(e.from,e.to)&&t.push("From date must be before or equal to to date"),t):(t.push("Parameters object is required"),t)}static throwIfInvalid(e,t="Validation"){if(e.length>0)throw new Error(`${t} failed: ${e.join(", ")}`)}};var p=class{constructor(e){this._client=e;}async getEarningsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/earning_calendar","v3",s)}async getEarningsConfirmed(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/earning-calendar-confirmed","v4",s)}async getDividendsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/stock_dividend_calendar","v3",s)}async getEconomicsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/economic_calendar","v3",s)}async getIPOCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/ipo_calendar","v3",s)}async getSplitsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/stock_split_calendar","v3",s)}};var g=class{constructor(e){this.client=e;}async getCompanyProfile(e){return this.client.getSingle("/profile","stable",{symbol:e})}async getExecutiveCompensation(e){return this.client.get("/governance-executive-compensation","stable",{symbol:e})}async getCompanyNotes(e){return this.client.get("/company-notes","stable",{symbol:e})}async getHistoricalEmployeeCount(e){return this.client.get("/historical-employee-count","stable",{symbol:e})}async getSharesFloat(e){return this.client.getSingle("/shares-float","stable",{symbol:e})}async getHistoricalSharesFloat(e){return this.client.get("/historical/shares_float","v4",{symbol:e})}async getEarningsCallTranscript(e){let{symbol:t,year:r,quarter:s}=e;return this.client.getSingle(`/earning_call_transcript/${t}`,"v3",{year:r,quarter:s})}async getCompanyTranscriptData(e){return this.client.getSingle("/earning_call_transcript","v4",{symbol:e})}};var u=class{constructor(e){this.client=e;}async getTreasuryRates(e){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this.client.get("/treasury-rates","stable",s)}async getEconomicIndicators(e){let{name:t,from:r,to:s}=e,i={name:t};return r&&(i.from=r),s&&(i.to=s),this.client.get("/economic-indicators","stable",i)}};var d=class{constructor(e){this.client=e;}async getHoldingDates(e){return this.client.get("/etf-holdings/portfolio-date","v4",{symbol:e})}async getHoldings(e){let{symbol:t,date:r}=e,s={};return t&&(s.symbol=t),r&&(s.date=r),this.client.get("/etf-holdings","v4",s)}async getHolder(e){return this.client.get(`/etf-holder/${e}`,"v3")}async getProfile(e){return this.client.getSingle("/etf/info","stable",{symbol:e})}async getSectorWeighting(e){return this.client.get("/etf/sector-weightings","stable",{symbol:e})}async getCountryWeighting(e){return this.client.get("/etf/country-weightings","stable",{symbol:e})}async getStockExposure(e){return this.client.get(`/etf-stock-exposure/${e}`,"v3")}};var y=class{constructor(e){this.client=e;}async getIncomeStatement(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/income-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getBalanceSheet(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/balance-sheet-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getCashFlowStatement(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/cash-flow-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getKeyMetrics(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/key-metrics?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getFinancialRatios(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/ratios?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getEnterpriseValue(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/enterprise-values?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getCashflowGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/cash-flow-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getIncomeGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/income-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getBalanceSheetGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/balance-sheet-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getFinancialGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/financial-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getEarningsHistorical(e){let{symbol:t,limit:r=5}=e;return this.client.get(`/earnings?symbol=${t}&limit=${r}`,"stable")}async getEarningsSurprises(e){return this.client.get(`/earnings-surprises/${e}`,"v3")}};var f=class{constructor(e){this.client=e;}async getInsiderTradingRSS(e){let{page:t=0,limit:r=100}=e;return this.client.get("/insider-trading/latest","stable",{page:t,limit:r})}async searchInsiderTrading(e){let{symbol:t,reportingCik:r,companyCik:s,transactionType:i,page:o=0,limit:a=100}=e,l={page:o,limit:a};return t&&(l.symbol=t),r&&(l.reportingCik=r),s&&(l.companyCik=s),i&&(l.transactionType=i),this.client.get("/insider-trading/search","stable",l)}async getTransactionTypes(){return this.client.get("/insider-trading-transaction-type","stable")}async getInsidersBySymbol(e){let{symbol:t}=e;return this.client.get("/insider-roaster","v4",{symbol:t})}async getInsiderTradeStatistics(e){let{symbol:t}=e;return this.client.get("/insider-trading/statistics","stable",{symbol:t})}async getCikMapper(e){let{page:t=0}=e;return this.client.get("/mapper-cik-name","v4",{page:t})}async getCikMapperByName(e){let{name:t,page:r=0}=e;return this.client.get("/mapper-cik-name","v4",{name:t,page:r})}async getCikMapperBySymbol(e){let{symbol:t}=e;return this.client.getSingle(`/mapper-cik-company/${t}`,"v4")}async getBeneficialOwnership(e){let{symbol:t,limit:r=100}=e;return this.client.get("/acquisition-of-beneficial-ownership","stable",{symbol:t,limit:r})}async getFailToDeliver(e){let{symbol:t,page:r=0}=e;return this.client.get("/fail_to_deliver","v4",{symbol:t,page:r})}async getInsiderTradesBySymbol(e,t=0){return this.searchInsiderTrading({symbol:e,page:t})}async getInsiderTradesByType(e,t=0){return this.searchInsiderTrading({transactionType:e,page:t})}async getInsiderTradesByReportingCik(e,t=0){return this.searchInsiderTrading({reportingCik:e,page:t})}async getInsiderTradesByCompanyCik(e,t=0){return this.searchInsiderTrading({companyCik:e,page:t})}};var P=class{constructor(e){this.client=e;}async getForm13F(e){let{cik:t,date:r}=e,s={};return r&&(s.date=r),this.client.get(`/form-thirteen/${t}`,"v3",s)}async getForm13FDates(e){let{cik:t}=e;return this.client.get(`/form-thirteen-date/${t}`,"v3")}async getInstitutionalHolders(e){let{symbol:t}=e;return this.client.get(`/institutional-holder/${t}`,"v3")}};var b=class{constructor(e){this.client=e;}async getStockList(){return this.client.get("/stock/list")}async getETFList(){return this.client.get("/etf/list")}async getCryptoList(){return this.client.get("/symbol/available-cryptocurrencies")}async getForexList(){return this.client.get("/symbol/available-forex-currency-pairs")}async getAvailableIndexes(){return this.client.get("/symbol/available-indexes")}};var h=class{constructor(e){this.client=e;}async getMarketHours(){return this.client.get("/market-hours","v3")}async getMarketPerformance(){return this.client.get("/quotes/index","v3")}async getGainers(){return this.client.get("/biggest-gainers","stable")}async getLosers(){return this.client.get("/biggest-losers","stable")}async getMostActive(){return this.client.get("/most-actives","stable")}async getSectorPerformance(){return this.client.get("/sector-performance","v3")}async getMarketIndex(){return this.client.get("/quotes/index","v3")}};var R=class{constructor(e){this.client=e;}async getHolders(e){return this.client.get(`/mutual-fund-holder/${e}`,"v3")}};var I=class{constructor(e){this.client=e;}async getArticles(e={}){let{page:t=1,limit:r=100}=e;return this.client.get("/fmp-articles","stable",{page:t,limit:r})}async getStockNews(e={}){let{from:t,to:r,page:s=1,limit:i=100}=e,o={page:s,limit:i};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/stock-latest","stable",o)}async getCryptoNews(e={}){let{from:t,to:r,page:s=1,limit:i=100}=e,o={page:s,limit:i};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/crypto-latest","stable",o)}async getForexNews(e={}){let{from:t,to:r,page:s=1,limit:i=100}=e,o={page:s,limit:i};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/forex-latest","stable",o)}async getStockNewsBySymbol(e){let{symbols:t,from:r,to:s,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/stock?symbols=${a}`,"stable",l)}async getCryptoNewsBySymbol(e){let{symbols:t,from:r,to:s,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/crypto?symbols=${a}`,"stable",l)}async getForexNewsBySymbol(e){let{symbols:t,from:r,to:s,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/forex?symbols=${a}`,"stable",l)}};var A=class{constructor(e){this.client=e;}async getQuote(e){return this.client.getSingle(`/quote/${e}`,"v3")}async getHistoricalPrice(e){let{symbol:t,from:r,to:s}=e,i={};return r&&(i.from=r),s&&(i.to=s),this.client.getSingle(`/historical-price-full/${t}`,"v3",i)}async getQuotes(e){let t=e.join(",");return this.client.get(`/quote/${t}`,"v3")}async getIntraday(e){let{symbol:t,interval:r,from:s,to:i}=e,o={};return s&&(o.from=s),i&&(o.to=i),this.client.get(`/historical-chart/${r}/${t}`,"v3",o)}};var S=class{constructor(e){this.client=e;}async getScreener(e){return this.client.get("/company-screener","stable",e)}async getAvailableExchanges(){return this.client.get("/available-exchanges","stable")}async getAvailableSectors(){return this.client.get("/available-sectors","stable")}async getAvailableIndustries(){return this.client.get("/available-industries","stable")}async getAvailableCountries(){return this.client.get("/available-countries","stable")}};var C=class{constructor(e){this.client=e;}async getRSSFeed(e){return this.client.get("/rss_feed","v4",e)}async getRSSFeedAll(e){return this.client.get("/rss_feed_all","v4",e)}async getRSSFeedV3(e){return this.client.get("/rss_feed","v3",e)}async getRSSFeed8K(e){return this.client.get("/rss_feed_8k","v4",e)}async getSECFilings({symbol:e,params:t}){return this.client.get(`/sec_filings/${e}`,"v3",t)}async getIndividualIndustryClassification(e){return this.client.getSingle("/standard_industrial_classification","v4",e)}async getAllIndustryClassifications(){return this.client.get("/standard_industrial_classification/all","v4")}async getIndustryClassificationCodes(e){return this.client.get("/standard_industrial_classification_list","v4",e)}};var E=class{constructor(e){this.client=e;}async getSenateTrading(e){let{symbol:t}=e;return this.client.get("/senate-trades","stable",{symbol:t})}async getSenateTradingRSSFeed(e){let{page:t,limit:r}=e;return this.client.get("/senate-latest","stable",{page:t,limit:r??100})}async getSenateTradingByName(e){let{name:t}=e;return this.client.get("/senate-trades-by-name","stable",{name:t})}async getHouseTrading(e){let{symbol:t}=e;return this.client.get("/house-trades","stable",{symbol:t})}async getHouseTradingRSSFeed(e){let{page:t,limit:r}=e;return this.client.get("/house-latest","stable",{page:t,limit:r??100})}async getHouseTradingByName(e){let{name:t}=e;return this.client.get("/house-trades-by-name","stable",{name:t})}};var T=class{constructor(e){this.client=e;}async getMarketCap(e){return this.client.getSingle(`/market-capitalization/${e}`,"v3")}async getStockSplits(e){return this.client.get(`/historical-price-full/stock_split/${e}`,"v3")}async getDividendHistory(e){return this.client.getSingle(`/historical-price-full/stock_dividend/${e}`,"v3")}async getRealTimePrice(e){let t=`stock/real-time-price/${e.join(",")}`,r=await this.client.get(t,"v3");if(r.success&&r.data&&!Array.isArray(r.data)){let i=r.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}return i.symbol?{...r,data:[i]}:(e.length===1&&console.warn(`No real-time price data found for symbol: ${e[0]}`),{...r,data:[]})}let s=r.data.filter(i=>i&&i.symbol);return {...r,data:s}}async getRealTimePriceForMultipleStocks(e){let t=`stock/full/real-time-price/${e.join(",")}`,r=await this.client.get(t,"v3");if(r.success&&r.data&&!Array.isArray(r.data)){let i=r.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}return i.symbol?{...r,data:[i]}:(e.length===1&&console.warn(`No full real-time price data found for symbol: ${e[0]}`),{...r,data:[]})}let s=r.data.filter(i=>i&&i.symbol);return {...r,data:s}}};var M=class{constructor(e={}){let t=e.apiKey||process.env.FMP_API_KEY;if(!t)throw new Error("FMP API key is required. Please provide it in the config or set the FMP_API_KEY environment variable.");if(!m.isValidApiKey(t))throw new Error("Invalid API key format");let r=new c({...e,apiKey:t});this.calendar=new p(r),this.company=new g(r),this.economic=new u(r),this.etf=new d(r),this.financial=new y(r),this.insider=new f(r),this.institutional=new P(r),this.list=new b(r),this.market=new h(r),this.mutualFund=new R(r),this.news=new I(r),this.quote=new A(r),this.screener=new S(r),this.sec=new C(r),this.senateHouse=new E(r),this.stock=new T(r);}getClient(){return this.stock.client}};function $(n,e="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e}).format(n)}function L(n,e=2){return `${n.toFixed(e)}%`}function _(n){return n>=1e12?`${(n/1e12).toFixed(2)}T`:n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}function q(n){return (typeof n=="string"?new Date(n):n).toISOString().split("T")[0]}function H(n){return n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}var U=1e4,O=100,V=1e3,B={ANNUAL:"annual",QUARTER:"quarter"},Y={NYSE:"NYSE",NASDAQ:"NASDAQ",AMEX:"AMEX",TSX:"TSX",LSE:"LSE",ASX:"ASX",NSE:"NSE",BSE:"BSE"},G={TECHNOLOGY:"Technology",HEALTHCARE:"Healthcare",FINANCIAL:"Financial",CONSUMER_DISCRETIONARY:"Consumer Discretionary",CONSUMER_STAPLES:"Consumer Staples",INDUSTRIALS:"Industrials",ENERGY:"Energy",MATERIALS:"Materials",UTILITIES:"Utilities",REAL_ESTATE:"Real Estate",COMMUNICATION_SERVICES:"Communication Services"};var x=class extends Error{constructor(t,r,s){super(t);this.status=r;this.code=s;this.name="FMPError";}};
2
- exports.CalendarEndpoints=p;exports.CompanyEndpoints=g;exports.DEFAULT_LIMIT=O;exports.DEFAULT_TIMEOUT=U;exports.ETFEndpoints=d;exports.EXCHANGES=Y;exports.EconomicEndpoints=u;exports.FMP=M;exports.FMPClient=c;exports.FMPError=x;exports.FMPValidation=m;exports.FinancialEndpoints=y;exports.InsiderEndpoints=f;exports.InstitutionalEndpoints=P;exports.ListEndpoints=b;exports.MAX_LIMIT=V;exports.MarketEndpoints=h;exports.MutualFundEndpoints=R;exports.NewsEndpoints=I;exports.PERIODS=B;exports.QuoteEndpoints=A;exports.SECEndpoints=C;exports.SECTORS=G;exports.ScreenerEndpoints=S;exports.SenateHouseEndpoints=E;exports.StockEndpoints=T;exports.classifyError=F;exports.formatCurrency=$;exports.formatDate=q;exports.formatLargeNumber=_;exports.formatPercentage=L;exports.formatVolume=H;
1
+ 'use strict';var w=require('axios');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var w__default=/*#__PURE__*/_interopDefault(w);var $=[/exclusive endpoint/i,/not available under your current/i,/premium/i,/special endpoint/i,/upgrade your plan/i];function k(n,e){let t=e?.trim()||"Unknown error occurred",s=$.some(r=>r.test(t));return n===429?{errorType:"rate-limit",message:`FMP rate limit reached: ${t}`}:n===401?{errorType:"auth",message:`FMP authentication failed (check your FMP_API_KEY): ${t}`}:n===402||n===403||s?{errorType:"plan-restricted",message:`This endpoint is not available on your current FMP plan. (${n}: ${t})`}:n===404?{errorType:"not-found",message:`Not found: ${t}`}:n===400?{errorType:"bad-request",message:`Invalid request: ${t}`}:n===0?{errorType:"network",message:`Network error: ${t}`}:{errorType:"unknown",message:t}}function N(n){return Array.isArray(n)&&n.length===1?n[0]:n}function _(n){return Array.isArray(n)?n:n??[]}function q(n){return n==null?{}:Array.isArray(n)&&n.length===0?{}:n}var c=class{constructor(e){if(!e.apiKey)throw new Error("API key is required for FMPClient");this.apiKey=e.apiKey,this.v3Client=w__default.default.create({baseURL:"https://financialmodelingprep.com/api/v3",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.v4Client=w__default.default.create({baseURL:"https://financialmodelingprep.com/api/v4",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.stableClient=w__default.default.create({baseURL:"https://financialmodelingprep.com/stable",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),[this.v3Client,this.v4Client,this.stableClient].forEach(t=>{t.interceptors.request.use(s=>(s.params={...s.params,apikey:this.apiKey},s));});}async get(e,t="v3",s){let r=this.getClientForVersion(t);try{let i=await r.get(e,{params:s}),o=i.data;return (Array.isArray(o)||o==null)&&(o=_(o)),{success:!0,data:o,error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}async getSingle(e,t="v3",s){let r=this.getClientForVersion(t);try{let i=await r.get(e,{params:s});return {success:!0,data:q(N(i.data)),error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}buildErrorResponse(e){let t=e?.response?.data,s=t&&typeof t=="object"?t["Error Message"]??t.message??null:typeof t=="string"?t:null,r=e?.response?.status??0,{errorType:i,message:o}=k(r,s||e?.message||"");return {success:false,data:null,error:o,errorType:i,status:r||500}}getClientForVersion(e){switch(e){case "v3":return this.v3Client;case "v4":return this.v4Client;case "stable":return this.stableClient;default:return this.v3Client}}};var m=class{static isValidSymbol(e){return !e||typeof e!="string"?false:/^[A-Z]{1,5}$/.test(e)}static isValidCryptoSymbol(e){return !e||typeof e!="string"?false:/^[A-Z]{2,10}(USD|EUR|GBP|JPY|CAD|AUD|CHF|CNY)$/.test(e)}static isValidForexPair(e){return !e||typeof e!="string"?false:/^[A-Z]{3}[A-Z]{3}$/.test(e)}static isValidDate(e){if(!e||typeof e!="string"||!/^\d{4}-\d{2}-\d{2}$/.test(e))return false;let s=new Date(e);return !isNaN(s.getTime())&&s.toISOString().split("T")[0]===e}static isValidDateRange(e,t){if(!this.isValidDate(e)||!this.isValidDate(t))return false;let s=new Date(e),r=new Date(t);return s<=r}static isValidResponse(e){return !!(e&&typeof e=="object"&&typeof e.success=="boolean")}static isValidApiKey(e){return !e||typeof e!="string"?false:/^[a-zA-Z0-9]{32,}$/.test(e)}static isValidPeriod(e){return !e||typeof e!="string"?false:["annual","quarter","fy"].includes(e.toLowerCase())}static isValidLimit(e){return typeof e=="number"&&Number.isInteger(e)&&e>0&&e<=1e3}static validateQuoteParams(e){let t=[];return e?(e.symbol?!this.isValidSymbol(e.symbol)&&!this.isValidCryptoSymbol(e.symbol)&&!this.isValidForexPair(e.symbol)&&t.push("Invalid symbol format"):t.push("Symbol is required"),e.from&&!this.isValidDate(e.from)&&t.push("Invalid from date format (expected YYYY-MM-DD)"),e.to&&!this.isValidDate(e.to)&&t.push("Invalid to date format (expected YYYY-MM-DD)"),e.from&&e.to&&!this.isValidDateRange(e.from,e.to)&&t.push("From date must be before or equal to to date"),t):(t.push("Parameters object is required"),t)}static validateFinancialParams(e){let t=[];return e?(e.symbol?this.isValidSymbol(e.symbol)||t.push("Invalid symbol format"):t.push("Symbol is required"),e.period&&!this.isValidPeriod(e.period)&&t.push('Invalid period (must be "annual", "quarter", or "FY")'),e.limit&&!this.isValidLimit(e.limit)&&t.push("Invalid limit (must be a positive integer <= 1000)"),t):(t.push("Parameters object is required"),t)}static validateDateRangeParams(e){let t=[];return e?(e.from&&!this.isValidDate(e.from)&&t.push("Invalid from date format (expected YYYY-MM-DD)"),e.to&&!this.isValidDate(e.to)&&t.push("Invalid to date format (expected YYYY-MM-DD)"),e.from&&e.to&&!this.isValidDateRange(e.from,e.to)&&t.push("From date must be before or equal to to date"),t):(t.push("Parameters object is required"),t)}static throwIfInvalid(e,t="Validation"){if(e.length>0)throw new Error(`${t} failed: ${e.join(", ")}`)}};var p=class{constructor(e){this._client=e;}async getEarningsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/earning_calendar","v3",r)}async getEarningsConfirmed(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/earning-calendar-confirmed","v4",r)}async getDividendsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/stock_dividend_calendar","v3",r)}async getEconomicsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/economic_calendar","v3",r)}async getIPOCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/ipo_calendar","v3",r)}async getSplitsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/stock_split_calendar","v3",r)}};var g=class{constructor(e){this.client=e;}async getCompanyProfile(e){return this.client.getSingle("/profile","stable",{symbol:e})}async getExecutiveCompensation(e){return this.client.get("/governance-executive-compensation","stable",{symbol:e})}async getCompanyNotes(e){return this.client.get("/company-notes","stable",{symbol:e})}async getHistoricalEmployeeCount(e){return this.client.get("/historical-employee-count","stable",{symbol:e})}async getSharesFloat(e){return this.client.getSingle("/shares-float","stable",{symbol:e})}async getHistoricalSharesFloat(e){return this.client.get("/historical/shares_float","v4",{symbol:e})}async getEarningsCallTranscript(e){let{symbol:t,year:s,quarter:r}=e;return this.client.getSingle(`/earning_call_transcript/${t}`,"v3",{year:s,quarter:r})}async getCompanyTranscriptData(e){return this.client.getSingle("/earning_call_transcript","v4",{symbol:e})}};var u=class{constructor(e){this.client=e;}async getTreasuryRates(e){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this.client.get("/treasury-rates","stable",r)}async getEconomicIndicators(e){let{name:t,from:s,to:r}=e,i={name:t};return s&&(i.from=s),r&&(i.to=r),this.client.get("/economic-indicators","stable",i)}};var d=class{constructor(e){this.client=e;}async getHoldingDates(e){return this.client.get("/etf-holdings/portfolio-date","v4",{symbol:e})}async getHoldings(e){let{symbol:t,date:s}=e,r={};return t&&(r.symbol=t),s&&(r.date=s),this.client.get("/etf-holdings","v4",r)}async getHolder(e){return this.client.get(`/etf-holder/${e}`,"v3")}async getProfile(e){return this.client.getSingle("/etf/info","stable",{symbol:e})}async getSectorWeighting(e){return this.client.get("/etf/sector-weightings","stable",{symbol:e})}async getCountryWeighting(e){return this.client.get("/etf/country-weightings","stable",{symbol:e})}async getStockExposure(e){return this.client.get(`/etf-stock-exposure/${e}`,"v3")}};var y=class{constructor(e){this.client=e;}async getIncomeStatement(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/income-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getBalanceSheet(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/balance-sheet-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getCashFlowStatement(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/cash-flow-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getKeyMetrics(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/key-metrics?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getFinancialRatios(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/ratios?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getEnterpriseValue(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/enterprise-values?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getCashflowGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/cash-flow-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getIncomeGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/income-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getBalanceSheetGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/balance-sheet-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getFinancialGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/financial-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getEarningsHistorical(e){let{symbol:t,limit:s=5}=e;return this.client.get(`/earnings?symbol=${t}&limit=${s}`,"stable")}async getEarningsSurprises(e){return this.client.get(`/earnings-surprises/${e}`,"v3")}};var f=class{constructor(e){this.client=e;}async getInsiderTradingRSS(e){let{page:t=0,limit:s=100}=e;return this.client.get("/insider-trading/latest","stable",{page:t,limit:s})}async searchInsiderTrading(e){let{symbol:t,reportingCik:s,companyCik:r,transactionType:i,page:o=0,limit:a=100}=e,l={page:o,limit:a};return t&&(l.symbol=t),s&&(l.reportingCik=s),r&&(l.companyCik=r),i&&(l.transactionType=i),this.client.get("/insider-trading/search","stable",l)}async getTransactionTypes(){return this.client.get("/insider-trading-transaction-type","stable")}async getInsidersBySymbol(e){let{symbol:t}=e;return this.client.get("/insider-roaster","v4",{symbol:t})}async getInsiderTradeStatistics(e){let{symbol:t}=e;return this.client.get("/insider-trading/statistics","stable",{symbol:t})}async getCikMapper(e){let{page:t=0}=e;return this.client.get("/mapper-cik-name","v4",{page:t})}async getCikMapperByName(e){let{name:t,page:s=0}=e;return this.client.get("/mapper-cik-name","v4",{name:t,page:s})}async getCikMapperBySymbol(e){let{symbol:t}=e;return this.client.getSingle(`/mapper-cik-company/${t}`,"v4")}async getBeneficialOwnership(e){let{symbol:t,limit:s=100}=e;return this.client.get("/acquisition-of-beneficial-ownership","stable",{symbol:t,limit:s})}async getFailToDeliver(e){let{symbol:t,page:s=0}=e;return this.client.get("/fail_to_deliver","v4",{symbol:t,page:s})}async getInsiderTradesBySymbol(e,t=0){return this.searchInsiderTrading({symbol:e,page:t})}async getInsiderTradesByType(e,t=0){return this.searchInsiderTrading({transactionType:e,page:t})}async getInsiderTradesByReportingCik(e,t=0){return this.searchInsiderTrading({reportingCik:e,page:t})}async getInsiderTradesByCompanyCik(e,t=0){return this.searchInsiderTrading({companyCik:e,page:t})}};var P=class{constructor(e){this.client=e;}async getForm13F(e){let{cik:t,date:s}=e,r={};return s&&(r.date=s),this.client.get(`/form-thirteen/${t}`,"v3",r)}async getForm13FDates(e){let{cik:t}=e;return this.client.get(`/form-thirteen-date/${t}`,"v3")}async getInstitutionalHolders(e){let{symbol:t}=e;return this.client.get(`/institutional-holder/${t}`,"v3")}};var b=class{constructor(e){this.client=e;}async getStockList(){return this.client.get("/stock/list")}async getETFList(){return this.client.get("/etf/list")}async getCryptoList(){return this.client.get("/symbol/available-cryptocurrencies")}async getForexList(){return this.client.get("/symbol/available-forex-currency-pairs")}async getAvailableIndexes(){return this.client.get("/symbol/available-indexes")}};var h=class{constructor(e){this.client=e;}async getMarketHours(){return this.client.get("/market-hours","v3")}async getMarketPerformance(){return this.client.get("/quotes/index","v3")}async getGainers(){return this.client.get("/biggest-gainers","stable")}async getLosers(){return this.client.get("/biggest-losers","stable")}async getMostActive(){return this.client.get("/most-actives","stable")}async getSectorPerformance(){return this.client.get("/sector-performance","v3")}async getMarketIndex(){return this.client.get("/quotes/index","v3")}};var R=class{constructor(e){this.client=e;}async getHolders(e){return this.client.get(`/mutual-fund-holder/${e}`,"v3")}};var I=class{constructor(e){this.client=e;}async getArticles(e={}){let{page:t=1,limit:s=100}=e;return this.client.get("/fmp-articles","stable",{page:t,limit:s})}async getStockNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/stock-latest","stable",o)}async getCryptoNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/crypto-latest","stable",o)}async getForexNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/forex-latest","stable",o)}async getStockNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/stock?symbols=${a}`,"stable",l)}async getCryptoNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/crypto?symbols=${a}`,"stable",l)}async getForexNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/forex?symbols=${a}`,"stable",l)}};var A=class{constructor(e){this.client=e;}async getQuote(e){return this.client.getSingle(`/quote/${e}`,"v3")}async getHistoricalPrice(e){let{symbol:t,from:s,to:r}=e,i={};return s&&(i.from=s),r&&(i.to=r),this.client.getSingle(`/historical-price-full/${t}`,"v3",i)}async getQuotes(e){let t=e.join(",");return this.client.get(`/quote/${t}`,"v3")}async getIntraday(e){let{symbol:t,interval:s,from:r,to:i}=e,o={};return r&&(o.from=r),i&&(o.to=i),this.client.get(`/historical-chart/${s}/${t}`,"v3",o)}};var S=class{constructor(e){this.client=e;}async getScreener(e){return this.client.get("/company-screener","stable",e)}async getAvailableExchanges(){return this.client.get("/available-exchanges","stable")}async getAvailableSectors(){return this.client.get("/available-sectors","stable")}async getAvailableIndustries(){return this.client.get("/available-industries","stable")}async getAvailableCountries(){return this.client.get("/available-countries","stable")}};var C=class{constructor(e){this.client=e;}async search(e){let{query:t,limit:s,exchange:r}=e;return this.client.get("/search","v3",{query:t,limit:s,exchange:r})}};var T=class{constructor(e){this.client=e;}async getEstimates(e){let{symbol:t,period:s,limit:r}=e;return this.client.get("/analyst-estimates","stable",{symbol:t,period:s,limit:r})}async getPriceTargetConsensus(e){return this.client.getSingle("/price-target-consensus","stable",{symbol:e.symbol})}async getPriceTargetSummary(e){return this.client.getSingle("/price-target-summary","stable",{symbol:e.symbol})}async getGrades(e){return this.client.get("/grades","stable",{symbol:e.symbol})}};var E=class{constructor(e){this.client=e;}async getDiscountedCashFlow(e){return this.client.getSingle("/discounted-cash-flow","stable",{symbol:e.symbol})}async getRatingSnapshot(e){return this.client.getSingle("/ratings-snapshot","stable",{symbol:e.symbol})}async getHistoricalRating(e){let{symbol:t,limit:s}=e;return this.client.get("/ratings-historical","stable",{symbol:t,limit:s})}};var F=class{constructor(e){this.client=e;}async getTechnicalIndicator(e){let{symbol:t,type:s,periodLength:r,timeframe:i}=e;return this.client.get(`/technical-indicators/${s}`,"stable",{symbol:t,periodLength:r,timeframe:i})}};var v=class{constructor(e){this.client=e;}async getRSSFeed(e){return this.client.get("/rss_feed","v4",e)}async getRSSFeedAll(e){return this.client.get("/rss_feed_all","v4",e)}async getRSSFeedV3(e){return this.client.get("/rss_feed","v3",e)}async getRSSFeed8K(e){return this.client.get("/rss_feed_8k","v4",e)}async getSECFilings({symbol:e,params:t}){return this.client.get(`/sec_filings/${e}`,"v3",t)}async getIndividualIndustryClassification(e){return this.client.getSingle("/standard_industrial_classification","v4",e)}async getAllIndustryClassifications(){return this.client.get("/standard_industrial_classification/all","v4")}async getIndustryClassificationCodes(e){return this.client.get("/standard_industrial_classification_list","v4",e)}};var x=class{constructor(e){this.client=e;}async getSenateTrading(e){let{symbol:t}=e;return this.client.get("/senate-trades","stable",{symbol:t})}async getSenateTradingRSSFeed(e){let{page:t,limit:s}=e;return this.client.get("/senate-latest","stable",{page:t,limit:s??100})}async getSenateTradingByName(e){let{name:t}=e;return this.client.get("/senate-trades-by-name","stable",{name:t})}async getHouseTrading(e){let{symbol:t}=e;return this.client.get("/house-trades","stable",{symbol:t})}async getHouseTradingRSSFeed(e){let{page:t,limit:s}=e;return this.client.get("/house-latest","stable",{page:t,limit:s??100})}async getHouseTradingByName(e){let{name:t}=e;return this.client.get("/house-trades-by-name","stable",{name:t})}};var M=class{constructor(e){this.client=e;}async getMarketCap(e){return this.client.getSingle(`/market-capitalization/${e}`,"v3")}async getStockSplits(e){return this.client.get(`/historical-price-full/stock_split/${e}`,"v3")}async getDividendHistory(e){return this.client.getSingle(`/historical-price-full/stock_dividend/${e}`,"v3")}async getRealTimePrice(e){let t=`stock/real-time-price/${e.join(",")}`,s=await this.client.get(t,"v3");if(s.success&&s.data&&!Array.isArray(s.data)){let i=s.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}return i.symbol?{...s,data:[i]}:(e.length===1&&console.warn(`No real-time price data found for symbol: ${e[0]}`),{...s,data:[]})}let r=s.data.filter(i=>i&&i.symbol);return {...s,data:r}}async getRealTimePriceForMultipleStocks(e){let t=`stock/full/real-time-price/${e.join(",")}`,s=await this.client.get(t,"v3");if(s.success&&s.data&&!Array.isArray(s.data)){let i=s.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}return i.symbol?{...s,data:[i]}:(e.length===1&&console.warn(`No full real-time price data found for symbol: ${e[0]}`),{...s,data:[]})}let r=s.data.filter(i=>i&&i.symbol);return {...s,data:r}}};var D=class{constructor(e={}){let t=e.apiKey||process.env.FMP_API_KEY;if(!t)throw new Error("FMP API key is required. Please provide it in the config or set the FMP_API_KEY environment variable.");if(!m.isValidApiKey(t))throw new Error("Invalid API key format");let s=new c({...e,apiKey:t});this.calendar=new p(s),this.company=new g(s),this.economic=new u(s),this.etf=new d(s),this.financial=new y(s),this.insider=new f(s),this.institutional=new P(s),this.list=new b(s),this.market=new h(s),this.mutualFund=new R(s),this.news=new I(s),this.quote=new A(s),this.screener=new S(s),this.search=new C(s),this.analyst=new T(s),this.valuation=new E(s),this.technical=new F(s),this.sec=new v(s),this.senateHouse=new x(s),this.stock=new M(s);}getClient(){return this.stock.client}};function H(n,e="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e}).format(n)}function V(n,e=2){return `${n.toFixed(e)}%`}function U(n){return n>=1e12?`${(n/1e12).toFixed(2)}T`:n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}function O(n){return (typeof n=="string"?new Date(n):n).toISOString().split("T")[0]}function B(n){return n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}var Y=1e4,G=100,j=1e3,K={ANNUAL:"annual",QUARTER:"quarter"},Q={NYSE:"NYSE",NASDAQ:"NASDAQ",AMEX:"AMEX",TSX:"TSX",LSE:"LSE",ASX:"ASX",NSE:"NSE",BSE:"BSE"},X={TECHNOLOGY:"Technology",HEALTHCARE:"Healthcare",FINANCIAL:"Financial",CONSUMER_DISCRETIONARY:"Consumer Discretionary",CONSUMER_STAPLES:"Consumer Staples",INDUSTRIALS:"Industrials",ENERGY:"Energy",MATERIALS:"Materials",UTILITIES:"Utilities",REAL_ESTATE:"Real Estate",COMMUNICATION_SERVICES:"Communication Services"};var L=class extends Error{constructor(t,s,r){super(t);this.status=s;this.code=r;this.name="FMPError";}};
2
+ exports.AnalystEndpoints=T;exports.CalendarEndpoints=p;exports.CompanyEndpoints=g;exports.DEFAULT_LIMIT=G;exports.DEFAULT_TIMEOUT=Y;exports.ETFEndpoints=d;exports.EXCHANGES=Q;exports.EconomicEndpoints=u;exports.FMP=D;exports.FMPClient=c;exports.FMPError=L;exports.FMPValidation=m;exports.FinancialEndpoints=y;exports.InsiderEndpoints=f;exports.InstitutionalEndpoints=P;exports.ListEndpoints=b;exports.MAX_LIMIT=j;exports.MarketEndpoints=h;exports.MutualFundEndpoints=R;exports.NewsEndpoints=I;exports.PERIODS=K;exports.QuoteEndpoints=A;exports.SECEndpoints=v;exports.SECTORS=X;exports.ScreenerEndpoints=S;exports.SearchEndpoints=C;exports.SenateHouseEndpoints=x;exports.StockEndpoints=M;exports.TechnicalEndpoints=F;exports.ValuationEndpoints=E;exports.classifyError=k;exports.formatCurrency=H;exports.formatDate=O;exports.formatLargeNumber=U;exports.formatPercentage=V;exports.formatVolume=B;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-RM7ETDL3.mjs';export{a as FMPValidation}from'./chunk-RM7ETDL3.mjs';import v from'axios';var x=[/exclusive endpoint/i,/not available under your current/i,/premium/i,/special endpoint/i,/upgrade your plan/i];function F(i,e){let t=e?.trim()||"Unknown error occurred",r=x.some(s=>s.test(t));return i===429?{errorType:"rate-limit",message:`FMP rate limit reached: ${t}`}:i===401?{errorType:"auth",message:`FMP authentication failed (check your FMP_API_KEY): ${t}`}:i===402||i===403||r?{errorType:"plan-restricted",message:`This endpoint is not available on your current FMP plan. (${i}: ${t})`}:i===404?{errorType:"not-found",message:`Not found: ${t}`}:i===400?{errorType:"bad-request",message:`Invalid request: ${t}`}:i===0?{errorType:"network",message:`Network error: ${t}`}:{errorType:"unknown",message:t}}function w(i){return Array.isArray(i)&&i.length===1?i[0]:i}function D(i){return Array.isArray(i)?i:i??[]}function L(i){return i==null?{}:Array.isArray(i)&&i.length===0?{}:i}var c=class{constructor(e){if(!e.apiKey)throw new Error("API key is required for FMPClient");this.apiKey=e.apiKey,this.v3Client=v.create({baseURL:"https://financialmodelingprep.com/api/v3",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.v4Client=v.create({baseURL:"https://financialmodelingprep.com/api/v4",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.stableClient=v.create({baseURL:"https://financialmodelingprep.com/stable",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),[this.v3Client,this.v4Client,this.stableClient].forEach(t=>{t.interceptors.request.use(r=>(r.params={...r.params,apikey:this.apiKey},r));});}async get(e,t="v3",r){let s=this.getClientForVersion(t);try{let n=await s.get(e,{params:r}),o=n.data;return (Array.isArray(o)||o==null)&&(o=D(o)),{success:!0,data:o,error:null,status:n.status}}catch(n){return this.buildErrorResponse(n)}}async getSingle(e,t="v3",r){let s=this.getClientForVersion(t);try{let n=await s.get(e,{params:r});return {success:!0,data:L(w(n.data)),error:null,status:n.status}}catch(n){return this.buildErrorResponse(n)}}buildErrorResponse(e){let t=e?.response?.data,r=t&&typeof t=="object"?t["Error Message"]??t.message??null:typeof t=="string"?t:null,s=e?.response?.status??0,{errorType:n,message:o}=F(s,r||e?.message||"");return {success:false,data:null,error:o,errorType:n,status:s||500}}getClientForVersion(e){switch(e){case "v3":return this.v3Client;case "v4":return this.v4Client;case "stable":return this.stableClient;default:return this.v3Client}}};var m=class{constructor(e){this._client=e;}async getEarningsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/earning_calendar","v3",s)}async getEarningsConfirmed(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/earning-calendar-confirmed","v4",s)}async getDividendsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/stock_dividend_calendar","v3",s)}async getEconomicsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/economic_calendar","v3",s)}async getIPOCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/ipo_calendar","v3",s)}async getSplitsCalendar(e={}){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this._client.get("/stock_split_calendar","v3",s)}};var p=class{constructor(e){this.client=e;}async getCompanyProfile(e){return this.client.getSingle("/profile","stable",{symbol:e})}async getExecutiveCompensation(e){return this.client.get("/governance-executive-compensation","stable",{symbol:e})}async getCompanyNotes(e){return this.client.get("/company-notes","stable",{symbol:e})}async getHistoricalEmployeeCount(e){return this.client.get("/historical-employee-count","stable",{symbol:e})}async getSharesFloat(e){return this.client.getSingle("/shares-float","stable",{symbol:e})}async getHistoricalSharesFloat(e){return this.client.get("/historical/shares_float","v4",{symbol:e})}async getEarningsCallTranscript(e){let{symbol:t,year:r,quarter:s}=e;return this.client.getSingle(`/earning_call_transcript/${t}`,"v3",{year:r,quarter:s})}async getCompanyTranscriptData(e){return this.client.getSingle("/earning_call_transcript","v4",{symbol:e})}};var g=class{constructor(e){this.client=e;}async getTreasuryRates(e){let{from:t,to:r}=e,s={};return t&&(s.from=t),r&&(s.to=r),this.client.get("/treasury-rates","stable",s)}async getEconomicIndicators(e){let{name:t,from:r,to:s}=e,n={name:t};return r&&(n.from=r),s&&(n.to=s),this.client.get("/economic-indicators","stable",n)}};var u=class{constructor(e){this.client=e;}async getHoldingDates(e){return this.client.get("/etf-holdings/portfolio-date","v4",{symbol:e})}async getHoldings(e){let{symbol:t,date:r}=e,s={};return t&&(s.symbol=t),r&&(s.date=r),this.client.get("/etf-holdings","v4",s)}async getHolder(e){return this.client.get(`/etf-holder/${e}`,"v3")}async getProfile(e){return this.client.getSingle("/etf/info","stable",{symbol:e})}async getSectorWeighting(e){return this.client.get("/etf/sector-weightings","stable",{symbol:e})}async getCountryWeighting(e){return this.client.get("/etf/country-weightings","stable",{symbol:e})}async getStockExposure(e){return this.client.get(`/etf-stock-exposure/${e}`,"v3")}};var d=class{constructor(e){this.client=e;}async getIncomeStatement(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/income-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getBalanceSheet(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/balance-sheet-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getCashFlowStatement(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/cash-flow-statement?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getKeyMetrics(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/key-metrics?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getFinancialRatios(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/ratios?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getEnterpriseValue(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/enterprise-values?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getCashflowGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/cash-flow-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getIncomeGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/income-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getBalanceSheetGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/balance-sheet-statement-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getFinancialGrowth(e){let{symbol:t,period:r="annual",limit:s=5}=e;return this.client.get(`/financial-growth?symbol=${t}&period=${r}&limit=${s}`,"stable")}async getEarningsHistorical(e){let{symbol:t,limit:r=5}=e;return this.client.get(`/earnings?symbol=${t}&limit=${r}`,"stable")}async getEarningsSurprises(e){return this.client.get(`/earnings-surprises/${e}`,"v3")}};var y=class{constructor(e){this.client=e;}async getInsiderTradingRSS(e){let{page:t=0,limit:r=100}=e;return this.client.get("/insider-trading/latest","stable",{page:t,limit:r})}async searchInsiderTrading(e){let{symbol:t,reportingCik:r,companyCik:s,transactionType:n,page:o=0,limit:a=100}=e,l={page:o,limit:a};return t&&(l.symbol=t),r&&(l.reportingCik=r),s&&(l.companyCik=s),n&&(l.transactionType=n),this.client.get("/insider-trading/search","stable",l)}async getTransactionTypes(){return this.client.get("/insider-trading-transaction-type","stable")}async getInsidersBySymbol(e){let{symbol:t}=e;return this.client.get("/insider-roaster","v4",{symbol:t})}async getInsiderTradeStatistics(e){let{symbol:t}=e;return this.client.get("/insider-trading/statistics","stable",{symbol:t})}async getCikMapper(e){let{page:t=0}=e;return this.client.get("/mapper-cik-name","v4",{page:t})}async getCikMapperByName(e){let{name:t,page:r=0}=e;return this.client.get("/mapper-cik-name","v4",{name:t,page:r})}async getCikMapperBySymbol(e){let{symbol:t}=e;return this.client.getSingle(`/mapper-cik-company/${t}`,"v4")}async getBeneficialOwnership(e){let{symbol:t,limit:r=100}=e;return this.client.get("/acquisition-of-beneficial-ownership","stable",{symbol:t,limit:r})}async getFailToDeliver(e){let{symbol:t,page:r=0}=e;return this.client.get("/fail_to_deliver","v4",{symbol:t,page:r})}async getInsiderTradesBySymbol(e,t=0){return this.searchInsiderTrading({symbol:e,page:t})}async getInsiderTradesByType(e,t=0){return this.searchInsiderTrading({transactionType:e,page:t})}async getInsiderTradesByReportingCik(e,t=0){return this.searchInsiderTrading({reportingCik:e,page:t})}async getInsiderTradesByCompanyCik(e,t=0){return this.searchInsiderTrading({companyCik:e,page:t})}};var P=class{constructor(e){this.client=e;}async getForm13F(e){let{cik:t,date:r}=e,s={};return r&&(s.date=r),this.client.get(`/form-thirteen/${t}`,"v3",s)}async getForm13FDates(e){let{cik:t}=e;return this.client.get(`/form-thirteen-date/${t}`,"v3")}async getInstitutionalHolders(e){let{symbol:t}=e;return this.client.get(`/institutional-holder/${t}`,"v3")}};var f=class{constructor(e){this.client=e;}async getStockList(){return this.client.get("/stock/list")}async getETFList(){return this.client.get("/etf/list")}async getCryptoList(){return this.client.get("/symbol/available-cryptocurrencies")}async getForexList(){return this.client.get("/symbol/available-forex-currency-pairs")}async getAvailableIndexes(){return this.client.get("/symbol/available-indexes")}};var b=class{constructor(e){this.client=e;}async getMarketHours(){return this.client.get("/market-hours","v3")}async getMarketPerformance(){return this.client.get("/quotes/index","v3")}async getGainers(){return this.client.get("/biggest-gainers","stable")}async getLosers(){return this.client.get("/biggest-losers","stable")}async getMostActive(){return this.client.get("/most-actives","stable")}async getSectorPerformance(){return this.client.get("/sector-performance","v3")}async getMarketIndex(){return this.client.get("/quotes/index","v3")}};var R=class{constructor(e){this.client=e;}async getHolders(e){return this.client.get(`/mutual-fund-holder/${e}`,"v3")}};var I=class{constructor(e){this.client=e;}async getArticles(e={}){let{page:t=1,limit:r=100}=e;return this.client.get("/fmp-articles","stable",{page:t,limit:r})}async getStockNews(e={}){let{from:t,to:r,page:s=1,limit:n=100}=e,o={page:s,limit:n};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/stock-latest","stable",o)}async getCryptoNews(e={}){let{from:t,to:r,page:s=1,limit:n=100}=e,o={page:s,limit:n};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/crypto-latest","stable",o)}async getForexNews(e={}){let{from:t,to:r,page:s=1,limit:n=100}=e,o={page:s,limit:n};return t&&(o.from=t),r&&(o.to=r),this.client.get("/news/forex-latest","stable",o)}async getStockNewsBySymbol(e){let{symbols:t,from:r,to:s,page:n=1,limit:o=100}=e,a=t.join(","),l={page:n,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/stock?symbols=${a}`,"stable",l)}async getCryptoNewsBySymbol(e){let{symbols:t,from:r,to:s,page:n=1,limit:o=100}=e,a=t.join(","),l={page:n,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/crypto?symbols=${a}`,"stable",l)}async getForexNewsBySymbol(e){let{symbols:t,from:r,to:s,page:n=1,limit:o=100}=e,a=t.join(","),l={page:n,limit:o};return r&&(l.from=r),s&&(l.to=s),this.client.get(`/news/forex?symbols=${a}`,"stable",l)}};var h=class{constructor(e){this.client=e;}async getQuote(e){return this.client.getSingle(`/quote/${e}`,"v3")}async getHistoricalPrice(e){let{symbol:t,from:r,to:s}=e,n={};return r&&(n.from=r),s&&(n.to=s),this.client.getSingle(`/historical-price-full/${t}`,"v3",n)}async getQuotes(e){let t=e.join(",");return this.client.get(`/quote/${t}`,"v3")}async getIntraday(e){let{symbol:t,interval:r,from:s,to:n}=e,o={};return s&&(o.from=s),n&&(o.to=n),this.client.get(`/historical-chart/${r}/${t}`,"v3",o)}};var A=class{constructor(e){this.client=e;}async getScreener(e){return this.client.get("/company-screener","stable",e)}async getAvailableExchanges(){return this.client.get("/available-exchanges","stable")}async getAvailableSectors(){return this.client.get("/available-sectors","stable")}async getAvailableIndustries(){return this.client.get("/available-industries","stable")}async getAvailableCountries(){return this.client.get("/available-countries","stable")}};var S=class{constructor(e){this.client=e;}async getRSSFeed(e){return this.client.get("/rss_feed","v4",e)}async getRSSFeedAll(e){return this.client.get("/rss_feed_all","v4",e)}async getRSSFeedV3(e){return this.client.get("/rss_feed","v3",e)}async getRSSFeed8K(e){return this.client.get("/rss_feed_8k","v4",e)}async getSECFilings({symbol:e,params:t}){return this.client.get(`/sec_filings/${e}`,"v3",t)}async getIndividualIndustryClassification(e){return this.client.getSingle("/standard_industrial_classification","v4",e)}async getAllIndustryClassifications(){return this.client.get("/standard_industrial_classification/all","v4")}async getIndustryClassificationCodes(e){return this.client.get("/standard_industrial_classification_list","v4",e)}};var E=class{constructor(e){this.client=e;}async getSenateTrading(e){let{symbol:t}=e;return this.client.get("/senate-trades","stable",{symbol:t})}async getSenateTradingRSSFeed(e){let{page:t,limit:r}=e;return this.client.get("/senate-latest","stable",{page:t,limit:r??100})}async getSenateTradingByName(e){let{name:t}=e;return this.client.get("/senate-trades-by-name","stable",{name:t})}async getHouseTrading(e){let{symbol:t}=e;return this.client.get("/house-trades","stable",{symbol:t})}async getHouseTradingRSSFeed(e){let{page:t,limit:r}=e;return this.client.get("/house-latest","stable",{page:t,limit:r??100})}async getHouseTradingByName(e){let{name:t}=e;return this.client.get("/house-trades-by-name","stable",{name:t})}};var C=class{constructor(e){this.client=e;}async getMarketCap(e){return this.client.getSingle(`/market-capitalization/${e}`,"v3")}async getStockSplits(e){return this.client.get(`/historical-price-full/stock_split/${e}`,"v3")}async getDividendHistory(e){return this.client.getSingle(`/historical-price-full/stock_dividend/${e}`,"v3")}async getRealTimePrice(e){let t=`stock/real-time-price/${e.join(",")}`,r=await this.client.get(t,"v3");if(r.success&&r.data&&!Array.isArray(r.data)){let n=r.data;if(typeof n=="object"&&n!==null&&"companiesPriceList"in n&&Array.isArray(n.companiesPriceList)){let o=n.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}if(typeof n=="object"&&n!==null&&"stockList"in n&&Array.isArray(n.stockList)){let o=n.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}return n.symbol?{...r,data:[n]}:(e.length===1&&console.warn(`No real-time price data found for symbol: ${e[0]}`),{...r,data:[]})}let s=r.data.filter(n=>n&&n.symbol);return {...r,data:s}}async getRealTimePriceForMultipleStocks(e){let t=`stock/full/real-time-price/${e.join(",")}`,r=await this.client.get(t,"v3");if(r.success&&r.data&&!Array.isArray(r.data)){let n=r.data;if(typeof n=="object"&&n!==null&&"companiesPriceList"in n&&Array.isArray(n.companiesPriceList)){let o=n.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}if(typeof n=="object"&&n!==null&&"stockList"in n&&Array.isArray(n.stockList)){let o=n.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...r,data:o}}return n.symbol?{...r,data:[n]}:(e.length===1&&console.warn(`No full real-time price data found for symbol: ${e[0]}`),{...r,data:[]})}let s=r.data.filter(n=>n&&n.symbol);return {...r,data:s}}};var M=class{constructor(e={}){let t=e.apiKey||process.env.FMP_API_KEY;if(!t)throw new Error("FMP API key is required. Please provide it in the config or set the FMP_API_KEY environment variable.");if(!a.isValidApiKey(t))throw new Error("Invalid API key format");let r=new c({...e,apiKey:t});this.calendar=new m(r),this.company=new p(r),this.economic=new g(r),this.etf=new u(r),this.financial=new d(r),this.insider=new y(r),this.institutional=new P(r),this.list=new f(r),this.market=new b(r),this.mutualFund=new R(r),this.news=new I(r),this.quote=new h(r),this.screener=new A(r),this.sec=new S(r),this.senateHouse=new E(r),this.stock=new C(r);}getClient(){return this.stock.client}};function N(i,e="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e}).format(i)}function _(i,e=2){return `${i.toFixed(e)}%`}function $(i){return i>=1e12?`${(i/1e12).toFixed(2)}T`:i>=1e9?`${(i/1e9).toFixed(2)}B`:i>=1e6?`${(i/1e6).toFixed(2)}M`:i>=1e3?`${(i/1e3).toFixed(2)}K`:i.toString()}function H(i){return (typeof i=="string"?new Date(i):i).toISOString().split("T")[0]}function q(i){return i>=1e9?`${(i/1e9).toFixed(2)}B`:i>=1e6?`${(i/1e6).toFixed(2)}M`:i>=1e3?`${(i/1e3).toFixed(2)}K`:i.toString()}var U=1e4,O=100,B=1e3,G={ANNUAL:"annual",QUARTER:"quarter"},K={NYSE:"NYSE",NASDAQ:"NASDAQ",AMEX:"AMEX",TSX:"TSX",LSE:"LSE",ASX:"ASX",NSE:"NSE",BSE:"BSE"},V={TECHNOLOGY:"Technology",HEALTHCARE:"Healthcare",FINANCIAL:"Financial",CONSUMER_DISCRETIONARY:"Consumer Discretionary",CONSUMER_STAPLES:"Consumer Staples",INDUSTRIALS:"Industrials",ENERGY:"Energy",MATERIALS:"Materials",UTILITIES:"Utilities",REAL_ESTATE:"Real Estate",COMMUNICATION_SERVICES:"Communication Services"};var k=class extends Error{constructor(t,r,s){super(t);this.status=r;this.code=s;this.name="FMPError";}};
2
- export{m as CalendarEndpoints,p as CompanyEndpoints,O as DEFAULT_LIMIT,U as DEFAULT_TIMEOUT,u as ETFEndpoints,K as EXCHANGES,g as EconomicEndpoints,M as FMP,c as FMPClient,k as FMPError,d as FinancialEndpoints,y as InsiderEndpoints,P as InstitutionalEndpoints,f as ListEndpoints,B as MAX_LIMIT,b as MarketEndpoints,R as MutualFundEndpoints,I as NewsEndpoints,G as PERIODS,h as QuoteEndpoints,S as SECEndpoints,V as SECTORS,A as ScreenerEndpoints,E as SenateHouseEndpoints,C as StockEndpoints,F as classifyError,N as formatCurrency,H as formatDate,$ as formatLargeNumber,_ as formatPercentage,q as formatVolume};
1
+ import {a}from'./chunk-RM7ETDL3.mjs';export{a as FMPValidation}from'./chunk-RM7ETDL3.mjs';import w from'axios';var N=[/exclusive endpoint/i,/not available under your current/i,/premium/i,/special endpoint/i,/upgrade your plan/i];function k(n,e){let t=e?.trim()||"Unknown error occurred",s=N.some(r=>r.test(t));return n===429?{errorType:"rate-limit",message:`FMP rate limit reached: ${t}`}:n===401?{errorType:"auth",message:`FMP authentication failed (check your FMP_API_KEY): ${t}`}:n===402||n===403||s?{errorType:"plan-restricted",message:`This endpoint is not available on your current FMP plan. (${n}: ${t})`}:n===404?{errorType:"not-found",message:`Not found: ${t}`}:n===400?{errorType:"bad-request",message:`Invalid request: ${t}`}:n===0?{errorType:"network",message:`Network error: ${t}`}:{errorType:"unknown",message:t}}function _(n){return Array.isArray(n)&&n.length===1?n[0]:n}function $(n){return Array.isArray(n)?n:n??[]}function H(n){return n==null?{}:Array.isArray(n)&&n.length===0?{}:n}var c=class{constructor(e){if(!e.apiKey)throw new Error("API key is required for FMPClient");this.apiKey=e.apiKey,this.v3Client=w.create({baseURL:"https://financialmodelingprep.com/api/v3",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.v4Client=w.create({baseURL:"https://financialmodelingprep.com/api/v4",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),this.stableClient=w.create({baseURL:"https://financialmodelingprep.com/stable",timeout:e.timeout||1e4,headers:{"Content-Type":"application/json"}}),[this.v3Client,this.v4Client,this.stableClient].forEach(t=>{t.interceptors.request.use(s=>(s.params={...s.params,apikey:this.apiKey},s));});}async get(e,t="v3",s){let r=this.getClientForVersion(t);try{let i=await r.get(e,{params:s}),o=i.data;return (Array.isArray(o)||o==null)&&(o=$(o)),{success:!0,data:o,error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}async getSingle(e,t="v3",s){let r=this.getClientForVersion(t);try{let i=await r.get(e,{params:s});return {success:!0,data:H(_(i.data)),error:null,status:i.status}}catch(i){return this.buildErrorResponse(i)}}buildErrorResponse(e){let t=e?.response?.data,s=t&&typeof t=="object"?t["Error Message"]??t.message??null:typeof t=="string"?t:null,r=e?.response?.status??0,{errorType:i,message:o}=k(r,s||e?.message||"");return {success:false,data:null,error:o,errorType:i,status:r||500}}getClientForVersion(e){switch(e){case "v3":return this.v3Client;case "v4":return this.v4Client;case "stable":return this.stableClient;default:return this.v3Client}}};var m=class{constructor(e){this._client=e;}async getEarningsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/earning_calendar","v3",r)}async getEarningsConfirmed(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/earning-calendar-confirmed","v4",r)}async getDividendsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/stock_dividend_calendar","v3",r)}async getEconomicsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/economic_calendar","v3",r)}async getIPOCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/ipo_calendar","v3",r)}async getSplitsCalendar(e={}){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this._client.get("/stock_split_calendar","v3",r)}};var p=class{constructor(e){this.client=e;}async getCompanyProfile(e){return this.client.getSingle("/profile","stable",{symbol:e})}async getExecutiveCompensation(e){return this.client.get("/governance-executive-compensation","stable",{symbol:e})}async getCompanyNotes(e){return this.client.get("/company-notes","stable",{symbol:e})}async getHistoricalEmployeeCount(e){return this.client.get("/historical-employee-count","stable",{symbol:e})}async getSharesFloat(e){return this.client.getSingle("/shares-float","stable",{symbol:e})}async getHistoricalSharesFloat(e){return this.client.get("/historical/shares_float","v4",{symbol:e})}async getEarningsCallTranscript(e){let{symbol:t,year:s,quarter:r}=e;return this.client.getSingle(`/earning_call_transcript/${t}`,"v3",{year:s,quarter:r})}async getCompanyTranscriptData(e){return this.client.getSingle("/earning_call_transcript","v4",{symbol:e})}};var g=class{constructor(e){this.client=e;}async getTreasuryRates(e){let{from:t,to:s}=e,r={};return t&&(r.from=t),s&&(r.to=s),this.client.get("/treasury-rates","stable",r)}async getEconomicIndicators(e){let{name:t,from:s,to:r}=e,i={name:t};return s&&(i.from=s),r&&(i.to=r),this.client.get("/economic-indicators","stable",i)}};var u=class{constructor(e){this.client=e;}async getHoldingDates(e){return this.client.get("/etf-holdings/portfolio-date","v4",{symbol:e})}async getHoldings(e){let{symbol:t,date:s}=e,r={};return t&&(r.symbol=t),s&&(r.date=s),this.client.get("/etf-holdings","v4",r)}async getHolder(e){return this.client.get(`/etf-holder/${e}`,"v3")}async getProfile(e){return this.client.getSingle("/etf/info","stable",{symbol:e})}async getSectorWeighting(e){return this.client.get("/etf/sector-weightings","stable",{symbol:e})}async getCountryWeighting(e){return this.client.get("/etf/country-weightings","stable",{symbol:e})}async getStockExposure(e){return this.client.get(`/etf-stock-exposure/${e}`,"v3")}};var y=class{constructor(e){this.client=e;}async getIncomeStatement(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/income-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getBalanceSheet(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/balance-sheet-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getCashFlowStatement(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/cash-flow-statement?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getKeyMetrics(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/key-metrics?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getFinancialRatios(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/ratios?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getEnterpriseValue(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/enterprise-values?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getCashflowGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/cash-flow-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getIncomeGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/income-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getBalanceSheetGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/balance-sheet-statement-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getFinancialGrowth(e){let{symbol:t,period:s="annual",limit:r=5}=e;return this.client.get(`/financial-growth?symbol=${t}&period=${s}&limit=${r}`,"stable")}async getEarningsHistorical(e){let{symbol:t,limit:s=5}=e;return this.client.get(`/earnings?symbol=${t}&limit=${s}`,"stable")}async getEarningsSurprises(e){return this.client.get(`/earnings-surprises/${e}`,"v3")}};var d=class{constructor(e){this.client=e;}async getInsiderTradingRSS(e){let{page:t=0,limit:s=100}=e;return this.client.get("/insider-trading/latest","stable",{page:t,limit:s})}async searchInsiderTrading(e){let{symbol:t,reportingCik:s,companyCik:r,transactionType:i,page:o=0,limit:a=100}=e,l={page:o,limit:a};return t&&(l.symbol=t),s&&(l.reportingCik=s),r&&(l.companyCik=r),i&&(l.transactionType=i),this.client.get("/insider-trading/search","stable",l)}async getTransactionTypes(){return this.client.get("/insider-trading-transaction-type","stable")}async getInsidersBySymbol(e){let{symbol:t}=e;return this.client.get("/insider-roaster","v4",{symbol:t})}async getInsiderTradeStatistics(e){let{symbol:t}=e;return this.client.get("/insider-trading/statistics","stable",{symbol:t})}async getCikMapper(e){let{page:t=0}=e;return this.client.get("/mapper-cik-name","v4",{page:t})}async getCikMapperByName(e){let{name:t,page:s=0}=e;return this.client.get("/mapper-cik-name","v4",{name:t,page:s})}async getCikMapperBySymbol(e){let{symbol:t}=e;return this.client.getSingle(`/mapper-cik-company/${t}`,"v4")}async getBeneficialOwnership(e){let{symbol:t,limit:s=100}=e;return this.client.get("/acquisition-of-beneficial-ownership","stable",{symbol:t,limit:s})}async getFailToDeliver(e){let{symbol:t,page:s=0}=e;return this.client.get("/fail_to_deliver","v4",{symbol:t,page:s})}async getInsiderTradesBySymbol(e,t=0){return this.searchInsiderTrading({symbol:e,page:t})}async getInsiderTradesByType(e,t=0){return this.searchInsiderTrading({transactionType:e,page:t})}async getInsiderTradesByReportingCik(e,t=0){return this.searchInsiderTrading({reportingCik:e,page:t})}async getInsiderTradesByCompanyCik(e,t=0){return this.searchInsiderTrading({companyCik:e,page:t})}};var P=class{constructor(e){this.client=e;}async getForm13F(e){let{cik:t,date:s}=e,r={};return s&&(r.date=s),this.client.get(`/form-thirteen/${t}`,"v3",r)}async getForm13FDates(e){let{cik:t}=e;return this.client.get(`/form-thirteen-date/${t}`,"v3")}async getInstitutionalHolders(e){let{symbol:t}=e;return this.client.get(`/institutional-holder/${t}`,"v3")}};var f=class{constructor(e){this.client=e;}async getStockList(){return this.client.get("/stock/list")}async getETFList(){return this.client.get("/etf/list")}async getCryptoList(){return this.client.get("/symbol/available-cryptocurrencies")}async getForexList(){return this.client.get("/symbol/available-forex-currency-pairs")}async getAvailableIndexes(){return this.client.get("/symbol/available-indexes")}};var b=class{constructor(e){this.client=e;}async getMarketHours(){return this.client.get("/market-hours","v3")}async getMarketPerformance(){return this.client.get("/quotes/index","v3")}async getGainers(){return this.client.get("/biggest-gainers","stable")}async getLosers(){return this.client.get("/biggest-losers","stable")}async getMostActive(){return this.client.get("/most-actives","stable")}async getSectorPerformance(){return this.client.get("/sector-performance","v3")}async getMarketIndex(){return this.client.get("/quotes/index","v3")}};var h=class{constructor(e){this.client=e;}async getHolders(e){return this.client.get(`/mutual-fund-holder/${e}`,"v3")}};var R=class{constructor(e){this.client=e;}async getArticles(e={}){let{page:t=1,limit:s=100}=e;return this.client.get("/fmp-articles","stable",{page:t,limit:s})}async getStockNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/stock-latest","stable",o)}async getCryptoNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/crypto-latest","stable",o)}async getForexNews(e={}){let{from:t,to:s,page:r=1,limit:i=100}=e,o={page:r,limit:i};return t&&(o.from=t),s&&(o.to=s),this.client.get("/news/forex-latest","stable",o)}async getStockNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/stock?symbols=${a}`,"stable",l)}async getCryptoNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/crypto?symbols=${a}`,"stable",l)}async getForexNewsBySymbol(e){let{symbols:t,from:s,to:r,page:i=1,limit:o=100}=e,a=t.join(","),l={page:i,limit:o};return s&&(l.from=s),r&&(l.to=r),this.client.get(`/news/forex?symbols=${a}`,"stable",l)}};var I=class{constructor(e){this.client=e;}async getQuote(e){return this.client.getSingle(`/quote/${e}`,"v3")}async getHistoricalPrice(e){let{symbol:t,from:s,to:r}=e,i={};return s&&(i.from=s),r&&(i.to=r),this.client.getSingle(`/historical-price-full/${t}`,"v3",i)}async getQuotes(e){let t=e.join(",");return this.client.get(`/quote/${t}`,"v3")}async getIntraday(e){let{symbol:t,interval:s,from:r,to:i}=e,o={};return r&&(o.from=r),i&&(o.to=i),this.client.get(`/historical-chart/${s}/${t}`,"v3",o)}};var A=class{constructor(e){this.client=e;}async getScreener(e){return this.client.get("/company-screener","stable",e)}async getAvailableExchanges(){return this.client.get("/available-exchanges","stable")}async getAvailableSectors(){return this.client.get("/available-sectors","stable")}async getAvailableIndustries(){return this.client.get("/available-industries","stable")}async getAvailableCountries(){return this.client.get("/available-countries","stable")}};var S=class{constructor(e){this.client=e;}async search(e){let{query:t,limit:s,exchange:r}=e;return this.client.get("/search","v3",{query:t,limit:s,exchange:r})}};var T=class{constructor(e){this.client=e;}async getEstimates(e){let{symbol:t,period:s,limit:r}=e;return this.client.get("/analyst-estimates","stable",{symbol:t,period:s,limit:r})}async getPriceTargetConsensus(e){return this.client.getSingle("/price-target-consensus","stable",{symbol:e.symbol})}async getPriceTargetSummary(e){return this.client.getSingle("/price-target-summary","stable",{symbol:e.symbol})}async getGrades(e){return this.client.get("/grades","stable",{symbol:e.symbol})}};var C=class{constructor(e){this.client=e;}async getDiscountedCashFlow(e){return this.client.getSingle("/discounted-cash-flow","stable",{symbol:e.symbol})}async getRatingSnapshot(e){return this.client.getSingle("/ratings-snapshot","stable",{symbol:e.symbol})}async getHistoricalRating(e){let{symbol:t,limit:s}=e;return this.client.get("/ratings-historical","stable",{symbol:t,limit:s})}};var E=class{constructor(e){this.client=e;}async getTechnicalIndicator(e){let{symbol:t,type:s,periodLength:r,timeframe:i}=e;return this.client.get(`/technical-indicators/${s}`,"stable",{symbol:t,periodLength:r,timeframe:i})}};var F=class{constructor(e){this.client=e;}async getRSSFeed(e){return this.client.get("/rss_feed","v4",e)}async getRSSFeedAll(e){return this.client.get("/rss_feed_all","v4",e)}async getRSSFeedV3(e){return this.client.get("/rss_feed","v3",e)}async getRSSFeed8K(e){return this.client.get("/rss_feed_8k","v4",e)}async getSECFilings({symbol:e,params:t}){return this.client.get(`/sec_filings/${e}`,"v3",t)}async getIndividualIndustryClassification(e){return this.client.getSingle("/standard_industrial_classification","v4",e)}async getAllIndustryClassifications(){return this.client.get("/standard_industrial_classification/all","v4")}async getIndustryClassificationCodes(e){return this.client.get("/standard_industrial_classification_list","v4",e)}};var v=class{constructor(e){this.client=e;}async getSenateTrading(e){let{symbol:t}=e;return this.client.get("/senate-trades","stable",{symbol:t})}async getSenateTradingRSSFeed(e){let{page:t,limit:s}=e;return this.client.get("/senate-latest","stable",{page:t,limit:s??100})}async getSenateTradingByName(e){let{name:t}=e;return this.client.get("/senate-trades-by-name","stable",{name:t})}async getHouseTrading(e){let{symbol:t}=e;return this.client.get("/house-trades","stable",{symbol:t})}async getHouseTradingRSSFeed(e){let{page:t,limit:s}=e;return this.client.get("/house-latest","stable",{page:t,limit:s??100})}async getHouseTradingByName(e){let{name:t}=e;return this.client.get("/house-trades-by-name","stable",{name:t})}};var x=class{constructor(e){this.client=e;}async getMarketCap(e){return this.client.getSingle(`/market-capitalization/${e}`,"v3")}async getStockSplits(e){return this.client.get(`/historical-price-full/stock_split/${e}`,"v3")}async getDividendHistory(e){return this.client.getSingle(`/historical-price-full/stock_dividend/${e}`,"v3")}async getRealTimePrice(e){let t=`stock/real-time-price/${e.join(",")}`,s=await this.client.get(t,"v3");if(s.success&&s.data&&!Array.isArray(s.data)){let i=s.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}return i.symbol?{...s,data:[i]}:(e.length===1&&console.warn(`No real-time price data found for symbol: ${e[0]}`),{...s,data:[]})}let r=s.data.filter(i=>i&&i.symbol);return {...s,data:r}}async getRealTimePriceForMultipleStocks(e){let t=`stock/full/real-time-price/${e.join(",")}`,s=await this.client.get(t,"v3");if(s.success&&s.data&&!Array.isArray(s.data)){let i=s.data;if(typeof i=="object"&&i!==null&&"companiesPriceList"in i&&Array.isArray(i.companiesPriceList)){let o=i.companiesPriceList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}if(typeof i=="object"&&i!==null&&"stockList"in i&&Array.isArray(i.stockList)){let o=i.stockList.filter(a=>a&&a.symbol);if(o.length>0)return {...s,data:o}}return i.symbol?{...s,data:[i]}:(e.length===1&&console.warn(`No full real-time price data found for symbol: ${e[0]}`),{...s,data:[]})}let r=s.data.filter(i=>i&&i.symbol);return {...s,data:r}}};var D=class{constructor(e={}){let t=e.apiKey||process.env.FMP_API_KEY;if(!t)throw new Error("FMP API key is required. Please provide it in the config or set the FMP_API_KEY environment variable.");if(!a.isValidApiKey(t))throw new Error("Invalid API key format");let s=new c({...e,apiKey:t});this.calendar=new m(s),this.company=new p(s),this.economic=new g(s),this.etf=new u(s),this.financial=new y(s),this.insider=new d(s),this.institutional=new P(s),this.list=new f(s),this.market=new b(s),this.mutualFund=new h(s),this.news=new R(s),this.quote=new I(s),this.screener=new A(s),this.search=new S(s),this.analyst=new T(s),this.valuation=new C(s),this.technical=new E(s),this.sec=new F(s),this.senateHouse=new v(s),this.stock=new x(s);}getClient(){return this.stock.client}};function q(n,e="USD"){return new Intl.NumberFormat("en-US",{style:"currency",currency:e}).format(n)}function U(n,e=2){return `${n.toFixed(e)}%`}function O(n){return n>=1e12?`${(n/1e12).toFixed(2)}T`:n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}function B(n){return (typeof n=="string"?new Date(n):n).toISOString().split("T")[0]}function G(n){return n>=1e9?`${(n/1e9).toFixed(2)}B`:n>=1e6?`${(n/1e6).toFixed(2)}M`:n>=1e3?`${(n/1e3).toFixed(2)}K`:n.toString()}var V=1e4,K=100,Y=1e3,j={ANNUAL:"annual",QUARTER:"quarter"},Q={NYSE:"NYSE",NASDAQ:"NASDAQ",AMEX:"AMEX",TSX:"TSX",LSE:"LSE",ASX:"ASX",NSE:"NSE",BSE:"BSE"},X={TECHNOLOGY:"Technology",HEALTHCARE:"Healthcare",FINANCIAL:"Financial",CONSUMER_DISCRETIONARY:"Consumer Discretionary",CONSUMER_STAPLES:"Consumer Staples",INDUSTRIALS:"Industrials",ENERGY:"Energy",MATERIALS:"Materials",UTILITIES:"Utilities",REAL_ESTATE:"Real Estate",COMMUNICATION_SERVICES:"Communication Services"};var L=class extends Error{constructor(t,s,r){super(t);this.status=s;this.code=r;this.name="FMPError";}};
2
+ export{T as AnalystEndpoints,m as CalendarEndpoints,p as CompanyEndpoints,K as DEFAULT_LIMIT,V as DEFAULT_TIMEOUT,u as ETFEndpoints,Q as EXCHANGES,g as EconomicEndpoints,D as FMP,c as FMPClient,L as FMPError,y as FinancialEndpoints,d as InsiderEndpoints,P as InstitutionalEndpoints,f as ListEndpoints,Y as MAX_LIMIT,b as MarketEndpoints,h as MutualFundEndpoints,R as NewsEndpoints,j as PERIODS,I as QuoteEndpoints,F as SECEndpoints,X as SECTORS,A as ScreenerEndpoints,S as SearchEndpoints,v as SenateHouseEndpoints,x as StockEndpoints,E as TechnicalEndpoints,C as ValuationEndpoints,k as classifyError,q as formatCurrency,B as formatDate,O as formatLargeNumber,U as formatPercentage,G as formatVolume};
@@ -3635,6 +3635,260 @@ type AvailableSectors = z.infer<typeof AvailableSectorsSchema>;
3635
3635
  type AvailableIndustries = z.infer<typeof AvailableIndustriesSchema>;
3636
3636
  type AvailableCountries = z.infer<typeof AvailableCountriesSchema>;
3637
3637
 
3638
+ declare const SearchResultSchema: z.ZodObject<{
3639
+ symbol: z.ZodString;
3640
+ name: z.ZodString;
3641
+ currency: z.ZodNullable<z.ZodString>;
3642
+ stockExchange: z.ZodNullable<z.ZodString>;
3643
+ exchangeShortName: z.ZodNullable<z.ZodString>;
3644
+ }, "strip", z.ZodTypeAny, {
3645
+ symbol: string;
3646
+ currency: string | null;
3647
+ name: string;
3648
+ exchangeShortName: string | null;
3649
+ stockExchange: string | null;
3650
+ }, {
3651
+ symbol: string;
3652
+ currency: string | null;
3653
+ name: string;
3654
+ exchangeShortName: string | null;
3655
+ stockExchange: string | null;
3656
+ }>;
3657
+ type SearchResult = z.infer<typeof SearchResultSchema>;
3658
+
3659
+ declare const AnalystEstimateSchema: z.ZodObject<{
3660
+ symbol: z.ZodString;
3661
+ date: z.ZodString;
3662
+ estimatedRevenueLow: z.ZodNullable<z.ZodNumber>;
3663
+ estimatedRevenueHigh: z.ZodNullable<z.ZodNumber>;
3664
+ estimatedRevenueAvg: z.ZodNullable<z.ZodNumber>;
3665
+ estimatedEbitdaLow: z.ZodNullable<z.ZodNumber>;
3666
+ estimatedEbitdaHigh: z.ZodNullable<z.ZodNumber>;
3667
+ estimatedEbitdaAvg: z.ZodNullable<z.ZodNumber>;
3668
+ estimatedNetIncomeLow: z.ZodNullable<z.ZodNumber>;
3669
+ estimatedNetIncomeHigh: z.ZodNullable<z.ZodNumber>;
3670
+ estimatedNetIncomeAvg: z.ZodNullable<z.ZodNumber>;
3671
+ estimatedEpsLow: z.ZodNullable<z.ZodNumber>;
3672
+ estimatedEpsHigh: z.ZodNullable<z.ZodNumber>;
3673
+ estimatedEpsAvg: z.ZodNullable<z.ZodNumber>;
3674
+ numberAnalystEstimatedRevenue: z.ZodNullable<z.ZodNumber>;
3675
+ numberAnalystsEstimatedEps: z.ZodNullable<z.ZodNumber>;
3676
+ }, "strip", z.ZodTypeAny, {
3677
+ symbol: string;
3678
+ date: string;
3679
+ estimatedRevenueLow: number | null;
3680
+ estimatedRevenueHigh: number | null;
3681
+ estimatedRevenueAvg: number | null;
3682
+ estimatedEbitdaLow: number | null;
3683
+ estimatedEbitdaHigh: number | null;
3684
+ estimatedEbitdaAvg: number | null;
3685
+ estimatedNetIncomeLow: number | null;
3686
+ estimatedNetIncomeHigh: number | null;
3687
+ estimatedNetIncomeAvg: number | null;
3688
+ estimatedEpsLow: number | null;
3689
+ estimatedEpsHigh: number | null;
3690
+ estimatedEpsAvg: number | null;
3691
+ numberAnalystEstimatedRevenue: number | null;
3692
+ numberAnalystsEstimatedEps: number | null;
3693
+ }, {
3694
+ symbol: string;
3695
+ date: string;
3696
+ estimatedRevenueLow: number | null;
3697
+ estimatedRevenueHigh: number | null;
3698
+ estimatedRevenueAvg: number | null;
3699
+ estimatedEbitdaLow: number | null;
3700
+ estimatedEbitdaHigh: number | null;
3701
+ estimatedEbitdaAvg: number | null;
3702
+ estimatedNetIncomeLow: number | null;
3703
+ estimatedNetIncomeHigh: number | null;
3704
+ estimatedNetIncomeAvg: number | null;
3705
+ estimatedEpsLow: number | null;
3706
+ estimatedEpsHigh: number | null;
3707
+ estimatedEpsAvg: number | null;
3708
+ numberAnalystEstimatedRevenue: number | null;
3709
+ numberAnalystsEstimatedEps: number | null;
3710
+ }>;
3711
+ declare const PriceTargetConsensusSchema: z.ZodObject<{
3712
+ symbol: z.ZodString;
3713
+ targetHigh: z.ZodNullable<z.ZodNumber>;
3714
+ targetLow: z.ZodNullable<z.ZodNumber>;
3715
+ targetConsensus: z.ZodNullable<z.ZodNumber>;
3716
+ targetMedian: z.ZodNullable<z.ZodNumber>;
3717
+ }, "strip", z.ZodTypeAny, {
3718
+ symbol: string;
3719
+ targetHigh: number | null;
3720
+ targetLow: number | null;
3721
+ targetConsensus: number | null;
3722
+ targetMedian: number | null;
3723
+ }, {
3724
+ symbol: string;
3725
+ targetHigh: number | null;
3726
+ targetLow: number | null;
3727
+ targetConsensus: number | null;
3728
+ targetMedian: number | null;
3729
+ }>;
3730
+ declare const PriceTargetSummarySchema: z.ZodObject<{
3731
+ symbol: z.ZodString;
3732
+ lastMonth: z.ZodNullable<z.ZodNumber>;
3733
+ lastMonthAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3734
+ lastQuarter: z.ZodNullable<z.ZodNumber>;
3735
+ lastQuarterAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3736
+ lastYear: z.ZodNullable<z.ZodNumber>;
3737
+ lastYearAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3738
+ allTime: z.ZodNullable<z.ZodNumber>;
3739
+ allTimeAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3740
+ publishers: z.ZodNullable<z.ZodString>;
3741
+ }, "strip", z.ZodTypeAny, {
3742
+ symbol: string;
3743
+ lastMonth: number | null;
3744
+ lastMonthAvgPriceTarget: number | null;
3745
+ lastQuarter: number | null;
3746
+ lastQuarterAvgPriceTarget: number | null;
3747
+ lastYear: number | null;
3748
+ lastYearAvgPriceTarget: number | null;
3749
+ allTime: number | null;
3750
+ allTimeAvgPriceTarget: number | null;
3751
+ publishers: string | null;
3752
+ }, {
3753
+ symbol: string;
3754
+ lastMonth: number | null;
3755
+ lastMonthAvgPriceTarget: number | null;
3756
+ lastQuarter: number | null;
3757
+ lastQuarterAvgPriceTarget: number | null;
3758
+ lastYear: number | null;
3759
+ lastYearAvgPriceTarget: number | null;
3760
+ allTime: number | null;
3761
+ allTimeAvgPriceTarget: number | null;
3762
+ publishers: string | null;
3763
+ }>;
3764
+ declare const StockGradeSchema: z.ZodObject<{
3765
+ symbol: z.ZodString;
3766
+ date: z.ZodString;
3767
+ gradingCompany: z.ZodNullable<z.ZodString>;
3768
+ previousGrade: z.ZodNullable<z.ZodString>;
3769
+ newGrade: z.ZodNullable<z.ZodString>;
3770
+ action: z.ZodNullable<z.ZodString>;
3771
+ }, "strip", z.ZodTypeAny, {
3772
+ symbol: string;
3773
+ date: string;
3774
+ gradingCompany: string | null;
3775
+ previousGrade: string | null;
3776
+ newGrade: string | null;
3777
+ action: string | null;
3778
+ }, {
3779
+ symbol: string;
3780
+ date: string;
3781
+ gradingCompany: string | null;
3782
+ previousGrade: string | null;
3783
+ newGrade: string | null;
3784
+ action: string | null;
3785
+ }>;
3786
+ type AnalystEstimate = z.infer<typeof AnalystEstimateSchema>;
3787
+ type PriceTargetConsensus = z.infer<typeof PriceTargetConsensusSchema>;
3788
+ type PriceTargetSummary = z.infer<typeof PriceTargetSummarySchema>;
3789
+ type StockGrade = z.infer<typeof StockGradeSchema>;
3790
+
3791
+ declare const DCFValuationSchema: z.ZodObject<{
3792
+ symbol: z.ZodString;
3793
+ date: z.ZodNullable<z.ZodString>;
3794
+ dcf: z.ZodNullable<z.ZodNumber>;
3795
+ stockPrice: z.ZodNullable<z.ZodNumber>;
3796
+ }, "strip", z.ZodTypeAny, {
3797
+ symbol: string;
3798
+ date: string | null;
3799
+ stockPrice: number | null;
3800
+ dcf: number | null;
3801
+ }, {
3802
+ symbol: string;
3803
+ date: string | null;
3804
+ stockPrice: number | null;
3805
+ dcf: number | null;
3806
+ }>;
3807
+ declare const CompanyRatingSchema: z.ZodObject<{
3808
+ symbol: z.ZodString;
3809
+ rating: z.ZodNullable<z.ZodString>;
3810
+ overallScore: z.ZodNullable<z.ZodNumber>;
3811
+ discountedCashFlowScore: z.ZodNullable<z.ZodNumber>;
3812
+ returnOnEquityScore: z.ZodNullable<z.ZodNumber>;
3813
+ returnOnAssetsScore: z.ZodNullable<z.ZodNumber>;
3814
+ debtToEquityScore: z.ZodNullable<z.ZodNumber>;
3815
+ priceToEarningsScore: z.ZodNullable<z.ZodNumber>;
3816
+ priceToBookScore: z.ZodNullable<z.ZodNumber>;
3817
+ }, "strip", z.ZodTypeAny, {
3818
+ symbol: string;
3819
+ rating: string | null;
3820
+ overallScore: number | null;
3821
+ discountedCashFlowScore: number | null;
3822
+ returnOnEquityScore: number | null;
3823
+ returnOnAssetsScore: number | null;
3824
+ debtToEquityScore: number | null;
3825
+ priceToEarningsScore: number | null;
3826
+ priceToBookScore: number | null;
3827
+ }, {
3828
+ symbol: string;
3829
+ rating: string | null;
3830
+ overallScore: number | null;
3831
+ discountedCashFlowScore: number | null;
3832
+ returnOnEquityScore: number | null;
3833
+ returnOnAssetsScore: number | null;
3834
+ debtToEquityScore: number | null;
3835
+ priceToEarningsScore: number | null;
3836
+ priceToBookScore: number | null;
3837
+ }>;
3838
+ type DCFValuation = z.infer<typeof DCFValuationSchema>;
3839
+ type CompanyRating = z.infer<typeof CompanyRatingSchema>;
3840
+
3841
+ declare const TechnicalIndicatorSchema: z.ZodObject<{
3842
+ date: z.ZodString;
3843
+ open: z.ZodNullable<z.ZodNumber>;
3844
+ high: z.ZodNullable<z.ZodNumber>;
3845
+ low: z.ZodNullable<z.ZodNumber>;
3846
+ close: z.ZodNullable<z.ZodNumber>;
3847
+ volume: z.ZodNullable<z.ZodNumber>;
3848
+ sma: z.ZodOptional<z.ZodNumber>;
3849
+ ema: z.ZodOptional<z.ZodNumber>;
3850
+ wma: z.ZodOptional<z.ZodNumber>;
3851
+ dema: z.ZodOptional<z.ZodNumber>;
3852
+ tema: z.ZodOptional<z.ZodNumber>;
3853
+ rsi: z.ZodOptional<z.ZodNumber>;
3854
+ standardDeviation: z.ZodOptional<z.ZodNumber>;
3855
+ williams: z.ZodOptional<z.ZodNumber>;
3856
+ adx: z.ZodOptional<z.ZodNumber>;
3857
+ }, "strip", z.ZodTypeAny, {
3858
+ date: string;
3859
+ volume: number | null;
3860
+ open: number | null;
3861
+ high: number | null;
3862
+ low: number | null;
3863
+ close: number | null;
3864
+ sma?: number | undefined;
3865
+ ema?: number | undefined;
3866
+ wma?: number | undefined;
3867
+ dema?: number | undefined;
3868
+ tema?: number | undefined;
3869
+ rsi?: number | undefined;
3870
+ standardDeviation?: number | undefined;
3871
+ williams?: number | undefined;
3872
+ adx?: number | undefined;
3873
+ }, {
3874
+ date: string;
3875
+ volume: number | null;
3876
+ open: number | null;
3877
+ high: number | null;
3878
+ low: number | null;
3879
+ close: number | null;
3880
+ sma?: number | undefined;
3881
+ ema?: number | undefined;
3882
+ wma?: number | undefined;
3883
+ dema?: number | undefined;
3884
+ tema?: number | undefined;
3885
+ rsi?: number | undefined;
3886
+ standardDeviation?: number | undefined;
3887
+ williams?: number | undefined;
3888
+ adx?: number | undefined;
3889
+ }>;
3890
+ type TechnicalIndicator = z.infer<typeof TechnicalIndicatorSchema>;
3891
+
3638
3892
  declare const SenateTradingResponseSchema: z.ZodObject<{
3639
3893
  symbol: z.ZodString;
3640
3894
  disclosureDate: z.ZodString;
@@ -3986,4 +4240,4 @@ interface CompaniesPriceListResponse<T> {
3986
4240
  companiesPriceList: T[];
3987
4241
  }
3988
4242
 
3989
- export { type APIResponse, type Article, ArticleSchema, type AvailableCountries, AvailableCountriesSchema, type AvailableExchanges, AvailableExchangesSchema, type AvailableIndexesList, AvailableIndexesListSchema, type AvailableIndustries, AvailableIndustriesSchema, type AvailableSectors, AvailableSectorsSchema, type BalanceSheet, type BalanceSheetGrowth, BalanceSheetGrowthSchema, BalanceSheetSchema, type BeneficialOwnershipResponse, BeneficialOwnershipResponseSchema, type CashFlowStatement, CashFlowStatementSchema, type CashflowGrowth, CashflowGrowthSchema, type CikMapperBySymbolResponse, CikMapperBySymbolResponseSchema, type CikMapperResponse, CikMapperResponseSchema, type CompaniesPriceListResponse, type CompanyNotes, CompanyNotesSchema, type CompanyProfile, CompanyProfileSchema, type CompanyTranscriptData, CompanyTranscriptDataSchema, type CryptoList, CryptoListSchema, type DateRangeParams, type DividendsCalendar, DividendsCalendarSchema, type ETFCountryWeighting, ETFCountryWeightingSchema, type ETFHolder, ETFHolderSchema, type ETFHolding, type ETFHoldingDates, ETFHoldingDatesSchema, ETFHoldingSchema, type ETFList, ETFListSchema, type ETFProfile, ETFProfileSchema, type ETFStockExposure, ETFStockExposureSchema, type ETFWeighting, ETFWeightingSchema, type EarningsCalendar, EarningsCalendarSchema, type EarningsCallTranscript, EarningsCallTranscriptSchema, type EarningsConfirmed, EarningsConfirmedSchema, type EarningsHistorical, EarningsHistoricalSchema, type EarningsSurprises, EarningsSurprisesSchema, type EconomicIndicator, type EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, type EconomicsCalendar, EconomicsCalendarSchema, type EnterpriseValue, EnterpriseValueSchema, Exchange, type ExecutiveCompensation, ExecutiveCompensationSchema, type FMPConfig, type FMPErrorType, type FailToDeliverResponse, FailToDeliverResponseSchema, type FinancialGrowth, FinancialGrowthSchema, type FinancialRatios, FinancialRatiosSchema, type ForexList, ForexListSchema, type Form13FResponse, Form13FResponseSchema, type HistoricalEmployeeCount, HistoricalEmployeeCountSchema, type HistoricalPriceData, HistoricalPriceDataSchema, type HistoricalPriceResponse, HistoricalPriceResponseSchema, type HistoricalSharesFloat, HistoricalSharesFloatSchema, type HouseTradingResponse, HouseTradingResponseSchema, type IPOCalendar, IPOCalendarSchema, type IncomeGrowth, IncomeGrowthSchema, type IncomeStatement, IncomeStatementSchema, type IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, type IndustryClassification, type IndustryClassificationCode, IndustryClassificationCodeSchema, type IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, type InsiderTradeStatisticsResponse, InsiderTradeStatisticsResponseSchema, type InsiderTradingRSSResponse, InsiderTradingRSSResponseSchema, type InsiderTradingSearchResponse, InsiderTradingSearchResponseSchema, type InsidersBySymbolResponse, InsidersBySymbolResponseSchema, type InstitutionalHolderResponse, InstitutionalHolderResponseSchema, type IntradayPrice, IntradayPriceSchema, type KeyMetrics, KeyMetricsSchema, type MarketCap, MarketCapSchema, type MarketHoliday, MarketHolidaySchema, type MarketHours, MarketHoursSchema, type MarketIndex, MarketIndexSchema, type MarketPerformance, MarketPerformanceSchema, type MarketSectorPerformance, MarketSectorPerformanceSchema, type MutualFundHolding, MutualFundHoldingSchema, type News, NewsSchema, type PaginationParams, Period, type PeriodParams, type QueryParams, type Quote, QuoteSchema, type RSSFeed8KItem, RSSFeed8KItemSchema, type RSSFeed8KParams, RSSFeed8KParamsSchema, type RSSFeedAllItem, RSSFeedAllItemSchema, type RSSFeedItem, RSSFeedItemSchema, type RSSFeedParams, RSSFeedParamsSchema, type RSSFeedV3Item, RSSFeedV3ItemSchema, type RSSFeedV3Params, RSSFeedV3ParamsSchema, type SECFiling, SECFilingSchema, type SECFilingsParams, SECFilingsParamsSchema, type Screener, type ScreenerParams, ScreenerParamsSchema, ScreenerSchema, type SenateHouseTradingByNameResponse, SenateHouseTradingByNameResponseSchema, type SenateTradingResponse, SenateTradingResponseSchema, type SharesFloat, SharesFloatSchema, type SplitsCalendar, SplitsCalendarSchema, type StockDividend, type StockDividendResponse, StockDividendResponseSchema, StockDividendSchema, type StockList, type StockListResponse, StockListSchema, type StockRealTimePrice, type StockRealTimePriceFull, StockRealTimePriceFullSchema, StockRealTimePriceSchema, type StockSplit, type StockSplitResponse, StockSplitResponseSchema, StockSplitSchema, type SymbolParams, TransactionType, TransactionTypeRecordSchema, type TransactionTypesResponse, type TreasuryRate, TreasuryRateSchema };
4243
+ export { type APIResponse, type AnalystEstimate, AnalystEstimateSchema, type Article, ArticleSchema, type AvailableCountries, AvailableCountriesSchema, type AvailableExchanges, AvailableExchangesSchema, type AvailableIndexesList, AvailableIndexesListSchema, type AvailableIndustries, AvailableIndustriesSchema, type AvailableSectors, AvailableSectorsSchema, type BalanceSheet, type BalanceSheetGrowth, BalanceSheetGrowthSchema, BalanceSheetSchema, type BeneficialOwnershipResponse, BeneficialOwnershipResponseSchema, type CashFlowStatement, CashFlowStatementSchema, type CashflowGrowth, CashflowGrowthSchema, type CikMapperBySymbolResponse, CikMapperBySymbolResponseSchema, type CikMapperResponse, CikMapperResponseSchema, type CompaniesPriceListResponse, type CompanyNotes, CompanyNotesSchema, type CompanyProfile, CompanyProfileSchema, type CompanyRating, CompanyRatingSchema, type CompanyTranscriptData, CompanyTranscriptDataSchema, type CryptoList, CryptoListSchema, type DCFValuation, DCFValuationSchema, type DateRangeParams, type DividendsCalendar, DividendsCalendarSchema, type ETFCountryWeighting, ETFCountryWeightingSchema, type ETFHolder, ETFHolderSchema, type ETFHolding, type ETFHoldingDates, ETFHoldingDatesSchema, ETFHoldingSchema, type ETFList, ETFListSchema, type ETFProfile, ETFProfileSchema, type ETFStockExposure, ETFStockExposureSchema, type ETFWeighting, ETFWeightingSchema, type EarningsCalendar, EarningsCalendarSchema, type EarningsCallTranscript, EarningsCallTranscriptSchema, type EarningsConfirmed, EarningsConfirmedSchema, type EarningsHistorical, EarningsHistoricalSchema, type EarningsSurprises, EarningsSurprisesSchema, type EconomicIndicator, type EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, type EconomicsCalendar, EconomicsCalendarSchema, type EnterpriseValue, EnterpriseValueSchema, Exchange, type ExecutiveCompensation, ExecutiveCompensationSchema, type FMPConfig, type FMPErrorType, type FailToDeliverResponse, FailToDeliverResponseSchema, type FinancialGrowth, FinancialGrowthSchema, type FinancialRatios, FinancialRatiosSchema, type ForexList, ForexListSchema, type Form13FResponse, Form13FResponseSchema, type HistoricalEmployeeCount, HistoricalEmployeeCountSchema, type HistoricalPriceData, HistoricalPriceDataSchema, type HistoricalPriceResponse, HistoricalPriceResponseSchema, type HistoricalSharesFloat, HistoricalSharesFloatSchema, type HouseTradingResponse, HouseTradingResponseSchema, type IPOCalendar, IPOCalendarSchema, type IncomeGrowth, IncomeGrowthSchema, type IncomeStatement, IncomeStatementSchema, type IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, type IndustryClassification, type IndustryClassificationCode, IndustryClassificationCodeSchema, type IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, type InsiderTradeStatisticsResponse, InsiderTradeStatisticsResponseSchema, type InsiderTradingRSSResponse, InsiderTradingRSSResponseSchema, type InsiderTradingSearchResponse, InsiderTradingSearchResponseSchema, type InsidersBySymbolResponse, InsidersBySymbolResponseSchema, type InstitutionalHolderResponse, InstitutionalHolderResponseSchema, type IntradayPrice, IntradayPriceSchema, type KeyMetrics, KeyMetricsSchema, type MarketCap, MarketCapSchema, type MarketHoliday, MarketHolidaySchema, type MarketHours, MarketHoursSchema, type MarketIndex, MarketIndexSchema, type MarketPerformance, MarketPerformanceSchema, type MarketSectorPerformance, MarketSectorPerformanceSchema, type MutualFundHolding, MutualFundHoldingSchema, type News, NewsSchema, type PaginationParams, Period, type PeriodParams, type PriceTargetConsensus, PriceTargetConsensusSchema, type PriceTargetSummary, PriceTargetSummarySchema, type QueryParams, type Quote, QuoteSchema, type RSSFeed8KItem, RSSFeed8KItemSchema, type RSSFeed8KParams, RSSFeed8KParamsSchema, type RSSFeedAllItem, RSSFeedAllItemSchema, type RSSFeedItem, RSSFeedItemSchema, type RSSFeedParams, RSSFeedParamsSchema, type RSSFeedV3Item, RSSFeedV3ItemSchema, type RSSFeedV3Params, RSSFeedV3ParamsSchema, type SECFiling, SECFilingSchema, type SECFilingsParams, SECFilingsParamsSchema, type Screener, type ScreenerParams, ScreenerParamsSchema, ScreenerSchema, type SearchResult, SearchResultSchema, type SenateHouseTradingByNameResponse, SenateHouseTradingByNameResponseSchema, type SenateTradingResponse, SenateTradingResponseSchema, type SharesFloat, SharesFloatSchema, type SplitsCalendar, SplitsCalendarSchema, type StockDividend, type StockDividendResponse, StockDividendResponseSchema, StockDividendSchema, type StockGrade, StockGradeSchema, type StockList, type StockListResponse, StockListSchema, type StockRealTimePrice, type StockRealTimePriceFull, StockRealTimePriceFullSchema, StockRealTimePriceSchema, type StockSplit, type StockSplitResponse, StockSplitResponseSchema, StockSplitSchema, type SymbolParams, type TechnicalIndicator, TechnicalIndicatorSchema, TransactionType, TransactionTypeRecordSchema, type TransactionTypesResponse, type TreasuryRate, TreasuryRateSchema };
@@ -3635,6 +3635,260 @@ type AvailableSectors = z.infer<typeof AvailableSectorsSchema>;
3635
3635
  type AvailableIndustries = z.infer<typeof AvailableIndustriesSchema>;
3636
3636
  type AvailableCountries = z.infer<typeof AvailableCountriesSchema>;
3637
3637
 
3638
+ declare const SearchResultSchema: z.ZodObject<{
3639
+ symbol: z.ZodString;
3640
+ name: z.ZodString;
3641
+ currency: z.ZodNullable<z.ZodString>;
3642
+ stockExchange: z.ZodNullable<z.ZodString>;
3643
+ exchangeShortName: z.ZodNullable<z.ZodString>;
3644
+ }, "strip", z.ZodTypeAny, {
3645
+ symbol: string;
3646
+ currency: string | null;
3647
+ name: string;
3648
+ exchangeShortName: string | null;
3649
+ stockExchange: string | null;
3650
+ }, {
3651
+ symbol: string;
3652
+ currency: string | null;
3653
+ name: string;
3654
+ exchangeShortName: string | null;
3655
+ stockExchange: string | null;
3656
+ }>;
3657
+ type SearchResult = z.infer<typeof SearchResultSchema>;
3658
+
3659
+ declare const AnalystEstimateSchema: z.ZodObject<{
3660
+ symbol: z.ZodString;
3661
+ date: z.ZodString;
3662
+ estimatedRevenueLow: z.ZodNullable<z.ZodNumber>;
3663
+ estimatedRevenueHigh: z.ZodNullable<z.ZodNumber>;
3664
+ estimatedRevenueAvg: z.ZodNullable<z.ZodNumber>;
3665
+ estimatedEbitdaLow: z.ZodNullable<z.ZodNumber>;
3666
+ estimatedEbitdaHigh: z.ZodNullable<z.ZodNumber>;
3667
+ estimatedEbitdaAvg: z.ZodNullable<z.ZodNumber>;
3668
+ estimatedNetIncomeLow: z.ZodNullable<z.ZodNumber>;
3669
+ estimatedNetIncomeHigh: z.ZodNullable<z.ZodNumber>;
3670
+ estimatedNetIncomeAvg: z.ZodNullable<z.ZodNumber>;
3671
+ estimatedEpsLow: z.ZodNullable<z.ZodNumber>;
3672
+ estimatedEpsHigh: z.ZodNullable<z.ZodNumber>;
3673
+ estimatedEpsAvg: z.ZodNullable<z.ZodNumber>;
3674
+ numberAnalystEstimatedRevenue: z.ZodNullable<z.ZodNumber>;
3675
+ numberAnalystsEstimatedEps: z.ZodNullable<z.ZodNumber>;
3676
+ }, "strip", z.ZodTypeAny, {
3677
+ symbol: string;
3678
+ date: string;
3679
+ estimatedRevenueLow: number | null;
3680
+ estimatedRevenueHigh: number | null;
3681
+ estimatedRevenueAvg: number | null;
3682
+ estimatedEbitdaLow: number | null;
3683
+ estimatedEbitdaHigh: number | null;
3684
+ estimatedEbitdaAvg: number | null;
3685
+ estimatedNetIncomeLow: number | null;
3686
+ estimatedNetIncomeHigh: number | null;
3687
+ estimatedNetIncomeAvg: number | null;
3688
+ estimatedEpsLow: number | null;
3689
+ estimatedEpsHigh: number | null;
3690
+ estimatedEpsAvg: number | null;
3691
+ numberAnalystEstimatedRevenue: number | null;
3692
+ numberAnalystsEstimatedEps: number | null;
3693
+ }, {
3694
+ symbol: string;
3695
+ date: string;
3696
+ estimatedRevenueLow: number | null;
3697
+ estimatedRevenueHigh: number | null;
3698
+ estimatedRevenueAvg: number | null;
3699
+ estimatedEbitdaLow: number | null;
3700
+ estimatedEbitdaHigh: number | null;
3701
+ estimatedEbitdaAvg: number | null;
3702
+ estimatedNetIncomeLow: number | null;
3703
+ estimatedNetIncomeHigh: number | null;
3704
+ estimatedNetIncomeAvg: number | null;
3705
+ estimatedEpsLow: number | null;
3706
+ estimatedEpsHigh: number | null;
3707
+ estimatedEpsAvg: number | null;
3708
+ numberAnalystEstimatedRevenue: number | null;
3709
+ numberAnalystsEstimatedEps: number | null;
3710
+ }>;
3711
+ declare const PriceTargetConsensusSchema: z.ZodObject<{
3712
+ symbol: z.ZodString;
3713
+ targetHigh: z.ZodNullable<z.ZodNumber>;
3714
+ targetLow: z.ZodNullable<z.ZodNumber>;
3715
+ targetConsensus: z.ZodNullable<z.ZodNumber>;
3716
+ targetMedian: z.ZodNullable<z.ZodNumber>;
3717
+ }, "strip", z.ZodTypeAny, {
3718
+ symbol: string;
3719
+ targetHigh: number | null;
3720
+ targetLow: number | null;
3721
+ targetConsensus: number | null;
3722
+ targetMedian: number | null;
3723
+ }, {
3724
+ symbol: string;
3725
+ targetHigh: number | null;
3726
+ targetLow: number | null;
3727
+ targetConsensus: number | null;
3728
+ targetMedian: number | null;
3729
+ }>;
3730
+ declare const PriceTargetSummarySchema: z.ZodObject<{
3731
+ symbol: z.ZodString;
3732
+ lastMonth: z.ZodNullable<z.ZodNumber>;
3733
+ lastMonthAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3734
+ lastQuarter: z.ZodNullable<z.ZodNumber>;
3735
+ lastQuarterAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3736
+ lastYear: z.ZodNullable<z.ZodNumber>;
3737
+ lastYearAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3738
+ allTime: z.ZodNullable<z.ZodNumber>;
3739
+ allTimeAvgPriceTarget: z.ZodNullable<z.ZodNumber>;
3740
+ publishers: z.ZodNullable<z.ZodString>;
3741
+ }, "strip", z.ZodTypeAny, {
3742
+ symbol: string;
3743
+ lastMonth: number | null;
3744
+ lastMonthAvgPriceTarget: number | null;
3745
+ lastQuarter: number | null;
3746
+ lastQuarterAvgPriceTarget: number | null;
3747
+ lastYear: number | null;
3748
+ lastYearAvgPriceTarget: number | null;
3749
+ allTime: number | null;
3750
+ allTimeAvgPriceTarget: number | null;
3751
+ publishers: string | null;
3752
+ }, {
3753
+ symbol: string;
3754
+ lastMonth: number | null;
3755
+ lastMonthAvgPriceTarget: number | null;
3756
+ lastQuarter: number | null;
3757
+ lastQuarterAvgPriceTarget: number | null;
3758
+ lastYear: number | null;
3759
+ lastYearAvgPriceTarget: number | null;
3760
+ allTime: number | null;
3761
+ allTimeAvgPriceTarget: number | null;
3762
+ publishers: string | null;
3763
+ }>;
3764
+ declare const StockGradeSchema: z.ZodObject<{
3765
+ symbol: z.ZodString;
3766
+ date: z.ZodString;
3767
+ gradingCompany: z.ZodNullable<z.ZodString>;
3768
+ previousGrade: z.ZodNullable<z.ZodString>;
3769
+ newGrade: z.ZodNullable<z.ZodString>;
3770
+ action: z.ZodNullable<z.ZodString>;
3771
+ }, "strip", z.ZodTypeAny, {
3772
+ symbol: string;
3773
+ date: string;
3774
+ gradingCompany: string | null;
3775
+ previousGrade: string | null;
3776
+ newGrade: string | null;
3777
+ action: string | null;
3778
+ }, {
3779
+ symbol: string;
3780
+ date: string;
3781
+ gradingCompany: string | null;
3782
+ previousGrade: string | null;
3783
+ newGrade: string | null;
3784
+ action: string | null;
3785
+ }>;
3786
+ type AnalystEstimate = z.infer<typeof AnalystEstimateSchema>;
3787
+ type PriceTargetConsensus = z.infer<typeof PriceTargetConsensusSchema>;
3788
+ type PriceTargetSummary = z.infer<typeof PriceTargetSummarySchema>;
3789
+ type StockGrade = z.infer<typeof StockGradeSchema>;
3790
+
3791
+ declare const DCFValuationSchema: z.ZodObject<{
3792
+ symbol: z.ZodString;
3793
+ date: z.ZodNullable<z.ZodString>;
3794
+ dcf: z.ZodNullable<z.ZodNumber>;
3795
+ stockPrice: z.ZodNullable<z.ZodNumber>;
3796
+ }, "strip", z.ZodTypeAny, {
3797
+ symbol: string;
3798
+ date: string | null;
3799
+ stockPrice: number | null;
3800
+ dcf: number | null;
3801
+ }, {
3802
+ symbol: string;
3803
+ date: string | null;
3804
+ stockPrice: number | null;
3805
+ dcf: number | null;
3806
+ }>;
3807
+ declare const CompanyRatingSchema: z.ZodObject<{
3808
+ symbol: z.ZodString;
3809
+ rating: z.ZodNullable<z.ZodString>;
3810
+ overallScore: z.ZodNullable<z.ZodNumber>;
3811
+ discountedCashFlowScore: z.ZodNullable<z.ZodNumber>;
3812
+ returnOnEquityScore: z.ZodNullable<z.ZodNumber>;
3813
+ returnOnAssetsScore: z.ZodNullable<z.ZodNumber>;
3814
+ debtToEquityScore: z.ZodNullable<z.ZodNumber>;
3815
+ priceToEarningsScore: z.ZodNullable<z.ZodNumber>;
3816
+ priceToBookScore: z.ZodNullable<z.ZodNumber>;
3817
+ }, "strip", z.ZodTypeAny, {
3818
+ symbol: string;
3819
+ rating: string | null;
3820
+ overallScore: number | null;
3821
+ discountedCashFlowScore: number | null;
3822
+ returnOnEquityScore: number | null;
3823
+ returnOnAssetsScore: number | null;
3824
+ debtToEquityScore: number | null;
3825
+ priceToEarningsScore: number | null;
3826
+ priceToBookScore: number | null;
3827
+ }, {
3828
+ symbol: string;
3829
+ rating: string | null;
3830
+ overallScore: number | null;
3831
+ discountedCashFlowScore: number | null;
3832
+ returnOnEquityScore: number | null;
3833
+ returnOnAssetsScore: number | null;
3834
+ debtToEquityScore: number | null;
3835
+ priceToEarningsScore: number | null;
3836
+ priceToBookScore: number | null;
3837
+ }>;
3838
+ type DCFValuation = z.infer<typeof DCFValuationSchema>;
3839
+ type CompanyRating = z.infer<typeof CompanyRatingSchema>;
3840
+
3841
+ declare const TechnicalIndicatorSchema: z.ZodObject<{
3842
+ date: z.ZodString;
3843
+ open: z.ZodNullable<z.ZodNumber>;
3844
+ high: z.ZodNullable<z.ZodNumber>;
3845
+ low: z.ZodNullable<z.ZodNumber>;
3846
+ close: z.ZodNullable<z.ZodNumber>;
3847
+ volume: z.ZodNullable<z.ZodNumber>;
3848
+ sma: z.ZodOptional<z.ZodNumber>;
3849
+ ema: z.ZodOptional<z.ZodNumber>;
3850
+ wma: z.ZodOptional<z.ZodNumber>;
3851
+ dema: z.ZodOptional<z.ZodNumber>;
3852
+ tema: z.ZodOptional<z.ZodNumber>;
3853
+ rsi: z.ZodOptional<z.ZodNumber>;
3854
+ standardDeviation: z.ZodOptional<z.ZodNumber>;
3855
+ williams: z.ZodOptional<z.ZodNumber>;
3856
+ adx: z.ZodOptional<z.ZodNumber>;
3857
+ }, "strip", z.ZodTypeAny, {
3858
+ date: string;
3859
+ volume: number | null;
3860
+ open: number | null;
3861
+ high: number | null;
3862
+ low: number | null;
3863
+ close: number | null;
3864
+ sma?: number | undefined;
3865
+ ema?: number | undefined;
3866
+ wma?: number | undefined;
3867
+ dema?: number | undefined;
3868
+ tema?: number | undefined;
3869
+ rsi?: number | undefined;
3870
+ standardDeviation?: number | undefined;
3871
+ williams?: number | undefined;
3872
+ adx?: number | undefined;
3873
+ }, {
3874
+ date: string;
3875
+ volume: number | null;
3876
+ open: number | null;
3877
+ high: number | null;
3878
+ low: number | null;
3879
+ close: number | null;
3880
+ sma?: number | undefined;
3881
+ ema?: number | undefined;
3882
+ wma?: number | undefined;
3883
+ dema?: number | undefined;
3884
+ tema?: number | undefined;
3885
+ rsi?: number | undefined;
3886
+ standardDeviation?: number | undefined;
3887
+ williams?: number | undefined;
3888
+ adx?: number | undefined;
3889
+ }>;
3890
+ type TechnicalIndicator = z.infer<typeof TechnicalIndicatorSchema>;
3891
+
3638
3892
  declare const SenateTradingResponseSchema: z.ZodObject<{
3639
3893
  symbol: z.ZodString;
3640
3894
  disclosureDate: z.ZodString;
@@ -3986,4 +4240,4 @@ interface CompaniesPriceListResponse<T> {
3986
4240
  companiesPriceList: T[];
3987
4241
  }
3988
4242
 
3989
- export { type APIResponse, type Article, ArticleSchema, type AvailableCountries, AvailableCountriesSchema, type AvailableExchanges, AvailableExchangesSchema, type AvailableIndexesList, AvailableIndexesListSchema, type AvailableIndustries, AvailableIndustriesSchema, type AvailableSectors, AvailableSectorsSchema, type BalanceSheet, type BalanceSheetGrowth, BalanceSheetGrowthSchema, BalanceSheetSchema, type BeneficialOwnershipResponse, BeneficialOwnershipResponseSchema, type CashFlowStatement, CashFlowStatementSchema, type CashflowGrowth, CashflowGrowthSchema, type CikMapperBySymbolResponse, CikMapperBySymbolResponseSchema, type CikMapperResponse, CikMapperResponseSchema, type CompaniesPriceListResponse, type CompanyNotes, CompanyNotesSchema, type CompanyProfile, CompanyProfileSchema, type CompanyTranscriptData, CompanyTranscriptDataSchema, type CryptoList, CryptoListSchema, type DateRangeParams, type DividendsCalendar, DividendsCalendarSchema, type ETFCountryWeighting, ETFCountryWeightingSchema, type ETFHolder, ETFHolderSchema, type ETFHolding, type ETFHoldingDates, ETFHoldingDatesSchema, ETFHoldingSchema, type ETFList, ETFListSchema, type ETFProfile, ETFProfileSchema, type ETFStockExposure, ETFStockExposureSchema, type ETFWeighting, ETFWeightingSchema, type EarningsCalendar, EarningsCalendarSchema, type EarningsCallTranscript, EarningsCallTranscriptSchema, type EarningsConfirmed, EarningsConfirmedSchema, type EarningsHistorical, EarningsHistoricalSchema, type EarningsSurprises, EarningsSurprisesSchema, type EconomicIndicator, type EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, type EconomicsCalendar, EconomicsCalendarSchema, type EnterpriseValue, EnterpriseValueSchema, Exchange, type ExecutiveCompensation, ExecutiveCompensationSchema, type FMPConfig, type FMPErrorType, type FailToDeliverResponse, FailToDeliverResponseSchema, type FinancialGrowth, FinancialGrowthSchema, type FinancialRatios, FinancialRatiosSchema, type ForexList, ForexListSchema, type Form13FResponse, Form13FResponseSchema, type HistoricalEmployeeCount, HistoricalEmployeeCountSchema, type HistoricalPriceData, HistoricalPriceDataSchema, type HistoricalPriceResponse, HistoricalPriceResponseSchema, type HistoricalSharesFloat, HistoricalSharesFloatSchema, type HouseTradingResponse, HouseTradingResponseSchema, type IPOCalendar, IPOCalendarSchema, type IncomeGrowth, IncomeGrowthSchema, type IncomeStatement, IncomeStatementSchema, type IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, type IndustryClassification, type IndustryClassificationCode, IndustryClassificationCodeSchema, type IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, type InsiderTradeStatisticsResponse, InsiderTradeStatisticsResponseSchema, type InsiderTradingRSSResponse, InsiderTradingRSSResponseSchema, type InsiderTradingSearchResponse, InsiderTradingSearchResponseSchema, type InsidersBySymbolResponse, InsidersBySymbolResponseSchema, type InstitutionalHolderResponse, InstitutionalHolderResponseSchema, type IntradayPrice, IntradayPriceSchema, type KeyMetrics, KeyMetricsSchema, type MarketCap, MarketCapSchema, type MarketHoliday, MarketHolidaySchema, type MarketHours, MarketHoursSchema, type MarketIndex, MarketIndexSchema, type MarketPerformance, MarketPerformanceSchema, type MarketSectorPerformance, MarketSectorPerformanceSchema, type MutualFundHolding, MutualFundHoldingSchema, type News, NewsSchema, type PaginationParams, Period, type PeriodParams, type QueryParams, type Quote, QuoteSchema, type RSSFeed8KItem, RSSFeed8KItemSchema, type RSSFeed8KParams, RSSFeed8KParamsSchema, type RSSFeedAllItem, RSSFeedAllItemSchema, type RSSFeedItem, RSSFeedItemSchema, type RSSFeedParams, RSSFeedParamsSchema, type RSSFeedV3Item, RSSFeedV3ItemSchema, type RSSFeedV3Params, RSSFeedV3ParamsSchema, type SECFiling, SECFilingSchema, type SECFilingsParams, SECFilingsParamsSchema, type Screener, type ScreenerParams, ScreenerParamsSchema, ScreenerSchema, type SenateHouseTradingByNameResponse, SenateHouseTradingByNameResponseSchema, type SenateTradingResponse, SenateTradingResponseSchema, type SharesFloat, SharesFloatSchema, type SplitsCalendar, SplitsCalendarSchema, type StockDividend, type StockDividendResponse, StockDividendResponseSchema, StockDividendSchema, type StockList, type StockListResponse, StockListSchema, type StockRealTimePrice, type StockRealTimePriceFull, StockRealTimePriceFullSchema, StockRealTimePriceSchema, type StockSplit, type StockSplitResponse, StockSplitResponseSchema, StockSplitSchema, type SymbolParams, TransactionType, TransactionTypeRecordSchema, type TransactionTypesResponse, type TreasuryRate, TreasuryRateSchema };
4243
+ export { type APIResponse, type AnalystEstimate, AnalystEstimateSchema, type Article, ArticleSchema, type AvailableCountries, AvailableCountriesSchema, type AvailableExchanges, AvailableExchangesSchema, type AvailableIndexesList, AvailableIndexesListSchema, type AvailableIndustries, AvailableIndustriesSchema, type AvailableSectors, AvailableSectorsSchema, type BalanceSheet, type BalanceSheetGrowth, BalanceSheetGrowthSchema, BalanceSheetSchema, type BeneficialOwnershipResponse, BeneficialOwnershipResponseSchema, type CashFlowStatement, CashFlowStatementSchema, type CashflowGrowth, CashflowGrowthSchema, type CikMapperBySymbolResponse, CikMapperBySymbolResponseSchema, type CikMapperResponse, CikMapperResponseSchema, type CompaniesPriceListResponse, type CompanyNotes, CompanyNotesSchema, type CompanyProfile, CompanyProfileSchema, type CompanyRating, CompanyRatingSchema, type CompanyTranscriptData, CompanyTranscriptDataSchema, type CryptoList, CryptoListSchema, type DCFValuation, DCFValuationSchema, type DateRangeParams, type DividendsCalendar, DividendsCalendarSchema, type ETFCountryWeighting, ETFCountryWeightingSchema, type ETFHolder, ETFHolderSchema, type ETFHolding, type ETFHoldingDates, ETFHoldingDatesSchema, ETFHoldingSchema, type ETFList, ETFListSchema, type ETFProfile, ETFProfileSchema, type ETFStockExposure, ETFStockExposureSchema, type ETFWeighting, ETFWeightingSchema, type EarningsCalendar, EarningsCalendarSchema, type EarningsCallTranscript, EarningsCallTranscriptSchema, type EarningsConfirmed, EarningsConfirmedSchema, type EarningsHistorical, EarningsHistoricalSchema, type EarningsSurprises, EarningsSurprisesSchema, type EconomicIndicator, type EconomicIndicatorName, EconomicIndicatorNameSchema, EconomicIndicatorSchema, type EconomicsCalendar, EconomicsCalendarSchema, type EnterpriseValue, EnterpriseValueSchema, Exchange, type ExecutiveCompensation, ExecutiveCompensationSchema, type FMPConfig, type FMPErrorType, type FailToDeliverResponse, FailToDeliverResponseSchema, type FinancialGrowth, FinancialGrowthSchema, type FinancialRatios, FinancialRatiosSchema, type ForexList, ForexListSchema, type Form13FResponse, Form13FResponseSchema, type HistoricalEmployeeCount, HistoricalEmployeeCountSchema, type HistoricalPriceData, HistoricalPriceDataSchema, type HistoricalPriceResponse, HistoricalPriceResponseSchema, type HistoricalSharesFloat, HistoricalSharesFloatSchema, type HouseTradingResponse, HouseTradingResponseSchema, type IPOCalendar, IPOCalendarSchema, type IncomeGrowth, IncomeGrowthSchema, type IncomeStatement, IncomeStatementSchema, type IndividualIndustryClassificationParams, IndividualIndustryClassificationParamsSchema, type IndustryClassification, type IndustryClassificationCode, IndustryClassificationCodeSchema, type IndustryClassificationCodesParams, IndustryClassificationCodesParamsSchema, IndustryClassificationSchema, type InsiderTradeStatisticsResponse, InsiderTradeStatisticsResponseSchema, type InsiderTradingRSSResponse, InsiderTradingRSSResponseSchema, type InsiderTradingSearchResponse, InsiderTradingSearchResponseSchema, type InsidersBySymbolResponse, InsidersBySymbolResponseSchema, type InstitutionalHolderResponse, InstitutionalHolderResponseSchema, type IntradayPrice, IntradayPriceSchema, type KeyMetrics, KeyMetricsSchema, type MarketCap, MarketCapSchema, type MarketHoliday, MarketHolidaySchema, type MarketHours, MarketHoursSchema, type MarketIndex, MarketIndexSchema, type MarketPerformance, MarketPerformanceSchema, type MarketSectorPerformance, MarketSectorPerformanceSchema, type MutualFundHolding, MutualFundHoldingSchema, type News, NewsSchema, type PaginationParams, Period, type PeriodParams, type PriceTargetConsensus, PriceTargetConsensusSchema, type PriceTargetSummary, PriceTargetSummarySchema, type QueryParams, type Quote, QuoteSchema, type RSSFeed8KItem, RSSFeed8KItemSchema, type RSSFeed8KParams, RSSFeed8KParamsSchema, type RSSFeedAllItem, RSSFeedAllItemSchema, type RSSFeedItem, RSSFeedItemSchema, type RSSFeedParams, RSSFeedParamsSchema, type RSSFeedV3Item, RSSFeedV3ItemSchema, type RSSFeedV3Params, RSSFeedV3ParamsSchema, type SECFiling, SECFilingSchema, type SECFilingsParams, SECFilingsParamsSchema, type Screener, type ScreenerParams, ScreenerParamsSchema, ScreenerSchema, type SearchResult, SearchResultSchema, type SenateHouseTradingByNameResponse, SenateHouseTradingByNameResponseSchema, type SenateTradingResponse, SenateTradingResponseSchema, type SharesFloat, SharesFloatSchema, type SplitsCalendar, SplitsCalendarSchema, type StockDividend, type StockDividendResponse, StockDividendResponseSchema, StockDividendSchema, type StockGrade, StockGradeSchema, type StockList, type StockListResponse, StockListSchema, type StockRealTimePrice, type StockRealTimePriceFull, StockRealTimePriceFullSchema, StockRealTimePriceSchema, type StockSplit, type StockSplitResponse, StockSplitResponseSchema, StockSplitSchema, type SymbolParams, type TechnicalIndicator, TechnicalIndicatorSchema, TransactionType, TransactionTypeRecordSchema, type TransactionTypesResponse, type TreasuryRate, TreasuryRateSchema };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fmp-node-api",
3
- "version": "0.2.0-beta.1",
3
+ "version": "0.2.0-beta.3",
4
4
  "description": "A comprehensive Node.js wrapper for Financial Modeling Prep API",
5
5
  "disclaimer": "This package is not affiliated with, endorsed by, or sponsored by Financial Modeling Prep (FMP). This is an independent, community-developed wrapper.",
6
6
  "main": "./dist/index.js",
@@ -55,7 +55,7 @@
55
55
  "tsx": "^4.7.0",
56
56
  "typescript": "^5.3.3",
57
57
  "zod": "^3.25.76",
58
- "fmp-node-types": "0.2.0-beta.1"
58
+ "fmp-node-types": "0.2.0-beta.3"
59
59
  },
60
60
  "scripts": {
61
61
  "build": "tsup",