@unified-product-graph/core 0.10.2 → 0.10.3
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.cjs +12 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -666,6 +666,13 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
666
666
|
source_type: string;
|
|
667
667
|
target_type: string;
|
|
668
668
|
};
|
|
669
|
+
node_classified_as_classification_value: {
|
|
670
|
+
forward_verb: string;
|
|
671
|
+
reverse_verb: string;
|
|
672
|
+
classification: "semantic";
|
|
673
|
+
source_type: string;
|
|
674
|
+
target_type: string;
|
|
675
|
+
};
|
|
669
676
|
persona_anti_fit_for_classification_value: {
|
|
670
677
|
forward_verb: string;
|
|
671
678
|
reverse_verb: string;
|
|
@@ -7208,7 +7215,7 @@ interface UPGProduct {
|
|
|
7208
7215
|
/** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
|
|
7209
7216
|
type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
|
|
7210
7217
|
/** The set of valid cross-product relationship types */
|
|
7211
|
-
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' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value';
|
|
7218
|
+
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' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value' | 'node_classified_as_classification_value';
|
|
7212
7219
|
/**
|
|
7213
7220
|
* Runtime-checkable list of valid cross-product edge types. Mirrors
|
|
7214
7221
|
* `UPGCrossEdgeType` for use in validators and writers that need to test
|
|
@@ -21438,7 +21445,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21438
21445
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21439
21446
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21440
21447
|
*/
|
|
21441
|
-
declare const UPG_VERSION: "0.10.
|
|
21448
|
+
declare const UPG_VERSION: "0.10.3";
|
|
21442
21449
|
/**
|
|
21443
21450
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21444
21451
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.d.ts
CHANGED
|
@@ -666,6 +666,13 @@ declare const UPG_EDGE_CATALOG: {
|
|
|
666
666
|
source_type: string;
|
|
667
667
|
target_type: string;
|
|
668
668
|
};
|
|
669
|
+
node_classified_as_classification_value: {
|
|
670
|
+
forward_verb: string;
|
|
671
|
+
reverse_verb: string;
|
|
672
|
+
classification: "semantic";
|
|
673
|
+
source_type: string;
|
|
674
|
+
target_type: string;
|
|
675
|
+
};
|
|
669
676
|
persona_anti_fit_for_classification_value: {
|
|
670
677
|
forward_verb: string;
|
|
671
678
|
reverse_verb: string;
|
|
@@ -7208,7 +7215,7 @@ interface UPGProduct {
|
|
|
7208
7215
|
/** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
|
|
7209
7216
|
type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
|
|
7210
7217
|
/** The set of valid cross-product relationship types */
|
|
7211
|
-
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' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value';
|
|
7218
|
+
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' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value' | 'node_classified_as_classification_value';
|
|
7212
7219
|
/**
|
|
7213
7220
|
* Runtime-checkable list of valid cross-product edge types. Mirrors
|
|
7214
7221
|
* `UPGCrossEdgeType` for use in validators and writers that need to test
|
|
@@ -21438,7 +21445,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21438
21445
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21439
21446
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21440
21447
|
*/
|
|
21441
|
-
declare const UPG_VERSION: "0.10.
|
|
21448
|
+
declare const UPG_VERSION: "0.10.3";
|
|
21442
21449
|
/**
|
|
21443
21450
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21444
21451
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.js
CHANGED
|
@@ -1150,6 +1150,12 @@ var UPG_EDGE_CATALOG = {
|
|
|
1150
1150
|
// canonical, eliminating the per-graph taxonomy node. Within-graph (the catalogue
|
|
1151
1151
|
// case) here; cross-product against the registry canonical via create_cross_product_edge.
|
|
1152
1152
|
competitor_classified_as_classification_value: { forward_verb: "classified_as", reverse_verb: "classification_of", classification: "semantic", source_type: "competitor", target_type: "classification_value" },
|
|
1153
|
+
// 0.10.3: the polymorphic, type-agnostic sibling. ANY node (a feature, a
|
|
1154
|
+
// product, a market_segment) classified against a classification_value, so
|
|
1155
|
+
// classification is not welded to the competitor type. Also dual-registered as
|
|
1156
|
+
// a cross-edge for the registry-canonical case. source_type:'node' (wildcard);
|
|
1157
|
+
// listed in UPG_POLYMORPHIC_EDGE_KEYS.
|
|
1158
|
+
node_classified_as_classification_value: { forward_verb: "classified_as", reverse_verb: "classification_of", classification: "semantic", source_type: "node", target_type: "classification_value" },
|
|
1153
1159
|
persona_anti_fit_for_classification_value: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "classification_value" },
|
|
1154
1160
|
persona_anti_fit_for_product: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "product" },
|
|
1155
1161
|
persona_anti_fit_for_competitor: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "competitor" },
|
|
@@ -2987,7 +2993,9 @@ var UPG_POLYMORPHIC_EDGE_KEYS = [
|
|
|
2987
2993
|
// Universal architecture references
|
|
2988
2994
|
"node_belongs_to_bounded_context",
|
|
2989
2995
|
// Framework exercises (an exercise can include any entity type)
|
|
2990
|
-
"framework_exercise_includes_node"
|
|
2996
|
+
"framework_exercise_includes_node",
|
|
2997
|
+
// Universal classification (any node classified against a classification_value)
|
|
2998
|
+
"node_classified_as_classification_value"
|
|
2991
2999
|
];
|
|
2992
3000
|
var _POLY_KEY_SET = new Set(UPG_POLYMORPHIC_EDGE_KEYS);
|
|
2993
3001
|
function isPolymorphicEdge(key) {
|
|
@@ -3045,7 +3053,8 @@ var UPG_CROSS_EDGE_TYPES = [
|
|
|
3045
3053
|
"feature_rivals_competitor_feature",
|
|
3046
3054
|
"competitor_signal_maps_to_feature",
|
|
3047
3055
|
"competitor_signal_surfaces_opportunity",
|
|
3048
|
-
"competitor_classified_as_classification_value"
|
|
3056
|
+
"competitor_classified_as_classification_value",
|
|
3057
|
+
"node_classified_as_classification_value"
|
|
3049
3058
|
];
|
|
3050
3059
|
var REGISTRY_PRODUCT_ID = "registry";
|
|
3051
3060
|
|
|
@@ -28429,7 +28438,7 @@ function isCanonical(text) {
|
|
|
28429
28438
|
}
|
|
28430
28439
|
|
|
28431
28440
|
// src/index.ts
|
|
28432
|
-
var UPG_VERSION = "0.10.
|
|
28441
|
+
var UPG_VERSION = "0.10.3";
|
|
28433
28442
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
28434
28443
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
28435
28444
|
var UPG_TYPES = getTypes();
|