@mailwoman/corpus 8.2.0 → 8.3.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/out/src/shard-recipes/house-venue.d.ts.map +1 -1
- package/out/src/shard-recipes/house-venue.js +3 -1
- package/out/src/shard-recipes/house-venue.js.map +1 -1
- package/out/src/synthesize-house-venue.d.ts.map +1 -1
- package/out/src/synthesize-house-venue.js +19 -3
- package/out/src/synthesize-house-venue.js.map +1 -1
- package/package.json +5 -5
- package/src/shard-recipes/house-venue.ts +3 -1
- package/src/synthesize-house-venue.ts +21 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"house-venue.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAqD,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAInG;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"house-venue.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAqD,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAInG;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAiE9B,CAAA"}
|
|
@@ -31,7 +31,9 @@ export const houseVenueRecipe = {
|
|
|
31
31
|
let skipped = 0;
|
|
32
32
|
for await (const tuple of readTuples(opts.input)) {
|
|
33
33
|
read++;
|
|
34
|
-
|
|
34
|
+
// FR renders without a region (postcode-before-locality tail — the run-2 contingency), so
|
|
35
|
+
// an empty region is valid there and stays required everywhere else.
|
|
36
|
+
if (!tuple.locality || !tuple.postcode || !tuple.country || (!tuple.region && tuple.country !== "FR")) {
|
|
35
37
|
skipped++;
|
|
36
38
|
continue;
|
|
37
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"house-venue.js","sourceRoot":"","sources":["../../../src/shard-recipes/house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,uBAAuB,EAA4B,MAAM,8BAA8B,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAA;AAEnG,MAAM,OAAO,GAAG,6DAA6D,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC5C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8FAA8F;IAC3G,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtF,0FAA0F;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAA;QACrD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,EAAE,CAAA;YAEN,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"house-venue.js","sourceRoot":"","sources":["../../../src/shard-recipes/house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,uBAAuB,EAA4B,MAAM,8BAA8B,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAA;AAEnG,MAAM,OAAO,GAAG,6DAA6D,CAAA;AAE7E;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC5C,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8FAA8F;IAC3G,IAAI,EAAE,QAAQ;IACd,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtF,0FAA0F;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAA;QACrD,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,IAAI,OAAO,GAAG,CAAC,CAAA;QAEf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,EAAE,CAAA;YAEN,0FAA0F;YAC1F,qEAAqE;YACrE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;gBACvG,OAAO,EAAE,CAAA;gBAET,SAAQ;YACT,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAA4B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;gBAE/E,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,OAAO,EAAE,CAAA;oBAET,SAAQ;gBACT,CAAC;gBAED,MAAM,EAAE,GAAG,aAAa,CACvB,KAAK,EACL;oBACC,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM;oBACN,SAAS,EAAE,aAAa,CAAC,MAAM,EAAE;wBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;qBACZ,CAAC;oBACF,cAAc,EAAE,OAAO;oBACvB,OAAO,EAAE,OAAO;iBAChB,EACD,KAAK,CAAC,QAAQ,CACd,CAAA;gBAED,IAAI,EAAE,EAAE,CAAC;oBACR,OAAO,EAAE,CAAA;gBACV,CAAC;qBAAM,CAAC;oBACP,OAAO,EAAE,CAAA;gBACV,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;IAClC,CAAC;CACD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize-house-venue.d.ts","sourceRoot":"","sources":["../../src/synthesize-house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,kBAAkB,GAC3B,oBAAoB,GACpB,qBAAqB,CAAA;AAIxB,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,kBAAkB,CAAA;CAC5B;
|
|
1
|
+
{"version":3,"file":"synthesize-house-venue.d.ts","sourceRoot":"","sources":["../../src/synthesize-house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,mBAAmB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,kBAAkB,GAC3B,oBAAoB,GACpB,qBAAqB,CAAA;AAIxB,MAAM,WAAW,uBAAuB;IACvC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAA;CAClC;AAED,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,kBAAkB,CAAA;CAC5B;AA4GD,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,mBAAmB,EACzB,IAAI,GAAE,uBAA4B,GAChC,wBAAwB,GAAG,IAAI,CAqCjC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,OAAO,CAEtF"}
|
|
@@ -40,6 +40,17 @@ const PLAIN_VENUES = [
|
|
|
40
40
|
"Maple Leaf Cafe",
|
|
41
41
|
"Riverside Garden Center",
|
|
42
42
|
"Tech Solutions Inc",
|
|
43
|
+
// FR-flavored venue names (the run-2 contingency): the failing gauntlet fixtures carry
|
|
44
|
+
// international/English names at FR addresses, but native forms must appear too — the register
|
|
45
|
+
// mixes both in real Paris data.
|
|
46
|
+
"Café de la Poste",
|
|
47
|
+
"Boulangerie Saint-Michel",
|
|
48
|
+
"Le Petit Bistrot",
|
|
49
|
+
"Brasserie du Marché",
|
|
50
|
+
"Chez Marcel",
|
|
51
|
+
"La Belle Époque",
|
|
52
|
+
"Restaurant du Port",
|
|
53
|
+
"Pharmacie Centrale",
|
|
43
54
|
"Pacific Industries",
|
|
44
55
|
"Atlantic Holdings",
|
|
45
56
|
"Stellar Consulting",
|
|
@@ -116,21 +127,26 @@ export function synthesizeHouseVenueRow(base, opts = {}) {
|
|
|
116
127
|
const venue = pick(PLAIN_VENUES, random);
|
|
117
128
|
const street = base.street ?? pick(FALLBACK_STREETS, random);
|
|
118
129
|
const houseNumber = base.houseNumber ?? randomHouseNumber(random);
|
|
130
|
+
// FR renders postcode-before-locality with NO region ("MR & MRS CRAB, 20 Rue de la Huchette,
|
|
131
|
+
// 75005 Paris" — the v4.0.0 gauntlet's venue-led failure family, the run-2 contingency's exact
|
|
132
|
+
// target shape). Every other country keeps the original US-order tail.
|
|
133
|
+
const frOrder = base.country === "FR";
|
|
119
134
|
const components = {
|
|
120
135
|
house_number: houseNumber,
|
|
121
136
|
street,
|
|
122
137
|
venue,
|
|
123
138
|
locality: base.locality,
|
|
124
|
-
region: base.region,
|
|
139
|
+
...(frOrder ? {} : { region: base.region }),
|
|
125
140
|
postcode: base.postcode,
|
|
126
141
|
};
|
|
142
|
+
const tail = frOrder ? `${base.postcode} ${base.locality}` : `${base.locality}, ${base.region} ${base.postcode}`;
|
|
127
143
|
let raw;
|
|
128
144
|
switch (template) {
|
|
129
145
|
case "venue-after-street":
|
|
130
|
-
raw = `${houseNumber} ${street}, ${venue}, ${
|
|
146
|
+
raw = `${houseNumber} ${street}, ${venue}, ${tail}`;
|
|
131
147
|
break;
|
|
132
148
|
case "venue-before-street":
|
|
133
|
-
raw = `${venue}, ${houseNumber} ${street}, ${
|
|
149
|
+
raw = `${venue}, ${houseNumber} ${street}, ${tail}`;
|
|
134
150
|
break;
|
|
135
151
|
}
|
|
136
152
|
return { raw, components, locale, template };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize-house-venue.js","sourceRoot":"","sources":["../../src/synthesize-house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA+BH,oBAAoB;AAEpB;;;GAGG;AACH,MAAM,YAAY,GAA0B;IAC3C,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,iBAAiB;IACjB,eAAe;IACf,sBAAsB;IACtB,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,sBAAsB;IACtB,iBAAiB;CACjB,CAAA;AAED,YAAY;AAEZ,8BAA8B;AAE9B;;GAEG;AACH,MAAM,gBAAgB,GAA0B;IAC/C,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,aAAa;CACb,CAAA;AAED,YAAY;AAEZ,gCAAgC;AAEhC,SAAS,iBAAiB,CAAC,MAAoB;IAC9C,oFAAoF;IACpF,mFAAmF;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAExC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,IAAI,CAAI,GAAqB,EAAE,MAAoB;IAC3D,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAE,CAAA;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf;YACC,OAAO,OAAO,CAAA;IAChB,CAAC;AACF,CAAC;AAED,YAAY;AAEZ,mBAAmB;AAEnB,MAAM,UAAU,uBAAuB,CACtC,IAAyB,EACzB,OAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IACzC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;IAEtG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAEjE,MAAM,UAAU,GAA+B;QAC9C,YAAY,EAAE,WAAW;QACzB,MAAM;QACN,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;
|
|
1
|
+
{"version":3,"file":"synthesize-house-venue.js","sourceRoot":"","sources":["../../src/synthesize-house-venue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA+BH,oBAAoB;AAEpB;;;GAGG;AACH,MAAM,YAAY,GAA0B;IAC3C,aAAa;IACb,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,oBAAoB;IACpB,uFAAuF;IACvF,+FAA+F;IAC/F,iCAAiC;IACjC,kBAAkB;IAClB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,aAAa;IACb,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,qBAAqB;IACrB,sBAAsB;IACtB,iBAAiB;IACjB,eAAe;IACf,sBAAsB;IACtB,oBAAoB;IACpB,yBAAyB;IACzB,4BAA4B;IAC5B,sBAAsB;IACtB,iBAAiB;CACjB,CAAA;AAED,YAAY;AAEZ,8BAA8B;AAE9B;;GAEG;AACH,MAAM,gBAAgB,GAA0B;IAC/C,SAAS;IACT,SAAS;IACT,SAAS;IACT,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,UAAU;IACV,WAAW;IACX,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;IACV,aAAa;CACb,CAAA;AAED,YAAY;AAEZ,gCAAgC;AAEhC,SAAS,iBAAiB,CAAC,MAAoB;IAC9C,oFAAoF;IACpF,mFAAmF;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAExC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED,SAAS,IAAI,CAAI,GAAqB,EAAE,MAAoB;IAC3D,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAE,CAAA;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACvC,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf,KAAK,IAAI;YACR,OAAO,OAAO,CAAA;QACf;YACC,OAAO,OAAO,CAAA;IAChB,CAAC;AACF,CAAC;AAED,YAAY;AAEZ,mBAAmB;AAEnB,MAAM,UAAU,uBAAuB,CACtC,IAAyB,EACzB,OAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAA;IACzC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAA;IAEtG,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAEjE,6FAA6F;IAC7F,+FAA+F;IAC/F,uEAAuE;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAA;IAErC,MAAM,UAAU,GAA+B;QAC9C,YAAY,EAAE,WAAW;QACzB,MAAM;QACN,KAAK;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACvB,CAAA;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;IAEhH,IAAI,GAAW,CAAA;IAEf,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,oBAAoB;YACxB,GAAG,GAAG,GAAG,WAAW,IAAI,MAAM,KAAK,KAAK,KAAK,IAAI,EAAE,CAAA;YACnD,MAAK;QACN,KAAK,qBAAqB;YACzB,GAAG,GAAG,GAAG,KAAK,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,EAAE,CAAA;YACnD,MAAK;IACP,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAsC;IAC5E,OAAO,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,CAAA;AAC/E,CAAC;AAED,YAAY"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailwoman/corpus",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"description": "Mailwoman corpus pipeline: BIO-labeled dataset builder for the neural classifier.",
|
|
5
5
|
"license": "AGPL-3.0-only OR LicenseRef-Commercial",
|
|
6
6
|
"repository": {
|
|
@@ -91,10 +91,10 @@
|
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
93
|
"@dsnp/parquetjs": "1.8.9",
|
|
94
|
-
"@mailwoman/ban": "8.
|
|
95
|
-
"@mailwoman/codex": "8.
|
|
96
|
-
"@mailwoman/core": "8.
|
|
97
|
-
"@mailwoman/formatter": "8.
|
|
94
|
+
"@mailwoman/ban": "8.3.0",
|
|
95
|
+
"@mailwoman/codex": "8.3.0",
|
|
96
|
+
"@mailwoman/core": "8.3.0",
|
|
97
|
+
"@mailwoman/formatter": "8.3.0",
|
|
98
98
|
"csv-parse": "^7.0.1",
|
|
99
99
|
"fast-glob": "^3.3.3",
|
|
100
100
|
"fastest-levenshtein": "^1.0.16",
|
|
@@ -35,7 +35,9 @@ export const houseVenueRecipe: ShardRecipe = {
|
|
|
35
35
|
for await (const tuple of readTuples(opts.input)) {
|
|
36
36
|
read++
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
// FR renders without a region (postcode-before-locality tail — the run-2 contingency), so
|
|
39
|
+
// an empty region is valid there and stays required everywhere else.
|
|
40
|
+
if (!tuple.locality || !tuple.postcode || !tuple.country || (!tuple.region && tuple.country !== "FR")) {
|
|
39
41
|
skipped++
|
|
40
42
|
|
|
41
43
|
continue
|
|
@@ -71,6 +71,17 @@ const PLAIN_VENUES: ReadonlyArray<string> = [
|
|
|
71
71
|
"Maple Leaf Cafe",
|
|
72
72
|
"Riverside Garden Center",
|
|
73
73
|
"Tech Solutions Inc",
|
|
74
|
+
// FR-flavored venue names (the run-2 contingency): the failing gauntlet fixtures carry
|
|
75
|
+
// international/English names at FR addresses, but native forms must appear too — the register
|
|
76
|
+
// mixes both in real Paris data.
|
|
77
|
+
"Café de la Poste",
|
|
78
|
+
"Boulangerie Saint-Michel",
|
|
79
|
+
"Le Petit Bistrot",
|
|
80
|
+
"Brasserie du Marché",
|
|
81
|
+
"Chez Marcel",
|
|
82
|
+
"La Belle Époque",
|
|
83
|
+
"Restaurant du Port",
|
|
84
|
+
"Pharmacie Centrale",
|
|
74
85
|
"Pacific Industries",
|
|
75
86
|
"Atlantic Holdings",
|
|
76
87
|
"Stellar Consulting",
|
|
@@ -164,23 +175,30 @@ export function synthesizeHouseVenueRow(
|
|
|
164
175
|
const street = base.street ?? pick(FALLBACK_STREETS, random)
|
|
165
176
|
const houseNumber = base.houseNumber ?? randomHouseNumber(random)
|
|
166
177
|
|
|
178
|
+
// FR renders postcode-before-locality with NO region ("MR & MRS CRAB, 20 Rue de la Huchette,
|
|
179
|
+
// 75005 Paris" — the v4.0.0 gauntlet's venue-led failure family, the run-2 contingency's exact
|
|
180
|
+
// target shape). Every other country keeps the original US-order tail.
|
|
181
|
+
const frOrder = base.country === "FR"
|
|
182
|
+
|
|
167
183
|
const components: CanonicalRow["components"] = {
|
|
168
184
|
house_number: houseNumber,
|
|
169
185
|
street,
|
|
170
186
|
venue,
|
|
171
187
|
locality: base.locality,
|
|
172
|
-
region: base.region,
|
|
188
|
+
...(frOrder ? {} : { region: base.region }),
|
|
173
189
|
postcode: base.postcode,
|
|
174
190
|
}
|
|
175
191
|
|
|
192
|
+
const tail = frOrder ? `${base.postcode} ${base.locality}` : `${base.locality}, ${base.region} ${base.postcode}`
|
|
193
|
+
|
|
176
194
|
let raw: string
|
|
177
195
|
|
|
178
196
|
switch (template) {
|
|
179
197
|
case "venue-after-street":
|
|
180
|
-
raw = `${houseNumber} ${street}, ${venue}, ${
|
|
198
|
+
raw = `${houseNumber} ${street}, ${venue}, ${tail}`
|
|
181
199
|
break
|
|
182
200
|
case "venue-before-street":
|
|
183
|
-
raw = `${venue}, ${houseNumber} ${street}, ${
|
|
201
|
+
raw = `${venue}, ${houseNumber} ${street}, ${tail}`
|
|
184
202
|
break
|
|
185
203
|
}
|
|
186
204
|
|