sec-edgar-api 0.2.2 → 0.2.4

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.
Files changed (58) hide show
  1. package/README.md +5 -3
  2. package/build/services/DocumentParser/XMLParser.d.ts +5 -20
  3. package/build/services/DocumentParser/XMLParser.js +118 -122
  4. package/build/services/DocumentParser/parsers/index.d.ts +3 -5
  5. package/build/services/DocumentParser/parsers/index.js +3 -5
  6. package/build/services/DocumentParser/parsers/parse-form-13g.js +2 -2
  7. package/build/services/DocumentParser/parsers/parse-form-4.d.ts +1 -6
  8. package/build/services/DocumentParser/parsers/parse-form-4.js +204 -134
  9. package/build/services/DocumentParser/parsers/parse-form-def14a.d.ts +2 -1
  10. package/build/services/DocumentParser/parsers/parse-form-def14a.js +106 -157
  11. package/build/services/ReportBuilder/FactFiscalCalculator.d.ts +4 -0
  12. package/build/services/ReportBuilder/FactFiscalCalculator.js +4 -0
  13. package/build/services/ReportBuilder/FactPeriodResolver.d.ts +6 -2
  14. package/build/services/ReportBuilder/FactPeriodResolver.js +6 -1
  15. package/build/services/ReportBuilder/FactRecordBuilder.d.ts +4 -1
  16. package/build/services/ReportBuilder/FactRecordBuilder.js +26 -4
  17. package/build/services/ReportBuilder/FactSplitAdjuster.d.ts +12 -1
  18. package/build/services/ReportBuilder/FactSplitAdjuster.js +41 -19
  19. package/build/services/ReportBuilder/ReportBuilder.d.ts +3 -0
  20. package/build/services/ReportBuilder/ReportBuilder.js +33 -13
  21. package/build/services/ReportParser/ReportParser.d.ts +3 -3
  22. package/build/services/ReportParser/ReportParser.js +7 -4
  23. package/build/services/ReportParser/ReportRawParser.d.ts +3 -9
  24. package/build/services/ReportParser/ReportRawParser.js +5 -33
  25. package/build/services/ReportParser/ReportWrapper.js +2 -0
  26. package/build/services/ReportParser/resolvers/resolve-fiscal-year-cumulative-properties.js +2 -1
  27. package/build/services/SecEdgarApi/SecEdgarApi.d.ts +45 -84
  28. package/build/services/SecEdgarApi/SecEdgarApi.js +108 -246
  29. package/build/types/index.d.ts +2 -2
  30. package/build/types/index.js +2 -2
  31. package/build/types/parsed-filings.type.d.ts +5 -144
  32. package/build/types/report-raw.type.d.ts +3 -1
  33. package/build/types/report-translated.type.d.ts +4 -1
  34. package/build/types/submission.type.d.ts +2 -3
  35. package/build/util/key-translations.js +5 -1
  36. package/package.json +2 -5
  37. package/build/services/DocumentParser/HtmlTableExtractor.d.ts +0 -41
  38. package/build/services/DocumentParser/HtmlTableExtractor.js +0 -408
  39. package/build/services/DocumentParser/parsers/parse-current-filings.d.ts +0 -3
  40. package/build/services/DocumentParser/parsers/parse-current-filings.js +0 -98
  41. package/build/services/DocumentParser/parsers/parse-form-13f.d.ts +0 -6
  42. package/build/services/DocumentParser/parsers/parse-form-13f.js +0 -91
  43. package/build/services/ReportParser/FactItem.d.ts +0 -66
  44. package/build/services/ReportParser/FactItem.js +0 -50
  45. package/build/services/ReportParser/FactItemFactory.d.ts +0 -22
  46. package/build/services/ReportParser/FactItemFactory.js +0 -150
  47. package/build/services/ReportParser/FactIterator.d.ts +0 -18
  48. package/build/services/ReportParser/FactIterator.js +0 -35
  49. package/build/services/ReportParser/FactSplitMap.d.ts +0 -16
  50. package/build/services/ReportParser/FactSplitMap.js +0 -101
  51. package/build/types/current-filings-xml.type.d.ts +0 -74
  52. package/build/types/current-filings-xml.type.js +0 -6
  53. package/build/types/current-filings.type.d.ts +0 -44
  54. package/build/types/current-filings.type.js +0 -2
  55. package/build/types/form-13f-xml.type.d.ts +0 -105
  56. package/build/types/form-13f-xml.type.js +0 -2
  57. package/build/types/form-4-xml.type.d.ts +0 -132
  58. package/build/types/form-4-xml.type.js +0 -2
@@ -1,66 +0,0 @@
1
- import { FactValue, FiscalPeriod } from '../../types';
2
- interface FactItemArgs {
3
- factValue: FactValue;
4
- propertyName: string;
5
- description: string;
6
- label: string;
7
- unit: string;
8
- taxonomy: string;
9
- fiscalYear: number;
10
- fiscalPeriod: FiscalPeriod;
11
- fiscalYearEnd: string;
12
- fiscalPeriodEnd: string;
13
- fiscalPeriodFiled: string;
14
- fiscalYearFiled: string;
15
- quarter: number;
16
- factsByYearPeriod: Map<string, FactItem[]>;
17
- factsByPropertyYearPeriod: Map<string, FactItem[]>;
18
- }
19
- export default class FactItem {
20
- readonly description: string;
21
- readonly factValue: FactValue;
22
- readonly label: string;
23
- readonly propertyName: string;
24
- readonly taxonomy: string;
25
- readonly unit: string;
26
- readonly fiscalYear: number;
27
- readonly fiscalPeriod: FiscalPeriod;
28
- /** ex: 2023-09-29 */
29
- readonly fiscalPeriodEnd: string;
30
- /** ex: 2023-09-29 */
31
- readonly fiscalYearEnd: string;
32
- /** ex: 2023-09-29 */
33
- readonly fiscalPeriodFiled: string;
34
- /** ex: 2023-09-29 */
35
- readonly fiscalYearFiled: string;
36
- /** number 1 - 4 */
37
- readonly quarter: number;
38
- private readonly factsByYearPeriod;
39
- private readonly factsByPropertyYearPeriod;
40
- constructor(data: FactItemArgs);
41
- toJSON(): {
42
- description: string;
43
- factValue: FactValue;
44
- label: string;
45
- propertyName: string;
46
- taxonomy: string;
47
- unit: string;
48
- fiscalYear: number;
49
- fiscalPeriod: FiscalPeriod;
50
- fiscalYearEnd: string;
51
- fiscalPeriodEnd: string;
52
- fiscalPeriodFiled: string;
53
- fiscalYearFiled: string;
54
- quarter: number;
55
- };
56
- getFactsInPeriod(params?: {
57
- fiscalYear?: number;
58
- fiscalPeriod?: FiscalPeriod;
59
- }): FactItem[];
60
- getFactsInPeriodProperty(params?: {
61
- fiscalYear?: number;
62
- fiscalPeriod?: FiscalPeriod;
63
- propertyName?: string;
64
- }): FactItem[];
65
- }
66
- export {};
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var FactItem = /** @class */ (function () {
4
- function FactItem(data) {
5
- this.description = data.description;
6
- this.factValue = data.factValue;
7
- this.label = data.label;
8
- this.propertyName = data.propertyName;
9
- this.taxonomy = data.taxonomy;
10
- this.unit = data.unit;
11
- this.fiscalYear = data.fiscalYear;
12
- this.fiscalPeriod = data.fiscalPeriod;
13
- this.quarter = data.quarter;
14
- this.fiscalYearEnd = data.fiscalYearEnd;
15
- this.fiscalPeriodEnd = data.fiscalPeriodEnd;
16
- this.fiscalPeriodFiled = data.fiscalPeriodFiled;
17
- this.fiscalYearFiled = data.fiscalYearFiled;
18
- this.factsByYearPeriod = data.factsByYearPeriod;
19
- this.factsByPropertyYearPeriod = data.factsByPropertyYearPeriod;
20
- }
21
- FactItem.prototype.toJSON = function () {
22
- return {
23
- description: this.description,
24
- factValue: this.factValue,
25
- label: this.label,
26
- propertyName: this.propertyName,
27
- taxonomy: this.taxonomy,
28
- unit: this.unit,
29
- fiscalYear: this.fiscalYear,
30
- fiscalPeriod: this.fiscalPeriod,
31
- fiscalYearEnd: this.fiscalYearEnd,
32
- fiscalPeriodEnd: this.fiscalPeriodEnd,
33
- fiscalPeriodFiled: this.fiscalPeriodFiled,
34
- fiscalYearFiled: this.fiscalYearFiled,
35
- quarter: this.quarter,
36
- };
37
- };
38
- FactItem.prototype.getFactsInPeriod = function (params) {
39
- var _a;
40
- var _b = params !== null && params !== void 0 ? params : {}, _c = _b.fiscalPeriod, fiscalPeriod = _c === void 0 ? this.fiscalPeriod : _c, _d = _b.fiscalYear, fiscalYear = _d === void 0 ? this.fiscalYear : _d;
41
- return (_a = this.factsByYearPeriod.get("".concat(fiscalYear, "-").concat(fiscalPeriod))) !== null && _a !== void 0 ? _a : [];
42
- };
43
- FactItem.prototype.getFactsInPeriodProperty = function (params) {
44
- var _a;
45
- var _b = params !== null && params !== void 0 ? params : {}, _c = _b.fiscalPeriod, fiscalPeriod = _c === void 0 ? this.fiscalPeriod : _c, _d = _b.fiscalYear, fiscalYear = _d === void 0 ? this.fiscalYear : _d, _e = _b.propertyName, propertyName = _e === void 0 ? this.propertyName : _e;
46
- return (_a = this.factsByPropertyYearPeriod.get("".concat(propertyName, "-").concat(fiscalYear, "-").concat(fiscalPeriod))) !== null && _a !== void 0 ? _a : [];
47
- };
48
- return FactItem;
49
- }());
50
- exports.default = FactItem;
@@ -1,22 +0,0 @@
1
- import { CompanyFactListData } from '../../types';
2
- import FactItem from './FactItem';
3
- import FactIterator from './FactIterator';
4
- import { default as FactSplitMap, default as FactSplitMapper } from './FactSplitMap';
5
- interface ReportRawParserArgs {
6
- factIterator?: FactIterator;
7
- factSplitMapper?: FactSplitMapper;
8
- }
9
- export default class FactItemFactory {
10
- private readonly factIterator;
11
- constructor(args?: ReportRawParserArgs);
12
- /**
13
- * Creates FactItem instances from sorted by end date ascending
14
- */
15
- createFactItems(companyFactListData: Pick<CompanyFactListData, 'facts'>): {
16
- factSplitMap: FactSplitMap;
17
- factItems: FactItem[];
18
- };
19
- private getFiscalPeriod;
20
- private getFiscalYearQuarter;
21
- }
22
- export {};
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var FactItem_1 = require("./FactItem");
4
- var FactIterator_1 = require("./FactIterator");
5
- var FactSplitMap_1 = require("./FactSplitMap");
6
- var FactItemFactory = /** @class */ (function () {
7
- function FactItemFactory(args) {
8
- var _a = (args !== null && args !== void 0 ? args : {}).factIterator, factIterator = _a === void 0 ? new FactIterator_1.default() : _a;
9
- this.factIterator = factIterator;
10
- }
11
- /**
12
- * Creates FactItem instances from sorted by end date ascending
13
- */
14
- FactItemFactory.prototype.createFactItems = function (companyFactListData) {
15
- var _this = this;
16
- var dateStrsQuarter = new Set();
17
- var endDateByYear = new Map();
18
- var factsFlat = [];
19
- var filedByEndDate = new Map();
20
- var factSplitMap = new FactSplitMap_1.default();
21
- this.factIterator.iterateCompanyFacts(companyFactListData, function (data) {
22
- var _a, _b;
23
- factsFlat.push(data);
24
- var filedProp = data.factValue.filed;
25
- var earliestFiled = (_a = filedByEndDate.get(data.factValue.end)) !== null && _a !== void 0 ? _a : filedProp;
26
- // all report filed dates matter, even if not included because missing frame.
27
- if (filedProp <= earliestFiled && filedProp > data.factValue.end && data.factValue.form !== '8-K') {
28
- filedByEndDate.set(data.factValue.end, filedProp);
29
- }
30
- if (!data.factValue.frame || data.factValue.frame.endsWith('I')) {
31
- return;
32
- }
33
- dateStrsQuarter.add(data.factValue.end);
34
- if (((_b = data.factValue.frame) === null || _b === void 0 ? void 0 : _b.length) === 6) {
35
- var calendarYear = data.factValue.end.split('-')[0];
36
- endDateByYear.set(Number(calendarYear), new Date(data.factValue.end));
37
- }
38
- });
39
- var fiscalsByDates = new Map();
40
- var endDateByYearQuarter = new Map();
41
- dateStrsQuarter.forEach(function (dateStr) {
42
- var fiscals = _this.getFiscalYearQuarter({ dateStr: dateStr, endDateByYear: endDateByYear });
43
- var quarter = fiscals.quarter, year = fiscals.year;
44
- var key = "".concat(year, "-").concat(quarter);
45
- fiscalsByDates.set(dateStr, fiscals);
46
- endDateByYearQuarter.set(key, dateStr);
47
- });
48
- // factsFlat.sort((a, b) => (a.factValue.end > b.factValue.end ? 1 : -1))
49
- var factsByYearPeriod = new Map();
50
- var factsByPropertyYearPeriod = new Map();
51
- var factItems = factsFlat.map(function (data) {
52
- var _a, _b, _c, _d, _e, _f, _g;
53
- var factValue = data.factValue, description = data.description, label = data.label, propertyName = data.propertyName, taxonomy = data.taxonomy, unit = data.unit;
54
- var dateStr = factValue.end;
55
- var fiscals = (_a = fiscalsByDates.get(dateStr)) !== null && _a !== void 0 ? _a : _this.getFiscalYearQuarter({ dateStr: dateStr, endDateByYear: endDateByYear });
56
- fiscalsByDates.set(dateStr, fiscals);
57
- var fiscalPeriod = _this.getFiscalPeriod({ factValue: factValue, quarter: fiscals.quarter });
58
- var fiscalPeriodEnd = (_b = endDateByYearQuarter.get("".concat(fiscals.year, "-").concat(fiscals.quarter))) !== null && _b !== void 0 ? _b : factValue.end;
59
- var fiscalYearEnd = (_c = endDateByYearQuarter.get("".concat(fiscals.year, "-4"))) !== null && _c !== void 0 ? _c : factValue.end;
60
- var factItem = new FactItem_1.default({
61
- description: description,
62
- factValue: factValue,
63
- label: label,
64
- propertyName: propertyName,
65
- taxonomy: taxonomy,
66
- unit: unit,
67
- fiscalYear: fiscals.year,
68
- fiscalPeriod: fiscalPeriod,
69
- fiscalYearEnd: fiscalYearEnd,
70
- fiscalPeriodEnd: fiscalPeriodEnd,
71
- factsByYearPeriod: factsByYearPeriod,
72
- factsByPropertyYearPeriod: factsByPropertyYearPeriod,
73
- fiscalPeriodFiled: (_d = filedByEndDate.get(fiscalPeriodEnd)) !== null && _d !== void 0 ? _d : factValue.filed,
74
- fiscalYearFiled: (_e = filedByEndDate.get(fiscalYearEnd)) !== null && _e !== void 0 ? _e : factValue.filed,
75
- quarter: fiscals.quarter,
76
- });
77
- var keyFiscal = "".concat(fiscals.year, "-").concat(fiscalPeriod);
78
- var keyProperty = "".concat(data.propertyName, "-").concat(keyFiscal);
79
- var bucket = (_f = factsByYearPeriod.get(keyFiscal)) !== null && _f !== void 0 ? _f : [];
80
- bucket.push(factItem);
81
- factsByYearPeriod.set(keyFiscal, bucket);
82
- var bucketProperty = (_g = factsByPropertyYearPeriod.get(keyProperty)) !== null && _g !== void 0 ? _g : [];
83
- bucketProperty.push(factItem);
84
- factsByPropertyYearPeriod.set(keyProperty, bucketProperty);
85
- factSplitMap.addFact(factItem);
86
- return factItem;
87
- });
88
- factItems.sort(function (a, b) { return (a.factValue.filed > b.factValue.filed ? 1 : -1); });
89
- return { factSplitMap: factSplitMap, factItems: factItems };
90
- };
91
- FactItemFactory.prototype.getFiscalPeriod = function (params) {
92
- var _a;
93
- var factValue = params.factValue, quarter = params.quarter;
94
- if (factValue.frame) {
95
- return factValue.frame.length === 6 ? 'FY' : "Q".concat(quarter);
96
- }
97
- var startDate = new Date((_a = factValue.start) !== null && _a !== void 0 ? _a : factValue.end);
98
- var endDate = new Date(factValue.end);
99
- var isYearDuration = (endDate.getTime() - startDate.getTime()) / 86400000 > 245;
100
- return isYearDuration ? 'FY' : "Q".concat(quarter);
101
- };
102
- FactItemFactory.prototype.getFiscalYearQuarter = function (params) {
103
- var dateStr = params.dateStr, endDateByYear = params.endDateByYear;
104
- var getYearEndDate = function (year) {
105
- var _a;
106
- var YEAR_MS = 31536000000;
107
- var date = endDateByYear.get(year);
108
- var datePrev = endDateByYear.get(year - 1);
109
- var dateNext = endDateByYear.get(year + 1);
110
- if (date)
111
- return date;
112
- if (datePrev)
113
- return new Date(datePrev.getTime() + YEAR_MS);
114
- if (dateNext)
115
- return new Date(dateNext.getTime() - YEAR_MS);
116
- var prevKnownYear = Math.max.apply(Math, Array.from(endDateByYear.keys()));
117
- var prevKnownDate = endDateByYear.get(prevKnownYear);
118
- var years = (year - prevKnownYear) * YEAR_MS;
119
- return new Date(((_a = prevKnownDate === null || prevKnownDate === void 0 ? void 0 : prevKnownDate.getTime()) !== null && _a !== void 0 ? _a : 0) + years);
120
- };
121
- var getDaysBefore = function (dateA, dateB) {
122
- return (dateB.getTime() - dateA.getTime()) / 86400000;
123
- };
124
- var getFiscalQuarter = function (daysBeforeYearEnd) {
125
- var fiscalPeriod = 1;
126
- if (daysBeforeYearEnd < 45) {
127
- fiscalPeriod = 4;
128
- }
129
- else if (daysBeforeYearEnd < 135) {
130
- fiscalPeriod = 3;
131
- }
132
- else if (daysBeforeYearEnd < 225) {
133
- fiscalPeriod = 2;
134
- }
135
- return fiscalPeriod;
136
- };
137
- var yearQuarter = Number(dateStr.split('-')[0]);
138
- var dateQuarter = new Date(dateStr);
139
- var yearEndDate = getYearEndDate(yearQuarter);
140
- var daysBefore = getDaysBefore(dateQuarter, yearEndDate);
141
- var isCurFiscalYear = daysBefore > -30;
142
- var fiscalYear = isCurFiscalYear ? yearQuarter : yearQuarter + 1;
143
- var fiscalYearEndDate = isCurFiscalYear ? yearEndDate : getYearEndDate(fiscalYear);
144
- var daysFromYearEnd = (fiscalYearEndDate.getTime() - dateQuarter.getTime()) / 86400000;
145
- var quarter = getFiscalQuarter(daysFromYearEnd);
146
- return { quarter: quarter, year: fiscalYear };
147
- };
148
- return FactItemFactory;
149
- }());
150
- exports.default = FactItemFactory;
@@ -1,18 +0,0 @@
1
- import { CompanyFactListData, FactValue } from '../../types/company-facts.type';
2
- export interface IterateFactsCallbackData {
3
- factValue: FactValue;
4
- propertyName: string;
5
- description: string;
6
- label: string;
7
- unit: string;
8
- taxonomy: string;
9
- stopIteration: () => void;
10
- }
11
- export default class FactIterator {
12
- /**
13
- * Avoids deep nesting logic while iteratating through company facts
14
- *
15
- * @param callback called on each company fact.
16
- */
17
- iterateCompanyFacts(companyFactListData: Pick<CompanyFactListData, 'facts'>, callback: (data: IterateFactsCallbackData) => void): void;
18
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var FactIterator = /** @class */ (function () {
4
- function FactIterator() {
5
- }
6
- /**
7
- * Avoids deep nesting logic while iteratating through company facts
8
- *
9
- * @param callback called on each company fact.
10
- */
11
- FactIterator.prototype.iterateCompanyFacts = function (companyFactListData, callback) {
12
- var facts = companyFactListData.facts;
13
- var shouldContinue = true;
14
- var stopIteration = function () {
15
- shouldContinue = false;
16
- };
17
- for (var taxonomy in facts) {
18
- var factByPropertyName = facts[taxonomy];
19
- for (var propertyName in factByPropertyName) {
20
- var _a = factByPropertyName[propertyName], description = _a.description, label = _a.label, units = _a.units;
21
- for (var unit in units) {
22
- var factValues = units[unit];
23
- for (var _i = 0, factValues_1 = factValues; _i < factValues_1.length; _i++) {
24
- var factValue = factValues_1[_i];
25
- callback({ factValue: factValue, taxonomy: taxonomy, propertyName: propertyName, unit: unit, description: description, label: label, stopIteration: stopIteration });
26
- if (!shouldContinue)
27
- return;
28
- }
29
- }
30
- }
31
- }
32
- };
33
- return FactIterator;
34
- }());
35
- exports.default = FactIterator;
@@ -1,16 +0,0 @@
1
- import FactItem from './FactItem';
2
- interface SplitData {
3
- factItem: FactItem;
4
- firstFiled: string;
5
- }
6
- export default class FactSplitMap {
7
- private readonly splitKey;
8
- private readonly splitByFiscalYearAmount;
9
- constructor();
10
- addFact(factItem: FactItem): void;
11
- getSplits(): SplitData[];
12
- isSplitFact(factItem: FactItem): boolean;
13
- private didApplySplit;
14
- getSplitAdjustedValue(factItem: FactItem): number;
15
- }
16
- export {};
@@ -1,101 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var FactSplitMap = /** @class */ (function () {
4
- function FactSplitMap() {
5
- this.splitByFiscalYearAmount = new Map();
6
- this.splitKey = 'StockholdersEquityNoteStockSplitConversionRatio1';
7
- }
8
- FactSplitMap.prototype.addFact = function (factItem) {
9
- if (factItem.propertyName !== this.splitKey) {
10
- return;
11
- }
12
- var split = factItem.factValue.val;
13
- var key = "".concat(factItem.fiscalYear, "-").concat(split);
14
- var prevSplit = this.splitByFiscalYearAmount.get(key);
15
- if (!prevSplit) {
16
- this.splitByFiscalYearAmount.set(key, {
17
- factItem: factItem,
18
- firstFiled: factItem.factValue.filed,
19
- });
20
- return;
21
- }
22
- var curEnd = factItem.factValue.end;
23
- var curFiled = factItem.factValue.filed;
24
- var prevEnd = prevSplit.factItem.factValue.end;
25
- var prevFiled = prevSplit.factItem.factValue.filed;
26
- var shouldUpdateFactItem = !prevSplit || prevEnd < curEnd || (prevEnd === curEnd && prevFiled > curFiled);
27
- var shouldUpdateFirstFiled = prevFiled > curFiled;
28
- this.splitByFiscalYearAmount.set(key, {
29
- factItem: shouldUpdateFactItem ? factItem : prevSplit.factItem,
30
- firstFiled: shouldUpdateFirstFiled ? curFiled : prevSplit === null || prevSplit === void 0 ? void 0 : prevSplit.firstFiled,
31
- });
32
- };
33
- FactSplitMap.prototype.getSplits = function () {
34
- return Array.from(this.splitByFiscalYearAmount.values());
35
- };
36
- FactSplitMap.prototype.isSplitFact = function (factItem) {
37
- var _a;
38
- return (((_a = this.splitByFiscalYearAmount.get("".concat(factItem.fiscalYear, "-").concat(factItem.factValue.val))) === null || _a === void 0 ? void 0 : _a.factItem) === factItem);
39
- };
40
- FactSplitMap.prototype.didApplySplit = function (factItem, split) {
41
- var splitNode = split.factItem;
42
- if (factItem.factValue.filed > splitNode.factValue.filed) {
43
- return true;
44
- }
45
- if (factItem.factValue.filed < split.firstFiled) {
46
- return false;
47
- }
48
- var isShares = factItem.unit === 'shares';
49
- var quarter = factItem.quarter;
50
- var factsNextQuarter = factItem.getFactsInPeriodProperty({
51
- fiscalPeriod: "Q".concat(quarter === 4 ? 1 : quarter + 1),
52
- fiscalYear: quarter === 4 ? factItem.fiscalYear + 1 : factItem.fiscalYear,
53
- });
54
- var factsPrevQuarter = factItem.getFactsInPeriodProperty({
55
- fiscalPeriod: "Q".concat(quarter === 1 ? 4 : quarter - 1),
56
- fiscalYear: quarter === 1 ? factItem.fiscalYear - 1 : factItem.fiscalYear,
57
- });
58
- var val = factItem.factValue.val;
59
- var splitVal = split.factItem.factValue.val;
60
- var valWithSplit = isShares ? splitVal * val : val / splitVal;
61
- if (factsNextQuarter.length > 0) {
62
- // expect next quarter to have split
63
- var nextFact = factsNextQuarter.reduce(function (f, cur) { return (cur.factValue.frame && cur.factValue.filed >= f.factValue.filed ? cur : f); }, factsNextQuarter[0]);
64
- var difference = Math.abs(nextFact.factValue.val - val);
65
- var differenceSplit = Math.abs(nextFact.factValue.val - valWithSplit);
66
- return difference < differenceSplit;
67
- }
68
- if (factsPrevQuarter.length > 0) {
69
- // split adjustments will already be applied to prev frames by now
70
- var prevFact = factsPrevQuarter.reduce(function (f, cur) { return (cur.factValue.frame && cur.factValue.filed >= f.factValue.filed ? cur : f); }, factsPrevQuarter[0]);
71
- var difference = Math.abs(prevFact.factValue.val - val);
72
- var differenceSplit = Math.abs(prevFact.factValue.val - valWithSplit);
73
- return difference < differenceSplit;
74
- }
75
- return false;
76
- };
77
- FactSplitMap.prototype.getSplitAdjustedValue = function (factItem) {
78
- var splits = this.getSplits();
79
- var isShares = factItem.unit === 'shares';
80
- var isSharesRatio = !isShares && factItem.unit.includes('share'); // ex: USD/shares or USD-per-share
81
- var value = factItem.factValue.val;
82
- if (isShares || isSharesRatio) {
83
- for (var _i = 0, splits_1 = splits; _i < splits_1.length; _i++) {
84
- var split = splits_1[_i];
85
- if (this.didApplySplit(factItem, split)) {
86
- continue;
87
- }
88
- if (isSharesRatio) {
89
- value /= split.factItem.factValue.val;
90
- }
91
- else if (isShares) {
92
- value *= split.factItem.factValue.val;
93
- }
94
- }
95
- value = Math.round(value * 100) / 100;
96
- }
97
- return value;
98
- };
99
- return FactSplitMap;
100
- }());
101
- exports.default = FactSplitMap;
@@ -1,74 +0,0 @@
1
- export interface CurrentFilingsXML {
2
- '?xml': XML;
3
- rss: RSSXML;
4
- }
5
- interface XML {
6
- '@_version': string;
7
- '@_encoding': string;
8
- }
9
- interface RSSXML {
10
- channel: ChannelXML;
11
- '@_version': string;
12
- }
13
- interface ChannelXML {
14
- title: string;
15
- link: string;
16
- 'atom:link': AtomLinkXML;
17
- description: string;
18
- language: string;
19
- pubDate: string;
20
- lastBuildDate: string;
21
- item: ItemXML[];
22
- }
23
- interface AtomLinkXML {
24
- '@_href': string;
25
- '@_rel': string;
26
- '@_type': string;
27
- '@_xmlns:atom': string;
28
- }
29
- interface ItemXML {
30
- title: string;
31
- link: string;
32
- guid: string;
33
- enclosure: EnclosureXML;
34
- description: string;
35
- pubDate: string;
36
- 'edgar:xbrlFiling': EdgarXbrlFilingXML;
37
- }
38
- interface EdgarXbrlFilingXML {
39
- 'edgar:companyName': string;
40
- 'edgar:formType': string;
41
- 'edgar:filingDate': string;
42
- 'edgar:cikNumber': number;
43
- 'edgar:accessionNumber': string;
44
- 'edgar:fileNumber': string;
45
- 'edgar:acceptanceDatetime': number;
46
- 'edgar:period'?: number;
47
- 'edgar:assistantDirector'?: string;
48
- 'edgar:assignedSic'?: number;
49
- 'edgar:fiscalYearEnd'?: number;
50
- 'edgar:xbrlFiles': EdgarXbrlFilesXML;
51
- '@_xmlns:edgar': string;
52
- 'edgar:otherCikNumbers'?: number | string;
53
- }
54
- interface EdgarXbrlFilesXML {
55
- 'edgar:xbrlFile': EdgarXbrlFileXML[];
56
- }
57
- interface EdgarXbrlFileXML {
58
- '@_edgar:sequence': string;
59
- '@_edgar:file': string;
60
- '@_edgar:type': string;
61
- '@_edgar:size': string;
62
- '@_edgar:description': string;
63
- '@_edgar:inlineXBRL'?: string;
64
- '@_edgar:url': string;
65
- }
66
- interface EnclosureXML {
67
- '@_url': string;
68
- '@_length': string;
69
- '@_type': Type;
70
- }
71
- declare enum Type {
72
- ApplicationZip = "application/zip"
73
- }
74
- export {};
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var Type;
4
- (function (Type) {
5
- Type["ApplicationZip"] = "application/zip";
6
- })(Type || (Type = {}));
@@ -1,44 +0,0 @@
1
- export interface CurrentFilingsList {
2
- title: string;
3
- link: string;
4
- href: string;
5
- description: string;
6
- language: string;
7
- pubDate: string;
8
- lastBuildDate: string;
9
- items: CurrentFiling[];
10
- }
11
- export interface CurrentFiling {
12
- title: string;
13
- link: string;
14
- guid: string;
15
- enclosureUrl: string;
16
- enclosureLength: string;
17
- enclosureType: string;
18
- description: string;
19
- pubDate: string;
20
- filing: Filing;
21
- }
22
- export interface Filing {
23
- companyName: string;
24
- formType: string;
25
- filingDate: string;
26
- cikNumber: number;
27
- accessionNumber: string;
28
- fileNumber: string;
29
- acceptanceDatetime: string;
30
- period: string;
31
- assistantDirector: string;
32
- assignedSic: number;
33
- fiscalYearEnd: string;
34
- xbrlFiles: XbrlFile[];
35
- }
36
- export interface XbrlFile {
37
- sequence: number;
38
- file: string;
39
- type: string;
40
- size: number;
41
- description: string;
42
- inlineXBRL: boolean;
43
- url: string;
44
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });