@mailwoman/api 9.0.0 → 9.2.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/schema.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * libpostal), nothing here is a vendor contract — this surface is ours to design, so request
8
8
  * bodies are REQUIRED and validator-enforced (no legacy tolerance to preserve). A `defaultHook`
9
9
  * on the app maps validation failures through the shared `APIErrorSchema` envelope
10
- * (`apiError(c, 400, "invalid request body", <zod summary>)`) — the pattern boundary every
10
+ * (`errorResponse(c, 400, "invalid request body", <zod summary>)`) — the pattern boundary every
11
11
  * surface holds to: where no legacy contract exists, the validator MAY speak, but only in
12
12
  * our envelope.
13
13
  *
@@ -97,16 +97,210 @@ export declare const GeocodeRequestSchema: z.ZodObject<{
97
97
  * `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time tripwire that
98
98
  * catches this shape drifting from the real `GeocodeResult` interface.
99
99
  */
100
- export declare const GeocodeOutcomeSchema: z.ZodObject<{
100
+ export declare const GeocodeOutcomeLikeSchema: z.ZodObject<{
101
101
  input: z.ZodString;
102
+ components: z.ZodRecord<z.ZodEnum<{
103
+ country: "country";
104
+ region: "region";
105
+ locality: "locality";
106
+ dependent_locality: "dependent_locality";
107
+ postcode: "postcode";
108
+ subregion: "subregion";
109
+ house_number: "house_number";
110
+ street: "street";
111
+ street_prefix: "street_prefix";
112
+ street_prefix_particle: "street_prefix_particle";
113
+ street_suffix: "street_suffix";
114
+ intersection_a: "intersection_a";
115
+ intersection_b: "intersection_b";
116
+ unit: "unit";
117
+ venue: "venue";
118
+ attention: "attention";
119
+ po_box: "po_box";
120
+ cedex: "cedex";
121
+ prefecture: "prefecture";
122
+ municipality: "municipality";
123
+ district: "district";
124
+ block: "block";
125
+ sub_block: "sub_block";
126
+ building_number: "building_number";
127
+ building_name: "building_name";
128
+ }> & z.core.$partial, z.ZodString>;
102
129
  lat: z.ZodNullable<z.ZodNumber>;
103
130
  lon: z.ZodNullable<z.ZodNumber>;
104
131
  resolution_tier: z.ZodEnum<{
132
+ street: "street";
133
+ venue: "venue";
105
134
  address_point: "address_point";
106
135
  interpolated: "interpolated";
136
+ admin: "admin";
137
+ plus_code: "plus_code";
138
+ }>;
139
+ entity: z.ZodOptional<z.ZodObject<{
140
+ name: z.ZodString;
141
+ categoryID: z.ZodNullable<z.ZodString>;
142
+ confidence: z.ZodNumber;
143
+ country: z.ZodString;
144
+ }, z.core.$strip>>;
145
+ uncertainty_m: z.ZodNullable<z.ZodNumber>;
146
+ locality: z.ZodNullable<z.ZodString>;
147
+ region: z.ZodNullable<z.ZodString>;
148
+ postcode: z.ZodNullable<z.ZodString>;
149
+ house_number: z.ZodNullable<z.ZodString>;
150
+ street: z.ZodNullable<z.ZodString>;
151
+ venue: z.ZodNullable<z.ZodString>;
152
+ dependent_locality: z.ZodNullable<z.ZodString>;
153
+ unit: z.ZodNullable<z.ZodString>;
154
+ countryCode: z.ZodNullable<z.ZodString>;
155
+ hierarchy: z.ZodArray<z.ZodObject<{
156
+ tag: z.ZodString;
157
+ value: z.ZodString;
158
+ name: z.ZodString;
159
+ lat: z.ZodOptional<z.ZodNumber>;
160
+ lon: z.ZodOptional<z.ZodNumber>;
161
+ placeID: z.ZodOptional<z.ZodString>;
162
+ in_winner_lineage: z.ZodOptional<z.ZodBoolean>;
163
+ }, z.core.$strip>>;
164
+ candidates: z.ZodArray<z.ZodObject<{
165
+ name: z.ZodString;
166
+ tag: z.ZodString;
167
+ lat: z.ZodNumber;
168
+ lon: z.ZodNumber;
169
+ countryCode: z.ZodNullable<z.ZodString>;
170
+ placeID: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strip>>;
172
+ rooftop: z.ZodOptional<z.ZodObject<{
173
+ localityNorm: z.ZodOptional<z.ZodString>;
174
+ postcode: z.ZodOptional<z.ZodString>;
175
+ }, z.core.$strip>>;
176
+ postcode_country_scope: z.ZodNullable<z.ZodString>;
177
+ intent_markers: z.ZodArray<z.ZodObject<{
178
+ kind: z.ZodEnum<{
179
+ intersection: "intersection";
180
+ po_box: "po_box";
181
+ postcode_only: "postcode_only";
182
+ locality_only: "locality_only";
183
+ structured_address: "structured_address";
184
+ landmark: "landmark";
185
+ poi_query: "poi_query";
186
+ vague: "vague";
187
+ bare_toponym: "bare_toponym";
188
+ route_pair: "route_pair";
189
+ near_me: "near_me";
190
+ poi_category: "poi_category";
191
+ }>;
192
+ code: z.ZodEnum<{
193
+ poi_category: "poi_category";
194
+ declared_ambiguity: "declared_ambiguity";
195
+ declared_fork: "declared_fork";
196
+ focus_point_required: "focus_point_required";
197
+ }>;
198
+ mechanism: z.ZodString;
199
+ message: z.ZodString;
200
+ evidence: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
201
+ }, z.core.$strip>>;
202
+ admin_coherence: z.ZodOptional<z.ZodObject<{
203
+ region: z.ZodEnum<{
204
+ confirmed: "confirmed";
205
+ contradicted: "contradicted";
206
+ unstated: "unstated";
207
+ unverifiable: "unverifiable";
208
+ }>;
209
+ country: z.ZodEnum<{
210
+ confirmed: "confirmed";
211
+ contradicted: "contradicted";
212
+ unstated: "unstated";
213
+ unverifiable: "unverifiable";
214
+ }>;
215
+ }, z.core.$strip>>;
216
+ dropped_components: z.ZodOptional<z.ZodArray<z.ZodObject<{
217
+ tag: z.ZodEnum<{
218
+ country: "country";
219
+ region: "region";
220
+ locality: "locality";
221
+ dependent_locality: "dependent_locality";
222
+ postcode: "postcode";
223
+ subregion: "subregion";
224
+ house_number: "house_number";
225
+ street: "street";
226
+ street_prefix: "street_prefix";
227
+ street_prefix_particle: "street_prefix_particle";
228
+ street_suffix: "street_suffix";
229
+ intersection_a: "intersection_a";
230
+ intersection_b: "intersection_b";
231
+ unit: "unit";
232
+ venue: "venue";
233
+ attention: "attention";
234
+ po_box: "po_box";
235
+ cedex: "cedex";
236
+ prefecture: "prefecture";
237
+ municipality: "municipality";
238
+ district: "district";
239
+ block: "block";
240
+ sub_block: "sub_block";
241
+ building_number: "building_number";
242
+ building_name: "building_name";
243
+ }>;
244
+ value: z.ZodString;
245
+ kept: z.ZodString;
246
+ }, z.core.$strip>>>;
247
+ }, z.core.$strip>;
248
+ export type GeocodeOutcomeLike = z.infer<typeof GeocodeOutcomeLikeSchema>;
249
+ /**
250
+ * `POST /v1/geocode` response — a hand-modeled mirror of `GeocodeResult`'s wire shape (`mailwoman/geocode-core.ts`),
251
+ * `.loose()` so a field the engine adds that this schema doesn't yet know about still rides through undocumented rather
252
+ * than being stripped or rejected. DOC-ACCURACY ONLY: the route passes `engine.geocode()`'s outcome through verbatim
253
+ * (`GeocodeOutcome = Record<string, unknown>`, `api/engine.ts`) — nothing here validates a real response, so a
254
+ * schema/engine mismatch can never reject or mutate a result at runtime. Deliberately carries NO import from
255
+ * `mailwoman` (the engine-agnosticism boundary — `mailwoman` is the one workspace allowed to depend on
256
+ * `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time tripwire that
257
+ * catches this shape drifting from the real `GeocodeResult` interface.
258
+ */
259
+ export declare const GeocodeOutcomeSchema: z.ZodObject<{
260
+ input: z.ZodString;
261
+ components: z.ZodRecord<z.ZodEnum<{
262
+ country: "country";
263
+ region: "region";
264
+ locality: "locality";
265
+ dependent_locality: "dependent_locality";
266
+ postcode: "postcode";
267
+ subregion: "subregion";
268
+ house_number: "house_number";
269
+ street: "street";
270
+ street_prefix: "street_prefix";
271
+ street_prefix_particle: "street_prefix_particle";
272
+ street_suffix: "street_suffix";
273
+ intersection_a: "intersection_a";
274
+ intersection_b: "intersection_b";
275
+ unit: "unit";
276
+ venue: "venue";
277
+ attention: "attention";
278
+ po_box: "po_box";
279
+ cedex: "cedex";
280
+ prefecture: "prefecture";
281
+ municipality: "municipality";
282
+ district: "district";
283
+ block: "block";
284
+ sub_block: "sub_block";
285
+ building_number: "building_number";
286
+ building_name: "building_name";
287
+ }> & z.core.$partial, z.ZodString>;
288
+ lat: z.ZodNullable<z.ZodNumber>;
289
+ lon: z.ZodNullable<z.ZodNumber>;
290
+ resolution_tier: z.ZodEnum<{
107
291
  street: "street";
292
+ venue: "venue";
293
+ address_point: "address_point";
294
+ interpolated: "interpolated";
108
295
  admin: "admin";
296
+ plus_code: "plus_code";
109
297
  }>;
298
+ entity: z.ZodOptional<z.ZodObject<{
299
+ name: z.ZodString;
300
+ categoryID: z.ZodNullable<z.ZodString>;
301
+ confidence: z.ZodNumber;
302
+ country: z.ZodString;
303
+ }, z.core.$strip>>;
110
304
  uncertainty_m: z.ZodNullable<z.ZodNumber>;
111
305
  locality: z.ZodNullable<z.ZodString>;
112
306
  region: z.ZodNullable<z.ZodString>;
@@ -124,6 +318,7 @@ export declare const GeocodeOutcomeSchema: z.ZodObject<{
124
318
  lat: z.ZodOptional<z.ZodNumber>;
125
319
  lon: z.ZodOptional<z.ZodNumber>;
126
320
  placeID: z.ZodOptional<z.ZodString>;
321
+ in_winner_lineage: z.ZodOptional<z.ZodBoolean>;
127
322
  }, z.core.$strip>>;
128
323
  candidates: z.ZodArray<z.ZodObject<{
129
324
  name: z.ZodString;
@@ -133,8 +328,83 @@ export declare const GeocodeOutcomeSchema: z.ZodObject<{
133
328
  countryCode: z.ZodNullable<z.ZodString>;
134
329
  placeID: z.ZodOptional<z.ZodString>;
135
330
  }, z.core.$strip>>;
331
+ rooftop: z.ZodOptional<z.ZodObject<{
332
+ localityNorm: z.ZodOptional<z.ZodString>;
333
+ postcode: z.ZodOptional<z.ZodString>;
334
+ }, z.core.$strip>>;
136
335
  postcode_country_scope: z.ZodNullable<z.ZodString>;
336
+ intent_markers: z.ZodArray<z.ZodObject<{
337
+ kind: z.ZodEnum<{
338
+ intersection: "intersection";
339
+ po_box: "po_box";
340
+ postcode_only: "postcode_only";
341
+ locality_only: "locality_only";
342
+ structured_address: "structured_address";
343
+ landmark: "landmark";
344
+ poi_query: "poi_query";
345
+ vague: "vague";
346
+ bare_toponym: "bare_toponym";
347
+ route_pair: "route_pair";
348
+ near_me: "near_me";
349
+ poi_category: "poi_category";
350
+ }>;
351
+ code: z.ZodEnum<{
352
+ poi_category: "poi_category";
353
+ declared_ambiguity: "declared_ambiguity";
354
+ declared_fork: "declared_fork";
355
+ focus_point_required: "focus_point_required";
356
+ }>;
357
+ mechanism: z.ZodString;
358
+ message: z.ZodString;
359
+ evidence: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
360
+ }, z.core.$strip>>;
361
+ admin_coherence: z.ZodOptional<z.ZodObject<{
362
+ region: z.ZodEnum<{
363
+ confirmed: "confirmed";
364
+ contradicted: "contradicted";
365
+ unstated: "unstated";
366
+ unverifiable: "unverifiable";
367
+ }>;
368
+ country: z.ZodEnum<{
369
+ confirmed: "confirmed";
370
+ contradicted: "contradicted";
371
+ unstated: "unstated";
372
+ unverifiable: "unverifiable";
373
+ }>;
374
+ }, z.core.$strip>>;
375
+ dropped_components: z.ZodOptional<z.ZodArray<z.ZodObject<{
376
+ tag: z.ZodEnum<{
377
+ country: "country";
378
+ region: "region";
379
+ locality: "locality";
380
+ dependent_locality: "dependent_locality";
381
+ postcode: "postcode";
382
+ subregion: "subregion";
383
+ house_number: "house_number";
384
+ street: "street";
385
+ street_prefix: "street_prefix";
386
+ street_prefix_particle: "street_prefix_particle";
387
+ street_suffix: "street_suffix";
388
+ intersection_a: "intersection_a";
389
+ intersection_b: "intersection_b";
390
+ unit: "unit";
391
+ venue: "venue";
392
+ attention: "attention";
393
+ po_box: "po_box";
394
+ cedex: "cedex";
395
+ prefecture: "prefecture";
396
+ municipality: "municipality";
397
+ district: "district";
398
+ block: "block";
399
+ sub_block: "sub_block";
400
+ building_number: "building_number";
401
+ building_name: "building_name";
402
+ }>;
403
+ value: z.ZodString;
404
+ kept: z.ZodString;
405
+ }, z.core.$strip>>>;
137
406
  }, z.core.$loose>;
407
+ export type GeocodeOutcome = z.infer<typeof GeocodeOutcomeSchema>;
138
408
  /**
139
409
  * `POST /v1/batch` request body.
140
410
  */
@@ -151,14 +421,49 @@ export declare const BatchRequestSchema: z.ZodObject<{
151
421
  export declare const BatchResponseSchema: z.ZodObject<{
152
422
  results: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
153
423
  input: z.ZodString;
424
+ components: z.ZodRecord<z.ZodEnum<{
425
+ country: "country";
426
+ region: "region";
427
+ locality: "locality";
428
+ dependent_locality: "dependent_locality";
429
+ postcode: "postcode";
430
+ subregion: "subregion";
431
+ house_number: "house_number";
432
+ street: "street";
433
+ street_prefix: "street_prefix";
434
+ street_prefix_particle: "street_prefix_particle";
435
+ street_suffix: "street_suffix";
436
+ intersection_a: "intersection_a";
437
+ intersection_b: "intersection_b";
438
+ unit: "unit";
439
+ venue: "venue";
440
+ attention: "attention";
441
+ po_box: "po_box";
442
+ cedex: "cedex";
443
+ prefecture: "prefecture";
444
+ municipality: "municipality";
445
+ district: "district";
446
+ block: "block";
447
+ sub_block: "sub_block";
448
+ building_number: "building_number";
449
+ building_name: "building_name";
450
+ }> & z.core.$partial, z.ZodString>;
154
451
  lat: z.ZodNullable<z.ZodNumber>;
155
452
  lon: z.ZodNullable<z.ZodNumber>;
156
453
  resolution_tier: z.ZodEnum<{
454
+ street: "street";
455
+ venue: "venue";
157
456
  address_point: "address_point";
158
457
  interpolated: "interpolated";
159
- street: "street";
160
458
  admin: "admin";
459
+ plus_code: "plus_code";
161
460
  }>;
461
+ entity: z.ZodOptional<z.ZodObject<{
462
+ name: z.ZodString;
463
+ categoryID: z.ZodNullable<z.ZodString>;
464
+ confidence: z.ZodNumber;
465
+ country: z.ZodString;
466
+ }, z.core.$strip>>;
162
467
  uncertainty_m: z.ZodNullable<z.ZodNumber>;
163
468
  locality: z.ZodNullable<z.ZodString>;
164
469
  region: z.ZodNullable<z.ZodString>;
@@ -176,6 +481,7 @@ export declare const BatchResponseSchema: z.ZodObject<{
176
481
  lat: z.ZodOptional<z.ZodNumber>;
177
482
  lon: z.ZodOptional<z.ZodNumber>;
178
483
  placeID: z.ZodOptional<z.ZodString>;
484
+ in_winner_lineage: z.ZodOptional<z.ZodBoolean>;
179
485
  }, z.core.$strip>>;
180
486
  candidates: z.ZodArray<z.ZodObject<{
181
487
  name: z.ZodString;
@@ -185,7 +491,81 @@ export declare const BatchResponseSchema: z.ZodObject<{
185
491
  countryCode: z.ZodNullable<z.ZodString>;
186
492
  placeID: z.ZodOptional<z.ZodString>;
187
493
  }, z.core.$strip>>;
494
+ rooftop: z.ZodOptional<z.ZodObject<{
495
+ localityNorm: z.ZodOptional<z.ZodString>;
496
+ postcode: z.ZodOptional<z.ZodString>;
497
+ }, z.core.$strip>>;
188
498
  postcode_country_scope: z.ZodNullable<z.ZodString>;
499
+ intent_markers: z.ZodArray<z.ZodObject<{
500
+ kind: z.ZodEnum<{
501
+ intersection: "intersection";
502
+ po_box: "po_box";
503
+ postcode_only: "postcode_only";
504
+ locality_only: "locality_only";
505
+ structured_address: "structured_address";
506
+ landmark: "landmark";
507
+ poi_query: "poi_query";
508
+ vague: "vague";
509
+ bare_toponym: "bare_toponym";
510
+ route_pair: "route_pair";
511
+ near_me: "near_me";
512
+ poi_category: "poi_category";
513
+ }>;
514
+ code: z.ZodEnum<{
515
+ poi_category: "poi_category";
516
+ declared_ambiguity: "declared_ambiguity";
517
+ declared_fork: "declared_fork";
518
+ focus_point_required: "focus_point_required";
519
+ }>;
520
+ mechanism: z.ZodString;
521
+ message: z.ZodString;
522
+ evidence: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
523
+ }, z.core.$strip>>;
524
+ admin_coherence: z.ZodOptional<z.ZodObject<{
525
+ region: z.ZodEnum<{
526
+ confirmed: "confirmed";
527
+ contradicted: "contradicted";
528
+ unstated: "unstated";
529
+ unverifiable: "unverifiable";
530
+ }>;
531
+ country: z.ZodEnum<{
532
+ confirmed: "confirmed";
533
+ contradicted: "contradicted";
534
+ unstated: "unstated";
535
+ unverifiable: "unverifiable";
536
+ }>;
537
+ }, z.core.$strip>>;
538
+ dropped_components: z.ZodOptional<z.ZodArray<z.ZodObject<{
539
+ tag: z.ZodEnum<{
540
+ country: "country";
541
+ region: "region";
542
+ locality: "locality";
543
+ dependent_locality: "dependent_locality";
544
+ postcode: "postcode";
545
+ subregion: "subregion";
546
+ house_number: "house_number";
547
+ street: "street";
548
+ street_prefix: "street_prefix";
549
+ street_prefix_particle: "street_prefix_particle";
550
+ street_suffix: "street_suffix";
551
+ intersection_a: "intersection_a";
552
+ intersection_b: "intersection_b";
553
+ unit: "unit";
554
+ venue: "venue";
555
+ attention: "attention";
556
+ po_box: "po_box";
557
+ cedex: "cedex";
558
+ prefecture: "prefecture";
559
+ municipality: "municipality";
560
+ district: "district";
561
+ block: "block";
562
+ sub_block: "sub_block";
563
+ building_number: "building_number";
564
+ building_name: "building_name";
565
+ }>;
566
+ value: z.ZodString;
567
+ kept: z.ZodString;
568
+ }, z.core.$strip>>>;
189
569
  }, z.core.$loose>, z.ZodObject<{
190
570
  input: z.ZodString;
191
571
  error: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;EAA2D,CAAA;AAEvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;iBAMN,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;iBAA6E,CAAA;AAE9G;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAON,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;iBAKN,CAAA;AAiC3B;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA2BN,CAAA;AAE3B;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;iBAUN,CAAA;AAYzB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIN,CAAA;AAE1B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAKN,CAAA;AAE3B;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIN,CAAA;AAQ5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;iBAMN,CAAA;AAE1B;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;iBAKN,CAAA;AAE3B;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;iBAMN,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;EAA2D,CAAA;AAEvF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,OAAO,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;iBAMN,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;iBAA6E,CAAA;AAE9G;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAON,CAAA;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;iBAKN,CAAA;AA8G3B;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsEnC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAEzE;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA6D,CAAA;AAE9F,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;iBAUN,CAAA;AAYzB;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIN,CAAA;AAE1B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAKN,CAAA;AAE3B;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIN,CAAA;AAQ5B;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;iBAMN,CAAA;AAE1B;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;iBAKN,CAAA;AAE3B;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;iBAMN,CAAA"}
package/out/schema.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * libpostal), nothing here is a vendor contract — this surface is ours to design, so request
8
8
  * bodies are REQUIRED and validator-enforced (no legacy tolerance to preserve). A `defaultHook`
9
9
  * on the app maps validation failures through the shared `APIErrorSchema` envelope
10
- * (`apiError(c, 400, "invalid request body", <zod summary>)`) — the pattern boundary every
10
+ * (`errorResponse(c, 400, "invalid request body", <zod summary>)`) — the pattern boundary every
11
11
  * surface holds to: where no legacy contract exists, the validator MAY speak, but only in
12
12
  * our envelope.
13
13
  *
@@ -89,6 +89,9 @@ const GeocodeHierarchyEntrySchema = z
89
89
  lat: z.number().optional(),
90
90
  lon: z.number().optional(),
91
91
  placeID: z.string().optional(),
92
+ // #1731 tri-state lineage provenance: true = the winner's ancestor chain vouches for this entry, false =
93
+ // resolved independently OUTSIDE the winner's lineage, absent = unverifiable. Absence is not false.
94
+ in_winner_lineage: z.boolean().optional(),
92
95
  })
93
96
  .openapi("GeocodeHierarchyEntry");
94
97
  /**
@@ -105,6 +108,77 @@ const GeocodeCandidateSchema = z
105
108
  placeID: z.string().optional(),
106
109
  })
107
110
  .openapi("GeocodeCandidate");
111
+ /**
112
+ * The `ComponentTag` union at this engine-agnostic boundary, named once so every schema that speaks about a tag speaks
113
+ * about the SAME list. Two hand-copied enums would agree on the day they were written and diverge on the day a tag is
114
+ * added — the shape of defect `feedback-parity-needs-shared-function-not-shared-constants` describes.
115
+ */
116
+ const ComponentTagSchema = z.enum([
117
+ "country",
118
+ "region",
119
+ "locality",
120
+ "dependent_locality",
121
+ "postcode",
122
+ "subregion",
123
+ "house_number",
124
+ "street",
125
+ "street_prefix",
126
+ "street_prefix_particle",
127
+ "street_suffix",
128
+ "intersection_a",
129
+ "intersection_b",
130
+ "unit",
131
+ "venue",
132
+ "attention",
133
+ "po_box",
134
+ "cedex",
135
+ "prefecture",
136
+ "municipality",
137
+ "district",
138
+ "block",
139
+ "sub_block",
140
+ "building_number",
141
+ "building_name",
142
+ ]);
143
+ /**
144
+ * Canonical parsed-component map carried by `GeocodeResult.components`. Spelled out at this engine-agnostic API
145
+ * boundary for the same reason the result schema is hand-modeled; the compile-time drift pin in
146
+ * `mailwoman/test/api-schema-drift.test.ts` catches any mismatch with the real `ComponentTag`-keyed result type.
147
+ */
148
+ const GeocodeComponentsSchema = z.partialRecord(ComponentTagSchema, z.string());
149
+ /**
150
+ * One `GeocodeOutcome.intent_markers` entry — an advisory the ROAD_TO_V9 §4 intent vocabulary raised about the QUERY.
151
+ * Mirrors `QueryIntentMarker` (`core/pipeline/types.ts`).
152
+ *
153
+ * `evidence` is deliberately open (`z.record`): each `code` carries its own measurement — a dominance margin, a pair of
154
+ * interpretations, a taxonomy id — and flattening those into one closed shape would either lose the numbers or invent
155
+ * fields that do not apply. `code` is the discriminator a client branches on.
156
+ */
157
+ const QueryIntentMarkerSchema = z
158
+ .object({
159
+ // Spelled out rather than `z.string()` so `mailwoman/test/api-schema-drift.test.ts`'s schema-too-wide direction
160
+ // keeps biting: a new `QueryKind` that never reaches this list is a documented contract that has quietly stopped
161
+ // describing the real one.
162
+ kind: z.enum([
163
+ "postcode_only",
164
+ "locality_only",
165
+ "structured_address",
166
+ "intersection",
167
+ "po_box",
168
+ "landmark",
169
+ "poi_query",
170
+ "vague",
171
+ "bare_toponym",
172
+ "route_pair",
173
+ "near_me",
174
+ "poi_category",
175
+ ]),
176
+ code: z.enum(["declared_ambiguity", "declared_fork", "focus_point_required", "poi_category"]),
177
+ mechanism: z.string(),
178
+ message: z.string(),
179
+ evidence: z.record(z.string(), z.unknown()).optional(),
180
+ })
181
+ .openapi("QueryIntentMarker");
108
182
  /**
109
183
  * `POST /v1/geocode` response — a hand-modeled mirror of `GeocodeResult`'s wire shape (`mailwoman/geocode-core.ts`),
110
184
  * `.loose()` so a field the engine adds that this schema doesn't yet know about still rides through undocumented rather
@@ -115,12 +189,22 @@ const GeocodeCandidateSchema = z
115
189
  * `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time tripwire that
116
190
  * catches this shape drifting from the real `GeocodeResult` interface.
117
191
  */
118
- export const GeocodeOutcomeSchema = z
119
- .object({
192
+ export const GeocodeOutcomeLikeSchema = z.object({
120
193
  input: z.string(),
194
+ components: GeocodeComponentsSchema,
121
195
  lat: z.number().nullable(),
122
196
  lon: z.number().nullable(),
123
- resolution_tier: z.enum(["address_point", "interpolated", "street", "admin"]),
197
+ resolution_tier: z.enum(["address_point", "interpolated", "street", "admin", "venue", "plus_code"]),
198
+ // The fork→entity probe's answer (#1585) — present only on the `venue` tier; see geocode-core's
199
+ // GeocodeResult.entity.
200
+ entity: z
201
+ .object({
202
+ name: z.string(),
203
+ categoryID: z.string().nullable(),
204
+ confidence: z.number(),
205
+ country: z.string(),
206
+ })
207
+ .optional(),
124
208
  uncertainty_m: z.number().nullable(),
125
209
  locality: z.string().nullable(),
126
210
  region: z.string().nullable(),
@@ -136,13 +220,55 @@ export const GeocodeOutcomeSchema = z
136
220
  countryCode: z.string().nullable(),
137
221
  hierarchy: z.array(GeocodeHierarchyEntrySchema),
138
222
  candidates: z.array(GeocodeCandidateSchema),
223
+ // The register row's OWN scope tags when the address_point tier answered and its shard carries
224
+ // them (normalized locality key + postcode of the ROOFTOP) — see geocode-core's GeocodeResult.rooftop.
225
+ rooftop: z
226
+ .object({
227
+ localityNorm: z.string().optional(),
228
+ postcode: z.string().optional(),
229
+ })
230
+ .optional(),
139
231
  // #42: the country the postcode-country coherence pass scoped the walk to, or null. Non-null ONLY when it
140
232
  // OVERRODE the request's country prior — so a caller who asked for US and got an FR answer can see which
141
233
  // evidence bought the change instead of reading it as a bug.
142
234
  postcode_country_scope: z.string().nullable(),
143
- })
144
- .loose()
145
- .openapi("GeocodeOutcome");
235
+ // ROAD_TO_V9 §4: query-intent advisories. Always present; empty means the vocabulary looked and had nothing to
236
+ // say. Advisory ONLY — no marker changed which answer won, and a client is free to ignore the array entirely.
237
+ intent_markers: z.array(QueryIntentMarkerSchema),
238
+ // #1717 stage 1: flag-only admin-coherence verdicts — did the winning candidate's resolved ancestry confirm,
239
+ // contradict, or fail to speak to the PARSED region/country qualifiers? Nothing ranks or gates on these; present
240
+ // whenever a winner resolved (both members always populated — `unstated` is the explicit no-qualifier claim),
241
+ // absent when nothing resolved to check against. See mailwoman's `admin-coherence.ts` for the verdict contract.
242
+ admin_coherence: z
243
+ .object({
244
+ region: z.enum(["confirmed", "contradicted", "unstated", "unverifiable"]),
245
+ country: z.enum(["confirmed", "contradicted", "unstated", "unverifiable"]),
246
+ })
247
+ .optional(),
248
+ // #1755: spans the flat `components` map could not represent. `components` holds one value per tag, so a second
249
+ // `locality` span ceases to exist there — and without this line `region: null` means both "the input named no
250
+ // region" and "it named one and we deleted it". Absent when nothing was dropped; never an empty array on the wire,
251
+ // because the common case is nothing dropped and a client should not have to read a field to learn that.
252
+ dropped_components: z
253
+ .array(z.object({
254
+ tag: ComponentTagSchema,
255
+ value: z.string(),
256
+ // The value that held the slot, so a reader sees which of the two survived without re-deriving it.
257
+ kept: z.string(),
258
+ }))
259
+ .optional(),
260
+ });
261
+ /**
262
+ * `POST /v1/geocode` response — a hand-modeled mirror of `GeocodeResult`'s wire shape (`mailwoman/geocode-core.ts`),
263
+ * `.loose()` so a field the engine adds that this schema doesn't yet know about still rides through undocumented rather
264
+ * than being stripped or rejected. DOC-ACCURACY ONLY: the route passes `engine.geocode()`'s outcome through verbatim
265
+ * (`GeocodeOutcome = Record<string, unknown>`, `api/engine.ts`) — nothing here validates a real response, so a
266
+ * schema/engine mismatch can never reject or mutate a result at runtime. Deliberately carries NO import from
267
+ * `mailwoman` (the engine-agnosticism boundary — `mailwoman` is the one workspace allowed to depend on
268
+ * `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time tripwire that
269
+ * catches this shape drifting from the real `GeocodeResult` interface.
270
+ */
271
+ export const GeocodeOutcomeSchema = GeocodeOutcomeLikeSchema.loose().openapi("GeocodeOutcome");
146
272
  /**
147
273
  * `POST /v1/batch` request body.
148
274
  */
package/out/schema.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"}