@mailwoman/phrase-grouper 9.2.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.
@@ -23,8 +23,8 @@ import {
23
23
  scoreVenuePhrase,
24
24
  tokenizeSegment,
25
25
  type SegmentToken,
26
- } from "./rules.ts"
27
- import type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseProposal, QueryShapeLike } from "./types.ts"
26
+ } from "#rules"
27
+ import type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseProposal, QueryShapeLike } from "#types"
28
28
 
29
29
  /**
30
30
  * Walk every QueryShape segment and emit one `tokens-by-segment` list. Falls back to treating the whole input as a
@@ -19,7 +19,7 @@
19
19
  * and `docs/articles/plan/phases/PHASE_8_v0_5_0_fresh_slate.md` § E for the v0.5.0 thread.
20
20
  */
21
21
 
22
- export { groupPhrases, groupPhrasesSync } from "./group.ts"
22
+ export { groupPhrases, groupPhrasesSync } from "#group"
23
23
 
24
24
  export {
25
25
  scoreHyphenatedCompound,
@@ -30,9 +30,9 @@ export {
30
30
  scoreStreetPhrase,
31
31
  scoreVenuePhrase,
32
32
  tokenizeSegment,
33
- } from "./rules.ts"
33
+ } from "#rules"
34
34
 
35
- export type { SegmentToken } from "./rules.ts"
35
+ export type { SegmentToken } from "#rules"
36
36
 
37
37
  export type {
38
38
  GroupPhrasesOpts,
@@ -43,4 +43,4 @@ export type {
43
43
  PhraseProposal,
44
44
  QueryShapeLike,
45
45
  Section,
46
- } from "./types.ts"
46
+ } from "#types"
@@ -16,9 +16,14 @@
16
16
  * (Stage 5) picks the best non-overlapping subset.
17
17
  */
18
18
 
19
+ import { isFloorDesignatorToken } from "@mailwoman/codex/us/floor-designator"
20
+ import { US_STATE_NAMES } from "@mailwoman/codex/us/state"
21
+ import { isStreetSuffixToken } from "@mailwoman/codex/us/street-suffix"
22
+ import { isUnitDesignatorToken } from "@mailwoman/codex/us/unit-designator"
19
23
  import { Span } from "@mailwoman/core/tokenization"
24
+ import { isRegionAbbreviationToken } from "@mailwoman/query-shape"
20
25
 
21
- import type { PhraseProposal, QueryShapeLike } from "./types.ts"
26
+ import type { PhraseProposal, QueryShapeLike } from "#types"
22
27
 
23
28
  /**
24
29
  * One token within a segment — absolute offsets into the normalized input. Built by `tokenizeSegment` from a
@@ -40,52 +45,20 @@ const WHITESPACE = /\s+/
40
45
  */
41
46
  const NEUTRAL_PROPOSAL_CONFIDENCE = 0.55
42
47
 
43
- const US_REGION_NAMES: ReadonlySet<string> = new Set([
44
- "alabama",
45
- "alaska",
46
- "arizona",
47
- "arkansas",
48
- "california",
49
- "colorado",
50
- "connecticut",
51
- "delaware",
52
- "florida",
53
- "georgia",
54
- "hawaii",
55
- "idaho",
56
- "illinois",
57
- "indiana",
58
- "iowa",
59
- "kansas",
60
- "kentucky",
61
- "louisiana",
62
- "maine",
63
- "maryland",
64
- "massachusetts",
65
- "michigan",
66
- "minnesota",
67
- "mississippi",
68
- "missouri",
69
- "montana",
70
- "nebraska",
71
- "nevada",
72
- "ohio",
73
- "oklahoma",
74
- "oregon",
75
- "pennsylvania",
76
- "tennessee",
77
- "texas",
78
- "utah",
79
- "vermont",
80
- "virginia",
81
- "washington",
82
- "wisconsin",
83
- "wyoming",
84
- ])
48
+ /**
49
+ * Single-token US state/territory names, derived from the codex roster. SINGLE-TOKEN scope on purpose: the non-tail
50
+ * region-name penalty below reads one token at a time, and a multi-word name ("New York", "North Carolina") can never
51
+ * match a single token — deriving only the single-token names keeps the set equal to what the check can ever see.
52
+ */
53
+ const US_REGION_NAMES: ReadonlySet<string> = new Set(
54
+ US_STATE_NAMES.filter((name) => !name.includes(" ")).map((name) => name.toLowerCase())
55
+ )
85
56
 
86
57
  /**
87
58
  * Split a segment body into whitespace-separated tokens. Offsets are absolute into the original input (caller supplies
88
- * the segment's `start` offset).
59
+ * the segment's `start` offset). Deliberately NOT `@mailwoman/query-shape`'s tokenizer: that one yields code-point
60
+ * CLASS runs for the whole input, while this one carries segment-relative → absolute span math for the proposal spans —
61
+ * the two disagree on what a token boundary is.
89
62
  */
90
63
  /**
91
64
  * Digit count above which a pure-numeric token stops being unambiguously a house number. 1-4 digits are clearly
@@ -169,10 +142,11 @@ function isAllDigit(s: string): boolean {
169
142
  }
170
143
 
171
144
  /**
172
- * True when token body is 2-3 uppercase Latin letters (US state, Canadian province abbreviation).
145
+ * Region-abbreviation SHAPE via the shared `@mailwoman/query-shape` predicate, widened to 3 letters (US states,
146
+ * Canadian provinces, and 3-letter codes like "TWN").
173
147
  */
174
148
  function isRegionAbbreviation(s: string): boolean {
175
- return /^[A-Z]{2,3}$/.test(s)
149
+ return isRegionAbbreviationToken(s, { maxLetters: 3 })
176
150
  }
177
151
 
178
152
  /**
@@ -185,59 +159,18 @@ function startsCapitalized(s: string): boolean {
185
159
  }
186
160
 
187
161
  /**
188
- * Common street-type suffixes (en-US + en-GB + abbreviated forms). Match case-insensitively against the raw token body.
189
- * The set is intentionally short coverage extension belongs in a future per-locale rule pack, not as a 500-entry
190
- * dictionary in this rule.
162
+ * Street-type suffix vocabulary the full USPS Pub-28 table via `@mailwoman/codex`, replacing the short local set. The
163
+ * codex lookup carries no dotted variants ("St.", "Ave."), so one trailing period is stripped before the probe.
191
164
  */
192
- const STREET_SUFFIXES: ReadonlySet<string> = new Set([
193
- "st",
194
- "st.",
195
- "street",
196
- "ave",
197
- "ave.",
198
- "avenue",
199
- "blvd",
200
- "blvd.",
201
- "boulevard",
202
- "rd",
203
- "rd.",
204
- "road",
205
- "ln",
206
- "ln.",
207
- "lane",
208
- "dr",
209
- "dr.",
210
- "drive",
211
- "way",
212
- "pl",
213
- "pl.",
214
- "place",
215
- "ct",
216
- "ct.",
217
- "court",
218
- "pkwy",
219
- "parkway",
220
- "hwy",
221
- "highway",
222
- "ter",
223
- "terrace",
224
- "cir",
225
- "circle",
226
- "sq",
227
- "square",
228
- "trl",
229
- "trail",
230
- ])
231
-
232
165
  function isStreetSuffix(token: string): boolean {
233
- return STREET_SUFFIXES.has(token.toLowerCase())
166
+ return isStreetSuffixToken(token.replace(/\.$/, ""))
234
167
  }
235
168
 
236
169
  /**
237
170
  * Romance/Latin street-TYPE words that LEAD the street ("Via Trento", "Calle Mayor", "Corso Italia"). English puts the
238
171
  * type last (a suffix — see STREET_SUFFIXES); Romance languages put it first. Without this, a leading "Via"/"Calle" is
239
- * capitalized first-segment text the locality rule happily proposes, and on OOD intl input the model can't type it
240
- * either — so the grouper-audit promotes it to a spurious `locality`, burying the real city (#425 re-gate).
172
+ * capitalized first-segment text the locality rule proposes, and on OOD intl input the model can't type it either — so
173
+ * the grouper-audit promotes it to a spurious `locality`, burying the real city (#425 re-verification).
241
174
  *
242
175
  * Street-TYPES only — deliberately NOT the ambiguous area/development words ("Polígono", "Urbanización", "Lugar",
243
176
  * "Partida", "Borgo") that legitimately serve AS localities. This stays a bounded linguistic category; per-locale
@@ -433,31 +366,21 @@ const VENUE_MARKERS: ReadonlyMap<string, number> = new Map([
433
366
  ])
434
367
 
435
368
  /**
436
- * Unit-designator tokens that gate the venue-by-exclusion heuristic. When any token in a segment matches one of these,
437
- * the segment is likely a unit/suite line, not a venue name.
438
- */
439
- const UNIT_MARKERS: ReadonlySet<string> = new Set([
440
- "apt",
441
- "apt.",
442
- "apartment",
443
- "unit",
444
- "ste",
445
- "ste.",
446
- "suite",
447
- "room",
448
- "rm",
449
- "rm.",
450
- "floor",
451
- "fl",
452
- "fl.",
453
- "bldg",
454
- "bldg.",
455
- "building",
456
- "dept",
457
- "dept.",
458
- "department",
459
- "#",
460
- ])
369
+ * Unit-marker tokens outside the USPS tables. Pub-28 Appendix C2 (via `@mailwoman/codex`) covers the designator words
370
+ * themselves APT/STE/RM/FL/BLDG/DEPT and their full forms so the local extension carries only the bare "#" that
371
+ * introduces "#4B", which is not USPS vocabulary.
372
+ */
373
+ const UNIT_MARKER_EXTENSIONS: ReadonlySet<string> = new Set(["#"])
374
+
375
+ /**
376
+ * True when a token admits the venue-by-exclusion heuristic as a unit/suite/floor marker: any USPS secondary unit or
377
+ * floor-class designator (dotted abbreviations included — one trailing period is stripped), or a local extension.
378
+ */
379
+ function isUnitMarker(token: string): boolean {
380
+ const bare = token.replace(/\.$/, "")
381
+
382
+ return UNIT_MARKER_EXTENSIONS.has(token) || isUnitDesignatorToken(bare) || isFloorDesignatorToken(bare)
383
+ }
461
384
 
462
385
  function venueMarkerWeight(tokens: ReadonlyArray<SegmentToken>): number {
463
386
  let maxWeight = 0
@@ -473,8 +396,8 @@ function venueMarkerWeight(tokens: ReadonlyArray<SegmentToken>): number {
473
396
  return maxWeight
474
397
  }
475
398
 
476
- function hasUnitMarker(tokens: ReadonlyArray<SegmentToken>): boolean {
477
- return tokens.some((t) => UNIT_MARKERS.has(t.body.toLowerCase()))
399
+ export function hasUnitMarker(tokens: ReadonlyArray<SegmentToken>): boolean {
400
+ return tokens.some((t) => isUnitMarker(t.body))
478
401
  }
479
402
 
480
403
  /**
package/lib/types.ts ADDED
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @copyright Sister Software
3
+ * @license AGPL-3.0
4
+ * @author Teffen Ellis, et al.
5
+ */
6
+
7
+ /**
8
+ * Re-exports of the canonical types from `@mailwoman/core/pipeline`.
9
+ */
10
+ export type { LocaleHint, PhraseGrouper, PhraseKind, PhraseProposal } from "@mailwoman/core/pipeline"
11
+
12
+ /**
13
+ * Re-export of the canonical `Section` type from `@mailwoman/core/types`. `Section = Span`.
14
+ */
15
+ export type { Section } from "@mailwoman/core/types"
16
+
17
+ /**
18
+ * The minimal input shapes consumed by `groupPhrases` come from `@mailwoman/query-shape` — one declaration shared by
19
+ * every Stage-2.x consumer. `QueryShapeLike` stays this package's public name for its narrow read-only view.
20
+ */
21
+ export type { NormalizedInputLite, QueryShapeTokensView as QueryShapeLike } from "@mailwoman/query-shape"
22
+
23
+ export interface GroupPhrasesOpts {
24
+ /**
25
+ * Reserved for future tunables (e.g. confidence floor, per-kind biasing). Currently unused.
26
+ */
27
+ confidenceFloor?: number
28
+ }
package/out/group.d.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * See `docs/articles/concepts/the-knowledge-ladder.md` § Phrase grouper for the design rationale,
13
13
  * and `phrase-grouper/rules.ts` for per-rule documentation.
14
14
  */
15
- import type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseProposal, QueryShapeLike } from "./types.ts";
15
+ import type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseProposal, QueryShapeLike } from "#types";
16
16
  /**
17
17
  * Synchronous, pure rule-based implementation. The async wrapper matches the pipeline contract.
18
18
  *
@@ -1 +1 @@
1
- {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AA6BnH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,UAAU,EACpB,KAAK,GAAE,gBAAqB,GAC1B,cAAc,EAAE,CA4BlB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE,UAAU,EACnB,IAAI,CAAC,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B"}
1
+ {"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../lib/group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAaH,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AA6B/G;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,UAAU,EACpB,KAAK,GAAE,gBAAqB,GAC1B,cAAc,EAAE,CA4BlB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE,UAAU,EACnB,IAAI,CAAC,EAAE,gBAAgB,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC,CAE3B"}
package/out/group.js CHANGED
@@ -12,7 +12,7 @@
12
12
  * See `docs/articles/concepts/the-knowledge-ladder.md` § Phrase grouper for the design rationale,
13
13
  * and `phrase-grouper/rules.ts` for per-rule documentation.
14
14
  */
15
- import { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "./rules.js";
15
+ import { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "#rules";
16
16
  /**
17
17
  * Walk every QueryShape segment and emit one `tokens-by-segment` list. Falls back to treating the whole input as a
18
18
  * single segment when QueryShape didn't supply segmentation (e.g. callers wiring the grouper into a path that bypasses
package/out/group.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../lib/group.ts"],"names":[],"mappings":"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"}
package/out/index.d.ts CHANGED
@@ -18,8 +18,8 @@
18
18
  * See `docs/articles/concepts/the-knowledge-ladder.md` § Phrase grouper for the design rationale
19
19
  * and `docs/articles/plan/phases/PHASE_8_v0_5_0_fresh_slate.md` § E for the v0.5.0 thread.
20
20
  */
21
- export { groupPhrases, groupPhrasesSync } from "./group.ts";
22
- export { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "./rules.ts";
23
- export type { SegmentToken } from "./rules.ts";
24
- export type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseGrouper, PhraseKind, PhraseProposal, QueryShapeLike, Section, } from "./types.ts";
21
+ export { groupPhrases, groupPhrasesSync } from "#group";
22
+ export { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "#rules";
23
+ export type { SegmentToken } from "#rules";
24
+ export type { GroupPhrasesOpts, LocaleHint, NormalizedInputLite, PhraseGrouper, PhraseKind, PhraseProposal, QueryShapeLike, Section, } from "#types";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,YAAY,EACX,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,OAAO,GACP,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEvD,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,QAAQ,CAAA;AAEf,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAE1C,YAAY,EACX,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,OAAO,GACP,MAAM,QAAQ,CAAA"}
package/out/index.js CHANGED
@@ -18,6 +18,6 @@
18
18
  * See `docs/articles/concepts/the-knowledge-ladder.md` § Phrase grouper for the design rationale
19
19
  * and `docs/articles/plan/phases/PHASE_8_v0_5_0_fresh_slate.md` § E for the v0.5.0 thread.
20
20
  */
21
- export { groupPhrases, groupPhrasesSync } from "./group.js";
22
- export { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "./rules.js";
21
+ export { groupPhrases, groupPhrasesSync } from "#group";
22
+ export { scoreHyphenatedCompound, scoreLocalityPhrase, scoreNumeric, scorePostcode, scoreRegionAbbreviation, scoreStreetPhrase, scoreVenuePhrase, tokenizeSegment, } from "#rules";
23
23
  //# sourceMappingURL=index.js.map
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE3D,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEvD,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GACf,MAAM,QAAQ,CAAA"}
package/out/rules.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * Per "possibilities not constraints", rules emit overlapping proposals freely. The reconciler
16
16
  * (Stage 5) picks the best non-overlapping subset.
17
17
  */
18
- import type { PhraseProposal, QueryShapeLike } from "./types.ts";
18
+ import type { PhraseProposal, QueryShapeLike } from "#types";
19
19
  /**
20
20
  * One token within a segment — absolute offsets into the normalized input. Built by `tokenizeSegment` from a
21
21
  * (segment-text, segment-start) pair.
@@ -26,6 +26,7 @@ export interface SegmentToken {
26
26
  end: number;
27
27
  }
28
28
  export declare function tokenizeSegment(segmentBody: string, segmentStart: number): SegmentToken[];
29
+ export declare function hasUnitMarker(tokens: ReadonlyArray<SegmentToken>): boolean;
29
30
  /**
30
31
  * `NUMERIC` rule: emit one proposal per all-digit token. House numbers, postcodes (when no format hit), unit numbers
31
32
  * all surface here as a base hypothesis.
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX;AAoGD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,EAAE,CAwBzF;AAqUD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAoBhG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAiBnF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,GACpB,cAAc,EAAE,CAiClB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB3G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAsFrG;AAwBD,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,GACpB,cAAc,EAAE,CA2GlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,OAAO,GACtB,cAAc,EAAE,CAoDlB"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../lib/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX;AAoED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,YAAY,EAAE,CAwBzF;AA+QD,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,OAAO,CAE1E;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAoBhG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAiBnF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,GACpB,cAAc,EAAE,CAiClB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB3G;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAsFrG;AAwBD,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,OAAO,GACpB,cAAc,EAAE,CA2GlB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,OAAO,GACtB,cAAc,EAAE,CAoDlB"}
package/out/rules.js CHANGED
@@ -15,7 +15,12 @@
15
15
  * Per "possibilities not constraints", rules emit overlapping proposals freely. The reconciler
16
16
  * (Stage 5) picks the best non-overlapping subset.
17
17
  */
18
+ import { isFloorDesignatorToken } from "@mailwoman/codex/us/floor-designator";
19
+ import { US_STATE_NAMES } from "@mailwoman/codex/us/state";
20
+ import { isStreetSuffixToken } from "@mailwoman/codex/us/street-suffix";
21
+ import { isUnitDesignatorToken } from "@mailwoman/codex/us/unit-designator";
18
22
  import { Span } from "@mailwoman/core/tokenization";
23
+ import { isRegionAbbreviationToken } from "@mailwoman/query-shape";
19
24
  const WHITESPACE = /\s+/;
20
25
  /**
21
26
  * Neutral baseline confidence for phrase proposals when no structural cue (position, length, known
@@ -24,51 +29,17 @@ const WHITESPACE = /\s+/;
24
29
  * region name that isn't at segment-tail).
25
30
  */
26
31
  const NEUTRAL_PROPOSAL_CONFIDENCE = 0.55;
27
- const US_REGION_NAMES = new Set([
28
- "alabama",
29
- "alaska",
30
- "arizona",
31
- "arkansas",
32
- "california",
33
- "colorado",
34
- "connecticut",
35
- "delaware",
36
- "florida",
37
- "georgia",
38
- "hawaii",
39
- "idaho",
40
- "illinois",
41
- "indiana",
42
- "iowa",
43
- "kansas",
44
- "kentucky",
45
- "louisiana",
46
- "maine",
47
- "maryland",
48
- "massachusetts",
49
- "michigan",
50
- "minnesota",
51
- "mississippi",
52
- "missouri",
53
- "montana",
54
- "nebraska",
55
- "nevada",
56
- "ohio",
57
- "oklahoma",
58
- "oregon",
59
- "pennsylvania",
60
- "tennessee",
61
- "texas",
62
- "utah",
63
- "vermont",
64
- "virginia",
65
- "washington",
66
- "wisconsin",
67
- "wyoming",
68
- ]);
32
+ /**
33
+ * Single-token US state/territory names, derived from the codex roster. SINGLE-TOKEN scope on purpose: the non-tail
34
+ * region-name penalty below reads one token at a time, and a multi-word name ("New York", "North Carolina") can never
35
+ * match a single token — deriving only the single-token names keeps the set equal to what the check can ever see.
36
+ */
37
+ const US_REGION_NAMES = new Set(US_STATE_NAMES.filter((name) => !name.includes(" ")).map((name) => name.toLowerCase()));
69
38
  /**
70
39
  * Split a segment body into whitespace-separated tokens. Offsets are absolute into the original input (caller supplies
71
- * the segment's `start` offset).
40
+ * the segment's `start` offset). Deliberately NOT `@mailwoman/query-shape`'s tokenizer: that one yields code-point
41
+ * CLASS runs for the whole input, while this one carries segment-relative → absolute span math for the proposal spans —
42
+ * the two disagree on what a token boundary is.
72
43
  */
73
44
  /**
74
45
  * Digit count above which a pure-numeric token stops being unambiguously a house number. 1-4 digits are clearly
@@ -138,10 +109,11 @@ function isAllDigit(s) {
138
109
  return s.length > 0 && /^[0-9]+$/.test(s);
139
110
  }
140
111
  /**
141
- * True when token body is 2-3 uppercase Latin letters (US state, Canadian province abbreviation).
112
+ * Region-abbreviation SHAPE via the shared `@mailwoman/query-shape` predicate, widened to 3 letters (US states,
113
+ * Canadian provinces, and 3-letter codes like "TWN").
142
114
  */
143
115
  function isRegionAbbreviation(s) {
144
- return /^[A-Z]{2,3}$/.test(s);
116
+ return isRegionAbbreviationToken(s, { maxLetters: 3 });
145
117
  }
146
118
  /**
147
119
  * True when token starts with an uppercase letter — the common Western proper-noun shape. Unicode-aware (`\p{Lu}`) so
@@ -152,57 +124,17 @@ function startsCapitalized(s) {
152
124
  return /^\p{Lu}/u.test(s);
153
125
  }
154
126
  /**
155
- * Common street-type suffixes (en-US + en-GB + abbreviated forms). Match case-insensitively against the raw token body.
156
- * The set is intentionally short coverage extension belongs in a future per-locale rule pack, not as a 500-entry
157
- * dictionary in this rule.
127
+ * Street-type suffix vocabulary the full USPS Pub-28 table via `@mailwoman/codex`, replacing the short local set. The
128
+ * codex lookup carries no dotted variants ("St.", "Ave."), so one trailing period is stripped before the probe.
158
129
  */
159
- const STREET_SUFFIXES = new Set([
160
- "st",
161
- "st.",
162
- "street",
163
- "ave",
164
- "ave.",
165
- "avenue",
166
- "blvd",
167
- "blvd.",
168
- "boulevard",
169
- "rd",
170
- "rd.",
171
- "road",
172
- "ln",
173
- "ln.",
174
- "lane",
175
- "dr",
176
- "dr.",
177
- "drive",
178
- "way",
179
- "pl",
180
- "pl.",
181
- "place",
182
- "ct",
183
- "ct.",
184
- "court",
185
- "pkwy",
186
- "parkway",
187
- "hwy",
188
- "highway",
189
- "ter",
190
- "terrace",
191
- "cir",
192
- "circle",
193
- "sq",
194
- "square",
195
- "trl",
196
- "trail",
197
- ]);
198
130
  function isStreetSuffix(token) {
199
- return STREET_SUFFIXES.has(token.toLowerCase());
131
+ return isStreetSuffixToken(token.replace(/\.$/, ""));
200
132
  }
201
133
  /**
202
134
  * Romance/Latin street-TYPE words that LEAD the street ("Via Trento", "Calle Mayor", "Corso Italia"). English puts the
203
135
  * type last (a suffix — see STREET_SUFFIXES); Romance languages put it first. Without this, a leading "Via"/"Calle" is
204
- * capitalized first-segment text the locality rule happily proposes, and on OOD intl input the model can't type it
205
- * either — so the grouper-audit promotes it to a spurious `locality`, burying the real city (#425 re-gate).
136
+ * capitalized first-segment text the locality rule proposes, and on OOD intl input the model can't type it either — so
137
+ * the grouper-audit promotes it to a spurious `locality`, burying the real city (#425 re-verification).
206
138
  *
207
139
  * Street-TYPES only — deliberately NOT the ambiguous area/development words ("Polígono", "Urbanización", "Lugar",
208
140
  * "Partida", "Borgo") that legitimately serve AS localities. This stays a bounded linguistic category; per-locale
@@ -391,31 +323,19 @@ const VENUE_MARKERS = new Map([
391
323
  ["farm", 0.65],
392
324
  ]);
393
325
  /**
394
- * Unit-designator tokens that gate the venue-by-exclusion heuristic. When any token in a segment matches one of these,
395
- * the segment is likely a unit/suite line, not a venue name.
396
- */
397
- const UNIT_MARKERS = new Set([
398
- "apt",
399
- "apt.",
400
- "apartment",
401
- "unit",
402
- "ste",
403
- "ste.",
404
- "suite",
405
- "room",
406
- "rm",
407
- "rm.",
408
- "floor",
409
- "fl",
410
- "fl.",
411
- "bldg",
412
- "bldg.",
413
- "building",
414
- "dept",
415
- "dept.",
416
- "department",
417
- "#",
418
- ]);
326
+ * Unit-marker tokens outside the USPS tables. Pub-28 Appendix C2 (via `@mailwoman/codex`) covers the designator words
327
+ * themselves APT/STE/RM/FL/BLDG/DEPT and their full forms so the local extension carries only the bare "#" that
328
+ * introduces "#4B", which is not USPS vocabulary.
329
+ */
330
+ const UNIT_MARKER_EXTENSIONS = new Set(["#"]);
331
+ /**
332
+ * True when a token admits the venue-by-exclusion heuristic as a unit/suite/floor marker: any USPS secondary unit or
333
+ * floor-class designator (dotted abbreviations included — one trailing period is stripped), or a local extension.
334
+ */
335
+ function isUnitMarker(token) {
336
+ const bare = token.replace(/\.$/, "");
337
+ return UNIT_MARKER_EXTENSIONS.has(token) || isUnitDesignatorToken(bare) || isFloorDesignatorToken(bare);
338
+ }
419
339
  function venueMarkerWeight(tokens) {
420
340
  let maxWeight = 0;
421
341
  for (const t of tokens) {
@@ -426,8 +346,8 @@ function venueMarkerWeight(tokens) {
426
346
  }
427
347
  return maxWeight;
428
348
  }
429
- function hasUnitMarker(tokens) {
430
- return tokens.some((t) => UNIT_MARKERS.has(t.body.toLowerCase()));
349
+ export function hasUnitMarker(tokens) {
350
+ return tokens.some((t) => isUnitMarker(t.body));
431
351
  }
432
352
  /**
433
353
  * `NUMERIC` rule: emit one proposal per all-digit token. House numbers, postcodes (when no format hit), unit numbers
package/out/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAcnD,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,IAAI,CAAA;AAExC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACpD,SAAS;IACT,QAAQ;IACR,SAAS;IACT,UAAU;IACV,YAAY;IACZ,UAAU;IACV,aAAa;IACb,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;IACT,MAAM;IACN,QAAQ;IACR,UAAU;IACV,WAAW;IACX,OAAO;IACP,UAAU;IACV,eAAe;IACf,UAAU;IACV,WAAW;IACX,aAAa;IACb,UAAU;IACV,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,WAAW;IACX,OAAO;IACP,MAAM;IACN,SAAS;IACT,UAAU;IACV,YAAY;IACZ,WAAW;IACX,SAAS;CACT,CAAC,CAAA;AAEF;;;GAGG;AACH;;;;GAIG;AACH,MAAM,mCAAmC,GAAG,CAAC,CAAA;AAE7C;;GAEG;AACH,MAAM,8BAA8B,GAAG,IAAI,CAAA;AAE3C;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAE9B;;GAEG;AACH,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAEtC;;;GAGG;AACH,MAAM,sBAAsB,GAAgC,IAAI,GAAG,CAAC;IACnE,CAAC,CAAC,EAAE,IAAI,CAAC;IACT,CAAC,CAAC,EAAE,IAAI,CAAC;CACT,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,oBAAoB,GAAG,IAAI,CAAA;AAEjC;;GAEG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAA;AAExC,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,YAAoB;IACxE,MAAM,MAAM,GAAmB,EAAE,CAAA;IACjC,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YACnE,CAAC,EAAE,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM;YAAE,MAAK;QAClC,MAAM,KAAK,GAAG,CAAC,CAAA;QAEf,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YACpE,CAAC,EAAE,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACjC,KAAK,EAAE,YAAY,GAAG,KAAK;YAC3B,GAAG,EAAE,YAAY,GAAG,CAAC;SACrB,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa,EAAE,GAAW;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,CAAS;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,CAAS;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACpD,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,OAAO;IACP,WAAW;IACX,IAAI;IACJ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,OAAO;CACP,CAAC,CAAA;AAEF,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IACpD,UAAU;IACV,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,oBAAoB;IACpB,OAAO;IACP,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;IACX,OAAO;IACP,UAAU;IACV,aAAa;IACb,KAAK;IACL,UAAU;IACV,OAAO;IACP,SAAS;IACT,KAAK;IACL,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;CACN,CAAC,CAAA;AAEF,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACzD,iCAAiC;IACjC,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,IAAI;IACJ,GAAG;IACH,UAAU;IACV,IAAI;IACJ,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,IAAI;IACJ,GAAG;IACH,KAAK;IACL,OAAO;IACP,SAAS;IACT,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,KAAK;IACL,kBAAkB;IAClB,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;CACL,CAAC,CAAA;AAEF;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACrC,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,CAAS;IACpC,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACrC,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,aAAa,GAAgC,IAAI,GAAG,CAAC;IAC1D,4CAA4C;IAC5C,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,MAAM,EAAE,IAAI,CAAC;IACd,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,UAAU,EAAE,GAAG,CAAC;IACjB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,KAAK,EAAE,IAAI,CAAC;IACb,CAAC,KAAK,EAAE,GAAG,CAAC;IACZ,UAAU;IACV,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,KAAK,EAAE,IAAI,CAAC;IACb,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,0BAA0B;IAC1B,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,SAAS,EAAE,GAAG,CAAC;IAChB,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,sBAAsB;IACtB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,MAAM,EAAE,GAAG,CAAC;IACb,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,OAAO,EAAE,IAAI,CAAC;IACf,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,0BAA0B;IAC1B,CAAC,UAAU,EAAE,GAAG,CAAC;IACjB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,UAAU,EAAE,IAAI,CAAC;IAClB,YAAY;IACZ,CAAC,YAAY,EAAE,GAAG,CAAC;IACnB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,SAAS,EAAE,GAAG,CAAC;IAChB,oBAAoB;IACpB,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,QAAQ,EAAE,GAAG,CAAC;IACf,CAAC,WAAW,EAAE,IAAI,CAAC;IACnB,CAAC,WAAW,EAAE,IAAI,CAAC;IACnB,CAAC,QAAQ,EAAE,IAAI,CAAC;IAChB,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,UAAU;IACV,CAAC,MAAM,EAAE,GAAG,CAAC;IACb,CAAC,SAAS,EAAE,IAAI,CAAC;IACjB,CAAC,OAAO,EAAE,GAAG,CAAC;IACd,CAAC,MAAM,EAAE,IAAI,CAAC;CACd,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IACjD,KAAK;IACL,MAAM;IACN,WAAW;IACX,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;IACN,OAAO;IACP,YAAY;IACZ,GAAG;CACH,CAAC,CAAA;AAEF,SAAS,iBAAiB,CAAC,MAAmC;IAC7D,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAEjD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;YACtC,SAAS,GAAG,CAAC,CAAA;QACd,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAA;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,MAAmC;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;AAClE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,MAAmC,EAAE,IAAY;IAC7E,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAQ;QACjC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QAEzB,6FAA6F;QAC7F,yEAAyE;QACzE,MAAM,UAAU,GACf,GAAG,IAAI,mCAAmC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,2BAA2B,CAAA;QAE1G,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;YACvC,cAAc,EAAE,SAAS;YACzB,UAAU;SACV,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAqB,EAAE,IAAY;IAChE,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACtC,sFAAsF;QACtF,uDAAuD;QACvD,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAQ;QAErC,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACrD,cAAc,EAAE,UAAU;YAC1B,wFAAwF;YACxF,UAAU,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAAmC,EACnC,IAAY,EACZ,aAAsB;IAEtB,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QAEpB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAQ;QAC3C,0FAA0F;QAC1F,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,4FAA4F;QAC5F,uFAAuF;QACvF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAE3B,IAAI,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjH,SAAQ;QACT,CAAC;QAED,4FAA4F;QAC5F,8FAA8F;QAC9F,iCAAiC;QACjC,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAA;QAEpF,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;YACvC,cAAc,EAAE,qBAAqB;YACrC,UAAU;SACV,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmC,EAAE,IAAY;IACxF,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAQ;QAEnC,wFAAwF;QACxF,uCAAuC;QACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,SAAQ;QAEvC,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;YACvC,cAAc,EAAE,qBAAqB;YACrC,UAAU,EAAE,IAAI;SAChB,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAmC,EAAE,IAAY;IAClF,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC;YAAE,SAAQ;QACtD,2FAA2F;QAC3F,sEAAsE;QACtE,IAAI,KAAK,GAAG,SAAS,CAAA;QAErB,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAA;YAE5B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrF,KAAK,GAAG,CAAC,CAAA;YACV,CAAC;iBAAM,CAAC;gBACP,MAAK;YACN,CAAC;QACF,CAAC;QAED,sFAAsF;QACtF,0DAA0D;QAC1D,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QACjC,kGAAkG;QAClG,kGAAkG;QAClG,iGAAiG;QACjG,iGAAiG;QACjG,6BAA6B;QAC7B,IAAI,cAAc,GAAG,KAAK,CAAA;QAE1B,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,KAAK,IAAI,CAAC,CAAA;YACV,cAAc,GAAG,IAAI,CAAA;YAErB,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ,CAAC,+DAA+D;QAClG,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAE,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAE,CAAA;QACjC,+FAA+F;QAC/F,kGAAkG;QAClG,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;QAE9C,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;YACnD,cAAc,EAAE,eAAe;YAC/B,UAAU;SACV,CAAC,CAAA;IACH,CAAC;IAED,mGAAmG;IACnG,qGAAqG;IACrG,2DAA2D;IAC3D,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC;YAAE,SAAQ;QACtD,IAAI,GAAG,GAAG,SAAS,CAAA;QAEnB,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAA;YAE5B,IAAI,cAAc,CAAC,IAAI,CAAC;gBAAE,MAAK;YAE/B,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,GAAG,GAAG,CAAC,CAAA;YACR,CAAC;iBAAM,CAAC;gBACP,MAAK;YACN,CAAC;QACF,CAAC;QAED,iFAAiF;QACjF,OAAO,GAAG,GAAG,SAAS,IAAI,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,GAAG,EAAE,CAAA;QACN,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAE,CAAA;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAE,CAAA;QAE3B,4FAA4F;QAC5F,4DAA4D;QAC5D,GAAG,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;YACnD,cAAc,EAAE,eAAe;YAC/B,UAAU,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG;SACxC,CAAC,CAAA;IACH,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;;;;;;;GAYG;AACH;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAA;AAEpC,MAAM,UAAU,mBAAmB,CAClC,MAAmC,EACnC,IAAY,EACZ,aAAsB;IAEtB,MAAM,GAAG,GAAqB,EAAE,CAAA;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAAE,SAAQ;QAElD,4FAA4F;QAC5F,kFAAkF;QAClF,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;YAAE,SAAQ;QAE7C,+FAA+F;QAC/F,qFAAqF;QACrF,6FAA6F;QAC7F,6FAA6F;QAC7F,+FAA+F;QAC/F,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAE3B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,SAAQ;QAC7F,CAAC;QAED,gGAAgG;QAChG,4FAA4F;QAC5F,6FAA6F;QAC7F,gGAAgG;QAChG,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,SAAS,CAAC;YACT,6FAA6F;YAC7F,+FAA+F;YAC/F,gGAAgG;YAChG,sBAAsB;YACtB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,0BAA0B;gBAAE,MAAK;YAElD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAE1B,IAAI,CAAC,IAAI;gBAAE,MAAK;YAChB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAA;YAEnB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;gBAAE,MAAK;YAElE,IAAI,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAAE,MAAK;YAE7D,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,CAAC,EAAE,CAAA;gBAEH,SAAQ;YACT,CAAC;YAED,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,6EAA6E;gBAC7E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAEb,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1D,CAAC,EAAE,CAAA;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1E,CAAC,GAAG,CAAC,CAAA;oBAEL,0EAA0E;oBAC1E,SAAQ;gBACT,CAAC;YACF,CAAC;YAED,MAAK;QACN,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,0BAA0B,CAAC,CAAA;QAE9D,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAE,CAAA;YAEnC,+FAA+F;YAC/F,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;YACvD,MAAM,YAAY,GAAG,GAAG,KAAK,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAA;YAC7E,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3G,IAAI,UAAU,GAAG,2BAA2B,GAAG,QAAQ,CAAA;YAEvD,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC7B,UAAU,IAAI,4BAA4B,CAAA;YAC3C,CAAC;YAED,IAAI,MAAM,IAAI,aAAa,EAAE,CAAC;gBAC7B,UAAU,IAAI,GAAG,CAAA;YAClB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACZ,UAAU,IAAI,IAAI,CAAA;YACnB,CAAC;YAED,GAAG,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;gBACnD,cAAc,EAAE,iBAAiB;gBACjC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;aACtC,CAAC,CAAA;QACH,CAAC;QACD,wFAAwF;QACxF,0FAA0F;QAC1F,4FAA4F;IAC7F,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC/B,MAAmC,EACnC,IAAY,EACZ,cAAwB;IAExB,MAAM,GAAG,GAAqB,EAAE,CAAA;IAChC,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,CAAC,EAAE,CAAA;YAEH,SAAQ;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAA;QAET,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/G,CAAC,EAAE,CAAA;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;QAClC,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAEnE,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;YAChE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;YACxB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;YAC1B,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA;YAEzD,GAAG,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;gBACnD,cAAc,EAAE,cAAc;gBAC9B,UAAU;aACV,CAAC,CAAA;QACH,CAAC;aAAM,IAAI,cAAc,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACzD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;YAElC,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;gBACxB,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;gBAE1B,GAAG,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;oBACnD,cAAc,EAAE,cAAc;oBAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,IAAI,oBAAoB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,0BAA0B;iBACzG,CAAC,CAAA;YACH,CAAC;QACF,CAAC;QAED,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACV,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../lib/rules.ts"],"names":[],"mappings":"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"}
package/out/types.d.ts CHANGED
@@ -12,45 +12,10 @@ export type { LocaleHint, PhraseGrouper, PhraseKind, PhraseProposal } from "@mai
12
12
  */
13
13
  export type { Section } from "@mailwoman/core/types";
14
14
  /**
15
- * Minimal `NormalizedInput` shape consumed by `groupPhrases`. Compatible with `@mailwoman/normalize`'s output.
15
+ * The minimal input shapes consumed by `groupPhrases` come from `@mailwoman/query-shape` — one declaration shared by
16
+ * every Stage-2.x consumer. `QueryShapeLike` stays this package's public name for its narrow read-only view.
16
17
  */
17
- export interface NormalizedInputLite {
18
- raw: string;
19
- normalized: string;
20
- appliedLocale?: string;
21
- }
22
- /**
23
- * Minimal `QueryShape` shape consumed by `groupPhrases`. Compatible with `@mailwoman/query-shape`'s output.
24
- */
25
- export interface QueryShapeLike {
26
- knownFormats: ReadonlyArray<{
27
- format: string;
28
- span: {
29
- start: number;
30
- end: number;
31
- };
32
- confidence: number;
33
- }>;
34
- segments?: ReadonlyArray<{
35
- body: string;
36
- index: number;
37
- span?: {
38
- start: number;
39
- end: number;
40
- };
41
- }>;
42
- tokenClasses?: ReadonlyArray<{
43
- span: {
44
- start: number;
45
- end: number;
46
- body: string;
47
- };
48
- class: string;
49
- length: number;
50
- }>;
51
- characterClass?: string;
52
- totalLength?: number;
53
- }
18
+ export type { NormalizedInputLite, QueryShapeTokensView as QueryShapeLike } from "@mailwoman/query-shape";
54
19
  export interface GroupPhrasesOpts {
55
20
  /**
56
21
  * Reserved for future tunables (e.g. confidence floor, per-kind biasing). Currently unused.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAErG;;GAEG;AACH,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,YAAY,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;QACpC,UAAU,EAAE,MAAM,CAAA;KAClB,CAAC,CAAA;IACF,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;IAChG,YAAY,CAAC,EAAE,aAAa,CAAC;QAC5B,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;QAClD,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;IACF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAErG;;GAEG;AACH,YAAY,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD;;;GAGG;AACH,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEzG,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB"}
package/out/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../lib/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailwoman/phrase-grouper",
3
- "version": "9.2.0",
3
+ "version": "9.3.0",
4
4
  "description": "Stage 2.7 of the runtime pipeline — propose coherent input units (boundary discovery) with a structural kind hypothesis + confidence. Rule-based v1 (port of v1 section/sub-section logic); learned 1-2M-param span proposer reserved for v0.5.1.",
5
5
  "license": "AGPL-3.0-only OR LicenseRef-Commercial",
6
6
  "repository": {
@@ -24,28 +24,39 @@
24
24
  "!test/**"
25
25
  ],
26
26
  "type": "module",
27
+ "sideEffects": false,
27
28
  "imports": {
28
29
  "#index": {
29
30
  "types": "./out/index.d.ts",
31
+ "node": "./out/index.js",
30
32
  "default": "./out/index.js"
33
+ },
34
+ "#*": {
35
+ "types": "./out/*.d.ts",
36
+ "node": "./out/*.js",
37
+ "default": "./out/*.js"
31
38
  }
32
39
  },
33
40
  "exports": {
34
41
  "./package.json": "./package.json",
35
42
  ".": {
36
43
  "types": "./out/index.d.ts",
44
+ "node": "./out/index.js",
37
45
  "default": "./out/index.js"
38
46
  },
39
47
  "./group": {
40
48
  "types": "./out/group.d.ts",
49
+ "node": "./out/group.js",
41
50
  "default": "./out/group.js"
42
51
  },
43
52
  "./rules": {
44
53
  "types": "./out/rules.d.ts",
54
+ "node": "./out/rules.js",
45
55
  "default": "./out/rules.js"
46
56
  },
47
57
  "./types": {
48
58
  "types": "./out/types.d.ts",
59
+ "node": "./out/types.js",
49
60
  "default": "./out/types.js"
50
61
  }
51
62
  },
@@ -55,33 +66,44 @@
55
66
  "./package.json": "./package.json",
56
67
  ".": {
57
68
  "types": "./out/index.d.ts",
69
+ "node": "./out/index.js",
58
70
  "default": "./out/index.js"
59
71
  },
60
72
  "./group": {
61
73
  "types": "./out/group.d.ts",
74
+ "node": "./out/group.js",
62
75
  "default": "./out/group.js"
63
76
  },
64
77
  "./rules": {
65
78
  "types": "./out/rules.d.ts",
79
+ "node": "./out/rules.js",
66
80
  "default": "./out/rules.js"
67
81
  },
68
82
  "./types": {
69
83
  "types": "./out/types.d.ts",
84
+ "node": "./out/types.js",
70
85
  "default": "./out/types.js"
71
86
  }
72
87
  },
73
88
  "imports": {
74
89
  "#index": {
75
90
  "types": "./out/index.d.ts",
91
+ "node": "./out/index.js",
76
92
  "default": "./out/index.js"
93
+ },
94
+ "#*": {
95
+ "types": "./out/*.d.ts",
96
+ "node": "./out/*.js",
97
+ "default": "./out/*.js"
77
98
  }
78
99
  }
79
100
  },
80
101
  "dependencies": {
81
- "@mailwoman/core": "9.2.0"
102
+ "@mailwoman/codex": "9.3.0",
103
+ "@mailwoman/core": "9.3.0",
104
+ "@mailwoman/query-shape": "9.3.0"
82
105
  },
83
106
  "devDependencies": {
84
- "@mailwoman/normalize": "9.2.0",
85
- "@mailwoman/query-shape": "9.2.0"
107
+ "@mailwoman/normalize": "9.3.0"
86
108
  }
87
109
  }
package/types.ts DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- */
6
-
7
- /**
8
- * Re-exports of the canonical types from `@mailwoman/core/pipeline`.
9
- */
10
- export type { LocaleHint, PhraseGrouper, PhraseKind, PhraseProposal } from "@mailwoman/core/pipeline"
11
-
12
- /**
13
- * Re-export of the canonical `Section` type from `@mailwoman/core/types`. `Section = Span`.
14
- */
15
- export type { Section } from "@mailwoman/core/types"
16
-
17
- /**
18
- * Minimal `NormalizedInput` shape consumed by `groupPhrases`. Compatible with `@mailwoman/normalize`'s output.
19
- */
20
- export interface NormalizedInputLite {
21
- raw: string
22
- normalized: string
23
- appliedLocale?: string
24
- }
25
-
26
- /**
27
- * Minimal `QueryShape` shape consumed by `groupPhrases`. Compatible with `@mailwoman/query-shape`'s output.
28
- */
29
- export interface QueryShapeLike {
30
- knownFormats: ReadonlyArray<{
31
- format: string
32
- span: { start: number; end: number }
33
- confidence: number
34
- }>
35
- segments?: ReadonlyArray<{ body: string; index: number; span?: { start: number; end: number } }>
36
- tokenClasses?: ReadonlyArray<{
37
- span: { start: number; end: number; body: string }
38
- class: string
39
- length: number
40
- }>
41
- characterClass?: string
42
- totalLength?: number
43
- }
44
-
45
- export interface GroupPhrasesOpts {
46
- /**
47
- * Reserved for future tunables (e.g. confidence floor, per-kind biasing). Currently unused.
48
- */
49
- confidenceFloor?: number
50
- }