@mailwoman/core 4.10.0 → 4.11.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 +90 -0
- package/data/coarse-placer/meta.json +17 -48
- package/out/decoder/arbitrate-tree.d.ts +45 -0
- package/out/decoder/arbitrate-tree.d.ts.map +1 -0
- package/out/decoder/arbitrate-tree.js +97 -0
- package/out/decoder/arbitrate-tree.js.map +1 -0
- package/out/decoder/index.d.ts +2 -0
- package/out/decoder/index.d.ts.map +1 -1
- package/out/decoder/index.js +2 -0
- package/out/decoder/index.js.map +1 -1
- package/out/decoder/proposals-to-tree.d.ts +20 -1
- package/out/decoder/proposals-to-tree.d.ts.map +1 -1
- package/out/decoder/proposals-to-tree.js +37 -0
- package/out/decoder/proposals-to-tree.js.map +1 -1
- package/out/decoder/resolve-proposal-overlaps.d.ts +52 -0
- package/out/decoder/resolve-proposal-overlaps.d.ts.map +1 -0
- package/out/decoder/resolve-proposal-overlaps.js +74 -0
- package/out/decoder/resolve-proposal-overlaps.js.map +1 -0
- package/out/parser/index.d.ts +1 -0
- package/out/parser/index.d.ts.map +1 -1
- package/out/parser/index.js +1 -0
- package/out/parser/index.js.map +1 -1
- package/out/parser/proposal-pipeline.d.ts +16 -3
- package/out/parser/proposal-pipeline.d.ts.map +1 -1
- package/out/parser/proposal-pipeline.js +18 -6
- package/out/parser/proposal-pipeline.js.map +1 -1
- package/out/parser/solution-to-proposals.d.ts +28 -0
- package/out/parser/solution-to-proposals.d.ts.map +1 -0
- package/out/parser/solution-to-proposals.js +44 -0
- package/out/parser/solution-to-proposals.js.map +1 -0
- package/out/pipeline/runtime-pipeline.d.ts.map +1 -1
- package/out/pipeline/runtime-pipeline.js +32 -4
- package/out/pipeline/runtime-pipeline.js.map +1 -1
- package/out/pipeline/types.d.ts +30 -1
- package/out/pipeline/types.d.ts.map +1 -1
- package/out/policy/defaults.d.ts +11 -6
- package/out/policy/defaults.d.ts.map +1 -1
- package/out/policy/defaults.js +12 -7
- package/out/policy/defaults.js.map +1 -1
- package/out/policy/from-config.d.ts +14 -4
- package/out/policy/from-config.d.ts.map +1 -1
- package/out/policy/from-config.js +16 -5
- package/out/policy/from-config.js.map +1 -1
- package/out/policy/index.d.ts +1 -0
- package/out/policy/index.d.ts.map +1 -1
- package/out/policy/index.js +1 -0
- package/out/policy/index.js.map +1 -1
- package/out/policy/input-shape-router.d.ts +104 -0
- package/out/policy/input-shape-router.d.ts.map +1 -0
- package/out/policy/input-shape-router.js +88 -0
- package/out/policy/input-shape-router.js.map +1 -0
- package/out/policy/registry.d.ts +7 -3
- package/out/policy/registry.d.ts.map +1 -1
- package/out/policy/registry.js +7 -3
- package/out/policy/registry.js.map +1 -1
- package/out/resolver/remote-resolver.d.ts +4 -2
- package/out/resolver/remote-resolver.d.ts.map +1 -1
- package/out/resolver/remote-resolver.js.map +1 -1
- package/out/resolver/resolve.d.ts.map +1 -1
- package/out/resolver/resolve.js +74 -4
- package/out/resolver/resolve.js.map +1 -1
- package/out/resolver/types.d.ts +48 -9
- package/out/resolver/types.d.ts.map +1 -1
- package/out/resolver/types.js +56 -9
- package/out/resolver/types.js.map +1 -1
- package/out/utils/repo.d.ts.map +1 -1
- package/out/utils/repo.js +5 -4
- package/out/utils/repo.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Input-shape router (#478 increment 2) — the arbitration _prior_.
|
|
7
|
+
*
|
|
8
|
+
* A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
|
|
9
|
+
* seeds the whole per-component policy table before per-tag config overlays. The intuition (the
|
|
10
|
+
* parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
|
|
11
|
+
* `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
|
|
12
|
+
* weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
|
|
13
|
+
*
|
|
14
|
+
* This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
|
|
15
|
+
* (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
|
|
16
|
+
* production `runPipeline` does not feed it live signals until the two arbitration sites are
|
|
17
|
+
* unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
|
|
18
|
+
* that wiring — the prior is proven correct in isolation before any behavior changes.
|
|
19
|
+
*
|
|
20
|
+
* Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
|
|
21
|
+
* `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
|
|
22
|
+
* safe to import from anywhere. The real signals satisfy these shapes by construction.
|
|
23
|
+
*/
|
|
24
|
+
import type { PolicyMode } from "./policy.js";
|
|
25
|
+
/** Minimal kind-classifier signal. Compatible with `QueryKindResult` (`core/pipeline/types.ts`). */
|
|
26
|
+
export interface RouterKindSignal {
|
|
27
|
+
/** The classified kind, e.g. `structured_address`, `landmark`, `vague`. */
|
|
28
|
+
kind: string;
|
|
29
|
+
/** Top-class confidence, 0..1. */
|
|
30
|
+
confidence: number;
|
|
31
|
+
}
|
|
32
|
+
/** Minimal query-shape signal. Compatible with `QueryShapeLite` (`core/pipeline/types.ts`). */
|
|
33
|
+
export interface RouterShapeSignal {
|
|
34
|
+
/**
|
|
35
|
+
* Broad character category:
|
|
36
|
+
*
|
|
37
|
+
* - `numeric`
|
|
38
|
+
* - `alpha`
|
|
39
|
+
* - `alphanumeric`
|
|
40
|
+
* - `cjk`
|
|
41
|
+
* - `cyrillic`
|
|
42
|
+
* - `arabic`
|
|
43
|
+
* - `mixed`.
|
|
44
|
+
*/
|
|
45
|
+
characterClass?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Minimal coarse-placer signal (#244). Compatible with `CoarsePrediction`
|
|
49
|
+
* (`core/coarse-placer/coarse-placer.ts`). `null` means no placer ran — treated as "no OOD signal",
|
|
50
|
+
* never as an abstention.
|
|
51
|
+
*/
|
|
52
|
+
export interface RouterPlacerSignal {
|
|
53
|
+
/** The in-map country argmax, `null` when abstained, or `"OTHER"` when off-map. */
|
|
54
|
+
country: string | null;
|
|
55
|
+
/** Explicit abstention flag (M2 open-set reject). */
|
|
56
|
+
abstained: boolean;
|
|
57
|
+
}
|
|
58
|
+
/** The routed prior: a default policy mode for the whole component table, plus an abstain signal. */
|
|
59
|
+
export interface InputShapeRoute {
|
|
60
|
+
/**
|
|
61
|
+
* The default {@link PolicyMode} every component starts from (per-tag config still overrides).
|
|
62
|
+
*
|
|
63
|
+
* - `rule_preferred` — clean structured Latin address; v0's home turf.
|
|
64
|
+
* - `neural_preferred` — noisy / non-Latin / off-map; neural carries it.
|
|
65
|
+
* - `both` — weak/ambiguous; keep every source (paired with `abstain: true`).
|
|
66
|
+
*/
|
|
67
|
+
defaultMode: PolicyMode;
|
|
68
|
+
/**
|
|
69
|
+
* True when both sources are weak (low kind confidence and/or the placer abstained on a non-clean
|
|
70
|
+
* shape). A first-class outcome reserved for the resolver/admin honest-radius downgrade — but it
|
|
71
|
+
* has NO consumer until #478 increment 3, so for now it is computed and reported only.
|
|
72
|
+
* `defaultMode` is `both` when this is set (drop nothing).
|
|
73
|
+
*/
|
|
74
|
+
abstain: boolean;
|
|
75
|
+
/** Human-readable trace of which branch fired — for telemetry and test assertions. */
|
|
76
|
+
reason: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
|
|
80
|
+
* v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
|
|
81
|
+
* both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
|
|
82
|
+
*/
|
|
83
|
+
export declare const CLEAN_KIND_CONFIDENCE = 0.8;
|
|
84
|
+
/**
|
|
85
|
+
* Classify the input's shape into a default policy mode.
|
|
86
|
+
*
|
|
87
|
+
* The decision tree (first match wins):
|
|
88
|
+
*
|
|
89
|
+
* 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
|
|
90
|
+
* Latin-centric, so non-Latin input is neural's regardless of kind.
|
|
91
|
+
* 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
|
|
92
|
+
* {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
|
|
93
|
+
* `rule_preferred`. v0's home turf.
|
|
94
|
+
* 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
|
|
95
|
+
* `both`, drop nothing).
|
|
96
|
+
* 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
|
|
97
|
+
* `locality_only`) → `neural_preferred`.
|
|
98
|
+
*
|
|
99
|
+
* @param kind Kind-classifier signal.
|
|
100
|
+
* @param shape Query-shape signal.
|
|
101
|
+
* @param placer Coarse-placer signal, or `null` when none ran.
|
|
102
|
+
*/
|
|
103
|
+
export declare function routeInputShape(kind: RouterKindSignal, shape: RouterShapeSignal, placer: RouterPlacerSignal | null): InputShapeRoute;
|
|
104
|
+
//# sourceMappingURL=input-shape-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-shape-router.d.ts","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,oGAAoG;AACpG,MAAM,WAAW,gBAAgB;IAChC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAA;CAClB;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IACjC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,mFAAmF;IACnF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAA;CAClB;AAED,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC/B;;;;;;OAMG;IACH,WAAW,EAAE,UAAU,CAAA;IACvB;;;;;OAKG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAA;CACd;AAcD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAC/B,eAAe,CAmCjB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Input-shape router (#478 increment 2) — the arbitration _prior_.
|
|
7
|
+
*
|
|
8
|
+
* A pure, deterministic classification of the input's _shape_ into a default {@link PolicyMode} that
|
|
9
|
+
* seeds the whole per-component policy table before per-tag config overlays. The intuition (the
|
|
10
|
+
* parity capstone, #478): the old rules system owns clean structured Latin addresses (the arena's
|
|
11
|
+
* `v0-only` column), neural owns noisy / off-map / non-Latin input, and when both signals are
|
|
12
|
+
* weak the honest move is to _abstain_ rather than emit a confident-wrong parse.
|
|
13
|
+
*
|
|
14
|
+
* This module is the decision logic only. It does NOT wire itself into a pipeline: the consumer
|
|
15
|
+
* (`policyRegistryFromRoute` → the proposal pipeline) decides whether to apply it, and the
|
|
16
|
+
* production `runPipeline` does not feed it live signals until the two arbitration sites are
|
|
17
|
+
* unified (#478 increment 3). Keeping the prior pure and exhaustively unit-tested here de-risks
|
|
18
|
+
* that wiring — the prior is proven correct in isolation before any behavior changes.
|
|
19
|
+
*
|
|
20
|
+
* Inputs are deliberately _structural lite_ types (not the concrete `QueryKindResult` /
|
|
21
|
+
* `QueryShapeLite` / `CoarsePrediction`) so this file has zero imports beyond `PolicyMode` and is
|
|
22
|
+
* safe to import from anywhere. The real signals satisfy these shapes by construction.
|
|
23
|
+
*/
|
|
24
|
+
/** Kinds the rules system handles well when the rest of the shape is clean. */
|
|
25
|
+
const RULE_CLEAN_KINDS = new Set(["structured_address", "intersection", "po_box", "postcode_only"]);
|
|
26
|
+
/**
|
|
27
|
+
* Non-Latin scripts where the Latin-centric rules system is weak — hand to neural regardless of
|
|
28
|
+
* kind.
|
|
29
|
+
*/
|
|
30
|
+
const OOD_SCRIPTS = new Set(["cjk", "cyrillic", "arabic"]);
|
|
31
|
+
/** Character classes that count as "Latin / clean" for the `rule_preferred` guard. */
|
|
32
|
+
const LATIN_CLASSES = new Set(["numeric", "alpha", "alphanumeric"]);
|
|
33
|
+
/**
|
|
34
|
+
* Minimum kind confidence to route a clean kind to `rule_preferred`. Strict by design: below this,
|
|
35
|
+
* v0's rules are brittle on structured input and a confident wrong preference is worse than keeping
|
|
36
|
+
* both sources (DeepSeek-coordinated, 2026-06-17 — 0.7 invited false-preference).
|
|
37
|
+
*/
|
|
38
|
+
export const CLEAN_KIND_CONFIDENCE = 0.8;
|
|
39
|
+
/**
|
|
40
|
+
* Classify the input's shape into a default policy mode.
|
|
41
|
+
*
|
|
42
|
+
* The decision tree (first match wins):
|
|
43
|
+
*
|
|
44
|
+
* 0. **OOD script** (`cjk` / `cyrillic` / `arabic`) → `neural_preferred`. Script dominates — rules are
|
|
45
|
+
* Latin-centric, so non-Latin input is neural's regardless of kind.
|
|
46
|
+
* 1. **Clean structured** — a {@link RULE_CLEAN_KINDS} kind at confidence ≥
|
|
47
|
+
* {@link CLEAN_KIND_CONFIDENCE}, a Latin/unknown character class, and the placer not abstained →
|
|
48
|
+
* `rule_preferred`. v0's home turf.
|
|
49
|
+
* 2. **Both weak** — the placer abstained, or kind confidence is below the cutoff → `abstain` (mode
|
|
50
|
+
* `both`, drop nothing).
|
|
51
|
+
* 3. **Otherwise** (confident, Latin, placer-OK, but not a clean kind — `landmark`, `vague`,
|
|
52
|
+
* `locality_only`) → `neural_preferred`.
|
|
53
|
+
*
|
|
54
|
+
* @param kind Kind-classifier signal.
|
|
55
|
+
* @param shape Query-shape signal.
|
|
56
|
+
* @param placer Coarse-placer signal, or `null` when none ran.
|
|
57
|
+
*/
|
|
58
|
+
export function routeInputShape(kind, shape, placer) {
|
|
59
|
+
const cc = shape.characterClass;
|
|
60
|
+
const placerAbstained = placer !== null && (placer.abstained || placer.country === null || placer.country === "OTHER");
|
|
61
|
+
// 0. Non-Latin script → neural, before any kind-based routing.
|
|
62
|
+
if (cc !== undefined && OOD_SCRIPTS.has(cc)) {
|
|
63
|
+
return { defaultMode: "neural_preferred", abstain: false, reason: `ood-script:${cc}` };
|
|
64
|
+
}
|
|
65
|
+
// 1. Clean structured Latin address with a confident clean kind and no placer abstention → rules.
|
|
66
|
+
const latinOrUnknown = cc === undefined || LATIN_CLASSES.has(cc);
|
|
67
|
+
if (RULE_CLEAN_KINDS.has(kind.kind) &&
|
|
68
|
+
kind.confidence >= CLEAN_KIND_CONFIDENCE &&
|
|
69
|
+
latinOrUnknown &&
|
|
70
|
+
!placerAbstained) {
|
|
71
|
+
return {
|
|
72
|
+
defaultMode: "rule_preferred",
|
|
73
|
+
abstain: false,
|
|
74
|
+
reason: `clean:${kind.kind}@${kind.confidence.toFixed(2)}`,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// 2. Both signals weak → abstain (keep every source; drop nothing).
|
|
78
|
+
if (placerAbstained || kind.confidence < CLEAN_KIND_CONFIDENCE) {
|
|
79
|
+
return {
|
|
80
|
+
defaultMode: "both",
|
|
81
|
+
abstain: true,
|
|
82
|
+
reason: `weak:kind=${kind.kind}@${kind.confidence.toFixed(2)},placerAbstained=${placerAbstained}`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// 3. Confident, Latin, placer-OK, but not a clean kind → neural.
|
|
86
|
+
return { defaultMode: "neural_preferred", abstain: false, reason: `neural-default:${kind.kind}` };
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=input-shape-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-shape-router.js","sourceRoot":"","sources":["../../policy/input-shape-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6DH,+EAA+E;AAC/E,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;AAExH;;;GAGG;AACH,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAE/E,sFAAsF;AACtF,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;AAExF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAExC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,eAAe,CAC9B,IAAsB,EACtB,KAAwB,EACxB,MAAiC;IAEjC,MAAM,EAAE,GAAG,KAAK,CAAC,cAAc,CAAA;IAC/B,MAAM,eAAe,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,CAAA;IAEtH,+DAA+D;IAC/D,IAAI,EAAE,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAA;IACvF,CAAC;IAED,kGAAkG;IAClG,MAAM,cAAc,GAAG,EAAE,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChE,IACC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,IAAI,qBAAqB;QACxC,cAAc;QACd,CAAC,eAAe,EACf,CAAC;QACF,OAAO;YACN,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;SAC1D,CAAA;IACF,CAAC;IAED,oEAAoE;IACpE,IAAI,eAAe,IAAI,IAAI,CAAC,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAChE,OAAO;YACN,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,eAAe,EAAE;SACjG,CAAA;IACF,CAAC;IAED,iEAAiE;IACjE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAA;AAClG,CAAC"}
|
package/out/policy/registry.d.ts
CHANGED
|
@@ -10,15 +10,19 @@
|
|
|
10
10
|
* per-locale overrides at startup. Look-up and `apply` are pure.
|
|
11
11
|
*/
|
|
12
12
|
import type { ClassificationProposal, ComponentTag } from "@mailwoman/core/types";
|
|
13
|
-
import type { ClassifierPolicy, PolicyRegistry } from "./policy.js";
|
|
13
|
+
import type { ClassifierPolicy, PolicyMode, PolicyRegistry } from "./policy.js";
|
|
14
14
|
/**
|
|
15
15
|
* Concrete registry implementation. Construct empty with `new InMemoryPolicyRegistry()` and load
|
|
16
16
|
* entries via `set()`, or pre-load defaults via `InMemoryPolicyRegistry.withDefaults()`.
|
|
17
17
|
*/
|
|
18
18
|
export declare class InMemoryPolicyRegistry implements PolicyRegistry {
|
|
19
19
|
#private;
|
|
20
|
-
/**
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
|
|
22
|
+
* input-shape router (#478) passes a shape-derived default so the whole table starts from the
|
|
23
|
+
* routed prior.
|
|
24
|
+
*/
|
|
25
|
+
static withDefaults(mode?: PolicyMode): InMemoryPolicyRegistry;
|
|
22
26
|
/** Install a policy entry. Replaces any prior entry with the same key. */
|
|
23
27
|
set(policy: ClassifierPolicy): void;
|
|
24
28
|
/** Remove a policy entry, if present. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAQ/E;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;;IAG5D;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,GAAE,UAAwB,GAAG,sBAAsB;IAQ3E,0EAA0E;IAC1E,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAInC,yCAAyC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD,+CAA+C;IAC/C,OAAO,IAAI,gBAAgB,EAAE;IAI7B,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAUlE,KAAK,CAAC,SAAS,EAAE,SAAS,sBAAsB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,sBAAsB,EAAE;CAkB9F"}
|
package/out/policy/registry.js
CHANGED
|
@@ -20,10 +20,14 @@ function policyKey(component, locale) {
|
|
|
20
20
|
*/
|
|
21
21
|
export class InMemoryPolicyRegistry {
|
|
22
22
|
#entries = new Map();
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Build a registry pre-loaded with `mode` for every component (default `rule_only`). The
|
|
25
|
+
* input-shape router (#478) passes a shape-derived default so the whole table starts from the
|
|
26
|
+
* routed prior.
|
|
27
|
+
*/
|
|
28
|
+
static withDefaults(mode = "rule_only") {
|
|
25
29
|
const registry = new InMemoryPolicyRegistry();
|
|
26
|
-
for (const policy of buildDefaultPolicies()) {
|
|
30
|
+
for (const policy of buildDefaultPolicies(mode)) {
|
|
27
31
|
registry.set(policy);
|
|
28
32
|
}
|
|
29
33
|
return registry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGtE,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B,SAAS,SAAS,CAAC,SAAuB,EAAE,MAA0B;IACrE,OAAO,GAAG,SAAS,KAAK,MAAM,IAAI,iBAAiB,EAAE,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAClC,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAA;IAE9C
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../policy/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,8 +27,10 @@ export type SerializableResolveOpts = Omit<ResolveOpts, "addressPoints" | "inter
|
|
|
27
27
|
/** Strip the live lookup handles from `ResolveOpts` so the rest can be JSON-serialized over HTTP. */
|
|
28
28
|
export declare function serializableResolveOpts(opts?: ResolveOpts): SerializableResolveOpts | undefined;
|
|
29
29
|
export interface RemoteResolverOpts {
|
|
30
|
-
/**
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Full URL of the resolver service's resolve-tree endpoint, e.g.
|
|
32
|
+
* `http://resolver:7081/api/resolve-tree`.
|
|
33
|
+
*/
|
|
32
34
|
endpoint: string;
|
|
33
35
|
/** Injectable fetch (tests / custom agents). Defaults to the global `fetch`. */
|
|
34
36
|
fetch?: typeof fetch;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;
|
|
1
|
+
{"version":3,"file":"remote-resolver.d.ts","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAEvD,oGAAoG;AACpG,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CAAC,CAAA;AAE1F,qGAAqG;AACrG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,uBAAuB,GAAG,SAAS,CAI/F;AAED,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,gGAAgG;AAChG,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,CAAC,EAAE,uBAAuB,CAAA;CAC9B;AAED,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,WAAW,CAAA;CACjB;AAED,qBAAa,cAAe,YAAW,QAAQ;;gBAMlC,IAAI,EAAE,kBAAkB;IAQ9B,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAuB9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-resolver.js","sourceRoot":"","sources":["../../resolver/remote-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,qGAAqG;AACrG,MAAM,UAAU,uBAAuB,CAAC,IAAkB;IACzD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;IAChE,OAAO,IAAI,CAAA;AACZ,CAAC;AA2BD,MAAM,OAAO,cAAc;IACjB,SAAS,CAAQ;IACjB,MAAM,CAAc;IACpB,UAAU,CAAQ;IAClB,QAAQ,CAAwB;IAEzC,YAAY,IAAwB;QACnC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAA;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,IAAkB;QACtD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACnE,IAAI,CAAC;YACJ,MAAM,IAAI,GAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAA;YAC9E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAA;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,WAAW,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;YAC5F,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAA;YAC/D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC,IAAI,CAAA;QACjB,CAAC;gBAAS,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACF,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EASN,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,QAAQ,CAEpE"}
|
package/out/resolver/resolve.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* for ambiguous names — `Springfield` under a resolved `Illinois` parent resolves to the IL one,
|
|
12
12
|
* not the MA one.
|
|
13
13
|
*/
|
|
14
|
-
import { DEFAULT_PLACETYPE_MAP, } from "./types.js";
|
|
14
|
+
import { DEFAULT_PLACETYPE_MAP, isPlacetypeFallback, } from "./types.js";
|
|
15
15
|
/**
|
|
16
16
|
* Build a `Resolver` backed by a `ResolverBackend`. The backend can be any concrete impl
|
|
17
17
|
* structurally compatible with `PlaceLookup` — e.g. `new WofSqlitePlaceLookup({ databasePath
|
|
@@ -62,7 +62,7 @@ const STREET_NAME_TAGS = new Set(["street", "street_prefix", "street_prefix_part
|
|
|
62
62
|
* prefix/particle/suffix descendants (NOT house_number/unit, which also nest under street), order
|
|
63
63
|
* by span offset, and join.
|
|
64
64
|
*/
|
|
65
|
-
function assembleStreetValue(streetNode) {
|
|
65
|
+
function assembleStreetValue(streetNode, directionalUnit) {
|
|
66
66
|
const parts = [];
|
|
67
67
|
const stack = [streetNode];
|
|
68
68
|
while (stack.length > 0) {
|
|
@@ -71,9 +71,42 @@ function assembleStreetValue(streetNode) {
|
|
|
71
71
|
parts.push(n);
|
|
72
72
|
stack.push(...n.children);
|
|
73
73
|
}
|
|
74
|
+
// #718 admin-tail: a directional quadrant the model mis-tagged `unit` ("1532 Taylor Street NE" →
|
|
75
|
+
// [unit] "NE") folds back into the street key by span order, so the situs/interp lookup matches the
|
|
76
|
+
// shard's "taylor street northeast" (the lookup normalizer expands the abbreviation). Lookup-key
|
|
77
|
+
// only — the parse output and admin resolution are untouched. Byte-stable when absent (undefined).
|
|
78
|
+
if (directionalUnit && directionalUnit.value.trim())
|
|
79
|
+
parts.push(directionalUnit);
|
|
74
80
|
parts.sort((a, b) => a.start - b.start);
|
|
75
81
|
return parts.map((n) => n.value.trim()).join(" ");
|
|
76
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Directional quadrant values the model sometimes emits as a `unit` node instead of inside the
|
|
85
|
+
* street subtree (#718 admin-tail diagnostic: ~19% of the admin-fallback tail, 83% of DC). Folded
|
|
86
|
+
* into the street lookup key by {@link assembleStreetValue}; the situs/interp lookup normalizer
|
|
87
|
+
* expands the abbreviation ("ne" → "northeast") so the shard's full street name matches.
|
|
88
|
+
*/
|
|
89
|
+
const STREET_DIRECTIONAL_UNITS = new Set([
|
|
90
|
+
"n",
|
|
91
|
+
"s",
|
|
92
|
+
"e",
|
|
93
|
+
"w",
|
|
94
|
+
"ne",
|
|
95
|
+
"nw",
|
|
96
|
+
"se",
|
|
97
|
+
"sw",
|
|
98
|
+
"north",
|
|
99
|
+
"south",
|
|
100
|
+
"east",
|
|
101
|
+
"west",
|
|
102
|
+
"northeast",
|
|
103
|
+
"northwest",
|
|
104
|
+
"southeast",
|
|
105
|
+
"southwest",
|
|
106
|
+
]);
|
|
107
|
+
function isDirectionalUnit(value) {
|
|
108
|
+
return STREET_DIRECTIONAL_UNITS.has(value.trim().toLowerCase().replace(/\./g, ""));
|
|
109
|
+
}
|
|
77
110
|
/**
|
|
78
111
|
* Address-point tier (#476): find `street` + `house_number` in the tree (first occurrence,
|
|
79
112
|
* depth-first), scope by the tree's postcode/locality values, and on an exact hit stamp the point
|
|
@@ -82,6 +115,7 @@ function assembleStreetValue(streetNode) {
|
|
|
82
115
|
function applyAddressPoint(roots, lookup) {
|
|
83
116
|
let street;
|
|
84
117
|
let houseNumber;
|
|
118
|
+
let directionalUnit;
|
|
85
119
|
let locality;
|
|
86
120
|
let postcode;
|
|
87
121
|
const stack = [...roots];
|
|
@@ -91,6 +125,8 @@ function applyAddressPoint(roots, lookup) {
|
|
|
91
125
|
street = n;
|
|
92
126
|
if (n.tag === "house_number" && !houseNumber)
|
|
93
127
|
houseNumber = n;
|
|
128
|
+
if (n.tag === "unit" && !directionalUnit && isDirectionalUnit(n.value))
|
|
129
|
+
directionalUnit = n;
|
|
94
130
|
if (n.tag === "locality" && !locality && n.value.trim())
|
|
95
131
|
locality = n.value.trim();
|
|
96
132
|
if (n.tag === "postcode" && !postcode && n.value.trim())
|
|
@@ -99,7 +135,12 @@ function applyAddressPoint(roots, lookup) {
|
|
|
99
135
|
}
|
|
100
136
|
if (!street || !houseNumber)
|
|
101
137
|
return;
|
|
102
|
-
const hit = lookup.find({
|
|
138
|
+
const hit = lookup.find({
|
|
139
|
+
street: assembleStreetValue(street, directionalUnit),
|
|
140
|
+
number: houseNumber.value,
|
|
141
|
+
postcode,
|
|
142
|
+
locality,
|
|
143
|
+
});
|
|
103
144
|
if (!hit)
|
|
104
145
|
return;
|
|
105
146
|
street.metadata = {
|
|
@@ -119,6 +160,7 @@ function applyAddressPoint(roots, lookup) {
|
|
|
119
160
|
function applyInterpolation(roots, lookup, radiusCalibration) {
|
|
120
161
|
let street;
|
|
121
162
|
let houseNumber;
|
|
163
|
+
let directionalUnit;
|
|
122
164
|
let postcode;
|
|
123
165
|
const stack = [...roots];
|
|
124
166
|
while (stack.length > 0) {
|
|
@@ -127,6 +169,8 @@ function applyInterpolation(roots, lookup, radiusCalibration) {
|
|
|
127
169
|
street = n;
|
|
128
170
|
if (n.tag === "house_number" && !houseNumber)
|
|
129
171
|
houseNumber = n;
|
|
172
|
+
if (n.tag === "unit" && !directionalUnit && isDirectionalUnit(n.value))
|
|
173
|
+
directionalUnit = n;
|
|
130
174
|
if (n.tag === "postcode" && !postcode && n.value.trim())
|
|
131
175
|
postcode = n.value.trim();
|
|
132
176
|
stack.push(...n.children);
|
|
@@ -136,7 +180,7 @@ function applyInterpolation(roots, lookup, radiusCalibration) {
|
|
|
136
180
|
// The fall-through gate: an exact situs point already won — never override it with an estimate.
|
|
137
181
|
if (street.metadata?.["resolution_tier"] === "address_point")
|
|
138
182
|
return;
|
|
139
|
-
const hit = lookup.find({ street: assembleStreetValue(street), number: houseNumber.value, postcode });
|
|
183
|
+
const hit = lookup.find({ street: assembleStreetValue(street, directionalUnit), number: houseNumber.value, postcode });
|
|
140
184
|
if (!hit)
|
|
141
185
|
return;
|
|
142
186
|
// Conformal-calibrated radius when the caller supplies a multiplier (#374): the raw half-segment
|
|
@@ -340,9 +384,30 @@ class WofResolver {
|
|
|
340
384
|
ranked = [...candidates].sort((a, b) => Number(b.exactMatch ?? false) - Number(a.exactMatch ?? false) ||
|
|
341
385
|
b.score + w * (post[b.country] ?? 0) - (a.score + w * (post[a.country] ?? 0)));
|
|
342
386
|
}
|
|
387
|
+
// Exact-type preference (#718): when the placetype-equivalence group let a broader admin tier
|
|
388
|
+
// (`macroregion`/`macrocounty`) into the candidate pool, prefer a candidate of the EXACT
|
|
389
|
+
// requested type over the macro fallback — a real `region` (US state, DE Bundesland, ES
|
|
390
|
+
// provincia) must win over a same-name macroregion namesake, so no real region silently
|
|
391
|
+
// downgrades to a macro. STABLE partition: exact-type candidates keep their (already-ranked)
|
|
392
|
+
// relative order ahead of fallbacks, so the score / anchor re-rank survives WITHIN each tier.
|
|
393
|
+
// No-op for placetypes without a macro fallback (the byte-stable default) and when every
|
|
394
|
+
// candidate is the same tier.
|
|
395
|
+
const hasFallbackCandidate = ranked.some((c) => isPlacetypeFallback(placetype, c.placetype));
|
|
396
|
+
if (hasFallbackCandidate && ranked.length > 1) {
|
|
397
|
+
ranked = [
|
|
398
|
+
...ranked.filter((c) => !isPlacetypeFallback(placetype, c.placetype)),
|
|
399
|
+
...ranked.filter((c) => isPlacetypeFallback(placetype, c.placetype)),
|
|
400
|
+
];
|
|
401
|
+
}
|
|
343
402
|
const top = ranked[0];
|
|
344
403
|
if (top.score < state.minWinningScore)
|
|
345
404
|
return null;
|
|
405
|
+
// Fallback-observability (#718): if the winner is a macro-type AND no exact-type candidate
|
|
406
|
+
// existed for this span, annotate that a broader tier stood in for the true one. Additive —
|
|
407
|
+
// identity/coordinate are unchanged; only `metadata.resolution_quality` is stamped downstream.
|
|
408
|
+
if (isPlacetypeFallback(placetype, top.placetype)) {
|
|
409
|
+
top.resolutionQuality = "fallback";
|
|
410
|
+
}
|
|
346
411
|
return { top, alternatives: ranked.slice(1) };
|
|
347
412
|
}
|
|
348
413
|
}
|
|
@@ -377,6 +442,11 @@ function decorateNode(node, resolved, alternatives) {
|
|
|
377
442
|
// than silently trust the resolved point.
|
|
378
443
|
if (resolved.mismatch)
|
|
379
444
|
node.metadata["postcode_city_mismatch"] = true;
|
|
445
|
+
// Fallback-observability (#718): a broader admin tier (macroregion/macrocounty) stood in for the
|
|
446
|
+
// true region/county because no exact-type candidate existed. Additive annotation only — the
|
|
447
|
+
// resolved coordinate/identity above is untouched; this just lets a consumer / QA pass see it.
|
|
448
|
+
if (resolved.resolutionQuality)
|
|
449
|
+
node.metadata["resolution_quality"] = resolved.resolutionQuality;
|
|
380
450
|
if (alternatives.length > 0) {
|
|
381
451
|
node.alternatives = alternatives;
|
|
382
452
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAGN,qBAAqB,GAOrB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACzD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAoCD;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,UAAyC;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAE,CAAA;IAClD,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;IACzG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B,IAAI,KAAM,CAAC,UAAU,KAAK,MAAO,CAAC,UAAU,IAAI,KAAM,CAAC,UAAU,KAAK,MAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IACrG,OAAO,KAAM,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAA6B;IACxD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,wGAAwG;AACxG,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,wBAAwB,EAAE,eAAe,CAAC,CAAC,CAAA;AAExG;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,UAAuB;IACnD,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAoB,EAAE,MAA0B;IAC1E,IAAI,MAA+B,CAAA;IACnC,IAAI,WAAoC,CAAA;IACxC,IAAI,QAA4B,CAAA;IAChC,IAAI,QAA4B,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAM;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC/G,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,CAAC,QAAQ,GAAG;QACjB,GAAG,MAAM,CAAC,QAAQ;QAClB,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QACvF,eAAe,EAAE,eAAe;KAChC,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,KAAoB,EAAE,MAA2B,EAAE,iBAA0B;IACxG,IAAI,MAA+B,CAAA;IACnC,IAAI,WAAoC,CAAA;IACxC,IAAI,QAA4B,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAM;IACnC,gGAAgG;IAChG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAAK,eAAe;QAAE,OAAM;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACrG,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,iGAAiG;IACjG,mGAAmG;IACnG,8FAA8F;IAC9F,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAA;IAC1G,MAAM,CAAC,QAAQ,GAAG;QACjB,GAAG,MAAM,CAAC,QAAQ;QAClB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QAC5F,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,UAAU;QACzB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,oBAAoB,EAAE,GAAG,CAAC,MAAM;QAChC,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACF,CAAC;AAED,MAAM,WAAW;IACP,QAAQ,CAAiB;IAElC,YAAY,OAAwB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,OAAoB,EAAE;QAC1D,MAAM,KAAK,GAAoB;YAC9B,gBAAgB,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACvC,wFAAwF;YACxF,+DAA+D;YAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,qBAAqB;YACxD,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;YAC1C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;YAClD,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;YAC3C,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YACxC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG;YACtC,4FAA4F;YAC5F,+FAA+F;YAC/F,yFAAyF;YACzF,+EAA+E;YAC/E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YAC/E,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;YAChD,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,IAAI;SACxB,CAAA;QAED,MAAM,QAAQ,GAAkB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACxE,CAAC;QAED,mGAAmG;QACnG,mGAAmG;QACnG,mGAAmG;QACnG,qFAAqF;QACrF,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjH,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACzE,CAAC;QAED,0FAA0F;QAC1F,8FAA8F;QAC9F,qCAAqC;QACrC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAChD,CAAC;QACD,2FAA2F;QAC3F,0FAA0F;QAC1F,iDAAiD;QACjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAqB,EAAE,UAAuB;QACjE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB;YAAE,OAAM;QACnF,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,MAAM,cAAc,GAAmB;YACtC,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE;YACxB,QAAQ,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE;YACtC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE;SACxG,CAAA;QACD,UAAU,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAiB,EAAE,cAAoC,EAAE,KAAsB;QAC1F,2CAA2C;QAC3C,MAAM,SAAS,GAAgB,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;QAExD,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAmB,CAAC,CAAA;QAC9D,kGAAkG;QAClG,8FAA8F;QAC9F,4EAA4E;QAC5E,IAAI,SAAS,KAAK,UAAU;YAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAC9D,IAAI,QAAQ,GAAyB,IAAI,CAAA;QACzC,IAAI,SAAS,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;YAChF,IAAI,MAAM,EAAE,CAAC;gBACZ,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;gBACrB,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;gBACxD,6FAA6F;gBAC7F,6FAA6F;gBAC7F,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACvD,SAAS,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;gBAC1G,CAAC;gBACD,2FAA2F;gBAC3F,iEAAiE;gBACjE,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC7D,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;oBACjC,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAA;gBACrC,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,IAAI,cAAc,CAAA;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,IAAiB,EACjB,SAAiB,EACjB,cAAoC,EACpC,KAAsB;QAEtB,KAAK,CAAC,gBAAgB,EAAE,CAAA;QAExB,MAAM,KAAK,GAAgD;YAC1D,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,mBAAmB;SAChC,CAAA;QACD,4FAA4F;QAC5F,2FAA2F;QAC3F,6FAA6F;QAC7F,yFAAyF;QACzF,6BAA6B;QAC7B,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,EAAE,KAAK,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAA;QAC/F,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,IAAI,KAAK,CAAC,cAAc,CAAA;QAC/D,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;QACpC,4FAA4F;QAC5F,gGAAgG;QAChG,2EAA2E;QAC3E,IAAI,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAE/E,IAAI,UAA2B,CAAA;QAC/B,IAAI,CAAC;YACJ,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACjD,2FAA2F;YAC3F,4FAA4F;YAC5F,sFAAsF;YACtF,wFAAwF;YACxF,4FAA4F;YAC5F,yFAAyF;YACzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrF,OAAO,KAAK,CAAC,QAAQ,CAAA;gBACrB,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClD,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,yFAAyF;YACzF,qCAAqC;YACrC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACxC,2FAA2F;QAC3F,iGAAiG;QACjG,mGAAmG;QACnG,iGAAiG;QACjG,uDAAuD;QACvD,EAAE;QACF,+FAA+F;QAC/F,kGAAkG;QAClG,iGAAiG;QACjG,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,4FAA4F;QAC5F,mGAAmG;QACnG,EAAE;QACF,8FAA8F;QAC9F,8FAA8F;QAC9F,yFAAyF;QACzF,4FAA4F;QAC5F,+FAA+F;QAC/F,qFAAqF;QACrF,+FAA+F;QAC/F,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,UAAU,CAAA;QACzE,IAAI,MAAM,GAAG,UAAU,CAAA;QACvB,IAAI,KAAK,CAAC,eAAe,IAAI,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAA;YAClC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAA;YAC5B,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;gBAC7D,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9E,CAAA;QACF,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACtB,IAAI,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAClD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,CAAC;CACD;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,IAAiB,EAAE,QAAuB,EAAE,YAA6B;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;IACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAA;IACtD,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;IACvB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;IACvB,IAAI,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAA,CAAC,2DAA2D;IAC/F,+FAA+F;IAC/F,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1G,gGAAgG;IAChG,kGAAkG;IAClG,0CAA0C;IAC1C,IAAI,QAAQ,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAA;IACrE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACjC,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../resolver/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAGN,qBAAqB,EAErB,mBAAmB,GAMnB,MAAM,YAAY,CAAA;AAEnB;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACzD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAoCD;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,UAAyC;IAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAE,CAAA;IAClD,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;IACzG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IAC9B,IAAI,KAAM,CAAC,UAAU,KAAK,MAAO,CAAC,UAAU,IAAI,KAAM,CAAC,UAAU,KAAK,MAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IACrG,OAAO,KAAM,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,KAA6B;IACxD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC5E,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,wGAAwG;AACxG,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,wBAAwB,EAAE,eAAe,CAAC,CAAC,CAAA;AAExG;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,UAAuB,EAAE,eAA6B;IAClF,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAA;IAC1B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,iGAAiG;IACjG,oGAAoG;IACpG,iGAAiG;IACjG,mGAAmG;IACnG,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAChF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IACvC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IAC7D,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;CACX,CAAC,CAAA;AACF,SAAS,iBAAiB,CAAC,KAAa;IACvC,OAAO,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;AACnF,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAoB,EAAE,MAA0B;IAC1E,IAAI,MAA+B,CAAA;IACnC,IAAI,WAAoC,CAAA;IACxC,IAAI,eAAwC,CAAA;IAC5C,IAAI,QAA4B,CAAA;IAChC,IAAI,QAA4B,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,eAAe,GAAG,CAAC,CAAA;QAC3F,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAM;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC;QACpD,MAAM,EAAE,WAAW,CAAC,KAAK;QACzB,QAAQ;QACR,QAAQ;KACR,CAAC,CAAA;IACF,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,CAAC,QAAQ,GAAG;QACjB,GAAG,MAAM,CAAC,QAAQ;QAClB,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QACvF,eAAe,EAAE,eAAe;KAChC,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,KAAoB,EAAE,MAA2B,EAAE,iBAA0B;IACxG,IAAI,MAA+B,CAAA;IACnC,IAAI,WAAoC,CAAA;IACxC,IAAI,eAAwC,CAAA;IAC5C,IAAI,QAA4B,CAAA;IAChC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM;YAAE,MAAM,GAAG,CAAC,CAAA;QAC7C,IAAI,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,WAAW;YAAE,WAAW,GAAG,CAAC,CAAA;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,eAAe,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,eAAe,GAAG,CAAC,CAAA;QAC3F,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAClF,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW;QAAE,OAAM;IACnC,gGAAgG;IAChG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,KAAK,eAAe;QAAE,OAAM;IACpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;IACtH,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,iGAAiG;IACjG,mGAAmG;IACnG,8FAA8F;IAC9F,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAA;IAC1G,MAAM,CAAC,QAAQ,GAAG;QACjB,GAAG,MAAM,CAAC,QAAQ;QAClB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QAC5F,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,UAAU;QACzB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,oBAAoB,EAAE,GAAG,CAAC,MAAM;QAChC,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACF,CAAC;AAED,MAAM,WAAW;IACP,QAAQ,CAAiB;IAElC,YAAY,OAAwB;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAiB,EAAE,OAAoB,EAAE;QAC1D,MAAM,KAAK,GAAoB;YAC9B,gBAAgB,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACvC,wFAAwF;YACxF,+DAA+D;YAC/D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,qBAAqB;YACxD,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,CAAC;YAC1C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,CAAC;YAClD,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;YAC3C,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC;YACxC,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG;YACtC,4FAA4F;YAC5F,+FAA+F;YAC/F,yFAAyF;YACzF,+EAA+E;YAC/E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI;YAC/E,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;YAChD,mBAAmB,EAAE,KAAK;YAC1B,cAAc,EAAE,IAAI;YACpB,kBAAkB,EAAE,IAAI;SACxB,CAAA;QAED,MAAM,QAAQ,GAAkB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACxE,CAAC;QAED,mGAAmG;QACnG,mGAAmG;QACnG,mGAAmG;QACnG,qFAAqF;QACrF,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjH,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACzE,CAAC;QAED,0FAA0F;QAC1F,8FAA8F;QAC9F,qCAAqC;QACrC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAChD,CAAC;QACD,2FAA2F;QAC3F,0FAA0F;QAC1F,iDAAiD;QACjD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAA;QACtF,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IAC1C,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAAqB,EAAE,UAAuB;QACjE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB;YAAE,OAAM;QACnF,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,MAAM,cAAc,GAAmB;YACtC,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE;YACxB,QAAQ,EAAE,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE;YACtC,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE;SACxG,CAAA;QACD,UAAU,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;IACrF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAiB,EAAE,cAAoC,EAAE,KAAsB;QAC1F,2CAA2C;QAC3C,MAAM,SAAS,GAAgB,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;QAExD,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAmB,CAAC,CAAA;QAC9D,kGAAkG;QAClG,8FAA8F;QAC9F,4EAA4E;QAC5E,IAAI,SAAS,KAAK,UAAU;YAAE,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAC9D,IAAI,QAAQ,GAAyB,IAAI,CAAA;QACzC,IAAI,SAAS,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAA;YAChF,IAAI,MAAM,EAAE,CAAC;gBACZ,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA;gBACrB,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;gBACxD,6FAA6F;gBAC7F,6FAA6F;gBAC7F,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;oBACvD,SAAS,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAA;gBAC1G,CAAC;gBACD,2FAA2F;gBAC3F,iEAAiE;gBACjE,IAAI,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;oBAC7D,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;oBACjC,KAAK,CAAC,kBAAkB,GAAG,SAAS,CAAA;gBACrC,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,IAAI,cAAc,CAAA;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,IAAiB,EACjB,SAAiB,EACjB,cAAoC,EACpC,KAAsB;QAEtB,KAAK,CAAC,gBAAgB,EAAE,CAAA;QAExB,MAAM,KAAK,GAAgD;YAC1D,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,mBAAmB;SAChC,CAAA;QACD,4FAA4F;QAC5F,2FAA2F;QAC3F,6FAA6F;QAC7F,yFAAyF;QACzF,6BAA6B;QAC7B,IAAI,cAAc,IAAI,OAAO,cAAc,CAAC,EAAE,KAAK,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAA;QAC/F,MAAM,OAAO,GAAG,cAAc,EAAE,OAAO,IAAI,KAAK,CAAC,cAAc,CAAA;QAC/D,IAAI,OAAO;YAAE,KAAK,CAAC,OAAO,GAAG,OAAO,CAAA;QACpC,4FAA4F;QAC5F,gGAAgG;QAChG,2EAA2E;QAC3E,IAAI,SAAS,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;QAE/E,IAAI,UAA2B,CAAA;QAC/B,IAAI,CAAC;YACJ,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACjD,2FAA2F;YAC3F,4FAA4F;YAC5F,sFAAsF;YACtF,wFAAwF;YACxF,4FAA4F;YAC5F,yFAAyF;YACzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrF,OAAO,KAAK,CAAC,QAAQ,CAAA;gBACrB,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAClD,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,yFAAyF;YACzF,qCAAqC;YACrC,OAAO,IAAI,CAAA;QACZ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACxC,2FAA2F;QAC3F,iGAAiG;QACjG,mGAAmG;QACnG,iGAAiG;QACjG,uDAAuD;QACvD,EAAE;QACF,+FAA+F;QAC/F,kGAAkG;QAClG,iGAAiG;QACjG,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,4FAA4F;QAC5F,mGAAmG;QACnG,EAAE;QACF,8FAA8F;QAC9F,8FAA8F;QAC9F,yFAAyF;QACzF,4FAA4F;QAC5F,+FAA+F;QAC/F,qFAAqF;QACrF,+FAA+F;QAC/F,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,UAAU,CAAA;QACzE,IAAI,MAAM,GAAG,UAAU,CAAA;QACvB,IAAI,KAAK,CAAC,eAAe,IAAI,cAAc,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,GAAG,KAAK,CAAC,eAAe,CAAA;YAClC,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAA;YAC5B,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;gBAC7D,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAC9E,CAAA;QACF,CAAC;QAED,8FAA8F;QAC9F,yFAAyF;QACzF,wFAAwF;QACxF,wFAAwF;QACxF,6FAA6F;QAC7F,8FAA8F;QAC9F,yFAAyF;QACzF,8BAA8B;QAC9B,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5F,IAAI,oBAAoB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,GAAG;gBACR,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBACrE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;aACpE,CAAA;QACF,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACtB,IAAI,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe;YAAE,OAAO,IAAI,CAAA;QAClD,2FAA2F;QAC3F,4FAA4F;QAC5F,+FAA+F;QAC/F,IAAI,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,iBAAiB,GAAG,UAAU,CAAA;QACnC,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,CAAC;CACD;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,IAAiB,EAAE,QAAuB,EAAE,YAA6B;IAC9F,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAA;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAA;QACtE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACrB,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;IACxB,IAAI,CAAC,QAAQ,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAA;IACtD,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;IACvB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAA;IACvB,IAAI,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,EAAE,EAAE,CAAA,CAAC,2DAA2D;IAC/F,+FAA+F;IAC/F,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1G,gGAAgG;IAChG,kGAAkG;IAClG,0CAA0C;IAC1C,IAAI,QAAQ,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAA;IACrE,iGAAiG;IACjG,6FAA6F;IAC7F,+FAA+F;IAC/F,IAAI,QAAQ,CAAC,iBAAiB;QAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAA;IAChG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACjC,CAAC;AACF,CAAC"}
|
package/out/resolver/types.d.ts
CHANGED
|
@@ -54,6 +54,16 @@ export interface ResolvedPlace {
|
|
|
54
54
|
* flag the conflict instead of silently mislocating.
|
|
55
55
|
*/
|
|
56
56
|
mismatch?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Fallback-observability marker (#718). Set to `"fallback"` by the resolver when this span
|
|
59
|
+
* resolved to a placetype-EQUIVALENCE-GROUP member (a macro-type — `macroregion`/`macrocounty`)
|
|
60
|
+
* because no candidate of the EXACT requested placetype (`region`/`county`) existed. It does NOT
|
|
61
|
+
* change the resolved identity or coordinate — it only annotates that a broader admin tier stood
|
|
62
|
+
* in for the true one, so a downstream consumer / QA pass can see a macroregion was used in lieu
|
|
63
|
+
* of a region. Surfaced onto the resolved node's metadata as `resolution_quality`. Absent when
|
|
64
|
+
* the exact placetype matched (the normal case).
|
|
65
|
+
*/
|
|
66
|
+
resolutionQuality?: "fallback";
|
|
57
67
|
}
|
|
58
68
|
/**
|
|
59
69
|
* Pull-based contract for a single resolver query. The resolver knows nothing about `AddressTree` —
|
|
@@ -322,18 +332,35 @@ export interface ResolveOpts {
|
|
|
322
332
|
export type PlacetypeMap = Partial<Record<ComponentTag, string>>;
|
|
323
333
|
export declare const DEFAULT_PLACETYPE_MAP: PlacetypeMap;
|
|
324
334
|
/**
|
|
325
|
-
* Placetype-equivalence groups for lookup FILTERING. WOF splits
|
|
326
|
-
* placetypes
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
335
|
+
* Placetype-equivalence groups for lookup FILTERING. WOF splits a single addressing tier across
|
|
336
|
+
* several placetypes, but an address's span can name ANY of them. A backend that filters to the one
|
|
337
|
+
* "obvious" placetype makes the equivalents unreachable, so a fuzzy same-name place in the wrong
|
|
338
|
+
* tier wins instead.
|
|
339
|
+
*
|
|
340
|
+
* Three tiers are affected (the value of each entry is the set the SQL filter should accept; the
|
|
341
|
+
* FIRST entry is the canonical/requested type, which shard routing keys off):
|
|
342
|
+
*
|
|
343
|
+
* - **`locality`** — `locality` (most cities), `borough` (Brooklyn, the Paris arrondissements, the
|
|
344
|
+
* London boroughs), and `localadmin` (FR communes, US towns/townships in New England). Without
|
|
345
|
+
* the group, Brooklyn-the-borough (pop 2.5M) was unreachable and the fuzzy "Brooklyn Park, MN"
|
|
346
|
+
* won.
|
|
347
|
+
* - **`region`** — `region` + `macroregion` (#718). WOF does NOT model every country's top-level
|
|
348
|
+
* civil division as `region`: Italian regions (Lombardia, Veneto, Toscana…) are `macroregion`
|
|
349
|
+
* (their PROVINCES are `region`), and the post-2016 French régions (Île-de-France) are
|
|
350
|
+
* `macroregion` too. An address's `region` span names exactly those, so a `region`-only filter
|
|
351
|
+
* resolved them to NOTHING (confirmed against the IT/FR eval rows). US states / DE Bundesländer /
|
|
352
|
+
* ES provincias are genuine `region`, so the EXACT-type match is preferred in ranking (see the
|
|
353
|
+
* resolve.ts fallback-quality annotation) — the macro is the recall safety net, not a demotion.
|
|
354
|
+
* - **`county`** — `county` + `macrocounty` (#718). The `subregion` ComponentTag maps to `county` via
|
|
355
|
+
* {@link DEFAULT_PLACETYPE_MAP}; WOF carries `macrocounty` for FR départements-grouping / DE / GB
|
|
356
|
+
* tiers above the county. Proactive (no eval row exercises `subregion` today) but symmetric with
|
|
357
|
+
* `region` — biasing to inclusion, since a missed resolution costs more than a too-broad
|
|
358
|
+
* candidate (which is QA-visible). Same exact-type preference applies.
|
|
331
359
|
*
|
|
332
360
|
* This table is the single source of truth for that expansion, shared by every lookup backend
|
|
333
361
|
* (`@mailwoman/resolver-wof-sqlite`, `@mailwoman/resolver-wof-wasm`, and the demo's httpvfs lookup)
|
|
334
|
-
* so the Node and browser resolvers can't drift. Keyed by the REQUESTED placetype
|
|
335
|
-
*
|
|
336
|
-
* an explicit `placetype: "borough"` query stays narrow.
|
|
362
|
+
* so the Node and browser resolvers can't drift. Keyed by the REQUESTED placetype. Placetypes
|
|
363
|
+
* without an entry pass through unchanged — an explicit `placetype: "borough"` query stays narrow.
|
|
337
364
|
*/
|
|
338
365
|
export declare const PLACETYPE_FILTER_GROUPS: Readonly<Record<string, readonly string[]>>;
|
|
339
366
|
/**
|
|
@@ -344,6 +371,18 @@ export declare const PLACETYPE_FILTER_GROUPS: Readonly<Record<string, readonly s
|
|
|
344
371
|
export declare function expandPlacetypeFilter(placetypes: null): null;
|
|
345
372
|
export declare function expandPlacetypeFilter(placetypes: readonly string[]): string[];
|
|
346
373
|
export declare function expandPlacetypeFilter(placetypes: readonly string[] | null): string[] | null;
|
|
374
|
+
/**
|
|
375
|
+
* Did `candidatePlacetype` resolve `requestedPlacetype` only via a BROADER admin tier (a macro-type
|
|
376
|
+
* fallback within the {@link PLACETYPE_FILTER_GROUPS} expansion), rather than the exact type
|
|
377
|
+
* (#718)?
|
|
378
|
+
*
|
|
379
|
+
* `region` → `region` is exact (false); `region` → `macroregion` is a fallback (true). Scoped to
|
|
380
|
+
* the `macro*` tiers (see {@link MACRO_FALLBACK_PLACETYPES}) so the `locality` group's
|
|
381
|
+
* borough/localadmin peers stay exact. The resolver uses this to (a) prefer an exact-type candidate
|
|
382
|
+
* in ranking and (b) annotate `resolutionQuality: "fallback"` when only a macro-type matched. A
|
|
383
|
+
* placetype outside the requested group, or any non-macro member, is treated as exact (false).
|
|
384
|
+
*/
|
|
385
|
+
export declare function isPlacetypeFallback(requestedPlacetype: string, candidatePlacetype: string): boolean;
|
|
347
386
|
/**
|
|
348
387
|
* The interface implemented by `createWofResolver` and any future resolver factories.
|
|
349
388
|
*
|