sec-edgar-api 0.5.9 → 0.5.10

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.
@@ -150,11 +150,11 @@ function buildReportsFromFacts(params) {
150
150
  return { reportFocus: reportFocus, reportByDateRange: reportByDateRange, factsFiltered: Array.from(factByName.values()) };
151
151
  }
152
152
  function parseXbrl(params) {
153
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
153
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
154
154
  var parser = new XBRLParser_1.default();
155
- var xml = params.xml, _k = params.includeReport, includeReport = _k === void 0 ? true : _k, options = __rest(params, ["xml", "includeReport"]);
155
+ var xml = params.xml, _o = params.includeReport, includeReport = _o === void 0 ? true : _o, options = __rest(params, ["xml", "includeReport"]);
156
156
  var response = parser.parse(xml, options);
157
- var _l = (_b = (_a = response.instance) === null || _a === void 0 ? void 0 : _a.xbrl) !== null && _b !== void 0 ? _b : {}, _m = _l.contexts, contexts = _m === void 0 ? [] : _m, _o = _l.factElements, factElements = _o === void 0 ? [] : _o;
157
+ var _p = (_b = (_a = response.instance) === null || _a === void 0 ? void 0 : _a.xbrl) !== null && _b !== void 0 ? _b : {}, _q = _p.contexts, contexts = _q === void 0 ? [] : _q, _r = _p.factElements, factElements = _r === void 0 ? [] : _r;
158
158
  var contextById = new Map();
159
159
  contexts.forEach(function (context) { return contextById.set(context.id, context); });
160
160
  var cik = response.header.cik;
@@ -197,16 +197,20 @@ function parseXbrl(params) {
197
197
  month: Number(response.header.fiscalYearEnd.substring(0, 2)),
198
198
  },
199
199
  });
200
- var _p = fiscalCalculator.getFiscalYearQuarter({ dateStr: response.header.reportDate }), quarter = _p.quarter, year = _p.year;
200
+ var reportDate = (_g = response.header.reportDate) !== null && _g !== void 0 ? _g : (_j = (_h = response.instance) === null || _h === void 0 ? void 0 : _h.xbrl.factElements.find(function (f) { return f.name === 'dei:DocumentPeriodEndDate'; })) === null || _j === void 0 ? void 0 : _j.text;
201
+ if (!reportDate) {
202
+ throw new Error("Report date not found. Unable to determine fiscal year and period. accn: ".concat(accessionNumber));
203
+ }
204
+ var _s = fiscalCalculator.getFiscalYearQuarter({ dateStr: reportDate !== null && reportDate !== void 0 ? reportDate : '' }), quarter = _s.quarter, year = _s.year;
201
205
  fiscalYear = year;
202
206
  fiscalPeriod = (quarter === 4 ? 'FY' : "Q".concat(quarter));
203
207
  }
204
208
  var factsForBuilder = includeReport ? facts : [];
205
- var _q = buildReportsFromFacts({
209
+ var _t = buildReportsFromFacts({
206
210
  facts: factsForBuilder,
207
211
  pathSeparator: '>',
208
- fiscalPeriod: (_g = factsForBuilder.find(function (f) { return f.name === 'dei:DocumentFiscalPeriodFocus'; })) === null || _g === void 0 ? void 0 : _g.value,
209
- fiscalYear: Number((_j = (_h = factsForBuilder.find(function (f) { return f.name === 'dei:DocumentFiscalYearFocus'; })) === null || _h === void 0 ? void 0 : _h.value) !== null && _j !== void 0 ? _j : 0),
212
+ fiscalPeriod: (_k = factsForBuilder.find(function (f) { return f.name === 'dei:DocumentFiscalPeriodFocus'; })) === null || _k === void 0 ? void 0 : _k.value,
213
+ fiscalYear: Number((_m = (_l = factsForBuilder.find(function (f) { return f.name === 'dei:DocumentFiscalYearFocus'; })) === null || _l === void 0 ? void 0 : _l.value) !== null && _m !== void 0 ? _m : 0),
210
214
  cik: response.header.cik,
211
215
  filing: {
212
216
  acceptanceDateTime: response.header.acceptanceDatetime,
@@ -226,7 +230,7 @@ function parseXbrl(params) {
226
230
  url: "https://www.sec.gov/Archives/edgar/data/".concat(cik, "/").concat(accessionNumberNoHyphens, "/").concat(accessionNumber, ".txt"),
227
231
  urlPrimaryDocument: '',
228
232
  },
229
- }), factsFiltered = _q.factsFiltered, reportFocus = _q.reportFocus, reportByDateRange = _q.reportByDateRange;
233
+ }), factsFiltered = _t.factsFiltered, reportFocus = _t.reportFocus, reportByDateRange = _t.reportByDateRange;
230
234
  return __assign(__assign({}, response), { fiscalYear: fiscalYear, fiscalPeriod: fiscalPeriod, facts: factsFiltered, report: factsFiltered.length > 0 ? reportFocus : null, xml: xml, periodReports: Object.values(reportByDateRange) });
231
235
  }
232
236
  exports.parseXbrl = parseXbrl;
@@ -239,6 +239,9 @@ var FactFiscalCalculator = /** @class */ (function () {
239
239
  var _a;
240
240
  var dateStr = params.dateStr, endDateByYearProp = params.endDateByYear, fiscalYearEnd = params.fiscalYearEnd;
241
241
  var endDateByYear = endDateByYearProp !== null && endDateByYearProp !== void 0 ? endDateByYearProp : new Map();
242
+ if (!dateStr) {
243
+ throw new Error('No date provided, cannot determine fiscal year and quarter');
244
+ }
242
245
  if (fiscalYearEnd) {
243
246
  var month = fiscalYearEnd.month, day = fiscalYearEnd.day;
244
247
  var year = new Date().getFullYear();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sec-edgar-api",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "description": "Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.",
5
5
  "main": "build/index.js",
6
6
  "author": "Andrew Evers (https://github.com/andyevers)",