gedcom-ts 2026.6.1 → 2026.6.3
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 +91 -72
- package/README.md +121 -117
- package/dist/booklet.cjs +1 -1
- package/dist/booklet.mjs +1 -1
- package/dist/commons/DateAct.d.ts +1 -0
- package/dist/export/GEDCOM.d.ts +9 -4
- package/dist/export/buildGedzipBlob.d.ts +9 -0
- package/dist/export/familyUnionExport.d.ts +10 -0
- package/dist/import/LoadFile.d.ts +5 -1
- package/dist/import/ReadGed.d.ts +7 -1
- package/dist/import/SplitedInformations.d.ts +2 -1
- package/dist/import/enrichMarriageActsFromUnions.d.ts +6 -0
- package/dist/import/extractZipContent.d.ts +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.mjs +1 -1
- package/dist/utils/gedcom/spouseAssoRoles.d.ts +2 -0
- package/dist/utils/gedcom/transferProgress.d.ts +12 -0
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,8 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes of gedcom-ts
|
|
4
4
|
|
|
5
|
+
## [2026.6.3] - 2026-06-13
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- **Import / export GEDZIP** : retour à **fflate** seul (`unzip` / `zip` asynchrones) — suppression de `@zip.js/zip.js`.
|
|
10
|
+
|
|
11
|
+
## [2026.6.2] - 2026-06-12
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- **`DateAct`** : jetons de mois insensibles à la casse (`18 may 1991`, `JAN` / `jan` / `May`) — corrige l’import GEDCOM courant où seuls l’année et parfois le jour étaient conservés.
|
|
16
|
+
- **Qualificateurs de date** : `ABT`, `BEF`, `AFT`, … reconnus en minuscules ; plages `BET … AND …` et `FROM … TO …` insensibles à la casse.
|
|
17
|
+
|
|
5
18
|
## [2026.6.1] - 2026-06-09
|
|
6
19
|
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **Import GEDZIP** : décompression par entrée via `@zip.js/zip.js` (`BlobReader` / lectures aléatoires) à la place de `unzipSync` + `arrayBuffer()` sur l’archive entière — prise en charge d’archives volumineuses sans plafond artificiel côté lib.
|
|
23
|
+
- **Export GEDZIP** : `ExportGedzipFile.gedzipBlob()` / `download()` construisent le ZIP via `ZipWriter` + `BlobReader` par entrée (fini le `zip()` fflate monolithique et les `arrayBuffer()` sur chaque média).
|
|
24
|
+
- **Progression import / export** : `ImportGedFileOptions.onProgress` et `GedcomExportOptions.onProgress` (`GedcomTransferProgress`, phases `zip-extract`, `gedcom-parse`, `zip-build`, …).
|
|
25
|
+
- **Export unions FAM** : actes `MARR` / `DIV` / … avec deux conjoints réexportés sous `0 @F…@ FAM` (et retirés des blocs `INDI`) lorsque les deux époux sont dans l’export — round-trip des `act.INDIS` conjoint.
|
|
26
|
+
|
|
7
27
|
### Fixed
|
|
8
28
|
|
|
9
29
|
- **FORM / MEDI élargis** : TIFF, HEIC, BMP, SVG, MOV, MKV, DjVu, PDF, Office (DOCX, ODT, XLSX), CSV, HTML, SRT, etc. ; PDF et documents numériques → `MEDI ELECTRONIC` (conforme `enumset-MEDI` GEDCOM 7, plus `DOCUMENT`).
|
|
@@ -13,12 +33,12 @@ All notable changes of gedcom-ts
|
|
|
13
33
|
### Added
|
|
14
34
|
|
|
15
35
|
- **Multimédia GEDCOM 7 (`OBJE`)** : import et export complets des enregistrements `0 @O…@ OBJE` avec plusieurs `FILE`, `FORM`, `MEDI` (`AUDIO`, `PHOTO`, `VIDEO`, …), `PHRASE`, `TITL` et variantes `FILE`.`TRAN` (transcodage, WebVTT).
|
|
16
|
-
-
|
|
36
|
+
- `**ReadGed.objeRecordsById`\*\* : map des OBJE absorbés depuis le fichier (round-trip via `GedcomExportOptions.objeRecordsById`).
|
|
17
37
|
- **Types et utilitaires OBJE** : `ObjeRecord`, `ObjeFileEntry`, `primaryObjeFileUri`, `parseStandaloneObjeBlock`, `formatObjeRecordBlock`, `guessMediFromForm`, `registerObjeRecord`.
|
|
18
38
|
- **Entretiens audio / histoire orale** : actes `EVEN` + `TYPE Interview` (ou « Oral history ») avec lien `2 OBJE`, note de transcription (`2 NOTE`) et API dédiée — `createAudioInterviewAct`, `attachAudioInterviewToAct`, `editAct(act).asAudioInterview()`, `editAudioInterviewAct`.
|
|
19
39
|
- **Détection et lecture** : `isAudioInterviewAct`, `isAudioInterviewEvenType`, `getAudioInterviewTranscription`, `getAudioInterviewMedia`, `getAudioInterviewObjeRecords`, `primaryAudioInterviewUri`, `nextObjeXrefId`.
|
|
20
40
|
- **Constantes** : `GEDCOM_7_EVEN_TYPE_AUDIO_INTERVIEW`, `GEDCOM_7_EVEN_TYPE_ORAL_HISTORY`.
|
|
21
|
-
-
|
|
41
|
+
- `**GedcomExportOptionsEdit.setObjeRecordsById`** / `**clearObjeRecordsById\*\*`.
|
|
22
42
|
- **Tests** : `parseStandaloneObje`, `guessMediFromForm`, `audioInterviewAct`, extension des specs export / import `maximal70`.
|
|
23
43
|
|
|
24
44
|
### Changed
|
|
@@ -37,10 +57,10 @@ All notable changes of gedcom-ts
|
|
|
37
57
|
### Added
|
|
38
58
|
|
|
39
59
|
- **Livret multilingue** : traductions dédiées pour les 11 langues du site (`en`, `fr`, `de`, `nl`, `es`, `zh`, `it`, `pt`, `pl`, `ar`, `he`) — messages PDF, dates, lieux, accords de genre et récits narratifs.
|
|
40
|
-
- **RTL arabe / hébreu** : `isBookletLocaleRtl`, `bookletTextDirection`, mise en page PDF miroir ;
|
|
41
|
-
- **Polices PDF intégrées** : Noto Sans Hebrew, Noto Sans Arabic et Noto Sans SC (subset, SIL OFL) en chunks lazy (`dist/font-chunks/`) ; chunk
|
|
60
|
+
- **RTL arabe / hébreu** : `isBookletLocaleRtl`, `bookletTextDirection`, mise en page PDF miroir ; `**bidi-js`** (réordonnancement visuel) et `**naqqash\*\*` (formes contextuelles arabes).
|
|
61
|
+
- **Polices PDF intégrées** : Noto Sans Hebrew, Noto Sans Arabic et Noto Sans SC (subset, SIL OFL) en chunks lazy (`dist/font-chunks/`) ; chunk `**booklet-pdf-font-bytes-zh-ext`\*\* (~1,4 MiB) si le GEDCOM contient des hanzi hors subset de base.
|
|
42
62
|
- **Rendu bi-police** : Helvetica pour le latin + Noto pour arabe / hébreu / chinois.
|
|
43
|
-
- **Architecture lazy du livret** : locales (`dist/locale-chunks/`), polices, logo SVG et frise canvas (`dist/feature-chunks/`) via `import()` — cœur `gedcom-ts/booklet`
|
|
63
|
+
- **Architecture lazy du livret** : locales (`dist/locale-chunks/`), polices, logo SVG et frise canvas (`dist/feature-chunks/`) via `import()` — cœur `gedcom-ts/booklet` ~~75 KiB minifié (~~100 KiB obfusqué).
|
|
44
64
|
- **Exports TypeScript des chunks** : chaque sous-chemin `gedcom-ts/booklet/locale-chunks/*`, `font-chunks/*` et `feature-chunks/*` expose `types` + `import` / `require`.
|
|
45
65
|
- **Manifeste unique** : `scripts/booklet-chunk-manifest.mjs` alimente `build.js` et `package.json` (`npm run sync:exports` ou fin de `build:js`).
|
|
46
66
|
- **API hôte** : `registerBookletPdfFontBytes`, `registerPdfFontkit`, `ensureBookletLocale` — preload explicite des chunks (recommandé Vite/Angular).
|
|
@@ -50,11 +70,11 @@ All notable changes of gedcom-ts
|
|
|
50
70
|
|
|
51
71
|
### Changed
|
|
52
72
|
|
|
53
|
-
-
|
|
73
|
+
- `**pdf-lib` externalisé\*\* : peer dependency ; `@pdf-lib/fontkit` chargé à la demande pour `zh` / `ar` / `he`.
|
|
54
74
|
- **Pipeline build livret** : esbuild → réécriture `./…-chunks/` → `gedcom-ts/booklet/…-chunks/` → obfuscation avec `reservedStrings` sur les chemins d’import dynamiques (analyse statique Vite).
|
|
55
|
-
-
|
|
56
|
-
- **`
|
|
57
|
-
-
|
|
75
|
+
- `**resolveBookletLocale`\*\* : retourne la locale demandée (plus de repli silencieux vers l’anglais).
|
|
76
|
+
- `**drawGedcomTsLogoOnPage**` : async ; logo lazy (`getGedcomTsLogoPaths()`).
|
|
77
|
+
- `**ensureBookletLocale(locale)**` requis avant les APIs sync.
|
|
58
78
|
- **Frise chronologique** : titre et libellé « dates inconnues » localisés.
|
|
59
79
|
- **README** : tableau des tailles, guide d’intégration Vite/Angular.
|
|
60
80
|
|
|
@@ -73,7 +93,7 @@ All notable changes of gedcom-ts
|
|
|
73
93
|
|
|
74
94
|
### Changed
|
|
75
95
|
|
|
76
|
-
-
|
|
96
|
+
- `**findHarmonizationClustersFromActs`\*\* : si plusieurs libellés similaires partagent une seule position GPS et que tous les actes ont des coordonnées, unifie automatiquement le libellé (libellé le plus long) sans cluster d’harmonisation manuel.
|
|
77
97
|
- Critère d’harmonisation : ne signale plus les seules variantes d’orthographe lorsque les coordonnées sont déjà identiques.
|
|
78
98
|
|
|
79
99
|
## [2026.5.2] - 2026-05-16
|
|
@@ -84,27 +104,27 @@ All notable changes of gedcom-ts
|
|
|
84
104
|
|
|
85
105
|
### Changed
|
|
86
106
|
|
|
87
|
-
-
|
|
88
|
-
- **`
|
|
107
|
+
- `**findHarmonizationClustersFromActs`\*\* : union-find sur `citiesAreSimilar` (corrige le cas Pleurtuit 29+11 actes après géoloc complète).
|
|
108
|
+
- `**clusterKeyForCity**` : clé carte basée sur la localité principale (segment avant la virgule), alignée avec le regroupement par similarité.
|
|
89
109
|
- **README** : guide d’intégration géoloc restructuré (section dédiée, tableaux par cas d’usage) ; retrait de la documentation développement interne.
|
|
90
110
|
|
|
91
111
|
## [2026.5.1] - 2026-05-15
|
|
92
112
|
|
|
93
113
|
### Added
|
|
94
114
|
|
|
95
|
-
-
|
|
115
|
+
- `**src/geocode/`\*\* : géocodage Nominatim (`GET /search?q=…&format=jsonv2`), contexte arbre (`inferGeocodeContext`), ranking (`rankGeocodeCandidates`), harmonisation des lieux (`findHarmonizationClusters`, `applyGeocodeCandidateToActs`), utilitaires ville (`normalizeCityKey`, `findCanonicalCityLabel`). `fetch` et `User-Agent` configurables pour les tests.
|
|
96
116
|
|
|
97
117
|
### Changed
|
|
98
118
|
|
|
99
|
-
- **`
|
|
119
|
+
- `**getCityCoordinates**` : marqué `@deprecated` ; utilise la nouvelle API Nominatim (plus `search.php?city=` ni `XMLHttpRequest`).
|
|
100
120
|
|
|
101
121
|
## [2026.5.0] - 2026-05-15
|
|
102
122
|
|
|
103
123
|
### Versioning
|
|
104
124
|
|
|
105
|
-
À partir de cette release, le numéro de version du paquet npm et de **`
|
|
125
|
+
À 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** :
|
|
106
126
|
|
|
107
|
-
- format
|
|
127
|
+
- format `**AAAA.M.micro`** (ex. `**2026.5.0\*\*` = mai 2026, première publication de la série) ;
|
|
108
128
|
- remplace l’ancien **semver** (`2.1.0`, `2.0.x`, …) pour les releases applicatives ;
|
|
109
129
|
- la propriété `version` de `package.json` et `GEDCOM_LIBRARY_VERSION` doivent rester **identiques** (vérifié par `tests/version-package-sync.spec.ts`) ;
|
|
110
130
|
- les branches de release peuvent porter le même libellé (ex. `2026.5.0`).
|
|
@@ -113,7 +133,7 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
113
133
|
|
|
114
134
|
### Highlights
|
|
115
135
|
|
|
116
|
-
- Nouvelle couche
|
|
136
|
+
- Nouvelle couche `**src/dataset/`\*_ : mutations du graphe `ReadGed`, opérations famille, validation typée, commandes sûres (`try_`/`CommandResult`) et clones.
|
|
117
137
|
- Extension majeure de la **couche d’édition** (`*Edit`, factories, médias, variants de nom, attributs, options d’export).
|
|
118
138
|
- **Round-trip des notes sous actes** corrigé (import `2 NOTE` / `3 CONT` après `DATE`, ordre d’export `ActLine`).
|
|
119
139
|
- Refactor interne : médias centralisés, buffer des enregistrements préservés, `Person.clone` / `Act.clone`.
|
|
@@ -122,33 +142,33 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
122
142
|
|
|
123
143
|
#### Dataset (`src/dataset/`)
|
|
124
144
|
|
|
125
|
-
-
|
|
126
|
-
- **`
|
|
127
|
-
- **`
|
|
128
|
-
- **`
|
|
129
|
-
- **`
|
|
130
|
-
- **`
|
|
131
|
-
- **`
|
|
145
|
+
- `**readGedMutations`\*\* : `addPersonToReadGed`, `removePersonFromReadGedByIndi` (mise à jour `mapPersons`, `persons`, lieux, `groupPartners`).
|
|
146
|
+
- `**ReadGedEdit**` / `editReadGed` : `addPerson`, `removePersonByIndi`, `preserved()` → `PreservedTopLevelEdit` (`append`, `insertAt`, `replaceAt`, `removeAt`, `clear`).
|
|
147
|
+
- `**graphOps**` : `nextFamilyId`, `createMarriageFamily`, `linkChildToFamily`, `unlinkChildFromFamily`, `removeFamilyReferencesFromDataset`.
|
|
148
|
+
- `**CreateUnionFamilyOptions**` : `eventTag` sur `createMarriageFamily` / `tryCreateMarriageFamily` (défaut `MARR` ; aussi `ENGA`, `MARB`, `MARC`, `MARL`, `MARS`, `EVEN` + `CreateActInit`, etc.) ; constante `**GEDCOM_7_PAIR_UNION_EVENT_TAGS**`.
|
|
149
|
+
- `**readGedCommands**` : `tryAddPersonToReadGed`, `tryRemovePersonFromReadGedByIndi`, `tryLinkChildToFamily`, `tryUnlinkChildFromFamily`, `tryCreateMarriageFamily` ; `validate*Command` ; `**CommandResult**` / `commandBlockingIssues`.
|
|
150
|
+
- `**validation**` : `ModelConsistencyIssue` avec `code`, `severity` (`error` | `warn`), `validatePerson` / `validateReadGed` ; options `checkMarrParticipants`, `checkDuplicateIndis`, `checkFamcWithoutSpouses`, `checkFamsWithoutSpouses`, `checkDuplicateFamsEntries`, `checkAncestorCycles` ; `assertPersonConsistent` / `assertReadGedConsistent` avec `failOn`.
|
|
151
|
+
- `**cloneModels**` : `clonePerson`, `cloneAct` (délèguent à `Person.clone` / `Act.clone`).
|
|
132
152
|
|
|
133
153
|
#### Import / modèle
|
|
134
154
|
|
|
135
|
-
- **`
|
|
136
|
-
-
|
|
137
|
-
- **`
|
|
138
|
-
- **`
|
|
139
|
-
- **`
|
|
140
|
-
- **`
|
|
141
|
-
-
|
|
155
|
+
- `**PreservedRecordsBuffer**` : encapsulation des blocs `0 …` préservés (`SplitGedcom` / `ReadGed.preservedTopLevelRecords`).
|
|
156
|
+
- `**ReadGed.rehydratePlacesFromActs()**` : reconstruction de `placesMap` après édition manuelle du graphe.
|
|
157
|
+
- `**importGedcomNote**` : `createNoteFromGedcomPayload`, `appendGedcomNoteSubline`, `isPersonLevelGedcomLine`, `isActLevelGedcomNoteLine`, `isGedcomNoteContinuationTag`.
|
|
158
|
+
- `**registerTrackedMedia**` : chemins relatifs uniques pour médias personne / acte.
|
|
159
|
+
- `**uriBasename**` : nom de fichier logique depuis une URI média.
|
|
160
|
+
- `**clonePrimitives**` : briques de copie profonde partagées (dates, lieux, notes, médias, variants, attributs).
|
|
161
|
+
- `**Person.clone(newIndi)**`, `**Act.clone()**` sur les classes domaine.
|
|
142
162
|
|
|
143
163
|
#### Fluent edit layer (extensions)
|
|
144
164
|
|
|
145
|
-
- **`
|
|
146
|
-
- **`
|
|
147
|
-
- **`
|
|
148
|
-
- **`
|
|
149
|
-
- **`
|
|
150
|
-
- **`
|
|
151
|
-
- **`
|
|
165
|
+
- `**factories**` : `createAct`, `createNote`, `createPersonStub`, `createPersonNameVariant`, `createIndiAttribute` (+ types `CreateActInit`, `CreatePersonStubInit`).
|
|
166
|
+
- `**NoteEdit**` / `editNote` ; `**NotesEdit**` : `addNew`, `insertNewAt`, `removeNote`, `indexOfNote`.
|
|
167
|
+
- `**ActMediaEdit**` / `**PersonMediaEdit**` / `**MultimediaFileEdit**` ; `**NameVariantsEdit**` / `**PersonNameVariantEdit**` ; `**IndiAttributesEdit**`.
|
|
168
|
+
- `**ActsEdit**` : `addNew`, `insertNewAt`, `removeAct`, `indexOfAct`.
|
|
169
|
+
- `**ActEdit**` : `notes()`, `multimedia()`, `clearNotes`, `clearMultimedia`.
|
|
170
|
+
- `**PersonEdit**` : `multimedia()`, `nameVariants()`, `attributes()`, `appendFams`, `removeFamsAt`, `removeFamsById`, etc.
|
|
171
|
+
- `**GedcomExportOptionsEdit**` / `editGedcomExportOptions` : `setExtraTopLevelRecords`, `setHeadCopyright`, `setHeadDestination`, `setHeadLanguageTag`, `setHeadSchemaTagDefs`, `clear*`.
|
|
152
172
|
|
|
153
173
|
#### Public API (`src/index.ts`)
|
|
154
174
|
|
|
@@ -169,17 +189,17 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
169
189
|
|
|
170
190
|
### Changed
|
|
171
191
|
|
|
172
|
-
-
|
|
173
|
-
-
|
|
174
|
-
- **`
|
|
175
|
-
-
|
|
192
|
+
- `**ReadGed`\*\* : `addPerson` / `removePersonByIndi` retirés de la classe ; préférer `editReadGed` ou `addPersonToReadGed` / `removePersonFromReadGedByIndi`.
|
|
193
|
+
- `**Person.addMultimedia` / `addMultimediaFromUri**` et `**Act.addMultimedia` / `addMultimediaFromUri**` : délégation à `registerTrackedMedia`.
|
|
194
|
+
- `**SplitGedcom**` : liste préservée via `PreservedRecordsBuffer` au lieu d’un tableau interne brut.
|
|
195
|
+
- `**package.json**` / `**package-lock.json**` : version `**2026.5.0**` (CalVer).
|
|
176
196
|
- CI (`.gitlab-ci.yml`) : ajustements mineurs liés à la release.
|
|
177
197
|
|
|
178
198
|
### Fixed
|
|
179
199
|
|
|
180
200
|
- **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`).
|
|
181
|
-
-
|
|
182
|
-
- Alignement **`
|
|
201
|
+
- `**ReadGedEdit.addPerson`\*\* : discrimination TypeScript correcte sur `CommandResult` (`r.ok === false`).
|
|
202
|
+
- Alignement `**GEDCOM_LIBRARY_VERSION**` ↔ `**package.json**` pour la série `2026.5.0`.
|
|
183
203
|
|
|
184
204
|
## [2.1.0] - 2026-05-13
|
|
185
205
|
|
|
@@ -201,44 +221,44 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
201
221
|
|
|
202
222
|
#### Export
|
|
203
223
|
|
|
204
|
-
- `GedcomExportOptions` enrichies : `extraTopLevelRecords` (round-trip), `headLanguageTag`,
|
|
205
|
-
- `HEAD`.`SOUR` structuré : émission de
|
|
206
|
-
- Constante **`
|
|
207
|
-
- **FAM** : sexes U / X / indéfini sont exportés en
|
|
224
|
+
- `GedcomExportOptions` enrichies : `extraTopLevelRecords` (round-trip), `headLanguageTag`, `**headCopyright`** (`1 COPR`), `**headDestination**` (`1 DEST`), `**headSchemaTagDefs\*\*` (`HEAD`.`SCHMA`/`2 TAG …`).
|
|
225
|
+
- `HEAD`.`SOUR` structuré : émission de `**2 VERS**` + `**2 NAME**` sous `SOUR`, en plus du `CHAR` / `LANG` standard.
|
|
226
|
+
- Constante `**GEDCOM_LIBRARY_VERSION**` (`src/version.ts`, alignée sur `package.json` via test) utilisée pour `2 VERS` à l’export.
|
|
227
|
+
- **FAM** : sexes U / X / indéfini sont exportés en `**1 HUSB`\*\* (placeholder GEDCOM moins biaisé que `WIFE`).
|
|
208
228
|
|
|
209
229
|
#### Domain model — dates, places, events (P1.4)
|
|
210
230
|
|
|
211
|
-
- **`
|
|
231
|
+
- `**DateAct**` :
|
|
212
232
|
- qualificateurs **INT**, **EST**, **CAL** ;
|
|
213
|
-
- phrase finale `(...)` et
|
|
214
|
-
- import
|
|
215
|
-
-
|
|
216
|
-
- entrée date
|
|
217
|
-
- **`
|
|
233
|
+
- phrase finale `(...)` et `**datePhrase`\*\* ;
|
|
234
|
+
- import `**3 PHRASE**` sous `DATE` ;
|
|
235
|
+
- `**3 TIME**` sous `DATE` / `**SDATE**` (`dateTime`) ;
|
|
236
|
+
- entrée date `**YYYY-MM-DD**` / `**YYYY-MM**` ;
|
|
237
|
+
- `**verbatimDatePayload**` pour charges non typées (URI, texte hors parseur) ;
|
|
218
238
|
- tolérance `(...)` sur les bornes d’intervalles (`parseCoreDateValue`) ;
|
|
219
|
-
- format mois/année slash strict
|
|
220
|
-
- **`
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
- **`
|
|
224
|
-
- tri des actes : **`
|
|
225
|
-
- **`
|
|
239
|
+
- format mois/année slash strict `**d{1,2}/d{2,4}**` uniquement (évite les faux positifs sur URL).
|
|
240
|
+
- `**Act**` :
|
|
241
|
+
- `**2 SDATE**` (+ sous-lignes) sur `sdateAct` ;
|
|
242
|
+
- `**2 PHRASE**` niveau événement (`eventPhrases`) ;
|
|
243
|
+
- `**preservedSubrecordPrefix**` / `**preservedSubrecordSuffix**` pour sous-lignes non modélisées (`HUSB`/`AGE`/`4 PHRASE`, `3 DATE` sous `STAT`, …) avec ré-export ;
|
|
244
|
+
- tri des actes : `**DATE**` sinon `**SDATE**` valide.
|
|
245
|
+
- `**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.
|
|
226
246
|
|
|
227
247
|
#### Fluent edit layer
|
|
228
248
|
|
|
229
249
|
- Nouveau module `src/edit/` réexporté depuis la racine du paquet :
|
|
230
|
-
- **`
|
|
231
|
-
- **`
|
|
232
|
-
- **`
|
|
233
|
-
- **`
|
|
234
|
-
- **`
|
|
235
|
-
- **`
|
|
250
|
+
- `**editPerson**` / `PersonEdit` (identité, liens `FAMC` / `FAMS`, name variants, attributes, accès chaîné à `acts()` / `notes()`) ;
|
|
251
|
+
- `**editActs**` / `ActsEdit` (add, replaceAt, removeAt, clear, sortByDate, at) ;
|
|
252
|
+
- `**editAct**` / `ActEdit` (type, indis, date, sdate, place, EVEN, phrases, preserved prefix/suffix) ;
|
|
253
|
+
- `**editDateAct**` / `DateActEdit` (clear, applyGedcomPayload, setExactDate, setQualified, setBetween, setFromTo, setTime, setDatePhrase, setVerbatimPayload) ;
|
|
254
|
+
- `**editPlace**` / `PlaceEdit` (city/county/state/country, GEDCOM 7 payload, placPhrase, coordinates) ;
|
|
255
|
+
- `**editNotes**` / `NotesEdit` (add, replaceAt, removeAt, clear) ;
|
|
236
256
|
- chaînage cohérent (`this`) sur le modèle existant, mutation in-place.
|
|
237
257
|
|
|
238
258
|
#### Public API surface
|
|
239
259
|
|
|
240
260
|
- Types exportés : `PersonGedcomImportOptions`, `GedcomExportOptions`, `TypeDateActSimpleQualifier`, `Gedcom7EventTag`, `IndiGedcomSubLine`, `GedcomDatasetVersion`.
|
|
241
|
-
- 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`,
|
|
261
|
+
- 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**`.
|
|
242
262
|
|
|
243
263
|
#### Tests
|
|
244
264
|
|
|
@@ -252,12 +272,12 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
252
272
|
|
|
253
273
|
### Changed
|
|
254
274
|
|
|
255
|
-
- Export `FAM` : sexe inconnu / non binaire / absent (`U`, `X`, `undefined`) émet
|
|
275
|
+
- 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é).
|
|
256
276
|
|
|
257
277
|
### Fixed
|
|
258
278
|
|
|
259
279
|
- Export GEDCOM : terminaison correcte `0 TRLR` avec saut de ligne (au lieu du seul tag `TRLR`).
|
|
260
|
-
-
|
|
280
|
+
- `**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.
|
|
261
281
|
|
|
262
282
|
## [2.0.4] - 2026-05-11
|
|
263
283
|
|
|
@@ -383,7 +403,6 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
383
403
|
- jest / test in Person / runner
|
|
384
404
|
- createDirectAncestries
|
|
385
405
|
|
|
386
|
-
|
|
387
406
|
## 1.0.3 - 2019-10-01
|
|
388
407
|
|
|
389
408
|
### Added
|
|
@@ -393,7 +412,7 @@ Les entrées historiques du changelog conservent leurs numéros semver d’origi
|
|
|
393
412
|
## 1.0.2-alpha - 2019-09-01
|
|
394
413
|
|
|
395
414
|
### Added
|
|
396
|
-
|
|
415
|
+
|
|
397
416
|
- export for birth and death in gedcom
|
|
398
417
|
- All identificators can be used for a developper. It's an enum of properties used for all gedcom
|
|
399
418
|
- City is removed and replaced by Place. Place gets more informations
|