@bicharts/shape-core 0.5.39 → 0.5.41
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/dist/types/geoPoint.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type GeoPointResult = {
|
|
|
11
11
|
export { normalizePlaceName } from "./geoCountryNames";
|
|
12
12
|
/** Which point-map's candidate set a lookup runs against. Rows carry kind flags
|
|
13
13
|
* (N = North America map, W = World map; a row may carry both), so ONE table serves
|
|
14
|
-
* every map type with the map deciding its own scope —
|
|
14
|
+
* every map type with the map deciding its own scope — 2026-08-02: "one row can
|
|
15
15
|
* apply to 1 or more map types", and the matching rules are COMMON logic. */
|
|
16
16
|
export type GeoMapKind = "north-america" | "world";
|
|
17
17
|
/** REPLACE the bundled gazetteer with another packed table (same record format). The
|
|
@@ -53,7 +53,7 @@ export declare function zipToPrefix3(value: string | null | undefined): string |
|
|
|
53
53
|
/**
|
|
54
54
|
* THE ZIP READER. One function, because a ZIP arrives in whatever shape the pipeline left it
|
|
55
55
|
* and both matchers — the point cascade here and the choropleth join key in geoDetector —
|
|
56
|
-
* have to read it identically (
|
|
56
|
+
* have to read it identically (2026-08-02: "the matcher to the gazette needs to do
|
|
57
57
|
* proper zip matching: it should work for 02108 no matter how the source is interpreted").
|
|
58
58
|
*
|
|
59
59
|
* Everything it survives, and why each one is real:
|
|
@@ -85,7 +85,7 @@ export declare function zipPrefixCandidates(value: string | null | undefined): s
|
|
|
85
85
|
*/
|
|
86
86
|
/** The city tier found MORE THAN ONE place the source row could mean, after every
|
|
87
87
|
* non-blank source attribute was honoured. The row is NOT plotted and the caller
|
|
88
|
-
* reports it as info — since v2 (
|
|
88
|
+
* reports it as info — since v2 (2026-08-02) a guess is never made: "if multiple
|
|
89
89
|
* possible matches are found, that should be a call-out … and it should not be
|
|
90
90
|
* plotted." Distinct from `null` (nothing matched at all): coarser tiers must NOT
|
|
91
91
|
* rescue an ambiguity, because the coarser placement would silently pick a side. */
|
|
@@ -116,7 +116,7 @@ export type GeoPointColumns = {
|
|
|
116
116
|
* Without this a chart can only ever say "22 of 117 positions approximated" — true,
|
|
117
117
|
* but it cannot say WHICH 22, so it draws every mark as though it were exact. A reader
|
|
118
118
|
* hovering Inverness got "Inverness, United Kingdom" over LONDON's coordinates, with
|
|
119
|
-
* nothing to distinguish it from the London row stacked underneath (
|
|
119
|
+
* nothing to distinguish it from the London row stacked underneath (2026-08-04).
|
|
120
120
|
*
|
|
121
121
|
* The counts above are a summary OF this array and remain the right input for a
|
|
122
122
|
* caption. This is what lets a mark disclose its own precision — style it differently,
|
|
@@ -179,7 +179,7 @@ rows: Array<{
|
|
|
179
179
|
/**
|
|
180
180
|
* The TAGS on a known city ("capital", ...), empty when it carries none or is unknown.
|
|
181
181
|
*
|
|
182
|
-
* The query surface for the per-city tag layer (
|
|
182
|
+
* The query surface for the per-city tag layer (2026-08-03: "having tags that can apply
|
|
183
183
|
* at the city level makes sense and can be leveraged in follow-on prompt requests"). `country`
|
|
184
184
|
* narrows to one row when the name is shared ("London" GB vs ON); without it, a name that
|
|
185
185
|
* matches several cities returns the union of their tags, which is honest about what a bare
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* that column may claim a geographic role.
|
|
4
4
|
*
|
|
5
5
|
* One number for every role — city, state, ZIP, country, and the choropleth region detector
|
|
6
|
-
* (
|
|
6
|
+
* (2026-08-02: "I would prefer one constant, so maybe we make that 95 and apply to all").
|
|
7
7
|
* Tune here and they all move together — except CITY, which has its own looser bar below for
|
|
8
8
|
* a reason worth reading.
|
|
9
9
|
*
|
|
10
|
-
* 96 was tried first and SETTLED AT 95 the same day, on evidence rather than taste:
|
|
11
|
-
*
|
|
10
|
+
* 96 was tried first and SETTLED AT 95 the same day, on evidence rather than taste: the reference
|
|
11
|
+
* dataset behind the request carries 42 clean countries and two deliberate junk rows, which is
|
|
12
12
|
* 95.5% — a well-formed reference dataset landing half a point under its own bar. A cliff that
|
|
13
13
|
* a curated 44-row table falls off is in the wrong place. 95 is still far too strict for a
|
|
14
14
|
* column of something else to claim a role by accident (a wrong column scores near zero, not
|
|
@@ -33,7 +33,7 @@ export declare const ROLE_MATCH_PCT = 95;
|
|
|
33
33
|
*/
|
|
34
34
|
export declare function isBlankLike(normalized: string): boolean;
|
|
35
35
|
/**
|
|
36
|
-
* CITY is held LOWER, and deliberately so (
|
|
36
|
+
* CITY is held LOWER, and deliberately so (2026-08-02: "maybe city is a good one to make
|
|
37
37
|
* lower - 80% even").
|
|
38
38
|
*
|
|
39
39
|
* The other roles are closed vocabularies. There are ~195 countries and ~90 admin1s in scope,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bicharts/shape-core",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.41",
|
|
4
4
|
"description": "Host-agnostic data-shape profiler: ingest a dataset's rows through IValueCollection.addRow and read back the measured shape as an LLMColumnWithValue[] payload — types, cardinality, temporal/ordinal detection, geographic region and point resolution, cross-column signals. MEASUREMENT only: the policy that decides what a measured shape means for chart selection lives server-side.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|