from @unified-product-graph/core/catalog · re-exported by @sdk
Catalog
The canonical list of every UPG entity type and edge type.
23 exports · 8 const · 6 type · 1 interface · 8 fn
Since v0.1.0Quick import
import { UPG_EDGE_CATALOG, isPolymorphicEdge } from '@unified-product-graph/core'Example
// Inspect the canonical shape of an edge type
import { UPG_EDGE_CATALOG, isPolymorphicEdge } from '@unified-product-graph/core'
// UPG_EDGE_CATALOG is keyed by edge type — index it directly
const edge = UPG_EDGE_CATALOG['persona_pursues_job']
console.log(edge?.forward_verb) // → 'pursues'
isPolymorphicEdge('node_informs_node') // → trueThe canonical list of every UPG entity type and edge type. Constants you import for runtime entity-type checks, edge-type enumeration, and pair-lookup (UPG_TYPES, UPG_EDGE_PAIR_MAP). Zero external imports, the absolute foundation of the spec.
Exports
Constants
{ product_targets_persona: { forward_verb: string; reverse_verb: string; classification: "semantic"; source_type: str...readonly ("product_targets_persona" | "persona_pursues_job" | "persona_experiences_need" | "persona_aspires_to_desire...Types
type CrossProductEligibleEdgeType = { [K in keyof typeof UPG_EDGE_CATALOG]: typeof UPG_EDGE_CATALOG[K] extends { cross_product_eligible: true } ? K : nev...The dual-registered cross-product edges, as a value-filtered union derived from the `cross_product_eligible` flag (0.17.3).
type DeliberateOnlyEdgeType = { [K in keyof typeof UPG_EDGE_CATALOG]: typeof UPG_EDGE_CATALOG[K] extends { deliberate_only: true } ? K : never }[ke...The deliberate-only edges, as a value-filtered union derived from the `deliberate_only` flag (0.17.4).
type DeprecatedUPGEntityType = neverNo entity types are currently deprecated; this union is `never`.
type UPGEntityType = | 'specification' | 'primitive' | 'operating_lifecycle' | 'operating_stage' // Strategy | 'product' | 'outcome' | 'ob...The union of every active entity type, across the flat domain registry.
Interfaces
Functions
(type: string) => booleanTrue if this edge type opts into the gated edge-property model (`carries_properties: true` in its catalog definition).
(type: string) => PropertySchema | undefinedThe typed property schema for a `carries_properties` edge, or `undefined` if the edge type declares none (it then accepts an unvalidated `properties` bag).
(type: string) => booleanTrue if this catalog edge is dual-registered as cross-product-eligible: a within-graph edge whose endpoints may also live in different graphs within a portfolio (0.17.3).
(type: string) => booleanTrue if this catalog edge is deliberate-only: it must be authored explicitly and is never inferred from a generic parent nesting (0.17.4).
(stage: unknown) => booleanTrue when `stage` is a known legacy alias (would migrate to a different canonical value).
(key: _UPGEdgeTypeLocal) => booleanTrue if the edge uses the `'node'` wildcard at either endpoint.
(key: _UPGEdgeTypeLocal) => booleanTrue if the edge is in the registered polymorphic allow-list.