gedcom.json 1.0.8 → 1.0.9
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/.vscode/settings.json +15 -0
- package/README.md +246 -256
- package/dist/ToJSON/console.js +15 -12
- package/dist/ToJSON/console.js.map +1 -1
- package/dist/ToJSON/models/DefinitionCache.js.map +1 -1
- package/dist/ToJSON/models/LineParsingResult.js.map +1 -1
- package/dist/ToJSON/models/ParsedLine.js +1 -1
- package/dist/ToJSON/models/ParsedLine.js.map +1 -1
- package/dist/ToJSON/models/Parsing.js +8 -6
- package/dist/ToJSON/models/Parsing.js.map +1 -1
- package/dist/ToJSON/models/ParsingObject.js.map +1 -1
- package/dist/ToJSON/models/ParsingOptions.js.map +1 -1
- package/dist/ToJSON/models/ParsingPath.js.map +1 -1
- package/dist/ToJSON/models/ParsingResult.js.map +1 -1
- package/dist/ToJSON/models/StatisticLine.js.map +1 -1
- package/dist/ToJSON/models/Statistics.js +2 -2
- package/dist/ToJSON/models/Statistics.js.map +1 -1
- package/dist/ToJSON/models/Store.js +11 -11
- package/dist/ToJSON/models/Store.js.map +1 -1
- package/dist/ToJSON/models/TagDefinition.js +11 -11
- package/dist/ToJSON/models/TagDefinition.js.map +1 -1
- package/dist/ToJSON/parsing/lineHelper.js +8 -8
- package/dist/ToJSON/parsing/lineHelper.js.map +1 -1
- package/dist/ToJSON/parsing/lineValidation.js +6 -6
- package/dist/ToJSON/parsing/lineValidation.js.map +1 -1
- package/dist/ToJSON/parsing/parseDate.js +84 -84
- package/dist/ToJSON/parsing/parseDate.js.map +1 -1
- package/dist/ToJSON/parsing/parseLine.js +8 -8
- package/dist/ToJSON/parsing/parseLine.js.map +1 -1
- package/dist/ToJSON/parsing/parsing.js +17 -17
- package/dist/ToJSON/parsing/parsing.js.map +1 -1
- package/dist/ToJSON/parsing/processLine.js +18 -18
- package/dist/ToJSON/parsing/processLine.js.map +1 -1
- package/dist/ToJSON/processing/manipulateValues.js +9 -10
- package/dist/ToJSON/processing/manipulateValues.js.map +1 -1
- package/dist/ToJSON/processing/result.js +87 -80
- package/dist/ToJSON/processing/result.js.map +1 -1
- package/dist/common.js +5 -5
- package/dist/common.js.map +1 -1
- package/dist/console.js +4 -4
- package/dist/console.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/options/version551.yaml +303 -296
- package/package.json +10 -5
- package/src/ToJSON/console.ts +67 -67
- package/src/ToJSON/models/DefinitionCache.ts +7 -7
- package/src/ToJSON/models/LineParsingResult.ts +7 -7
- package/src/ToJSON/models/ParsedLine.ts +35 -35
- package/src/ToJSON/models/Parsing.ts +45 -41
- package/src/ToJSON/models/ParsingObject.ts +16 -16
- package/src/ToJSON/models/ParsingOptions.ts +41 -41
- package/src/ToJSON/models/ParsingPath.ts +7 -7
- package/src/ToJSON/models/ParsingResult.ts +10 -10
- package/src/ToJSON/models/StatisticLine.ts +16 -16
- package/src/ToJSON/models/Statistics.ts +63 -63
- package/src/ToJSON/models/Store.ts +106 -108
- package/src/ToJSON/models/TagDefinition.ts +123 -122
- package/src/ToJSON/parsing/lineHelper.ts +21 -21
- package/src/ToJSON/parsing/lineValidation.ts +39 -40
- package/src/ToJSON/parsing/parseDate.ts +280 -286
- package/src/ToJSON/parsing/parseLine.ts +33 -33
- package/src/ToJSON/parsing/parsing.ts +134 -141
- package/src/ToJSON/parsing/processLine.ts +112 -109
- package/src/ToJSON/processing/manipulateValues.ts +52 -53
- package/src/ToJSON/processing/result.ts +247 -241
- package/src/common.ts +14 -14
- package/src/console.ts +7 -8
- package/src/index.ts +3 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IsEmpty, IsNumber, ToNumber } from
|
|
1
|
+
import { IsEmpty, IsNumber, ToNumber } from '../../common';
|
|
2
2
|
import split from 'lodash/split';
|
|
3
3
|
import trim from 'lodash/trim';
|
|
4
4
|
/**
|
|
@@ -6,17 +6,17 @@ import trim from 'lodash/trim';
|
|
|
6
6
|
*
|
|
7
7
|
* @param line - The line text
|
|
8
8
|
* @returns The level
|
|
9
|
-
*/
|
|
10
|
-
export function GetLineLevel(line: string)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
*/
|
|
10
|
+
export function GetLineLevel(line: string): number {
|
|
11
|
+
if (line[0] === '0') {
|
|
12
|
+
return 0;
|
|
13
|
+
}
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
if (IsNumber(line[1])) {
|
|
16
|
+
return ToNumber(`${line[0]}${line[1]}`);
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
return ToNumber(line[0]);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -24,17 +24,17 @@ export function GetLineLevel(line: string) : number {
|
|
|
24
24
|
*
|
|
25
25
|
* @param refOrTag - The tag or reference id
|
|
26
26
|
* @returns The reference id or undefined
|
|
27
|
-
*/
|
|
28
|
-
export function GetReferenceId(refOrTag: string)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
*/
|
|
28
|
+
export function GetReferenceId(refOrTag: string): string | undefined {
|
|
29
|
+
if (IsEmpty(refOrTag)) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
var lineSplit = split(refOrTag, '@');
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
if (lineSplit.length != 3) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
}
|
|
39
|
+
return trim(refOrTag);
|
|
40
|
+
}
|
|
@@ -6,43 +6,42 @@ import { IsNumber } from '../../common';
|
|
|
6
6
|
*
|
|
7
7
|
* @param line - The line text
|
|
8
8
|
* @returns true if the line is valid
|
|
9
|
-
*/
|
|
10
|
-
export function IsValidLine(line: string)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
9
|
+
*/
|
|
10
|
+
export function IsValidLine(line: string): Boolean {
|
|
11
|
+
// empty string
|
|
12
|
+
if (isEmpty(line)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// max length is 255
|
|
17
|
+
if (line.length > 255) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// first char must be a number
|
|
22
|
+
if (!IsNumber(line[0])) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// min length is 3
|
|
27
|
+
if (line.length < 4) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// second must be a whitespace or a number
|
|
32
|
+
if (line[1] !== ' ' && !IsNumber(line[1])) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// numbers with leading 0 are not allowed
|
|
37
|
+
if (line[0] === '0' && IsNumber(line[1])) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// max is 99
|
|
42
|
+
if (IsNumber(line[1]) && line[2] !== ' ') {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return true;
|
|
47
|
+
}
|