@openreef/cli 0.4.0 → 0.5.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.
- package/README.md +15 -1
- package/dist/commands/diff.d.ts +9 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +34 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +32 -7
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/lock.d.ts +5 -1
- package/dist/commands/lock.d.ts.map +1 -1
- package/dist/commands/lock.js +37 -3
- package/dist/commands/lock.js.map +1 -1
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +261 -13
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/publish.d.ts +8 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +146 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +32 -207
- package/dist/commands/update.js.map +1 -1
- package/dist/core/diff-engine.d.ts +21 -0
- package/dist/core/diff-engine.d.ts.map +1 -0
- package/dist/core/diff-engine.js +140 -0
- package/dist/core/diff-engine.js.map +1 -0
- package/dist/core/github-api.d.ts +37 -0
- package/dist/core/github-api.d.ts.map +1 -0
- package/dist/core/github-api.js +163 -0
- package/dist/core/github-api.js.map +1 -0
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +17 -39
- package/dist/core/registry.js.map +1 -1
- package/dist/core/skills-registry.d.ts +32 -0
- package/dist/core/skills-registry.d.ts.map +1 -0
- package/dist/core/skills-registry.js +186 -0
- package/dist/core/skills-registry.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +289 -225
- package/dist/index.js.map +1 -1
- package/dist/types/lockfile.d.ts +9 -0
- package/dist/types/lockfile.d.ts.map +1 -0
- package/dist/types/lockfile.js +2 -0
- package/dist/types/lockfile.js.map +1 -0
- package/dist/utils/download.d.ts +18 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/download.js +72 -0
- package/dist/utils/download.js.map +1 -0
- package/dist/utils/plan-display.d.ts +3 -0
- package/dist/utils/plan-display.d.ts.map +1 -0
- package/dist/utils/plan-display.js +80 -0
- package/dist/utils/plan-display.js.map +1 -0
- package/dist/utils/semver.d.ts +12 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +82 -0
- package/dist/utils/semver.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
2
|
+
import { VERSION } from '../version.js';
|
|
3
|
+
// ── Error classes ──
|
|
4
|
+
export class GitHubApiError extends Error {
|
|
5
|
+
statusCode;
|
|
6
|
+
constructor(message, statusCode) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.statusCode = statusCode;
|
|
9
|
+
this.name = 'GitHubApiError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export class GitHubAuthError extends GitHubApiError {
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message, 401);
|
|
15
|
+
this.name = 'GitHubAuthError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class GitHubConflictError extends GitHubApiError {
|
|
19
|
+
constructor(message) {
|
|
20
|
+
super(message, 409);
|
|
21
|
+
this.name = 'GitHubConflictError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export class PublishRollbackError extends Error {
|
|
25
|
+
originalError;
|
|
26
|
+
releaseId;
|
|
27
|
+
tag;
|
|
28
|
+
constructor(message, originalError, releaseId, tag) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.originalError = originalError;
|
|
31
|
+
this.releaseId = releaseId;
|
|
32
|
+
this.tag = tag;
|
|
33
|
+
this.name = 'PublishRollbackError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
// ── Helpers ──
|
|
37
|
+
function resolveOwnerRepo(options) {
|
|
38
|
+
return {
|
|
39
|
+
owner: options.owner ?? 'openreefai',
|
|
40
|
+
repo: options.repo ?? 'formations',
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async function githubRequest(options) {
|
|
44
|
+
const { owner, repo } = resolveOwnerRepo(options);
|
|
45
|
+
const baseUrl = options.uploadUrl ?? 'https://api.github.com';
|
|
46
|
+
const url = options.uploadUrl
|
|
47
|
+
? options.path
|
|
48
|
+
: `${baseUrl}/repos/${owner}/${repo}${options.path}`;
|
|
49
|
+
const headers = {
|
|
50
|
+
'Authorization': `Bearer ${options.token}`,
|
|
51
|
+
'User-Agent': `@openreef/cli/${VERSION}`,
|
|
52
|
+
'Accept': 'application/vnd.github+json',
|
|
53
|
+
};
|
|
54
|
+
let body;
|
|
55
|
+
if (options.rawBody) {
|
|
56
|
+
headers['Content-Type'] = options.contentType ?? 'application/octet-stream';
|
|
57
|
+
body = options.rawBody.buffer.slice(options.rawBody.byteOffset, options.rawBody.byteOffset + options.rawBody.byteLength);
|
|
58
|
+
}
|
|
59
|
+
else if (options.body !== undefined) {
|
|
60
|
+
headers['Content-Type'] = 'application/json';
|
|
61
|
+
body = JSON.stringify(options.body);
|
|
62
|
+
}
|
|
63
|
+
const response = await fetch(url, {
|
|
64
|
+
method: options.method ?? 'GET',
|
|
65
|
+
headers,
|
|
66
|
+
body,
|
|
67
|
+
});
|
|
68
|
+
if (response.status === 401 || response.status === 403) {
|
|
69
|
+
throw new GitHubAuthError(`GitHub authentication failed (HTTP ${response.status}). Check your token.`);
|
|
70
|
+
}
|
|
71
|
+
if (response.status === 409 || response.status === 422) {
|
|
72
|
+
const errBody = await response.text();
|
|
73
|
+
throw new GitHubConflictError(`GitHub conflict (HTTP ${response.status}): ${errBody}`);
|
|
74
|
+
}
|
|
75
|
+
if (!response.ok) {
|
|
76
|
+
const errBody = await response.text();
|
|
77
|
+
throw new GitHubApiError(`GitHub API error (HTTP ${response.status}): ${errBody}`, response.status);
|
|
78
|
+
}
|
|
79
|
+
if (response.status === 204)
|
|
80
|
+
return undefined;
|
|
81
|
+
return response.json();
|
|
82
|
+
}
|
|
83
|
+
// ── Core functions ──
|
|
84
|
+
export async function getRegistryIndex(options) {
|
|
85
|
+
try {
|
|
86
|
+
const result = await githubRequest({
|
|
87
|
+
...options,
|
|
88
|
+
path: '/contents/index.json',
|
|
89
|
+
});
|
|
90
|
+
const decoded = Buffer.from(result.content, 'base64').toString('utf-8');
|
|
91
|
+
const content = JSON.parse(decoded);
|
|
92
|
+
return { content, sha: result.sha };
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
if (err instanceof GitHubApiError && err.statusCode === 404) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
export async function createDraftRelease(tag, name, body, options) {
|
|
102
|
+
const result = await githubRequest({
|
|
103
|
+
...options,
|
|
104
|
+
method: 'POST',
|
|
105
|
+
path: '/releases',
|
|
106
|
+
body: {
|
|
107
|
+
tag_name: tag,
|
|
108
|
+
name,
|
|
109
|
+
body,
|
|
110
|
+
draft: true,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
// upload_url has template like "https://uploads.github.com/.../assets{?name,label}"
|
|
114
|
+
const uploadUrl = result.upload_url.replace(/\{[^}]*\}/, '');
|
|
115
|
+
return { releaseId: result.id, uploadUrl };
|
|
116
|
+
}
|
|
117
|
+
export async function uploadReleaseAsset(releaseId, tarballPath, options) {
|
|
118
|
+
const { owner, repo } = resolveOwnerRepo(options);
|
|
119
|
+
const tarballBuffer = await readFile(tarballPath);
|
|
120
|
+
const fileName = tarballPath.split('/').pop();
|
|
121
|
+
const url = `https://uploads.github.com/repos/${owner}/${repo}/releases/${releaseId}/assets?name=${encodeURIComponent(fileName)}`;
|
|
122
|
+
const result = await githubRequest({
|
|
123
|
+
...options,
|
|
124
|
+
method: 'POST',
|
|
125
|
+
path: url,
|
|
126
|
+
uploadUrl: url,
|
|
127
|
+
rawBody: tarballBuffer,
|
|
128
|
+
contentType: 'application/gzip',
|
|
129
|
+
});
|
|
130
|
+
return { assetUrl: result.browser_download_url };
|
|
131
|
+
}
|
|
132
|
+
export async function publishRelease(releaseId, options) {
|
|
133
|
+
await githubRequest({
|
|
134
|
+
...options,
|
|
135
|
+
method: 'PATCH',
|
|
136
|
+
path: `/releases/${releaseId}`,
|
|
137
|
+
body: { draft: false },
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export async function deleteRelease(releaseId, options) {
|
|
141
|
+
await githubRequest({
|
|
142
|
+
...options,
|
|
143
|
+
method: 'DELETE',
|
|
144
|
+
path: `/releases/${releaseId}`,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
export async function updateRegistryIndex(index, sha, commitMessage, options) {
|
|
148
|
+
const content = Buffer.from(JSON.stringify(index, null, 2) + '\n').toString('base64');
|
|
149
|
+
const body = {
|
|
150
|
+
message: commitMessage,
|
|
151
|
+
content,
|
|
152
|
+
};
|
|
153
|
+
if (sha) {
|
|
154
|
+
body.sha = sha;
|
|
155
|
+
}
|
|
156
|
+
await githubRequest({
|
|
157
|
+
...options,
|
|
158
|
+
method: 'PUT',
|
|
159
|
+
path: '/contents/index.json',
|
|
160
|
+
body,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=github-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-api.js","sourceRoot":"","sources":["../../src/core/github-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,sBAAsB;AAEtB,MAAM,OAAO,cAAe,SAAQ,KAAK;IACH;IAApC,YAAY,OAAe,EAAS,UAAmB;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,eAAU,GAAV,UAAU,CAAS;QAErD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAGpC;IACA;IACA;IAJT,YACE,OAAe,EACR,aAAoB,EACpB,SAAiB,EACjB,GAAW;QAElB,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,kBAAa,GAAb,aAAa,CAAO;QACpB,cAAS,GAAT,SAAS,CAAQ;QACjB,QAAG,GAAH,GAAG,CAAQ;QAGlB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAmBD,gBAAgB;AAEhB,SAAS,gBAAgB,CAAC,OAAyB;IACjD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,YAAY;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,YAAY;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAI,OAAuB;IACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,wBAAwB,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS;QAC3B,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,CAAC,CAAC,GAAG,OAAO,UAAU,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEvD,MAAM,OAAO,GAA2B;QACtC,eAAe,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE;QAC1C,YAAY,EAAE,iBAAiB,OAAO,EAAE;QACxC,QAAQ,EAAE,6BAA6B;KACxC,CAAC;IAEF,IAAI,IAA0B,CAAC;IAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,0BAA0B,CAAC;QAC5E,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACjC,OAAO,CAAC,OAAO,CAAC,UAAU,EAC1B,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CACzC,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;QAC/B,OAAO;QACP,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,eAAe,CACvB,sCAAsC,QAAQ,CAAC,MAAM,sBAAsB,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAC3B,yBAAyB,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtC,MAAM,IAAI,cAAc,CACtB,0BAA0B,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,EACxD,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,SAAc,CAAC;IAEnD,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC;AAED,uBAAuB;AAEvB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAI/B;YACD,GAAG,OAAO;YACV,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAkB,CAAC;QACrD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,cAAc,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,OAAyB;IAEzB,MAAM,MAAM,GAAG,MAAM,aAAa,CAG/B;QACD,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE;YACJ,QAAQ,EAAE,GAAG;YACb,IAAI;YACJ,IAAI;YACJ,KAAK,EAAE,IAAI;SACZ;KACF,CAAC,CAAC;IAEH,oFAAoF;IACpF,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAiB,EACjB,WAAmB,EACnB,OAAyB;IAEzB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;IAE/C,MAAM,GAAG,GAAG,oCAAoC,KAAK,IAAI,IAAI,aAAa,SAAS,gBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAElI,MAAM,MAAM,GAAG,MAAM,aAAa,CAAmC;QACnE,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,GAAG;QACd,OAAO,EAAE,aAAa;QACtB,WAAW,EAAE,kBAAkB;KAChC,CAAC,CAAC;IAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,OAAyB;IAEzB,MAAM,aAAa,CAAC;QAClB,GAAG,OAAO;QACV,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,aAAa,SAAS,EAAE;QAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;KACvB,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAyB;IAEzB,MAAM,aAAa,CAAC;QAClB,GAAG,OAAO;QACV,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa,SAAS,EAAE;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAoB,EACpB,GAAuB,EACvB,aAAqB,EACrB,OAAyB;IAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACtC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAErB,MAAM,IAAI,GAA2B;QACnC,OAAO,EAAE,aAAa;QACtB,OAAO;KACR,CAAC;IACF,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,CAAC;QAClB,GAAG,OAAO;QACV,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sBAAsB;QAC5B,IAAI;KACL,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IACP,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACpC,aAAa,EAAE,MAAM;gBAArB,aAAa,EAAE,MAAM;CAIzC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IAE5C,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAOzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACV,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAIpD;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAEtC,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,MAAM;gBAHd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAOxB;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAM1D;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CASA;AAyBD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,MAAM,CAIR;AAoCD,wBAAsB,kBAAkB,CACtC,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,CAAC,CA8DxB;AAuBD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf;IAAE,KAAK,EAAE,oBAAoB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAa1D;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,oBAAoB,EAC3B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAoBpF"}
|
package/dist/core/registry.js
CHANGED
|
@@ -6,6 +6,7 @@ import { mkdtemp } from 'node:fs/promises';
|
|
|
6
6
|
import { tmpdir } from 'node:os';
|
|
7
7
|
import { extract } from 'tar';
|
|
8
8
|
import { resolveReefStateDir } from './openclaw-paths.js';
|
|
9
|
+
import { downloadArtifact, ArtifactDownloadError, ArtifactIntegrityError } from '../utils/download.js';
|
|
9
10
|
import { VERSION } from '../version.js';
|
|
10
11
|
// ── Error classes ──
|
|
11
12
|
export class RegistryFetchError extends Error {
|
|
@@ -214,51 +215,28 @@ export async function downloadFormationTarball(name, version, entry, options) {
|
|
|
214
215
|
const registryUrl = resolveRegistryUrl(options);
|
|
215
216
|
const cacheDir = registryCacheDir(registryUrl, options?.env);
|
|
216
217
|
const hasHash = !!entry.sha256;
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const cachedHash = createHash('sha256').update(cached).digest('hex');
|
|
222
|
-
if (cachedHash === entry.sha256) {
|
|
223
|
-
return cachePath;
|
|
224
|
-
}
|
|
225
|
-
// Cached file is corrupted or collided — delete and re-download
|
|
226
|
-
await unlink(cachePath).catch(() => { });
|
|
227
|
-
}
|
|
228
|
-
// Unverified tarballs: always re-download (never trust cache)
|
|
229
|
-
// They are written to unverified/ as a download optimization within a single session
|
|
230
|
-
// but are never reused across invocations
|
|
231
|
-
if (!hasHash) {
|
|
232
|
-
console.warn(`WARNING: No integrity hash for ${name}@${version} — artifact is UNVERIFIED`);
|
|
233
|
-
}
|
|
234
|
-
validateUrlScheme(entry.url, 'tarball download');
|
|
235
|
-
let response;
|
|
218
|
+
const disambig = hashString(`${name}:${version}`).slice(0, 8);
|
|
219
|
+
const safeName = sanitizeFilenameComponent(name);
|
|
220
|
+
const safeVersion = sanitizeFilenameComponent(version);
|
|
221
|
+
const cacheName = `${safeName}-${safeVersion}-${disambig}.reef.tar.gz`;
|
|
236
222
|
try {
|
|
237
|
-
|
|
238
|
-
|
|
223
|
+
return await downloadArtifact({
|
|
224
|
+
url: entry.url,
|
|
225
|
+
sha256: entry.sha256,
|
|
226
|
+
cacheDir: join(cacheDir, hasHash ? 'tarballs' : 'unverified'),
|
|
227
|
+
cacheName,
|
|
228
|
+
userAgent: `@openreef/cli/${VERSION}`,
|
|
239
229
|
});
|
|
240
230
|
}
|
|
241
231
|
catch (err) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
const buffer = Buffer.from(await response.arrayBuffer());
|
|
248
|
-
// Verify SHA-256 if present
|
|
249
|
-
if (entry.sha256) {
|
|
250
|
-
const actual = createHash('sha256').update(buffer).digest('hex');
|
|
251
|
-
if (actual !== entry.sha256) {
|
|
252
|
-
throw new RegistryIntegrityError(name, version, entry.sha256, actual);
|
|
232
|
+
if (err instanceof ArtifactIntegrityError) {
|
|
233
|
+
throw new RegistryIntegrityError(name, version, err.expected, err.actual);
|
|
234
|
+
}
|
|
235
|
+
if (err instanceof ArtifactDownloadError) {
|
|
236
|
+
throw new RegistryDownloadError(`Failed to download ${name}@${version}: ${err.message}`, err.cause);
|
|
253
237
|
}
|
|
238
|
+
throw err;
|
|
254
239
|
}
|
|
255
|
-
// Write to cache
|
|
256
|
-
const parentDir = hasHash
|
|
257
|
-
? join(cacheDir, 'tarballs')
|
|
258
|
-
: join(cacheDir, 'unverified');
|
|
259
|
-
await mkdir(parentDir, { recursive: true });
|
|
260
|
-
await writeFile(cachePath, buffer);
|
|
261
|
-
return cachePath;
|
|
262
240
|
}
|
|
263
241
|
export async function resolveFromRegistry(name, version, options) {
|
|
264
242
|
const index = await fetchRegistryIndex(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RegistryVersionEntry, RegistryOptions } from './registry.js';
|
|
2
|
+
import type { Lockfile } from '../types/lockfile.js';
|
|
3
|
+
export interface SkillsRegistryIndex {
|
|
4
|
+
skills: Record<string, {
|
|
5
|
+
latest: string;
|
|
6
|
+
versions: Record<string, RegistryVersionEntry>;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
export declare class SkillNotFoundError extends Error {
|
|
10
|
+
skillName: string;
|
|
11
|
+
constructor(skillName: string);
|
|
12
|
+
}
|
|
13
|
+
export declare class SkillVersionNotFoundError extends Error {
|
|
14
|
+
skillName: string;
|
|
15
|
+
versionRange: string;
|
|
16
|
+
constructor(skillName: string, versionRange: string);
|
|
17
|
+
}
|
|
18
|
+
export declare class LockfileViolationError extends Error {
|
|
19
|
+
constructor(message: string);
|
|
20
|
+
}
|
|
21
|
+
export declare function fetchSkillsIndex(options?: RegistryOptions): Promise<SkillsRegistryIndex>;
|
|
22
|
+
export declare function lookupSkill(index: SkillsRegistryIndex, name: string, versionRange?: string): {
|
|
23
|
+
entry: RegistryVersionEntry;
|
|
24
|
+
resolvedVersion: string;
|
|
25
|
+
};
|
|
26
|
+
export declare function resolveSkillsDependencies(skills: Record<string, string>, options?: RegistryOptions): Promise<Lockfile>;
|
|
27
|
+
export declare function verifyLockfileIntegrity(lockfile: Lockfile, options?: RegistryOptions): Promise<{
|
|
28
|
+
valid: boolean;
|
|
29
|
+
errors: string[];
|
|
30
|
+
}>;
|
|
31
|
+
export declare function enforceLockfile(formationPath: string, skills: Record<string, string>, options?: RegistryOptions): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=skills-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-registry.d.ts","sourceRoot":"","sources":["../../src/core/skills-registry.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;KAAE,CAAC,CAAC;CAC5F;AAID,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAIrC;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAC/B,SAAS,EAAE,MAAM;IAAS,YAAY,EAAE,MAAM;gBAA9C,SAAS,EAAE,MAAM,EAAS,YAAY,EAAE,MAAM;CAIlE;AAED,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AA0BD,wBAAsB,gBAAgB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiB9F;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,KAAK,EAAE,oBAAoB,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAqB1D;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,QAAQ,CAAC,CA+BnB;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkC/C;AAID,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAsEf"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { downloadArtifact } from '../utils/download.js';
|
|
5
|
+
import { resolveRange } from '../utils/semver.js';
|
|
6
|
+
import { parseSemver, satisfiesRange } from '../utils/semver.js';
|
|
7
|
+
import { resolveReefStateDir } from './openclaw-paths.js';
|
|
8
|
+
import { VERSION } from '../version.js';
|
|
9
|
+
// ── Error classes ──
|
|
10
|
+
export class SkillNotFoundError extends Error {
|
|
11
|
+
skillName;
|
|
12
|
+
constructor(skillName) {
|
|
13
|
+
super(`Skill "${skillName}" not found in skills registry`);
|
|
14
|
+
this.skillName = skillName;
|
|
15
|
+
this.name = 'SkillNotFoundError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export class SkillVersionNotFoundError extends Error {
|
|
19
|
+
skillName;
|
|
20
|
+
versionRange;
|
|
21
|
+
constructor(skillName, versionRange) {
|
|
22
|
+
super(`No version matching "${versionRange}" found for skill "${skillName}"`);
|
|
23
|
+
this.skillName = skillName;
|
|
24
|
+
this.versionRange = versionRange;
|
|
25
|
+
this.name = 'SkillVersionNotFoundError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class LockfileViolationError extends Error {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'LockfileViolationError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ── Constants ──
|
|
35
|
+
const DEFAULT_SKILLS_REGISTRY_URL = 'https://raw.githubusercontent.com/openreefai/skills/main/index.json';
|
|
36
|
+
// ── Helpers ──
|
|
37
|
+
function resolveSkillsRegistryUrl(options) {
|
|
38
|
+
const env = options?.env ?? process.env;
|
|
39
|
+
return options?.registryUrl ?? env.REEF_SKILLS_REGISTRY_URL ?? DEFAULT_SKILLS_REGISTRY_URL;
|
|
40
|
+
}
|
|
41
|
+
function skillsCacheDir(options) {
|
|
42
|
+
const env = options?.env ?? process.env;
|
|
43
|
+
const reefStateDir = resolveReefStateDir(env);
|
|
44
|
+
return join(reefStateDir, 'cache', 'skills');
|
|
45
|
+
}
|
|
46
|
+
function hashString(s) {
|
|
47
|
+
return createHash('sha256').update(s).digest('hex');
|
|
48
|
+
}
|
|
49
|
+
// ── Core functions ──
|
|
50
|
+
export async function fetchSkillsIndex(options) {
|
|
51
|
+
const registryUrl = resolveSkillsRegistryUrl(options);
|
|
52
|
+
const response = await fetch(registryUrl, {
|
|
53
|
+
headers: { 'User-Agent': `@openreef/cli/${VERSION}` },
|
|
54
|
+
});
|
|
55
|
+
if (!response.ok) {
|
|
56
|
+
throw new Error(`Skills registry returned HTTP ${response.status}: ${response.statusText}`);
|
|
57
|
+
}
|
|
58
|
+
const data = await response.json();
|
|
59
|
+
if (!data.skills || typeof data.skills !== 'object') {
|
|
60
|
+
throw new Error('Skills registry index has invalid format (missing skills object)');
|
|
61
|
+
}
|
|
62
|
+
return data;
|
|
63
|
+
}
|
|
64
|
+
export function lookupSkill(index, name, versionRange) {
|
|
65
|
+
const skill = index.skills[name];
|
|
66
|
+
if (!skill) {
|
|
67
|
+
throw new SkillNotFoundError(name);
|
|
68
|
+
}
|
|
69
|
+
if (!versionRange || versionRange === 'latest') {
|
|
70
|
+
const entry = skill.versions[skill.latest];
|
|
71
|
+
if (!entry) {
|
|
72
|
+
throw new SkillVersionNotFoundError(name, skill.latest);
|
|
73
|
+
}
|
|
74
|
+
return { entry, resolvedVersion: skill.latest };
|
|
75
|
+
}
|
|
76
|
+
const versions = Object.keys(skill.versions);
|
|
77
|
+
const resolved = resolveRange(versions, versionRange);
|
|
78
|
+
if (!resolved) {
|
|
79
|
+
throw new SkillVersionNotFoundError(name, versionRange);
|
|
80
|
+
}
|
|
81
|
+
return { entry: skill.versions[resolved], resolvedVersion: resolved };
|
|
82
|
+
}
|
|
83
|
+
export async function resolveSkillsDependencies(skills, options) {
|
|
84
|
+
const index = await fetchSkillsIndex(options);
|
|
85
|
+
const lockfileSkills = {};
|
|
86
|
+
for (const [name, range] of Object.entries(skills)) {
|
|
87
|
+
const { entry, resolvedVersion } = lookupSkill(index, name, range);
|
|
88
|
+
// Download the artifact to compute integrity hash
|
|
89
|
+
const cacheDir = skillsCacheDir(options);
|
|
90
|
+
const disambig = hashString(`${name}:${resolvedVersion}`).slice(0, 8);
|
|
91
|
+
const cacheName = `${name}-${resolvedVersion}-${disambig}.tar.gz`;
|
|
92
|
+
const artifactPath = await downloadArtifact({
|
|
93
|
+
url: entry.url,
|
|
94
|
+
sha256: entry.sha256,
|
|
95
|
+
cacheDir,
|
|
96
|
+
cacheName,
|
|
97
|
+
userAgent: `@openreef/cli/${VERSION}`,
|
|
98
|
+
});
|
|
99
|
+
const content = await readFile(artifactPath);
|
|
100
|
+
const integrity = `sha256-${createHash('sha256').update(content).digest('hex')}`;
|
|
101
|
+
lockfileSkills[name] = {
|
|
102
|
+
version: resolvedVersion,
|
|
103
|
+
resolved: entry.url,
|
|
104
|
+
integrity,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return { skills: lockfileSkills };
|
|
108
|
+
}
|
|
109
|
+
export async function verifyLockfileIntegrity(lockfile, options) {
|
|
110
|
+
const errors = [];
|
|
111
|
+
const cacheDir = skillsCacheDir(options);
|
|
112
|
+
for (const [name, entry] of Object.entries(lockfile.skills)) {
|
|
113
|
+
try {
|
|
114
|
+
const disambig = hashString(`${name}:${entry.version}`).slice(0, 8);
|
|
115
|
+
const cacheName = `${name}-${entry.version}-${disambig}.tar.gz`;
|
|
116
|
+
// Download from lockfile resolved URL (not re-resolved from registry)
|
|
117
|
+
const artifactPath = await downloadArtifact({
|
|
118
|
+
url: entry.resolved,
|
|
119
|
+
sha256: undefined, // We verify ourselves against lockfile integrity
|
|
120
|
+
cacheDir,
|
|
121
|
+
cacheName: `verify-${cacheName}`,
|
|
122
|
+
userAgent: `@openreef/cli/${VERSION}`,
|
|
123
|
+
});
|
|
124
|
+
const content = await readFile(artifactPath);
|
|
125
|
+
const actual = `sha256-${createHash('sha256').update(content).digest('hex')}`;
|
|
126
|
+
if (actual !== entry.integrity) {
|
|
127
|
+
errors.push(`Integrity mismatch for ${name}@${entry.version}: expected ${entry.integrity}, got ${actual}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
errors.push(`Failed to verify ${name}@${entry.version}: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return { valid: errors.length === 0, errors };
|
|
135
|
+
}
|
|
136
|
+
const SHA256_HEX_RE = /^sha256-[0-9a-f]{64}$/;
|
|
137
|
+
export async function enforceLockfile(formationPath, skills, options) {
|
|
138
|
+
const lockfilePath = join(formationPath, 'reef.lock.json');
|
|
139
|
+
let lockfileRaw;
|
|
140
|
+
try {
|
|
141
|
+
lockfileRaw = await readFile(lockfilePath, 'utf-8');
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// No lockfile — warn and return
|
|
145
|
+
console.warn('No reef.lock.json found. Run `reef lock` to pin skill versions for supply-chain safety.');
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const parsed = JSON.parse(lockfileRaw);
|
|
149
|
+
const lockfile = { skills: (parsed.skills ?? {}) };
|
|
150
|
+
// Warn about extra entries in lockfile (skills not in manifest)
|
|
151
|
+
for (const lockedName of Object.keys(lockfile.skills)) {
|
|
152
|
+
if (!(lockedName in skills)) {
|
|
153
|
+
console.warn(`Warning: Lockfile contains skill "${lockedName}" which is not declared in reef.json dependencies.skills. Consider running \`reef lock\` to regenerate.`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// Check each declared skill
|
|
157
|
+
for (const [name, range] of Object.entries(skills)) {
|
|
158
|
+
const entry = lockfile.skills[name];
|
|
159
|
+
if (!entry) {
|
|
160
|
+
throw new LockfileViolationError(`Skill "${name}" is declared in reef.json but missing from reef.lock.json. Run \`reef lock\` to regenerate.`);
|
|
161
|
+
}
|
|
162
|
+
// Validate entry format
|
|
163
|
+
if (!SHA256_HEX_RE.test(entry.integrity)) {
|
|
164
|
+
throw new LockfileViolationError(`Malformed integrity for "${name}" in lockfile: expected "sha256-<64 hex chars>", got "${entry.integrity}"`);
|
|
165
|
+
}
|
|
166
|
+
if (!entry.resolved.startsWith('https://') && !entry.resolved.startsWith('http://')) {
|
|
167
|
+
throw new LockfileViolationError(`Malformed resolved URL for "${name}" in lockfile: only https:// and http:// schemes are allowed, got "${entry.resolved}"`);
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
parseSemver(entry.version);
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
throw new LockfileViolationError(`Malformed version for "${name}" in lockfile: "${entry.version}" is not a valid semver string`);
|
|
174
|
+
}
|
|
175
|
+
// Check range satisfaction
|
|
176
|
+
if (!satisfiesRange(entry.version, range)) {
|
|
177
|
+
throw new LockfileViolationError(`Locked version ${entry.version} for "${name}" does not satisfy declared range "${range}". Run \`reef lock\` to update.`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Verify integrity
|
|
181
|
+
const verification = await verifyLockfileIntegrity(lockfile, options);
|
|
182
|
+
if (!verification.valid) {
|
|
183
|
+
throw new LockfileViolationError(`Lockfile integrity check failed:\n ${verification.errors.join('\n ')}`);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=skills-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-registry.js","sourceRoot":"","sources":["../../src/core/skills-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,YAAY,IAAI,OAAO,CAiRtC"}
|