@treeviz/gedcom-parser 2.0.5 → 2.0.8
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/dist/classes/date.d.ts +2 -0
- package/dist/classes/date.d.ts.map +1 -1
- package/dist/classes/gedcom.d.ts +9 -0
- package/dist/classes/gedcom.d.ts.map +1 -1
- package/dist/classes/index.js +117 -2
- package/dist/cli/index.js +117 -2
- package/dist/constants/index.js +42 -1
- package/dist/factories/index.js +42 -1
- package/dist/index.js +117 -2
- package/dist/interfaces/gedcom.d.ts +6 -0
- package/dist/interfaces/gedcom.d.ts.map +1 -1
- package/dist/kinship-translator/index.js +42 -1
- package/dist/utils/index.js +117 -2
- package/package.json +1 -1
package/dist/classes/date.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Locale } from "date-fns";
|
|
2
|
+
import type { ConvertOptions } from "../interfaces/common";
|
|
2
3
|
import type { IdType, MultiTag } from "../types/types";
|
|
3
4
|
import type { Range } from "../utils/range";
|
|
4
5
|
import { Common } from "./common";
|
|
@@ -20,6 +21,7 @@ export declare class CommonDate extends Common<string> {
|
|
|
20
21
|
toNote(short?: boolean): string | undefined;
|
|
21
22
|
toValue(dateFormat?: string, locale?: Locale | null): string | undefined;
|
|
22
23
|
exportValue(): string | undefined;
|
|
24
|
+
toGedcomLines(tag?: MultiTag, level?: number, options?: ConvertOptions): string[];
|
|
23
25
|
inRange(range: Range, trueIfNoYear?: boolean): boolean;
|
|
24
26
|
}
|
|
25
27
|
export declare const createCommonDate: (gedcom?: GedComType, id?: IdType, main?: Common, parent?: Common) => ProxyOriginal<CommonDate>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/classes/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAA6B,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/classes/date.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAA6B,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA2EnC,qBAAa,UAAW,SAAQ,MAAM,CAAC,MAAM,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,CAAO;IAErB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;gBAGb,MAAM,CAAC,EAAE,UAAU,EACnB,EAAE,CAAC,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM;IAOhB,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EA6FlC;IAED,IAAI,KAAK,IA/FQ,MAAM,GAAG,SAAS,CAkHlC;IAED,IAAI,QAAQ,qBAEX;IAED,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,EAC7C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,CAAC,EACR,MAAM,UAAQ;IAUf,OAAO,CAAC,iBAAiB;IAgBzB,MAAM,CAAC,KAAK,UAAO,GAAG,MAAM,GAAG,SAAS;IAUxC,OAAO,CACN,UAAU,SAAgB,EAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GACpB,MAAM,GAAG,SAAS;IAuBrB,WAAW;IAmBX,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,SAAI,EAAE,OAAO,CAAC,EAAE,cAAc;IAajE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,UAAQ;CAG1C;AAED,eAAO,MAAM,gBAAgB,GAC5B,SAAS,UAAU,EACnB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,SAAS,MAAM,KACb,aAAa,CAAC,UAAU,CAI1B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,UAOvD,CAAC"}
|
package/dist/classes/gedcom.d.ts
CHANGED
|
@@ -17,6 +17,11 @@ import type { SourType } from "./sour";
|
|
|
17
17
|
import type { Sources } from "./sours";
|
|
18
18
|
import type { SubmType } from "./subm";
|
|
19
19
|
import type { Submitters } from "./subms";
|
|
20
|
+
type GedcomObjectPrimitive = string | number | boolean;
|
|
21
|
+
export interface GedcomObjectPatch {
|
|
22
|
+
[key: string]: GedcomObjectPatchValue;
|
|
23
|
+
}
|
|
24
|
+
export type GedcomObjectPatchValue = GedcomObjectPrimitive | GedcomObjectPatch | GedcomObjectPatchValue[] | null | undefined;
|
|
20
25
|
export declare class GedCom extends Common implements IGedcom {
|
|
21
26
|
tagMembers: Record<string, {
|
|
22
27
|
tag: Common;
|
|
@@ -27,6 +32,9 @@ export declare class GedCom extends Common implements IGedcom {
|
|
|
27
32
|
constructor();
|
|
28
33
|
private getMain;
|
|
29
34
|
getList<T extends List = List>(type: MultiTag): T | undefined;
|
|
35
|
+
private createNodeFromPatchValue;
|
|
36
|
+
private applyObjectToCommon;
|
|
37
|
+
applyObject(patch: GedcomObjectPatch): this;
|
|
30
38
|
indis(): Individuals | undefined;
|
|
31
39
|
cloneIndis(target?: IndiKey | IndiType, source?: IndiKey | IndiType, avoidKeys?: MultiTag[], removeFromOriginalList?: boolean): this | undefined;
|
|
32
40
|
mergeIndis(target?: IndiKey | IndiType, source?: IndiKey | IndiType, removeFromOriginalList?: boolean): this | undefined;
|
|
@@ -145,4 +153,5 @@ export declare const validateGedcomContent: (content?: string) => {
|
|
|
145
153
|
* - All family relationships (FAMS/FAMC) are preserved with updated ID references
|
|
146
154
|
*/
|
|
147
155
|
export declare const mergeGedcoms: (targetGedcom: GedComType, sourceGedcom: GedComType, strategy?: MultiTag | "id") => GedComType;
|
|
156
|
+
export {};
|
|
148
157
|
//# sourceMappingURL=gedcom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gedcom.d.ts","sourceRoot":"","sources":["../../src/classes/gedcom.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gedcom.d.ts","sourceRoot":"","sources":["../../src/classes/gedcom.ts"],"names":[],"mappings":"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"}
|
package/dist/classes/index.js
CHANGED
|
@@ -2862,6 +2862,20 @@ var LONG_NOTES = {
|
|
|
2862
2862
|
"Bef.": "Before",
|
|
2863
2863
|
"Aft.": "After"
|
|
2864
2864
|
};
|
|
2865
|
+
var STANDARD_QUALIFIERS = {
|
|
2866
|
+
ABT: "Abt.",
|
|
2867
|
+
ABOUT: "Abt.",
|
|
2868
|
+
BEF: "Bef.",
|
|
2869
|
+
BEFORE: "Bef.",
|
|
2870
|
+
AFT: "Aft.",
|
|
2871
|
+
AFTER: "Aft."
|
|
2872
|
+
};
|
|
2873
|
+
var EXPORT_QUALIFIERS = {
|
|
2874
|
+
"Abt.": "ABT",
|
|
2875
|
+
"Bef.": "BEF",
|
|
2876
|
+
"Aft.": "AFT"
|
|
2877
|
+
};
|
|
2878
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
2865
2879
|
var NOTE_MARKER = "####";
|
|
2866
2880
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
2867
2881
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -2895,6 +2909,17 @@ var CommonDate = class extends Common {
|
|
|
2895
2909
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
2896
2910
|
this.NOTE.value = noteMatch?.note;
|
|
2897
2911
|
validValue = value.replace(noteRegExp, "");
|
|
2912
|
+
} else {
|
|
2913
|
+
const qualifierMatch = value.match(
|
|
2914
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
2915
|
+
);
|
|
2916
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
2917
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
2918
|
+
if (note) {
|
|
2919
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
2920
|
+
this.NOTE.value = note;
|
|
2921
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
2922
|
+
}
|
|
2898
2923
|
}
|
|
2899
2924
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
2900
2925
|
if (acceptedDate) {
|
|
@@ -3000,7 +3025,23 @@ var CommonDate = class extends Common {
|
|
|
3000
3025
|
);
|
|
3001
3026
|
}
|
|
3002
3027
|
exportValue() {
|
|
3003
|
-
|
|
3028
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
3029
|
+
if (!formatted) {
|
|
3030
|
+
return formatted;
|
|
3031
|
+
}
|
|
3032
|
+
const note = this.NOTE?.value?.trim();
|
|
3033
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
3034
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
3035
|
+
return standardized.replace(
|
|
3036
|
+
GEDCOM_MONTHS,
|
|
3037
|
+
(month) => month.toUpperCase()
|
|
3038
|
+
);
|
|
3039
|
+
}
|
|
3040
|
+
toGedcomLines(tag, level = 0, options) {
|
|
3041
|
+
const internal = new RegExp(
|
|
3042
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
3043
|
+
);
|
|
3044
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
3004
3045
|
}
|
|
3005
3046
|
inRange(range, trueIfNoYear = false) {
|
|
3006
3047
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
|
@@ -6253,12 +6294,15 @@ var createIndi = (gedcom, id, main, parent) => {
|
|
|
6253
6294
|
|
|
6254
6295
|
// package.json
|
|
6255
6296
|
var package_default = {
|
|
6256
|
-
version: "2.0.
|
|
6297
|
+
version: "2.0.8"};
|
|
6257
6298
|
|
|
6258
6299
|
// src/utils/get-product-details.ts
|
|
6259
6300
|
var getVersion = () => package_default.version;
|
|
6260
6301
|
|
|
6261
6302
|
// src/classes/gedcom.ts
|
|
6303
|
+
var isObjectPatch = (value) => {
|
|
6304
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
6305
|
+
};
|
|
6262
6306
|
var GedCom = class extends Common {
|
|
6263
6307
|
constructor() {
|
|
6264
6308
|
super();
|
|
@@ -6283,6 +6327,77 @@ var GedCom = class extends Common {
|
|
|
6283
6327
|
getList(type) {
|
|
6284
6328
|
return this.get(type);
|
|
6285
6329
|
}
|
|
6330
|
+
createNodeFromPatchValue(value, main) {
|
|
6331
|
+
if (value === void 0 || value === null) {
|
|
6332
|
+
return void 0;
|
|
6333
|
+
}
|
|
6334
|
+
const node = createCommon(this, void 0, main);
|
|
6335
|
+
if (Array.isArray(value)) {
|
|
6336
|
+
value.forEach((item) => {
|
|
6337
|
+
const childNode = this.createNodeFromPatchValue(item, node);
|
|
6338
|
+
if (childNode) {
|
|
6339
|
+
node.assign("DATA", childNode);
|
|
6340
|
+
}
|
|
6341
|
+
});
|
|
6342
|
+
return node;
|
|
6343
|
+
}
|
|
6344
|
+
if (isObjectPatch(value)) {
|
|
6345
|
+
this.applyObjectToCommon(node, value);
|
|
6346
|
+
return node;
|
|
6347
|
+
}
|
|
6348
|
+
node.value = String(value);
|
|
6349
|
+
return node;
|
|
6350
|
+
}
|
|
6351
|
+
applyObjectToCommon(target, patch) {
|
|
6352
|
+
Object.entries(patch).forEach(([rawTag, value]) => {
|
|
6353
|
+
if (rawTag === "value") {
|
|
6354
|
+
if (value === null || value === void 0 || Array.isArray(value) || isObjectPatch(value)) {
|
|
6355
|
+
return;
|
|
6356
|
+
}
|
|
6357
|
+
target.value = String(value);
|
|
6358
|
+
return;
|
|
6359
|
+
}
|
|
6360
|
+
if (rawTag === "id") {
|
|
6361
|
+
if (typeof value === "string") {
|
|
6362
|
+
target.id = value;
|
|
6363
|
+
}
|
|
6364
|
+
return;
|
|
6365
|
+
}
|
|
6366
|
+
const tag = rawTag;
|
|
6367
|
+
if (value === void 0) {
|
|
6368
|
+
return;
|
|
6369
|
+
}
|
|
6370
|
+
if (value === null) {
|
|
6371
|
+
target.remove(tag);
|
|
6372
|
+
return;
|
|
6373
|
+
}
|
|
6374
|
+
if (Array.isArray(value)) {
|
|
6375
|
+
target.remove(tag);
|
|
6376
|
+
value.forEach((item) => {
|
|
6377
|
+
const listNode = this.createNodeFromPatchValue(
|
|
6378
|
+
item,
|
|
6379
|
+
target.main ?? this
|
|
6380
|
+
);
|
|
6381
|
+
if (listNode) {
|
|
6382
|
+
target.assign(tag, listNode);
|
|
6383
|
+
}
|
|
6384
|
+
});
|
|
6385
|
+
return;
|
|
6386
|
+
}
|
|
6387
|
+
if (isObjectPatch(value)) {
|
|
6388
|
+
const existing = target.get(tag);
|
|
6389
|
+
const objectNode = existing ?? createCommon(this, void 0, target.main ?? this);
|
|
6390
|
+
this.applyObjectToCommon(objectNode, value);
|
|
6391
|
+
target.set(tag, objectNode);
|
|
6392
|
+
return;
|
|
6393
|
+
}
|
|
6394
|
+
target.set(tag, String(value));
|
|
6395
|
+
});
|
|
6396
|
+
}
|
|
6397
|
+
applyObject(patch) {
|
|
6398
|
+
this.applyObjectToCommon(this, patch);
|
|
6399
|
+
return this;
|
|
6400
|
+
}
|
|
6286
6401
|
indis() {
|
|
6287
6402
|
return this.getList("@@INDI");
|
|
6288
6403
|
}
|
package/dist/cli/index.js
CHANGED
|
@@ -5306,6 +5306,20 @@ var LONG_NOTES = {
|
|
|
5306
5306
|
"Bef.": "Before",
|
|
5307
5307
|
"Aft.": "After"
|
|
5308
5308
|
};
|
|
5309
|
+
var STANDARD_QUALIFIERS = {
|
|
5310
|
+
ABT: "Abt.",
|
|
5311
|
+
ABOUT: "Abt.",
|
|
5312
|
+
BEF: "Bef.",
|
|
5313
|
+
BEFORE: "Bef.",
|
|
5314
|
+
AFT: "Aft.",
|
|
5315
|
+
AFTER: "Aft."
|
|
5316
|
+
};
|
|
5317
|
+
var EXPORT_QUALIFIERS = {
|
|
5318
|
+
"Abt.": "ABT",
|
|
5319
|
+
"Bef.": "BEF",
|
|
5320
|
+
"Aft.": "AFT"
|
|
5321
|
+
};
|
|
5322
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
5309
5323
|
var NOTE_MARKER = "####";
|
|
5310
5324
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
5311
5325
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -5339,6 +5353,17 @@ var CommonDate = class extends Common {
|
|
|
5339
5353
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5340
5354
|
this.NOTE.value = noteMatch?.note;
|
|
5341
5355
|
validValue = value.replace(noteRegExp, "");
|
|
5356
|
+
} else {
|
|
5357
|
+
const qualifierMatch = value.match(
|
|
5358
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
5359
|
+
);
|
|
5360
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
5361
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
5362
|
+
if (note) {
|
|
5363
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5364
|
+
this.NOTE.value = note;
|
|
5365
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
5366
|
+
}
|
|
5342
5367
|
}
|
|
5343
5368
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
5344
5369
|
if (acceptedDate) {
|
|
@@ -5444,7 +5469,23 @@ var CommonDate = class extends Common {
|
|
|
5444
5469
|
);
|
|
5445
5470
|
}
|
|
5446
5471
|
exportValue() {
|
|
5447
|
-
|
|
5472
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
5473
|
+
if (!formatted) {
|
|
5474
|
+
return formatted;
|
|
5475
|
+
}
|
|
5476
|
+
const note = this.NOTE?.value?.trim();
|
|
5477
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
5478
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
5479
|
+
return standardized.replace(
|
|
5480
|
+
GEDCOM_MONTHS,
|
|
5481
|
+
(month) => month.toUpperCase()
|
|
5482
|
+
);
|
|
5483
|
+
}
|
|
5484
|
+
toGedcomLines(tag, level = 0, options) {
|
|
5485
|
+
const internal = new RegExp(
|
|
5486
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
5487
|
+
);
|
|
5488
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
5448
5489
|
}
|
|
5449
5490
|
inRange(range, trueIfNoYear = false) {
|
|
5450
5491
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
|
@@ -6247,7 +6288,7 @@ var Families = class _Families extends List {
|
|
|
6247
6288
|
|
|
6248
6289
|
// package.json
|
|
6249
6290
|
var package_default = {
|
|
6250
|
-
version: "2.0.
|
|
6291
|
+
version: "2.0.8"};
|
|
6251
6292
|
|
|
6252
6293
|
// src/utils/get-product-details.ts
|
|
6253
6294
|
var isDevelopment = () => {
|
|
@@ -6256,6 +6297,9 @@ var isDevelopment = () => {
|
|
|
6256
6297
|
var getVersion = () => package_default.version;
|
|
6257
6298
|
|
|
6258
6299
|
// src/classes/gedcom.ts
|
|
6300
|
+
var isObjectPatch = (value) => {
|
|
6301
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
6302
|
+
};
|
|
6259
6303
|
var GedCom = class extends Common {
|
|
6260
6304
|
constructor() {
|
|
6261
6305
|
super();
|
|
@@ -6280,6 +6324,77 @@ var GedCom = class extends Common {
|
|
|
6280
6324
|
getList(type) {
|
|
6281
6325
|
return this.get(type);
|
|
6282
6326
|
}
|
|
6327
|
+
createNodeFromPatchValue(value, main) {
|
|
6328
|
+
if (value === void 0 || value === null) {
|
|
6329
|
+
return void 0;
|
|
6330
|
+
}
|
|
6331
|
+
const node = createCommon(this, void 0, main);
|
|
6332
|
+
if (Array.isArray(value)) {
|
|
6333
|
+
value.forEach((item) => {
|
|
6334
|
+
const childNode = this.createNodeFromPatchValue(item, node);
|
|
6335
|
+
if (childNode) {
|
|
6336
|
+
node.assign("DATA", childNode);
|
|
6337
|
+
}
|
|
6338
|
+
});
|
|
6339
|
+
return node;
|
|
6340
|
+
}
|
|
6341
|
+
if (isObjectPatch(value)) {
|
|
6342
|
+
this.applyObjectToCommon(node, value);
|
|
6343
|
+
return node;
|
|
6344
|
+
}
|
|
6345
|
+
node.value = String(value);
|
|
6346
|
+
return node;
|
|
6347
|
+
}
|
|
6348
|
+
applyObjectToCommon(target, patch) {
|
|
6349
|
+
Object.entries(patch).forEach(([rawTag, value]) => {
|
|
6350
|
+
if (rawTag === "value") {
|
|
6351
|
+
if (value === null || value === void 0 || Array.isArray(value) || isObjectPatch(value)) {
|
|
6352
|
+
return;
|
|
6353
|
+
}
|
|
6354
|
+
target.value = String(value);
|
|
6355
|
+
return;
|
|
6356
|
+
}
|
|
6357
|
+
if (rawTag === "id") {
|
|
6358
|
+
if (typeof value === "string") {
|
|
6359
|
+
target.id = value;
|
|
6360
|
+
}
|
|
6361
|
+
return;
|
|
6362
|
+
}
|
|
6363
|
+
const tag = rawTag;
|
|
6364
|
+
if (value === void 0) {
|
|
6365
|
+
return;
|
|
6366
|
+
}
|
|
6367
|
+
if (value === null) {
|
|
6368
|
+
target.remove(tag);
|
|
6369
|
+
return;
|
|
6370
|
+
}
|
|
6371
|
+
if (Array.isArray(value)) {
|
|
6372
|
+
target.remove(tag);
|
|
6373
|
+
value.forEach((item) => {
|
|
6374
|
+
const listNode = this.createNodeFromPatchValue(
|
|
6375
|
+
item,
|
|
6376
|
+
target.main ?? this
|
|
6377
|
+
);
|
|
6378
|
+
if (listNode) {
|
|
6379
|
+
target.assign(tag, listNode);
|
|
6380
|
+
}
|
|
6381
|
+
});
|
|
6382
|
+
return;
|
|
6383
|
+
}
|
|
6384
|
+
if (isObjectPatch(value)) {
|
|
6385
|
+
const existing = target.get(tag);
|
|
6386
|
+
const objectNode = existing ?? createCommon(this, void 0, target.main ?? this);
|
|
6387
|
+
this.applyObjectToCommon(objectNode, value);
|
|
6388
|
+
target.set(tag, objectNode);
|
|
6389
|
+
return;
|
|
6390
|
+
}
|
|
6391
|
+
target.set(tag, String(value));
|
|
6392
|
+
});
|
|
6393
|
+
}
|
|
6394
|
+
applyObject(patch) {
|
|
6395
|
+
this.applyObjectToCommon(this, patch);
|
|
6396
|
+
return this;
|
|
6397
|
+
}
|
|
6283
6398
|
indis() {
|
|
6284
6399
|
return this.getList("@@INDI");
|
|
6285
6400
|
}
|
package/dist/constants/index.js
CHANGED
|
@@ -5900,6 +5900,20 @@ var LONG_NOTES = {
|
|
|
5900
5900
|
"Bef.": "Before",
|
|
5901
5901
|
"Aft.": "After"
|
|
5902
5902
|
};
|
|
5903
|
+
var STANDARD_QUALIFIERS = {
|
|
5904
|
+
ABT: "Abt.",
|
|
5905
|
+
ABOUT: "Abt.",
|
|
5906
|
+
BEF: "Bef.",
|
|
5907
|
+
BEFORE: "Bef.",
|
|
5908
|
+
AFT: "Aft.",
|
|
5909
|
+
AFTER: "Aft."
|
|
5910
|
+
};
|
|
5911
|
+
var EXPORT_QUALIFIERS = {
|
|
5912
|
+
"Abt.": "ABT",
|
|
5913
|
+
"Bef.": "BEF",
|
|
5914
|
+
"Aft.": "AFT"
|
|
5915
|
+
};
|
|
5916
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
5903
5917
|
var NOTE_MARKER = "####";
|
|
5904
5918
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
5905
5919
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -5933,6 +5947,17 @@ var CommonDate = class extends Common {
|
|
|
5933
5947
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5934
5948
|
this.NOTE.value = noteMatch?.note;
|
|
5935
5949
|
validValue = value.replace(noteRegExp, "");
|
|
5950
|
+
} else {
|
|
5951
|
+
const qualifierMatch = value.match(
|
|
5952
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
5953
|
+
);
|
|
5954
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
5955
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
5956
|
+
if (note) {
|
|
5957
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5958
|
+
this.NOTE.value = note;
|
|
5959
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
5960
|
+
}
|
|
5936
5961
|
}
|
|
5937
5962
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
5938
5963
|
if (acceptedDate) {
|
|
@@ -6038,7 +6063,23 @@ var CommonDate = class extends Common {
|
|
|
6038
6063
|
);
|
|
6039
6064
|
}
|
|
6040
6065
|
exportValue() {
|
|
6041
|
-
|
|
6066
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
6067
|
+
if (!formatted) {
|
|
6068
|
+
return formatted;
|
|
6069
|
+
}
|
|
6070
|
+
const note = this.NOTE?.value?.trim();
|
|
6071
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
6072
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
6073
|
+
return standardized.replace(
|
|
6074
|
+
GEDCOM_MONTHS,
|
|
6075
|
+
(month) => month.toUpperCase()
|
|
6076
|
+
);
|
|
6077
|
+
}
|
|
6078
|
+
toGedcomLines(tag, level = 0, options) {
|
|
6079
|
+
const internal = new RegExp(
|
|
6080
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
6081
|
+
);
|
|
6082
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
6042
6083
|
}
|
|
6043
6084
|
inRange(range, trueIfNoYear = false) {
|
|
6044
6085
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
package/dist/factories/index.js
CHANGED
|
@@ -1394,6 +1394,20 @@ var LONG_NOTES = {
|
|
|
1394
1394
|
"Bef.": "Before",
|
|
1395
1395
|
"Aft.": "After"
|
|
1396
1396
|
};
|
|
1397
|
+
var STANDARD_QUALIFIERS = {
|
|
1398
|
+
ABT: "Abt.",
|
|
1399
|
+
ABOUT: "Abt.",
|
|
1400
|
+
BEF: "Bef.",
|
|
1401
|
+
BEFORE: "Bef.",
|
|
1402
|
+
AFT: "Aft.",
|
|
1403
|
+
AFTER: "Aft."
|
|
1404
|
+
};
|
|
1405
|
+
var EXPORT_QUALIFIERS = {
|
|
1406
|
+
"Abt.": "ABT",
|
|
1407
|
+
"Bef.": "BEF",
|
|
1408
|
+
"Aft.": "AFT"
|
|
1409
|
+
};
|
|
1410
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
1397
1411
|
var NOTE_MARKER = "####";
|
|
1398
1412
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
1399
1413
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -1427,6 +1441,17 @@ var CommonDate = class extends Common {
|
|
|
1427
1441
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
1428
1442
|
this.NOTE.value = noteMatch?.note;
|
|
1429
1443
|
validValue = value.replace(noteRegExp, "");
|
|
1444
|
+
} else {
|
|
1445
|
+
const qualifierMatch = value.match(
|
|
1446
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
1447
|
+
);
|
|
1448
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
1449
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
1450
|
+
if (note) {
|
|
1451
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
1452
|
+
this.NOTE.value = note;
|
|
1453
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
1454
|
+
}
|
|
1430
1455
|
}
|
|
1431
1456
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
1432
1457
|
if (acceptedDate) {
|
|
@@ -1532,7 +1557,23 @@ var CommonDate = class extends Common {
|
|
|
1532
1557
|
);
|
|
1533
1558
|
}
|
|
1534
1559
|
exportValue() {
|
|
1535
|
-
|
|
1560
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
1561
|
+
if (!formatted) {
|
|
1562
|
+
return formatted;
|
|
1563
|
+
}
|
|
1564
|
+
const note = this.NOTE?.value?.trim();
|
|
1565
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
1566
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
1567
|
+
return standardized.replace(
|
|
1568
|
+
GEDCOM_MONTHS,
|
|
1569
|
+
(month) => month.toUpperCase()
|
|
1570
|
+
);
|
|
1571
|
+
}
|
|
1572
|
+
toGedcomLines(tag, level = 0, options) {
|
|
1573
|
+
const internal = new RegExp(
|
|
1574
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
1575
|
+
);
|
|
1576
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
1536
1577
|
}
|
|
1537
1578
|
inRange(range, trueIfNoYear = false) {
|
|
1538
1579
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
package/dist/index.js
CHANGED
|
@@ -5651,6 +5651,20 @@ var LONG_NOTES = {
|
|
|
5651
5651
|
"Bef.": "Before",
|
|
5652
5652
|
"Aft.": "After"
|
|
5653
5653
|
};
|
|
5654
|
+
var STANDARD_QUALIFIERS = {
|
|
5655
|
+
ABT: "Abt.",
|
|
5656
|
+
ABOUT: "Abt.",
|
|
5657
|
+
BEF: "Bef.",
|
|
5658
|
+
BEFORE: "Bef.",
|
|
5659
|
+
AFT: "Aft.",
|
|
5660
|
+
AFTER: "Aft."
|
|
5661
|
+
};
|
|
5662
|
+
var EXPORT_QUALIFIERS = {
|
|
5663
|
+
"Abt.": "ABT",
|
|
5664
|
+
"Bef.": "BEF",
|
|
5665
|
+
"Aft.": "AFT"
|
|
5666
|
+
};
|
|
5667
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
5654
5668
|
var NOTE_MARKER = "####";
|
|
5655
5669
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
5656
5670
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -5684,6 +5698,17 @@ var CommonDate = class extends Common {
|
|
|
5684
5698
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5685
5699
|
this.NOTE.value = noteMatch?.note;
|
|
5686
5700
|
validValue = value.replace(noteRegExp, "");
|
|
5701
|
+
} else {
|
|
5702
|
+
const qualifierMatch = value.match(
|
|
5703
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
5704
|
+
);
|
|
5705
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
5706
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
5707
|
+
if (note) {
|
|
5708
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
5709
|
+
this.NOTE.value = note;
|
|
5710
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
5711
|
+
}
|
|
5687
5712
|
}
|
|
5688
5713
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
5689
5714
|
if (acceptedDate) {
|
|
@@ -5789,7 +5814,23 @@ var CommonDate = class extends Common {
|
|
|
5789
5814
|
);
|
|
5790
5815
|
}
|
|
5791
5816
|
exportValue() {
|
|
5792
|
-
|
|
5817
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
5818
|
+
if (!formatted) {
|
|
5819
|
+
return formatted;
|
|
5820
|
+
}
|
|
5821
|
+
const note = this.NOTE?.value?.trim();
|
|
5822
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
5823
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
5824
|
+
return standardized.replace(
|
|
5825
|
+
GEDCOM_MONTHS,
|
|
5826
|
+
(month) => month.toUpperCase()
|
|
5827
|
+
);
|
|
5828
|
+
}
|
|
5829
|
+
toGedcomLines(tag, level = 0, options) {
|
|
5830
|
+
const internal = new RegExp(
|
|
5831
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
5832
|
+
);
|
|
5833
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
5793
5834
|
}
|
|
5794
5835
|
inRange(range, trueIfNoYear = false) {
|
|
5795
5836
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
|
@@ -6653,7 +6694,7 @@ var Families = class _Families extends List {
|
|
|
6653
6694
|
// package.json
|
|
6654
6695
|
var package_default = {
|
|
6655
6696
|
name: "@treeviz/gedcom-parser",
|
|
6656
|
-
version: "2.0.
|
|
6697
|
+
version: "2.0.8"};
|
|
6657
6698
|
|
|
6658
6699
|
// src/utils/get-product-details.ts
|
|
6659
6700
|
var isDevelopment = () => {
|
|
@@ -6663,6 +6704,9 @@ var getVersion = () => package_default.version;
|
|
|
6663
6704
|
var getName = () => package_default.name;
|
|
6664
6705
|
|
|
6665
6706
|
// src/classes/gedcom.ts
|
|
6707
|
+
var isObjectPatch = (value) => {
|
|
6708
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
6709
|
+
};
|
|
6666
6710
|
var GedCom = class extends Common {
|
|
6667
6711
|
constructor() {
|
|
6668
6712
|
super();
|
|
@@ -6687,6 +6731,77 @@ var GedCom = class extends Common {
|
|
|
6687
6731
|
getList(type) {
|
|
6688
6732
|
return this.get(type);
|
|
6689
6733
|
}
|
|
6734
|
+
createNodeFromPatchValue(value, main) {
|
|
6735
|
+
if (value === void 0 || value === null) {
|
|
6736
|
+
return void 0;
|
|
6737
|
+
}
|
|
6738
|
+
const node = createCommon(this, void 0, main);
|
|
6739
|
+
if (Array.isArray(value)) {
|
|
6740
|
+
value.forEach((item) => {
|
|
6741
|
+
const childNode = this.createNodeFromPatchValue(item, node);
|
|
6742
|
+
if (childNode) {
|
|
6743
|
+
node.assign("DATA", childNode);
|
|
6744
|
+
}
|
|
6745
|
+
});
|
|
6746
|
+
return node;
|
|
6747
|
+
}
|
|
6748
|
+
if (isObjectPatch(value)) {
|
|
6749
|
+
this.applyObjectToCommon(node, value);
|
|
6750
|
+
return node;
|
|
6751
|
+
}
|
|
6752
|
+
node.value = String(value);
|
|
6753
|
+
return node;
|
|
6754
|
+
}
|
|
6755
|
+
applyObjectToCommon(target, patch) {
|
|
6756
|
+
Object.entries(patch).forEach(([rawTag, value]) => {
|
|
6757
|
+
if (rawTag === "value") {
|
|
6758
|
+
if (value === null || value === void 0 || Array.isArray(value) || isObjectPatch(value)) {
|
|
6759
|
+
return;
|
|
6760
|
+
}
|
|
6761
|
+
target.value = String(value);
|
|
6762
|
+
return;
|
|
6763
|
+
}
|
|
6764
|
+
if (rawTag === "id") {
|
|
6765
|
+
if (typeof value === "string") {
|
|
6766
|
+
target.id = value;
|
|
6767
|
+
}
|
|
6768
|
+
return;
|
|
6769
|
+
}
|
|
6770
|
+
const tag = rawTag;
|
|
6771
|
+
if (value === void 0) {
|
|
6772
|
+
return;
|
|
6773
|
+
}
|
|
6774
|
+
if (value === null) {
|
|
6775
|
+
target.remove(tag);
|
|
6776
|
+
return;
|
|
6777
|
+
}
|
|
6778
|
+
if (Array.isArray(value)) {
|
|
6779
|
+
target.remove(tag);
|
|
6780
|
+
value.forEach((item) => {
|
|
6781
|
+
const listNode = this.createNodeFromPatchValue(
|
|
6782
|
+
item,
|
|
6783
|
+
target.main ?? this
|
|
6784
|
+
);
|
|
6785
|
+
if (listNode) {
|
|
6786
|
+
target.assign(tag, listNode);
|
|
6787
|
+
}
|
|
6788
|
+
});
|
|
6789
|
+
return;
|
|
6790
|
+
}
|
|
6791
|
+
if (isObjectPatch(value)) {
|
|
6792
|
+
const existing = target.get(tag);
|
|
6793
|
+
const objectNode = existing ?? createCommon(this, void 0, target.main ?? this);
|
|
6794
|
+
this.applyObjectToCommon(objectNode, value);
|
|
6795
|
+
target.set(tag, objectNode);
|
|
6796
|
+
return;
|
|
6797
|
+
}
|
|
6798
|
+
target.set(tag, String(value));
|
|
6799
|
+
});
|
|
6800
|
+
}
|
|
6801
|
+
applyObject(patch) {
|
|
6802
|
+
this.applyObjectToCommon(this, patch);
|
|
6803
|
+
return this;
|
|
6804
|
+
}
|
|
6690
6805
|
indis() {
|
|
6691
6806
|
return this.getList("@@INDI");
|
|
6692
6807
|
}
|
|
@@ -12,6 +12,11 @@ import type { Sources } from "../classes/sours";
|
|
|
12
12
|
import type { SubmType } from "../classes/subm";
|
|
13
13
|
import type { Submitters } from "../classes/subms";
|
|
14
14
|
import type { FamKey, IndiKey, ObjeKey, RepoKey, SourKey, SubmKey } from "../types/types";
|
|
15
|
+
type GedcomObjectPrimitive = string | number | boolean;
|
|
16
|
+
export interface GedcomObjectPatch {
|
|
17
|
+
[key: string]: GedcomObjectPatchValue;
|
|
18
|
+
}
|
|
19
|
+
export type GedcomObjectPatchValue = GedcomObjectPrimitive | GedcomObjectPatch | GedcomObjectPatchValue[] | null | undefined;
|
|
15
20
|
interface IGedcom extends Common {
|
|
16
21
|
indis: () => Individuals | undefined;
|
|
17
22
|
fams: () => Families | undefined;
|
|
@@ -25,6 +30,7 @@ interface IGedcom extends Common {
|
|
|
25
30
|
sour: (index: number | SourKey) => SourType | undefined;
|
|
26
31
|
repo: (index: number | RepoKey) => RepoType | undefined;
|
|
27
32
|
subm: (index: number | SubmKey) => SubmType | undefined;
|
|
33
|
+
applyObject: (patch: GedcomObjectPatch) => IGedcom;
|
|
28
34
|
}
|
|
29
35
|
export default IGedcom;
|
|
30
36
|
//# sourceMappingURL=gedcom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gedcom.d.ts","sourceRoot":"","sources":["../../src/interfaces/gedcom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,gBAAgB,CAAC;AAExB,UAAU,OAAQ,SAAQ,MAAM;IAC/B,KAAK,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAErC,IAAI,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAEtC,KAAK,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAEpC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;IAErD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"gedcom.d.ts","sourceRoot":"","sources":["../../src/interfaces/gedcom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,MAAM,gBAAgB,CAAC;AAExB,KAAK,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACvD,MAAM,WAAW,iBAAiB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB,CAAC;CACtC;AACD,MAAM,MAAM,sBAAsB,GAC/B,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB,EAAE,GACxB,IAAI,GACJ,SAAS,CAAC;AAEb,UAAU,OAAQ,SAAQ,MAAM;IAC/B,KAAK,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAErC,IAAI,EAAE,MAAM,QAAQ,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IAEjC,KAAK,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;IAEtC,KAAK,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAEpC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;IAErD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,KAAK,QAAQ,GAAG,SAAS,CAAC;IAExD,WAAW,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC;CACnD;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -2586,6 +2586,20 @@ var LONG_NOTES = {
|
|
|
2586
2586
|
"Bef.": "Before",
|
|
2587
2587
|
"Aft.": "After"
|
|
2588
2588
|
};
|
|
2589
|
+
var STANDARD_QUALIFIERS = {
|
|
2590
|
+
ABT: "Abt.",
|
|
2591
|
+
ABOUT: "Abt.",
|
|
2592
|
+
BEF: "Bef.",
|
|
2593
|
+
BEFORE: "Bef.",
|
|
2594
|
+
AFT: "Aft.",
|
|
2595
|
+
AFTER: "Aft."
|
|
2596
|
+
};
|
|
2597
|
+
var EXPORT_QUALIFIERS = {
|
|
2598
|
+
"Abt.": "ABT",
|
|
2599
|
+
"Bef.": "BEF",
|
|
2600
|
+
"Aft.": "AFT"
|
|
2601
|
+
};
|
|
2602
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
2589
2603
|
var NOTE_MARKER = "####";
|
|
2590
2604
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
2591
2605
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -2619,6 +2633,17 @@ var CommonDate = class extends Common {
|
|
|
2619
2633
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
2620
2634
|
this.NOTE.value = noteMatch?.note;
|
|
2621
2635
|
validValue = value.replace(noteRegExp, "");
|
|
2636
|
+
} else {
|
|
2637
|
+
const qualifierMatch = value.match(
|
|
2638
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
2639
|
+
);
|
|
2640
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
2641
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
2642
|
+
if (note) {
|
|
2643
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
2644
|
+
this.NOTE.value = note;
|
|
2645
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
2646
|
+
}
|
|
2622
2647
|
}
|
|
2623
2648
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
2624
2649
|
if (acceptedDate) {
|
|
@@ -2724,7 +2749,23 @@ var CommonDate = class extends Common {
|
|
|
2724
2749
|
);
|
|
2725
2750
|
}
|
|
2726
2751
|
exportValue() {
|
|
2727
|
-
|
|
2752
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
2753
|
+
if (!formatted) {
|
|
2754
|
+
return formatted;
|
|
2755
|
+
}
|
|
2756
|
+
const note = this.NOTE?.value?.trim();
|
|
2757
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
2758
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
2759
|
+
return standardized.replace(
|
|
2760
|
+
GEDCOM_MONTHS,
|
|
2761
|
+
(month) => month.toUpperCase()
|
|
2762
|
+
);
|
|
2763
|
+
}
|
|
2764
|
+
toGedcomLines(tag, level = 0, options) {
|
|
2765
|
+
const internal = new RegExp(
|
|
2766
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
2767
|
+
);
|
|
2768
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
2728
2769
|
}
|
|
2729
2770
|
inRange(range, trueIfNoYear = false) {
|
|
2730
2771
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
package/dist/utils/index.js
CHANGED
|
@@ -6333,6 +6333,20 @@ var LONG_NOTES = {
|
|
|
6333
6333
|
"Bef.": "Before",
|
|
6334
6334
|
"Aft.": "After"
|
|
6335
6335
|
};
|
|
6336
|
+
var STANDARD_QUALIFIERS = {
|
|
6337
|
+
ABT: "Abt.",
|
|
6338
|
+
ABOUT: "Abt.",
|
|
6339
|
+
BEF: "Bef.",
|
|
6340
|
+
BEFORE: "Bef.",
|
|
6341
|
+
AFT: "Aft.",
|
|
6342
|
+
AFTER: "Aft."
|
|
6343
|
+
};
|
|
6344
|
+
var EXPORT_QUALIFIERS = {
|
|
6345
|
+
"Abt.": "ABT",
|
|
6346
|
+
"Bef.": "BEF",
|
|
6347
|
+
"Aft.": "AFT"
|
|
6348
|
+
};
|
|
6349
|
+
var GEDCOM_MONTHS = /\b(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\b/g;
|
|
6336
6350
|
var NOTE_MARKER = "####";
|
|
6337
6351
|
var formatDateWithComponents = (date, hasDay, hasMonth, hasYear, noteValue, baseFormat = "dd MMM yyyy", locale) => {
|
|
6338
6352
|
const hasNote = baseFormat.includes("NOTE");
|
|
@@ -6366,6 +6380,17 @@ var CommonDate = class extends Common {
|
|
|
6366
6380
|
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
6367
6381
|
this.NOTE.value = noteMatch?.note;
|
|
6368
6382
|
validValue = value.replace(noteRegExp, "");
|
|
6383
|
+
} else {
|
|
6384
|
+
const qualifierMatch = value.match(
|
|
6385
|
+
/^(?<qualifier>ABT|ABOUT|BEF|BEFORE|AFT|AFTER)\b\s*/i
|
|
6386
|
+
);
|
|
6387
|
+
const qualifier = qualifierMatch?.groups?.qualifier?.toUpperCase();
|
|
6388
|
+
const note = qualifier ? STANDARD_QUALIFIERS[qualifier] : void 0;
|
|
6389
|
+
if (note) {
|
|
6390
|
+
this.NOTE = this.NOTE || createCommon(this._gedcom, void 0, this.main);
|
|
6391
|
+
this.NOTE.value = note;
|
|
6392
|
+
validValue = value.slice(qualifierMatch[0].length);
|
|
6393
|
+
}
|
|
6369
6394
|
}
|
|
6370
6395
|
const acceptedDate = this.isValidDateFormat(validValue);
|
|
6371
6396
|
if (acceptedDate) {
|
|
@@ -6471,7 +6496,23 @@ var CommonDate = class extends Common {
|
|
|
6471
6496
|
);
|
|
6472
6497
|
}
|
|
6473
6498
|
exportValue() {
|
|
6474
|
-
|
|
6499
|
+
const formatted = this.toValue("NOTE dd MMM yyyy", null);
|
|
6500
|
+
if (!formatted) {
|
|
6501
|
+
return formatted;
|
|
6502
|
+
}
|
|
6503
|
+
const note = this.NOTE?.value?.trim();
|
|
6504
|
+
const qualifier = note ? EXPORT_QUALIFIERS[note] : void 0;
|
|
6505
|
+
const standardized = qualifier ? formatted.replace(note, qualifier) : formatted;
|
|
6506
|
+
return standardized.replace(
|
|
6507
|
+
GEDCOM_MONTHS,
|
|
6508
|
+
(month) => month.toUpperCase()
|
|
6509
|
+
);
|
|
6510
|
+
}
|
|
6511
|
+
toGedcomLines(tag, level = 0, options) {
|
|
6512
|
+
const internal = new RegExp(
|
|
6513
|
+
`^${level} (DAY|MONTH|YEAR)( |$)|^${level} NOTE (Abt\\.|Bef\\.|Aft\\.)$`
|
|
6514
|
+
);
|
|
6515
|
+
return super.toGedcomLines(tag, level, options).filter((line) => !internal.test(line));
|
|
6475
6516
|
}
|
|
6476
6517
|
inRange(range, trueIfNoYear = false) {
|
|
6477
6518
|
return inRange(this.YEAR?.value, range, trueIfNoYear);
|
|
@@ -6489,7 +6530,7 @@ var isCommonDate = (value) => {
|
|
|
6489
6530
|
// package.json
|
|
6490
6531
|
var package_default = {
|
|
6491
6532
|
name: "@treeviz/gedcom-parser",
|
|
6492
|
-
version: "2.0.
|
|
6533
|
+
version: "2.0.8"};
|
|
6493
6534
|
|
|
6494
6535
|
// src/utils/get-product-details.ts
|
|
6495
6536
|
var isDevelopment = () => {
|
|
@@ -6499,6 +6540,9 @@ var getVersion = () => package_default.version;
|
|
|
6499
6540
|
var getName = () => package_default.name;
|
|
6500
6541
|
|
|
6501
6542
|
// src/classes/gedcom.ts
|
|
6543
|
+
var isObjectPatch = (value) => {
|
|
6544
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
6545
|
+
};
|
|
6502
6546
|
var GedCom = class extends Common {
|
|
6503
6547
|
constructor() {
|
|
6504
6548
|
super();
|
|
@@ -6523,6 +6567,77 @@ var GedCom = class extends Common {
|
|
|
6523
6567
|
getList(type) {
|
|
6524
6568
|
return this.get(type);
|
|
6525
6569
|
}
|
|
6570
|
+
createNodeFromPatchValue(value, main) {
|
|
6571
|
+
if (value === void 0 || value === null) {
|
|
6572
|
+
return void 0;
|
|
6573
|
+
}
|
|
6574
|
+
const node = createCommon(this, void 0, main);
|
|
6575
|
+
if (Array.isArray(value)) {
|
|
6576
|
+
value.forEach((item) => {
|
|
6577
|
+
const childNode = this.createNodeFromPatchValue(item, node);
|
|
6578
|
+
if (childNode) {
|
|
6579
|
+
node.assign("DATA", childNode);
|
|
6580
|
+
}
|
|
6581
|
+
});
|
|
6582
|
+
return node;
|
|
6583
|
+
}
|
|
6584
|
+
if (isObjectPatch(value)) {
|
|
6585
|
+
this.applyObjectToCommon(node, value);
|
|
6586
|
+
return node;
|
|
6587
|
+
}
|
|
6588
|
+
node.value = String(value);
|
|
6589
|
+
return node;
|
|
6590
|
+
}
|
|
6591
|
+
applyObjectToCommon(target, patch) {
|
|
6592
|
+
Object.entries(patch).forEach(([rawTag, value]) => {
|
|
6593
|
+
if (rawTag === "value") {
|
|
6594
|
+
if (value === null || value === void 0 || Array.isArray(value) || isObjectPatch(value)) {
|
|
6595
|
+
return;
|
|
6596
|
+
}
|
|
6597
|
+
target.value = String(value);
|
|
6598
|
+
return;
|
|
6599
|
+
}
|
|
6600
|
+
if (rawTag === "id") {
|
|
6601
|
+
if (typeof value === "string") {
|
|
6602
|
+
target.id = value;
|
|
6603
|
+
}
|
|
6604
|
+
return;
|
|
6605
|
+
}
|
|
6606
|
+
const tag = rawTag;
|
|
6607
|
+
if (value === void 0) {
|
|
6608
|
+
return;
|
|
6609
|
+
}
|
|
6610
|
+
if (value === null) {
|
|
6611
|
+
target.remove(tag);
|
|
6612
|
+
return;
|
|
6613
|
+
}
|
|
6614
|
+
if (Array.isArray(value)) {
|
|
6615
|
+
target.remove(tag);
|
|
6616
|
+
value.forEach((item) => {
|
|
6617
|
+
const listNode = this.createNodeFromPatchValue(
|
|
6618
|
+
item,
|
|
6619
|
+
target.main ?? this
|
|
6620
|
+
);
|
|
6621
|
+
if (listNode) {
|
|
6622
|
+
target.assign(tag, listNode);
|
|
6623
|
+
}
|
|
6624
|
+
});
|
|
6625
|
+
return;
|
|
6626
|
+
}
|
|
6627
|
+
if (isObjectPatch(value)) {
|
|
6628
|
+
const existing = target.get(tag);
|
|
6629
|
+
const objectNode = existing ?? createCommon(this, void 0, target.main ?? this);
|
|
6630
|
+
this.applyObjectToCommon(objectNode, value);
|
|
6631
|
+
target.set(tag, objectNode);
|
|
6632
|
+
return;
|
|
6633
|
+
}
|
|
6634
|
+
target.set(tag, String(value));
|
|
6635
|
+
});
|
|
6636
|
+
}
|
|
6637
|
+
applyObject(patch) {
|
|
6638
|
+
this.applyObjectToCommon(this, patch);
|
|
6639
|
+
return this;
|
|
6640
|
+
}
|
|
6526
6641
|
indis() {
|
|
6527
6642
|
return this.getList("@@INDI");
|
|
6528
6643
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@treeviz/gedcom-parser",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"description": "Lightweight, pluggable GEDCOM parser for JavaScript/TypeScript with optional caching and place matching. Zero browser dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|