@neuledge/context 1.2.1 → 1.2.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/store.d.ts +4 -2
- package/dist/store.js +36 -4
- package/dist/store.js.map +1 -1
- package/package.json +2 -2
package/dist/store.d.ts
CHANGED
|
@@ -26,8 +26,10 @@ export declare function isAllowedLibrary(pkg: PackageMeta, allowed: ReadonlySet<
|
|
|
26
26
|
* - segments compare as numbers, so `1.15.9` < `1.15.10` (text order gets this
|
|
27
27
|
* backwards — the bug behind #102);
|
|
28
28
|
* - a missing segment counts as zero, so `1.2` and `1.2.0` are the same release;
|
|
29
|
-
* - a prerelease sorts below its release (`2.0.0-rc.1` < `2.0.0`)
|
|
30
|
-
* prereleases compare
|
|
29
|
+
* - a prerelease sorts below its release (`2.0.0-rc.1` < `2.0.0`), and two
|
|
30
|
+
* prereleases compare identifier by identifier, numerically where both are
|
|
31
|
+
* numbers, so `rc.10` beats `rc.2`;
|
|
32
|
+
* - build metadata is ignored, since it carries no ordering meaning;
|
|
31
33
|
* - versions with no numeric part (`latest`, `main`) sort below every numeric
|
|
32
34
|
* version, so a floating label never hides a real release;
|
|
33
35
|
* - anything still tied falls back to text, so results never depend on
|
package/dist/store.js
CHANGED
|
@@ -20,7 +20,12 @@ export function isAllowedLibrary(pkg, allowed) {
|
|
|
20
20
|
}
|
|
21
21
|
/** Numeric segments of a version plus its prerelease suffix, or null if not numeric. */
|
|
22
22
|
function parseVersionParts(version) {
|
|
23
|
-
const
|
|
23
|
+
const unprefixed = version.startsWith("v") ? version.slice(1) : version;
|
|
24
|
+
// Build metadata carries no ordering meaning (semver §10), but leaving it on
|
|
25
|
+
// makes the last segment non-numeric, which would drop the whole version into
|
|
26
|
+
// the floating-label bucket below every real release.
|
|
27
|
+
const plus = unprefixed.indexOf("+");
|
|
28
|
+
const core = plus === -1 ? unprefixed : unprefixed.slice(0, plus);
|
|
24
29
|
const dash = core.indexOf("-");
|
|
25
30
|
const segments = (dash === -1 ? core : core.slice(0, dash)).split(".");
|
|
26
31
|
if (!segments.every((s) => /^\d+$/.test(s)))
|
|
@@ -40,8 +45,10 @@ function compareText(a, b) {
|
|
|
40
45
|
* - segments compare as numbers, so `1.15.9` < `1.15.10` (text order gets this
|
|
41
46
|
* backwards — the bug behind #102);
|
|
42
47
|
* - a missing segment counts as zero, so `1.2` and `1.2.0` are the same release;
|
|
43
|
-
* - a prerelease sorts below its release (`2.0.0-rc.1` < `2.0.0`)
|
|
44
|
-
* prereleases compare
|
|
48
|
+
* - a prerelease sorts below its release (`2.0.0-rc.1` < `2.0.0`), and two
|
|
49
|
+
* prereleases compare identifier by identifier, numerically where both are
|
|
50
|
+
* numbers, so `rc.10` beats `rc.2`;
|
|
51
|
+
* - build metadata is ignored, since it carries no ordering meaning;
|
|
45
52
|
* - versions with no numeric part (`latest`, `main`) sort below every numeric
|
|
46
53
|
* version, so a floating label never hides a real release;
|
|
47
54
|
* - anything still tied falls back to text, so results never depend on
|
|
@@ -68,10 +75,35 @@ export function compareVersions(a, b) {
|
|
|
68
75
|
return 1;
|
|
69
76
|
if (!partsB.prerelease)
|
|
70
77
|
return -1;
|
|
71
|
-
return
|
|
78
|
+
return comparePrerelease(partsA.prerelease, partsB.prerelease);
|
|
72
79
|
}
|
|
73
80
|
return compareText(a, b);
|
|
74
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Order two prerelease suffixes, lowest first.
|
|
84
|
+
*
|
|
85
|
+
* Dot-separated identifiers, compared one at a time: numeric ones as numbers, so
|
|
86
|
+
* `rc.10` beats `rc.2` — comparing the whole suffix as text reintroduces exactly
|
|
87
|
+
* the inversion #102 was about, one field deeper. A version that runs out of
|
|
88
|
+
* identifiers first sorts lower (`rc` < `rc.1`), per semver §11.
|
|
89
|
+
*/
|
|
90
|
+
function comparePrerelease(a, b) {
|
|
91
|
+
const idsA = a.split(".");
|
|
92
|
+
const idsB = b.split(".");
|
|
93
|
+
for (let i = 0; i < Math.max(idsA.length, idsB.length); i++) {
|
|
94
|
+
const x = idsA[i];
|
|
95
|
+
const y = idsB[i];
|
|
96
|
+
if (x === undefined)
|
|
97
|
+
return -1;
|
|
98
|
+
if (y === undefined)
|
|
99
|
+
return 1;
|
|
100
|
+
const numeric = /^\d+$/.test(x) && /^\d+$/.test(y);
|
|
101
|
+
const diff = numeric ? Number(x) - Number(y) : compareText(x, y);
|
|
102
|
+
if (diff !== 0)
|
|
103
|
+
return diff;
|
|
104
|
+
}
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
75
107
|
/**
|
|
76
108
|
* Registry of documentation packages.
|
|
77
109
|
* Manages an in-memory list of packages without file system operations.
|
package/dist/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAA2B,YAAY,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAe/E,2EAA2E;AAC3E,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,OAAe;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,GAAG,QAAQ,IAAI,WAAW,KAAK,CAAC;AACzC,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAgB,EAChB,OAA4B;IAE5B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,wFAAwF;AACxF,SAAS,iBAAiB,CACxB,OAAe;IAEf,MAAM,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neuledge/context",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.3",
|
|
4
4
|
"mcpName": "io.github.neuledge/context",
|
|
5
5
|
"description": "Context management for Neuledge packages",
|
|
6
6
|
"keywords": [],
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@inquirer/prompts": "^8.2.0",
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.11.4",
|
|
38
38
|
"commander": "^14.0.0",
|
|
39
|
-
"defuddle": "^0.
|
|
39
|
+
"defuddle": "^0.19.3",
|
|
40
40
|
"ignore": "^7.0.5",
|
|
41
41
|
"linkedom": "^0.18.12",
|
|
42
42
|
"remark-frontmatter": "^5.0.0",
|