@unified-product-graph/core 0.8.9 → 0.8.10
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/CHANGELOG.md +7 -0
- package/dist/index.cjs +8 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.8.10] - 2026-06-03
|
|
11
|
+
|
|
12
|
+
A patch release. Fixes a false-positive in framework-score validation.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Framework-score validation no longer flags a zero in a parenthesised **sum** denominator as an illegal divisor. Kano's satisfaction coefficient divides by `(delighter_count + performance_count + must_be_count + indifferent_count)`; the old heuristic captured the first term and warned that a legitimate `delighter_count: 0` "must not be 0". Only a lone divisor (`/ effort`, `/(job_size)`) is flagged now, and every computed expression is scanned, not just the first. RICE, WSJF, and Cost of Delay divisors still flag a 0 as before.
|
|
16
|
+
|
|
10
17
|
## [0.8.9] - 2026-06-03
|
|
11
18
|
|
|
12
19
|
Completes the framework composition model and frees the "lens" vocabulary. `UPG_VERSION` moves to `0.8.9` in lockstep with the package train (a release guard now enforces this; the published 0.8.8 had left it at 0.8.7).
|
package/dist/index.cjs
CHANGED
|
@@ -17310,12 +17310,14 @@ function validateFrameworkScores(nodes, edges, warnings) {
|
|
|
17310
17310
|
});
|
|
17311
17311
|
}
|
|
17312
17312
|
function divisorInputs(framework) {
|
|
17313
|
-
const
|
|
17314
|
-
if (
|
|
17313
|
+
const exprs = (framework.data?.computed_properties ?? []).map((c) => c?.expression).filter((e) => typeof e === "string" && e.length > 0);
|
|
17314
|
+
if (exprs.length === 0) return EMPTY_STRING_SET;
|
|
17315
17315
|
const out = /* @__PURE__ */ new Set();
|
|
17316
|
-
const re = /\/\s
|
|
17317
|
-
|
|
17318
|
-
|
|
17316
|
+
const re = /\/\s*(?:\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)|([A-Za-z_][A-Za-z0-9_]*))/g;
|
|
17317
|
+
for (const expr of exprs) {
|
|
17318
|
+
let m;
|
|
17319
|
+
while ((m = re.exec(expr)) !== null) out.add(m[1] ?? m[2]);
|
|
17320
|
+
}
|
|
17319
17321
|
return out;
|
|
17320
17322
|
}
|
|
17321
17323
|
var EMPTY_STRING_SET = /* @__PURE__ */ new Set();
|
|
@@ -25857,7 +25859,7 @@ function isCanonical(text) {
|
|
|
25857
25859
|
}
|
|
25858
25860
|
|
|
25859
25861
|
// src/index.ts
|
|
25860
|
-
var UPG_VERSION = "0.8.
|
|
25862
|
+
var UPG_VERSION = "0.8.10";
|
|
25861
25863
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
25862
25864
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
25863
25865
|
var UPG_TYPES = getTypes();
|