@finbheara/names 0.13.0 → 0.14.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.
@@ -19,7 +19,7 @@ import {
19
19
  commaReading2,
20
20
  levelOf2,
21
21
  defaultPersonNameFactory2
22
- } from "./index-yf904dam.js";
22
+ } from "./index-ka8nzreg.js";
23
23
  import {
24
24
  isTeamPrint2
25
25
  } from "./index-0phgwy52.js";
@@ -88,29 +88,93 @@ var given_diminutives_default = {
88
88
  "THE ONE GIVEN-NAME DIMINUTIVE TABLE. Read by `given-diminutives.ts` in this directory; a consumer in",
89
89
  "another language reads this file rather than keeping a copy. Keys and forms are NN3 upper case,",
90
90
  "letters only.",
91
- "`families`: root -> the surface forms that reduce to it. ORDER MATTERS: the first root a form appears",
92
- "under wins (`KIT` is CATHERINE's).",
93
- "`notAtGate`: forms read as one family for a comparison level BELOW exact, but which",
94
- "are names in their own right, translations, or another gender's name. An identity gate must never",
95
- "equate a pair through one of these: `Megan` is not `Margaret`, `Sean` is",
96
- "not `John`, `Michelle` is not `Michael`. A form belongs here when two different people plausibly carry",
97
- "the two names."
91
+ "`variants`: one name's SPELLINGS, canonical -> the other spellings (`CONNOR` / `CONOR`). A spelling",
92
+ "is read as its canonical before `families` is consulted, so `families` and `notAtGate` hold canonical",
93
+ "spellings only. A transposition or a typo (`OLIVA`, `CAILTIN`, `NAIMH`) is not a variant.",
94
+ "`families`: root -> its familiar forms. A form may sit under SEVERAL roots and meets EVERY one of",
95
+ "them (`ELLIE` is ELEANOR's, ELIZABETH's and ELLEN's); two names meet when they share a root, a root",
96
+ "belonging to itself. Nothing is transitive: ELEANOR and ELIZABETH share no root.",
97
+ "`notAtGate`: forms read as one family for a comparison level BELOW exact, but which are names in",
98
+ "their own right, translations, another gender's name, or forms of more than one root (every such",
99
+ "form is listed). An identity gate must never equate a pair through one of these AS A FORM: `Megan`",
100
+ "is not `Margaret`, `Sean` is not `John`, `Michelle` is not `Michael`. A listed form that is also a",
101
+ "root still meets its own forms at a gate (`CAITLIN` / `CAIT`). A form belongs here when two",
102
+ "different people plausibly carry the two names."
98
103
  ],
104
+ variants: {
105
+ AIDAN: ["AIDEN"],
106
+ AISLING: ["ASHLING", "AISHLING"],
107
+ ALANNA: ["ALANNAH", "ALANA"],
108
+ ALEXANDRA: ["ALEXANDRIA"],
109
+ ALLISON: ["ALISON"],
110
+ AOIBHINN: ["AOIBHIN"],
111
+ BRIANNA: ["BRIANA"],
112
+ BRIGID: ["BRIDGID", "BRIGHID"],
113
+ CAITLIN: ["CAITLYN", "KAITLIN", "KAITLYN", "KATELYN"],
114
+ CAITRIONA: ["CATRIONA"],
115
+ CATHERINE: ["KATHERINE", "KATHRYN", "CATHRYN"],
116
+ CECILIA: ["CECELIA"],
117
+ CIARA: ["KIERA", "KEIRA", "CIARRA"],
118
+ CIARAN: ["KIERAN", "KEIRAN"],
119
+ CLAIRE: ["CLARE"],
120
+ COLLEEN: ["COLEEN"],
121
+ CONNOR: ["CONOR"],
122
+ DEBORAH: ["DEBRA"],
123
+ EMER: ["EIMEAR"],
124
+ FIONNUALA: ["FIONNULA"],
125
+ GABRIELLE: ["GABRIELLA"],
126
+ GRAINNE: ["GRAINE"],
127
+ HALEY: ["HAILEY"],
128
+ HANNAH: ["HANNA", "HANAH"],
129
+ ISABEL: ["ISABELLE"],
130
+ JEN: ["JENN"],
131
+ JENNY: ["JENNIE"],
132
+ JONATHAN: ["JONATHON"],
133
+ JULIANNA: ["JULIANA"],
134
+ KATE: ["CATE"],
135
+ KATHLEEN: ["CATHLEEN"],
136
+ KATIE: ["CATIE"],
137
+ KAYLEIGH: ["KALEIGH"],
138
+ KERRY: ["KERRI"],
139
+ KIMBERLY: ["KIMBERLEY"],
140
+ KRISTIN: ["KRISTEN"],
141
+ LILY: ["LILLY"],
142
+ LINDSAY: ["LINDSEY"],
143
+ MADELINE: ["MADELEINE"],
144
+ MADISON: ["MADDISON"],
145
+ MATTHEW: ["MATHEW"],
146
+ MEGAN: ["MEGHAN", "MEAGAN", "MEAGHAN"],
147
+ MOLLY: ["MOLLIE"],
148
+ RACHEL: ["RACHAEL"],
149
+ SARAH: ["SARA"],
150
+ SHANNON: ["SHANNAN", "SHANNEN"],
151
+ SIOBHAN: ["SIOBHAIN"],
152
+ SOPHIA: ["SOFIA"],
153
+ STEPHEN: ["STEVEN"],
154
+ SYDNEY: ["SIDNEY"],
155
+ TERESA: ["THERESA"],
156
+ TRISTAN: ["TRISTEN"],
157
+ VICKY: ["VICKI"],
158
+ ZACH: ["ZACK"]
159
+ },
99
160
  families: {
100
- ABIGAIL: ["ABBY", "ABBIE"],
101
- AIDAN: ["AIDEN", "AODHAN", "AIDY"],
161
+ ABIGAIL: ["ABBY", "ABBIE", "ABBEY", "ABI"],
162
+ ADDISON: ["ADDIE"],
163
+ AIDAN: ["AODHAN", "AIDY"],
102
164
  ALEXANDER: ["ALEX", "ALEC", "SANDY", "XANDER", "ALEXANDRA", "ALEXA", "LEXI", "LEXIE"],
165
+ ALEXANDRA: ["ALLY"],
166
+ ALLISON: ["ALLY", "ALLIE"],
103
167
  AMANDA: ["MANDY"],
104
168
  ANDREW: ["ANDY"],
169
+ ANGELA: ["ANGIE"],
105
170
  ANNE: ["ANN", "ANNA", "ANNIE", "NANCY", "NAN", "ANYA"],
106
171
  ANTHONY: ["TONY"],
107
172
  BARBARA: ["BARB"],
108
- BRIDGET: ["BRIDIE", "BRID", "BRIGID", "BRIGHID", "BREDA", "BREEDA", "BIDDY"],
109
- CAITLIN: ["CAITLYN", "KAITLIN", "KAITLYN", "KATELYN", "CAIT"],
173
+ BENJAMIN: ["BEN", "BENNY"],
174
+ BRIDGET: ["BRIDIE", "BRID", "BRIGID", "BREDA", "BREEDA", "BIDDY"],
175
+ CAITLIN: ["CAIT"],
176
+ CASSANDRA: ["CASSIE"],
110
177
  CATHERINE: [
111
- "KATHERINE",
112
- "KATHRYN",
113
- "CATHRYN",
114
178
  "KATE",
115
179
  "KATIE",
116
180
  "KATY",
@@ -120,31 +184,72 @@ var given_diminutives_default = {
120
184
  "KITTY",
121
185
  "CAITRIONA",
122
186
  "KATHLEEN",
123
- "CATHLEEN"
187
+ "CAITLIN"
124
188
  ],
189
+ CHARLES: ["CHARLIE"],
125
190
  CHRISTOPHER: ["CHRIS", "KIT", "TOPHER"],
126
- CIARA: ["KIERA", "KEIRA", "CIARRA"],
127
- CIARAN: ["KIERAN", "KEIRAN"],
191
+ CIARA: [],
192
+ CIARAN: [],
193
+ CONSTANCE: ["CONNIE"],
128
194
  CYNTHIA: ["CINDY"],
129
195
  DANIEL: ["DAN", "DANNY", "DANIELLE", "DANI"],
130
- DEBORAH: ["DEBRA", "DEBBIE", "DEB"],
196
+ DEBORAH: ["DEBBIE", "DEB"],
131
197
  DEIRDRE: ["DEE", "DIDI"],
132
198
  DOROTHY: ["DOT", "DOTTIE"],
199
+ DOUGLAS: ["DOUG"],
133
200
  EDWARD: ["ED", "EDDIE", "TED", "TEDDY", "NED"],
134
201
  EILEEN: ["EILISH", "EILIS", "AILEEN"],
135
- ELIZABETH: ["LIZ", "LIZZIE", "BETH", "BETSY", "BETTY", "ELIZA", "LIBBY", "ELSIE", "ELISE"],
202
+ ELEANOR: ["ELLIE"],
203
+ ELIJAH: ["ELI"],
204
+ ELIZABETH: [
205
+ "LIZ",
206
+ "LIZZIE",
207
+ "BETH",
208
+ "BETSY",
209
+ "BETTY",
210
+ "ELIZA",
211
+ "LIBBY",
212
+ "ELSIE",
213
+ "ELISE",
214
+ "ELLIE"
215
+ ],
216
+ ELLEN: ["ELLIE"],
136
217
  EOIN: ["OWEN", "EOGHAN"],
137
- FIONNUALA: ["FIONNULA", "FINOLA", "NUALA"],
218
+ EVA: ["EVIE"],
219
+ EVANGELINE: ["EVIE"],
220
+ EVE: ["EVIE"],
221
+ EVELYN: ["EVIE"],
222
+ FIONNUALA: ["FINOLA", "NUALA"],
223
+ FLORENCE: ["FLO"],
224
+ FRANCES: ["FRANCIE"],
225
+ FRANCESCA: ["FRANKIE"],
138
226
  FRANCIS: ["FRANK", "FRANKIE", "FRAN", "FRANCES"],
227
+ GABRIEL: ["GABE"],
228
+ GABRIELLE: ["GABBY", "GABY"],
229
+ GENEVIEVE: ["EVIE"],
230
+ GEOFFREY: ["GEOFF"],
139
231
  GILLIAN: ["GILL"],
140
- GRAINNE: ["GRANIA", "GRACE", "GRAINE"],
232
+ GRACE: ["GRACIE"],
233
+ GRAINNE: ["GRANIA", "GRACE"],
234
+ GREGORY: ["GREG"],
235
+ GWENDOLYN: ["GWEN"],
236
+ ISABEL: ["IZZY", "ISSY"],
237
+ JACOB: ["JAKE"],
141
238
  JACQUELINE: ["JACKIE"],
142
239
  JAMES: ["JIM", "JIMMY", "JAMIE", "SEAMUS", "JAY"],
143
- JENNIFER: ["JEN", "JENNY", "JENNIE", "JENN"],
240
+ JEFFREY: ["JEFF"],
241
+ JENNIFER: ["JEN", "JENNY"],
242
+ JESSICA: ["JESSIE", "JESS"],
243
+ JILLIAN: ["JILL"],
144
244
  JOHN: ["JACK", "JOHNNY", "SEAN", "SHANE", "JOHNNIE", "EOIN"],
145
245
  JOSEPH: ["JOE", "JOEY", "JOSEPHINE", "JO"],
246
+ JOSEPHINE: ["JOSIE"],
247
+ JOSHUA: ["JOSH"],
146
248
  JUDITH: ["JUDY"],
147
- KIMBERLY: ["KIMBERLEY", "KIM"],
249
+ KIMBERLY: ["KIM"],
250
+ LILLIAN: ["LILY"],
251
+ MADELINE: ["MADDIE", "MADDY"],
252
+ MADISON: ["MADDIE"],
148
253
  MARGARET: [
149
254
  "MAGGIE",
150
255
  "PEGGY",
@@ -159,61 +264,91 @@ var given_diminutives_default = {
159
264
  ],
160
265
  MARY: ["MAIRE", "MOLLY", "MAY", "POLLY", "MAIREAD", "MARIE", "MARIA", "MOIRA", "MAUREEN"],
161
266
  MATTHEW: ["MATT", "MATTIE"],
162
- MICHAEL: ["MIKE", "MICK", "MICKEY", "MICHEAL", "MICHELLE", "MICHAELA"],
163
- NICHOLAS: ["NICK", "NICKY", "NICOLE", "NICOLA", "NIKKI"],
267
+ MAXIMILIAN: ["MAX"],
268
+ MICHAEL: ["MIKE", "MICK", "MICKEY", "MICHEAL", "MICHELLE", "MICHAELA", "MIKEY"],
269
+ MITCHELL: ["MITCH"],
270
+ NATHAN: ["NATE"],
271
+ NATHANIEL: ["NATE"],
164
272
  NIAMH: ["NEVE", "NEEVE"],
273
+ NICHOLAS: ["NICK", "NICKY", "NICOLE", "NICOLA", "NIKKI"],
165
274
  PAMELA: ["PAM"],
166
275
  PATRICK: ["PAT", "PADDY", "PADRAIG", "PATSY", "PATRICIA", "TRICIA", "TRISH", "PATTY"],
276
+ PENELOPE: ["PENNY"],
167
277
  PETER: ["PETE", "PEADAR"],
168
278
  PHILIPPA: ["PIPPA"],
169
279
  RAYMOND: ["RAY"],
170
280
  REBECCA: ["BECKY", "BECCA", "BEX"],
171
281
  RICHARD: ["RICK", "RICKY", "DICK", "RICH", "RICHIE"],
172
282
  ROBERT: ["ROB", "BOB", "BOBBY", "ROBBIE", "ROBERTA"],
283
+ SAMANTHA: ["SAM", "SAMMY", "SAMMIE"],
284
+ SAMUEL: ["SAM", "SAMMY", "SAMMIE"],
173
285
  SAOIRSE: ["SEERSHA"],
174
- SIOBHAN: ["SHIVAUN", "CHEVONNE", "SIOBHAIN"],
175
- STEPHEN: ["STEVEN", "STEVE", "STEPHANIE", "STEPH"],
286
+ SIOBHAN: ["SHIVAUN", "CHEVONNE"],
287
+ SOPHIA: ["SOPHIE"],
288
+ STEPHEN: ["STEVE", "STEPHANIE", "STEPH"],
176
289
  SUSAN: ["SUE", "SUSIE", "SUZANNE", "SUZY"],
177
- TERESA: ["THERESA", "TESS"],
290
+ TABITHA: ["TABBY"],
291
+ TERENCE: ["TERRY"],
292
+ TERESA: ["TESS"],
178
293
  THOMAS: ["TOM", "TOMMY", "TOMAS", "THOM"],
179
- VICTORIA: ["VICKY", "VICKI"],
294
+ TIMOTHY: ["TIM", "TIMMY"],
295
+ VICTORIA: ["VICKY"],
180
296
  VINCENT: ["VINNIE"],
181
- WILLIAM: ["WILL", "BILL", "BILLY", "WILLIE", "LIAM"]
297
+ WILLIAM: ["WILL", "BILL", "BILLY", "WILLIE", "LIAM"],
298
+ ZACHARY: ["ZACH"]
182
299
  },
183
300
  notAtGate: [
301
+ "ABBEY",
184
302
  "ABBIE",
185
303
  "ABBY",
304
+ "ADDIE",
186
305
  "ALEXA",
187
306
  "ALEXANDRA",
307
+ "ALLIE",
308
+ "ALLY",
188
309
  "ANNA",
189
310
  "ANYA",
311
+ "CAITLIN",
190
312
  "CAITRIONA",
191
- "CATHLEEN",
313
+ "CHARLIE",
192
314
  "DANI",
193
315
  "DANIELLE",
194
316
  "DEE",
195
317
  "EILIS",
196
318
  "EILISH",
319
+ "ELI",
197
320
  "ELISE",
321
+ "ELLIE",
198
322
  "ELSIE",
199
323
  "EOGHAN",
200
324
  "EOIN",
325
+ "EVIE",
201
326
  "FRANCES",
327
+ "FRANKIE",
202
328
  "GRACE",
329
+ "GRACIE",
330
+ "GWEN",
203
331
  "JACK",
204
332
  "JAY",
333
+ "JESSIE",
334
+ "JILL",
205
335
  "JO",
206
336
  "JOSEPHINE",
337
+ "JOSIE",
207
338
  "KATHLEEN",
208
339
  "KIM",
340
+ "KIT",
209
341
  "LEXI",
210
342
  "LEXIE",
211
343
  "LIAM",
344
+ "LILY",
345
+ "MADDIE",
212
346
  "MAIRE",
213
347
  "MAIREAD",
214
348
  "MARIA",
215
349
  "MARIE",
216
350
  "MAUREEN",
351
+ "MAX",
217
352
  "MAY",
218
353
  "MEGAN",
219
354
  "MICHAELA",
@@ -222,6 +357,7 @@ var given_diminutives_default = {
222
357
  "MOIRA",
223
358
  "MOLLY",
224
359
  "NANCY",
360
+ "NATE",
225
361
  "NICOLA",
226
362
  "NICOLE",
227
363
  "NIKKI",
@@ -232,15 +368,21 @@ var given_diminutives_default = {
232
368
  "PATSY",
233
369
  "PATTY",
234
370
  "PEADAR",
371
+ "PENNY",
235
372
  "POLLY",
236
373
  "ROBERTA",
374
+ "SAM",
375
+ "SAMMIE",
376
+ "SAMMY",
237
377
  "SANDY",
238
378
  "SEAMUS",
239
379
  "SEAN",
240
380
  "SHANE",
381
+ "SOPHIE",
241
382
  "STEPH",
242
383
  "STEPHANIE",
243
384
  "SUZANNE",
385
+ "TERRY",
244
386
  "TESS",
245
387
  "TOMAS",
246
388
  "TRICIA",
@@ -250,27 +392,55 @@ var given_diminutives_default = {
250
392
 
251
393
  // src/normalize/given-diminutives.ts
252
394
  var TABLE = given_diminutives_default;
253
- var ROOT = (() => {
395
+ var CANONICAL = (() => {
396
+ const out = new Map;
397
+ for (const [canonical, spellings] of Object.entries(TABLE.variants))
398
+ for (const s of spellings)
399
+ out.set(s, canonical);
400
+ return out;
401
+ })();
402
+ var ROOTS = (() => {
254
403
  const out = new Map;
404
+ const add = (form, root) => {
405
+ let roots = out.get(form);
406
+ if (roots === undefined)
407
+ out.set(form, roots = new Set);
408
+ roots.add(root);
409
+ };
255
410
  for (const [root, forms] of Object.entries(TABLE.families)) {
256
- out.set(root, root);
411
+ add(root, root);
257
412
  for (const f of forms)
258
- if (!out.has(f))
259
- out.set(f, root);
413
+ add(f, root);
260
414
  }
261
415
  return out;
262
416
  })();
263
417
  var NOT_AT_GATE = new Set(TABLE.notAtGate);
418
+ var canonical = (name) => CANONICAL.get(name) ?? name;
419
+ var gateThrough = (name, root) => name === root || !NOT_AT_GATE.has(name);
264
420
  function sameGivenFamily2(a, b) {
265
- return givenFamilyTable2(a, b) === "given-family";
421
+ const via = givenFamilyTable2(a, b);
422
+ return via === "given-variant" || via === "given-family";
266
423
  }
267
424
  function givenFamilyTable2(a, b) {
268
425
  if (a === b)
269
426
  return null;
270
- const ra = ROOT.get(a);
271
- if (ra === undefined || ra !== ROOT.get(b))
427
+ const ca = canonical(a);
428
+ const cb = canonical(b);
429
+ if (ca === cb)
430
+ return "given-variant";
431
+ const ra = ROOTS.get(ca);
432
+ const rb = ROOTS.get(cb);
433
+ if (ra === undefined || rb === undefined)
272
434
  return null;
273
- return NOT_AT_GATE.has(a) || NOT_AT_GATE.has(b) ? "given-family-not-gate" : "given-family";
435
+ let shared = false;
436
+ for (const root of ra) {
437
+ if (!rb.has(root))
438
+ continue;
439
+ if (gateThrough(ca, root) && gateThrough(cb, root))
440
+ return "given-family";
441
+ shared = true;
442
+ }
443
+ return shared ? "given-family-not-gate" : null;
274
444
  }
275
445
  // src/normalize/multiset.ts
276
446
  function subMultiset(outer, inner) {
@@ -699,6 +869,7 @@ function foldUnder(prints, surname) {
699
869
  // src/normalize/name-kinship.ts
700
870
  var KINSHIP_VIAS2 = Object.freeze({
701
871
  "surname-part": Object.freeze({ field: "surname", gateSafe: true }),
872
+ "given-variant": Object.freeze({ field: "given", gateSafe: true }),
702
873
  "given-family": Object.freeze({ field: "given", gateSafe: true }),
703
874
  "given-family-not-gate": Object.freeze({ field: "given", gateSafe: false }),
704
875
  "given-maybe": Object.freeze({ field: "given", gateSafe: false }),
@@ -1599,5 +1770,5 @@ function deriveNameFormat2(prints, options = {}) {
1599
1770
  }
1600
1771
  export { repairMojibake2, sameGivenFamily2, givenFamilyTable2, comparePosition2, nameRelation2, MAX_READINGS2, surnameParts2, printAttestsOrder2, nameReadings2, meetReading2, refinesReading2, sameReading2, chooseReadingPair2, composeReadings2, composeNames2, meetReadings2, nameMeet2, showReading2, blockKeysOfReadings2, nameBlockKeys2, namesFeasible2, KINSHIP_VIAS2, createNameKinship2, nameKinship2, nameCompare2, probablySame2, createNameSet2, createNameMap2, createNameIndex2, createNameClusters2, INFEASIBLE_CLASSES2, editDistance2, nearSpelling2, compoundGiven2, middleForm2, infeasibleClass2, isListJoiner2, personList2, surnameBlock2, initialsBlock2, metaphoneBlocks2, NAME_LEVEL_COLUMNS2, NAME_COLUMNS2, nameColumns2, NAME_FORMATS2, nameFormatOrder2, ORDER_READINGS2, readNameCell2, DEFAULT_NAME_FORMAT_THRESHOLD2, deriveNameFormat2 };
1601
1772
 
1602
- //# debugId=4B07A74825028F7364756E2164756E21
1603
- //# sourceMappingURL=index-wq6kn9jq.js.map
1773
+ //# debugId=37DF635DD383940A64756E2164756E21
1774
+ //# sourceMappingURL=index-kw69ry3j.js.map