@treeviz/gedcom-parser 1.0.19 → 1.0.21
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/index.d.ts +1 -1
- package/dist/classes/index.js +151 -45
- package/dist/cli/index.js +151 -45
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +150 -44
- package/dist/factories/index.d.ts +2 -2
- package/dist/factories/index.js +150 -44
- package/dist/{index-BnFjCzJz.d.ts → index-BPEVN_DY.d.ts} +19 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +151 -45
- package/dist/interfaces/index.d.ts +1 -1
- package/dist/kinship-translator/index.d.ts +2 -2
- package/dist/kinship-translator/index.js +150 -44
- package/dist/{place-parser-ChkPI4pQ.d.ts → place-parser-CM0TJFj8.d.ts} +1 -1
- package/dist/place-translator-CRiaOO9v.d.ts +88 -0
- package/dist/structures/index.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/index.d.ts +14 -86
- package/dist/utils/index.js +152 -46
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1374,6 +1374,27 @@ var notImplemented = (type, ...args) => {
|
|
|
1374
1374
|
console.error(`[Not Implemented] ${type}`, ...args);
|
|
1375
1375
|
};
|
|
1376
1376
|
|
|
1377
|
+
// src/utils/media-utils.ts
|
|
1378
|
+
var getFileExtension = (filename) => {
|
|
1379
|
+
const match = filename.match(/\.([^.]+)$/);
|
|
1380
|
+
return match ? match[1] : "";
|
|
1381
|
+
};
|
|
1382
|
+
var isImageFormat = (format2) => {
|
|
1383
|
+
if (!format2) return false;
|
|
1384
|
+
const imageFormats = [
|
|
1385
|
+
"jpg",
|
|
1386
|
+
"jpeg",
|
|
1387
|
+
"png",
|
|
1388
|
+
"gif",
|
|
1389
|
+
"bmp",
|
|
1390
|
+
"webp",
|
|
1391
|
+
"svg",
|
|
1392
|
+
"tiff",
|
|
1393
|
+
"tif"
|
|
1394
|
+
];
|
|
1395
|
+
return imageFormats.includes(format2.toLowerCase());
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1377
1398
|
// src/classes/name.ts
|
|
1378
1399
|
var CommonName = class extends Common {
|
|
1379
1400
|
constructor(gedcom, id, main, parent) {
|
|
@@ -2006,54 +2027,62 @@ var Indi = class extends Common {
|
|
|
2006
2027
|
}
|
|
2007
2028
|
async ancestryMedia(namespace) {
|
|
2008
2029
|
const list = {};
|
|
2009
|
-
const
|
|
2030
|
+
const objeList = this.get("OBJE")?.toList();
|
|
2010
2031
|
const www = this._gedcom?.HEAD?.SOUR?.CORP?.WWW?.value;
|
|
2011
2032
|
const tree = this.getAncestryTreeId();
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
let url = obje?.get("FILE")?.toValue();
|
|
2022
|
-
const title = obje?.get("TITL")?.toValue() ?? "";
|
|
2023
|
-
const type = obje?.get("FORM")?.toValue() ?? "raw";
|
|
2024
|
-
const imgId = clone || mser;
|
|
2025
|
-
if (!www || !tree || !this.id) {
|
|
2026
|
-
return;
|
|
2027
|
-
}
|
|
2028
|
-
if (!namespace && !url) {
|
|
2029
|
-
try {
|
|
2030
|
-
const mediaDetailsResponse = await fetch(
|
|
2031
|
-
`https://www.ancestry.com/api/media/viewer/v2/trees/${tree}/media?id=${media}`
|
|
2032
|
-
);
|
|
2033
|
-
const mediaDetails = await mediaDetailsResponse.json();
|
|
2034
|
-
if (mediaDetails.url) {
|
|
2035
|
-
url = `${mediaDetails.url}&imageQuality=hq`;
|
|
2033
|
+
if (objeList) {
|
|
2034
|
+
await Promise.all(
|
|
2035
|
+
objeList.map(async (objeRef) => {
|
|
2036
|
+
const key = objeRef?.id;
|
|
2037
|
+
const obje = objeRef?.standardizeMedia(
|
|
2038
|
+
namespace,
|
|
2039
|
+
true,
|
|
2040
|
+
(ns, iId) => {
|
|
2041
|
+
return ns && iId ? `https://mediasvc.ancestry.com/v2/image/namespaces/${ns}/media/${iId}?client=trees-mediaservice&imageQuality=hq` : void 0;
|
|
2036
2042
|
}
|
|
2037
|
-
|
|
2043
|
+
);
|
|
2044
|
+
const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
|
|
2045
|
+
const media = obje?.RIN?.value;
|
|
2046
|
+
const clone = obje?.get("_CLON._OID")?.toValue();
|
|
2047
|
+
const mser = obje?.get("_MSER._LKID")?.toValue();
|
|
2048
|
+
let url = obje?.get("FILE")?.toValue();
|
|
2049
|
+
const title = obje?.get("TITL")?.toValue() ?? "";
|
|
2050
|
+
const type = obje?.get("FORM")?.toValue() ?? "raw";
|
|
2051
|
+
const imgId = clone || mser;
|
|
2052
|
+
if (!www || !tree || !this.id) {
|
|
2053
|
+
return;
|
|
2038
2054
|
}
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
url
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2055
|
+
if (!namespace && !url) {
|
|
2056
|
+
try {
|
|
2057
|
+
const mediaDetailsResponse = await fetch(
|
|
2058
|
+
`https://www.ancestry.com/api/media/viewer/v2/trees/${tree}/media?id=${media}`
|
|
2059
|
+
);
|
|
2060
|
+
const mediaDetails = await mediaDetailsResponse.json();
|
|
2061
|
+
if (mediaDetails.url) {
|
|
2062
|
+
url = `${mediaDetails.url}&imageQuality=hq`;
|
|
2063
|
+
}
|
|
2064
|
+
} catch (_e) {
|
|
2065
|
+
}
|
|
2066
|
+
url = url || `https://${www}/mediaui-viewer/tree/${tree}/media/${media}`;
|
|
2067
|
+
}
|
|
2068
|
+
if (url && imgId) {
|
|
2069
|
+
const id = `${tree}-${this.id}-${imgId}`;
|
|
2070
|
+
list[id] = {
|
|
2071
|
+
key,
|
|
2072
|
+
isPrimary,
|
|
2073
|
+
id,
|
|
2074
|
+
tree,
|
|
2075
|
+
imgId,
|
|
2076
|
+
person: this.id,
|
|
2077
|
+
title,
|
|
2078
|
+
url,
|
|
2079
|
+
contentType: type,
|
|
2080
|
+
downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName().replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
|
|
2081
|
+
};
|
|
2082
|
+
}
|
|
2083
|
+
})
|
|
2084
|
+
);
|
|
2085
|
+
}
|
|
2057
2086
|
return list;
|
|
2058
2087
|
}
|
|
2059
2088
|
myheritageLink(poolId = 0) {
|
|
@@ -2091,6 +2120,7 @@ var Indi = class extends Common {
|
|
|
2091
2120
|
if (url && imgId) {
|
|
2092
2121
|
const id = `${tree}-${this.id}-${imgId}`;
|
|
2093
2122
|
list[id] = {
|
|
2123
|
+
isPrimary: false,
|
|
2094
2124
|
key,
|
|
2095
2125
|
id,
|
|
2096
2126
|
tree,
|
|
@@ -2200,6 +2230,36 @@ var Indi = class extends Common {
|
|
|
2200
2230
|
}
|
|
2201
2231
|
return void 0;
|
|
2202
2232
|
}
|
|
2233
|
+
async getProfilePicture(namespace) {
|
|
2234
|
+
const mediaList = await this.multimedia(namespace);
|
|
2235
|
+
if (!mediaList) {
|
|
2236
|
+
return void 0;
|
|
2237
|
+
}
|
|
2238
|
+
const mediaArray = Object.values(mediaList);
|
|
2239
|
+
const primaryMedia = mediaArray.find(
|
|
2240
|
+
(media) => media.isPrimary && isImageFormat(media.contentType || getFileExtension(media.url))
|
|
2241
|
+
);
|
|
2242
|
+
if (primaryMedia) {
|
|
2243
|
+
return {
|
|
2244
|
+
file: primaryMedia.url,
|
|
2245
|
+
form: primaryMedia.contentType,
|
|
2246
|
+
title: primaryMedia.title,
|
|
2247
|
+
isPrimary: true
|
|
2248
|
+
};
|
|
2249
|
+
}
|
|
2250
|
+
const secondaryMedia = mediaArray.find(
|
|
2251
|
+
(media) => isImageFormat(media.contentType || getFileExtension(media.url))
|
|
2252
|
+
);
|
|
2253
|
+
if (secondaryMedia) {
|
|
2254
|
+
return {
|
|
2255
|
+
file: secondaryMedia.url,
|
|
2256
|
+
form: secondaryMedia.contentType,
|
|
2257
|
+
title: secondaryMedia.title,
|
|
2258
|
+
isPrimary: false
|
|
2259
|
+
};
|
|
2260
|
+
}
|
|
2261
|
+
return void 0;
|
|
2262
|
+
}
|
|
2203
2263
|
link(poolId) {
|
|
2204
2264
|
if (this?.isAncestry()) {
|
|
2205
2265
|
return this.ancestryLink();
|
|
@@ -2292,6 +2352,52 @@ var Indi = class extends Common {
|
|
|
2292
2352
|
const deathEvent = this.get("DEAT")?.index(0);
|
|
2293
2353
|
return deathEvent?.PLAC?.value;
|
|
2294
2354
|
}
|
|
2355
|
+
/**
|
|
2356
|
+
* Get all marriage places for this individual
|
|
2357
|
+
* @returns Array of marriage place strings (may include undefined for marriages without place)
|
|
2358
|
+
*/
|
|
2359
|
+
getMarriagePlaces() {
|
|
2360
|
+
const marriagePlaces = [];
|
|
2361
|
+
const families = this.getFamilies("FAMS");
|
|
2362
|
+
families.forEach((family) => {
|
|
2363
|
+
const marrEvents = (family?.MARR?.toList().values() ?? []).filter(
|
|
2364
|
+
Boolean
|
|
2365
|
+
);
|
|
2366
|
+
if (marrEvents.length === 0) {
|
|
2367
|
+
marriagePlaces.push(void 0);
|
|
2368
|
+
} else {
|
|
2369
|
+
marrEvents.forEach((marrEvent) => {
|
|
2370
|
+
const marriageEventDetail = marrEvent;
|
|
2371
|
+
const marriagePlace = marriageEventDetail?.PLAC?.value;
|
|
2372
|
+
marriagePlaces.push(marriagePlace);
|
|
2373
|
+
});
|
|
2374
|
+
}
|
|
2375
|
+
});
|
|
2376
|
+
return marriagePlaces;
|
|
2377
|
+
}
|
|
2378
|
+
/**
|
|
2379
|
+
* Get all marriage dates for this individual
|
|
2380
|
+
* @returns Array of marriage date strings (may include undefined for marriages without date)
|
|
2381
|
+
*/
|
|
2382
|
+
getMarriageDates() {
|
|
2383
|
+
const marriageDates = [];
|
|
2384
|
+
const families = this.getFamilies("FAMS");
|
|
2385
|
+
families.forEach((family) => {
|
|
2386
|
+
const marrEvents = (family?.MARR?.toList().values() ?? []).filter(
|
|
2387
|
+
Boolean
|
|
2388
|
+
);
|
|
2389
|
+
if (marrEvents.length === 0) {
|
|
2390
|
+
marriageDates.push(void 0);
|
|
2391
|
+
} else {
|
|
2392
|
+
marrEvents.forEach((marrEvent) => {
|
|
2393
|
+
const marriageEventDetail = marrEvent;
|
|
2394
|
+
const marriageDate = marriageEventDetail?.DATE?.value;
|
|
2395
|
+
marriageDates.push(marriageDate);
|
|
2396
|
+
});
|
|
2397
|
+
}
|
|
2398
|
+
});
|
|
2399
|
+
return marriageDates;
|
|
2400
|
+
}
|
|
2295
2401
|
isDead() {
|
|
2296
2402
|
return this.get("DEAT.DATE")?.toValue() !== void 0 || this.get("DEAT.PLAC")?.toValue() !== void 0;
|
|
2297
2403
|
}
|
|
@@ -6163,7 +6269,7 @@ var Families = class _Families extends List {
|
|
|
6163
6269
|
// package.json
|
|
6164
6270
|
var package_default = {
|
|
6165
6271
|
name: "@treeviz/gedcom-parser",
|
|
6166
|
-
version: "1.0.
|
|
6272
|
+
version: "1.0.21"};
|
|
6167
6273
|
|
|
6168
6274
|
// src/utils/get-product-details.ts
|
|
6169
6275
|
var isDevelopment = () => {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { ba as GeneratedIndiMethods, b5 as ICommon, b6 as IFam, b7 as IFamilies, b8 as IGedCom, b9 as IIndi, bb as IIndividuals, bc as IList, bd as IObje, be as IRepo, bf as ISour, bg as ISubm } from '../index-BPEVN_DY.js';
|
|
2
2
|
import 'date-fns';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { I as IKinshipTranslator, af as Path, ae as PathItem, a1 as IndiType, n as IndiKey, L as Language } from '../index-
|
|
2
|
-
export { C as Cases, j as CrossCase, k as CrossCases } from '../index-
|
|
1
|
+
import { I as IKinshipTranslator, af as Path, ae as PathItem, a1 as IndiType, n as IndiKey, L as Language } from '../index-BPEVN_DY.js';
|
|
2
|
+
export { C as Cases, j as CrossCase, k as CrossCases } from '../index-BPEVN_DY.js';
|
|
3
3
|
import 'date-fns';
|
|
4
4
|
|
|
5
5
|
declare class KinshipTranslatorBasic implements IKinshipTranslator {
|
|
@@ -2882,6 +2882,27 @@ var getPlaces = (common, type = ["ALL" /* All */], maxLevel = 1, level = 0, main
|
|
|
2882
2882
|
};
|
|
2883
2883
|
var implemented = (type, ...args) => {
|
|
2884
2884
|
};
|
|
2885
|
+
|
|
2886
|
+
// src/utils/media-utils.ts
|
|
2887
|
+
var getFileExtension = (filename) => {
|
|
2888
|
+
const match = filename.match(/\.([^.]+)$/);
|
|
2889
|
+
return match ? match[1] : "";
|
|
2890
|
+
};
|
|
2891
|
+
var isImageFormat = (format2) => {
|
|
2892
|
+
if (!format2) return false;
|
|
2893
|
+
const imageFormats = [
|
|
2894
|
+
"jpg",
|
|
2895
|
+
"jpeg",
|
|
2896
|
+
"png",
|
|
2897
|
+
"gif",
|
|
2898
|
+
"bmp",
|
|
2899
|
+
"webp",
|
|
2900
|
+
"svg",
|
|
2901
|
+
"tiff",
|
|
2902
|
+
"tif"
|
|
2903
|
+
];
|
|
2904
|
+
return imageFormats.includes(format2.toLowerCase());
|
|
2905
|
+
};
|
|
2885
2906
|
var uniqueItemsCache = /* @__PURE__ */ new WeakMap();
|
|
2886
2907
|
var setNestedGroup = (obj, key, value, uniqueCounting = true) => {
|
|
2887
2908
|
const parts = Array.isArray(key) ? key : key.split(/,\s*/);
|
|
@@ -4092,54 +4113,62 @@ var Indi = class extends Common {
|
|
|
4092
4113
|
}
|
|
4093
4114
|
async ancestryMedia(namespace) {
|
|
4094
4115
|
const list = {};
|
|
4095
|
-
const
|
|
4116
|
+
const objeList = this.get("OBJE")?.toList();
|
|
4096
4117
|
const www = this._gedcom?.HEAD?.SOUR?.CORP?.WWW?.value;
|
|
4097
4118
|
const tree = this.getAncestryTreeId();
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4106
|
-
|
|
4107
|
-
let url = obje?.get("FILE")?.toValue();
|
|
4108
|
-
const title = obje?.get("TITL")?.toValue() ?? "";
|
|
4109
|
-
const type = obje?.get("FORM")?.toValue() ?? "raw";
|
|
4110
|
-
const imgId = clone || mser;
|
|
4111
|
-
if (!www || !tree || !this.id) {
|
|
4112
|
-
return;
|
|
4113
|
-
}
|
|
4114
|
-
if (!namespace && !url) {
|
|
4115
|
-
try {
|
|
4116
|
-
const mediaDetailsResponse = await fetch(
|
|
4117
|
-
`https://www.ancestry.com/api/media/viewer/v2/trees/${tree}/media?id=${media}`
|
|
4118
|
-
);
|
|
4119
|
-
const mediaDetails = await mediaDetailsResponse.json();
|
|
4120
|
-
if (mediaDetails.url) {
|
|
4121
|
-
url = `${mediaDetails.url}&imageQuality=hq`;
|
|
4119
|
+
if (objeList) {
|
|
4120
|
+
await Promise.all(
|
|
4121
|
+
objeList.map(async (objeRef) => {
|
|
4122
|
+
const key = objeRef?.id;
|
|
4123
|
+
const obje = objeRef?.standardizeMedia(
|
|
4124
|
+
namespace,
|
|
4125
|
+
true,
|
|
4126
|
+
(ns, iId) => {
|
|
4127
|
+
return ns && iId ? `https://mediasvc.ancestry.com/v2/image/namespaces/${ns}/media/${iId}?client=trees-mediaservice&imageQuality=hq` : void 0;
|
|
4122
4128
|
}
|
|
4123
|
-
|
|
4129
|
+
);
|
|
4130
|
+
const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
|
|
4131
|
+
const media = obje?.RIN?.value;
|
|
4132
|
+
const clone = obje?.get("_CLON._OID")?.toValue();
|
|
4133
|
+
const mser = obje?.get("_MSER._LKID")?.toValue();
|
|
4134
|
+
let url = obje?.get("FILE")?.toValue();
|
|
4135
|
+
const title = obje?.get("TITL")?.toValue() ?? "";
|
|
4136
|
+
const type = obje?.get("FORM")?.toValue() ?? "raw";
|
|
4137
|
+
const imgId = clone || mser;
|
|
4138
|
+
if (!www || !tree || !this.id) {
|
|
4139
|
+
return;
|
|
4124
4140
|
}
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
url
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4141
|
+
if (!namespace && !url) {
|
|
4142
|
+
try {
|
|
4143
|
+
const mediaDetailsResponse = await fetch(
|
|
4144
|
+
`https://www.ancestry.com/api/media/viewer/v2/trees/${tree}/media?id=${media}`
|
|
4145
|
+
);
|
|
4146
|
+
const mediaDetails = await mediaDetailsResponse.json();
|
|
4147
|
+
if (mediaDetails.url) {
|
|
4148
|
+
url = `${mediaDetails.url}&imageQuality=hq`;
|
|
4149
|
+
}
|
|
4150
|
+
} catch (_e) {
|
|
4151
|
+
}
|
|
4152
|
+
url = url || `https://${www}/mediaui-viewer/tree/${tree}/media/${media}`;
|
|
4153
|
+
}
|
|
4154
|
+
if (url && imgId) {
|
|
4155
|
+
const id = `${tree}-${this.id}-${imgId}`;
|
|
4156
|
+
list[id] = {
|
|
4157
|
+
key,
|
|
4158
|
+
isPrimary,
|
|
4159
|
+
id,
|
|
4160
|
+
tree,
|
|
4161
|
+
imgId,
|
|
4162
|
+
person: this.id,
|
|
4163
|
+
title,
|
|
4164
|
+
url,
|
|
4165
|
+
contentType: type,
|
|
4166
|
+
downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName().replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
|
|
4167
|
+
};
|
|
4168
|
+
}
|
|
4169
|
+
})
|
|
4170
|
+
);
|
|
4171
|
+
}
|
|
4143
4172
|
return list;
|
|
4144
4173
|
}
|
|
4145
4174
|
myheritageLink(poolId = 0) {
|
|
@@ -4177,6 +4206,7 @@ var Indi = class extends Common {
|
|
|
4177
4206
|
if (url && imgId) {
|
|
4178
4207
|
const id = `${tree}-${this.id}-${imgId}`;
|
|
4179
4208
|
list[id] = {
|
|
4209
|
+
isPrimary: false,
|
|
4180
4210
|
key,
|
|
4181
4211
|
id,
|
|
4182
4212
|
tree,
|
|
@@ -4286,6 +4316,36 @@ var Indi = class extends Common {
|
|
|
4286
4316
|
}
|
|
4287
4317
|
return void 0;
|
|
4288
4318
|
}
|
|
4319
|
+
async getProfilePicture(namespace) {
|
|
4320
|
+
const mediaList = await this.multimedia(namespace);
|
|
4321
|
+
if (!mediaList) {
|
|
4322
|
+
return void 0;
|
|
4323
|
+
}
|
|
4324
|
+
const mediaArray = Object.values(mediaList);
|
|
4325
|
+
const primaryMedia = mediaArray.find(
|
|
4326
|
+
(media) => media.isPrimary && isImageFormat(media.contentType || getFileExtension(media.url))
|
|
4327
|
+
);
|
|
4328
|
+
if (primaryMedia) {
|
|
4329
|
+
return {
|
|
4330
|
+
file: primaryMedia.url,
|
|
4331
|
+
form: primaryMedia.contentType,
|
|
4332
|
+
title: primaryMedia.title,
|
|
4333
|
+
isPrimary: true
|
|
4334
|
+
};
|
|
4335
|
+
}
|
|
4336
|
+
const secondaryMedia = mediaArray.find(
|
|
4337
|
+
(media) => isImageFormat(media.contentType || getFileExtension(media.url))
|
|
4338
|
+
);
|
|
4339
|
+
if (secondaryMedia) {
|
|
4340
|
+
return {
|
|
4341
|
+
file: secondaryMedia.url,
|
|
4342
|
+
form: secondaryMedia.contentType,
|
|
4343
|
+
title: secondaryMedia.title,
|
|
4344
|
+
isPrimary: false
|
|
4345
|
+
};
|
|
4346
|
+
}
|
|
4347
|
+
return void 0;
|
|
4348
|
+
}
|
|
4289
4349
|
link(poolId) {
|
|
4290
4350
|
if (this?.isAncestry()) {
|
|
4291
4351
|
return this.ancestryLink();
|
|
@@ -4378,6 +4438,52 @@ var Indi = class extends Common {
|
|
|
4378
4438
|
const deathEvent = this.get("DEAT")?.index(0);
|
|
4379
4439
|
return deathEvent?.PLAC?.value;
|
|
4380
4440
|
}
|
|
4441
|
+
/**
|
|
4442
|
+
* Get all marriage places for this individual
|
|
4443
|
+
* @returns Array of marriage place strings (may include undefined for marriages without place)
|
|
4444
|
+
*/
|
|
4445
|
+
getMarriagePlaces() {
|
|
4446
|
+
const marriagePlaces = [];
|
|
4447
|
+
const families = this.getFamilies("FAMS");
|
|
4448
|
+
families.forEach((family) => {
|
|
4449
|
+
const marrEvents = (family?.MARR?.toList().values() ?? []).filter(
|
|
4450
|
+
Boolean
|
|
4451
|
+
);
|
|
4452
|
+
if (marrEvents.length === 0) {
|
|
4453
|
+
marriagePlaces.push(void 0);
|
|
4454
|
+
} else {
|
|
4455
|
+
marrEvents.forEach((marrEvent) => {
|
|
4456
|
+
const marriageEventDetail = marrEvent;
|
|
4457
|
+
const marriagePlace = marriageEventDetail?.PLAC?.value;
|
|
4458
|
+
marriagePlaces.push(marriagePlace);
|
|
4459
|
+
});
|
|
4460
|
+
}
|
|
4461
|
+
});
|
|
4462
|
+
return marriagePlaces;
|
|
4463
|
+
}
|
|
4464
|
+
/**
|
|
4465
|
+
* Get all marriage dates for this individual
|
|
4466
|
+
* @returns Array of marriage date strings (may include undefined for marriages without date)
|
|
4467
|
+
*/
|
|
4468
|
+
getMarriageDates() {
|
|
4469
|
+
const marriageDates = [];
|
|
4470
|
+
const families = this.getFamilies("FAMS");
|
|
4471
|
+
families.forEach((family) => {
|
|
4472
|
+
const marrEvents = (family?.MARR?.toList().values() ?? []).filter(
|
|
4473
|
+
Boolean
|
|
4474
|
+
);
|
|
4475
|
+
if (marrEvents.length === 0) {
|
|
4476
|
+
marriageDates.push(void 0);
|
|
4477
|
+
} else {
|
|
4478
|
+
marrEvents.forEach((marrEvent) => {
|
|
4479
|
+
const marriageEventDetail = marrEvent;
|
|
4480
|
+
const marriageDate = marriageEventDetail?.DATE?.value;
|
|
4481
|
+
marriageDates.push(marriageDate);
|
|
4482
|
+
});
|
|
4483
|
+
}
|
|
4484
|
+
});
|
|
4485
|
+
return marriageDates;
|
|
4486
|
+
}
|
|
4381
4487
|
isDead() {
|
|
4382
4488
|
return this.get("DEAT.DATE")?.toValue() !== void 0 || this.get("DEAT.PLAC")?.toValue() !== void 0;
|
|
4383
4489
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { l as Settings, ak as GedComType, M as MultiTag, ao as Common, t as IdType, bl as IDateStructure, aj as FamType, az as CommonDate, a1 as IndiType, n as IndiKey, J as NestedGroup, aP as Individuals } from './index-BPEVN_DY.js';
|
|
2
|
+
|
|
3
|
+
declare const GedcomTree: {
|
|
4
|
+
parse: (content: string, options?: {
|
|
5
|
+
settings?: Settings;
|
|
6
|
+
}) => any;
|
|
7
|
+
parseHierarchy: (content: string, options?: {
|
|
8
|
+
settings?: Settings;
|
|
9
|
+
}) => {
|
|
10
|
+
gedcom: GedComType;
|
|
11
|
+
raw: string;
|
|
12
|
+
};
|
|
13
|
+
addToList: (id: string, type: MultiTag, common: Common, prev: Common) => void;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
declare const create: (gedcom: GedComType, type: MultiTag, id?: string, nodes?: {
|
|
17
|
+
mainNode?: Common;
|
|
18
|
+
curNode?: Common;
|
|
19
|
+
prevNode?: Common;
|
|
20
|
+
}) => {
|
|
21
|
+
prevNode: Common<string, IdType>;
|
|
22
|
+
curNode: Common<string, IdType>;
|
|
23
|
+
mainNode: Common<string, IdType>;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
declare const ACCEPTED_DATE_FORMATS: string[];
|
|
27
|
+
declare const ACCEPTED_DATE_FORMATS_REGEX: RegExp;
|
|
28
|
+
declare const commonDateFormatter: (date?: IDateStructure["DATE"], format?: string, prefix?: string) => string;
|
|
29
|
+
declare const noteDateFormatter: (date?: IDateStructure["DATE"], format?: string, prefix?: string, shortNote?: boolean, showNote?: boolean) => string;
|
|
30
|
+
declare const marriageDateFormatter: (fam?: FamType, showDays?: boolean, showPlaces?: boolean, shortNote?: boolean, showNote?: boolean, showDisplayTextIfNoDate?: boolean, showAllEvents?: boolean, dateFormatPattern?: string) => {
|
|
31
|
+
marriages?: string[];
|
|
32
|
+
marriagePlaces?: string[];
|
|
33
|
+
rawArray: CommonDate[];
|
|
34
|
+
inArray: string[];
|
|
35
|
+
inOrder: string;
|
|
36
|
+
places: string[];
|
|
37
|
+
marriage: string[];
|
|
38
|
+
};
|
|
39
|
+
declare const dateFormatter: (indi?: IndiType, showMarriages?: boolean, showDays?: boolean, showPlaces?: boolean, shortNote?: boolean, showNote?: boolean, isOnStage?: (key: IndiKey) => boolean, showAllEvents?: boolean, dateFormatPattern?: string) => {
|
|
40
|
+
births?: string[];
|
|
41
|
+
birthPlaces?: string[];
|
|
42
|
+
deaths?: string[];
|
|
43
|
+
deathPlaces?: string[];
|
|
44
|
+
marriages?: string[];
|
|
45
|
+
marriagePlaces?: string[];
|
|
46
|
+
birthPlace?: string;
|
|
47
|
+
deathPlace?: string;
|
|
48
|
+
inArray: string[];
|
|
49
|
+
inOrder: string;
|
|
50
|
+
places: string[];
|
|
51
|
+
birth: string;
|
|
52
|
+
marriage: string[];
|
|
53
|
+
death: string;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
declare const getAllProp: <T>(indi?: IndiType, prop?: MultiTag) => T[];
|
|
57
|
+
|
|
58
|
+
declare const getFamilyWith: (person1: IndiType, person2?: IndiKey, famType?: "FAMS" | "FAMC") => FamType | undefined;
|
|
59
|
+
|
|
60
|
+
declare const isDevelopment: () => boolean;
|
|
61
|
+
declare const getVersion: () => string;
|
|
62
|
+
declare const getName: () => string;
|
|
63
|
+
|
|
64
|
+
declare const getRawSize: (raw?: string) => number;
|
|
65
|
+
|
|
66
|
+
declare const implemented: (type: string, ...args: any[]) => void;
|
|
67
|
+
declare const notImplemented: (type: string, ...args: any[]) => void;
|
|
68
|
+
|
|
69
|
+
declare const nameFormatter: (indiName?: IndiType | string, settings?: Partial<Settings>, letterOnAll?: boolean, indi?: IndiType, debug?: 3) => {
|
|
70
|
+
suffix: string;
|
|
71
|
+
givenname: string;
|
|
72
|
+
surname: string;
|
|
73
|
+
inOrder: [string, string, string];
|
|
74
|
+
letter: string;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
declare const setNestedGroup: (obj: NestedGroup, key: string | string[], value: Individuals, uniqueCounting?: boolean) => void;
|
|
78
|
+
|
|
79
|
+
declare const ordinalize: (n: number) => string;
|
|
80
|
+
declare const hungarianOrdinalize: (n: number) => string;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Place translator stub for gedcom-parser
|
|
84
|
+
* This is a minimal no-op implementation - consumer apps can implement translation if needed
|
|
85
|
+
*/
|
|
86
|
+
declare const placeTranslator: (place: string | string[]) => string;
|
|
87
|
+
|
|
88
|
+
export { ACCEPTED_DATE_FORMATS as A, GedcomTree as G, ACCEPTED_DATE_FORMATS_REGEX as a, commonDateFormatter as b, create as c, dateFormatter as d, getAllProp as e, getFamilyWith as f, getRawSize as g, getVersion as h, isDevelopment as i, getName as j, implemented as k, notImplemented as l, marriageDateFormatter as m, noteDateFormatter as n, nameFormatter as o, ordinalize as p, hungarianOrdinalize as q, placeTranslator as r, setNestedGroup as s };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ao as Common,
|
|
2
|
-
export {
|
|
1
|
+
import { ao as Common, bx as INoteStructure, bA as ISourceCitationStructure } from '../index-BPEVN_DY.js';
|
|
2
|
+
export { bh as IAddress, bi as IAssociation, bj as IChangeDate, bk as ICreationDate, bl as IDate, bm as IEventDetail, bm as IEventDetailStructure, bn as IFamily, bo as IGedcomStructure, br as IIndividual, bq as IIndividualEvent, bp as IIndividualEventDetail, br as IIndividualStructure, bs as ILdsOrdinanceDetail, bt as ILdsSpouseSealing, bu as IMarriageDate, bv as IMultimediaLink, bw as INonEvent, by as IPlace, bz as IRepository, bC as ISource, bB as ISourceRepositoryCitation } from '../index-BPEVN_DY.js';
|
|
3
3
|
import 'date-fns';
|
|
4
4
|
|
|
5
5
|
interface IPersonalNamePiecesStructure extends Common {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { m as ConvertType, F as FamKey, x as Filter, w as FilterIterator, D as Group, G as GroupDefinition, H as GroupIterator, E as GroupMarker, t as IdType, n as IndiKey, V as LinkedPersons, v as ListTag, M as MultiTag, K as NameOrder, J as NestedGroup, N as NonStandard, O as ObjeKey, A as Order, z as OrderDefinition, B as OrderIterator, X as PartnerType, Q as PlaceOrder, Y as Range, W as RelationType, o as RepoKey, y as RequiredFilter, l as Settings, q as SourKey, r as SubmKey, u as Tag, T as TagKey, U as UnknownKey } from '../index-
|
|
1
|
+
export { m as ConvertType, F as FamKey, x as Filter, w as FilterIterator, D as Group, G as GroupDefinition, H as GroupIterator, E as GroupMarker, t as IdType, n as IndiKey, V as LinkedPersons, v as ListTag, M as MultiTag, K as NameOrder, J as NestedGroup, N as NonStandard, O as ObjeKey, A as Order, z as OrderDefinition, B as OrderIterator, X as PartnerType, Q as PlaceOrder, Y as Range, W as RelationType, o as RepoKey, y as RequiredFilter, l as Settings, q as SourKey, r as SubmKey, u as Tag, T as TagKey, U as UnknownKey } from '../index-BPEVN_DY.js';
|
|
2
2
|
import 'date-fns';
|
|
3
3
|
|
|
4
4
|
interface AncestryMedia {
|