@unified-product-graph/core 0.9.7 → 0.9.8

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/index.d.cts CHANGED
@@ -7172,7 +7172,7 @@ interface UPGProduct {
7172
7172
  /** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
7173
7173
  type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
7174
7174
  /** The set of valid cross-product relationship types */
7175
- type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of';
7175
+ type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to';
7176
7176
  /**
7177
7177
  * Runtime-checkable list of valid cross-product edge types. Mirrors
7178
7178
  * `UPGCrossEdgeType` for use in validators and writers that need to test
@@ -7207,6 +7207,26 @@ interface UPGCrossEdge {
7207
7207
  target_product_id?: string;
7208
7208
  /** Confidence level if this edge was inferred during import */
7209
7209
  mapping_confidence?: UPGMappingConfidence;
7210
+ /**
7211
+ * Sanctioned divergence marker (`instance_of` only). When true, registry drift
7212
+ * detection treats an instance title that differs from its canonical as
7213
+ * intentional (an informative product-local name, e.g. "Vercel Platform / SDK"
7214
+ * vs canonical "Vercel"), excluding it from the `title_divergence` count so
7215
+ * `clean` reflects only un-sanctioned drift.
7216
+ */
7217
+ alias?: boolean;
7218
+ /**
7219
+ * Audience relevance for `area_serves_persona` / `area_targets_market_segment`:
7220
+ * whether the audience is a primary or secondary focus of this area. The
7221
+ * primary-vs-secondary distinction is the core value of the area-to-audience matrix.
7222
+ */
7223
+ relevance?: 'primary' | 'secondary';
7224
+ /**
7225
+ * Audience role in this area's context (`area_serves_persona`). Mirrors
7226
+ * `PersonaProperties.audience_role`: the same persona can be a `buyer` for one
7227
+ * area and a `user` for another.
7228
+ */
7229
+ audience_role?: 'buyer' | 'user' | 'champion' | 'influencer' | 'partner';
7210
7230
  }
7211
7231
  /**
7212
7232
  * A product area within a portfolio. The organisational axis (who owns
@@ -20778,7 +20798,7 @@ declare function isCanonical(text: string): boolean;
20778
20798
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
20779
20799
  * The `check:version-lockstep` gate enforces this at release time.
20780
20800
  */
20781
- declare const UPG_VERSION: "0.9.7";
20801
+ declare const UPG_VERSION: "0.9.8";
20782
20802
  /**
20783
20803
  * The `.upg` JSON document format version. Written to the `upg_version` field.
20784
20804
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.d.ts CHANGED
@@ -7172,7 +7172,7 @@ interface UPGProduct {
7172
7172
  /** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
7173
7173
  type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
7174
7174
  /** The set of valid cross-product relationship types */
7175
- type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of';
7175
+ type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to';
7176
7176
  /**
7177
7177
  * Runtime-checkable list of valid cross-product edge types. Mirrors
7178
7178
  * `UPGCrossEdgeType` for use in validators and writers that need to test
@@ -7207,6 +7207,26 @@ interface UPGCrossEdge {
7207
7207
  target_product_id?: string;
7208
7208
  /** Confidence level if this edge was inferred during import */
7209
7209
  mapping_confidence?: UPGMappingConfidence;
7210
+ /**
7211
+ * Sanctioned divergence marker (`instance_of` only). When true, registry drift
7212
+ * detection treats an instance title that differs from its canonical as
7213
+ * intentional (an informative product-local name, e.g. "Vercel Platform / SDK"
7214
+ * vs canonical "Vercel"), excluding it from the `title_divergence` count so
7215
+ * `clean` reflects only un-sanctioned drift.
7216
+ */
7217
+ alias?: boolean;
7218
+ /**
7219
+ * Audience relevance for `area_serves_persona` / `area_targets_market_segment`:
7220
+ * whether the audience is a primary or secondary focus of this area. The
7221
+ * primary-vs-secondary distinction is the core value of the area-to-audience matrix.
7222
+ */
7223
+ relevance?: 'primary' | 'secondary';
7224
+ /**
7225
+ * Audience role in this area's context (`area_serves_persona`). Mirrors
7226
+ * `PersonaProperties.audience_role`: the same persona can be a `buyer` for one
7227
+ * area and a `user` for another.
7228
+ */
7229
+ audience_role?: 'buyer' | 'user' | 'champion' | 'influencer' | 'partner';
7210
7230
  }
7211
7231
  /**
7212
7232
  * A product area within a portfolio. The organisational axis (who owns
@@ -20778,7 +20798,7 @@ declare function isCanonical(text: string): boolean;
20778
20798
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
20779
20799
  * The `check:version-lockstep` gate enforces this at release time.
20780
20800
  */
20781
- declare const UPG_VERSION: "0.9.7";
20801
+ declare const UPG_VERSION: "0.9.8";
20782
20802
  /**
20783
20803
  * The `.upg` JSON document format version. Written to the `upg_version` field.
20784
20804
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.js CHANGED
@@ -2893,7 +2893,10 @@ var UPG_CROSS_EDGE_TYPES = [
2893
2893
  "succeeds",
2894
2894
  "hosts",
2895
2895
  "contributes_to",
2896
- "instance_of"
2896
+ "instance_of",
2897
+ "area_serves_persona",
2898
+ "area_targets_market_segment",
2899
+ "rolls_up_to"
2897
2900
  ];
2898
2901
  var REGISTRY_PRODUCT_ID = "registry";
2899
2902
 
@@ -26602,7 +26605,7 @@ var NODE_KEY_ORDER = [
26602
26605
  "properties"
26603
26606
  ];
26604
26607
  var EDGE_KEY_ORDER = ["id", "source", "target", "type", "mapping_confidence", "properties"];
26605
- var CROSS_EDGE_KEY_ORDER = ["id", "source", "target", "type", "source_product_id", "target_product_id", "mapping_confidence"];
26608
+ var CROSS_EDGE_KEY_ORDER = ["id", "source", "target", "type", "source_product_id", "target_product_id", "mapping_confidence", "alias", "relevance", "audience_role"];
26606
26609
  var PRODUCT_KEY_ORDER = ["id", "title", "description", "stage", "properties"];
26607
26610
  function canonicalNode(node) {
26608
26611
  const repaired = repairNodeDrift(node);
@@ -26795,7 +26798,7 @@ function isCanonical(text) {
26795
26798
  }
26796
26799
 
26797
26800
  // src/index.ts
26798
- var UPG_VERSION = "0.9.7";
26801
+ var UPG_VERSION = "0.9.8";
26799
26802
  var UPG_FORMAT_VERSION = "0.4.0";
26800
26803
  var MARKDOWN_FORMAT_VERSION = "0.1";
26801
26804
  var UPG_TYPES = getTypes();