@dsh-plugin-hub/registry 0.1.0

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.
@@ -0,0 +1,33 @@
1
+ import type { HubProfileVersion, PluginRecord, PluginVersion, ProfileBundle } from "@dsh-plugin-hub/schemas";
2
+ export declare class RegistryResolutionError extends Error {
3
+ readonly code: "PACKAGE_NOT_FOUND" | "VERSION_NOT_FOUND" | "DUPLICATE_BUNDLE" | "ORDER_CYCLE" | "ORDER_CONSTRAINT";
4
+ constructor(code: RegistryResolutionError["code"], message: string);
5
+ }
6
+ export declare function resolvePluginVersion(plugin: PluginRecord, selector?: string): PluginVersion;
7
+ export declare function sortedVersions(plugin: PluginRecord): PluginVersion[];
8
+ export declare function isGreaterVersion(left: string, right: string): boolean;
9
+ export declare function orderProfileBundles(bundles: readonly ProfileBundle[]): ProfileBundle[];
10
+ /** Validate an author-confirmed Profile sequence without changing it. */
11
+ export declare function validateProfileBundleOrder(bundles: readonly ProfileBundle[]): ProfileBundle[];
12
+ export interface ResolvedProfileBundle {
13
+ packageName: string;
14
+ selector: string;
15
+ version: string;
16
+ installSpec: string;
17
+ integrity?: string;
18
+ sourceKind: PluginVersion["source"]["kind"] | "builtin";
19
+ }
20
+ export interface ResolvedProfile {
21
+ profileVersion: string;
22
+ bundles: ResolvedProfileBundle[];
23
+ }
24
+ export declare function resolveProfile(profile: HubProfileVersion, plugins: ReadonlyMap<string, PluginRecord>): ResolvedProfile;
25
+ export interface EntryIdConflict {
26
+ entryId: string;
27
+ packages: string[];
28
+ }
29
+ export declare function detectEntryIdConflicts(versions: readonly {
30
+ packageName: string;
31
+ version: PluginVersion;
32
+ }[]): EntryIdConflict[];
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EACT,mBAAmB,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,aAAa,GACb,kBAAkB,CAAC;gBAGrB,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACrC,OAAO,EAAE,MAAM;CAMlB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EACpB,QAAQ,SAAW,GAClB,aAAa,CAsBf;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,EAAE,CAIpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,aAAa,EAAE,GAChC,aAAa,EAAE,CA6DjB;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,SAAS,aAAa,EAAE,GAChC,aAAa,EAAE,CAuBjB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CACzD;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,GACzC,eAAe,CA2CjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,EAAE,GACnE,eAAe,EAAE,CAYnB"}
package/dist/index.js ADDED
@@ -0,0 +1,157 @@
1
+ import { gt, maxSatisfying, rcompare, valid } from "semver";
2
+ export class RegistryResolutionError extends Error {
3
+ code;
4
+ constructor(code, message) {
5
+ super(message);
6
+ this.name = "RegistryResolutionError";
7
+ this.code = code;
8
+ }
9
+ }
10
+ export function resolvePluginVersion(plugin, selector = "latest") {
11
+ const available = plugin.versions.filter((version) => !version.yanked);
12
+ const tagged = plugin.distTags[selector];
13
+ const requested = tagged ?? selector;
14
+ if (valid(requested)) {
15
+ const exact = available.find((version) => version.version === requested);
16
+ if (exact)
17
+ return exact;
18
+ }
19
+ const resolved = maxSatisfying(available.map((version) => version.version), requested === "latest" ? "*" : requested);
20
+ if (resolved) {
21
+ return available.find((version) => version.version === resolved);
22
+ }
23
+ throw new RegistryResolutionError("VERSION_NOT_FOUND", `${plugin.packageName} has no non-yanked version matching ${selector}`);
24
+ }
25
+ export function sortedVersions(plugin) {
26
+ return [...plugin.versions].sort((left, right) => rcompare(left.version, right.version));
27
+ }
28
+ export function isGreaterVersion(left, right) {
29
+ return gt(left, right);
30
+ }
31
+ export function orderProfileBundles(bundles) {
32
+ const byName = new Map();
33
+ const inputOrder = new Map();
34
+ for (const [index, bundle] of bundles.entries()) {
35
+ if (byName.has(bundle.packageName)) {
36
+ throw new RegistryResolutionError("DUPLICATE_BUNDLE", `Profile contains ${bundle.packageName} more than once`);
37
+ }
38
+ byName.set(bundle.packageName, bundle);
39
+ inputOrder.set(bundle.packageName, index);
40
+ }
41
+ const outgoing = new Map();
42
+ const indegree = new Map();
43
+ for (const name of byName.keys()) {
44
+ outgoing.set(name, new Set());
45
+ indegree.set(name, 0);
46
+ }
47
+ const addEdge = (from, to) => {
48
+ if (!byName.has(from) || !byName.has(to) || from === to)
49
+ return;
50
+ const targets = outgoing.get(from);
51
+ if (targets.has(to))
52
+ return;
53
+ targets.add(to);
54
+ indegree.set(to, (indegree.get(to) ?? 0) + 1);
55
+ };
56
+ for (const bundle of bundles) {
57
+ for (const target of bundle.before)
58
+ addEdge(bundle.packageName, target);
59
+ for (const target of bundle.after)
60
+ addEdge(target, bundle.packageName);
61
+ }
62
+ const ready = [...byName.keys()]
63
+ .filter((name) => indegree.get(name) === 0)
64
+ .sort((left, right) => inputOrder.get(left) - inputOrder.get(right));
65
+ const ordered = [];
66
+ while (ready.length > 0) {
67
+ const current = ready.shift();
68
+ ordered.push(byName.get(current));
69
+ for (const target of outgoing.get(current) ?? []) {
70
+ const next = (indegree.get(target) ?? 0) - 1;
71
+ indegree.set(target, next);
72
+ if (next === 0) {
73
+ ready.push(target);
74
+ ready.sort((left, right) => inputOrder.get(left) - inputOrder.get(right));
75
+ }
76
+ }
77
+ }
78
+ if (ordered.length !== bundles.length) {
79
+ const cycle = [...byName.keys()].filter((name) => (indegree.get(name) ?? 0) > 0);
80
+ throw new RegistryResolutionError("ORDER_CYCLE", `Profile bundle order contains a cycle: ${cycle.join(", ")}`);
81
+ }
82
+ return ordered;
83
+ }
84
+ /** Validate an author-confirmed Profile sequence without changing it. */
85
+ export function validateProfileBundleOrder(bundles) {
86
+ const positions = new Map();
87
+ for (const [index, bundle] of bundles.entries()) {
88
+ if (positions.has(bundle.packageName)) {
89
+ throw new RegistryResolutionError("DUPLICATE_BUNDLE", `Profile contains ${bundle.packageName} more than once`);
90
+ }
91
+ positions.set(bundle.packageName, index);
92
+ }
93
+ for (const [index, bundle] of bundles.entries()) {
94
+ for (const target of bundle.before) {
95
+ const targetIndex = positions.get(target);
96
+ if (targetIndex === undefined || index >= targetIndex) {
97
+ throw new RegistryResolutionError("ORDER_CONSTRAINT", `${bundle.packageName} must appear before ${target}`);
98
+ }
99
+ }
100
+ for (const target of bundle.after) {
101
+ const targetIndex = positions.get(target);
102
+ if (targetIndex === undefined || index <= targetIndex) {
103
+ throw new RegistryResolutionError("ORDER_CONSTRAINT", `${bundle.packageName} must appear after ${target}`);
104
+ }
105
+ }
106
+ }
107
+ return [...bundles];
108
+ }
109
+ export function resolveProfile(profile, plugins) {
110
+ const ordered = validateProfileBundleOrder(profile.bundles);
111
+ const bundles = ordered.map((reference) => {
112
+ if (reference.sourceKind === "builtin" && reference.version) {
113
+ return {
114
+ packageName: reference.packageName,
115
+ selector: reference.selector,
116
+ version: reference.version,
117
+ installSpec: reference.installSpec ?? `builtin:${reference.packageName}@${reference.version}`,
118
+ integrity: reference.integrity,
119
+ sourceKind: "builtin",
120
+ };
121
+ }
122
+ const plugin = plugins.get(reference.packageName);
123
+ if (!plugin) {
124
+ throw new RegistryResolutionError("PACKAGE_NOT_FOUND", `Profile references unknown package ${reference.packageName}`);
125
+ }
126
+ const version = reference.version
127
+ ? plugin.versions.find((candidate) => candidate.version === reference.version && !candidate.yanked)
128
+ : resolvePluginVersion(plugin, reference.selector);
129
+ if (!version) {
130
+ throw new RegistryResolutionError("VERSION_NOT_FOUND", `${reference.packageName} has no non-yanked version ${reference.version}`);
131
+ }
132
+ return {
133
+ packageName: reference.packageName,
134
+ selector: reference.selector,
135
+ version: version.version,
136
+ installSpec: reference.installSpec ?? version.source.installSpec,
137
+ integrity: reference.integrity ??
138
+ (version.source.kind === "github" ? undefined : version.source.integrity),
139
+ sourceKind: reference.sourceKind ?? version.source.kind,
140
+ };
141
+ });
142
+ return { profileVersion: profile.version, bundles };
143
+ }
144
+ export function detectEntryIdConflicts(versions) {
145
+ const owners = new Map();
146
+ for (const { packageName, version } of versions) {
147
+ for (const entryId of new Set(version.entryIds)) {
148
+ const packages = owners.get(entryId) ?? [];
149
+ packages.push(packageName);
150
+ owners.set(entryId, packages);
151
+ }
152
+ }
153
+ return [...owners.entries()]
154
+ .filter(([, packages]) => packages.length > 1)
155
+ .map(([entryId, packages]) => ({ entryId, packages }));
156
+ }
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@dsh-plugin-hub/registry",
3
+ "version": "0.1.0",
4
+ "description": "Version resolution and profile planning for DSH Hub",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "main": "./dist/index.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "default": "./dist/index.js"
16
+ }
17
+ },
18
+ "dependencies": {
19
+ "semver": "7.8.5",
20
+ "@dsh-plugin-hub/schemas": "0.1.0"
21
+ },
22
+ "devDependencies": {
23
+ "@types/semver": "7.8.0",
24
+ "typescript": "5.9.3"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public",
28
+ "provenance": true
29
+ },
30
+ "license": "MIT",
31
+ "scripts": {
32
+ "build": "tsc -p tsconfig.json",
33
+ "typecheck": "tsc -p tsconfig.json --noEmit"
34
+ }
35
+ }