@treeviz/gedcom-parser 2.1.9 → 2.1.11

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/index.js CHANGED
@@ -35,6 +35,82 @@ var appendGedcomTrailer = (serialized) => {
35
35
  }
36
36
  return `${trimmed}${newline}0 TRLR`;
37
37
  };
38
+
39
+ // src/utils/media-utils.ts
40
+ var getFileExtension = (filename) => {
41
+ if (!filename) {
42
+ return "";
43
+ }
44
+ if (filename.startsWith("data:")) {
45
+ const mime = filename.slice(5).split(";")[0] || "";
46
+ const subtype = (mime.split("/")[1] || "").toLowerCase();
47
+ if (subtype === "jpeg") {
48
+ return "jpg";
49
+ }
50
+ return subtype.split("+")[0] || "";
51
+ }
52
+ const withoutQuery = filename.split(/[?#]/)[0] || filename;
53
+ const match = withoutQuery.match(/\.([^.]+)$/);
54
+ return match ? match[1].toLowerCase() : "";
55
+ };
56
+ var isImageFormat = (format2) => {
57
+ if (!format2) {
58
+ return false;
59
+ }
60
+ let normalized = format2.toLowerCase().trim();
61
+ if (normalized.startsWith("data:")) {
62
+ normalized = getFileExtension(normalized);
63
+ } else if (normalized.includes("/")) {
64
+ normalized = normalized.split("/")[1]?.split("+")[0] || "";
65
+ if (normalized === "jpeg") {
66
+ normalized = "jpg";
67
+ }
68
+ }
69
+ const imageFormats = [
70
+ "jpg",
71
+ "jpeg",
72
+ "png",
73
+ "gif",
74
+ "bmp",
75
+ "webp",
76
+ "svg",
77
+ "tiff",
78
+ "tif"
79
+ ];
80
+ return imageFormats.includes(normalized);
81
+ };
82
+ var resolveObjeForm = (obje) => {
83
+ const value = obje?.get?.("FILE.FORM")?.toValue?.() ?? obje?.get?.("FORM")?.toValue?.();
84
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
85
+ };
86
+ var mediaIdValue = (obje, path) => {
87
+ const value = obje?.get?.(path)?.toValue?.();
88
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
89
+ };
90
+ var resolveObjeMediaId = (obje) => mediaIdValue(obje, "RIN") || mediaIdValue(obje, "_CLON._OID") || mediaIdValue(obje, "_MSER._LKID") || mediaIdValue(obje, "_OID") || mediaIdValue(obje, "_LKID");
91
+ var ANCESTRY_MEDIA_RETRIEVAL_PREFIX = "https://www.ancestry.com/api/media/retrieval/v2/image";
92
+ var ANCESTRY_MEDIA_QUERY = "client=trees-mediaservice&imageQuality=hq";
93
+ var ancestryMediaPath = (namespace, imgId) => `/namespaces/${namespace}/media/${imgId}?${ANCESTRY_MEDIA_QUERY}`;
94
+ var ancestryMediaFileUrl = (namespace, imgId) => {
95
+ if (!namespace || !imgId) {
96
+ return void 0;
97
+ }
98
+ return `${ANCESTRY_MEDIA_RETRIEVAL_PREFIX}${ancestryMediaPath(namespace, imgId)}`;
99
+ };
100
+ var objeXrefKey = (obje, fallback = 0) => {
101
+ if (typeof obje?.id === "string" && obje.id) {
102
+ return obje.id;
103
+ }
104
+ const value = obje?.toValue?.();
105
+ if (typeof value === "string" && value.trim()) {
106
+ return value.trim();
107
+ }
108
+ if (typeof fallback === "string" && fallback.trim()) {
109
+ return fallback.trim();
110
+ }
111
+ return `@O${fallback}@`;
112
+ };
113
+ var objeNoteValue = (obje) => mediaIdValue(obje, "FILE.NOTE") || mediaIdValue(obje, "NOTE") || "";
38
114
  var List = class _List {
39
115
  // length = 0;
40
116
  constructor(items) {
@@ -684,7 +760,7 @@ var Common = class _Common {
684
760
  this,
685
761
  options.obje.namespace,
686
762
  options.obje.override,
687
- void 0,
763
+ this.isAncestry() ? ancestryMediaFileUrl : void 0,
688
764
  options.gedcomVersion
689
765
  );
690
766
  }
@@ -1240,11 +1316,8 @@ var storeCache = {
1240
1316
  getCacheDbs().relativesOnDegreeCache.setItem(value);
1241
1317
  }
1242
1318
  }, 50),
1243
- // profilePictureCache IS persisted to IndexedDB
1319
+ // Image bytes are stored as one IndexedDB record per photo.
1244
1320
  profilePictureCache: debounce((value) => {
1245
- if (value) {
1246
- getCacheDbs().profilePictureCache.setItem(value);
1247
- }
1248
1321
  }, 100)
1249
1322
  };
1250
1323
  var cacheInitialized = false;
@@ -1253,13 +1326,6 @@ var initializeCache = async () => {
1253
1326
  return;
1254
1327
  }
1255
1328
  cacheInitialized = true;
1256
- try {
1257
- const profilePictureData = await getCacheDbs().profilePictureCache.getItem();
1258
- if (profilePictureData) {
1259
- caches.profilePictureCache = profilePictureData;
1260
- }
1261
- } catch (_error) {
1262
- }
1263
1329
  };
1264
1330
  var resetRelativesCache = () => {
1265
1331
  caches.relativesOnDegreeCache = {};
@@ -2654,15 +2720,21 @@ var isRemoteOrEmbeddedMediaUrl = (path) => {
2654
2720
  }
2655
2721
  return path.startsWith("data:") || path.startsWith("blob:") || /^https?:\/\//i.test(path);
2656
2722
  };
2657
- var resolveLocalMediaUrl = async (path) => {
2723
+ var resolveLocalMediaUrl = async (path, context) => {
2658
2724
  if (!path) {
2659
2725
  return void 0;
2660
2726
  }
2661
- if (isRemoteOrEmbeddedMediaUrl(path)) {
2727
+ if (path.startsWith("data:") || path.startsWith("blob:")) {
2728
+ return path;
2729
+ }
2730
+ const resolved = await localMediaResolver?.(path, context);
2731
+ if (resolved) {
2732
+ return resolved;
2733
+ }
2734
+ if (/^https?:\/\//i.test(path)) {
2662
2735
  return path;
2663
2736
  }
2664
- const resolved = await localMediaResolver?.(path);
2665
- return resolved;
2737
+ return void 0;
2666
2738
  };
2667
2739
  var blobToDataUrl = async (blob) => {
2668
2740
  const buffer = await blob.arrayBuffer();
@@ -2719,54 +2791,6 @@ var notImplemented = (type, ...args) => {
2719
2791
  console.error(`[Not Implemented] ${type}`, ...args);
2720
2792
  };
2721
2793
 
2722
- // src/utils/media-utils.ts
2723
- var getFileExtension = (filename) => {
2724
- if (!filename) {
2725
- return "";
2726
- }
2727
- if (filename.startsWith("data:")) {
2728
- const mime = filename.slice(5).split(";")[0] || "";
2729
- const subtype = (mime.split("/")[1] || "").toLowerCase();
2730
- if (subtype === "jpeg") {
2731
- return "jpg";
2732
- }
2733
- return subtype.split("+")[0] || "";
2734
- }
2735
- const withoutQuery = filename.split(/[?#]/)[0] || filename;
2736
- const match = withoutQuery.match(/\.([^.]+)$/);
2737
- return match ? match[1].toLowerCase() : "";
2738
- };
2739
- var isImageFormat = (format2) => {
2740
- if (!format2) {
2741
- return false;
2742
- }
2743
- let normalized = format2.toLowerCase().trim();
2744
- if (normalized.startsWith("data:")) {
2745
- normalized = getFileExtension(normalized);
2746
- } else if (normalized.includes("/")) {
2747
- normalized = normalized.split("/")[1]?.split("+")[0] || "";
2748
- if (normalized === "jpeg") {
2749
- normalized = "jpg";
2750
- }
2751
- }
2752
- const imageFormats = [
2753
- "jpg",
2754
- "jpeg",
2755
- "png",
2756
- "gif",
2757
- "bmp",
2758
- "webp",
2759
- "svg",
2760
- "tiff",
2761
- "tif"
2762
- ];
2763
- return imageFormats.includes(normalized);
2764
- };
2765
- var resolveObjeForm = (obje) => {
2766
- const value = obje?.get?.("FILE.FORM")?.toValue?.() ?? obje?.get?.("FORM")?.toValue?.();
2767
- return typeof value === "string" && value.trim() ? value.trim() : void 0;
2768
- };
2769
-
2770
2794
  // src/factories/place-parser-provider.ts
2771
2795
  var placeParserProvider;
2772
2796
  var setPlaceParserProvider = (parser) => {
@@ -3982,22 +4006,19 @@ var Indi = class extends Common {
3982
4006
  if (objeList) {
3983
4007
  await Promise.all(
3984
4008
  objeList.map(async (objeRef) => {
3985
- const key = objeRef?.id;
4009
+ const key = objeXrefKey(objeRef, 0);
3986
4010
  const obje = objeRef?.standardizeMedia(
3987
4011
  namespace,
3988
4012
  true,
3989
- (ns, iId) => {
3990
- return ns && iId ? `https://mediasvc.ancestry.com/v2/image/namespaces/${ns}/media/${iId}?client=trees-mediaservice&imageQuality=hq` : void 0;
3991
- }
4013
+ ancestryMediaFileUrl
3992
4014
  );
3993
4015
  const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
3994
- const media = obje?.RIN?.toValue() || obje?.get("_OID")?.toValue();
3995
- const clone = obje?.get("_CLON._OID")?.toValue();
3996
- const mser = obje?.get("_MSER._LKID")?.toValue();
4016
+ const media = resolveObjeMediaId(obje);
3997
4017
  let url = obje?.get("FILE")?.toValue();
3998
4018
  const title = obje?.get("FILE.TITL")?.toValue() ?? obje?.get("TITL")?.toValue() ?? "";
4019
+ const note = objeNoteValue(obje);
3999
4020
  const type = resolveObjeForm(obje) ?? (url ? getFileExtension(url) : void 0) ?? "raw";
4000
- let imgId = clone || mser;
4021
+ let imgId = media;
4001
4022
  const hasEmbeddedOrLocalFile = !!url && (url.startsWith("data:") || url.startsWith("blob:") || !/^https?:\/\//i.test(url));
4002
4023
  if (!hasEmbeddedOrLocalFile && (!www || !tree || !this.id)) {
4003
4024
  return;
@@ -4033,6 +4054,7 @@ var Indi = class extends Common {
4033
4054
  imgId,
4034
4055
  person: this.id,
4035
4056
  title,
4057
+ note,
4036
4058
  url,
4037
4059
  contentType: type,
4038
4060
  downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName()?.replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
@@ -4071,7 +4093,7 @@ var Indi = class extends Common {
4071
4093
  return;
4072
4094
  }
4073
4095
  const obje = o;
4074
- const key = `@O${index}@`;
4096
+ const key = objeXrefKey(obje, index);
4075
4097
  obje.standardizeMedia();
4076
4098
  const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
4077
4099
  const url = obje?.get("FILE")?.toValue();
@@ -4090,6 +4112,7 @@ var Indi = class extends Common {
4090
4112
  imgId,
4091
4113
  person: this.id,
4092
4114
  title,
4115
+ note: objeNoteValue(obje),
4093
4116
  url,
4094
4117
  contentType: type,
4095
4118
  downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName()?.replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
@@ -4198,7 +4221,7 @@ var Indi = class extends Common {
4198
4221
  if (!obje) {
4199
4222
  return;
4200
4223
  }
4201
- const key = `@O${index}@`;
4224
+ const key = objeXrefKey(obje, index);
4202
4225
  const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
4203
4226
  const url = obje?.get("FILE")?.toValue();
4204
4227
  const title = obje?.get("TITL")?.toValue() ?? "";
@@ -4215,6 +4238,7 @@ var Indi = class extends Common {
4215
4238
  imgId,
4216
4239
  person: this.id,
4217
4240
  title,
4241
+ note: objeNoteValue(obje),
4218
4242
  url,
4219
4243
  contentType: type,
4220
4244
  downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName()?.replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
@@ -4238,7 +4262,7 @@ var Indi = class extends Common {
4238
4262
  if (!obje) {
4239
4263
  return;
4240
4264
  }
4241
- const key = `@O${index}@`;
4265
+ const key = objeXrefKey(obje, index);
4242
4266
  obje.standardizeMedia();
4243
4267
  const isPrimary = obje?.get("_PRIM")?.toValue() === "Y";
4244
4268
  const url = obje?.get("FILE")?.toValue();
@@ -4255,6 +4279,7 @@ var Indi = class extends Common {
4255
4279
  imgId,
4256
4280
  person: this.id,
4257
4281
  title,
4282
+ note: objeNoteValue(obje),
4258
4283
  url,
4259
4284
  contentType: type,
4260
4285
  downloadName: `${this.id.replaceAll("@", "")}_${this.toNaturalName()?.replaceAll(" ", "-") || ""}_${(title || key.replaceAll("@", "").toString()).replaceAll(" ", "-")}`
@@ -4286,7 +4311,12 @@ var Indi = class extends Common {
4286
4311
  );
4287
4312
  if (cached !== void 0) {
4288
4313
  if (cached?.file && !isRemoteOrEmbeddedMediaUrl(cached.file)) {
4289
- const resolvedCached = await resolveLocalMediaUrl(cached.file);
4314
+ const resolvedCached = await resolveLocalMediaUrl(cached.file, {
4315
+ url: cached.file,
4316
+ person: this.id,
4317
+ tree: this.getTreeId?.(),
4318
+ treeName: this.getTreeName?.()
4319
+ });
4290
4320
  if (resolvedCached && isRemoteOrEmbeddedMediaUrl(resolvedCached)) {
4291
4321
  const refreshed = { ...cached, file: resolvedCached };
4292
4322
  profilePictureCache(
@@ -4311,7 +4341,16 @@ var Indi = class extends Common {
4311
4341
  }
4312
4342
  const mediaArray = Object.values(mediaList);
4313
4343
  const toDisplayableProfile = async (media, isPrimary) => {
4314
- const resolvedFile = await resolveLocalMediaUrl(media.url);
4344
+ const resolvedFile = await resolveLocalMediaUrl(media.url, {
4345
+ url: media.url,
4346
+ id: media.id,
4347
+ imgId: media.imgId,
4348
+ key: media.key,
4349
+ contentType: media.contentType,
4350
+ person: media.person || this.id,
4351
+ tree: media.tree || this.getTreeId?.(),
4352
+ treeName: this.getTreeName?.()
4353
+ });
4315
4354
  if (!resolvedFile || !isRemoteOrEmbeddedMediaUrl(resolvedFile)) {
4316
4355
  return void 0;
4317
4356
  }
@@ -9006,7 +9045,9 @@ var downloadGedzipMedia = async (media, onProgress) => {
9006
9045
  id: item.id,
9007
9046
  imgId: item.imgId,
9008
9047
  key: "key" in item ? item.key : void 0,
9009
- contentType: item.contentType
9048
+ contentType: item.contentType,
9049
+ person: "person" in item ? item.person : void 0,
9050
+ tree: "tree" in item ? item.tree : void 0
9010
9051
  });
9011
9052
  if (!resolved?.content) {
9012
9053
  return;
@@ -9531,7 +9572,7 @@ var collectExtensionTagsFrom = (node, into = /* @__PURE__ */ new Set()) => {
9531
9572
  // package.json
9532
9573
  var package_default = {
9533
9574
  name: "@treeviz/gedcom-parser",
9534
- version: "2.1.9"};
9575
+ version: "2.1.11"};
9535
9576
 
9536
9577
  // src/utils/get-product-details.ts
9537
9578
  var isDevelopment = () => {
@@ -9616,16 +9657,26 @@ var Obje = class extends Common {
9616
9657
  if (!this._gedcom) {
9617
9658
  return this;
9618
9659
  }
9660
+ if (typeof this.value === "string" && isId(this.value) && this.refType === "OBJE") {
9661
+ const resolved = this.ref;
9662
+ if (resolved && resolved !== this && typeof resolved.standardizeMedia === "function") {
9663
+ resolved.standardizeMedia(
9664
+ namespace,
9665
+ override,
9666
+ urlGetter,
9667
+ gedcomVersion
9668
+ );
9669
+ return this;
9670
+ }
9671
+ }
9619
9672
  const rin = this?.get("RIN")?.toValue();
9620
- const clone = this?.get("_CLON._OID")?.toValue();
9621
- const mser = this?.get("_MSER._LKID")?.toValue();
9622
9673
  const title = this?.get("FILE.TITL")?.toValue() ?? this?.get("TITL")?.toValue() ?? "";
9623
9674
  const note = this?.get("FILE.NOTE")?.toValue() ?? this?.get("NOTE")?.toValue() ?? "";
9624
9675
  const formRaw = this?.get("FILE.FORM")?.toValue() ?? this?.get("FORM")?.toValue();
9625
9676
  const mediType = this?.get("FILE.FORM.TYPE")?.toValue() ?? this?.get("FORM.TYPE")?.toValue() ?? this?.get("MEDI")?.toValue();
9626
9677
  const file = this?.get("FILE")?.toValue();
9627
- const imgId = rin || clone || mser;
9628
- const url = file || namespace && urlGetter?.(namespace, imgId);
9678
+ const imgId = resolveObjeMediaId(this);
9679
+ const url = file || this.isAncestry() && namespace && urlGetter?.(namespace, imgId);
9629
9680
  if (!url) {
9630
9681
  return this;
9631
9682
  }
@@ -10138,6 +10189,22 @@ var GedCom = class extends Common {
10138
10189
  obje(index) {
10139
10190
  return this.getMain(this.objes(), index);
10140
10191
  }
10192
+ /**
10193
+ * People who link a shared multimedia record (`1 OBJE @On@`), i.e. Ancestry
10194
+ * face tags / everyone the photo is attached to.
10195
+ */
10196
+ indisLinkingObje(objeKey) {
10197
+ const people = [];
10198
+ this.indis()?.forEach((indi) => {
10199
+ const linked = indi?.get("OBJE")?.toList()?.values()?.some(
10200
+ (item) => item?.toValue?.() === objeKey || item?.id === objeKey
10201
+ );
10202
+ if (linked && indi) {
10203
+ people.push(indi);
10204
+ }
10205
+ });
10206
+ return people;
10207
+ }
10141
10208
  sour(index) {
10142
10209
  return this.getMain(this.sours(), index);
10143
10210
  }
@@ -11197,4 +11264,4 @@ var createEmptyGedcom = (options) => {
11197
11264
  return gedcom;
11198
11265
  };
11199
11266
 
11200
- export { ACCEPTED_DATE_FORMATS, ACCEPTED_DATE_FORMATS_REGEX, ADOPTED, APP_BRANDING, BIOLOGICAL, BIRTH, BIRTH_ASC, BIRTH_DESC, Common, CommonDate, CommonName, CommonNote, CustomTags, DATE_ASC, DATE_DESC, DEATH_ASC, DEATH_DESC, DEFAULT, DEFAULT_GEDCOM_EXPORT_VERSION, EVERY, Existed, FEMALE, FOSTER, FRIEND, Fam, Families, GEDCOM7_CALENDARS, GEDCOM7_PEDI_VALUES, GEDCOM7_RESN_VALUES, GEDCOM7_ROLE_VALUES, GEDCOM7_SEX_VALUES, GEDCOM_EXPORT_VERSIONS, GEDZIP_EXTENSION, GEDZIP_GEDCOM_ENTRY, GEDZIP_MIME, GedCom, parser_default as GedcomTree, ID_GETTER_REG, ID_REG, ID_SPLIT_REG, Indi, Individuals, KinshipTranslator, KinshipTranslatorBasic, KinshipTranslatorDe as KinshipTranslatorDE, KinshipTranslatorEn as KinshipTranslatorEN, KinshipTranslatorEs as KinshipTranslatorES, KinshipTranslatorFr as KinshipTranslatorFR, KinshipTranslatorHU, KinshipTranslatorJa as KinshipTranslatorJA, KinshipTranslatorRu as KinshipTranslatorRU, KinshipTranslatorZh as KinshipTranslatorZH, LINE_REG, List, MALE, MAX_FILE_SIZE_TO_SYNC, ORIG_HEAD_TAG, OTHER, Obje, Objects, PARTNER, PEDIGREE_VALUES, PartnerType, PlaceType, REF_LINE_REG, Range, RelationType, Repo, Repositories, SEALING, SINGLE, SPOUSE, STEP, Sour, Sources, Subm, Submitters, TREEVIZ_EXTENSION_BASE_URI, TREEVIZ_EXTENSION_URIS, UNKOWN, addFamilyFact, addIndividualFact, addNonEvent, applyGedcom7DatePhrases, applyGedcom7Enumerations, applyGedcom7RecordMetadata, attachChildToFamily, attachSpouseToFamily, buildGedzip, buildGedzipBlob, bytesToDataUrl, cacheDiscoveredPath, canAttachAsSpouse, collectExtensionTagsFrom, commonDateFormatter, consolidateChildIntoFamily, coupleKeyForFam, create, createCommon, createCommonDate, createCommonName, createCommonNote, createEmptyGedcom, createFam, createGedCom, createGedcomUid, createIndi, createObje, createProxy, createRepo, createSour, createSubm, dateFormatter, parser_default as default, deleteIndividual, downloadGedzipMedia, ensureExtensionSchema, extractGedzip, extractGedzipGedcom, extractSeparationYears, extractSplitPoints, familyHasChild, familyHasParent, findDegenerateFamiliesForIndi, findDuplicateCoupleFamiliesForIndi, findMatchingRangeForSplitRange, findReusableParentChildFamily, firstPointerId, formatGedcom7Timestamp, fromTuple, generateSplitRanges, getAllProp, getBirthAsc, getCacheManagerFactory, getDateLocale, getExtensionSchema, getFamilyWith, getFileExtension, getI18n, getKinshipTranslatorClass, getListTag, getMarriageAsc, getMarriageAscAndBirth, getMarriageAscAndChildBirth, getName, getNameAsc, getNameAscAndBirth, getNameDesc, getPlaceParserProvider, getPlaceParts, getPlaceTranslatorProvider, getPlaces, getRawSize, getValidKey, getValidKeys, getValidTag, getVersion, hungarianOrdinalize, i18n, idGetter, implemented, inRange, inferMediaForm, initializeCache, isCommonDate, isDegenerateFamily, isDevelopment, isGedcom7, isGedcomString, isGedzipContainer, isId, isImageFormat, isIntersectedRange, isObjePointer, isOnlyMainProp, isRangeContained, isRemoteOrEmbeddedMediaUrl, isValidKey, makePointer, marriageDateFormatter, mergeDuplicateCoupleFamilies, mergeGedcoms, mergeMediaLists, nameFormatter, nextRecordId, normalizeGedcomVersion, notImplemented, noteDateFormatter, ordinalize, parseGedcom7CalendarPrefix, parseRangeBounds, pathCache, placeTranslator, pointerIds, profilePictureCache, pruneEmptyFamilies, pruneFamiliesByIds, registerExtensionTag, relativesCache, remountGedzipMediaAsDataUrls, removePointerByValue, resetCacheManagerFactory, resetDateLocaleProvider, resetI18nProvider, resetKinshipTranslatorClass, resetPlaceParserProvider, resetPlaceTranslatorProvider, resetRelativesCache, resolveLocalMediaUrl, resolveMediaContent, resolveObjeForm, rewriteGedcomFilePaths, setCacheManagerFactory, setCauseOfDeath, setChildPedigree, setDateLocaleProvider, setDeceased, setFamilyMarriage, setI18nProvider, setKinshipTranslatorClass, setLocalMediaResolver, setMediaContentResolver, setNestedGroup, setPlaceParserProvider, setPlaceTranslatorProvider, splitOverlappingRanges, splitRange, spouseTagFor, toGedcomPedigree, translators_exports as translators, unlinkRelative, updateFactRecord, validateGedcomContent, withGedcom7Calendar };
11267
+ export { ACCEPTED_DATE_FORMATS, ACCEPTED_DATE_FORMATS_REGEX, ADOPTED, ANCESTRY_MEDIA_RETRIEVAL_PREFIX, APP_BRANDING, BIOLOGICAL, BIRTH, BIRTH_ASC, BIRTH_DESC, Common, CommonDate, CommonName, CommonNote, CustomTags, DATE_ASC, DATE_DESC, DEATH_ASC, DEATH_DESC, DEFAULT, DEFAULT_GEDCOM_EXPORT_VERSION, EVERY, Existed, FEMALE, FOSTER, FRIEND, Fam, Families, GEDCOM7_CALENDARS, GEDCOM7_PEDI_VALUES, GEDCOM7_RESN_VALUES, GEDCOM7_ROLE_VALUES, GEDCOM7_SEX_VALUES, GEDCOM_EXPORT_VERSIONS, GEDZIP_EXTENSION, GEDZIP_GEDCOM_ENTRY, GEDZIP_MIME, GedCom, parser_default as GedcomTree, ID_GETTER_REG, ID_REG, ID_SPLIT_REG, Indi, Individuals, KinshipTranslator, KinshipTranslatorBasic, KinshipTranslatorDe as KinshipTranslatorDE, KinshipTranslatorEn as KinshipTranslatorEN, KinshipTranslatorEs as KinshipTranslatorES, KinshipTranslatorFr as KinshipTranslatorFR, KinshipTranslatorHU, KinshipTranslatorJa as KinshipTranslatorJA, KinshipTranslatorRu as KinshipTranslatorRU, KinshipTranslatorZh as KinshipTranslatorZH, LINE_REG, List, MALE, MAX_FILE_SIZE_TO_SYNC, ORIG_HEAD_TAG, OTHER, Obje, Objects, PARTNER, PEDIGREE_VALUES, PartnerType, PlaceType, REF_LINE_REG, Range, RelationType, Repo, Repositories, SEALING, SINGLE, SPOUSE, STEP, Sour, Sources, Subm, Submitters, TREEVIZ_EXTENSION_BASE_URI, TREEVIZ_EXTENSION_URIS, UNKOWN, addFamilyFact, addIndividualFact, addNonEvent, ancestryMediaFileUrl, applyGedcom7DatePhrases, applyGedcom7Enumerations, applyGedcom7RecordMetadata, attachChildToFamily, attachSpouseToFamily, buildGedzip, buildGedzipBlob, bytesToDataUrl, cacheDiscoveredPath, canAttachAsSpouse, collectExtensionTagsFrom, commonDateFormatter, consolidateChildIntoFamily, coupleKeyForFam, create, createCommon, createCommonDate, createCommonName, createCommonNote, createEmptyGedcom, createFam, createGedCom, createGedcomUid, createIndi, createObje, createProxy, createRepo, createSour, createSubm, dateFormatter, parser_default as default, deleteIndividual, downloadGedzipMedia, ensureExtensionSchema, extractGedzip, extractGedzipGedcom, extractSeparationYears, extractSplitPoints, familyHasChild, familyHasParent, findDegenerateFamiliesForIndi, findDuplicateCoupleFamiliesForIndi, findMatchingRangeForSplitRange, findReusableParentChildFamily, firstPointerId, formatGedcom7Timestamp, fromTuple, generateSplitRanges, getAllProp, getBirthAsc, getCacheManagerFactory, getDateLocale, getExtensionSchema, getFamilyWith, getFileExtension, getI18n, getKinshipTranslatorClass, getListTag, getMarriageAsc, getMarriageAscAndBirth, getMarriageAscAndChildBirth, getName, getNameAsc, getNameAscAndBirth, getNameDesc, getPlaceParserProvider, getPlaceParts, getPlaceTranslatorProvider, getPlaces, getRawSize, getValidKey, getValidKeys, getValidTag, getVersion, hungarianOrdinalize, i18n, idGetter, implemented, inRange, inferMediaForm, initializeCache, isCommonDate, isDegenerateFamily, isDevelopment, isGedcom7, isGedcomString, isGedzipContainer, isId, isImageFormat, isIntersectedRange, isObjePointer, isOnlyMainProp, isRangeContained, isRemoteOrEmbeddedMediaUrl, isValidKey, makePointer, marriageDateFormatter, mergeDuplicateCoupleFamilies, mergeGedcoms, mergeMediaLists, nameFormatter, nextRecordId, normalizeGedcomVersion, notImplemented, noteDateFormatter, objeNoteValue, objeXrefKey, ordinalize, parseGedcom7CalendarPrefix, parseRangeBounds, pathCache, placeTranslator, pointerIds, profilePictureCache, pruneEmptyFamilies, pruneFamiliesByIds, registerExtensionTag, relativesCache, remountGedzipMediaAsDataUrls, removePointerByValue, resetCacheManagerFactory, resetDateLocaleProvider, resetI18nProvider, resetKinshipTranslatorClass, resetPlaceParserProvider, resetPlaceTranslatorProvider, resetRelativesCache, resolveLocalMediaUrl, resolveMediaContent, resolveObjeForm, resolveObjeMediaId, rewriteGedcomFilePaths, setCacheManagerFactory, setCauseOfDeath, setChildPedigree, setDateLocaleProvider, setDeceased, setFamilyMarriage, setI18nProvider, setKinshipTranslatorClass, setLocalMediaResolver, setMediaContentResolver, setNestedGroup, setPlaceParserProvider, setPlaceTranslatorProvider, splitOverlappingRanges, splitRange, spouseTagFor, toGedcomPedigree, translators_exports as translators, unlinkRelative, updateFactRecord, validateGedcomContent, withGedcom7Calendar };
@@ -20,6 +20,7 @@ export type MediaList = Record<string, {
20
20
  tree: string;
21
21
  person: IndiKey;
22
22
  title: string;
23
+ note?: string;
23
24
  url: string;
24
25
  contentType: string;
25
26
  downloadName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"indi.d.ts","sourceRoot":"","sources":["../../src/interfaces/indi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indi.d.ts","sourceRoot":"","sources":["../../src/interfaces/indi.ts"],"names":[],"mappings":"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"}