@mailwoman/api 9.1.0 → 9.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/README.md +1 -1
- package/{app.ts → lib/app.ts} +39 -11
- package/{engine.ts → lib/engine.ts} +24 -12
- package/{index.ts → lib/index.ts} +4 -4
- package/{routes.ts → lib/routes.ts} +78 -54
- package/lib/schema.ts +502 -0
- package/out/app.d.ts +10 -2
- package/out/app.d.ts.map +1 -1
- package/out/app.js +21 -9
- package/out/app.js.map +1 -1
- package/out/engine.d.ts +19 -23
- package/out/engine.d.ts.map +1 -1
- package/out/engine.js.map +1 -1
- package/out/index.d.ts +4 -4
- package/out/index.d.ts.map +1 -1
- package/out/index.js +4 -4
- package/out/index.js.map +1 -1
- package/out/routes.d.ts +9 -3
- package/out/routes.d.ts.map +1 -1
- package/out/routes.js +47 -50
- package/out/routes.js.map +1 -1
- package/out/schema.d.ts +616 -9
- package/out/schema.d.ts.map +1 -1
- package/out/schema.js +177 -21
- package/out/schema.js.map +1 -1
- package/package.json +38 -9
- package/schema.ts +0 -328
package/out/schema.d.ts.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../lib/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,uCAK5B,CAAA;AAEF;;;;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;AAgK3B;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIrC,CAAA;AAUF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmGnC,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;;;;;;;GAOG;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
|
-
* (`
|
|
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
|
*
|
|
@@ -20,6 +20,15 @@ export { APIErrorSchema } from "@mailwoman/api-kit";
|
|
|
20
20
|
/**
|
|
21
21
|
* `POST /v1/parse` request body.
|
|
22
22
|
*/
|
|
23
|
+
/**
|
|
24
|
+
* One node of the decoded address tree. The decoder's `AddressNode` is a recursive union the OpenAPI generator cannot
|
|
25
|
+
* derive a schema for on its own, so it is registered as an open object; the shape is documented by the type.
|
|
26
|
+
*/
|
|
27
|
+
export const AddressNodeSchema = z.custom().openapi("AddressNode", {
|
|
28
|
+
type: "object",
|
|
29
|
+
additionalProperties: true,
|
|
30
|
+
description: "A decoded address-tree node: a tag, its span, and its children. See `AddressNode` in `@mailwoman/core/decoder`.",
|
|
31
|
+
});
|
|
23
32
|
/**
|
|
24
33
|
* The input register (Decision A / GTM B10): `fragmented` = the map-search register (evidence-bundle channels feed);
|
|
25
34
|
* `formatted` = the validation/record register (channels off). Unset → the engine derives it from the input's shape.
|
|
@@ -63,7 +72,7 @@ export const ParseOutcomeSchema = z
|
|
|
63
72
|
.object({
|
|
64
73
|
input: z.string(),
|
|
65
74
|
components: z.array(ParseComponentSchema),
|
|
66
|
-
tree: z.looseObject({
|
|
75
|
+
tree: z.looseObject({ raw: z.string(), roots: z.array(AddressNodeSchema) }),
|
|
67
76
|
debug: z.string().optional(),
|
|
68
77
|
})
|
|
69
78
|
.openapi("ParseOutcome");
|
|
@@ -89,6 +98,9 @@ const GeocodeHierarchyEntrySchema = z
|
|
|
89
98
|
lat: z.number().optional(),
|
|
90
99
|
lon: z.number().optional(),
|
|
91
100
|
placeID: z.string().optional(),
|
|
101
|
+
// #1731 tri-state lineage provenance: true = the winner's ancestor chain vouches for this entry, false =
|
|
102
|
+
// resolved independently OUTSIDE the winner's lineage, absent = unverifiable. Absence is not false.
|
|
103
|
+
in_winner_lineage: z.boolean().optional(),
|
|
92
104
|
})
|
|
93
105
|
.openapi("GeocodeHierarchyEntry");
|
|
94
106
|
/**
|
|
@@ -106,11 +118,11 @@ const GeocodeCandidateSchema = z
|
|
|
106
118
|
})
|
|
107
119
|
.openapi("GeocodeCandidate");
|
|
108
120
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
121
|
+
* The `ComponentTag` union at this engine-agnostic boundary, named once so every schema that speaks about a tag speaks
|
|
122
|
+
* about the SAME list. Two hand-copied enums would agree on the day they were written and diverge on the day a tag is
|
|
123
|
+
* added — the shape of defect `feedback-parity-needs-shared-function-not-shared-constants` describes.
|
|
112
124
|
*/
|
|
113
|
-
const
|
|
125
|
+
const ComponentTagSchema = z.enum([
|
|
114
126
|
"country",
|
|
115
127
|
"region",
|
|
116
128
|
"locality",
|
|
@@ -136,7 +148,14 @@ const GeocodeComponentsSchema = z.partialRecord(z.enum([
|
|
|
136
148
|
"sub_block",
|
|
137
149
|
"building_number",
|
|
138
150
|
"building_name",
|
|
139
|
-
|
|
151
|
+
"locality_unit",
|
|
152
|
+
]);
|
|
153
|
+
/**
|
|
154
|
+
* Canonical parsed-component map carried by `GeocodeResult.components`. Spelled out at this engine-agnostic API
|
|
155
|
+
* boundary for the same reason the result schema is hand-modeled; the compile-time drift pin in
|
|
156
|
+
* `mailwoman/test/api-schema-drift.test.ts` catches any mismatch with the real `ComponentTag`-keyed result type.
|
|
157
|
+
*/
|
|
158
|
+
const GeocodeComponentsSchema = z.partialRecord(ComponentTagSchema, z.string());
|
|
140
159
|
/**
|
|
141
160
|
* One `GeocodeOutcome.intent_markers` entry — an advisory the ROAD_TO_V9 §4 intent vocabulary raised about the QUERY.
|
|
142
161
|
* Mirrors `QueryIntentMarker` (`core/pipeline/types.ts`).
|
|
@@ -164,12 +183,70 @@ const QueryIntentMarkerSchema = z
|
|
|
164
183
|
"near_me",
|
|
165
184
|
"poi_category",
|
|
166
185
|
]),
|
|
167
|
-
code: z.enum([
|
|
186
|
+
code: z.enum([
|
|
187
|
+
"declared_ambiguity",
|
|
188
|
+
"declared_fork",
|
|
189
|
+
"focus_point_required",
|
|
190
|
+
"poi_category",
|
|
191
|
+
"coverage_qualified_absence",
|
|
192
|
+
"authority_designation",
|
|
193
|
+
]),
|
|
168
194
|
mechanism: z.string(),
|
|
169
195
|
message: z.string(),
|
|
170
196
|
evidence: z.record(z.string(), z.unknown()).optional(),
|
|
171
197
|
})
|
|
172
198
|
.openapi("QueryIntentMarker");
|
|
199
|
+
/**
|
|
200
|
+
* One authoritative-provider match on the wire (#1901) — hoisted so the outcome schema below stays inside the
|
|
201
|
+
* call-nesting bound. Field-for-field mirror of `mailwoman/authoritative.ts`'s `AuthoritativeAssertionMatch`.
|
|
202
|
+
*/
|
|
203
|
+
const AuthoritativeMatchSchema = z.object({
|
|
204
|
+
provider_place_id: z.string(),
|
|
205
|
+
object_ids: z.record(z.string(), z.string()).optional(),
|
|
206
|
+
canonical_fields: z.record(z.string(), z.string()).optional(),
|
|
207
|
+
lat: z.number().optional(),
|
|
208
|
+
lon: z.number().optional(),
|
|
209
|
+
precision: z.string().optional(),
|
|
210
|
+
match_status: z.enum(["exact", "approximate"]),
|
|
211
|
+
provider_score: z.number().optional(),
|
|
212
|
+
});
|
|
213
|
+
const EpistemicStatusSchema = z.enum(["designated", "observed", "derived", "inferred", "unresolved"]);
|
|
214
|
+
const CoverageBasisSchema = z.enum(["designated", "surveyed", "source_present"]);
|
|
215
|
+
/**
|
|
216
|
+
* `@mailwoman/evidence`'s `Evidence` union, spelled for the wire. The `EvidencePin` below fails to compile the moment
|
|
217
|
+
* either side gains, loses or retypes a field.
|
|
218
|
+
*/
|
|
219
|
+
const EvidenceSchema = z.discriminatedUnion("kind", [
|
|
220
|
+
z.object({ kind: z.literal("observation"), source: z.string(), vintage: z.string().nullable(), value: z.unknown() }),
|
|
221
|
+
z.object({
|
|
222
|
+
kind: z.literal("exclusion"),
|
|
223
|
+
source: z.string(),
|
|
224
|
+
vintage: z.string(),
|
|
225
|
+
scope: z.object({ layer: z.string(), h3Cell: z.number(), basis: CoverageBasisSchema, fold: z.string() }),
|
|
226
|
+
}),
|
|
227
|
+
z.object({
|
|
228
|
+
kind: z.literal("relation"),
|
|
229
|
+
source: z.string(),
|
|
230
|
+
vintage: z.string(),
|
|
231
|
+
relationship: z.string(),
|
|
232
|
+
assertion: z.enum(["authoritative", "inferred"]),
|
|
233
|
+
score: z.number().optional(),
|
|
234
|
+
}),
|
|
235
|
+
z.object({ kind: z.literal("prior"), source: z.string(), label: z.string(), weight: z.number() }),
|
|
236
|
+
]);
|
|
237
|
+
/**
|
|
238
|
+
* The derivation behind a geocode answer, present only when the engine was asked to trace — `@mailwoman/evidence`'s
|
|
239
|
+
* `DerivationProjection` on the wire.
|
|
240
|
+
*/
|
|
241
|
+
export const DerivationProjectionSchema = z.object({
|
|
242
|
+
status: EpistemicStatusSchema,
|
|
243
|
+
constraints: z.array(z.object({ label: z.string(), evidence: EvidenceSchema, contribution: z.string() })).readonly(),
|
|
244
|
+
uncertaintyM: z.number().nullable(),
|
|
245
|
+
});
|
|
246
|
+
const evidencePin = true;
|
|
247
|
+
const derivationPin = true;
|
|
248
|
+
void evidencePin;
|
|
249
|
+
void derivationPin;
|
|
173
250
|
/**
|
|
174
251
|
* `POST /v1/geocode` response — a hand-modeled mirror of `GeocodeResult`'s wire shape (`mailwoman/geocode-core.ts`),
|
|
175
252
|
* `.loose()` so a field the engine adds that this schema doesn't yet know about still rides through undocumented rather
|
|
@@ -177,16 +254,31 @@ const QueryIntentMarkerSchema = z
|
|
|
177
254
|
* (`GeocodeOutcome = Record<string, unknown>`, `api/engine.ts`) — nothing here validates a real response, so a
|
|
178
255
|
* schema/engine mismatch can never reject or mutate a result at runtime. Deliberately carries NO import from
|
|
179
256
|
* `mailwoman` (the engine-agnosticism boundary — `mailwoman` is the one workspace allowed to depend on
|
|
180
|
-
* `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time
|
|
181
|
-
* catches this shape drifting from the real `GeocodeResult` interface.
|
|
257
|
+
* `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time regression check
|
|
258
|
+
* that catches this shape drifting from the real `GeocodeResult` interface.
|
|
182
259
|
*/
|
|
183
|
-
export const
|
|
184
|
-
.object({
|
|
260
|
+
export const GeocodeOutcomeLikeSchema = z.object({
|
|
185
261
|
input: z.string(),
|
|
186
262
|
components: GeocodeComponentsSchema,
|
|
187
263
|
lat: z.number().nullable(),
|
|
188
264
|
lon: z.number().nullable(),
|
|
189
|
-
resolution_tier: z.enum(["address_point", "interpolated", "street", "admin"]),
|
|
265
|
+
resolution_tier: z.enum(["address_point", "interpolated", "street", "admin", "venue", "plus_code"]),
|
|
266
|
+
// What the evidence permits a consumer to claim about the coordinate, orthogonal to how it was produced; see
|
|
267
|
+
// `@mailwoman/evidence`'s `EpistemicStatus`.
|
|
268
|
+
epistemic_status: z.enum(["designated", "observed", "derived", "inferred", "unresolved"]),
|
|
269
|
+
// The derivation behind the answer, present only when the engine was asked to trace. `DerivationProjectionSchema` is
|
|
270
|
+
// pinned to `@mailwoman/evidence`'s types below, so the wire contract and the evidence union cannot drift apart.
|
|
271
|
+
derivation: DerivationProjectionSchema.optional(),
|
|
272
|
+
// The fork→entity probe's answer (#1585) — present only on the `venue` tier; see geocode-core's
|
|
273
|
+
// GeocodeResult.entity.
|
|
274
|
+
entity: z
|
|
275
|
+
.object({
|
|
276
|
+
name: z.string(),
|
|
277
|
+
categoryID: z.string().nullable(),
|
|
278
|
+
confidence: z.number(),
|
|
279
|
+
country: z.string(),
|
|
280
|
+
})
|
|
281
|
+
.optional(),
|
|
190
282
|
uncertainty_m: z.number().nullable(),
|
|
191
283
|
locality: z.string().nullable(),
|
|
192
284
|
region: z.string().nullable(),
|
|
@@ -202,16 +294,78 @@ export const GeocodeOutcomeSchema = z
|
|
|
202
294
|
countryCode: z.string().nullable(),
|
|
203
295
|
hierarchy: z.array(GeocodeHierarchyEntrySchema),
|
|
204
296
|
candidates: z.array(GeocodeCandidateSchema),
|
|
297
|
+
// The register row's OWN scope tags when the address_point tier answered and its extract carries
|
|
298
|
+
// them (normalized locality key + postcode of the ROOFTOP) — see geocode-core's GeocodeResult.rooftop.
|
|
299
|
+
rooftop: z
|
|
300
|
+
.object({
|
|
301
|
+
localityNorm: z.string().optional(),
|
|
302
|
+
postcode: z.string().optional(),
|
|
303
|
+
})
|
|
304
|
+
.optional(),
|
|
205
305
|
// #42: the country the postcode-country coherence pass scoped the walk to, or null. Non-null ONLY when it
|
|
206
306
|
// OVERRODE the request's country prior — so a caller who asked for US and got an FR answer can see which
|
|
207
307
|
// evidence bought the change instead of reading it as a bug.
|
|
208
308
|
postcode_country_scope: z.string().nullable(),
|
|
309
|
+
// #1880: the capital promotion's firing receipt — the promoted candidate's country, present only when the
|
|
310
|
+
// promotion changed some node's leading candidate. Advisory, same posture as postcode_country_scope.
|
|
311
|
+
capital_promotion: z.string().optional(),
|
|
312
|
+
// #1893: the variant-alias exemption's firing receipt — present (true) only when the winning candidate reached
|
|
313
|
+
// the top because the exemption spared it the cross-country alias penalty. Advisory, same posture again.
|
|
314
|
+
variant_alias_exemption: z.literal(true).optional(),
|
|
209
315
|
// ROAD_TO_V9 §4: query-intent advisories. Always present; empty means the vocabulary looked and had nothing to
|
|
210
316
|
// say. Advisory ONLY — no marker changed which answer won, and a client is free to ignore the array entirely.
|
|
211
317
|
intent_markers: z.array(QueryIntentMarkerSchema),
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
318
|
+
// #1717 stage 1: flag-only admin-coherence verdicts — did the winning candidate's resolved ancestry confirm,
|
|
319
|
+
// contradict, or fail to speak to the PARSED region/country qualifiers? Nothing ranks or filters on these; present
|
|
320
|
+
// whenever a winner resolved (both members always populated — `unstated` is the explicit no-qualifier claim),
|
|
321
|
+
// absent when nothing resolved to check against. See mailwoman's `admin-coherence.ts` for the verdict contract.
|
|
322
|
+
admin_coherence: z
|
|
323
|
+
.object({
|
|
324
|
+
region: z.enum(["confirmed", "contradicted", "unstated", "unverifiable"]),
|
|
325
|
+
country: z.enum(["confirmed", "contradicted", "unstated", "unverifiable"]),
|
|
326
|
+
})
|
|
327
|
+
.optional(),
|
|
328
|
+
// #1901: a configured authoritative provider's answer, carried BESIDE the open result — every value inside is
|
|
329
|
+
// the PROVIDER'S assertion, hand-modeled here to match `mailwoman/authoritative.ts`'s wire shape (the
|
|
330
|
+
// engine-agnosticism boundary forbids importing it). Absent when no provider is configured; `refused` is the
|
|
331
|
+
// provider declining (distinct from a parse failure or a gazetteer miss); `transport_error` is the provider
|
|
332
|
+
// being unreachable, reported rather than silently dropped. An `ambiguous` status carries EVERY candidate.
|
|
333
|
+
authoritative: z
|
|
334
|
+
.object({
|
|
335
|
+
provider: z.string(),
|
|
336
|
+
status: z.enum(["matched", "ambiguous", "refused", "transport_error"]),
|
|
337
|
+
matches: z.array(AuthoritativeMatchSchema).optional(),
|
|
338
|
+
attribution: z.string().optional(),
|
|
339
|
+
license: z.string().optional(),
|
|
340
|
+
retrieved_at: z.string().optional(),
|
|
341
|
+
dataset_version: z.string().optional(),
|
|
342
|
+
error: z.string().optional(),
|
|
343
|
+
})
|
|
344
|
+
.optional(),
|
|
345
|
+
// #1755: spans the flat `components` map could not represent. `components` holds one value per tag, so a second
|
|
346
|
+
// `locality` span ceases to exist there — and without this line `region: null` means both "the input named no
|
|
347
|
+
// region" and "it named one and we deleted it". Absent when nothing was dropped; never an empty array on the wire,
|
|
348
|
+
// because the common case is nothing dropped and a client should not have to read a field to learn that.
|
|
349
|
+
dropped_components: z
|
|
350
|
+
.array(z.object({
|
|
351
|
+
tag: ComponentTagSchema,
|
|
352
|
+
value: z.string(),
|
|
353
|
+
// The value that held the slot, so a reader sees which of the two survived without re-deriving it.
|
|
354
|
+
kept: z.string(),
|
|
355
|
+
}))
|
|
356
|
+
.optional(),
|
|
357
|
+
});
|
|
358
|
+
/**
|
|
359
|
+
* `POST /v1/geocode` response — a hand-modeled mirror of `GeocodeResult`'s wire shape (`mailwoman/geocode-core.ts`),
|
|
360
|
+
* `.loose()` so a field the engine adds that this schema doesn't yet know about still rides through undocumented rather
|
|
361
|
+
* than being stripped or rejected. DOC-ACCURACY ONLY: the route passes `engine.geocode()`'s outcome through verbatim
|
|
362
|
+
* (`GeocodeOutcome = Record<string, unknown>`, `api/engine.ts`) — nothing here validates a real response, so a
|
|
363
|
+
* schema/engine mismatch can never reject or mutate a result at runtime. Deliberately carries NO import from
|
|
364
|
+
* `mailwoman` (the engine-agnosticism boundary — `mailwoman` is the one workspace allowed to depend on
|
|
365
|
+
* `@mailwoman/api`, never the reverse). `mailwoman/test/api-schema-drift.test.ts` is the compile-time regression check
|
|
366
|
+
* that catches this shape drifting from the real `GeocodeResult` interface.
|
|
367
|
+
*/
|
|
368
|
+
export const GeocodeOutcomeSchema = GeocodeOutcomeLikeSchema.loose().openapi("GeocodeOutcome");
|
|
215
369
|
/**
|
|
216
370
|
* `POST /v1/batch` request body.
|
|
217
371
|
*/
|
|
@@ -248,7 +402,7 @@ export const BatchResponseSchema = z
|
|
|
248
402
|
*/
|
|
249
403
|
export const ResolveRequestSchema = z
|
|
250
404
|
.object({
|
|
251
|
-
tree: z.looseObject({
|
|
405
|
+
tree: z.looseObject({ raw: z.string(), roots: z.array(AddressNodeSchema) }),
|
|
252
406
|
opts: z.looseObject({}).optional(),
|
|
253
407
|
})
|
|
254
408
|
.openapi("ResolveRequest");
|
|
@@ -257,7 +411,7 @@ export const ResolveRequestSchema = z
|
|
|
257
411
|
*/
|
|
258
412
|
export const ResolveResponseSchema = z
|
|
259
413
|
.object({
|
|
260
|
-
tree: z.looseObject({
|
|
414
|
+
tree: z.looseObject({ raw: z.string(), roots: z.array(AddressNodeSchema) }),
|
|
261
415
|
})
|
|
262
416
|
.openapi("ResolveResponse");
|
|
263
417
|
/**
|
|
@@ -289,9 +443,11 @@ export const FormatResponseSchema = z
|
|
|
289
443
|
.openapi("FormatResponse");
|
|
290
444
|
/**
|
|
291
445
|
* `GET /health` response — `status`/`uptime_s` are stamped by the ROUTE itself, unconditionally, regardless of engine
|
|
292
|
-
* (`api/routes.ts`'s `healthRoute` handler: `{ status: "ok", uptime_s, ...engine.health?.() }`), so those two are
|
|
293
|
-
*
|
|
294
|
-
*
|
|
446
|
+
* (`api/routes.ts`'s `healthRoute` handler: `{ status: "ok", uptime_s, ...engine.health?.() }`), so those two are
|
|
447
|
+
* cheap
|
|
448
|
+
*
|
|
449
|
+
* - Accurate to pin. Everything else is `HealthData` (`api/engine.ts`) — an engine-defined block (model card, data-root
|
|
450
|
+
* inventory for `mailwoman serve`; something else entirely for another engine) — stays loose.
|
|
295
451
|
*/
|
|
296
452
|
export const HealthResponseSchema = z
|
|
297
453
|
.object({
|
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":["../lib/schema.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailwoman/api",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.3.0",
|
|
4
4
|
"description": "The native Mailwoman HTTP API — engine-agnostic /v1 surface (parse, geocode, batch, resolve, format) with health, metrics, and an emitted OpenAPI document.",
|
|
5
5
|
"license": "AGPL-3.0-only OR LicenseRef-Commercial",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/sister-software/mailwoman.git",
|
|
9
|
-
"directory": "api"
|
|
9
|
+
"directory": "packages/api"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"out/**/*.js",
|
|
@@ -21,14 +21,29 @@
|
|
|
21
21
|
"!*.test.ts",
|
|
22
22
|
"!*.test.tsx",
|
|
23
23
|
"!**/*.test.ts",
|
|
24
|
-
"!**/*.test.tsx"
|
|
24
|
+
"!**/*.test.tsx",
|
|
25
|
+
"!test/**"
|
|
25
26
|
],
|
|
26
27
|
"type": "module",
|
|
28
|
+
"sideEffects": false,
|
|
29
|
+
"imports": {
|
|
30
|
+
"#*": {
|
|
31
|
+
"types": "./out/*.d.ts",
|
|
32
|
+
"node": "./out/*.js",
|
|
33
|
+
"default": "./out/*.js"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
27
36
|
"exports": {
|
|
28
37
|
"./package.json": "./package.json",
|
|
29
38
|
".": {
|
|
30
39
|
"types": "./out/index.d.ts",
|
|
40
|
+
"node": "./out/index.js",
|
|
31
41
|
"default": "./out/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./schema": {
|
|
44
|
+
"types": "./out/schema.d.ts",
|
|
45
|
+
"node": "./out/schema.js",
|
|
46
|
+
"default": "./out/schema.js"
|
|
32
47
|
}
|
|
33
48
|
},
|
|
34
49
|
"publishConfig": {
|
|
@@ -37,16 +52,30 @@
|
|
|
37
52
|
"./package.json": "./package.json",
|
|
38
53
|
".": {
|
|
39
54
|
"types": "./out/index.d.ts",
|
|
55
|
+
"node": "./out/index.js",
|
|
40
56
|
"default": "./out/index.js"
|
|
57
|
+
},
|
|
58
|
+
"./schema": {
|
|
59
|
+
"types": "./out/schema.d.ts",
|
|
60
|
+
"node": "./out/schema.js",
|
|
61
|
+
"default": "./out/schema.js"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"imports": {
|
|
65
|
+
"#*": {
|
|
66
|
+
"types": "./out/*.d.ts",
|
|
67
|
+
"node": "./out/*.js",
|
|
68
|
+
"default": "./out/*.js"
|
|
41
69
|
}
|
|
42
70
|
}
|
|
43
71
|
},
|
|
44
72
|
"dependencies": {
|
|
45
|
-
"@hono/zod-openapi": "^1.
|
|
46
|
-
"@mailwoman/api-kit": "9.
|
|
47
|
-
"@mailwoman/core": "9.
|
|
48
|
-
"@mailwoman/
|
|
49
|
-
"
|
|
50
|
-
"
|
|
73
|
+
"@hono/zod-openapi": "^1.6.3",
|
|
74
|
+
"@mailwoman/api-kit": "9.3.0",
|
|
75
|
+
"@mailwoman/core": "9.3.0",
|
|
76
|
+
"@mailwoman/evidence": "9.3.0",
|
|
77
|
+
"@mailwoman/formatter": "9.3.0",
|
|
78
|
+
"hono": "^4.13.7",
|
|
79
|
+
"zod": "^4.5.4"
|
|
51
80
|
}
|
|
52
81
|
}
|