@instruments/taxonomy 1.2.0 → 1.3.1
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 +5 -5
- package/dist/authoring.d.ts +2 -2
- package/dist/axes/axis.d.ts +35 -0
- package/dist/axes/daylight.d.ts +7 -0
- package/dist/axes/index.d.ts +4 -33
- package/dist/axes/season.d.ts +2 -0
- package/dist/axes/space/shared.d.ts +6 -6
- package/dist/axes/tier.d.ts +3 -3
- package/dist/{materialgraph-crossover-sources.d.ts → crossover-sources.d.ts} +3 -3
- package/dist/estate/concepts.d.ts +10 -9
- package/dist/estate/index.d.ts +1 -1
- package/dist/estate/residue-report.d.ts +3 -3
- package/dist/estate/rows/architecture-projects.d.ts +2 -0
- package/dist/estate/rows/editorial-imagery.d.ts +2 -0
- package/dist/estate/rows/furnishings-retailer.d.ts +2 -0
- package/dist/estate/rows/materials-retrieval.d.ts +2 -0
- package/dist/estate/rows/paint-samples.d.ts +2 -0
- package/dist/estate/rows/rendering-pipeline.d.ts +2 -0
- package/dist/estate/sources.d.ts +77 -18
- package/dist/index.js +866 -673
- package/dist/search-corpus-source.d.ts +1 -3
- package/dist/term.d.ts +13 -7
- package/dist/v1.d.ts +4 -4
- package/package.json +1 -1
- package/dist/crosswalks/designshop.d.ts +0 -30
- package/dist/crosswalks/materialgraph.d.ts +0 -38
- package/dist/crosswalks/miu.d.ts +0 -13
- package/dist/downstream-check-policy.d.ts +0 -34
- package/dist/env.d.ts +0 -6
- package/dist/estate/rows/architizer.d.ts +0 -2
- package/dist/estate/rows/designround.d.ts +0 -2
- package/dist/estate/rows/designshop.d.ts +0 -2
- package/dist/estate/rows/materia.d.ts +0 -2
- package/dist/estate/rows/materialgraph.d.ts +0 -2
- package/dist/estate/rows/samplize.d.ts +0 -2
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const MATERIALGRAPH_SEARCH_CORPUS_PATH: "packages/products/src/benchmark/fixtures/benchmark-cases-2026-07-31.1.json";
|
|
3
|
-
export declare const MATERIALGRAPH_SEARCH_CORPUS_SNAPSHOT: "2026-07-31";
|
|
1
|
+
export declare const SEARCH_CORPUS_SNAPSHOT: "2026-07-31";
|
|
4
2
|
/**
|
|
5
3
|
* The fixture evidences searched language and admission need. Taxonomy authors the concept boundary;
|
|
6
4
|
* neither an individual phrase nor the 244-query fixture as a whole is treated as that definition.
|
package/dist/term.d.ts
CHANGED
|
@@ -39,7 +39,13 @@ export type SourceBasis =
|
|
|
39
39
|
| "standard";
|
|
40
40
|
export interface TermProvenance {
|
|
41
41
|
basis: SourceBasis;
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* The upstream standard, reference or source. A public standard or vocabulary is named outright
|
|
44
|
+
* and can be re-read by anyone. A private source is written as its kind and an opaque id, e.g.
|
|
45
|
+
* "PRICE_TIERS in a materials-retrieval system (src-05)": the id is stable, so every term citing
|
|
46
|
+
* one source can be shown to cite the same thing, and re-reading it means the steward resolving
|
|
47
|
+
* the id at the `snapshot` date. The date lives in `snapshot` and is never repeated here.
|
|
48
|
+
*/
|
|
43
49
|
source: string;
|
|
44
50
|
/** ISO date the source was read. Absent only for `authored`. */
|
|
45
51
|
snapshot?: string;
|
|
@@ -95,9 +101,9 @@ export type TermStatus = "active" | "deprecated";
|
|
|
95
101
|
* value that appears regularly, `rare` one that barely does, and `unattested` a value the corpus
|
|
96
102
|
* never uses. Set `usage` only where the named corpus can actually speak to the term: omitting it
|
|
97
103
|
* says "not measured here", which is honest, whereas `unattested` against an unrelated corpus
|
|
98
|
-
* would read as a claim about the term rather than about the corpus. The usage figures behind these
|
|
99
|
-
* from
|
|
100
|
-
* business. The band carries the signal a reader actually needs - is this term common or rare -
|
|
104
|
+
* would read as a claim about the term rather than about the corpus. The usage figures behind these
|
|
105
|
+
* derive from a materials-marketplace catalogue and a furnishings retailer's room schemes; publishing a raw
|
|
106
|
+
* number would publish a figure from someone else's business. The band carries the signal a reader actually needs - is this term common or rare -
|
|
101
107
|
* and nothing more.
|
|
102
108
|
*/
|
|
103
109
|
export type UsageBand = "dominant" | "common" | "occasional" | "rare" | "unattested";
|
|
@@ -110,8 +116,8 @@ export interface TermUsage {
|
|
|
110
116
|
/**
|
|
111
117
|
* Why a term carries no usage band when the corpus plainly has something to say about it.
|
|
112
118
|
*
|
|
113
|
-
* The distinguishing case is `style.modernism`.
|
|
114
|
-
* schemes `Modern`, but that is the crosswalk row that DECLINES: `Modern` reads as either
|
|
119
|
+
* The distinguishing case is `style.modernism`. A furnishings retailer tags a dominant share of
|
|
120
|
+
* its schemes `Modern`, but that is the crosswalk row that DECLINES: `Modern` reads as either
|
|
115
121
|
* `style.modernism` or `style.contemporary` and the source never recorded which. Attributing the
|
|
116
122
|
* usage would smuggle in the guess the crosswalk refused to make.
|
|
117
123
|
*
|
|
@@ -302,7 +308,7 @@ export type RelationPredicate =
|
|
|
302
308
|
* the standing counterexample.
|
|
303
309
|
*/
|
|
304
310
|
| "serves"
|
|
305
|
-
/** This style or
|
|
311
|
+
/** This style, idiom or scheme draws on that place idiom, period, building typology or season. */
|
|
306
312
|
| "evokes"
|
|
307
313
|
/** This style descends from that style. */
|
|
308
314
|
| "influenced-by"
|
package/dist/v1.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ElementPlacement, ExternalMapping, PeriodSpan, RelationPredicate, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld } from "./term.js";
|
|
2
2
|
export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
|
|
3
|
-
export declare const TAXONOMY_SNAPSHOT: "2026-09-
|
|
4
|
-
export declare const TAXONOMY_VERSION: "1.
|
|
3
|
+
export declare const TAXONOMY_SNAPSHOT: "2026-09-11";
|
|
4
|
+
export declare const TAXONOMY_VERSION: "1.3.1";
|
|
5
5
|
export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
|
|
6
6
|
export type LifecycleStatus = "active" | "deprecated";
|
|
7
7
|
export interface Lifecycle {
|
|
@@ -135,7 +135,7 @@ export declare const TAXONOMY_CORPUS_METADATA: {
|
|
|
135
135
|
readonly lexicalEntryCount: number;
|
|
136
136
|
readonly nodeCount: number;
|
|
137
137
|
readonly revision: string;
|
|
138
|
-
readonly snapshot: "2026-09-
|
|
139
|
-
readonly version: "1.
|
|
138
|
+
readonly snapshot: "2026-09-11";
|
|
139
|
+
readonly version: "1.3.1";
|
|
140
140
|
};
|
|
141
141
|
export {};
|
package/package.json
CHANGED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { CanonicalisationInput, CanonicalisationVerdict } from "../canonicalisation.js";
|
|
2
|
-
import type { CrosswalkMapping } from "./mapping.js";
|
|
3
|
-
export declare const DESIGNSHOP_CROSSWALK_VERSION: "designshop-2026-08-31.1";
|
|
4
|
-
export declare const DESIGNSHOP_SOURCE_SYSTEM: "designshop";
|
|
5
|
-
export declare const DESIGNSHOP_SOURCE_FIELDS: readonly ["product_category", "material", "pattern", "finish", "format", "construction", "scheme_style", "product_style", "mood", "space", "requirement"];
|
|
6
|
-
export type DesignShopSourceField = (typeof DESIGNSHOP_SOURCE_FIELDS)[number];
|
|
7
|
-
type Mapping = CrosswalkMapping;
|
|
8
|
-
/**
|
|
9
|
-
* Source-specific rows. Source fields are deliberately retained: DesignShop's `material:Mosaic`
|
|
10
|
-
* resolves to a format, and pretending the source field was already canonical would preserve its
|
|
11
|
-
* category error instead of its evidence.
|
|
12
|
-
*/
|
|
13
|
-
export declare const DESIGNSHOP_CROSSWALK: Readonly<Record<DesignShopSourceField, Readonly<Record<string, Mapping>>>>;
|
|
14
|
-
export interface DesignShopCanonicalisationInput extends Omit<CanonicalisationInput, "sourceSystem" | "sourceField"> {
|
|
15
|
-
sourceField: DesignShopSourceField;
|
|
16
|
-
}
|
|
17
|
-
/** Unknown values are unresolved, never declined. Declines require an explicit curated row. */
|
|
18
|
-
export declare const canonicaliseDesignShop: (input: DesignShopCanonicalisationInput) => CanonicalisationVerdict;
|
|
19
|
-
export interface DesignShopAppearanceTestVector {
|
|
20
|
-
expectedAssertions: readonly string[];
|
|
21
|
-
facets: readonly {
|
|
22
|
-
sourceField: DesignShopSourceField;
|
|
23
|
-
sourceValue: string;
|
|
24
|
-
}[];
|
|
25
|
-
id: string;
|
|
26
|
-
market: "residential" | "commercial";
|
|
27
|
-
}
|
|
28
|
-
/** Shared fixtures prove axes compose instead of welding material identity to appearance. */
|
|
29
|
-
export declare const DESIGNSHOP_APPEARANCE_TEST_VECTORS: readonly DesignShopAppearanceTestVector[];
|
|
30
|
-
export {};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { CanonicalisationInput, CanonicalisationVerdict } from "../canonicalisation.js";
|
|
2
|
-
import type { BundleRole } from "../match.js";
|
|
3
|
-
import type { CrosswalkMapping } from "./mapping.js";
|
|
4
|
-
export declare const MATERIALGRAPH_CROSSWALK_VERSION: "materialgraph-2026-08-27.1";
|
|
5
|
-
export declare const MATERIALGRAPH_SOURCE_SYSTEM: "materialgraph";
|
|
6
|
-
export declare const MATERIALGRAPH_SNAPSHOT: "2026-08-27";
|
|
7
|
-
/**
|
|
8
|
-
* The two dictionaries this crosswalk covers. Both were `ms_`-prefixed until MaterialGraph renamed
|
|
9
|
-
* them on 2026-08-27; the bare names are the current ones.
|
|
10
|
-
*/
|
|
11
|
-
export declare const MATERIALGRAPH_SOURCE_FIELDS: readonly ["role", "character"];
|
|
12
|
-
export type MaterialGraphSourceField = (typeof MATERIALGRAPH_SOURCE_FIELDS)[number];
|
|
13
|
-
/**
|
|
14
|
-
* Two `role` values that are not product properties at all, and where they actually go.
|
|
15
|
-
*
|
|
16
|
-
* A role IN A SCHEME is what `match.ts` already calls a `BundleRole`: `accent` means present and
|
|
17
|
-
* deliberate but the scheme survives without it, `constitutive` means remove it and the thing stops
|
|
18
|
-
* being what it is. A feature surface is the second by definition. Publishing these as a mapping to
|
|
19
|
-
* the bundle role rather than as terms is what stops the same slab being permanently labelled a
|
|
20
|
-
* feature surface because one scheme once used it as one.
|
|
21
|
-
*/
|
|
22
|
-
export declare const MATERIALGRAPH_COMPOSITIONAL_ROLES: Readonly<Record<string, BundleRole>>;
|
|
23
|
-
export declare const MATERIALGRAPH_CROSSWALK: Readonly<Record<MaterialGraphSourceField, Readonly<Record<string, CrosswalkMapping>>>>;
|
|
24
|
-
export interface MaterialGraphCanonicalisationInput extends Omit<CanonicalisationInput, "sourceSystem" | "sourceField"> {
|
|
25
|
-
sourceField: MaterialGraphSourceField;
|
|
26
|
-
}
|
|
27
|
-
/** Unknown values are unresolved, never declined. Declines require an explicit curated row. */
|
|
28
|
-
export declare const canonicaliseMaterialGraph: (input: MaterialGraphCanonicalisationInput) => CanonicalisationVerdict;
|
|
29
|
-
/**
|
|
30
|
-
* The upstream dictionaries, vendored as id tuples so this file can be checked against them.
|
|
31
|
-
*
|
|
32
|
-
* Verbatim from materialgraph packages/schema/src/registry/value-dictionaries — `role` in
|
|
33
|
-
* `material-semantics-core.ts`, `character` in `material-semantics-aesthetics.ts`, both at the
|
|
34
|
-
* 2026-08-27 snapshot, after the rename that dropped their `ms_` prefixes.
|
|
35
|
-
*/
|
|
36
|
-
export declare const MATERIALGRAPH_ROLE_VALUES: readonly ["wall_finish", "flooring", "ceiling", "joinery", "upholstery", "drapery", "accent", "worksurface", "casegoods", "feature_surface", "trim", "other"];
|
|
37
|
-
export declare const MATERIALGRAPH_CHARACTER_VALUES: readonly ["quiet", "expressive", "restrained", "bold", "rustic", "crafted", "refined", "formal", "casual", "natural_reading", "synthetic_reading", "soft_reading", "hard_reading"];
|
|
38
|
-
export declare const MATERIALGRAPH_SOURCE_VALUES: Readonly<Record<MaterialGraphSourceField, readonly string[]>>;
|
package/dist/crosswalks/miu.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Application, MaterialFamily, Sector } from "../authoring.js";
|
|
2
|
-
export declare const MIU_MATERIAL_FAMILIES: readonly ["wood", "wood_veneer", "engineered_wood", "bamboo", "cork", "natural_stone", "terrazzo", "ceramic_porcelain", "glass", "metal", "concrete", "plaster", "clay", "brick", "paint_coating", "wallcovering", "laminate", "solid_surface", "mineral_composite", "resin", "linoleum", "vinyl", "rubber", "carpet", "rug", "textile", "leather", "acoustic_felt", "acoustic_composite", "recycled_composite", "paper_cardboard", "biobased_composite", "greenery_planting", "lighting", "hardware", "digital_media", "water_feature", "mixed_material", "color_palette_only", "unknown"];
|
|
3
|
-
export type MiuMaterialFamily = (typeof MIU_MATERIAL_FAMILIES)[number];
|
|
4
|
-
export declare const MIU_FAMILY_TO_CANONICAL: Readonly<Record<MiuMaterialFamily, MaterialFamily | null>>;
|
|
5
|
-
export declare const MIU_PROJECT_SECTORS: readonly ["hospitality", "food_and_beverage", "workplace", "residential", "multifamily", "retail_and_showroom", "healthcare", "wellness", "education", "civic", "cultural", "community", "sports_recreation", "entertainment", "industrial", "logistics", "maker", "transportation", "landscape_public_realm", "mixed_use", "master_planning", "temporary_exhibition", "religious", "senior_living", "student_housing", "unknown"];
|
|
6
|
-
export type MiuProjectSector = (typeof MIU_PROJECT_SECTORS)[number];
|
|
7
|
-
export declare const MIU_SECTOR_TO_CANONICAL: Readonly<Record<MiuProjectSector, Sector | null>>;
|
|
8
|
-
export declare const MIU_SURFACE_APPLICATIONS: readonly ["flooring", "floor_inlay", "stair_tread", "stair_riser", "wall_finish", "wall_panel", "wainscot", "baseboard", "trim", "ceiling_finish", "ceiling_cloud", "column_wrap", "door_finish", "frame_finish", "shower_wall", "shower_floor", "backsplash", "vanity_top", "toilet_partition", "commercial_kitchen_floor", "kitchen_wall", "food_service_counter", "laundry_floor", "pool_deck_surface", "reception_desk", "bar_front", "bar_top", "back_bar", "banquette_base", "cabinet_front", "shelving", "display_fixture", "closet_system", "workstation_casework", "checkout_counter", "upholstery", "loose_furniture", "built_in_seating", "banquette_upholstery", "drapery", "window_treatment", "rug", "carpet_tile", "bedding", "privacy_curtain", "acoustic_fabric_panel", "lighting_fixture", "acoustic_treatment", "partition", "operable_wall", "signage", "wayfinding", "hardware", "plumbing_fixture", "decorative_screen", "art_installation", "green_wall", "facade_cladding", "soffit", "exterior_screen", "paving", "decking", "outdoor_furniture", "planter", "pool_coping", "shade_structure", "railing", "fence_screen", "unknown"];
|
|
9
|
-
export type MiuSurfaceApplication = (typeof MIU_SURFACE_APPLICATIONS)[number];
|
|
10
|
-
export declare const MIU_SURFACE_APPLICATION_TO_CANONICAL: Readonly<Record<MiuSurfaceApplication, Application | null>>;
|
|
11
|
-
export declare const miuFamilyToCanonical: (value: string) => MaterialFamily | null;
|
|
12
|
-
export declare const miuSectorToCanonical: (value: string) => Sector | null;
|
|
13
|
-
export declare const miuSurfaceApplicationToCanonical: (value: string) => Application | null;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Whether a cross-repository check may skip, or must fail for want of its subject.
|
|
3
|
-
*
|
|
4
|
-
* A check that no-ops when it cannot find what it inspects reads green forever, and this
|
|
5
|
-
* one has already rotted that way once: the materialgraph sync test asserted nothing for
|
|
6
|
-
* twelve days after a file split, unnoticed, because it only ran where a sibling checkout
|
|
7
|
-
* happened to exist and never in CI.
|
|
8
|
-
*
|
|
9
|
-
* Blanket-failing is not the fix either. CI legitimately has no sibling repo, so a hard
|
|
10
|
-
* requirement would break every run for a condition nobody can satisfy there.
|
|
11
|
-
*
|
|
12
|
-
* So the strictness is opt-in and explicit. By default an absent checkout skips, which is
|
|
13
|
-
* honest about what CI can see. A context that is *meant* to be able to run the check —
|
|
14
|
-
* a release gate, a verification pass, a developer who wants to know — sets the
|
|
15
|
-
* environment variable, and then a missing checkout is a failure rather than a shrug.
|
|
16
|
-
*/
|
|
17
|
-
export declare const REQUIRE_DOWNSTREAM_CHECK_ENV = "TAXONOMY_REQUIRE_DOWNSTREAM_CHECKS";
|
|
18
|
-
export type DownstreamCheckDecision = {
|
|
19
|
-
kind: "run";
|
|
20
|
-
} | {
|
|
21
|
-
kind: "skip";
|
|
22
|
-
reason: string;
|
|
23
|
-
} | {
|
|
24
|
-
kind: "fail";
|
|
25
|
-
reason: string;
|
|
26
|
-
};
|
|
27
|
-
export declare const decideDownstreamCheck: (input: {
|
|
28
|
-
/** Whether the thing being inspected is actually on disk. */
|
|
29
|
-
subjectPresent: boolean;
|
|
30
|
-
/** What is being looked for, named in the failure so it is actionable. */
|
|
31
|
-
subjectLabel: string;
|
|
32
|
-
/** The raw environment value; any non-empty value other than "0"/"false" means strict. */
|
|
33
|
-
requireFlag: string | undefined;
|
|
34
|
-
}) => DownstreamCheckDecision;
|
package/dist/env.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Whether cross-repository checks must fail rather than skip when their subject is
|
|
3
|
-
* missing. Undefined in almost every context, including CI — see
|
|
4
|
-
* `downstream-check-policy` for why that default is the honest one.
|
|
5
|
-
*/
|
|
6
|
-
export declare const readRequireDownstreamChecks: () => string | undefined;
|