sec-edgar-api
Version:
Fetch and parse SEC earnings reports and other filings. Useful for financial analysis.
49 lines (48 loc) • 1.59 kB
TypeScript
import type { XbrlInstance, XbrlLinkbase, XbrlSchema } from '../../../types';
import { XbrlMetaLinks } from '../../../types/metalinks.type';
import { DocumentData } from '../DocumentXmlSplitter';
import { XbrlFilingSummary } from './FilingSummaryParser';
import { XbrlFormHeader } from './HeaderParser';
export interface XbrlParseResult {
header: XbrlFormHeader;
schema: XbrlDocument<XbrlSchema> | null;
instance: XbrlDocument<XbrlInstance> | null;
linkbasePresentation: XbrlDocument<XbrlLinkbase> | null;
linkbaseCalculation: XbrlDocument<XbrlLinkbase> | null;
linkbaseDefinition: XbrlDocument<XbrlLinkbase> | null;
linkbaseLabel: XbrlDocument<XbrlLinkbase> | null;
/**
* FilingSummary.xml content
*/
filingSummary: XbrlFilingSummary | null;
/**
* MetaLinks.json content
*/
metaLinks: XbrlMetaLinks | null;
documents: DocumentData[];
}
interface XbrlDocument<T> {
description: string;
fileName: string;
sequence: number;
type: string;
xbrl: T;
}
interface ParseXbrlOptions {
includeInstance?: boolean;
includeLinkbases?: boolean;
includeSchema?: boolean;
}
export default class XBRLParser {
private readonly splitter;
private readonly headerParser;
private readonly linkbaseParser;
private readonly instanceParser;
private readonly schemaParser;
private readonly filingSummaryParser;
private readonly metaLinksParser;
private filterDocuments;
private createXbrlDocument;
parse(xml: string, options?: ParseXbrlOptions): XbrlParseResult;
}
export {};