@treeviz/gedcom-parser 1.0.1

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.
Files changed (321) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +954 -0
  3. package/dist/classes/common.d.ts +87 -0
  4. package/dist/classes/common.d.ts.map +1 -0
  5. package/dist/classes/common.js +481 -0
  6. package/dist/classes/date.d.ts +26 -0
  7. package/dist/classes/date.d.ts.map +1 -0
  8. package/dist/classes/date.js +176 -0
  9. package/dist/classes/fam.d.ts +19 -0
  10. package/dist/classes/fam.d.ts.map +1 -0
  11. package/dist/classes/fam.js +38 -0
  12. package/dist/classes/fams.d.ts +16 -0
  13. package/dist/classes/fams.d.ts.map +1 -0
  14. package/dist/classes/fams.js +41 -0
  15. package/dist/classes/gedcom.d.ts +89 -0
  16. package/dist/classes/gedcom.d.ts.map +1 -0
  17. package/dist/classes/gedcom.js +421 -0
  18. package/dist/classes/index.d.ts +19 -0
  19. package/dist/classes/index.d.ts.map +1 -0
  20. package/dist/classes/index.js +19 -0
  21. package/dist/classes/indi.d.ts +298 -0
  22. package/dist/classes/indi.d.ts.map +1 -0
  23. package/dist/classes/indi.js +2049 -0
  24. package/dist/classes/indis.d.ts +54 -0
  25. package/dist/classes/indis.d.ts.map +1 -0
  26. package/dist/classes/indis.js +439 -0
  27. package/dist/classes/list.d.ts +55 -0
  28. package/dist/classes/list.d.ts.map +1 -0
  29. package/dist/classes/list.js +440 -0
  30. package/dist/classes/name.d.ts +20 -0
  31. package/dist/classes/name.d.ts.map +1 -0
  32. package/dist/classes/name.js +48 -0
  33. package/dist/classes/note.d.ts +12 -0
  34. package/dist/classes/note.d.ts.map +1 -0
  35. package/dist/classes/note.js +46 -0
  36. package/dist/classes/obje.d.ts +12 -0
  37. package/dist/classes/obje.d.ts.map +1 -0
  38. package/dist/classes/obje.js +81 -0
  39. package/dist/classes/objes.d.ts +8 -0
  40. package/dist/classes/objes.d.ts.map +1 -0
  41. package/dist/classes/objes.js +13 -0
  42. package/dist/classes/repo.d.ts +11 -0
  43. package/dist/classes/repo.d.ts.map +1 -0
  44. package/dist/classes/repo.js +6 -0
  45. package/dist/classes/repos.d.ts +8 -0
  46. package/dist/classes/repos.d.ts.map +1 -0
  47. package/dist/classes/repos.js +13 -0
  48. package/dist/classes/sour.d.ts +11 -0
  49. package/dist/classes/sour.d.ts.map +1 -0
  50. package/dist/classes/sour.js +6 -0
  51. package/dist/classes/sours.d.ts +8 -0
  52. package/dist/classes/sours.d.ts.map +1 -0
  53. package/dist/classes/sours.js +13 -0
  54. package/dist/classes/subm.d.ts +10 -0
  55. package/dist/classes/subm.d.ts.map +1 -0
  56. package/dist/classes/subm.js +6 -0
  57. package/dist/classes/subms.d.ts +8 -0
  58. package/dist/classes/subms.d.ts.map +1 -0
  59. package/dist/classes/subms.js +13 -0
  60. package/dist/constants/constants.d.ts +14 -0
  61. package/dist/constants/constants.d.ts.map +1 -0
  62. package/dist/constants/constants.js +13 -0
  63. package/dist/constants/filters.d.ts +17 -0
  64. package/dist/constants/filters.d.ts.map +1 -0
  65. package/dist/constants/filters.js +44 -0
  66. package/dist/constants/index.d.ts +4 -0
  67. package/dist/constants/index.d.ts.map +1 -0
  68. package/dist/constants/index.js +4 -0
  69. package/dist/constants/orders.d.ts +17 -0
  70. package/dist/constants/orders.d.ts.map +1 -0
  71. package/dist/constants/orders.js +240 -0
  72. package/dist/factories/cache-factory.d.ts +30 -0
  73. package/dist/factories/cache-factory.d.ts.map +1 -0
  74. package/dist/factories/cache-factory.js +43 -0
  75. package/dist/factories/date-locale-factory.d.ts +30 -0
  76. package/dist/factories/date-locale-factory.d.ts.map +1 -0
  77. package/dist/factories/date-locale-factory.js +34 -0
  78. package/dist/factories/i18n-factory.d.ts +40 -0
  79. package/dist/factories/i18n-factory.d.ts.map +1 -0
  80. package/dist/factories/i18n-factory.js +44 -0
  81. package/dist/factories/index.d.ts +5 -0
  82. package/dist/factories/index.d.ts.map +1 -0
  83. package/dist/factories/index.js +5 -0
  84. package/dist/factories/kinship-factory.d.ts +38 -0
  85. package/dist/factories/kinship-factory.d.ts.map +1 -0
  86. package/dist/factories/kinship-factory.js +35 -0
  87. package/dist/factories/place-parser-provider.d.ts +32 -0
  88. package/dist/factories/place-parser-provider.d.ts.map +1 -0
  89. package/dist/factories/place-parser-provider.js +35 -0
  90. package/dist/factories/place-translator-provider.d.ts +32 -0
  91. package/dist/factories/place-translator-provider.d.ts.map +1 -0
  92. package/dist/factories/place-translator-provider.js +35 -0
  93. package/dist/index.d.ts +78 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +44 -0
  96. package/dist/interfaces/common.d.ts +43 -0
  97. package/dist/interfaces/common.d.ts.map +1 -0
  98. package/dist/interfaces/common.js +1 -0
  99. package/dist/interfaces/fam.d.ts +11 -0
  100. package/dist/interfaces/fam.d.ts.map +1 -0
  101. package/dist/interfaces/fam.js +1 -0
  102. package/dist/interfaces/fams.d.ts +9 -0
  103. package/dist/interfaces/fams.d.ts.map +1 -0
  104. package/dist/interfaces/fams.js +1 -0
  105. package/dist/interfaces/gedcom.d.ts +30 -0
  106. package/dist/interfaces/gedcom.d.ts.map +1 -0
  107. package/dist/interfaces/gedcom.js +1 -0
  108. package/dist/interfaces/index.d.ts +12 -0
  109. package/dist/interfaces/index.d.ts.map +1 -0
  110. package/dist/interfaces/index.js +1 -0
  111. package/dist/interfaces/indi.d.ts +109 -0
  112. package/dist/interfaces/indi.d.ts.map +1 -0
  113. package/dist/interfaces/indi.js +1 -0
  114. package/dist/interfaces/indis.d.ts +31 -0
  115. package/dist/interfaces/indis.d.ts.map +1 -0
  116. package/dist/interfaces/indis.js +1 -0
  117. package/dist/interfaces/list.d.ts +52 -0
  118. package/dist/interfaces/list.d.ts.map +1 -0
  119. package/dist/interfaces/list.js +1 -0
  120. package/dist/interfaces/obje.d.ts +7 -0
  121. package/dist/interfaces/obje.d.ts.map +1 -0
  122. package/dist/interfaces/obje.js +1 -0
  123. package/dist/interfaces/repo.d.ts +7 -0
  124. package/dist/interfaces/repo.d.ts.map +1 -0
  125. package/dist/interfaces/repo.js +1 -0
  126. package/dist/interfaces/sour.d.ts +7 -0
  127. package/dist/interfaces/sour.d.ts.map +1 -0
  128. package/dist/interfaces/sour.js +1 -0
  129. package/dist/interfaces/subm.d.ts +6 -0
  130. package/dist/interfaces/subm.d.ts.map +1 -0
  131. package/dist/interfaces/subm.js +1 -0
  132. package/dist/kinship-translator/index.d.ts +11 -0
  133. package/dist/kinship-translator/index.d.ts.map +1 -0
  134. package/dist/kinship-translator/index.js +10 -0
  135. package/dist/kinship-translator/kinship-translator.basic.d.ts +30 -0
  136. package/dist/kinship-translator/kinship-translator.basic.d.ts.map +1 -0
  137. package/dist/kinship-translator/kinship-translator.basic.js +74 -0
  138. package/dist/kinship-translator/kinship-translator.d.ts +26 -0
  139. package/dist/kinship-translator/kinship-translator.d.ts.map +1 -0
  140. package/dist/kinship-translator/kinship-translator.de.d.ts +18 -0
  141. package/dist/kinship-translator/kinship-translator.de.d.ts.map +1 -0
  142. package/dist/kinship-translator/kinship-translator.de.js +180 -0
  143. package/dist/kinship-translator/kinship-translator.en.d.ts +18 -0
  144. package/dist/kinship-translator/kinship-translator.en.d.ts.map +1 -0
  145. package/dist/kinship-translator/kinship-translator.en.js +182 -0
  146. package/dist/kinship-translator/kinship-translator.es.d.ts +18 -0
  147. package/dist/kinship-translator/kinship-translator.es.d.ts.map +1 -0
  148. package/dist/kinship-translator/kinship-translator.es.js +181 -0
  149. package/dist/kinship-translator/kinship-translator.fr.d.ts +18 -0
  150. package/dist/kinship-translator/kinship-translator.fr.d.ts.map +1 -0
  151. package/dist/kinship-translator/kinship-translator.fr.js +181 -0
  152. package/dist/kinship-translator/kinship-translator.hu.d.ts +19 -0
  153. package/dist/kinship-translator/kinship-translator.hu.d.ts.map +1 -0
  154. package/dist/kinship-translator/kinship-translator.hu.js +226 -0
  155. package/dist/kinship-translator/kinship-translator.interface.d.ts +19 -0
  156. package/dist/kinship-translator/kinship-translator.interface.d.ts.map +1 -0
  157. package/dist/kinship-translator/kinship-translator.interface.js +1 -0
  158. package/dist/kinship-translator/kinship-translator.js +103 -0
  159. package/dist/kinship-translator/patterns.de.d.ts +2 -0
  160. package/dist/kinship-translator/patterns.de.d.ts.map +1 -0
  161. package/dist/kinship-translator/patterns.de.js +14 -0
  162. package/dist/kinship-translator/patterns.en.d.ts +2 -0
  163. package/dist/kinship-translator/patterns.en.d.ts.map +1 -0
  164. package/dist/kinship-translator/patterns.en.js +14 -0
  165. package/dist/kinship-translator/patterns.es.d.ts +2 -0
  166. package/dist/kinship-translator/patterns.es.d.ts.map +1 -0
  167. package/dist/kinship-translator/patterns.es.js +14 -0
  168. package/dist/kinship-translator/patterns.fr.d.ts +2 -0
  169. package/dist/kinship-translator/patterns.fr.d.ts.map +1 -0
  170. package/dist/kinship-translator/patterns.fr.js +14 -0
  171. package/dist/kinship-translator/patterns.hu.d.ts +6 -0
  172. package/dist/kinship-translator/patterns.hu.d.ts.map +1 -0
  173. package/dist/kinship-translator/patterns.hu.js +97 -0
  174. package/dist/kinship-translator/translators.d.ts +6 -0
  175. package/dist/kinship-translator/translators.d.ts.map +1 -0
  176. package/dist/kinship-translator/translators.js +5 -0
  177. package/dist/kinship-translator/types.d.ts +9 -0
  178. package/dist/kinship-translator/types.d.ts.map +1 -0
  179. package/dist/kinship-translator/types.js +1 -0
  180. package/dist/structures/address.d.ts +14 -0
  181. package/dist/structures/address.d.ts.map +1 -0
  182. package/dist/structures/address.js +1 -0
  183. package/dist/structures/association.d.ts +13 -0
  184. package/dist/structures/association.d.ts.map +1 -0
  185. package/dist/structures/association.js +1 -0
  186. package/dist/structures/change-date.d.ts +8 -0
  187. package/dist/structures/change-date.d.ts.map +1 -0
  188. package/dist/structures/change-date.js +1 -0
  189. package/dist/structures/creation-date.d.ts +7 -0
  190. package/dist/structures/creation-date.d.ts.map +1 -0
  191. package/dist/structures/creation-date.js +1 -0
  192. package/dist/structures/date.d.ts +9 -0
  193. package/dist/structures/date.d.ts.map +1 -0
  194. package/dist/structures/date.js +1 -0
  195. package/dist/structures/event-detail-structure.d.ts +25 -0
  196. package/dist/structures/event-detail-structure.d.ts.map +1 -0
  197. package/dist/structures/event-detail-structure.js +1 -0
  198. package/dist/structures/family.d.ts +34 -0
  199. package/dist/structures/family.d.ts.map +1 -0
  200. package/dist/structures/family.js +1 -0
  201. package/dist/structures/gedcom.d.ts +60 -0
  202. package/dist/structures/gedcom.d.ts.map +1 -0
  203. package/dist/structures/gedcom.js +1 -0
  204. package/dist/structures/index.d.ts +25 -0
  205. package/dist/structures/index.d.ts.map +1 -0
  206. package/dist/structures/index.js +1 -0
  207. package/dist/structures/individual-event-detail-structure.d.ts +9 -0
  208. package/dist/structures/individual-event-detail-structure.d.ts.map +1 -0
  209. package/dist/structures/individual-event-detail-structure.js +1 -0
  210. package/dist/structures/individual-event-structure.d.ts +83 -0
  211. package/dist/structures/individual-event-structure.d.ts.map +1 -0
  212. package/dist/structures/individual-event-structure.js +1 -0
  213. package/dist/structures/individual.d.ts +40 -0
  214. package/dist/structures/individual.d.ts.map +1 -0
  215. package/dist/structures/individual.js +1 -0
  216. package/dist/structures/lds-ordinance-detail.d.ts +17 -0
  217. package/dist/structures/lds-ordinance-detail.d.ts.map +1 -0
  218. package/dist/structures/lds-ordinance-detail.js +1 -0
  219. package/dist/structures/lds-spouse-sealing.d.ts +7 -0
  220. package/dist/structures/lds-spouse-sealing.d.ts.map +1 -0
  221. package/dist/structures/lds-spouse-sealing.js +1 -0
  222. package/dist/structures/marriage-date.d.ts +11 -0
  223. package/dist/structures/marriage-date.d.ts.map +1 -0
  224. package/dist/structures/marriage-date.js +1 -0
  225. package/dist/structures/multimedia-link.d.ts +16 -0
  226. package/dist/structures/multimedia-link.d.ts.map +1 -0
  227. package/dist/structures/multimedia-link.js +1 -0
  228. package/dist/structures/non-event.d.ts +12 -0
  229. package/dist/structures/non-event.d.ts.map +1 -0
  230. package/dist/structures/non-event.js +1 -0
  231. package/dist/structures/note.d.ts +16 -0
  232. package/dist/structures/note.d.ts.map +1 -0
  233. package/dist/structures/note.js +1 -0
  234. package/dist/structures/personal-name-pieces.d.ts +11 -0
  235. package/dist/structures/personal-name-pieces.d.ts.map +1 -0
  236. package/dist/structures/personal-name-pieces.js +1 -0
  237. package/dist/structures/personal-name.d.ts +16 -0
  238. package/dist/structures/personal-name.d.ts.map +1 -0
  239. package/dist/structures/personal-name.js +1 -0
  240. package/dist/structures/place.d.ts +20 -0
  241. package/dist/structures/place.d.ts.map +1 -0
  242. package/dist/structures/place.js +1 -0
  243. package/dist/structures/repository.d.ts +6 -0
  244. package/dist/structures/repository.d.ts.map +1 -0
  245. package/dist/structures/repository.js +1 -0
  246. package/dist/structures/source-citation.d.ts +27 -0
  247. package/dist/structures/source-citation.d.ts.map +1 -0
  248. package/dist/structures/source-citation.js +1 -0
  249. package/dist/structures/source-repository-citation.d.ts +13 -0
  250. package/dist/structures/source-repository-citation.d.ts.map +1 -0
  251. package/dist/structures/source-repository-citation.js +1 -0
  252. package/dist/structures/source.d.ts +28 -0
  253. package/dist/structures/source.d.ts.map +1 -0
  254. package/dist/structures/source.js +1 -0
  255. package/dist/types/ancestry-media.d.ts +65 -0
  256. package/dist/types/ancestry-media.d.ts.map +1 -0
  257. package/dist/types/ancestry-media.js +1 -0
  258. package/dist/types/index.d.ts +4 -0
  259. package/dist/types/index.d.ts.map +1 -0
  260. package/dist/types/index.js +4 -0
  261. package/dist/types/settings.d.ts +12 -0
  262. package/dist/types/settings.d.ts.map +1 -0
  263. package/dist/types/settings.js +1 -0
  264. package/dist/types/types.d.ts +220 -0
  265. package/dist/types/types.d.ts.map +1 -0
  266. package/dist/types/types.js +26 -0
  267. package/dist/utils/cache.d.ts +22 -0
  268. package/dist/utils/cache.d.ts.map +1 -0
  269. package/dist/utils/cache.js +57 -0
  270. package/dist/utils/common-creator.d.ts +13 -0
  271. package/dist/utils/common-creator.d.ts.map +1 -0
  272. package/dist/utils/common-creator.js +72 -0
  273. package/dist/utils/date-formatter.d.ts +35 -0
  274. package/dist/utils/date-formatter.d.ts.map +1 -0
  275. package/dist/utils/date-formatter.js +207 -0
  276. package/dist/utils/get-all-prop.d.ts +4 -0
  277. package/dist/utils/get-all-prop.d.ts.map +1 -0
  278. package/dist/utils/get-all-prop.js +5 -0
  279. package/dist/utils/get-family-with.d.ts +5 -0
  280. package/dist/utils/get-family-with.d.ts.map +1 -0
  281. package/dist/utils/get-family-with.js +11 -0
  282. package/dist/utils/get-places.d.ts +21 -0
  283. package/dist/utils/get-places.d.ts.map +1 -0
  284. package/dist/utils/get-places.js +77 -0
  285. package/dist/utils/get-product-details.d.ts +4 -0
  286. package/dist/utils/get-product-details.d.ts.map +1 -0
  287. package/dist/utils/get-product-details.js +6 -0
  288. package/dist/utils/get-raw-size.d.ts +2 -0
  289. package/dist/utils/get-raw-size.d.ts.map +1 -0
  290. package/dist/utils/get-raw-size.js +3 -0
  291. package/dist/utils/index.d.ts +17 -0
  292. package/dist/utils/index.d.ts.map +1 -0
  293. package/dist/utils/index.js +18 -0
  294. package/dist/utils/logger.d.ts +3 -0
  295. package/dist/utils/logger.d.ts.map +1 -0
  296. package/dist/utils/logger.js +11 -0
  297. package/dist/utils/name-formatter.d.ts +10 -0
  298. package/dist/utils/name-formatter.d.ts.map +1 -0
  299. package/dist/utils/name-formatter.js +45 -0
  300. package/dist/utils/nested-group.d.ts +4 -0
  301. package/dist/utils/nested-group.d.ts.map +1 -0
  302. package/dist/utils/nested-group.js +34 -0
  303. package/dist/utils/ordinalize.d.ts +3 -0
  304. package/dist/utils/ordinalize.d.ts.map +1 -0
  305. package/dist/utils/ordinalize.js +104 -0
  306. package/dist/utils/parser.d.ts +17 -0
  307. package/dist/utils/parser.d.ts.map +1 -0
  308. package/dist/utils/parser.js +322 -0
  309. package/dist/utils/place-parser.d.ts +16 -0
  310. package/dist/utils/place-parser.d.ts.map +1 -0
  311. package/dist/utils/place-parser.js +46 -0
  312. package/dist/utils/place-translator.d.ts +6 -0
  313. package/dist/utils/place-translator.d.ts.map +1 -0
  314. package/dist/utils/place-translator.js +8 -0
  315. package/dist/utils/place-types.d.ts +27 -0
  316. package/dist/utils/place-types.d.ts.map +1 -0
  317. package/dist/utils/place-types.js +14 -0
  318. package/dist/utils/range.d.ts +19 -0
  319. package/dist/utils/range.d.ts.map +1 -0
  320. package/dist/utils/range.js +265 -0
  321. package/package.json +153 -0
@@ -0,0 +1,54 @@
1
+ import { type IIndividuals } from "../interfaces/indis";
2
+ import { type Settings } from "../types/settings";
3
+ import { type IndiKey, type Filter, type OrderIterator, Range, type NestedGroup, type Order, type FilterIterator, type GroupIterator, type Group } from "../types/types";
4
+ import { type IndiType } from "./indi";
5
+ import { List } from "./list";
6
+ export declare class Individuals extends List<IndiKey, IndiType> implements IIndividuals {
7
+ copy(): Individuals;
8
+ except(item: IndiType): Individuals;
9
+ filter(filters: Filter | FilterIterator<IndiType, IndiKey>): Individuals;
10
+ find(filters: Filter | FilterIterator<IndiType, IndiKey>): IndiType | undefined;
11
+ unattachedFilter(useUnattached: boolean): Individuals;
12
+ orderBy(orders: Order | OrderIterator<IndiType, IndiKey>): Individuals;
13
+ getFirstEvent(): IndiType;
14
+ getLastEvent(): IndiType;
15
+ getFirstBirth(): IndiType;
16
+ getLastBirth(): IndiType;
17
+ getFirstDeath(): IndiType;
18
+ getLastDeath(): IndiType;
19
+ groupBy(group: Group | GroupIterator<IndiType, IndiKey>, sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, lessOccuranceLabel?: string): Record<string, Individuals>;
20
+ groupByFirstLetters(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, settings?: Settings): Record<string, Individuals>;
21
+ groupBySurnames(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number): Record<string, Individuals>;
22
+ groupByTimeRanges(range: Range, sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number): Record<string, Individuals>;
23
+ nestedGroupByPlacesAndTimeRanges(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, uniqueCounting?: boolean): NestedGroup;
24
+ nestedGroupByTimeRangesAndPlaces(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, uniqueCounting?: boolean): NestedGroup;
25
+ nestedGroupByPlaces(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, partOrder?: "original" | "reverse", translate?: boolean, uniqueCounting?: boolean, groupKeyTranslator?: (parts: string[]) => string | undefined): NestedGroup;
26
+ groupByPlaces(sort?: "length" | "group" | OrderIterator<Individuals, string>, minOccurance?: number, partOrder?: "original" | "reverse", translate?: boolean, groupKeyTranslator?: (parts: string[]) => string | undefined): Record<string, Individuals>;
27
+ getFacts(): List<import("../types/types").IdType, import("./common").Common<string, import("../types/types").IdType>>;
28
+ private isRelativeOf;
29
+ isSiblingOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
30
+ isSpouseOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
31
+ isParentOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
32
+ isChildOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
33
+ isParentInLawOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
34
+ isChildInLawOf(indi?: IndiKey | IndiType, every?: boolean): boolean | `@I${number}@` | `@P${number}@` | `@XI${number}@` | `@XXI${number}@`;
35
+ splitByFamily(type: "Spouses" | "Parents" | "Children", relativeTo?: IndiType): {
36
+ items: Record<`@F${number}@` | `@XF${number}@` | `@XXF${number}@`, Individuals>;
37
+ lengthOfFamily: number;
38
+ lengthOfIndividuals: number;
39
+ };
40
+ getRelativesOnDegree(degree?: number): Individuals;
41
+ getRelativesOnLevel(level?: number, filter?: Filter): Individuals;
42
+ getAscendants(level?: number, filter?: Filter): Individuals;
43
+ getDescendants(level?: number, filter?: Filter): Individuals;
44
+ getAllAscendants(individuals?: Individuals): Individuals;
45
+ getAllDescendants(individuals?: Individuals, containDescendantsInLaw?: boolean): Individuals;
46
+ getSiblings(): Individuals;
47
+ getChildren(): Individuals;
48
+ getParents(): Individuals;
49
+ getCoParents(): Individuals;
50
+ getSpouses(): Individuals;
51
+ toName(): List<import("../types/types").IdType, import("./common").Common<string, import("../types/types").IdType>>;
52
+ toList(): Individuals;
53
+ }
54
+ //# sourceMappingURL=indis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indis.d.ts","sourceRoot":"","sources":["../../src/classes/indis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,439 @@
1
+ import difference from "lodash/difference";
2
+ import { BIRTH_ASC, BIRTH_DESC, DEATH_ASC, DEATH_DESC, } from "../constants/orders";
3
+ import { getPlaceParserProvider } from "../factories/place-parser-provider";
4
+ import { getPlaceTranslatorProvider } from "../factories/place-translator-provider";
5
+ import { Range, } from "../types/types";
6
+ import { nameFormatter } from "../utils/name-formatter";
7
+ import { setNestedGroup } from "../utils/nested-group";
8
+ import { getPlaceParts } from "../utils/place-parser";
9
+ import { placeTranslator } from "../utils/place-translator";
10
+ import { List } from "./list";
11
+ export class Individuals extends List {
12
+ copy() {
13
+ return super.copy(Individuals);
14
+ }
15
+ except(item) {
16
+ return super.except(item, Individuals);
17
+ }
18
+ filter(filters) {
19
+ return super.filter(filters, Individuals);
20
+ }
21
+ find(filters) {
22
+ return super.find(filters, Individuals);
23
+ }
24
+ unattachedFilter(useUnattached) {
25
+ if (useUnattached) {
26
+ return this;
27
+ }
28
+ return this.filter((item) => !item.isUnattachedMember());
29
+ }
30
+ orderBy(orders) {
31
+ return super.orderBy(orders, Individuals);
32
+ }
33
+ getFirstEvent() {
34
+ const firstDeath = this.getFirstBirth();
35
+ const firstBirth = this.getFirstDeath();
36
+ if (firstBirth?.DATE?.rawValue === undefined ||
37
+ (firstDeath?.DATE?.rawValue !== undefined &&
38
+ firstDeath.DATE.rawValue < firstBirth.DATE.rawValue)) {
39
+ return firstDeath;
40
+ }
41
+ return firstBirth;
42
+ }
43
+ getLastEvent() {
44
+ const lastDeath = this.getLastDeath();
45
+ const lastBirth = this.getLastBirth();
46
+ if (lastDeath?.DATE?.rawValue === undefined ||
47
+ (lastBirth?.DATE?.rawValue !== undefined &&
48
+ lastDeath.DATE.rawValue < lastBirth.DATE.rawValue)) {
49
+ return lastBirth;
50
+ }
51
+ return lastDeath;
52
+ }
53
+ getFirstBirth() {
54
+ return this.filter((item) => {
55
+ const birth = item.BIRT?.toList().index(0);
56
+ if (birth?.DATE?.rawValue?.getTime() === 0) {
57
+ return true;
58
+ }
59
+ return !!birth?.DATE?.rawValue?.getTime();
60
+ })
61
+ .orderBy(BIRTH_ASC)
62
+ .index(0);
63
+ }
64
+ getLastBirth() {
65
+ return this.filter((item) => {
66
+ const birth = item.BIRT?.toList().index(0);
67
+ if (birth?.DATE?.rawValue?.getTime() === 0) {
68
+ return true;
69
+ }
70
+ return !!birth?.DATE?.rawValue?.getTime();
71
+ })
72
+ .orderBy(BIRTH_DESC)
73
+ .index(0);
74
+ }
75
+ getFirstDeath() {
76
+ return this.filter((item) => {
77
+ const death = item.DEAT?.toList().index(0);
78
+ if (death?.DATE?.rawValue?.getTime() === 0) {
79
+ return true;
80
+ }
81
+ return !!death?.DATE?.rawValue?.getTime();
82
+ })
83
+ .orderBy(DEATH_ASC)
84
+ .index(0);
85
+ }
86
+ getLastDeath() {
87
+ return this.filter((item) => {
88
+ const death = item.DEAT?.toList().index(0);
89
+ if (death?.DATE?.rawValue?.getTime() === 0) {
90
+ return true;
91
+ }
92
+ return !!death?.DATE?.rawValue?.getTime();
93
+ })
94
+ .orderBy(DEATH_DESC)
95
+ .index(0);
96
+ }
97
+ groupBy(group, sort, minOccurance = -1, lessOccuranceLabel) {
98
+ return super.groupBy(group, sort, minOccurance, lessOccuranceLabel, Individuals);
99
+ }
100
+ groupByFirstLetters(sort = "group", minOccurance = -1, settings) {
101
+ return this.groupBy((item) => {
102
+ const { letter } = nameFormatter(item, settings);
103
+ return letter.trim() || "Unknown";
104
+ }, sort, minOccurance, "Letters appearing less than 5 times");
105
+ }
106
+ groupBySurnames(sort, minOccurance = -1) {
107
+ return this.groupBy("NAME.SURN", sort, minOccurance, "Surnames appearing less than 5 times");
108
+ }
109
+ groupByTimeRanges(range, sort = "group", minOccurance = -1) {
110
+ return this.groupBy({
111
+ ["BIRT.DATE.YEAR"]: {
112
+ getter: (year) => {
113
+ if (!Number(year)) {
114
+ return;
115
+ }
116
+ if (range === Range.Year) {
117
+ return `${Math.floor(Number(year) / range) * range}`;
118
+ }
119
+ return `${Math.floor(Number(year) / range) * range + 1}-${Math.ceil((Number(year) + 1) / range) * range}`;
120
+ },
121
+ },
122
+ }, sort, minOccurance, "Time ranges appearing less than 5 times");
123
+ }
124
+ nestedGroupByPlacesAndTimeRanges(sort, minOccurance = -1, uniqueCounting = true) {
125
+ const placesWithYear = this.groupBy((item) => item
126
+ .getPlaces()
127
+ .map((place) => {
128
+ const date = place.obj?.get("DATE");
129
+ if (date?.YEAR) {
130
+ return `${place.place}, ${date.YEAR}`;
131
+ }
132
+ return `${place.place}, Unknown`;
133
+ })
134
+ .filter(Boolean), sort, minOccurance, "Places appearing less than 5 times");
135
+ return Object.entries(placesWithYear).reduce((acc, [place, indis]) => {
136
+ setNestedGroup(acc, place, indis, uniqueCounting);
137
+ return acc;
138
+ }, {});
139
+ }
140
+ nestedGroupByTimeRangesAndPlaces(sort, minOccurance = -1, uniqueCounting = true) {
141
+ const placesWithYear = this.groupBy((item) => item
142
+ .getPlaces()
143
+ .map((place) => {
144
+ const date = place.obj?.get("DATE");
145
+ if (date?.YEAR) {
146
+ return `${date.YEAR}, ${place.place}`;
147
+ }
148
+ return `Unknown, ${place.place}`;
149
+ })
150
+ .filter(Boolean), sort, minOccurance, "Places appearing less than 5 times");
151
+ return Object.entries(placesWithYear).reduce((acc, [place, indis]) => {
152
+ setNestedGroup(acc, place, indis, uniqueCounting);
153
+ return acc;
154
+ }, {});
155
+ }
156
+ nestedGroupByPlaces(sort, minOccurance = -1, partOrder = "reverse", translate = true, uniqueCounting = true, groupKeyTranslator) {
157
+ const places = this.groupByPlaces(sort, minOccurance, partOrder, translate, groupKeyTranslator);
158
+ return Object.entries(places).reduce((acc, [place, indis]) => {
159
+ setNestedGroup(acc, place, indis, uniqueCounting);
160
+ return acc;
161
+ }, {});
162
+ }
163
+ groupByPlaces(sort, minOccurance = -1, partOrder = "reverse", translate = true, groupKeyTranslator) {
164
+ return this.groupBy((item) => item
165
+ .getPlaces()
166
+ .map((place) => {
167
+ // Use custom place parser if provided, otherwise use built-in
168
+ const customPlaceParser = getPlaceParserProvider();
169
+ const placeParts = customPlaceParser
170
+ ? customPlaceParser(place.place || "")
171
+ : getPlaceParts(place.place || "");
172
+ const { leftParts = [], town, county, country, } = placeParts[0] || {};
173
+ // Build normalized parts array in city-to-country order
174
+ const normalizedParts = [
175
+ ...leftParts,
176
+ town,
177
+ county,
178
+ country,
179
+ ].filter(Boolean);
180
+ // Apply the requested order
181
+ const orderedParts = partOrder === "original"
182
+ ? normalizedParts
183
+ : normalizedParts.toReversed();
184
+ let newPlace = "";
185
+ if (groupKeyTranslator) {
186
+ // Use custom group key translator function
187
+ newPlace = groupKeyTranslator(orderedParts);
188
+ }
189
+ else if (translate) {
190
+ // Use custom place translator if provided, otherwise use built-in
191
+ const customPlaceTranslator = getPlaceTranslatorProvider();
192
+ if (customPlaceTranslator) {
193
+ // Custom translator: pass as array
194
+ newPlace = customPlaceTranslator(orderedParts);
195
+ }
196
+ else {
197
+ // Built-in translator: expects string array
198
+ newPlace = placeTranslator(orderedParts);
199
+ }
200
+ }
201
+ else {
202
+ // No translation, just join
203
+ newPlace = orderedParts.join(", ");
204
+ }
205
+ if (!newPlace) {
206
+ return undefined;
207
+ }
208
+ return {
209
+ marker: place.place,
210
+ group: newPlace,
211
+ };
212
+ })
213
+ .filter(Boolean), sort, minOccurance, "Places appearing less than 5 times");
214
+ }
215
+ getFacts() {
216
+ const facts = new List();
217
+ this.values().forEach((indi) => {
218
+ const indiFacts = indi?.getFacts();
219
+ if (indi?.id && indiFacts) {
220
+ facts.merge(indiFacts);
221
+ }
222
+ });
223
+ return facts;
224
+ }
225
+ isRelativeOf(type, indi, every = false) {
226
+ const usedIndi = typeof indi === "string"
227
+ ? this.index(0)?.getGedcom()?.indi(indi)
228
+ : indi;
229
+ let getter;
230
+ if (type === "sibling") {
231
+ getter = "getSiblings";
232
+ }
233
+ if (type === "parent") {
234
+ getter = "getParents";
235
+ }
236
+ if (type === "child") {
237
+ getter = "getChildren";
238
+ }
239
+ if (type === "spouse") {
240
+ getter = "getCoParents";
241
+ }
242
+ if (type === "parentInLaw") {
243
+ getter = "getParentsInLaw";
244
+ }
245
+ if (type === "childInLaw") {
246
+ getter = "getChildrenInLaw";
247
+ }
248
+ if (!usedIndi || !getter) {
249
+ return false;
250
+ }
251
+ const relatives = usedIndi[getter]();
252
+ const thisIds = this.keys();
253
+ if (relatives.length <= 0 || this.length <= 0) {
254
+ return false;
255
+ }
256
+ const filtered = relatives.filter({ id: thisIds });
257
+ if (every) {
258
+ return filtered.length === this.length
259
+ ? filtered.index(0)?.id || true
260
+ : false;
261
+ }
262
+ return filtered.length > 0 ? filtered.index(0)?.id || true : false;
263
+ }
264
+ isSiblingOf(indi, every = false) {
265
+ return this.isRelativeOf("sibling", indi, every);
266
+ }
267
+ isSpouseOf(indi, every = false) {
268
+ return this.isRelativeOf("spouse", indi, every);
269
+ }
270
+ isParentOf(indi, every = false) {
271
+ return this.isRelativeOf("parent", indi, every);
272
+ }
273
+ isChildOf(indi, every = false) {
274
+ return this.isRelativeOf("child", indi, every);
275
+ }
276
+ isParentInLawOf(indi, every = false) {
277
+ return this.isRelativeOf("parentInLaw", indi, every);
278
+ }
279
+ isChildInLawOf(indi, every = false) {
280
+ return this.isRelativeOf("childInLaw", indi, every);
281
+ }
282
+ splitByFamily(type, relativeTo) {
283
+ const splittedList = {};
284
+ const familiesRelativeTo = relativeTo
285
+ ?.get(type !== "Parents" ? "FAMS" : "FAMC")
286
+ ?.toValueList()
287
+ .keys() ?? [];
288
+ let lengthOfIndividuals = 0;
289
+ this.forEach((indi) => {
290
+ const families = indi
291
+ .get(type === "Spouses" ? "FAMS" : "FAMC")
292
+ ?.toValueList();
293
+ if (families) {
294
+ families.keys().forEach((fKey) => {
295
+ const famKey = fKey;
296
+ if (familiesRelativeTo &&
297
+ !familiesRelativeTo.includes(famKey)) {
298
+ return;
299
+ }
300
+ if (!splittedList[famKey]) {
301
+ splittedList[famKey] = new Individuals();
302
+ }
303
+ splittedList[famKey]?.append(indi);
304
+ lengthOfIndividuals++;
305
+ });
306
+ }
307
+ });
308
+ // Handle familiy with no co parent
309
+ if (type === "Spouses" && relativeTo) {
310
+ const missingFams = difference(familiesRelativeTo, Object.keys(splittedList));
311
+ if (missingFams.length) {
312
+ missingFams.forEach((fKey) => {
313
+ const famKey = fKey;
314
+ if (familiesRelativeTo &&
315
+ !familiesRelativeTo.includes(famKey)) {
316
+ return;
317
+ }
318
+ const missingChildren = relativeTo
319
+ .getGedcom()
320
+ ?.fam(famKey)
321
+ ?.getChildren();
322
+ if (!splittedList[famKey] && missingChildren?.length) {
323
+ splittedList[famKey] = new Individuals();
324
+ }
325
+ });
326
+ }
327
+ }
328
+ return {
329
+ items: splittedList,
330
+ lengthOfFamily: Object.keys(splittedList).length,
331
+ lengthOfIndividuals,
332
+ };
333
+ }
334
+ getRelativesOnDegree(degree = 0) {
335
+ const persons = new Individuals();
336
+ this.values().forEach((indi) => {
337
+ if (indi) {
338
+ persons.merge(indi.getRelativesOnLevel(degree));
339
+ }
340
+ });
341
+ return persons;
342
+ }
343
+ getRelativesOnLevel(level = 0, filter) {
344
+ const persons = new Individuals();
345
+ this.values().forEach((indi) => {
346
+ if (indi) {
347
+ persons.merge(indi.getRelativesOnLevel(level, filter));
348
+ }
349
+ });
350
+ return persons;
351
+ }
352
+ getAscendants(level = 0, filter) {
353
+ const persons = new Individuals();
354
+ this.values().forEach((indi) => {
355
+ if (indi) {
356
+ persons.merge(indi.getAscendants(level, filter));
357
+ }
358
+ });
359
+ return persons;
360
+ }
361
+ getDescendants(level = 0, filter) {
362
+ const persons = new Individuals();
363
+ this.values().forEach((indi) => {
364
+ if (indi) {
365
+ persons.merge(indi.getDescendants(level, filter));
366
+ }
367
+ });
368
+ return persons;
369
+ }
370
+ getAllAscendants(individuals) {
371
+ const persons = new Individuals();
372
+ this.values().forEach((indi) => {
373
+ if (indi) {
374
+ persons.merge(indi.getAllAscendants(individuals));
375
+ }
376
+ });
377
+ return persons;
378
+ }
379
+ getAllDescendants(individuals, containDescendantsInLaw = false) {
380
+ const persons = new Individuals();
381
+ this.values().forEach((indi) => {
382
+ if (indi) {
383
+ persons.merge(indi.getAllDescendants(individuals, containDescendantsInLaw));
384
+ }
385
+ });
386
+ return persons;
387
+ }
388
+ getSiblings() {
389
+ const persons = new Individuals();
390
+ this.values().forEach((indi) => {
391
+ if (indi) {
392
+ persons.merge(indi.getSiblings());
393
+ }
394
+ });
395
+ return persons;
396
+ }
397
+ getChildren() {
398
+ const persons = new Individuals();
399
+ this.values().forEach((indi) => {
400
+ if (indi) {
401
+ persons.merge(indi.getChildren());
402
+ }
403
+ });
404
+ return persons;
405
+ }
406
+ getParents() {
407
+ const persons = new Individuals();
408
+ this.values().forEach((indi) => {
409
+ if (indi) {
410
+ persons.merge(indi.getParents());
411
+ }
412
+ });
413
+ return persons;
414
+ }
415
+ getCoParents() {
416
+ const persons = new Individuals();
417
+ this.values().forEach((indi) => {
418
+ if (indi) {
419
+ persons.merge(indi.getCoParents());
420
+ }
421
+ });
422
+ return persons;
423
+ }
424
+ getSpouses() {
425
+ const persons = new Individuals();
426
+ this.values().forEach((indi) => {
427
+ if (indi) {
428
+ persons.merge(indi.getCoParents());
429
+ }
430
+ });
431
+ return persons;
432
+ }
433
+ toName() {
434
+ return super.toProp("NAME")?.toValue();
435
+ }
436
+ toList() {
437
+ return new Individuals().concat(this.getItems());
438
+ }
439
+ }
@@ -0,0 +1,55 @@
1
+ import { type IdType, type Filter, type FilterIterator, type MultiTag, type Order, type OrderIterator, type Group, type GroupIterator } from "../types/types";
2
+ import { type ConvertOptions } from "../interfaces/common";
3
+ import { type IList } from "../interfaces/list";
4
+ import { type Common } from "./common";
5
+ export declare class List<K extends IdType = IdType, T extends Common = Common> implements IList<K, T> {
6
+ private items;
7
+ isListable: boolean;
8
+ marker: string | undefined;
9
+ constructor(items?: Partial<Record<K, T>> | T[]);
10
+ get length(): number;
11
+ has(indi?: K | T): boolean;
12
+ get(name: MultiTag): List<IdType, Common<string, IdType>>;
13
+ getIf(name: MultiTag, condition: string, name2: MultiTag): List<IdType, Common<string, IdType>>;
14
+ keys(): K[];
15
+ values(): (T | undefined)[];
16
+ entries(): [K, T | undefined][];
17
+ setLength(_type?: "increase" | "decrease"): void;
18
+ first(): Partial<Record<K, T>>[K];
19
+ last(): Partial<Record<K, T>>[K];
20
+ index(index: number): Partial<Record<K, T>>[K];
21
+ item(name: K, value?: T): T | undefined;
22
+ removeItem(name: K): void;
23
+ exclude(excludedList: List<K, T>): this;
24
+ concat(items?: Partial<Record<K, T>> | T[]): this;
25
+ merge(mergedList?: List<K, T>): this;
26
+ intersection(mergedList?: List<K, T>): List<K, T>;
27
+ difference(mergedList?: List<K, T>): List<K, T>;
28
+ prepend(item: T): this;
29
+ append(item: T): this;
30
+ delete(item: T): this;
31
+ copy(ClassName?: typeof List<K, T>): List<K, T>;
32
+ except(item: T, ClassName?: typeof List<K, T>): List<K, T>;
33
+ forEach(iterate: (item: T, key: K, index: number) => void): void;
34
+ map<R>(iterate: (item: T, key: K, index: number) => R): R[];
35
+ reduce<R>(iterate: (acc: R, item: T, key: K, index: number) => R, initialValue: R): R;
36
+ filter(filters: Filter | FilterIterator<T, K>, ClassName?: typeof List<K, T>): List<K, T>;
37
+ find(filters: Filter | FilterIterator<T, K>, _ClassName?: typeof List<K, T>): T;
38
+ orderBy(orders: Order | OrderIterator<T, K>, ClassName?: typeof List<K, T>): List<K, T>;
39
+ groupBy(groups: Group | GroupIterator<T, K>, sort?: "length" | "group" | OrderIterator<List<K, T>, string>, minOccurance?: number, lessOccuranceLabel?: string, ClassName?: typeof List<K, T>): Record<string, List<K, T>>;
40
+ findIndex(item: T): number;
41
+ getItems(): Partial<Record<K, T>>;
42
+ toJson(tag: MultiTag, options?: ConvertOptions): string;
43
+ toObject(tag: MultiTag, options?: ConvertOptions): Record<string, string | ({
44
+ value?: string;
45
+ } & Record<string, unknown>) | (string | ({
46
+ value?: string;
47
+ } & Record<string, unknown>))[]>;
48
+ toGedcom(tag: MultiTag, level?: number, options?: ConvertOptions): string;
49
+ toGedcomLines(tag: MultiTag, level?: number, options?: ConvertOptions): string[];
50
+ toValue(): List<IdType, Common<string, IdType>>;
51
+ toProp(tag: MultiTag): List<IdType, Common<string, IdType>>;
52
+ toList(): List<IdType, Common<string, IdType>>;
53
+ toValueList(): List<IdType, Common<string, IdType>>;
54
+ }
55
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/classes/list.ts"],"names":[],"mappings":"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"}