beancount 0.0.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/README.md +82 -0
- package/build/src/benchmark.d.mts +1 -0
- package/build/src/benchmark.mjs +28 -0
- package/build/src/classes/Booking.d.mts +4 -0
- package/build/src/classes/Booking.mjs +7 -0
- package/build/src/classes/DateEntry.d.mts +25 -0
- package/build/src/classes/DateEntry.mjs +33 -0
- package/build/src/classes/Entry.d.mts +30 -0
- package/build/src/classes/Entry.mjs +33 -0
- package/build/src/classes/ParseResult.d.mts +9 -0
- package/build/src/classes/ParseResult.mjs +19 -0
- package/build/src/classes/Posting.d.mts +11 -0
- package/build/src/classes/Posting.mjs +37 -0
- package/build/src/classes/Transaction.d.mts +4 -0
- package/build/src/classes/Transaction.mjs +7 -0
- package/build/src/classes/Value.d.mts +12 -0
- package/build/src/classes/Value.mjs +32 -0
- package/build/src/classes/entryTypes/Balance.d.mts +13 -0
- package/build/src/classes/entryTypes/Balance.mjs +33 -0
- package/build/src/classes/entryTypes/Blankline.d.mts +8 -0
- package/build/src/classes/entryTypes/Blankline.mjs +22 -0
- package/build/src/classes/entryTypes/Close.d.mts +8 -0
- package/build/src/classes/entryTypes/Close.mjs +20 -0
- package/build/src/classes/entryTypes/Comment.d.mts +8 -0
- package/build/src/classes/entryTypes/Comment.mjs +22 -0
- package/build/src/classes/entryTypes/Commodity.d.mts +8 -0
- package/build/src/classes/entryTypes/Commodity.mjs +20 -0
- package/build/src/classes/entryTypes/Custom.d.mts +10 -0
- package/build/src/classes/entryTypes/Custom.mjs +27 -0
- package/build/src/classes/entryTypes/Document.d.mts +9 -0
- package/build/src/classes/entryTypes/Document.mjs +23 -0
- package/build/src/classes/entryTypes/Event.d.mts +10 -0
- package/build/src/classes/entryTypes/Event.mjs +23 -0
- package/build/src/classes/entryTypes/Include.d.mts +8 -0
- package/build/src/classes/entryTypes/Include.mjs +20 -0
- package/build/src/classes/entryTypes/Note.d.mts +9 -0
- package/build/src/classes/entryTypes/Note.mjs +23 -0
- package/build/src/classes/entryTypes/Open.d.mts +12 -0
- package/build/src/classes/entryTypes/Open.mjs +53 -0
- package/build/src/classes/entryTypes/Option.d.mts +10 -0
- package/build/src/classes/entryTypes/Option.mjs +21 -0
- package/build/src/classes/entryTypes/Pad.d.mts +9 -0
- package/build/src/classes/entryTypes/Pad.mjs +22 -0
- package/build/src/classes/entryTypes/Plugin.d.mts +9 -0
- package/build/src/classes/entryTypes/Plugin.mjs +25 -0
- package/build/src/classes/entryTypes/Poptag.d.mts +9 -0
- package/build/src/classes/entryTypes/Poptag.mjs +23 -0
- package/build/src/classes/entryTypes/Price.d.mts +11 -0
- package/build/src/classes/entryTypes/Price.mjs +27 -0
- package/build/src/classes/entryTypes/Pushtag.d.mts +9 -0
- package/build/src/classes/entryTypes/Pushtag.mjs +23 -0
- package/build/src/classes/entryTypes/Query.d.mts +9 -0
- package/build/src/classes/entryTypes/Query.mjs +23 -0
- package/build/src/classes/entryTypes/Transaction/Posting.d.mts +16 -0
- package/build/src/classes/entryTypes/Transaction/Posting.mjs +53 -0
- package/build/src/classes/entryTypes/Transaction/Tag.d.mts +9 -0
- package/build/src/classes/entryTypes/Transaction/Tag.mjs +11 -0
- package/build/src/classes/entryTypes/Transaction/index.d.mts +17 -0
- package/build/src/classes/entryTypes/Transaction/index.mjs +102 -0
- package/build/src/classes/entryTypes/Transaction.d.mts +12 -0
- package/build/src/classes/entryTypes/Transaction.mjs +52 -0
- package/build/src/classes/entryTypes/index.d.mts +19 -0
- package/build/src/classes/entryTypes/index.mjs +19 -0
- package/build/src/example.d.mts +1 -0
- package/build/src/example.mjs +20 -0
- package/build/src/genericParse.d.mts +24 -0
- package/build/src/genericParse.mjs +53 -0
- package/build/src/interfaces.d.mts +1 -0
- package/build/src/interfaces.mjs +1 -0
- package/build/src/parse.d.mts +29 -0
- package/build/src/parse.mjs +105 -0
- package/build/src/test.d.mts +1 -0
- package/build/src/test.mjs +7 -0
- package/build/src/utils/countChar.d.mts +1 -0
- package/build/src/utils/countChar.mjs +3 -0
- package/build/src/utils/formatPrice.d.mts +9 -0
- package/build/src/utils/formatPrice.mjs +21 -0
- package/build/src/utils/formatValue.d.mts +2 -0
- package/build/src/utils/formatValue.mjs +6 -0
- package/build/src/utils/parseMetadata.d.mts +3 -0
- package/build/src/utils/parseMetadata.mjs +16 -0
- package/build/src/utils/parseVal.d.mts +3 -0
- package/build/src/utils/parseVal.mjs +16 -0
- package/build/src/utils/simpleParseLine.d.mts +1 -0
- package/build/src/utils/simpleParseLine.mjs +1 -0
- package/build/src/utils/stringAwareParseLine.d.mts +1 -0
- package/build/src/utils/stringAwareParseLine.mjs +24 -0
- package/build/src/utils/stringAwareSplitLine.d.mts +1 -0
- package/build/src/utils/stringAwareSplitLine.mjs +32 -0
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { assertEntryConstructor } from '../Entry.mjs';
|
|
2
|
+
import { DateEntry } from '../DateEntry.mjs';
|
|
3
|
+
import { Posting } from '../Posting.mjs';
|
|
4
|
+
import { stringAwareParseLine } from '../../utils/stringAwareParseLine.mjs';
|
|
5
|
+
import { parseString } from '../../utils/parseVal.mjs';
|
|
6
|
+
import { parseMetadata } from '../../utils/parseMetadata.mjs';
|
|
7
|
+
const AccountTypes = ['Assets', 'Liabilities', 'Equity', 'Income', 'Expenses'];
|
|
8
|
+
export class Transaction extends DateEntry {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.type = 'transaction';
|
|
12
|
+
}
|
|
13
|
+
static fromGenericParseResult(genericParseResult) {
|
|
14
|
+
const [payee, narration] = stringAwareParseLine(genericParseResult.header);
|
|
15
|
+
const unparsedPostings = [];
|
|
16
|
+
const unparsedMetadata = [];
|
|
17
|
+
genericParseResult.body.forEach((line) => {
|
|
18
|
+
// V remove flag, V get account type
|
|
19
|
+
const accountType = line.replace(/^[^ ] /, '').split(':')[0];
|
|
20
|
+
if (AccountTypes.includes(accountType)) {
|
|
21
|
+
unparsedPostings.push(line);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
unparsedMetadata.push(line);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
const postings = unparsedPostings.map((p) => Posting.fromGenericParseResult(p));
|
|
28
|
+
const metadata = parseMetadata(unparsedMetadata);
|
|
29
|
+
return new Transaction({
|
|
30
|
+
...genericParseResult.props,
|
|
31
|
+
payee: parseString(payee),
|
|
32
|
+
narration: narration ? parseString(narration) : undefined,
|
|
33
|
+
postings,
|
|
34
|
+
metadata,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
toString() {
|
|
38
|
+
const firstLine = [
|
|
39
|
+
this.date.toJSON(),
|
|
40
|
+
this.flag ?? 'txn',
|
|
41
|
+
`"${this.payee}"`,
|
|
42
|
+
];
|
|
43
|
+
if (this.narration !== undefined) {
|
|
44
|
+
firstLine.push(`"${this.narration}"`);
|
|
45
|
+
}
|
|
46
|
+
const lines = [firstLine.join(' ') + this.getMetaDataString()];
|
|
47
|
+
lines.push(...this.postings.map((p) => ` ${p.toString()}`));
|
|
48
|
+
return lines.join('\n');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Ensure class conforms to EntryConstructor pattern
|
|
52
|
+
assertEntryConstructor(Transaction);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { Transaction } from './Transaction/index.mjs';
|
|
2
|
+
export { Balance } from './Balance.mjs';
|
|
3
|
+
export { Blankline } from './Blankline.mjs';
|
|
4
|
+
export { Close } from './Close.mjs';
|
|
5
|
+
export { Comment } from './Comment.mjs';
|
|
6
|
+
export { Commodity } from './Commodity.mjs';
|
|
7
|
+
export { Custom } from './Custom.mjs';
|
|
8
|
+
export { Document } from './Document.mjs';
|
|
9
|
+
export { Event } from './Event.mjs';
|
|
10
|
+
export { Include } from './Include.mjs';
|
|
11
|
+
export { Note } from './Note.mjs';
|
|
12
|
+
export { Open } from './Open.mjs';
|
|
13
|
+
export { Option } from './Option.mjs';
|
|
14
|
+
export { Pad } from './Pad.mjs';
|
|
15
|
+
export { Plugin } from './Plugin.mjs';
|
|
16
|
+
export { Price } from './Price.mjs';
|
|
17
|
+
export { Poptag } from './Poptag.mjs';
|
|
18
|
+
export { Pushtag } from './Pushtag.mjs';
|
|
19
|
+
export { Query } from './Query.mjs';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { Transaction } from './Transaction/index.mjs';
|
|
2
|
+
export { Balance } from './Balance.mjs';
|
|
3
|
+
export { Blankline } from './Blankline.mjs';
|
|
4
|
+
export { Close } from './Close.mjs';
|
|
5
|
+
export { Comment } from './Comment.mjs';
|
|
6
|
+
export { Commodity } from './Commodity.mjs';
|
|
7
|
+
export { Custom } from './Custom.mjs';
|
|
8
|
+
export { Document } from './Document.mjs';
|
|
9
|
+
export { Event } from './Event.mjs';
|
|
10
|
+
export { Include } from './Include.mjs';
|
|
11
|
+
export { Note } from './Note.mjs';
|
|
12
|
+
export { Open } from './Open.mjs';
|
|
13
|
+
export { Option } from './Option.mjs';
|
|
14
|
+
export { Pad } from './Pad.mjs';
|
|
15
|
+
export { Plugin } from './Plugin.mjs';
|
|
16
|
+
export { Price } from './Price.mjs';
|
|
17
|
+
export { Poptag } from './Poptag.mjs';
|
|
18
|
+
export { Pushtag } from './Pushtag.mjs';
|
|
19
|
+
export { Query } from './Query.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parse } from './parse.mjs';
|
|
2
|
+
const input = `
|
|
3
|
+
2023-02-09 * "EDISON POWER" ""
|
|
4
|
+
Assets:US:BofA:Checking -65.00 USD
|
|
5
|
+
Expenses:Home:Electricity 65.00 USD
|
|
6
|
+
|
|
7
|
+
2023-02-18 * "Verizon Wireless" ""
|
|
8
|
+
Assets:US:BofA:Checking -57.50 USD
|
|
9
|
+
Expenses:Home:Phone 57.50 USD
|
|
10
|
+
`;
|
|
11
|
+
const parsed = parse(input);
|
|
12
|
+
console.log('before:\n');
|
|
13
|
+
console.log(parsed.toBeancount());
|
|
14
|
+
const firstTransaction = parsed.entries[0];
|
|
15
|
+
firstTransaction.payee = 'HOOIIIII';
|
|
16
|
+
firstTransaction.narration = 'TESSSST';
|
|
17
|
+
firstTransaction.postings[0].amount = '99999.00';
|
|
18
|
+
console.log('\n\nafter:\n');
|
|
19
|
+
console.log(parsed.toBeancount());
|
|
20
|
+
console.log(parsed);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { EntryType } from './parse.mjs';
|
|
2
|
+
import { type Metadata } from './utils/parseMetadata.mjs';
|
|
3
|
+
export interface GenericParseResult {
|
|
4
|
+
type: EntryType;
|
|
5
|
+
header: string;
|
|
6
|
+
props: {
|
|
7
|
+
comment?: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface GenericParseResultWithDate extends GenericParseResult {
|
|
11
|
+
props: GenericParseResult['props'] & {
|
|
12
|
+
date: string;
|
|
13
|
+
metadata?: Metadata;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface GenericParseResultTransaction extends Omit<GenericParseResultWithDate, 'metadata'> {
|
|
17
|
+
body: string[];
|
|
18
|
+
flag?: string;
|
|
19
|
+
props: GenericParseResult['props'] & {
|
|
20
|
+
date: string;
|
|
21
|
+
flag?: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare const genericParse: (unparsedEntry: string[]) => GenericParseResult | GenericParseResultTransaction | GenericParseResultWithDate;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { parseMetadata } from './utils/parseMetadata.mjs';
|
|
2
|
+
export const genericParse = (unparsedEntry) => {
|
|
3
|
+
const [firstLine, ...rest] = unparsedEntry;
|
|
4
|
+
const splitFirstLine = firstLine.split(' ');
|
|
5
|
+
if (/\d{4}-\d{2}-\d{2}/.exec(splitFirstLine[0])) {
|
|
6
|
+
let type = splitFirstLine[1];
|
|
7
|
+
let flag;
|
|
8
|
+
if (type.length === 1) {
|
|
9
|
+
flag = type;
|
|
10
|
+
// flag!
|
|
11
|
+
type = 'transaction';
|
|
12
|
+
}
|
|
13
|
+
// special case
|
|
14
|
+
if (type === 'txn') {
|
|
15
|
+
type = 'transaction';
|
|
16
|
+
}
|
|
17
|
+
if (type === 'transaction') {
|
|
18
|
+
const date = splitFirstLine[0].trim();
|
|
19
|
+
const [header, ...comment] = splitFirstLine.slice(2).join(' ').split(';');
|
|
20
|
+
return {
|
|
21
|
+
type,
|
|
22
|
+
header: header.trim(),
|
|
23
|
+
body: rest.map((r) => r.trim()),
|
|
24
|
+
props: {
|
|
25
|
+
date,
|
|
26
|
+
flag,
|
|
27
|
+
comment: comment.length > 0 ? comment.join(';').trim() : undefined,
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const date = splitFirstLine[0].trim();
|
|
32
|
+
const metadata = parseMetadata(rest);
|
|
33
|
+
const [header, ...comment] = splitFirstLine.slice(2).join(' ').split(';');
|
|
34
|
+
return {
|
|
35
|
+
type,
|
|
36
|
+
header: header.trim(),
|
|
37
|
+
props: {
|
|
38
|
+
date,
|
|
39
|
+
metadata,
|
|
40
|
+
comment: comment.length > 0 ? comment.join(';').trim() : undefined,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const [header, ...comment] = splitFirstLine.slice(1).join(' ').split(';');
|
|
45
|
+
return {
|
|
46
|
+
type: splitFirstLine[0].trim(),
|
|
47
|
+
header: header.trim(),
|
|
48
|
+
props: {
|
|
49
|
+
metadata: parseMetadata(rest),
|
|
50
|
+
comment: comment.length > 0 ? comment.join(';').trim() : undefined,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ParseResult } from './classes/ParseResult.mjs';
|
|
2
|
+
import { Transaction, Balance, Close, Comment, Commodity, Custom, Document, Event, Include, Note, Open, Option, Pad, Plugin, Poptag, Price, Pushtag, Query, Blankline } from './classes/entryTypes/index.mjs';
|
|
3
|
+
declare const entryTypes: {
|
|
4
|
+
transaction: typeof Transaction;
|
|
5
|
+
balance: typeof Balance;
|
|
6
|
+
close: typeof Close;
|
|
7
|
+
commodity: typeof Commodity;
|
|
8
|
+
custom: typeof Custom;
|
|
9
|
+
document: typeof Document;
|
|
10
|
+
event: typeof Event;
|
|
11
|
+
include: typeof Include;
|
|
12
|
+
note: typeof Note;
|
|
13
|
+
open: typeof Open;
|
|
14
|
+
option: typeof Option;
|
|
15
|
+
pad: typeof Pad;
|
|
16
|
+
plugin: typeof Plugin;
|
|
17
|
+
poptag: typeof Poptag;
|
|
18
|
+
price: typeof Price;
|
|
19
|
+
pushtag: typeof Pushtag;
|
|
20
|
+
query: typeof Query;
|
|
21
|
+
};
|
|
22
|
+
export type EntryType = keyof typeof entryTypes;
|
|
23
|
+
export declare const splitStringIntoUnparsedEntries: (input: string) => string[][];
|
|
24
|
+
export declare const parseEntry: (unparsedEntry: string[], skipBlanklines?: boolean) => Open | Transaction | Balance | Close | Commodity | Custom | Document | Event | Include | Note | Option | Pad | Plugin | Poptag | Price | Pushtag | Query | Blankline | Comment | undefined;
|
|
25
|
+
export interface ParseOptions {
|
|
26
|
+
skipBlanklines?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare const parse: (input: string, { skipBlanklines }?: ParseOptions) => ParseResult;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { ParseResult } from './classes/ParseResult.mjs';
|
|
3
|
+
import { Transaction, Balance, Close, Comment, Commodity, Custom, Document, Event, Include, Note, Open, Option, Pad, Plugin, Poptag, Price, Pushtag, Query, Blankline, } from './classes/entryTypes/index.mjs';
|
|
4
|
+
import { countChar } from './utils/countChar.mjs';
|
|
5
|
+
import { stringAwareSplitLine } from './utils/stringAwareSplitLine.mjs';
|
|
6
|
+
import { genericParse, } from './genericParse.mjs';
|
|
7
|
+
// from https://beancount.github.io/docs/beancount_language_syntax.html#directives-1
|
|
8
|
+
const entryTypes = {
|
|
9
|
+
transaction: Transaction,
|
|
10
|
+
balance: Balance,
|
|
11
|
+
close: Close,
|
|
12
|
+
commodity: Commodity,
|
|
13
|
+
custom: Custom,
|
|
14
|
+
document: Document,
|
|
15
|
+
event: Event,
|
|
16
|
+
include: Include,
|
|
17
|
+
note: Note,
|
|
18
|
+
open: Open,
|
|
19
|
+
option: Option,
|
|
20
|
+
pad: Pad,
|
|
21
|
+
plugin: Plugin,
|
|
22
|
+
poptag: Poptag,
|
|
23
|
+
price: Price,
|
|
24
|
+
pushtag: Pushtag,
|
|
25
|
+
query: Query,
|
|
26
|
+
};
|
|
27
|
+
export const splitStringIntoUnparsedEntries = (input) => {
|
|
28
|
+
const lines = input.split('\n');
|
|
29
|
+
// split up the file into entries
|
|
30
|
+
let inEntry = false;
|
|
31
|
+
let inString = false;
|
|
32
|
+
const unparsedEntries = lines.reduce((acc, line) => {
|
|
33
|
+
if (!inString) {
|
|
34
|
+
if (line.trim() === '') {
|
|
35
|
+
// empty newline, next entry starts
|
|
36
|
+
inEntry = false;
|
|
37
|
+
}
|
|
38
|
+
if (!line.startsWith(' ') && inEntry) {
|
|
39
|
+
// no indent, new entry
|
|
40
|
+
inEntry = false;
|
|
41
|
+
}
|
|
42
|
+
if (!inEntry) {
|
|
43
|
+
acc.push([]);
|
|
44
|
+
inEntry = true;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
acc[acc.length - 1].push(line);
|
|
48
|
+
// odd number of ", we're in an unclosed string
|
|
49
|
+
if (countChar(line, '"') % 2 === 1) {
|
|
50
|
+
inString = !inString;
|
|
51
|
+
}
|
|
52
|
+
return acc;
|
|
53
|
+
}, []);
|
|
54
|
+
return unparsedEntries.map((lines) => stringAwareSplitLine(lines.join('\n')));
|
|
55
|
+
};
|
|
56
|
+
export const parseEntry = (unparsedEntry, skipBlanklines = true) => {
|
|
57
|
+
const genericParseResult = genericParse(unparsedEntry);
|
|
58
|
+
const { type } = genericParseResult;
|
|
59
|
+
const EntryClass = entryTypes[type];
|
|
60
|
+
if (EntryClass) {
|
|
61
|
+
return EntryClass.fromGenericParseResult(genericParseResult);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
assert(unparsedEntry.length === 1);
|
|
65
|
+
const unparsedEntryLine = unparsedEntry[0];
|
|
66
|
+
if (unparsedEntryLine === '') {
|
|
67
|
+
if (skipBlanklines) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
return Blankline.fromGenericParseResult({});
|
|
71
|
+
}
|
|
72
|
+
return Comment.fromGenericParseResult({
|
|
73
|
+
type: 'comment',
|
|
74
|
+
props: { comment: unparsedEntryLine },
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
export const parse = (input, { skipBlanklines = true } = {}) => {
|
|
79
|
+
const unparsedEntries = splitStringIntoUnparsedEntries(input);
|
|
80
|
+
const parsedEntries = [];
|
|
81
|
+
const tagStack = [];
|
|
82
|
+
for (const unparsedEntry of unparsedEntries) {
|
|
83
|
+
const parsedEntry = parseEntry(unparsedEntry, skipBlanklines);
|
|
84
|
+
if (parsedEntry) {
|
|
85
|
+
if (parsedEntry.type === 'pushtag') {
|
|
86
|
+
tagStack.push(parsedEntry.tag);
|
|
87
|
+
}
|
|
88
|
+
else if (parsedEntry.type === 'poptag') {
|
|
89
|
+
// Find and remove the most recent matching tag from the stack
|
|
90
|
+
const tagToRemove = parsedEntry.tag.content;
|
|
91
|
+
for (let i = tagStack.length - 1; i >= 0; i--) {
|
|
92
|
+
if (tagStack[i].content === tagToRemove) {
|
|
93
|
+
tagStack.splice(i, 1);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (parsedEntry.type === 'transaction') {
|
|
99
|
+
parsedEntry.tags.push(...tagStack);
|
|
100
|
+
}
|
|
101
|
+
parsedEntries.push(parsedEntry);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return new ParseResult(parsedEntries);
|
|
105
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { parse } from './parse.mjs';
|
|
3
|
+
const file = './test/example-full.beancount';
|
|
4
|
+
const fileBuffer = fs.readFileSync(file);
|
|
5
|
+
const fileText = fileBuffer.toString();
|
|
6
|
+
const result = parse(fileText, { skipBlanklines: false });
|
|
7
|
+
fs.writeFileSync('./out.beancount', result.toFormattedString());
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const countChar: (line: string, charToCount: string) => number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a price string from amount and currency components.
|
|
3
|
+
* Returns undefined if either amount or currency is missing.
|
|
4
|
+
*
|
|
5
|
+
* @param amount - The amount portion of the price
|
|
6
|
+
* @param currency - The currency portion of the price
|
|
7
|
+
* @returns Formatted price string "amount currency" or undefined
|
|
8
|
+
*/
|
|
9
|
+
export declare const formatPrice: (amount: string | undefined, currency: string | undefined, cost?: string, priceAmount?: string, priceCurrency?: string) => string | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a price string from amount and currency components.
|
|
3
|
+
* Returns undefined if either amount or currency is missing.
|
|
4
|
+
*
|
|
5
|
+
* @param amount - The amount portion of the price
|
|
6
|
+
* @param currency - The currency portion of the price
|
|
7
|
+
* @returns Formatted price string "amount currency" or undefined
|
|
8
|
+
*/
|
|
9
|
+
export const formatPrice = (amount, currency, cost, priceAmount, priceCurrency) => {
|
|
10
|
+
if (!amount || !currency) {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
const result = [amount.trim() + ' ' + currency.trim()];
|
|
14
|
+
if (cost) {
|
|
15
|
+
result.push(`{${cost.trim()}}`);
|
|
16
|
+
}
|
|
17
|
+
if (priceAmount && priceCurrency) {
|
|
18
|
+
result.push('@', formatPrice(priceAmount, priceCurrency));
|
|
19
|
+
}
|
|
20
|
+
return result.join(' ');
|
|
21
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Value } from '../classes/Value.mjs';
|
|
2
|
+
export const parseMetadata = (rest) => {
|
|
3
|
+
if (rest.length === 0) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
return rest
|
|
7
|
+
.filter((r) => r.trim().length > 0)
|
|
8
|
+
.reduce((acc, line) => {
|
|
9
|
+
const matches = /^(.*?): *(.*)$/.exec(line.trim());
|
|
10
|
+
if (!matches) {
|
|
11
|
+
throw new Error('Could not parse metadata');
|
|
12
|
+
}
|
|
13
|
+
acc[matches[1]] = Value.fromString(matches[2]);
|
|
14
|
+
return acc;
|
|
15
|
+
}, {});
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const parseString = (val) => {
|
|
2
|
+
return val.replace(/^"|"$/g, '');
|
|
3
|
+
};
|
|
4
|
+
export const parseVal = (val) => {
|
|
5
|
+
if (val.startsWith('"') && val.endsWith('"')) {
|
|
6
|
+
// string!
|
|
7
|
+
return parseString(val);
|
|
8
|
+
}
|
|
9
|
+
if (val.toUpperCase() === 'TRUE') {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
if (val.toUpperCase() === 'FALSE') {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
return val;
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const simpleParseLine: (line: string) => string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const simpleParseLine = (line) => line.split(' ').filter((e) => e !== '');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const stringAwareParseLine: (line: string) => string[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const stringAwareParseLine = (line) => {
|
|
2
|
+
const result = [];
|
|
3
|
+
let current = '';
|
|
4
|
+
let inQuotes = false;
|
|
5
|
+
for (const char of line) {
|
|
6
|
+
if (char === '"') {
|
|
7
|
+
inQuotes = !inQuotes;
|
|
8
|
+
current += char;
|
|
9
|
+
}
|
|
10
|
+
else if (char === ' ' && !inQuotes) {
|
|
11
|
+
if (current !== '') {
|
|
12
|
+
result.push(current);
|
|
13
|
+
current = '';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
current += char;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (current !== '') {
|
|
21
|
+
result.push(current);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const stringAwareSplitLine: (input: string) => string[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const stringAwareSplitLine = (input) => {
|
|
2
|
+
const result = [];
|
|
3
|
+
let current = '';
|
|
4
|
+
let inQuotes = false;
|
|
5
|
+
let isEscaped = false;
|
|
6
|
+
for (const char of input) {
|
|
7
|
+
if (isEscaped) {
|
|
8
|
+
current += char;
|
|
9
|
+
isEscaped = false;
|
|
10
|
+
}
|
|
11
|
+
else if (char === '\\' && inQuotes) {
|
|
12
|
+
current += char;
|
|
13
|
+
isEscaped = true;
|
|
14
|
+
}
|
|
15
|
+
else if (char === '"') {
|
|
16
|
+
inQuotes = !inQuotes;
|
|
17
|
+
current += char;
|
|
18
|
+
}
|
|
19
|
+
else if (char === '\n' && !inQuotes) {
|
|
20
|
+
result.push(current);
|
|
21
|
+
current = '';
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
current += char;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (inQuotes) {
|
|
28
|
+
throw new Error('Unclosed quote in input string');
|
|
29
|
+
}
|
|
30
|
+
result.push(current);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/classes/Value.mts","../src/utils/parseMetadata.mts","../src/genericParse.mts","../src/utils/stringAwareSplitLine.mts","../src/classes/Entry.mts","../node_modules/@js-temporal/polyfill/index.d.ts","../src/classes/DateEntry.mts","../src/utils/stringAwareParseLine.mts","../src/utils/formatPrice.mts","../src/classes/entryTypes/Transaction/Posting.mts","../src/classes/entryTypes/Transaction/Tag.mts","../src/classes/entryTypes/Transaction/index.mts","../src/utils/simpleParseLine.mts","../src/classes/entryTypes/Balance.mts","../src/classes/entryTypes/Blankline.mts","../src/classes/entryTypes/Close.mts","../src/classes/entryTypes/Comment.mts","../src/classes/entryTypes/Commodity.mts","../src/classes/entryTypes/Custom.mts","../src/classes/entryTypes/Document.mts","../src/classes/entryTypes/Event.mts","../src/classes/entryTypes/Include.mts","../src/classes/entryTypes/Note.mts","../src/classes/entryTypes/Open.mts","../src/classes/entryTypes/Option.mts","../src/classes/entryTypes/Pad.mts","../src/classes/entryTypes/Plugin.mts","../src/classes/entryTypes/Price.mts","../src/classes/entryTypes/Poptag.mts","../src/classes/entryTypes/Pushtag.mts","../src/classes/entryTypes/Query.mts","../src/classes/entryTypes/index.mts","../src/classes/ParseResult.mts","../src/utils/countChar.mts","../src/parse.mts","../src/benchmark.mts","../src/interfaces.mts","../src/test.mts","../node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/@types/node/compatibility/index.d.ts","../node_modules/@types/node/globals.typedarray.d.ts","../node_modules/@types/node/buffer.buffer.d.ts","../node_modules/undici-types/header.d.ts","../node_modules/undici-types/readable.d.ts","../node_modules/undici-types/file.d.ts","../node_modules/undici-types/fetch.d.ts","../node_modules/undici-types/formdata.d.ts","../node_modules/undici-types/connector.d.ts","../node_modules/undici-types/client.d.ts","../node_modules/undici-types/errors.d.ts","../node_modules/undici-types/dispatcher.d.ts","../node_modules/undici-types/global-dispatcher.d.ts","../node_modules/undici-types/global-origin.d.ts","../node_modules/undici-types/pool-stats.d.ts","../node_modules/undici-types/pool.d.ts","../node_modules/undici-types/handlers.d.ts","../node_modules/undici-types/balanced-pool.d.ts","../node_modules/undici-types/agent.d.ts","../node_modules/undici-types/mock-interceptor.d.ts","../node_modules/undici-types/mock-agent.d.ts","../node_modules/undici-types/mock-client.d.ts","../node_modules/undici-types/mock-pool.d.ts","../node_modules/undici-types/mock-errors.d.ts","../node_modules/undici-types/proxy-agent.d.ts","../node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/undici-types/retry-handler.d.ts","../node_modules/undici-types/retry-agent.d.ts","../node_modules/undici-types/api.d.ts","../node_modules/undici-types/interceptors.d.ts","../node_modules/undici-types/util.d.ts","../node_modules/undici-types/cookies.d.ts","../node_modules/undici-types/patch.d.ts","../node_modules/undici-types/websocket.d.ts","../node_modules/undici-types/eventsource.d.ts","../node_modules/undici-types/filereader.d.ts","../node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/undici-types/content-type.d.ts","../node_modules/undici-types/cache.d.ts","../node_modules/undici-types/index.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/sea.d.ts","../node_modules/@types/node/sqlite.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/index.d.ts"],"fileIdsList":[[116,158],[116,155,158],[116,157,158],[158],[116,158,163,193],[116,158,159,164,170,171,178,190,201],[116,158,159,160,170,178],[111,112,113,116,158],[116,158,161,202],[116,158,162,163,171,179],[116,158,163,190,198],[116,158,164,166,170,178],[116,157,158,165],[116,158,166,167],[116,158,168,170],[116,157,158,170],[116,158,170,171,172,190,201],[116,158,170,171,172,185,190,193],[116,153,158],[116,153,158,166,170,173,178,190,201],[116,158,170,171,173,174,178,190,198,201],[116,158,173,175,190,198,201],[114,115,116,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207],[116,158,170,176],[116,158,177,201],[116,158,166,170,178,190],[116,158,179],[116,158,180],[116,157,158,181],[116,155,156,157,158,159,160,161,162,163,164,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207],[116,158,183],[116,158,184],[116,158,170,185,186],[116,158,185,187,202,204],[116,158,170,190,191,193],[116,158,192,193],[116,158,190,191],[116,158,193],[116,158,194],[116,155,158,190,195],[116,158,170,196,197],[116,158,196,197],[116,158,163,178,190,198],[116,158,199],[116,158,178,200],[116,158,173,184,201],[116,158,163,202],[116,158,190,203],[116,158,177,204],[116,158,205],[116,158,170,172,181,190,193,201,203,204,206],[116,158,190,207],[116,125,129,158,201],[116,125,158,190,201],[116,120,158],[116,122,125,158,198,201],[116,158,178,198],[116,158,208],[116,120,158,208],[116,122,125,158,178,201],[116,117,118,121,124,158,170,190,201],[116,125,132,158],[116,117,123,158],[116,125,146,147,158],[116,121,125,158,193,201,208],[116,146,158,208],[116,119,120,158,208],[116,125,158],[116,119,120,121,122,123,124,125,126,127,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,147,148,149,150,151,152,158],[116,125,140,158],[116,125,132,133,158],[116,123,125,133,134,158],[116,124,158],[116,117,120,125,158],[116,125,129,133,134,158],[116,129,158],[116,123,125,128,158,201],[116,117,122,125,132,158],[116,158,190],[116,120,125,146,158,206,208],[107,116,158,171],[73,77,78,107,116,158],[75,76,107,116,158],[77,104,116,158],[75,77,79,81,85,116,158],[75,77,116,158],[75,77,79,116,158],[73,75,77,79,85,116,158],[73,75,77,79,80,116,158],[73,75,77,80,116,158],[75,77,79,85,116,158],[75,77,83,85,116,158],[77,81,116,158],[73,74,75,77,79,80,82,83,116,158],[84,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,116,158],[74,107,116,158],[75,76,83,104,105,106,116,155,158],[73,116,158]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7aefef2f2bbca8a500f0f9ed9dec9a924a573541cb0cb54d53359dbfef32bb10","signature":"b09bd8ff7d7105db797f4874d049ff47e468f0a753857136134a40df458cb8af","impliedFormat":99},{"version":"d4a790ba991ad6efa289350a102ebac20207b7d1598a66aec69ecc0fd6080711","signature":"42496e88f0cbfe4c25862a2cce08e3c9e8448c44c5390bfa937cabc1c463e3e8","impliedFormat":99},{"version":"84540ced8db6872b35474c3c835a26387fe61ef299eab4fcbd3f02669ba51cae","signature":"a4e8d43712ee10fc8769eb57e4e5c71c7f62e23ed0eaa43e1968516cbf7c6cb2","impliedFormat":99},{"version":"4a687ebfadb561270fc84056431cb0b65df40764c0c47a25f98bc3e02378a324","signature":"5a6e46b497cee0d74c7157d217a8aabd544317cde85a627c5eb97e120f93c297","impliedFormat":99},{"version":"b02b13d8121baaeca94a7f6beb588428e3ec52d7eab68921438c4be8790f84ed","signature":"94964f7454bd3539db369357d5ed55302ebde2858a7bb743d2d5ee4e59b17aac","impliedFormat":99},{"version":"893fbc7e2a50a3a780d3d6eb6899e45fe8dc4ca56708770b4731e481f55af599","impliedFormat":99},{"version":"0985a5396e53607743cef2386dfbed3206fe93adc701cbaf20b544a213283e28","signature":"0d6d4d22d59c93f1e512c898a63ac3f76e98ed76cba607417a092a7c921d61d7","impliedFormat":99},{"version":"37f5fbe62b9037f914fc74c5a3d60d8dd8ebd1f6993b8f4574382c09b8100524","signature":"2923739e73265ae737b461fdbbdd44b46f4c015e1e004a1280510f8498785cc9","impliedFormat":99},{"version":"71db162d4df42835de14517365cf8bf9890b05aebcf278a7519ce5a876d8f9cf","signature":"e1cd76f6dd3a489e180026a8479fb4867da35881921e66225eb1668fff46c2a5","impliedFormat":99},{"version":"69fb5269bcf94b11e9e8f19990c0249aaaf2a27b36b7f77c107cf8a210238f04","signature":"7cd89cd7260d6f91a0ab05fc2084525ac4191f6e95e6f3f418357a6a19a1e87c","impliedFormat":99},{"version":"6dad600a76b2b420f447a5c723f522e8542be353419c48198151f34dedbc9339","signature":"8226a8b376302daa83ebfe924d8edca1ac2f11ee70777651823f80e6d7d6eee5","impliedFormat":99},{"version":"79832fc74d258df2c46622647a3b89465af4f4eeba6d422e7cfe3d25ec635143","signature":"ecefc3eb2a2bcf108144e15db4aa7b909257cca73286fa1b6fdae911a1dac38e","impliedFormat":99},{"version":"7f05516a5d47c0673c697f107abf15a21714f1070ef18c69864eb622c2b89588","signature":"bff1aa499c44a60c38cfa623859e8fff6b28d316e995379dafed3a72efb87cf3","impliedFormat":99},{"version":"4eef6aa17610a73e2b06072f4c5182d0e530503805153ab61ea5f2fe1966b5bb","signature":"ee7a6a17ab0fcf39119361780dc5546cb8c5f34482eae29406318aa59797bcf1","impliedFormat":99},{"version":"dc233a08a0d19bae051a96eef581a6dd7599624b8f8690611cfba2ba6a3cf440","signature":"058d3311b2181e40ee75d020b063926916bbfab1ea79c51a0dfa7327d1d5f202","impliedFormat":99},{"version":"15b71ed7779309514d945c9a34ad480bc6b51b62f1d5453a90b48b12dccc8861","signature":"be6605e2c723a8df81d7fe18984cb1cdda4b8acf52ef5be05735fb6531eab680","impliedFormat":99},{"version":"33414ed4e7da13fa8d7608bed9c53a2944658cde5b6aa20d71bd8399c70ab9c2","signature":"cebf9ae17a9f1e0ab89599a3bbb30a2185c1f6f4bf0fab36eecafd5c50b7b942","impliedFormat":99},{"version":"05cab29a90aa4a8621cd23ec312a38221a94fae1168a44250f833a24e8eb69bb","signature":"e6c44a1876820df284c89e91c5a711646e7e81c6b8015b07b544410ba38df6f6","impliedFormat":99},{"version":"cbbd0d0eb55837408d78b5089abda26f13ac26ac7128d59f5b43562e1868e29e","signature":"f02604aa3903bf01a9f1c1d24885a945a4a90f74aac0821e728b9c18eae0fd2d","impliedFormat":99},{"version":"572b6eafcce91c055398db398153435c76d5e4ab2cb125da70bc04d8090a6c4a","signature":"b320c8913653b87080ea2d8f3a01612ecff3715426a67c658eba3e774a6bc846","impliedFormat":99},{"version":"5a1ea19e8dfb3f1df5eb08f47fa8f1ac298ab619a6443890e09e01ff4806d308","signature":"8b7ab105ea87e193a42daecdcc8ad3caefc8debe68f0d97e1be4525323264ee3","impliedFormat":99},{"version":"6454733b7fe2753d9bc3608f028f7f6c1cc85be94244a44a9462d89e7ec9c319","signature":"ec8050319a383c0f6614201d533816b40980a138cdc650380c86e833479436ce","impliedFormat":99},{"version":"ddbbdcf634ed8c6f5c422f7d3703ac3aa76e2d9445cd8e305e074e38b5123697","signature":"fc174f3b72a2d4cf595de0785693d98e43b306a16cbf8998fbb8f491286c181a","impliedFormat":99},{"version":"5c07d05bd735a3379af6190d9019c6ce867c7e27d4990304063cbe8584b7bade","signature":"3fb8cba14f85c00d56aace0b8a1d085ab05fe23f4fedbd932971d4649cd63e40","impliedFormat":99},{"version":"4f607f6782b2afdd0bc694c1d86466da85866b9c4573ce93b412fcd706cc94fd","signature":"984eddc472ce6044767791c999bcab0fc4dbcb277031f5c82306aecfad083a8d","impliedFormat":99},{"version":"fc90981df0b244f35038531939640bab5bc878b3af3e7a9d55ba09bcc4c8e70c","signature":"850ce1b8cafe63d978597d7e342ceeff025fc6937563e1164143dc51d2039a68","impliedFormat":99},{"version":"c542c761291052b210c17d7acd927be0d572ef8151c1a1e69f7ec75ff0bf59d0","signature":"f29c92e83b130118b7cf6a43cb971c6e1309934e51a273f044e2c66bf6d06368","impliedFormat":99},{"version":"ad8b0ebbaf2a9e4eaab3e0f63d10581742a481f807863fd0d2b8260835da37e0","signature":"ef8699b74c6ef7430ff63ee159a442e9dd82119bb8de531776af3dd6ea33dc93","impliedFormat":99},{"version":"52138f714bed1514eb4755add835e56ae48097efd2486ae42b59df99aaba4f71","signature":"da8b5eec2c40db399e1edcd9cdae06bbae68b807d4fe045c2471fc6170fbcce9","impliedFormat":99},{"version":"302f50801467beff336518660e3e819eff3cc2a030d3478937059a9e9234c4c4","signature":"8ba90d4e5b2debbc2acc44c607f70f0b6b41f7c1bbcf7aae59be8ca3fb655206","impliedFormat":99},{"version":"9c8735320321ab329d264a9fa22d51b91f8feb1bf961ca9346248f495242fc20","signature":"3c1b70cf99a18f62f47c18e307cdcabf1b83634daba078adc01f8cd5aa052c90","impliedFormat":99},{"version":"99e220af29abb95e1e8c03fef41e02978f24e37ea384099f74e0520ddef8a304","signature":"f6059f6ac7c4f71ea52f5ba6a6b751ec18b03af3d136e2c4294d02499b11e09b","impliedFormat":99},{"version":"b13eb33673c4447fb1e67eba7b69b2ec9d8d369e22670157a88b4257792c4e89","signature":"f879923028125d1df4c72af68214003cb0a38fe6cfcf8a88991cd9b19751dc95","impliedFormat":99},{"version":"e9bf6fcbbcabc5be6887f43baad8db0c7bd76601e88b84cc985bee73e9bf0fe4","signature":"de3d5ba7253ffd9fbaaad26b36de4aa28bef5fcd4b43a65a49cad45ff37ee69b","impliedFormat":99},{"version":"c597eac751048970cdb781d82cd5feeff78b8b811057eec03e275a22db90f881","signature":"2be71d07a7bf3440eea447719ac0aa8966d216289e2c70c5056c2b2ff27537f7","impliedFormat":99},{"version":"7951408798ead04257662f55116f7d8b02ffec69da0052f967718afa06f13754","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"b6d46e9982a71caa9b2dbedde74ccc975835ef6a2796dabd254c83647ae990e6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"a12d953aa755b14ac1d28ecdc1e184f3285b01d6d1e58abc11bf1826bc9d80e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"2b7b4bc0ff201a3f08b5d1e5161998ea655b7a2c840ca646c3adcaf126aa8882","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"81711af669f63d43ccb4c08e15beda796656dd46673d0def001c7055db53852d","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"bdba81959361810be44bcfdd283f4d601e406ab5ad1d2bdff0ed480cf983c9d7","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"71450bbc2d82821d24ca05699a533e72758964e9852062c53b30f31c36978ab8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b326f4813b90d230ec3950f66bd5b5ce3971aac5fac67cfafc54aa07b39fd07f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6ee692acba8b517b5041c02c5a3369a03f36158b6bb7605d6a98d832e7a13fcc","impliedFormat":1},{"version":"ee07335d073f94f1ec8d7311c4b15abac03a8160e7cdfd4771c47440a7489e1b","impliedFormat":1},{"version":"ec79bdd311bcba9b889af9da0cd88611affdda8c2d491305fa61b7529d5b89ba","impliedFormat":1},{"version":"73cf6cc19f16c0191e4e9d497ab0c11c7b38f1ca3f01ad0f09a3a5a971aac4b8","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"eec1e051df11fb4c7f4df5a9a18022699e596024c06bc085e9b410effe790a9a","impliedFormat":1},{"version":"d83f86427b468176fbacb28ef302f152ad3d2d127664c627216e45cfa06fbf7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"915e18c559321c0afaa8d34674d3eb77e1ded12c3e85bf2a9891ec48b07a1ca5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a2f3aa60aece790303a62220456ff845a1b980899bdc2e81646b8e33d9d9cc15","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"70b57b5529051497e9f6482b76d91c0dcbb103d9ead8a0549f5bab8f65e5d031","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"0be405730b99eee7dbb051d74f6c3c0f1f8661d86184a7122b82c2bfb0991922","impliedFormat":1},{"version":"8302157cd431b3943eed09ad439b4441826c673d9f870dcb0e1f48e891a4211e","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"12aad38de6f0594dc21efa78a2c1f67bf6a7ef5a389e05417fe9945284450908","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"a5890565ed564c7b29eb1b1038d4e10c03a3f5231b0a8d48fea4b41ab19f4f46","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7172949957e9ae6dd5c046d658cc5f1d00c12d85006554412e1de0dcfea8257e","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a654e0d950353614ba4637a8de4f9d367903a0692b748e11fccf8c880c99735","affectsGlobalScope":true,"impliedFormat":1},{"version":"42da246c46ca3fd421b6fd88bb4466cda7137cf33e87ba5ceeded30219c428bd","impliedFormat":1},{"version":"3a051941721a7f905544732b0eb819c8d88333a96576b13af08b82c4f17581e4","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"66e4838e0e3e0ea1ee62b57b3984a7f606f73523dfdae6500b6e3258c0aa3c7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"db3d77167a7da6c5ba0c51c5b654820e3464093f21724ccd774c0b9bc3f81bc0","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1}],"root":[[73,77],[79,110]],"options":{"allowJs":true,"composite":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":199,"outDir":"./","skipLibCheck":true,"strict":true,"strictBindCallApply":true,"target":9,"useDefineForClassFields":false},"referencedMap":[[78,1],[155,2],[156,2],[157,3],[116,4],[158,5],[159,6],[160,7],[111,1],[114,8],[112,1],[113,1],[161,9],[162,10],[163,11],[164,12],[165,13],[166,14],[167,14],[169,1],[168,15],[170,16],[171,17],[172,18],[154,19],[115,1],[173,20],[174,21],[175,22],[208,23],[176,24],[177,25],[178,26],[179,27],[180,28],[181,29],[182,30],[183,31],[184,32],[185,33],[186,33],[187,34],[188,1],[189,1],[190,35],[192,36],[191,37],[193,38],[194,39],[195,40],[196,41],[197,42],[198,43],[199,44],[200,45],[201,46],[202,47],[203,48],[204,49],[205,50],[206,51],[207,52],[71,1],[72,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[22,1],[23,1],[4,1],[24,1],[28,1],[25,1],[26,1],[27,1],[29,1],[30,1],[31,1],[5,1],[32,1],[33,1],[34,1],[35,1],[6,1],[39,1],[36,1],[37,1],[38,1],[40,1],[7,1],[41,1],[46,1],[47,1],[42,1],[43,1],[44,1],[45,1],[8,1],[51,1],[48,1],[49,1],[50,1],[52,1],[9,1],[53,1],[54,1],[55,1],[57,1],[56,1],[58,1],[59,1],[10,1],[60,1],[61,1],[62,1],[11,1],[63,1],[64,1],[65,1],[66,1],[67,1],[1,1],[68,1],[69,1],[70,1],[132,53],[142,54],[131,53],[152,55],[123,56],[122,57],[151,58],[145,59],[150,60],[125,61],[139,62],[124,63],[148,64],[120,65],[119,58],[149,66],[121,67],[126,68],[127,1],[130,68],[117,1],[153,69],[143,70],[134,71],[135,72],[137,73],[133,74],[136,75],[146,58],[128,76],[129,77],[138,78],[118,79],[141,70],[140,68],[144,1],[147,80],[108,81],[79,82],[77,83],[105,84],[73,1],[86,85],[87,86],[88,87],[89,86],[90,87],[91,88],[92,88],[93,89],[94,90],[95,89],[96,88],[97,90],[98,91],[99,90],[101,92],[100,85],[102,92],[103,89],[82,93],[83,1],[84,94],[104,95],[75,96],[109,1],[107,97],[110,81],[106,1],[81,1],[74,98],[85,1],[80,1],[76,1]],"latestChangedDtsFile":"./src/parse.d.mts","version":"5.9.2"}
|