yahoo-finance2
Advanced tools
Comparing version 2.10.0 to 2.11.0
{ | ||
"name": "yahoo-finance2", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "JS API for Yahoo Finance", | ||
@@ -42,2 +42,3 @@ "type:": "commonjs", | ||
"schema": "node --loader ts-node/esm scripts/schema.js > schema.json", | ||
"timeseries": "node --loader ts-node/esm scripts/timeseries.js", | ||
"build": "yarn run build:esm && yarn run build:cjs && yarn run build:post", | ||
@@ -76,2 +77,3 @@ "build:esm": "tsc --module es2020 --target es2019 --outDir dist/esm", | ||
"@tsconfig/node12": "12.1.1", | ||
"@types/har-format": "^1.2.15", | ||
"@types/jest": "29.5.12", | ||
@@ -78,0 +80,0 @@ "@types/node-fetch": "2.6.11", |
module.exports = { | ||
"name": "yahoo-finance2", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "JS API for Yahoo Finance", | ||
@@ -42,2 +42,3 @@ "type:": "commonjs", | ||
"schema": "node --loader ts-node/esm scripts/schema.js > schema.json", | ||
"timeseries": "node --loader ts-node/esm scripts/timeseries.js", | ||
"build": "yarn run build:esm && yarn run build:cjs && yarn run build:post", | ||
@@ -76,2 +77,3 @@ "build:esm": "tsc --module es2020 --target es2019 --outDir dist/esm", | ||
"@tsconfig/node12": "12.1.1", | ||
"@types/har-format": "^1.2.15", | ||
"@types/jest": "29.5.12", | ||
@@ -78,0 +80,0 @@ "@types/node-fetch": "2.6.11", |
import type { ModuleOptionsWithValidateTrue, ModuleOptionsWithValidateFalse, ModuleThis } from "../lib/moduleCommon.js"; | ||
export declare const FundamentalsTimeSeries_Types: Record<string, any>; | ||
export declare const FundamentalsTimeSeries_Types: string[]; | ||
export declare const FundamentalsTimeSeries_Modules: string[]; | ||
export type FundamentalsTimeSeriesResults = Array<FundamentalsTimeSeriesResult>; | ||
@@ -16,5 +17,25 @@ export interface FundamentalsTimeSeriesResult { | ||
region?: string; | ||
module: string; | ||
} | ||
export default function fundamentalsTimeSeries(this: ModuleThis, symbol: string, queryOptionsOverrides: FundamentalsTimeSeriesOptions, moduleOptions?: ModuleOptionsWithValidateTrue): Promise<FundamentalsTimeSeriesResult>; | ||
export default function fundamentalsTimeSeries(this: ModuleThis, symbol: string, queryOptionsOverrides: FundamentalsTimeSeriesOptions, moduleOptions?: ModuleOptionsWithValidateFalse): Promise<any>; | ||
/** | ||
* Transform the input options into query parameters. | ||
* The options module defines which keys that are used in the query. | ||
* The keys are joined together into the query parameter type and | ||
* pre-fixed with the options type (e.g. annualTotalRevenue). | ||
* @param queryOptions Input query options. | ||
* @returns Query parameters. | ||
*/ | ||
export declare const processQuery: (queryOptions: FundamentalsTimeSeriesOptions) => Partial<FundamentalsTimeSeriesOptions>; | ||
/** | ||
* Transforms the time-series into an array with reported values per period. | ||
* Each object represents a period and its properties are the data points. | ||
* Financial statement content variates and keys are skipped when empty. | ||
* The query keys include the option type (e.g. annualTotalRevenue). | ||
* In the response the type is removed (e.g. totalRevenue) for | ||
* easier mapping by the client. | ||
* @param response Query response. | ||
* @returns Formatted response. | ||
*/ | ||
export declare const processResponse: (response: any) => any; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.processResponse = exports.FundamentalsTimeSeries_Types = void 0; | ||
exports.FundamentalsTimeSeries_Types = { | ||
quarterly: "quarterlyTreasurySharesNumber,quarterlyPreferredSharesNumber,quarterlyOrdinarySharesNumber,quarterlyShareIssued,quarterlyNetDebt,quarterlyTotalDebt,quarterlyTangibleBookValue,quarterlyInvestedCapital,quarterlyWorkingCapital,quarterlyNetTangibleAssets,quarterlyCapitalLeaseObligations,quarterlyCommonStockEquity,quarterlyPreferredStockEquity,quarterlyTotalCapitalization,quarterlyTotalEquityGrossMinorityInterest,quarterlyMinorityInterest,quarterlyStockholdersEquity,quarterlyOtherEquityInterest,quarterlyGainsLossesNotAffectingRetainedEarnings,quarterlyOtherEquityAdjustments,quarterlyFixedAssetsRevaluationReserve,quarterlyForeignCurrencyTranslationAdjustments,quarterlyMinimumPensionLiabilities,quarterlyUnrealizedGainLoss,quarterlyTreasuryStock,quarterlyRetainedEarnings,quarterlyAdditionalPaidInCapital,quarterlyCapitalStock,quarterlyOtherCapitalStock,quarterlyCommonStock,quarterlyPreferredStock,quarterlyTotalPartnershipCapital,quarterlyGeneralPartnershipCapital,quarterlyLimitedPartnershipCapital,quarterlyTotalLiabilitiesNetMinorityInterest,quarterlyTotalNonCurrentLiabilitiesNetMinorityInterest,quarterlyOtherNonCurrentLiabilities,quarterlyLiabilitiesHeldforSaleNonCurrent,quarterlyRestrictedCommonStock,quarterlyPreferredSecuritiesOutsideStockEquity,quarterlyDerivativeProductLiabilities,quarterlyEmployeeBenefits,quarterlyNonCurrentPensionAndOtherPostretirementBenefitPlans,quarterlyNonCurrentAccruedExpenses,quarterlyDuetoRelatedPartiesNonCurrent,quarterlyTradeandOtherPayablesNonCurrent,quarterlyNonCurrentDeferredLiabilities,quarterlyNonCurrentDeferredRevenue,quarterlyNonCurrentDeferredTaxesLiabilities,quarterlyLongTermDebtAndCapitalLeaseObligation,quarterlyLongTermCapitalLeaseObligation,quarterlyLongTermDebt,quarterlyLongTermProvisions,quarterlyCurrentLiabilities,quarterlyOtherCurrentLiabilities,quarterlyCurrentDeferredLiabilities,quarterlyCurrentDeferredRevenue,quarterlyCurrentDeferredTaxesLiabilities,quarterlyCurrentDebtAndCapitalLeaseObligation,quarterlyCurrentCapitalLeaseObligation,quarterlyCurrentDebt,quarterlyOtherCurrentBorrowings,quarterlyLineOfCredit,quarterlyCommercialPaper,quarterlyCurrentNotesPayable,quarterlyPensionandOtherPostRetirementBenefitPlansCurrent,quarterlyCurrentProvisions,quarterlyPayablesAndAccruedExpenses,quarterlyCurrentAccruedExpenses,quarterlyInterestPayable,quarterlyPayables,quarterlyOtherPayable,quarterlyDuetoRelatedPartiesCurrent,quarterlyDividendsPayable,quarterlyTotalTaxPayable,quarterlyIncomeTaxPayable,quarterlyAccountsPayable,quarterlyTotalAssets,quarterlyTotalNonCurrentAssets,quarterlyOtherNonCurrentAssets,quarterlyDefinedPensionBenefit,quarterlyNonCurrentPrepaidAssets,quarterlyNonCurrentDeferredAssets,quarterlyNonCurrentDeferredTaxesAssets,quarterlyDuefromRelatedPartiesNonCurrent,quarterlyNonCurrentNoteReceivables,quarterlyNonCurrentAccountsReceivable,quarterlyFinancialAssets,quarterlyInvestmentsAndAdvances,quarterlyOtherInvestments,quarterlyInvestmentinFinancialAssets,quarterlyHeldToMaturitySecurities,quarterlyAvailableForSaleSecurities,quarterlyFinancialAssetsDesignatedasFairValueThroughProfitorLossTotal,quarterlyTradingSecurities,quarterlyLongTermEquityInvestment,quarterlyInvestmentsinJointVenturesatCost,quarterlyInvestmentsInOtherVenturesUnderEquityMethod,quarterlyInvestmentsinAssociatesatCost,quarterlyInvestmentsinSubsidiariesatCost,quarterlyInvestmentProperties,quarterlyGoodwillAndOtherIntangibleAssets,quarterlyOtherIntangibleAssets,quarterlyGoodwill,quarterlyNetPPE,quarterlyAccumulatedDepreciation,quarterlyGrossPPE,quarterlyLeases,quarterlyConstructionInProgress,quarterlyOtherProperties,quarterlyMachineryFurnitureEquipment,quarterlyBuildingsAndImprovements,quarterlyLandAndImprovements,quarterlyProperties,quarterlyCurrentAssets,quarterlyOtherCurrentAssets,quarterlyHedgingAssetsCurrent,quarterlyAssetsHeldForSaleCurrent,quarterlyCurrentDeferredAssets,quarterlyCurrentDeferredTaxesAssets,quarterlyRestrictedCash,quarterlyPrepaidAssets,quarterlyInventory,quarterlyInventoriesAdjustmentsAllowances,quarterlyOtherInventories,quarterlyFinishedGoods,quarterlyWorkInProcess,quarterlyRawMaterials,quarterlyReceivables,quarterlyReceivablesAdjustmentsAllowances,quarterlyOtherReceivables,quarterlyDuefromRelatedPartiesCurrent,quarterlyTaxesReceivable,quarterlyAccruedInterestReceivable,quarterlyNotesReceivable,quarterlyLoansReceivable,quarterlyAccountsReceivable,quarterlyAllowanceForDoubtfulAccountsReceivable,quarterlyGrossAccountsReceivable,quarterlyCashCashEquivalentsAndShortTermInvestments,quarterlyOtherShortTermInvestments,quarterlyCashAndCashEquivalents,quarterlyCashEquivalents,quarterlyCashFinancial", | ||
annual: "annualTaxEffectOfUnusualItems,trailingTaxEffectOfUnusualItems,annualTaxRateForCalcs,trailingTaxRateForCalcs,annualNormalizedEBITDA,trailingNormalizedEBITDA,annualNormalizedDilutedEPS,trailingNormalizedDilutedEPS,annualNormalizedBasicEPS,trailingNormalizedBasicEPS,annualTotalUnusualItems,trailingTotalUnusualItems,annualTotalUnusualItemsExcludingGoodwill,trailingTotalUnusualItemsExcludingGoodwill,annualNetIncomeFromContinuingOperationNetMinorityInterest,trailingNetIncomeFromContinuingOperationNetMinorityInterest,annualReconciledDepreciation,trailingReconciledDepreciation,annualReconciledCostOfRevenue,trailingReconciledCostOfRevenue,annualEBITDA,trailingEBITDA,annualEBIT,trailingEBIT,annualNetInterestIncome,trailingNetInterestIncome,annualInterestExpense,trailingInterestExpense,annualInterestIncome,trailingInterestIncome,annualContinuingAndDiscontinuedDilutedEPS,trailingContinuingAndDiscontinuedDilutedEPS,annualContinuingAndDiscontinuedBasicEPS,trailingContinuingAndDiscontinuedBasicEPS,annualNormalizedIncome,trailingNormalizedIncome,annualNetIncomeFromContinuingAndDiscontinuedOperation,trailingNetIncomeFromContinuingAndDiscontinuedOperation,annualTotalExpenses,trailingTotalExpenses,annualRentExpenseSupplemental,trailingRentExpenseSupplemental,annualReportedNormalizedDilutedEPS,trailingReportedNormalizedDilutedEPS,annualReportedNormalizedBasicEPS,trailingReportedNormalizedBasicEPS,annualTotalOperatingIncomeAsReported,trailingTotalOperatingIncomeAsReported,annualDividendPerShare,trailingDividendPerShare,annualDilutedAverageShares,trailingDilutedAverageShares,annualBasicAverageShares,trailingBasicAverageShares,annualDilutedEPS,trailingDilutedEPS,annualDilutedEPSOtherGainsLosses,trailingDilutedEPSOtherGainsLosses,annualTaxLossCarryforwardDilutedEPS,trailingTaxLossCarryforwardDilutedEPS,annualDilutedAccountingChange,trailingDilutedAccountingChange,annualDilutedExtraordinary,trailingDilutedExtraordinary,annualDilutedDiscontinuousOperations,trailingDilutedDiscontinuousOperations,annualDilutedContinuousOperations,trailingDilutedContinuousOperations,annualBasicEPS,trailingBasicEPS,annualBasicEPSOtherGainsLosses,trailingBasicEPSOtherGainsLosses,annualTaxLossCarryforwardBasicEPS,trailingTaxLossCarryforwardBasicEPS,annualBasicAccountingChange,trailingBasicAccountingChange,annualBasicExtraordinary,trailingBasicExtraordinary,annualBasicDiscontinuousOperations,trailingBasicDiscontinuousOperations,annualBasicContinuousOperations,trailingBasicContinuousOperations,annualDilutedNIAvailtoComStockholders,trailingDilutedNIAvailtoComStockholders,annualAverageDilutionEarnings,trailingAverageDilutionEarnings,annualNetIncomeCommonStockholders,trailingNetIncomeCommonStockholders,annualOtherunderPreferredStockDividend,trailingOtherunderPreferredStockDividend,annualPreferredStockDividends,trailingPreferredStockDividends,annualNetIncome,trailingNetIncome,annualMinorityInterests,trailingMinorityInterests,annualNetIncomeIncludingNoncontrollingInterests,trailingNetIncomeIncludingNoncontrollingInterests,annualNetIncomeFromTaxLossCarryforward,trailingNetIncomeFromTaxLossCarryforward,annualNetIncomeExtraordinary,trailingNetIncomeExtraordinary,annualNetIncomeDiscontinuousOperations,trailingNetIncomeDiscontinuousOperations,annualNetIncomeContinuousOperations,trailingNetIncomeContinuousOperations,annualEarningsFromEquityInterestNetOfTax,trailingEarningsFromEquityInterestNetOfTax,annualTaxProvision,trailingTaxProvision,annualPretaxIncome,trailingPretaxIncome,annualOtherIncomeExpense,trailingOtherIncomeExpense,annualOtherNonOperatingIncomeExpenses,trailingOtherNonOperatingIncomeExpenses,annualSpecialIncomeCharges,trailingSpecialIncomeCharges,annualGainOnSaleOfPPE,trailingGainOnSaleOfPPE,annualGainOnSaleOfBusiness,trailingGainOnSaleOfBusiness,annualOtherSpecialCharges,trailingOtherSpecialCharges,annualWriteOff,trailingWriteOff,annualImpairmentOfCapitalAssets,trailingImpairmentOfCapitalAssets,annualRestructuringAndMergernAcquisition,trailingRestructuringAndMergernAcquisition,annualSecuritiesAmortization,trailingSecuritiesAmortization,annualEarningsFromEquityInterest,trailingEarningsFromEquityInterest,annualGainOnSaleOfSecurity,trailingGainOnSaleOfSecurity,annualNetNonOperatingInterestIncomeExpense,trailingNetNonOperatingInterestIncomeExpense,annualTotalOtherFinanceCost,trailingTotalOtherFinanceCost,annualInterestExpenseNonOperating,trailingInterestExpenseNonOperating,annualInterestIncomeNonOperating,trailingInterestIncomeNonOperating,annualOperatingIncome,trailingOperatingIncome,annualOperatingExpense,trailingOperatingExpense,annualOtherOperatingExpenses,trailingOtherOperatingExpenses,annualOtherTaxes,trailingOtherTaxes,annualProvisionForDoubtfulAccounts,trailingProvisionForDoubtfulAccounts,annualDepreciationAmortizationDepletionIncomeStatement,trailingDepreciationAmortizationDepletionIncomeStatement,annualDepletionIncomeStatement,trailingDepletionIncomeStatement,annualDepreciationAndAmortizationInIncomeStatement,trailingDepreciationAndAmortizationInIncomeStatement,annualAmortization,trailingAmortization,annualAmortizationOfIntangiblesIncomeStatement,trailingAmortizationOfIntangiblesIncomeStatement,annualDepreciationIncomeStatement,trailingDepreciationIncomeStatement,annualResearchAndDevelopment,trailingResearchAndDevelopment,annualSellingGeneralAndAdministration,trailingSellingGeneralAndAdministration,annualSellingAndMarketingExpense,trailingSellingAndMarketingExpense,annualGeneralAndAdministrativeExpense,trailingGeneralAndAdministrativeExpense,annualOtherGandA,trailingOtherGandA,annualInsuranceAndClaims,trailingInsuranceAndClaims,annualRentAndLandingFees,trailingRentAndLandingFees,annualSalariesAndWages,trailingSalariesAndWages,annualGrossProfit,trailingGrossProfit,annualCostOfRevenue,trailingCostOfRevenue,annualTotalRevenue,trailingTotalRevenue,annualExciseTaxes,trailingExciseTaxes,annualOperatingRevenue,trailingOperatingRevenue", | ||
}; | ||
exports.processResponse = exports.processQuery = exports.FundamentalsTimeSeries_Modules = exports.FundamentalsTimeSeries_Types = void 0; | ||
const timeseries_json_1 = __importDefault(require("../lib/timeseries.json.js")); | ||
exports.FundamentalsTimeSeries_Types = ["quarterly", "annual", "trailing"]; | ||
exports.FundamentalsTimeSeries_Modules = [ | ||
"financials", | ||
"balance-sheet", | ||
"cash-flow", | ||
"all", | ||
]; | ||
const queryOptionsDefaults = { | ||
@@ -25,34 +32,3 @@ merge: false, | ||
overrides: queryOptionsOverrides, | ||
transformWith(queryOptions) { | ||
// Convert dates | ||
if (!queryOptions.period2) | ||
queryOptions.period2 = new Date(); | ||
const dates = ["period1", "period2"]; | ||
for (const fieldName of dates) { | ||
const value = queryOptions[fieldName]; | ||
if (value instanceof Date) | ||
queryOptions[fieldName] = Math.floor(value.getTime() / 1000); | ||
else if (typeof value === "string") { | ||
const timestamp = new Date(value).getTime(); | ||
if (isNaN(timestamp)) | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option '" + | ||
fieldName + | ||
"' invalid date provided: '" + | ||
value + | ||
"'"); | ||
queryOptions[fieldName] = Math.floor(timestamp / 1000); | ||
} | ||
} | ||
if (queryOptions.period1 === queryOptions.period2) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() options `period1` and `period2` " + | ||
"cannot share the same value."); | ||
} | ||
// Add timeseries types | ||
if (!exports.FundamentalsTimeSeries_Types[queryOptions.type || ""]) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option type invalid."); | ||
} | ||
queryOptions.type = | ||
exports.FundamentalsTimeSeries_Types[queryOptions.type || ""]; | ||
return queryOptions; | ||
}, | ||
transformWith: exports.processQuery, | ||
}, | ||
@@ -71,4 +47,73 @@ result: { | ||
exports.default = fundamentalsTimeSeries; | ||
/** | ||
* Transform the input options into query parameters. | ||
* The options module defines which keys that are used in the query. | ||
* The keys are joined together into the query parameter type and | ||
* pre-fixed with the options type (e.g. annualTotalRevenue). | ||
* @param queryOptions Input query options. | ||
* @returns Query parameters. | ||
*/ | ||
const processQuery = function (queryOptions) { | ||
// Convert dates | ||
if (!queryOptions.period2) | ||
queryOptions.period2 = new Date(); | ||
const dates = ["period1", "period2"]; | ||
for (const fieldName of dates) { | ||
const value = queryOptions[fieldName]; | ||
if (value instanceof Date) | ||
queryOptions[fieldName] = Math.floor(value.getTime() / 1000); | ||
else if (typeof value === "string") { | ||
const timestamp = new Date(value).getTime(); | ||
if (isNaN(timestamp)) | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option '" + | ||
fieldName + | ||
"' invalid date provided: '" + | ||
value + | ||
"'"); | ||
queryOptions[fieldName] = Math.floor(timestamp / 1000); | ||
} | ||
} | ||
// Validate query parameters. | ||
if (queryOptions.period1 === queryOptions.period2) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() options `period1` and `period2` " + | ||
"cannot share the same value."); | ||
} | ||
else if (!exports.FundamentalsTimeSeries_Types.includes(queryOptions.type || "")) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option type invalid."); | ||
} | ||
else if (!exports.FundamentalsTimeSeries_Modules.includes(queryOptions.module || "")) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option module invalid."); | ||
} | ||
// Join the keys for the module into query types. | ||
const keys = Object.entries(timeseries_json_1.default).reduce((previous, [module, keys]) => { | ||
if (queryOptions.module == "all") { | ||
return previous.concat(keys); | ||
} | ||
else if (module == queryOptions.module) { | ||
return previous.concat(keys); | ||
} | ||
else | ||
return previous; | ||
}, []); | ||
const queryType = queryOptions.type + keys.join(`,${queryOptions.type}`); | ||
return { | ||
period1: queryOptions.period1, | ||
period2: queryOptions.period2, | ||
type: queryType, | ||
}; | ||
}; | ||
exports.processQuery = processQuery; | ||
/** | ||
* Transforms the time-series into an array with reported values per period. | ||
* Each object represents a period and its properties are the data points. | ||
* Financial statement content variates and keys are skipped when empty. | ||
* The query keys include the option type (e.g. annualTotalRevenue). | ||
* In the response the type is removed (e.g. totalRevenue) for | ||
* easier mapping by the client. | ||
* @param response Query response. | ||
* @returns Formatted response. | ||
*/ | ||
const processResponse = function (response) { | ||
const keyedByTimestamp = {}; | ||
const replace = new RegExp(exports.FundamentalsTimeSeries_Types.join("|")); | ||
for (let ct = 0; ct < response.timeseries.result.length; ct++) { | ||
@@ -90,4 +135,7 @@ const result = response.timeseries.result[ct]; | ||
} | ||
keyedByTimestamp[timestamp][dataKey] = | ||
result[dataKey][ct].reportedValue.raw; | ||
const short = dataKey.replace(replace, ""); | ||
const key = short == short.toUpperCase() | ||
? short | ||
: short[0].toLowerCase() + short.slice(1); | ||
keyedByTimestamp[timestamp][key] = result[dataKey][ct].reportedValue.raw; | ||
} | ||
@@ -94,0 +142,0 @@ } |
{ | ||
"name": "yahoo-finance2", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "JS API for Yahoo Finance", | ||
@@ -42,2 +42,3 @@ "type": "module", | ||
"schema": "node --loader ts-node/esm scripts/schema.js > schema.json", | ||
"timeseries": "node --loader ts-node/esm scripts/timeseries.js", | ||
"build": "yarn run build:esm && yarn run build:cjs && yarn run build:post", | ||
@@ -76,2 +77,3 @@ "build:esm": "tsc --module es2020 --target es2019 --outDir dist/esm", | ||
"@tsconfig/node12": "12.1.1", | ||
"@types/har-format": "^1.2.15", | ||
"@types/jest": "29.5.12", | ||
@@ -78,0 +80,0 @@ "@types/node-fetch": "2.6.11", |
export default { | ||
"name": "yahoo-finance2", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "JS API for Yahoo Finance", | ||
@@ -42,2 +42,3 @@ "type": "module", | ||
"schema": "node --loader ts-node/esm scripts/schema.js > schema.json", | ||
"timeseries": "node --loader ts-node/esm scripts/timeseries.js", | ||
"build": "yarn run build:esm && yarn run build:cjs && yarn run build:post", | ||
@@ -76,2 +77,3 @@ "build:esm": "tsc --module es2020 --target es2019 --outDir dist/esm", | ||
"@tsconfig/node12": "12.1.1", | ||
"@types/har-format": "^1.2.15", | ||
"@types/jest": "29.5.12", | ||
@@ -78,0 +80,0 @@ "@types/node-fetch": "2.6.11", |
import type { ModuleOptionsWithValidateTrue, ModuleOptionsWithValidateFalse, ModuleThis } from "../lib/moduleCommon.js"; | ||
export declare const FundamentalsTimeSeries_Types: Record<string, any>; | ||
export declare const FundamentalsTimeSeries_Types: string[]; | ||
export declare const FundamentalsTimeSeries_Modules: string[]; | ||
export type FundamentalsTimeSeriesResults = Array<FundamentalsTimeSeriesResult>; | ||
@@ -16,5 +17,25 @@ export interface FundamentalsTimeSeriesResult { | ||
region?: string; | ||
module: string; | ||
} | ||
export default function fundamentalsTimeSeries(this: ModuleThis, symbol: string, queryOptionsOverrides: FundamentalsTimeSeriesOptions, moduleOptions?: ModuleOptionsWithValidateTrue): Promise<FundamentalsTimeSeriesResult>; | ||
export default function fundamentalsTimeSeries(this: ModuleThis, symbol: string, queryOptionsOverrides: FundamentalsTimeSeriesOptions, moduleOptions?: ModuleOptionsWithValidateFalse): Promise<any>; | ||
/** | ||
* Transform the input options into query parameters. | ||
* The options module defines which keys that are used in the query. | ||
* The keys are joined together into the query parameter type and | ||
* pre-fixed with the options type (e.g. annualTotalRevenue). | ||
* @param queryOptions Input query options. | ||
* @returns Query parameters. | ||
*/ | ||
export declare const processQuery: (queryOptions: FundamentalsTimeSeriesOptions) => Partial<FundamentalsTimeSeriesOptions>; | ||
/** | ||
* Transforms the time-series into an array with reported values per period. | ||
* Each object represents a period and its properties are the data points. | ||
* Financial statement content variates and keys are skipped when empty. | ||
* The query keys include the option type (e.g. annualTotalRevenue). | ||
* In the response the type is removed (e.g. totalRevenue) for | ||
* easier mapping by the client. | ||
* @param response Query response. | ||
* @returns Formatted response. | ||
*/ | ||
export declare const processResponse: (response: any) => any; |
@@ -1,5 +0,9 @@ | ||
export const FundamentalsTimeSeries_Types = { | ||
quarterly: "quarterlyTreasurySharesNumber,quarterlyPreferredSharesNumber,quarterlyOrdinarySharesNumber,quarterlyShareIssued,quarterlyNetDebt,quarterlyTotalDebt,quarterlyTangibleBookValue,quarterlyInvestedCapital,quarterlyWorkingCapital,quarterlyNetTangibleAssets,quarterlyCapitalLeaseObligations,quarterlyCommonStockEquity,quarterlyPreferredStockEquity,quarterlyTotalCapitalization,quarterlyTotalEquityGrossMinorityInterest,quarterlyMinorityInterest,quarterlyStockholdersEquity,quarterlyOtherEquityInterest,quarterlyGainsLossesNotAffectingRetainedEarnings,quarterlyOtherEquityAdjustments,quarterlyFixedAssetsRevaluationReserve,quarterlyForeignCurrencyTranslationAdjustments,quarterlyMinimumPensionLiabilities,quarterlyUnrealizedGainLoss,quarterlyTreasuryStock,quarterlyRetainedEarnings,quarterlyAdditionalPaidInCapital,quarterlyCapitalStock,quarterlyOtherCapitalStock,quarterlyCommonStock,quarterlyPreferredStock,quarterlyTotalPartnershipCapital,quarterlyGeneralPartnershipCapital,quarterlyLimitedPartnershipCapital,quarterlyTotalLiabilitiesNetMinorityInterest,quarterlyTotalNonCurrentLiabilitiesNetMinorityInterest,quarterlyOtherNonCurrentLiabilities,quarterlyLiabilitiesHeldforSaleNonCurrent,quarterlyRestrictedCommonStock,quarterlyPreferredSecuritiesOutsideStockEquity,quarterlyDerivativeProductLiabilities,quarterlyEmployeeBenefits,quarterlyNonCurrentPensionAndOtherPostretirementBenefitPlans,quarterlyNonCurrentAccruedExpenses,quarterlyDuetoRelatedPartiesNonCurrent,quarterlyTradeandOtherPayablesNonCurrent,quarterlyNonCurrentDeferredLiabilities,quarterlyNonCurrentDeferredRevenue,quarterlyNonCurrentDeferredTaxesLiabilities,quarterlyLongTermDebtAndCapitalLeaseObligation,quarterlyLongTermCapitalLeaseObligation,quarterlyLongTermDebt,quarterlyLongTermProvisions,quarterlyCurrentLiabilities,quarterlyOtherCurrentLiabilities,quarterlyCurrentDeferredLiabilities,quarterlyCurrentDeferredRevenue,quarterlyCurrentDeferredTaxesLiabilities,quarterlyCurrentDebtAndCapitalLeaseObligation,quarterlyCurrentCapitalLeaseObligation,quarterlyCurrentDebt,quarterlyOtherCurrentBorrowings,quarterlyLineOfCredit,quarterlyCommercialPaper,quarterlyCurrentNotesPayable,quarterlyPensionandOtherPostRetirementBenefitPlansCurrent,quarterlyCurrentProvisions,quarterlyPayablesAndAccruedExpenses,quarterlyCurrentAccruedExpenses,quarterlyInterestPayable,quarterlyPayables,quarterlyOtherPayable,quarterlyDuetoRelatedPartiesCurrent,quarterlyDividendsPayable,quarterlyTotalTaxPayable,quarterlyIncomeTaxPayable,quarterlyAccountsPayable,quarterlyTotalAssets,quarterlyTotalNonCurrentAssets,quarterlyOtherNonCurrentAssets,quarterlyDefinedPensionBenefit,quarterlyNonCurrentPrepaidAssets,quarterlyNonCurrentDeferredAssets,quarterlyNonCurrentDeferredTaxesAssets,quarterlyDuefromRelatedPartiesNonCurrent,quarterlyNonCurrentNoteReceivables,quarterlyNonCurrentAccountsReceivable,quarterlyFinancialAssets,quarterlyInvestmentsAndAdvances,quarterlyOtherInvestments,quarterlyInvestmentinFinancialAssets,quarterlyHeldToMaturitySecurities,quarterlyAvailableForSaleSecurities,quarterlyFinancialAssetsDesignatedasFairValueThroughProfitorLossTotal,quarterlyTradingSecurities,quarterlyLongTermEquityInvestment,quarterlyInvestmentsinJointVenturesatCost,quarterlyInvestmentsInOtherVenturesUnderEquityMethod,quarterlyInvestmentsinAssociatesatCost,quarterlyInvestmentsinSubsidiariesatCost,quarterlyInvestmentProperties,quarterlyGoodwillAndOtherIntangibleAssets,quarterlyOtherIntangibleAssets,quarterlyGoodwill,quarterlyNetPPE,quarterlyAccumulatedDepreciation,quarterlyGrossPPE,quarterlyLeases,quarterlyConstructionInProgress,quarterlyOtherProperties,quarterlyMachineryFurnitureEquipment,quarterlyBuildingsAndImprovements,quarterlyLandAndImprovements,quarterlyProperties,quarterlyCurrentAssets,quarterlyOtherCurrentAssets,quarterlyHedgingAssetsCurrent,quarterlyAssetsHeldForSaleCurrent,quarterlyCurrentDeferredAssets,quarterlyCurrentDeferredTaxesAssets,quarterlyRestrictedCash,quarterlyPrepaidAssets,quarterlyInventory,quarterlyInventoriesAdjustmentsAllowances,quarterlyOtherInventories,quarterlyFinishedGoods,quarterlyWorkInProcess,quarterlyRawMaterials,quarterlyReceivables,quarterlyReceivablesAdjustmentsAllowances,quarterlyOtherReceivables,quarterlyDuefromRelatedPartiesCurrent,quarterlyTaxesReceivable,quarterlyAccruedInterestReceivable,quarterlyNotesReceivable,quarterlyLoansReceivable,quarterlyAccountsReceivable,quarterlyAllowanceForDoubtfulAccountsReceivable,quarterlyGrossAccountsReceivable,quarterlyCashCashEquivalentsAndShortTermInvestments,quarterlyOtherShortTermInvestments,quarterlyCashAndCashEquivalents,quarterlyCashEquivalents,quarterlyCashFinancial", | ||
annual: "annualTaxEffectOfUnusualItems,trailingTaxEffectOfUnusualItems,annualTaxRateForCalcs,trailingTaxRateForCalcs,annualNormalizedEBITDA,trailingNormalizedEBITDA,annualNormalizedDilutedEPS,trailingNormalizedDilutedEPS,annualNormalizedBasicEPS,trailingNormalizedBasicEPS,annualTotalUnusualItems,trailingTotalUnusualItems,annualTotalUnusualItemsExcludingGoodwill,trailingTotalUnusualItemsExcludingGoodwill,annualNetIncomeFromContinuingOperationNetMinorityInterest,trailingNetIncomeFromContinuingOperationNetMinorityInterest,annualReconciledDepreciation,trailingReconciledDepreciation,annualReconciledCostOfRevenue,trailingReconciledCostOfRevenue,annualEBITDA,trailingEBITDA,annualEBIT,trailingEBIT,annualNetInterestIncome,trailingNetInterestIncome,annualInterestExpense,trailingInterestExpense,annualInterestIncome,trailingInterestIncome,annualContinuingAndDiscontinuedDilutedEPS,trailingContinuingAndDiscontinuedDilutedEPS,annualContinuingAndDiscontinuedBasicEPS,trailingContinuingAndDiscontinuedBasicEPS,annualNormalizedIncome,trailingNormalizedIncome,annualNetIncomeFromContinuingAndDiscontinuedOperation,trailingNetIncomeFromContinuingAndDiscontinuedOperation,annualTotalExpenses,trailingTotalExpenses,annualRentExpenseSupplemental,trailingRentExpenseSupplemental,annualReportedNormalizedDilutedEPS,trailingReportedNormalizedDilutedEPS,annualReportedNormalizedBasicEPS,trailingReportedNormalizedBasicEPS,annualTotalOperatingIncomeAsReported,trailingTotalOperatingIncomeAsReported,annualDividendPerShare,trailingDividendPerShare,annualDilutedAverageShares,trailingDilutedAverageShares,annualBasicAverageShares,trailingBasicAverageShares,annualDilutedEPS,trailingDilutedEPS,annualDilutedEPSOtherGainsLosses,trailingDilutedEPSOtherGainsLosses,annualTaxLossCarryforwardDilutedEPS,trailingTaxLossCarryforwardDilutedEPS,annualDilutedAccountingChange,trailingDilutedAccountingChange,annualDilutedExtraordinary,trailingDilutedExtraordinary,annualDilutedDiscontinuousOperations,trailingDilutedDiscontinuousOperations,annualDilutedContinuousOperations,trailingDilutedContinuousOperations,annualBasicEPS,trailingBasicEPS,annualBasicEPSOtherGainsLosses,trailingBasicEPSOtherGainsLosses,annualTaxLossCarryforwardBasicEPS,trailingTaxLossCarryforwardBasicEPS,annualBasicAccountingChange,trailingBasicAccountingChange,annualBasicExtraordinary,trailingBasicExtraordinary,annualBasicDiscontinuousOperations,trailingBasicDiscontinuousOperations,annualBasicContinuousOperations,trailingBasicContinuousOperations,annualDilutedNIAvailtoComStockholders,trailingDilutedNIAvailtoComStockholders,annualAverageDilutionEarnings,trailingAverageDilutionEarnings,annualNetIncomeCommonStockholders,trailingNetIncomeCommonStockholders,annualOtherunderPreferredStockDividend,trailingOtherunderPreferredStockDividend,annualPreferredStockDividends,trailingPreferredStockDividends,annualNetIncome,trailingNetIncome,annualMinorityInterests,trailingMinorityInterests,annualNetIncomeIncludingNoncontrollingInterests,trailingNetIncomeIncludingNoncontrollingInterests,annualNetIncomeFromTaxLossCarryforward,trailingNetIncomeFromTaxLossCarryforward,annualNetIncomeExtraordinary,trailingNetIncomeExtraordinary,annualNetIncomeDiscontinuousOperations,trailingNetIncomeDiscontinuousOperations,annualNetIncomeContinuousOperations,trailingNetIncomeContinuousOperations,annualEarningsFromEquityInterestNetOfTax,trailingEarningsFromEquityInterestNetOfTax,annualTaxProvision,trailingTaxProvision,annualPretaxIncome,trailingPretaxIncome,annualOtherIncomeExpense,trailingOtherIncomeExpense,annualOtherNonOperatingIncomeExpenses,trailingOtherNonOperatingIncomeExpenses,annualSpecialIncomeCharges,trailingSpecialIncomeCharges,annualGainOnSaleOfPPE,trailingGainOnSaleOfPPE,annualGainOnSaleOfBusiness,trailingGainOnSaleOfBusiness,annualOtherSpecialCharges,trailingOtherSpecialCharges,annualWriteOff,trailingWriteOff,annualImpairmentOfCapitalAssets,trailingImpairmentOfCapitalAssets,annualRestructuringAndMergernAcquisition,trailingRestructuringAndMergernAcquisition,annualSecuritiesAmortization,trailingSecuritiesAmortization,annualEarningsFromEquityInterest,trailingEarningsFromEquityInterest,annualGainOnSaleOfSecurity,trailingGainOnSaleOfSecurity,annualNetNonOperatingInterestIncomeExpense,trailingNetNonOperatingInterestIncomeExpense,annualTotalOtherFinanceCost,trailingTotalOtherFinanceCost,annualInterestExpenseNonOperating,trailingInterestExpenseNonOperating,annualInterestIncomeNonOperating,trailingInterestIncomeNonOperating,annualOperatingIncome,trailingOperatingIncome,annualOperatingExpense,trailingOperatingExpense,annualOtherOperatingExpenses,trailingOtherOperatingExpenses,annualOtherTaxes,trailingOtherTaxes,annualProvisionForDoubtfulAccounts,trailingProvisionForDoubtfulAccounts,annualDepreciationAmortizationDepletionIncomeStatement,trailingDepreciationAmortizationDepletionIncomeStatement,annualDepletionIncomeStatement,trailingDepletionIncomeStatement,annualDepreciationAndAmortizationInIncomeStatement,trailingDepreciationAndAmortizationInIncomeStatement,annualAmortization,trailingAmortization,annualAmortizationOfIntangiblesIncomeStatement,trailingAmortizationOfIntangiblesIncomeStatement,annualDepreciationIncomeStatement,trailingDepreciationIncomeStatement,annualResearchAndDevelopment,trailingResearchAndDevelopment,annualSellingGeneralAndAdministration,trailingSellingGeneralAndAdministration,annualSellingAndMarketingExpense,trailingSellingAndMarketingExpense,annualGeneralAndAdministrativeExpense,trailingGeneralAndAdministrativeExpense,annualOtherGandA,trailingOtherGandA,annualInsuranceAndClaims,trailingInsuranceAndClaims,annualRentAndLandingFees,trailingRentAndLandingFees,annualSalariesAndWages,trailingSalariesAndWages,annualGrossProfit,trailingGrossProfit,annualCostOfRevenue,trailingCostOfRevenue,annualTotalRevenue,trailingTotalRevenue,annualExciseTaxes,trailingExciseTaxes,annualOperatingRevenue,trailingOperatingRevenue", | ||
}; | ||
import Timeseries_Keys from "../lib/timeseries.json.js"; | ||
export const FundamentalsTimeSeries_Types = ["quarterly", "annual", "trailing"]; | ||
export const FundamentalsTimeSeries_Modules = [ | ||
"financials", | ||
"balance-sheet", | ||
"cash-flow", | ||
"all", | ||
]; | ||
const queryOptionsDefaults = { | ||
@@ -22,34 +26,3 @@ merge: false, | ||
overrides: queryOptionsOverrides, | ||
transformWith(queryOptions) { | ||
// Convert dates | ||
if (!queryOptions.period2) | ||
queryOptions.period2 = new Date(); | ||
const dates = ["period1", "period2"]; | ||
for (const fieldName of dates) { | ||
const value = queryOptions[fieldName]; | ||
if (value instanceof Date) | ||
queryOptions[fieldName] = Math.floor(value.getTime() / 1000); | ||
else if (typeof value === "string") { | ||
const timestamp = new Date(value).getTime(); | ||
if (isNaN(timestamp)) | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option '" + | ||
fieldName + | ||
"' invalid date provided: '" + | ||
value + | ||
"'"); | ||
queryOptions[fieldName] = Math.floor(timestamp / 1000); | ||
} | ||
} | ||
if (queryOptions.period1 === queryOptions.period2) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() options `period1` and `period2` " + | ||
"cannot share the same value."); | ||
} | ||
// Add timeseries types | ||
if (!FundamentalsTimeSeries_Types[queryOptions.type || ""]) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option type invalid."); | ||
} | ||
queryOptions.type = | ||
FundamentalsTimeSeries_Types[queryOptions.type || ""]; | ||
return queryOptions; | ||
}, | ||
transformWith: processQuery, | ||
}, | ||
@@ -67,4 +40,72 @@ result: { | ||
} | ||
/** | ||
* Transform the input options into query parameters. | ||
* The options module defines which keys that are used in the query. | ||
* The keys are joined together into the query parameter type and | ||
* pre-fixed with the options type (e.g. annualTotalRevenue). | ||
* @param queryOptions Input query options. | ||
* @returns Query parameters. | ||
*/ | ||
export const processQuery = function (queryOptions) { | ||
// Convert dates | ||
if (!queryOptions.period2) | ||
queryOptions.period2 = new Date(); | ||
const dates = ["period1", "period2"]; | ||
for (const fieldName of dates) { | ||
const value = queryOptions[fieldName]; | ||
if (value instanceof Date) | ||
queryOptions[fieldName] = Math.floor(value.getTime() / 1000); | ||
else if (typeof value === "string") { | ||
const timestamp = new Date(value).getTime(); | ||
if (isNaN(timestamp)) | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option '" + | ||
fieldName + | ||
"' invalid date provided: '" + | ||
value + | ||
"'"); | ||
queryOptions[fieldName] = Math.floor(timestamp / 1000); | ||
} | ||
} | ||
// Validate query parameters. | ||
if (queryOptions.period1 === queryOptions.period2) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() options `period1` and `period2` " + | ||
"cannot share the same value."); | ||
} | ||
else if (!FundamentalsTimeSeries_Types.includes(queryOptions.type || "")) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option type invalid."); | ||
} | ||
else if (!FundamentalsTimeSeries_Modules.includes(queryOptions.module || "")) { | ||
throw new Error("yahooFinance.fundamentalsTimeSeries() option module invalid."); | ||
} | ||
// Join the keys for the module into query types. | ||
const keys = Object.entries(Timeseries_Keys).reduce((previous, [module, keys]) => { | ||
if (queryOptions.module == "all") { | ||
return previous.concat(keys); | ||
} | ||
else if (module == queryOptions.module) { | ||
return previous.concat(keys); | ||
} | ||
else | ||
return previous; | ||
}, []); | ||
const queryType = queryOptions.type + keys.join(`,${queryOptions.type}`); | ||
return { | ||
period1: queryOptions.period1, | ||
period2: queryOptions.period2, | ||
type: queryType, | ||
}; | ||
}; | ||
/** | ||
* Transforms the time-series into an array with reported values per period. | ||
* Each object represents a period and its properties are the data points. | ||
* Financial statement content variates and keys are skipped when empty. | ||
* The query keys include the option type (e.g. annualTotalRevenue). | ||
* In the response the type is removed (e.g. totalRevenue) for | ||
* easier mapping by the client. | ||
* @param response Query response. | ||
* @returns Formatted response. | ||
*/ | ||
export const processResponse = function (response) { | ||
const keyedByTimestamp = {}; | ||
const replace = new RegExp(FundamentalsTimeSeries_Types.join("|")); | ||
for (let ct = 0; ct < response.timeseries.result.length; ct++) { | ||
@@ -86,4 +127,7 @@ const result = response.timeseries.result[ct]; | ||
} | ||
keyedByTimestamp[timestamp][dataKey] = | ||
result[dataKey][ct].reportedValue.raw; | ||
const short = dataKey.replace(replace, ""); | ||
const key = short == short.toUpperCase() | ||
? short | ||
: short[0].toLowerCase() + short.slice(1); | ||
keyedByTimestamp[timestamp][key] = result[dataKey][ct].reportedValue.raw; | ||
} | ||
@@ -90,0 +134,0 @@ } |
{ | ||
"name": "yahoo-finance2", | ||
"version": "2.10.0", | ||
"version": "2.11.0", | ||
"description": "JS API for Yahoo Finance", | ||
@@ -42,2 +42,3 @@ "type": "module", | ||
"schema": "node --loader ts-node/esm scripts/schema.js > schema.json", | ||
"timeseries": "node --loader ts-node/esm scripts/timeseries.js", | ||
"build": "yarn run build:esm && yarn run build:cjs && yarn run build:post", | ||
@@ -76,2 +77,3 @@ "build:esm": "tsc --module es2020 --target es2019 --outDir dist/esm", | ||
"@tsconfig/node12": "12.1.1", | ||
"@types/har-format": "^1.2.15", | ||
"@types/jest": "29.5.12", | ||
@@ -78,0 +80,0 @@ "@types/node-fetch": "2.6.11", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1997565
181
62428
24
13