gedcom-ts 2.0.2 → 2026.5.0
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/CHANGELOG.md +175 -0
- package/README.md +460 -88
- package/dist/commons/Act.d.ts +46 -7
- package/dist/commons/DateAct.d.ts +40 -2
- package/dist/commons/Identifier.enum.d.ts +3 -0
- package/dist/commons/IndiAttribute.d.ts +11 -0
- package/dist/commons/IndiGedcomSubLine.d.ts +6 -0
- package/dist/commons/MultimediaFile.d.ts +13 -2
- package/dist/commons/Person.d.ts +27 -4
- package/dist/commons/PersonNameVariant.d.ts +21 -0
- package/dist/commons/Place.d.ts +19 -0
- package/dist/commons/clonePrimitives.d.ts +17 -0
- package/dist/commons/gedcomEventTags.d.ts +17 -0
- package/dist/dataset/ReadGedEdit.d.ts +27 -0
- package/dist/dataset/cloneModels.d.ts +8 -0
- package/dist/dataset/graphOps.d.ts +29 -0
- package/dist/dataset/index.d.ts +9 -0
- package/dist/dataset/readGedCommands.d.ts +46 -0
- package/dist/dataset/readGedMutations.d.ts +12 -0
- package/dist/dataset/validation.d.ts +36 -0
- package/dist/edit/ActEdit.d.ts +37 -0
- package/dist/edit/ActMediaEdit.d.ts +21 -0
- package/dist/edit/ActsEdit.d.ts +34 -0
- package/dist/edit/DateActEdit.d.ts +37 -0
- package/dist/edit/GedcomExportOptionsEdit.d.ts +20 -0
- package/dist/edit/IndiAttributesEdit.d.ts +38 -0
- package/dist/edit/MultimediaFileEdit.d.ts +17 -0
- package/dist/edit/NameVariantsEdit.d.ts +43 -0
- package/dist/edit/NoteEdit.d.ts +18 -0
- package/dist/edit/NotesEdit.d.ts +25 -0
- package/dist/edit/PersonEdit.d.ts +47 -0
- package/dist/edit/PersonMediaEdit.d.ts +27 -0
- package/dist/edit/PlaceEdit.d.ts +23 -0
- package/dist/edit/factories.d.ts +35 -0
- package/dist/edit/index.d.ts +33 -0
- package/dist/export/GEDCOM.d.ts +33 -4
- package/dist/import/LoadFile.d.ts +14 -0
- package/dist/import/PreservedRecordsBuffer.d.ts +21 -0
- package/dist/import/ReadGed.d.ts +49 -0
- package/dist/import/SplitedInformations.d.ts +35 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +17 -4
- package/dist/index.mjs +1 -1
- package/dist/utils/gedcom/actExtraction.d.ts +3 -1
- package/dist/utils/gedcom/datasetVersion.d.ts +7 -0
- package/dist/utils/gedcom/extractIndiNamesAndAttributes.d.ts +4 -0
- package/dist/utils/gedcom/importGedcomNote.d.ts +17 -0
- package/dist/utils/gedcom/labelKeyedRecords.d.ts +13 -0
- package/dist/utils/gedcom/mediaFormFromUri.d.ts +2 -0
- package/dist/utils/gedcom/parseStandaloneObje.d.ts +9 -0
- package/dist/utils/gedcom/personName.d.ts +7 -0
- package/dist/utils/gedcom/pointers.d.ts +16 -0
- package/dist/utils/gedcom/uriBasename.d.ts +2 -0
- package/dist/utils/multimedia/registerTrackedMedia.d.ts +10 -0
- package/dist/version.d.ts +6 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,181 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes of gedcom-ts
|
|
4
4
|
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [2026.5.0] - 2026-05-15
|
|
8
|
+
|
|
9
|
+
### Versioning
|
|
10
|
+
|
|
11
|
+
À partir de cette release, le numéro de version du paquet npm et de **`GEDCOM_LIBRARY_VERSION`** (`src/version.ts`, exporté dans `HEAD`.`SOUR`.`VERS`) suit un schéma **CalVer** :
|
|
12
|
+
|
|
13
|
+
- format **`AAAA.M.micro`** (ex. **`2026.5.0`** = mai 2026, première publication de la série) ;
|
|
14
|
+
- remplace l’ancien **semver** (`2.1.0`, `2.0.x`, …) pour les releases applicatives ;
|
|
15
|
+
- la propriété `version` de `package.json` et `GEDCOM_LIBRARY_VERSION` doivent rester **identiques** (vérifié par `tests/version-package-sync.spec.ts`) ;
|
|
16
|
+
- les branches de release peuvent porter le même libellé (ex. `2026.5.0`).
|
|
17
|
+
|
|
18
|
+
Les entrées historiques du changelog conservent leurs numéros semver d’origine.
|
|
19
|
+
|
|
20
|
+
### Highlights
|
|
21
|
+
|
|
22
|
+
- Nouvelle couche **`src/dataset/`** : mutations du graphe `ReadGed`, opérations famille, validation typée, commandes sûres (`try*` / `CommandResult`) et clones.
|
|
23
|
+
- Extension majeure de la **couche d’édition** (`*Edit`, factories, médias, variants de nom, attributs, options d’export).
|
|
24
|
+
- **Round-trip des notes sous actes** corrigé (import `2 NOTE` / `3 CONT` après `DATE`, ordre d’export `ActLine`).
|
|
25
|
+
- Refactor interne : médias centralisés, buffer des enregistrements préservés, `Person.clone` / `Act.clone`.
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
#### Dataset (`src/dataset/`)
|
|
30
|
+
|
|
31
|
+
- **`readGedMutations`** : `addPersonToReadGed`, `removePersonFromReadGedByIndi` (mise à jour `mapPersons`, `persons`, lieux, `groupPartners`).
|
|
32
|
+
- **`ReadGedEdit`** / `editReadGed` : `addPerson`, `removePersonByIndi`, `preserved()` → `PreservedTopLevelEdit` (`append`, `insertAt`, `replaceAt`, `removeAt`, `clear`).
|
|
33
|
+
- **`graphOps`** : `nextFamilyId`, `createMarriageFamily`, `linkChildToFamily`, `unlinkChildFromFamily`, `removeFamilyReferencesFromDataset`.
|
|
34
|
+
- **`CreateUnionFamilyOptions`** : `eventTag` sur `createMarriageFamily` / `tryCreateMarriageFamily` (défaut `MARR` ; aussi `ENGA`, `MARB`, `MARC`, `MARL`, `MARS`, `EVEN` + `CreateActInit`, etc.) ; constante **`GEDCOM_7_PAIR_UNION_EVENT_TAGS`**.
|
|
35
|
+
- **`readGedCommands`** : `tryAddPersonToReadGed`, `tryRemovePersonFromReadGedByIndi`, `tryLinkChildToFamily`, `tryUnlinkChildFromFamily`, `tryCreateMarriageFamily` ; `validate*Command` ; **`CommandResult`** / `commandBlockingIssues`.
|
|
36
|
+
- **`validation`** : `ModelConsistencyIssue` avec `code`, `severity` (`error` | `warn`), `validatePerson` / `validateReadGed` ; options `checkMarrParticipants`, `checkDuplicateIndis`, `checkFamcWithoutSpouses`, `checkFamsWithoutSpouses`, `checkDuplicateFamsEntries`, `checkAncestorCycles` ; `assertPersonConsistent` / `assertReadGedConsistent` avec `failOn`.
|
|
37
|
+
- **`cloneModels`** : `clonePerson`, `cloneAct` (délèguent à `Person.clone` / `Act.clone`).
|
|
38
|
+
|
|
39
|
+
#### Import / modèle
|
|
40
|
+
|
|
41
|
+
- **`PreservedRecordsBuffer`** : encapsulation des blocs `0 …` préservés (`SplitGedcom` / `ReadGed.preservedTopLevelRecords`).
|
|
42
|
+
- **`ReadGed.rehydratePlacesFromActs()`** : reconstruction de `placesMap` après édition manuelle du graphe.
|
|
43
|
+
- **`importGedcomNote`** : `createNoteFromGedcomPayload`, `appendGedcomNoteSubline`, `isPersonLevelGedcomLine`, `isActLevelGedcomNoteLine`, `isGedcomNoteContinuationTag`.
|
|
44
|
+
- **`registerTrackedMedia`** : chemins relatifs uniques pour médias personne / acte.
|
|
45
|
+
- **`uriBasename`** : nom de fichier logique depuis une URI média.
|
|
46
|
+
- **`clonePrimitives`** : briques de copie profonde partagées (dates, lieux, notes, médias, variants, attributs).
|
|
47
|
+
- **`Person.clone(newIndi)`**, **`Act.clone()`** sur les classes domaine.
|
|
48
|
+
|
|
49
|
+
#### Fluent edit layer (extensions)
|
|
50
|
+
|
|
51
|
+
- **`factories`** : `createAct`, `createNote`, `createPersonStub`, `createPersonNameVariant`, `createIndiAttribute` (+ types `CreateActInit`, `CreatePersonStubInit`).
|
|
52
|
+
- **`NoteEdit`** / `editNote` ; **`NotesEdit`** : `addNew`, `insertNewAt`, `removeNote`, `indexOfNote`.
|
|
53
|
+
- **`ActMediaEdit`** / **`PersonMediaEdit`** / **`MultimediaFileEdit`** ; **`NameVariantsEdit`** / **`PersonNameVariantEdit`** ; **`IndiAttributesEdit`**.
|
|
54
|
+
- **`ActsEdit`** : `addNew`, `insertNewAt`, `removeAct`, `indexOfAct`.
|
|
55
|
+
- **`ActEdit`** : `notes()`, `multimedia()`, `clearNotes`, `clearMultimedia`.
|
|
56
|
+
- **`PersonEdit`** : `multimedia()`, `nameVariants()`, `attributes()`, `appendFams`, `removeFamsAt`, `removeFamsById`, etc.
|
|
57
|
+
- **`GedcomExportOptionsEdit`** / `editGedcomExportOptions` : `setExtraTopLevelRecords`, `setHeadCopyright`, `setHeadDestination`, `setHeadLanguageTag`, `setHeadSchemaTagDefs`, `clear*`.
|
|
58
|
+
|
|
59
|
+
#### Public API (`src/index.ts`)
|
|
60
|
+
|
|
61
|
+
- Réexport de tout le dataset, des commandes `try*`, des types de validation, `GEDCOM_7_PAIR_UNION_EVENT_TAGS`, `Gedcom7PairUnionEventTag`, `CreateUnionFamilyOptions`, `CommandResult`, etc.
|
|
62
|
+
|
|
63
|
+
#### Tests
|
|
64
|
+
|
|
65
|
+
- `tests/dataset/readGedCommands.spec.ts` : commandes et validations FAM optionnelles.
|
|
66
|
+
- `tests/edit/extendedLayer.spec.ts` : ReadGed, graphe, export options, clones, validation, `removeFamilyReferencesFromDataset`.
|
|
67
|
+
- `tests/edit/editApi.spec.ts` : facades étendues.
|
|
68
|
+
- `tests/commons/Person.spec.ts` / `Act.spec.ts` : notes d’acte (`2 NOTE` / `3 CONT`, ordre après `DATE`).
|
|
69
|
+
- `tests/export/GEDCOM.spec.ts` : round-trip ZIP avec note multi-lignes sous acte.
|
|
70
|
+
- `tests/utils/uriBasename.spec.ts`.
|
|
71
|
+
|
|
72
|
+
#### Documentation
|
|
73
|
+
|
|
74
|
+
- README : section **Dataset editing** (ReadGed, graphe, clones, validation, commandes) ; table `ReadGed` mise à jour (`rehydratePlacesFromActs`, plus de `addPerson` direct sur `ReadGed`).
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
|
|
78
|
+
- **`ReadGed`** : `addPerson` / `removePersonByIndi` retirés de la classe ; préférer `editReadGed` ou `addPersonToReadGed` / `removePersonFromReadGedByIndi`.
|
|
79
|
+
- **`Person.addMultimedia` / `addMultimediaFromUri`** et **`Act.addMultimedia` / `addMultimediaFromUri`** : délégation à `registerTrackedMedia`.
|
|
80
|
+
- **`SplitGedcom`** : liste préservée via `PreservedRecordsBuffer` au lieu d’un tableau interne brut.
|
|
81
|
+
- **`package.json`** / **`package-lock.json`** : version **`2026.5.0`** (CalVer).
|
|
82
|
+
- CI (`.gitlab-ci.yml`) : ajustements mineurs liés à la release.
|
|
83
|
+
|
|
84
|
+
### Fixed
|
|
85
|
+
|
|
86
|
+
- **Notes d’acte au réimport** : `parsePersonLine` n’attache plus les `NOTE` de niveau 2 au individu ; `convertToActs` traite `2 NOTE` et `3 CONC`/`CONT` **avant** les blocs `pendingAfterDate` / `Plac` / `Sdate`, ce qui évite de perdre les `3 CONT` lorsque l’export place la note après `DATE` (`ActLine`).
|
|
87
|
+
- **`ReadGedEdit.addPerson`** : discrimination TypeScript correcte sur `CommandResult` (`r.ok === false`).
|
|
88
|
+
- Alignement **`GEDCOM_LIBRARY_VERSION`** ↔ **`package.json`** pour la série `2026.5.0`.
|
|
89
|
+
|
|
90
|
+
## [2.1.0] - 2026-05-13
|
|
91
|
+
|
|
92
|
+
### Highlights
|
|
93
|
+
|
|
94
|
+
- Major GEDCOM 7 coverage push: round-trip preservation (`preservedTopLevelRecords`, label-keyed FAM / NOTE xrefs, level-0 `OBJE`), richer `HEAD` export options, full P1.4 dates and places (INT/EST/CAL, `3 PHRASE`, `3 TIME`, `2 SDATE`, `2 PHRASE` event-level, ISO date input, verbatim fallback).
|
|
95
|
+
- New **fluent edit layer** (`editPerson`, `editAct`, `editActs`, `editDateAct`, `editPlace`, `editNotes` + `*Edit` classes) for in-place model mutations with chainable APIs.
|
|
96
|
+
- **README fully rewritten** with a complete public-API reference and a link to the live graphical demo at **[https://gedcomts.jaunet.me](https://gedcomts.jaunet.me)**.
|
|
97
|
+
|
|
98
|
+
### Added
|
|
99
|
+
|
|
100
|
+
#### Import
|
|
101
|
+
|
|
102
|
+
- `ReadGed.preservedTopLevelRecords`: top-level `0 …` GEDCOM records that are not loaded into the typed model (e.g. `REPO`, `SOUR`, `SUBM`, and undecodable `OBJE`) are preserved in file order. `0 TRLR` is not stored.
|
|
103
|
+
- **FAM / `@N` xrefs non numériques** : enregistrements `0 @F…@ FAM` et `0 @N…@ NOTE|SNOTE` indexés par libellé puis mappés vers des ids internes numériques (comme pour les `INDI` textuels) ; `FAMS` / `FAMC` / notes résolus via tables de pointeurs.
|
|
104
|
+
- **OBJE de niveau 0** : si le bloc contient un `FILE` exploitable, il est retiré de `preservedTopLevelRecords` et sert à hydrater `MultimediaFile.sourceUri` pour les pointeurs `1 OBJE` / `2 OBJE` (`PersonGedcomImportOptions` / résolution interne dans `ReadGed`).
|
|
105
|
+
- **Import actes (FAM)** : `1 HUSB` / `1 WIFE` avec pointeur `@I{n}@` **ou** xref textuelle `@Libellé@` (même clé que `0 @Libellé@ INDI`) alimentent les participants des actes extraits (`extractActEntriesAndIndis`).
|
|
106
|
+
- `ReadGed.resolveIndividualPointer(raw)`, `ReadGed.getChildrenForParent(parent)`, `ReadGed.getChildrenOfFamily(familyId)` exposés publiquement pour naviguer le graphe importé.
|
|
107
|
+
|
|
108
|
+
#### Export
|
|
109
|
+
|
|
110
|
+
- `GedcomExportOptions` enrichies : `extraTopLevelRecords` (round-trip), `headLanguageTag`, **`headCopyright`** (`1 COPR`), **`headDestination`** (`1 DEST`), **`headSchemaTagDefs`** (`HEAD`.`SCHMA` / `2 TAG …`).
|
|
111
|
+
- `HEAD`.`SOUR` structuré : émission de **`2 VERS`** + **`2 NAME`** sous `SOUR`, en plus du `CHAR` / `LANG` standard.
|
|
112
|
+
- Constante **`GEDCOM_LIBRARY_VERSION`** (`src/version.ts`, alignée sur `package.json` via test) utilisée pour `2 VERS` à l’export.
|
|
113
|
+
- **FAM** : sexes U / X / indéfini sont exportés en **`1 HUSB`** (placeholder GEDCOM moins biaisé que `WIFE`).
|
|
114
|
+
|
|
115
|
+
#### Domain model — dates, places, events (P1.4)
|
|
116
|
+
|
|
117
|
+
- **`DateAct`** :
|
|
118
|
+
- qualificateurs **INT**, **EST**, **CAL** ;
|
|
119
|
+
- phrase finale `(...)` et **`datePhrase`** ;
|
|
120
|
+
- import **`3 PHRASE`** sous `DATE` ;
|
|
121
|
+
- **`3 TIME`** sous `DATE` / **`SDATE`** (`dateTime`) ;
|
|
122
|
+
- entrée date **`YYYY-MM-DD`** / **`YYYY-MM`** ;
|
|
123
|
+
- **`verbatimDatePayload`** pour charges non typées (URI, texte hors parseur) ;
|
|
124
|
+
- tolérance `(...)` sur les bornes d’intervalles (`parseCoreDateValue`) ;
|
|
125
|
+
- format mois/année slash strict **`d{1,2}/d{2,4}`** uniquement (évite les faux positifs sur URL).
|
|
126
|
+
- **`Act`** :
|
|
127
|
+
- **`2 SDATE`** (+ sous-lignes) sur `sdateAct` ;
|
|
128
|
+
- **`2 PHRASE`** niveau événement (`eventPhrases`) ;
|
|
129
|
+
- **`preservedSubrecordPrefix`** / **`preservedSubrecordSuffix`** pour sous-lignes non modélisées (`HUSB`/`AGE`/`4 PHRASE`, `3 DATE` sous `STAT`, …) avec ré-export ;
|
|
130
|
+
- tri des actes : **`DATE`** sinon **`SDATE`** valide.
|
|
131
|
+
- **`Place`** : **`placPhrase`** et import **`3 PHRASE`** direct sous `PLAC` ; export **`3 PHRASE`** pour date et lieu quand présents ; export **`3 TIME`** / blocs **`SDATE`** / **`2 PHRASE`** événement.
|
|
132
|
+
|
|
133
|
+
#### Fluent edit layer
|
|
134
|
+
|
|
135
|
+
- Nouveau module `src/edit/` réexporté depuis la racine du paquet :
|
|
136
|
+
- **`editPerson`** / `PersonEdit` (identité, liens `FAMC` / `FAMS`, name variants, attributes, accès chaîné à `acts()` / `notes()`) ;
|
|
137
|
+
- **`editActs`** / `ActsEdit` (add, replaceAt, removeAt, clear, sortByDate, at) ;
|
|
138
|
+
- **`editAct`** / `ActEdit` (type, indis, date, sdate, place, EVEN, phrases, preserved prefix/suffix) ;
|
|
139
|
+
- **`editDateAct`** / `DateActEdit` (clear, applyGedcomPayload, setExactDate, setQualified, setBetween, setFromTo, setTime, setDatePhrase, setVerbatimPayload) ;
|
|
140
|
+
- **`editPlace`** / `PlaceEdit` (city/county/state/country, GEDCOM 7 payload, placPhrase, coordinates) ;
|
|
141
|
+
- **`editNotes`** / `NotesEdit` (add, replaceAt, removeAt, clear) ;
|
|
142
|
+
- chaînage cohérent (`this`) sur le modèle existant, mutation in-place.
|
|
143
|
+
|
|
144
|
+
#### Public API surface
|
|
145
|
+
|
|
146
|
+
- Types exportés : `PersonGedcomImportOptions`, `GedcomExportOptions`, `TypeDateActSimpleQualifier`, `Gedcom7EventTag`, `IndiGedcomSubLine`, `GedcomDatasetVersion`.
|
|
147
|
+
- Classes / valeurs réexportées depuis l’index : `PersonNameVariant`, `PersonNameTranslation`, `IndiAttribute`, `ActConstructionOptions`, `GEDCOM_7_ALL_EVENT_TAGS`, `GEDCOM_7_EVENT_SORT_ORDER`, `GEDCOM_7_EVENT_TAG_SET`, `selectPrimaryNameVariant`, `extractPersonNameVariants`, `extractIndiAttributes`, `createEmptyReadGed`, `IMPORT_ERR_ZIP_GED_UNREADABLE`, **`GEDCOM_LIBRARY_VERSION`**.
|
|
148
|
+
|
|
149
|
+
#### Tests
|
|
150
|
+
|
|
151
|
+
- **Golden export** : fixture `tests/fixtures/golden-in/marriage-marr-roundtrip.ged` + fichiers attendus `tests/fixtures/golden-out/*.golden.txt` ; `tests/import/goldenMarrExport.spec.ts` verrouille le bloc `1 MARR` exporté (fixture minimale + extrait `maximal70` pour `@I1@`) et l’idempotence import → export → import.
|
|
152
|
+
- Non-régression `ReadGed.groupPartners()` appelée plusieurs fois (les enfants et conjoints ne sont plus dupliqués).
|
|
153
|
+
|
|
154
|
+
#### Documentation
|
|
155
|
+
|
|
156
|
+
- **README intégralement réécrit** : référence complète de l’API publique (un sous-titre par export de `src/index.ts`), tables synthétiques pour `ReadGed`, `GedcomExportOptions` et la couche `*Edit`, exemples mis à jour pour chaque type / classe / fonction exposés.
|
|
157
|
+
- Mention en tête du README du **site de démo graphique** : **[https://gedcomts.jaunet.me](https://gedcomts.jaunet.me)**.
|
|
158
|
+
|
|
159
|
+
### Changed
|
|
160
|
+
|
|
161
|
+
- Export `FAM` : sexe inconnu / non binaire / absent (`U`, `X`, `undefined`) émet **`1 HUSB`** au lieu de **`1 WIFE`** pour le rôle conjoint (placeholder GEDCOM moins biaisé).
|
|
162
|
+
|
|
163
|
+
### Fixed
|
|
164
|
+
|
|
165
|
+
- Export GEDCOM : terminaison correcte `0 TRLR` avec saut de ligne (au lieu du seul tag `TRLR`).
|
|
166
|
+
- **`ReadGed.groupPartners()`** : les cartes `partnersMap` et `childsMap` sont vidées avant reconstruction, afin que des rappels successifs (après édition des liens en mémoire) ne dupliquent plus conjoints ni enfants.
|
|
167
|
+
|
|
168
|
+
## [2.0.4] - 2026-05-11
|
|
169
|
+
|
|
170
|
+
### Added
|
|
171
|
+
|
|
172
|
+
- GEDCOM 7–oriented export: default `SUBM` pointer in `HEAD` and a minimal `@U1@ SUBM` record before `TRLR`.
|
|
173
|
+
- `Place` supports structured locality fields (`county`, `state`, `country`) and comma-separated `PLAC` payloads aligned with the default `HEAD`.`PLAC`.`FORM`.
|
|
174
|
+
- Event and person media: `FILE` with `https?://` URIs without a local `File`; optional `OBJE @O{n}@` pointers with generated `0 @O{n}@ OBJE` records when `MultimediaFile.sourceUri` and `objeXrefId` are set.
|
|
175
|
+
- Import of `2 OBJE @O{n}@` under individual events (same model as level-1 `OBJE` on `INDI`).
|
|
176
|
+
- `guessMediaFormFromUri()` exported from the package entrypoint (MIME guess for `OBJE`.`FILE`.`FORM`).
|
|
177
|
+
- `resolveDatasetVersion` / `GedcomDatasetVersion` and GEDCOM 7 event tag constants (`GEDCOM_7_ALL_EVENT_TAGS`, etc.) on the public API.
|
|
178
|
+
- Tests: `gedcom7Export`, `mediaFormFromUri`, `datasetVersion`, import smoke test against the gedcom.io `maximal70.ged` sample (file added to the repo for CI).
|
|
179
|
+
|
|
5
180
|
## [2.0.2] - 2026-05-11
|
|
6
181
|
|
|
7
182
|
### Fixed
|