sec-edgar-api 0.3.4 → 0.4.1
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/build/services/DocumentParser/DocumentParser.d.ts +17 -1
- package/build/services/DocumentParser/DocumentParser.js +17 -2
- package/build/services/DocumentParser/DocumentXmlSplitter.d.ts +17 -0
- package/build/services/DocumentParser/DocumentXmlSplitter.js +38 -0
- package/build/services/DocumentParser/ObjectUtil.d.ts +20 -0
- package/build/services/DocumentParser/ObjectUtil.js +60 -0
- package/build/services/DocumentParser/XBRLParser/HeaderParser.d.ts +38 -0
- package/build/services/DocumentParser/XBRLParser/HeaderParser.js +138 -0
- package/build/services/DocumentParser/XBRLParser/InstanceParser.d.ts +6 -0
- package/build/services/DocumentParser/XBRLParser/InstanceParser.js +106 -0
- package/build/services/DocumentParser/XBRLParser/LinkbaseParser.d.ts +13 -0
- package/build/services/DocumentParser/XBRLParser/LinkbaseParser.js +98 -0
- package/build/services/DocumentParser/XBRLParser/SchemaParser.d.ts +11 -0
- package/build/services/DocumentParser/XBRLParser/SchemaParser.js +142 -0
- package/build/services/DocumentParser/XBRLParser/XBRLParser.d.ts +34 -0
- package/build/services/DocumentParser/XBRLParser/XBRLParser.js +68 -0
- package/build/services/DocumentParser/XBRLParser/util-xbrl.d.ts +17 -0
- package/build/services/DocumentParser/XBRLParser/util-xbrl.js +50 -0
- package/build/services/DocumentParser/XMLParser.d.ts +9 -38
- package/build/services/DocumentParser/XMLParser.js +87 -280
- package/build/services/DocumentParser/XMLParserLegacy.d.ts +43 -0
- package/build/services/DocumentParser/XMLParserLegacy.js +308 -0
- package/build/services/DocumentParser/parsers/index.d.ts +10 -0
- package/build/services/DocumentParser/parsers/index.js +10 -0
- package/build/services/DocumentParser/parsers/parse-companies.d.ts +5 -0
- package/build/services/DocumentParser/parsers/parse-companies.js +52 -0
- package/build/services/DocumentParser/parsers/parse-current-filings-xbrl.d.ts +2 -0
- package/build/services/DocumentParser/parsers/parse-current-filings-xbrl.js +104 -0
- package/build/services/DocumentParser/parsers/parse-current-filings.d.ts +2 -0
- package/build/services/DocumentParser/parsers/parse-current-filings.js +76 -0
- package/build/services/DocumentParser/parsers/parse-form-10k.d.ts +1 -1
- package/build/services/DocumentParser/parsers/parse-form-10k.js +2 -2
- package/build/services/DocumentParser/parsers/parse-form-13g.d.ts +1 -1
- package/build/services/DocumentParser/parsers/parse-form-13g.js +2 -2
- package/build/services/DocumentParser/parsers/parse-form-4.d.ts +1 -1
- package/build/services/DocumentParser/parsers/parse-form-4.js +2 -2
- package/build/services/DocumentParser/parsers/parse-form-def14a.d.ts +1 -1
- package/build/services/DocumentParser/parsers/parse-form-def14a.js +2 -2
- package/build/services/DocumentParser/parsers/parse-insider-transaction.d.ts +7 -0
- package/build/services/DocumentParser/parsers/parse-insider-transaction.js +199 -0
- package/build/services/DocumentParser/parsers/parse-xbrl.d.ts +8 -0
- package/build/services/DocumentParser/parsers/parse-xbrl.js +179 -0
- package/build/services/HtmlTableExtractor/HtmlTableExtractor.d.ts +45 -0
- package/build/services/HtmlTableExtractor/HtmlTableExtractor.js +430 -0
- package/build/services/HtmlTableExtractor/index.d.ts +2 -0
- package/build/services/HtmlTableExtractor/index.js +4 -0
- package/build/services/ReportRawBuilder/FactGrouper.js +6 -6
- package/build/services/ReportRawBuilder/FactSplitAdjuster.js +2 -1
- package/build/services/SecEdgarApi/SecEdgarApi.d.ts +82 -15
- package/build/services/SecEdgarApi/SecEdgarApi.js +170 -21
- package/build/types/company-search.type.d.ts +5 -0
- package/build/types/company-search.type.js +2 -0
- package/build/types/current-filings.type.d.ts +57 -0
- package/build/types/current-filings.type.js +2 -0
- package/build/types/index.d.ts +3 -0
- package/build/types/index.js +3 -0
- package/build/types/insider-transaction.type.d.ts +32 -0
- package/build/types/insider-transaction.type.js +2 -0
- package/build/types/parsed-filings.type.d.ts +3 -3
- package/build/types/xbrl.type.d.ts +155 -0
- package/build/types/xbrl.type.js +2 -0
- package/build/util/constants.d.ts +2 -0
- package/build/util/constants.js +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var XMLParser_1 = require("../XMLParser");
|
|
4
|
+
var util_xbrl_1 = require("./util-xbrl");
|
|
5
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
|
+
var SchemaParser = /** @class */ (function () {
|
|
7
|
+
function SchemaParser() {
|
|
8
|
+
this.xmlParser = new XMLParser_1.default();
|
|
9
|
+
}
|
|
10
|
+
SchemaParser.prototype.parseAppInfo = function (value) {
|
|
11
|
+
var _this = this;
|
|
12
|
+
value = util_xbrl_1.default.toObject(value);
|
|
13
|
+
var appinfo = {};
|
|
14
|
+
for (var key in value) {
|
|
15
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
16
|
+
switch (parsedKey) {
|
|
17
|
+
case 'roleType':
|
|
18
|
+
appinfo.roleType = util_xbrl_1.default.toArray(value[key]).map(function (v) { return _this.parseRoleType(v); });
|
|
19
|
+
break;
|
|
20
|
+
case 'linkbaseRef':
|
|
21
|
+
appinfo.linkbaseRef = util_xbrl_1.default.toArray(value[key]).map(function (v) { return _this.parseLinkbaseRef(v); });
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return appinfo;
|
|
26
|
+
};
|
|
27
|
+
SchemaParser.prototype.parseRoleType = function (value) {
|
|
28
|
+
value = util_xbrl_1.default.toObject(value);
|
|
29
|
+
var roleType = {};
|
|
30
|
+
for (var key in value) {
|
|
31
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
32
|
+
switch (parsedKey) {
|
|
33
|
+
case 'usedOn':
|
|
34
|
+
roleType[parsedKey] = util_xbrl_1.default.toArray(value[key]).map(function (v) { return util_xbrl_1.default.toString(v['#text']); });
|
|
35
|
+
break;
|
|
36
|
+
default:
|
|
37
|
+
roleType[parsedKey] = util_xbrl_1.default.toString(value[key]);
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return roleType;
|
|
42
|
+
};
|
|
43
|
+
SchemaParser.prototype.parseLinkbaseRef = function (value) {
|
|
44
|
+
value = util_xbrl_1.default.toObject(value);
|
|
45
|
+
var item = {};
|
|
46
|
+
for (var key in value) {
|
|
47
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
48
|
+
item[parsedKey] = util_xbrl_1.default.toString(value[key]);
|
|
49
|
+
}
|
|
50
|
+
return item;
|
|
51
|
+
};
|
|
52
|
+
SchemaParser.prototype.parseAnnotation = function (value) {
|
|
53
|
+
value = util_xbrl_1.default.toObject(value);
|
|
54
|
+
var annotation = {};
|
|
55
|
+
for (var key in value) {
|
|
56
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
57
|
+
switch (parsedKey) {
|
|
58
|
+
case 'appinfo':
|
|
59
|
+
annotation.appinfo = this.parseAppInfo(value[key]);
|
|
60
|
+
break;
|
|
61
|
+
case 'documentation':
|
|
62
|
+
annotation.documentation = util_xbrl_1.default.toString(value[key]);
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return annotation;
|
|
67
|
+
};
|
|
68
|
+
SchemaParser.prototype.parseElement = function (value) {
|
|
69
|
+
value = util_xbrl_1.default.toObject(value);
|
|
70
|
+
var element = {
|
|
71
|
+
id: util_xbrl_1.default.toString(value['@_id']),
|
|
72
|
+
name: util_xbrl_1.default.toString(value['@_name']),
|
|
73
|
+
type: util_xbrl_1.default.toString(value['@_type']),
|
|
74
|
+
};
|
|
75
|
+
for (var key in value) {
|
|
76
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
77
|
+
switch (util_xbrl_1.default.parseKey(key)) {
|
|
78
|
+
case 'abstract':
|
|
79
|
+
case 'nillable':
|
|
80
|
+
case 'headUsable':
|
|
81
|
+
element[parsedKey] = util_xbrl_1.default.toBoolean(value[key]);
|
|
82
|
+
break;
|
|
83
|
+
case 'complexType':
|
|
84
|
+
case 'annotation':
|
|
85
|
+
element[parsedKey] = util_xbrl_1.default.toObject(value[key]);
|
|
86
|
+
break;
|
|
87
|
+
default:
|
|
88
|
+
element[parsedKey] = util_xbrl_1.default.toString(value[key]);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return element;
|
|
93
|
+
};
|
|
94
|
+
SchemaParser.prototype.parseImport = function (value) {
|
|
95
|
+
value = util_xbrl_1.default.toObject(value);
|
|
96
|
+
return {
|
|
97
|
+
namespace: util_xbrl_1.default.toString(value['@_namespace']),
|
|
98
|
+
schemaLocation: util_xbrl_1.default.toString(value['@_schemaLocation']),
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
SchemaParser.prototype.parse = function (xml) {
|
|
102
|
+
var _this = this;
|
|
103
|
+
var xbrl = util_xbrl_1.default.extractXbrlObject(this.xmlParser.parse(xml));
|
|
104
|
+
var schemaRaw = null;
|
|
105
|
+
for (var key in xbrl) {
|
|
106
|
+
if (util_xbrl_1.default.parseKey(key) !== 'schema')
|
|
107
|
+
continue;
|
|
108
|
+
schemaRaw = xbrl[key];
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
var value = schemaRaw === null ? xbrl : schemaRaw;
|
|
112
|
+
var schema = {
|
|
113
|
+
xmlns: util_xbrl_1.default.toString(value['@_xmlns']),
|
|
114
|
+
_xmlnsProps: {},
|
|
115
|
+
};
|
|
116
|
+
for (var key in value) {
|
|
117
|
+
var parsedKey = util_xbrl_1.default.parseKey(key);
|
|
118
|
+
switch (parsedKey) {
|
|
119
|
+
case 'annotation':
|
|
120
|
+
schema.annotation = this.parseAnnotation(value[key]);
|
|
121
|
+
break;
|
|
122
|
+
case 'element':
|
|
123
|
+
schema.element = util_xbrl_1.default.toArray(value[key]).map(function (v) { return _this.parseElement(v); });
|
|
124
|
+
break;
|
|
125
|
+
case 'import':
|
|
126
|
+
schema.import = util_xbrl_1.default.toArray(value[key]).map(function (v) { return _this.parseImport(v); });
|
|
127
|
+
break;
|
|
128
|
+
default:
|
|
129
|
+
if (key.startsWith('@_xmlns:')) {
|
|
130
|
+
schema._xmlnsProps[parsedKey] = util_xbrl_1.default.toString(value[key]);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
schema[parsedKey] = util_xbrl_1.default.toString(value[key]);
|
|
134
|
+
}
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return schema;
|
|
139
|
+
};
|
|
140
|
+
return SchemaParser;
|
|
141
|
+
}());
|
|
142
|
+
exports.default = SchemaParser;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { XbrlInstance, XbrlLinkbase, XbrlSchema } from '../../../types/xbrl.type';
|
|
2
|
+
import { XbrlFormHeader } from './HeaderParser';
|
|
3
|
+
export interface XbrlParseResult {
|
|
4
|
+
header: XbrlFormHeader;
|
|
5
|
+
schema: XbrlDocument<XbrlSchema> | null;
|
|
6
|
+
instance: XbrlDocument<XbrlInstance> | null;
|
|
7
|
+
linkbasePresentation: XbrlDocument<XbrlLinkbase> | null;
|
|
8
|
+
linkbaseCalculation: XbrlDocument<XbrlLinkbase> | null;
|
|
9
|
+
linkbaseDefinition: XbrlDocument<XbrlLinkbase> | null;
|
|
10
|
+
linkbaseLabel: XbrlDocument<XbrlLinkbase> | null;
|
|
11
|
+
}
|
|
12
|
+
interface XbrlDocument<T> {
|
|
13
|
+
description: string;
|
|
14
|
+
fileName: string;
|
|
15
|
+
sequence: number;
|
|
16
|
+
type: string;
|
|
17
|
+
xbrl: T;
|
|
18
|
+
}
|
|
19
|
+
interface ParseXbrlOptions {
|
|
20
|
+
includeInstance?: boolean;
|
|
21
|
+
includeLinkbases?: boolean;
|
|
22
|
+
includeSchema?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export default class XBRLParser {
|
|
25
|
+
private readonly splitter;
|
|
26
|
+
private readonly headerParser;
|
|
27
|
+
private readonly linkbaseParser;
|
|
28
|
+
private readonly instanceParser;
|
|
29
|
+
private readonly schemaParser;
|
|
30
|
+
private filterDocuments;
|
|
31
|
+
private createXbrlDocument;
|
|
32
|
+
parse(xml: string, options?: ParseXbrlOptions): XbrlParseResult;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var DocumentXmlSplitter_1 = require("../DocumentXmlSplitter");
|
|
4
|
+
var HeaderParser_1 = require("./HeaderParser");
|
|
5
|
+
var InstanceParser_1 = require("./InstanceParser");
|
|
6
|
+
var LinkbaseParser_1 = require("./LinkbaseParser");
|
|
7
|
+
var SchemaParser_1 = require("./SchemaParser");
|
|
8
|
+
var XBRLParser = /** @class */ (function () {
|
|
9
|
+
function XBRLParser() {
|
|
10
|
+
this.splitter = new DocumentXmlSplitter_1.default();
|
|
11
|
+
this.headerParser = new HeaderParser_1.default();
|
|
12
|
+
this.linkbaseParser = new LinkbaseParser_1.default();
|
|
13
|
+
this.instanceParser = new InstanceParser_1.default();
|
|
14
|
+
this.schemaParser = new SchemaParser_1.default();
|
|
15
|
+
}
|
|
16
|
+
XBRLParser.prototype.filterDocuments = function (documents) {
|
|
17
|
+
var _a, _b, _c, _d, _e, _f;
|
|
18
|
+
var xmlDocs = documents.filter(function (doc) { return doc.fileName.endsWith('.xml') || doc.fileName.endsWith('.xsd'); });
|
|
19
|
+
return {
|
|
20
|
+
instanceDoc: (_a = xmlDocs.find(function (doc) {
|
|
21
|
+
return doc.description.toLowerCase().includes('instance doc') ||
|
|
22
|
+
doc.fileName.endsWith('_htm.xml') ||
|
|
23
|
+
(doc.content.includes('<us-gaap') && doc.content.includes('<context'));
|
|
24
|
+
})) !== null && _a !== void 0 ? _a : null,
|
|
25
|
+
schemaDoc: (_b = xmlDocs.find(function (doc) { return doc.fileName.endsWith('.xsd'); })) !== null && _b !== void 0 ? _b : null,
|
|
26
|
+
linkbasePresentationDoc: (_c = xmlDocs.find(function (doc) { return doc.fileName.endsWith('_pre.xml'); })) !== null && _c !== void 0 ? _c : null,
|
|
27
|
+
linkbaseDefinitionDoc: (_d = xmlDocs.find(function (doc) { return doc.fileName.endsWith('_def.xml'); })) !== null && _d !== void 0 ? _d : null,
|
|
28
|
+
linkbaseCalculationDoc: (_e = xmlDocs.find(function (doc) { return doc.fileName.endsWith('_cal.xml'); })) !== null && _e !== void 0 ? _e : null,
|
|
29
|
+
linkbaseLabelDoc: (_f = xmlDocs.find(function (doc) { return doc.fileName.endsWith('_lab.xml'); })) !== null && _f !== void 0 ? _f : null,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
XBRLParser.prototype.createXbrlDocument = function (doc, xbrl) {
|
|
33
|
+
if (!doc)
|
|
34
|
+
return null;
|
|
35
|
+
var description = doc.description, fileName = doc.fileName, sequence = doc.sequence, type = doc.type;
|
|
36
|
+
return xbrl ? { fileName: fileName, description: description, sequence: sequence, type: type, xbrl: xbrl } : null;
|
|
37
|
+
};
|
|
38
|
+
XBRLParser.prototype.parse = function (xml, options) {
|
|
39
|
+
var _a, _b, _c, _d, _e, _f;
|
|
40
|
+
var _g = options !== null && options !== void 0 ? options : {}, _h = _g.includeInstance, includeInstance = _h === void 0 ? true : _h, _j = _g.includeLinkbases, includeLinkbases = _j === void 0 ? true : _j, _k = _g.includeSchema, includeSchema = _k === void 0 ? true : _k;
|
|
41
|
+
var documents = this.splitter.splitDocumentXml({ xml: xml }).documents;
|
|
42
|
+
var _l = this.filterDocuments(documents), instanceDoc = _l.instanceDoc, linkbaseCalculationDoc = _l.linkbaseCalculationDoc, linkbaseDefinitionDoc = _l.linkbaseDefinitionDoc, linkbaseLabelDoc = _l.linkbaseLabelDoc, linkbasePresentationDoc = _l.linkbasePresentationDoc, schemaDoc = _l.schemaDoc;
|
|
43
|
+
var header = this.headerParser.parse(xml);
|
|
44
|
+
var instance = includeInstance ? this.instanceParser.parse((_a = instanceDoc === null || instanceDoc === void 0 ? void 0 : instanceDoc.content) !== null && _a !== void 0 ? _a : '') : null;
|
|
45
|
+
var schema = includeSchema ? this.schemaParser.parse((_b = schemaDoc === null || schemaDoc === void 0 ? void 0 : schemaDoc.content) !== null && _b !== void 0 ? _b : '') : null;
|
|
46
|
+
var linkbasePresentation = includeLinkbases
|
|
47
|
+
? this.linkbaseParser.parse((_c = linkbasePresentationDoc === null || linkbasePresentationDoc === void 0 ? void 0 : linkbasePresentationDoc.content) !== null && _c !== void 0 ? _c : '')
|
|
48
|
+
: null;
|
|
49
|
+
var linkbaseCalculation = includeLinkbases
|
|
50
|
+
? this.linkbaseParser.parse((_d = linkbaseCalculationDoc === null || linkbaseCalculationDoc === void 0 ? void 0 : linkbaseCalculationDoc.content) !== null && _d !== void 0 ? _d : '')
|
|
51
|
+
: null;
|
|
52
|
+
var linkbaseDefinition = includeLinkbases
|
|
53
|
+
? this.linkbaseParser.parse((_e = linkbaseDefinitionDoc === null || linkbaseDefinitionDoc === void 0 ? void 0 : linkbaseDefinitionDoc.content) !== null && _e !== void 0 ? _e : '')
|
|
54
|
+
: null;
|
|
55
|
+
var linkbaseLabel = includeLinkbases ? this.linkbaseParser.parse((_f = linkbaseLabelDoc === null || linkbaseLabelDoc === void 0 ? void 0 : linkbaseLabelDoc.content) !== null && _f !== void 0 ? _f : '') : null;
|
|
56
|
+
return {
|
|
57
|
+
header: header,
|
|
58
|
+
instance: this.createXbrlDocument(instanceDoc, instance),
|
|
59
|
+
schema: this.createXbrlDocument(schemaDoc, schema),
|
|
60
|
+
linkbasePresentation: this.createXbrlDocument(linkbasePresentationDoc, linkbasePresentation),
|
|
61
|
+
linkbaseCalculation: this.createXbrlDocument(linkbaseCalculationDoc, linkbaseCalculation),
|
|
62
|
+
linkbaseDefinition: this.createXbrlDocument(linkbaseDefinitionDoc, linkbaseDefinition),
|
|
63
|
+
linkbaseLabel: this.createXbrlDocument(linkbaseLabelDoc, linkbaseLabel),
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
return XBRLParser;
|
|
67
|
+
}());
|
|
68
|
+
exports.default = XBRLParser;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare function toArray<T>(value: T): T;
|
|
2
|
+
declare function toNumber(value: any): number;
|
|
3
|
+
declare function toObject<T>(value: T): T;
|
|
4
|
+
declare function toString(value: any): string;
|
|
5
|
+
declare function toBoolean(value: any): boolean;
|
|
6
|
+
declare function parseKey(key: string): string;
|
|
7
|
+
declare function extractXbrlObject(value: any): any;
|
|
8
|
+
declare const utilXbrl: {
|
|
9
|
+
toArray: typeof toArray;
|
|
10
|
+
toNumber: typeof toNumber;
|
|
11
|
+
toObject: typeof toObject;
|
|
12
|
+
toString: typeof toString;
|
|
13
|
+
toBoolean: typeof toBoolean;
|
|
14
|
+
parseKey: typeof parseKey;
|
|
15
|
+
extractXbrlObject: typeof extractXbrlObject;
|
|
16
|
+
};
|
|
17
|
+
export default utilXbrl;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
function toArray(value) {
|
|
5
|
+
return (Array.isArray(value) ? value : [value]).filter(Boolean);
|
|
6
|
+
}
|
|
7
|
+
function toNumber(value) {
|
|
8
|
+
return Number(value);
|
|
9
|
+
}
|
|
10
|
+
function toObject(value) {
|
|
11
|
+
value = Array.isArray(value) ? value[0] : value;
|
|
12
|
+
return (value && typeof value === 'object' ? value : {});
|
|
13
|
+
}
|
|
14
|
+
function toString(value) {
|
|
15
|
+
var _a;
|
|
16
|
+
value = typeof value === 'object' && value !== null ? (_a = value['#text']) !== null && _a !== void 0 ? _a : value : value;
|
|
17
|
+
return String(value || '');
|
|
18
|
+
}
|
|
19
|
+
function toBoolean(value) {
|
|
20
|
+
return typeof value === 'string' ? value.toLowerCase() === 'true' || value === '1' : Boolean(value);
|
|
21
|
+
}
|
|
22
|
+
function parseKey(key) {
|
|
23
|
+
var _a, _b;
|
|
24
|
+
return (_b = (_a = key.split(':').pop()) === null || _a === void 0 ? void 0 : _a.replace('@_', '').replace('#', '')) !== null && _b !== void 0 ? _b : '';
|
|
25
|
+
}
|
|
26
|
+
function extractXbrlObject(value) {
|
|
27
|
+
var _a;
|
|
28
|
+
var xbrl = value;
|
|
29
|
+
if (typeof xbrl !== 'object' || xbrl === null) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
for (var i = 0; i < 10; i++) {
|
|
33
|
+
var xbrlChild = (_a = xbrl.XBRL) !== null && _a !== void 0 ? _a : xbrl.xbrl;
|
|
34
|
+
if (xbrlChild)
|
|
35
|
+
xbrl = xbrlChild;
|
|
36
|
+
else
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
return xbrl;
|
|
40
|
+
}
|
|
41
|
+
var utilXbrl = {
|
|
42
|
+
toArray: toArray,
|
|
43
|
+
toNumber: toNumber,
|
|
44
|
+
toObject: toObject,
|
|
45
|
+
toString: toString,
|
|
46
|
+
toBoolean: toBoolean,
|
|
47
|
+
parseKey: parseKey,
|
|
48
|
+
extractXbrlObject: extractXbrlObject,
|
|
49
|
+
};
|
|
50
|
+
exports.default = utilXbrl;
|
|
@@ -1,40 +1,11 @@
|
|
|
1
|
-
import { DocumentNode } from './XMLNode/DocumentNode';
|
|
2
|
-
interface OnCharacterData {
|
|
3
|
-
char: string;
|
|
4
|
-
index: number;
|
|
5
|
-
path: string;
|
|
6
|
-
pathOccurrenceCount: number;
|
|
7
|
-
attributesStr: string;
|
|
8
|
-
}
|
|
9
|
-
interface ParseTableNodesParams {
|
|
10
|
-
xml: string;
|
|
11
|
-
}
|
|
12
|
-
interface Parse2Params {
|
|
13
|
-
xml: string;
|
|
14
|
-
onCharacter?: (data: OnCharacterData) => void;
|
|
15
|
-
onOpenTag?: (data: OnCharacterData) => void;
|
|
16
|
-
onCloseTag?: (data: OnCharacterData) => void;
|
|
17
|
-
}
|
|
18
|
-
interface IterateTablesParams {
|
|
19
|
-
xml: string;
|
|
20
|
-
parentPath?: string;
|
|
21
|
-
trimSpaces?: boolean;
|
|
22
|
-
onCharacter?: (data: OnCharacterData & {
|
|
23
|
-
textMap: Map<string, string>;
|
|
24
|
-
}) => void;
|
|
25
|
-
onOpenTag?: (data: OnCharacterData & {
|
|
26
|
-
textMap: Map<string, string>;
|
|
27
|
-
}) => void;
|
|
28
|
-
onCloseTag?: (data: OnCharacterData & {
|
|
29
|
-
textMap: Map<string, string>;
|
|
30
|
-
}) => void;
|
|
31
|
-
}
|
|
32
1
|
export default class XMLParser {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
2
|
+
private readonly selfEnclosingTags;
|
|
3
|
+
mapAttributes(attributes: string[]): Map<string, string>;
|
|
4
|
+
parse(xml: string): Record<string, unknown>;
|
|
5
|
+
iterateXML(params: {
|
|
6
|
+
xml: string;
|
|
7
|
+
onOpenTag?: (tagName: string, attributes: string[], isSelfEnclosing: boolean) => void;
|
|
8
|
+
onCloseTag?: (tagName: string) => void;
|
|
9
|
+
onInnerText?: (text: string) => void;
|
|
10
|
+
}): void;
|
|
39
11
|
}
|
|
40
|
-
export {};
|