@0xrama/bnpm 0.0.1
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 +83 -0
- package/dist/package.json +45 -0
- package/dist/src/cache/archive.d.ts +15 -0
- package/dist/src/cache/archive.js +163 -0
- package/dist/src/cache/archive.js.map +1 -0
- package/dist/src/cache/commands.d.ts +15 -0
- package/dist/src/cache/commands.js +168 -0
- package/dist/src/cache/commands.js.map +1 -0
- package/dist/src/cache/quarantine.d.ts +18 -0
- package/dist/src/cache/quarantine.js +104 -0
- package/dist/src/cache/quarantine.js.map +1 -0
- package/dist/src/cache/store.d.ts +10 -0
- package/dist/src/cache/store.js +155 -0
- package/dist/src/cache/store.js.map +1 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +4 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/commands/diff.d.ts +34 -0
- package/dist/src/commands/diff.js +223 -0
- package/dist/src/commands/diff.js.map +1 -0
- package/dist/src/commands/doctor.d.ts +14 -0
- package/dist/src/commands/doctor.js +42 -0
- package/dist/src/commands/doctor.js.map +1 -0
- package/dist/src/commands/edit.d.ts +12 -0
- package/dist/src/commands/edit.js +100 -0
- package/dist/src/commands/edit.js.map +1 -0
- package/dist/src/commands/fund.d.ts +10 -0
- package/dist/src/commands/fund.js +32 -0
- package/dist/src/commands/fund.js.map +1 -0
- package/dist/src/commands/graph.d.ts +29 -0
- package/dist/src/commands/graph.js +90 -0
- package/dist/src/commands/graph.js.map +1 -0
- package/dist/src/commands/index.d.ts +20 -0
- package/dist/src/commands/index.js +1753 -0
- package/dist/src/commands/index.js.map +1 -0
- package/dist/src/commands/navigation.d.ts +2 -0
- package/dist/src/commands/navigation.js +47 -0
- package/dist/src/commands/navigation.js.map +1 -0
- package/dist/src/commands/outdated.d.ts +17 -0
- package/dist/src/commands/outdated.js +69 -0
- package/dist/src/commands/outdated.js.map +1 -0
- package/dist/src/commands/process.d.ts +11 -0
- package/dist/src/commands/process.js +189 -0
- package/dist/src/commands/process.js.map +1 -0
- package/dist/src/commands/prompts.d.ts +6 -0
- package/dist/src/commands/prompts.js +86 -0
- package/dist/src/commands/prompts.js.map +1 -0
- package/dist/src/commands/query.d.ts +48 -0
- package/dist/src/commands/query.js +639 -0
- package/dist/src/commands/query.js.map +1 -0
- package/dist/src/commands/rebuild.d.ts +16 -0
- package/dist/src/commands/rebuild.js +44 -0
- package/dist/src/commands/rebuild.js.map +1 -0
- package/dist/src/commands/sbom.d.ts +6 -0
- package/dist/src/commands/sbom.js +31 -0
- package/dist/src/commands/sbom.js.map +1 -0
- package/dist/src/commands/script-approvals.d.ts +22 -0
- package/dist/src/commands/script-approvals.js +128 -0
- package/dist/src/commands/script-approvals.js.map +1 -0
- package/dist/src/commands/shrinkwrap.d.ts +6 -0
- package/dist/src/commands/shrinkwrap.js +97 -0
- package/dist/src/commands/shrinkwrap.js.map +1 -0
- package/dist/src/commands/stage.d.ts +20 -0
- package/dist/src/commands/stage.js +40 -0
- package/dist/src/commands/stage.js.map +1 -0
- package/dist/src/commands/token.d.ts +2 -0
- package/dist/src/commands/token.js +47 -0
- package/dist/src/commands/token.js.map +1 -0
- package/dist/src/commands/trust.d.ts +5 -0
- package/dist/src/commands/trust.js +41 -0
- package/dist/src/commands/trust.js.map +1 -0
- package/dist/src/config/commands.d.ts +5 -0
- package/dist/src/config/commands.js +91 -0
- package/dist/src/config/commands.js.map +1 -0
- package/dist/src/config/configuration.d.ts +40 -0
- package/dist/src/config/configuration.js +157 -0
- package/dist/src/config/configuration.js.map +1 -0
- package/dist/src/config/interactive.d.ts +16 -0
- package/dist/src/config/interactive.js +19 -0
- package/dist/src/config/interactive.js.map +1 -0
- package/dist/src/config/paths.d.ts +22 -0
- package/dist/src/config/paths.js +46 -0
- package/dist/src/config/paths.js.map +1 -0
- package/dist/src/config/types.d.ts +15 -0
- package/dist/src/config/types.js +6 -0
- package/dist/src/config/types.js.map +1 -0
- package/dist/src/core/cli-parser.d.ts +102 -0
- package/dist/src/core/cli-parser.js +1148 -0
- package/dist/src/core/cli-parser.js.map +1 -0
- package/dist/src/core/cli-runner.d.ts +15 -0
- package/dist/src/core/cli-runner.js +261 -0
- package/dist/src/core/cli-runner.js.map +1 -0
- package/dist/src/core/exit-codes.d.ts +13 -0
- package/dist/src/core/exit-codes.js +13 -0
- package/dist/src/core/exit-codes.js.map +1 -0
- package/dist/src/core/output.d.ts +23 -0
- package/dist/src/core/output.js +123 -0
- package/dist/src/core/output.js.map +1 -0
- package/dist/src/installer/install.d.ts +73 -0
- package/dist/src/installer/install.js +596 -0
- package/dist/src/installer/install.js.map +1 -0
- package/dist/src/installer/mutations.d.ts +5 -0
- package/dist/src/installer/mutations.js +160 -0
- package/dist/src/installer/mutations.js.map +1 -0
- package/dist/src/linker/project-linker.d.ts +9 -0
- package/dist/src/linker/project-linker.js +223 -0
- package/dist/src/linker/project-linker.js.map +1 -0
- package/dist/src/lockfile/index.d.ts +27 -0
- package/dist/src/lockfile/index.js +221 -0
- package/dist/src/lockfile/index.js.map +1 -0
- package/dist/src/package/authoring.d.ts +31 -0
- package/dist/src/package/authoring.js +125 -0
- package/dist/src/package/authoring.js.map +1 -0
- package/dist/src/package/pack.d.ts +22 -0
- package/dist/src/package/pack.js +238 -0
- package/dist/src/package/pack.js.map +1 -0
- package/dist/src/package/provenance.d.ts +28 -0
- package/dist/src/package/provenance.js +162 -0
- package/dist/src/package/provenance.js.map +1 -0
- package/dist/src/package/publish.d.ts +28 -0
- package/dist/src/package/publish.js +189 -0
- package/dist/src/package/publish.js.map +1 -0
- package/dist/src/package/trusted-publishing.d.ts +7 -0
- package/dist/src/package/trusted-publishing.js +84 -0
- package/dist/src/package/trusted-publishing.js.map +1 -0
- package/dist/src/project/dependency-error.d.ts +3 -0
- package/dist/src/project/dependency-error.js +7 -0
- package/dist/src/project/dependency-error.js.map +1 -0
- package/dist/src/project/dev-engines.d.ts +10 -0
- package/dist/src/project/dev-engines.js +70 -0
- package/dist/src/project/dev-engines.js.map +1 -0
- package/dist/src/project/discovery.d.ts +6 -0
- package/dist/src/project/discovery.js +51 -0
- package/dist/src/project/discovery.js.map +1 -0
- package/dist/src/project/global.d.ts +3 -0
- package/dist/src/project/global.js +43 -0
- package/dist/src/project/global.js.map +1 -0
- package/dist/src/project/invalidation.d.ts +3 -0
- package/dist/src/project/invalidation.js +21 -0
- package/dist/src/project/invalidation.js.map +1 -0
- package/dist/src/project/link.d.ts +21 -0
- package/dist/src/project/link.js +152 -0
- package/dist/src/project/link.js.map +1 -0
- package/dist/src/project/manifest.d.ts +27 -0
- package/dist/src/project/manifest.js +378 -0
- package/dist/src/project/manifest.js.map +1 -0
- package/dist/src/project/pkg.d.ts +5 -0
- package/dist/src/project/pkg.js +94 -0
- package/dist/src/project/pkg.js.map +1 -0
- package/dist/src/project/recovery.d.ts +2 -0
- package/dist/src/project/recovery.js +82 -0
- package/dist/src/project/recovery.js.map +1 -0
- package/dist/src/project/workspaces.d.ts +4 -0
- package/dist/src/project/workspaces.js +59 -0
- package/dist/src/project/workspaces.js.map +1 -0
- package/dist/src/registry/account.d.ts +79 -0
- package/dist/src/registry/account.js +305 -0
- package/dist/src/registry/account.js.map +1 -0
- package/dist/src/registry/audit.d.ts +18 -0
- package/dist/src/registry/audit.js +74 -0
- package/dist/src/registry/audit.js.map +1 -0
- package/dist/src/registry/client.d.ts +19 -0
- package/dist/src/registry/client.js +102 -0
- package/dist/src/registry/client.js.map +1 -0
- package/dist/src/registry/configuration.d.ts +36 -0
- package/dist/src/registry/configuration.js +133 -0
- package/dist/src/registry/configuration.js.map +1 -0
- package/dist/src/registry/operations.d.ts +163 -0
- package/dist/src/registry/operations.js +502 -0
- package/dist/src/registry/operations.js.map +1 -0
- package/dist/src/registry/types.d.ts +30 -0
- package/dist/src/registry/types.js +2 -0
- package/dist/src/registry/types.js.map +1 -0
- package/dist/src/resolver/registry-resolver.d.ts +40 -0
- package/dist/src/resolver/registry-resolver.js +354 -0
- package/dist/src/resolver/registry-resolver.js.map +1 -0
- package/dist/src/resolver/source-provider.d.ts +17 -0
- package/dist/src/resolver/source-provider.js +336 -0
- package/dist/src/resolver/source-provider.js.map +1 -0
- package/dist/src/resolver/types.d.ts +28 -0
- package/dist/src/resolver/types.js +2 -0
- package/dist/src/resolver/types.js.map +1 -0
- package/dist/src/security/analyzer.d.ts +38 -0
- package/dist/src/security/analyzer.js +241 -0
- package/dist/src/security/analyzer.js.map +1 -0
- package/dist/src/security/audit.d.ts +19 -0
- package/dist/src/security/audit.js +61 -0
- package/dist/src/security/audit.js.map +1 -0
- package/dist/src/security/findings.d.ts +23 -0
- package/dist/src/security/findings.js +2 -0
- package/dist/src/security/findings.js.map +1 -0
- package/dist/src/security/integrity.d.ts +14 -0
- package/dist/src/security/integrity.js +40 -0
- package/dist/src/security/integrity.js.map +1 -0
- package/dist/src/security/policy.d.ts +16 -0
- package/dist/src/security/policy.js +24 -0
- package/dist/src/security/policy.js.map +1 -0
- package/dist/src/security/recent-release.d.ts +19 -0
- package/dist/src/security/recent-release.js +27 -0
- package/dist/src/security/recent-release.js.map +1 -0
- package/dist/src/security/script-runner.d.ts +13 -0
- package/dist/src/security/script-runner.js +73 -0
- package/dist/src/security/script-runner.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,502 @@
|
|
|
1
|
+
import npa from "npm-package-arg";
|
|
2
|
+
import semver from "semver";
|
|
3
|
+
import { downloadUnverifiedToQuarantine } from "../cache/quarantine.js";
|
|
4
|
+
import { RegistryError } from "./client.js";
|
|
5
|
+
import { loadRegistryConfiguration } from "./configuration.js";
|
|
6
|
+
const maxBytes = 32 * 1024 * 1024;
|
|
7
|
+
async function boundedJson(response, allowArray = false) {
|
|
8
|
+
if (!response.body)
|
|
9
|
+
throw new RegistryError("Registry returned an empty response", response.status);
|
|
10
|
+
const chunks = [];
|
|
11
|
+
let size = 0;
|
|
12
|
+
for await (const value of response.body) {
|
|
13
|
+
const chunk = Buffer.from(value);
|
|
14
|
+
size += chunk.length;
|
|
15
|
+
if (size > maxBytes)
|
|
16
|
+
throw new RegistryError("Registry response exceeded the size limit", response.status);
|
|
17
|
+
chunks.push(chunk);
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const value = JSON.parse(Buffer.concat(chunks).toString("utf8"));
|
|
21
|
+
if (typeof value !== "object" || value === null || (!allowArray && Array.isArray(value)))
|
|
22
|
+
throw new Error("not an object");
|
|
23
|
+
return value;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
throw new RegistryError("Registry returned invalid JSON", response.status);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
async function context(paths, name, override) {
|
|
30
|
+
const configuration = await loadRegistryConfiguration({ userNpmrc: paths.userNpmrc, projectNpmrc: paths.projectNpmrc, ...(override === undefined ? {} : { defaultRegistry: override }) });
|
|
31
|
+
return { configuration, registry: override ?? configuration.registryForPackage(name) };
|
|
32
|
+
}
|
|
33
|
+
async function requestJson(options) {
|
|
34
|
+
let url = new URL(options.path, options.registry);
|
|
35
|
+
const request = options.fetch ?? globalThis.fetch;
|
|
36
|
+
for (let redirects = 0; redirects <= 5; redirects += 1) {
|
|
37
|
+
const timeout = AbortSignal.timeout(30_000);
|
|
38
|
+
const signal = options.signal ? AbortSignal.any([options.signal, timeout]) : timeout;
|
|
39
|
+
const response = await request(url, {
|
|
40
|
+
method: options.method ?? "GET",
|
|
41
|
+
redirect: "manual",
|
|
42
|
+
signal,
|
|
43
|
+
headers: {
|
|
44
|
+
accept: "application/json",
|
|
45
|
+
...options.configuration.headersFor(url),
|
|
46
|
+
...(options.body === undefined ? {} : { "content-type": "application/json", "content-length": String(Buffer.byteLength(options.body)) }),
|
|
47
|
+
...(options.otp === undefined ? {} : { "npm-otp": options.otp }),
|
|
48
|
+
},
|
|
49
|
+
...(options.body === undefined ? {} : { body: options.body }),
|
|
50
|
+
});
|
|
51
|
+
if ([307, 308].includes(response.status) || ((options.method === undefined || options.method === "GET") && [301, 302, 303].includes(response.status))) {
|
|
52
|
+
if (redirects === 5)
|
|
53
|
+
throw new RegistryError("Registry request exceeded the redirect limit");
|
|
54
|
+
const location = response.headers.get("location");
|
|
55
|
+
if (!location)
|
|
56
|
+
throw new RegistryError("Registry redirect did not provide a location");
|
|
57
|
+
url = new URL(location, url);
|
|
58
|
+
if (url.protocol !== "https:" || url.origin !== options.registry.origin)
|
|
59
|
+
throw new RegistryError("Registry redirect must remain on the HTTPS registry origin");
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (!response.ok)
|
|
63
|
+
throw new RegistryError(`Registry request failed with ${response.status}`, response.status);
|
|
64
|
+
if (response.status === 204 || !response.body)
|
|
65
|
+
return {};
|
|
66
|
+
return boundedJson(response, options.allowArray === true);
|
|
67
|
+
}
|
|
68
|
+
throw new RegistryError("Registry request exceeded the redirect limit");
|
|
69
|
+
}
|
|
70
|
+
function packageSpec(value) {
|
|
71
|
+
let parsed;
|
|
72
|
+
try {
|
|
73
|
+
parsed = npa(value);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw new RegistryError(`Invalid package specification ${value}`);
|
|
77
|
+
}
|
|
78
|
+
if (!parsed.name || !["tag", "range", "version"].includes(parsed.type))
|
|
79
|
+
throw new RegistryError(`Package specification must use a registry name and version: ${value}`);
|
|
80
|
+
const escapedName = "escapedName" in parsed && typeof parsed.escapedName === "string" ? parsed.escapedName : encodeURIComponent(parsed.name);
|
|
81
|
+
return { name: parsed.name, escapedName, rawSpec: parsed.rawSpec || "latest" };
|
|
82
|
+
}
|
|
83
|
+
export async function viewPackage(options) {
|
|
84
|
+
const spec = packageSpec(options.spec);
|
|
85
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
86
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}`, fetch: options.fetch, signal: options.signal });
|
|
87
|
+
const versions = document.versions;
|
|
88
|
+
const tags = document["dist-tags"];
|
|
89
|
+
if (typeof versions !== "object" || versions === null || Array.isArray(versions) || typeof tags !== "object" || tags === null || Array.isArray(tags))
|
|
90
|
+
throw new RegistryError("Package metadata is missing versions or distribution tags");
|
|
91
|
+
const versionMap = versions;
|
|
92
|
+
const tagMap = tags;
|
|
93
|
+
const requested = typeof tagMap[spec.rawSpec] === "string" ? tagMap[spec.rawSpec] : semver.valid(spec.rawSpec) ? spec.rawSpec : semver.maxSatisfying(Object.keys(versionMap), spec.rawSpec);
|
|
94
|
+
if (!requested || typeof versionMap[requested] !== "object" || versionMap[requested] === null)
|
|
95
|
+
throw new RegistryError(`No version of ${spec.name} satisfies ${spec.rawSpec}`);
|
|
96
|
+
return { ...versionMap[requested], "dist-tags": tagMap };
|
|
97
|
+
}
|
|
98
|
+
export async function searchPackages(options) {
|
|
99
|
+
if (options.terms.length === 0)
|
|
100
|
+
throw new RegistryError("Search requires at least one term");
|
|
101
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
102
|
+
const url = new URL("/-/v1/search", registry);
|
|
103
|
+
url.searchParams.set("text", options.terms.join(" "));
|
|
104
|
+
url.searchParams.set("size", "20");
|
|
105
|
+
const result = await requestJson({ configuration, registry, path: url.href, fetch: options.fetch, signal: options.signal });
|
|
106
|
+
if (!Array.isArray(result.objects))
|
|
107
|
+
throw new RegistryError("Registry search response has no objects array");
|
|
108
|
+
return result.objects.flatMap((entry) => {
|
|
109
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry))
|
|
110
|
+
return [];
|
|
111
|
+
const pkg = entry.package;
|
|
112
|
+
return typeof pkg === "object" && pkg !== null && !Array.isArray(pkg) ? [pkg] : [];
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
export async function listDistTags(options) {
|
|
116
|
+
const spec = packageSpec(options.package);
|
|
117
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
118
|
+
const result = await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/dist-tags`, fetch: options.fetch, signal: options.signal });
|
|
119
|
+
const tags = {};
|
|
120
|
+
for (const [tag, version] of Object.entries(result))
|
|
121
|
+
if (tag !== "_etag" && typeof version === "string")
|
|
122
|
+
tags[tag] = version;
|
|
123
|
+
return tags;
|
|
124
|
+
}
|
|
125
|
+
export async function mutateDistTag(options) {
|
|
126
|
+
const spec = packageSpec(options.package);
|
|
127
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(options.tag) || semver.validRange(options.tag))
|
|
128
|
+
throw new RegistryError(`Invalid distribution tag ${options.tag}`);
|
|
129
|
+
if (options.action === "add" && !semver.valid(spec.rawSpec))
|
|
130
|
+
throw new RegistryError("dist-tag add requires an exact package version");
|
|
131
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
132
|
+
await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/dist-tags/${encodeURIComponent(options.tag)}`, method: options.action === "add" ? "PUT" : "DELETE", ...(options.action === "add" ? { body: JSON.stringify(spec.rawSpec) } : {}), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
133
|
+
}
|
|
134
|
+
export async function deprecatePackage(options) {
|
|
135
|
+
const spec = packageSpec(options.package);
|
|
136
|
+
if (!semver.validRange(spec.rawSpec, { loose: true }))
|
|
137
|
+
throw new RegistryError(`Invalid version range ${spec.rawSpec}`);
|
|
138
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
139
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
140
|
+
if (typeof document.versions !== "object" || document.versions === null || Array.isArray(document.versions))
|
|
141
|
+
throw new RegistryError("Package metadata has no versions");
|
|
142
|
+
const versions = document.versions;
|
|
143
|
+
const selected = Object.keys(versions).filter((version) => semver.satisfies(version, spec.rawSpec, { includePrerelease: true, loose: true })).sort(semver.compare);
|
|
144
|
+
for (const version of selected) {
|
|
145
|
+
const manifest = versions[version];
|
|
146
|
+
if (typeof manifest === "object" && manifest !== null && !Array.isArray(manifest))
|
|
147
|
+
manifest.deprecated = options.message;
|
|
148
|
+
}
|
|
149
|
+
if (!options.dryRun && selected.length > 0)
|
|
150
|
+
await requestJson({ configuration, registry, path: `/${spec.escapedName}`, method: "PUT", body: JSON.stringify(document), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
151
|
+
return selected;
|
|
152
|
+
}
|
|
153
|
+
export async function unpublishPackage(options) {
|
|
154
|
+
const spec = packageSpec(options.package);
|
|
155
|
+
if (spec.rawSpec !== "*" && !semver.valid(spec.rawSpec))
|
|
156
|
+
throw new RegistryError("Unpublish requires an exact version or name@*");
|
|
157
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
158
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
159
|
+
const revision = document._rev;
|
|
160
|
+
const versionsValue = document.versions;
|
|
161
|
+
const tagsValue = document["dist-tags"];
|
|
162
|
+
if (typeof revision !== "string" || typeof versionsValue !== "object" || versionsValue === null || Array.isArray(versionsValue) || typeof tagsValue !== "object" || tagsValue === null || Array.isArray(tagsValue))
|
|
163
|
+
throw new RegistryError("Package metadata is missing revision, versions, or distribution tags");
|
|
164
|
+
const versions = versionsValue;
|
|
165
|
+
const tags = tagsValue;
|
|
166
|
+
const selected = spec.rawSpec === "*" ? undefined : spec.rawSpec;
|
|
167
|
+
if (selected && versions[selected] === undefined)
|
|
168
|
+
return { name: spec.name, version: selected, entirePackage: false };
|
|
169
|
+
const entirePackage = selected === undefined || Object.keys(versions).length <= 1;
|
|
170
|
+
if (entirePackage && !options.force)
|
|
171
|
+
throw new RegistryError("Refusing to remove an entire package or its last version without --force");
|
|
172
|
+
if (options.dryRun)
|
|
173
|
+
return { name: spec.name, ...(selected === undefined ? {} : { version: selected }), entirePackage };
|
|
174
|
+
if (entirePackage) {
|
|
175
|
+
await requestJson({ configuration, registry, path: `/${spec.escapedName}/-rev/${encodeURIComponent(revision)}`, method: "DELETE", fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
176
|
+
return { name: spec.name, ...(selected === undefined ? {} : { version: selected }), entirePackage: true };
|
|
177
|
+
}
|
|
178
|
+
const manifest = versions[selected];
|
|
179
|
+
if (typeof manifest !== "object" || manifest === null || Array.isArray(manifest))
|
|
180
|
+
throw new RegistryError(`Package metadata for ${spec.name}@${selected} is invalid`);
|
|
181
|
+
const dist = manifest.dist;
|
|
182
|
+
if (typeof dist !== "object" || dist === null || Array.isArray(dist) || typeof dist.tarball !== "string")
|
|
183
|
+
throw new RegistryError(`Package metadata for ${spec.name}@${selected} has no tarball`);
|
|
184
|
+
const tarball = new URL(dist.tarball);
|
|
185
|
+
if (tarball.protocol !== "https:" || tarball.origin !== registry.origin || !tarball.pathname.startsWith(registry.pathname))
|
|
186
|
+
throw new RegistryError("Refusing to delete a tarball outside the selected HTTPS registry");
|
|
187
|
+
delete versions[selected];
|
|
188
|
+
for (const [tag, version] of Object.entries(tags))
|
|
189
|
+
if (version === selected)
|
|
190
|
+
delete tags[tag];
|
|
191
|
+
if (tags.latest === undefined)
|
|
192
|
+
tags.latest = Object.keys(versions).filter((version) => semver.valid(version)).sort(semver.compare).at(-1);
|
|
193
|
+
delete document._revisions;
|
|
194
|
+
delete document._attachments;
|
|
195
|
+
await requestJson({ configuration, registry, path: `/${spec.escapedName}/-rev/${encodeURIComponent(revision)}`, method: "PUT", body: JSON.stringify(document), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
196
|
+
const updated = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
197
|
+
if (typeof updated._rev !== "string")
|
|
198
|
+
throw new RegistryError("Updated package metadata has no revision");
|
|
199
|
+
await requestJson({ configuration, registry, path: `${tarball.pathname}/-rev/${encodeURIComponent(updated._rev)}`, method: "DELETE", fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
200
|
+
return { name: spec.name, version: selected, entirePackage: false };
|
|
201
|
+
}
|
|
202
|
+
export async function packageAccess(options) {
|
|
203
|
+
const spec = packageSpec(options.package);
|
|
204
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
205
|
+
const result = await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/${options.action === "status" ? "visibility" : "collaborators"}`, fetch: options.fetch, signal: options.signal });
|
|
206
|
+
if (options.action === "status") {
|
|
207
|
+
if (typeof result.public !== "boolean")
|
|
208
|
+
throw new RegistryError("Registry visibility response has no public status");
|
|
209
|
+
return { public: result.public };
|
|
210
|
+
}
|
|
211
|
+
const collaborators = {};
|
|
212
|
+
for (const [name, permission] of Object.entries(result))
|
|
213
|
+
if (typeof permission === "string")
|
|
214
|
+
collaborators[name] = permission === "read" ? "read-only" : permission === "write" ? "read-write" : permission;
|
|
215
|
+
return collaborators;
|
|
216
|
+
}
|
|
217
|
+
export async function accessiblePackages(options) {
|
|
218
|
+
const owner = options.owner.replace(/^@/, "");
|
|
219
|
+
const parts = owner.split(":");
|
|
220
|
+
if (parts.length > 2 || parts.some((part) => !/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(part)))
|
|
221
|
+
throw new RegistryError("Invalid access owner or team");
|
|
222
|
+
const { configuration, registry } = await context(options.paths, parts.length === 2 ? `@${parts[0]}/placeholder` : "", options.registry);
|
|
223
|
+
const primary = parts.length === 2 ? `/-/team/${encodeURIComponent(parts[0])}/${encodeURIComponent(parts[1])}/package` : `/-/org/${encodeURIComponent(parts[0])}/package`;
|
|
224
|
+
let result;
|
|
225
|
+
try {
|
|
226
|
+
result = await requestJson({ configuration, registry, path: primary, fetch: options.fetch, signal: options.signal });
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
if (!(error instanceof RegistryError) || error.status !== 404 || parts.length !== 1)
|
|
230
|
+
throw error;
|
|
231
|
+
result = await requestJson({ configuration, registry, path: `/-/user/${encodeURIComponent(parts[0])}/package`, fetch: options.fetch, signal: options.signal });
|
|
232
|
+
}
|
|
233
|
+
const packages = {};
|
|
234
|
+
for (const [name, permission] of Object.entries(result))
|
|
235
|
+
if (typeof permission === "string")
|
|
236
|
+
packages[name] = permission === "read" ? "read-only" : permission === "write" ? "read-write" : permission;
|
|
237
|
+
return packages;
|
|
238
|
+
}
|
|
239
|
+
export async function setPackageAccess(options) {
|
|
240
|
+
const spec = packageSpec(options.package);
|
|
241
|
+
if (options.mfa === undefined && options.access === undefined)
|
|
242
|
+
throw new RegistryError("Package access mutation requires access or mfa");
|
|
243
|
+
if (options.access === "private" && !spec.name.startsWith("@"))
|
|
244
|
+
throw new RegistryError("Private access is only available for scoped packages");
|
|
245
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
246
|
+
const body = options.mfa === undefined
|
|
247
|
+
? { access: options.access === "private" ? "restricted" : "public" }
|
|
248
|
+
: options.mfa === "none"
|
|
249
|
+
? { publish_requires_tfa: false }
|
|
250
|
+
: { publish_requires_tfa: true, automation_token_overrides_tfa: options.mfa === "automation" };
|
|
251
|
+
await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/access`, method: "POST", body: JSON.stringify(body), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
252
|
+
}
|
|
253
|
+
function team(value) {
|
|
254
|
+
const [scope, name, extra] = value.replace(/^@/, "").split(":");
|
|
255
|
+
if (!scope || !name || extra !== undefined || !/^[A-Za-z0-9._-]+$/.test(scope) || !/^[A-Za-z0-9._-]+$/.test(name))
|
|
256
|
+
throw new RegistryError("Team must use scope:team format");
|
|
257
|
+
return { scope, team: name };
|
|
258
|
+
}
|
|
259
|
+
export async function mutateTeamAccess(options) {
|
|
260
|
+
const spec = packageSpec(options.package);
|
|
261
|
+
const parsedTeam = team(options.team);
|
|
262
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
263
|
+
await requestJson({ configuration, registry, path: `/-/team/${encodeURIComponent(parsedTeam.scope)}/${encodeURIComponent(parsedTeam.team)}/package`, method: options.permission === undefined ? "DELETE" : "PUT", body: JSON.stringify({ package: spec.name, ...(options.permission === undefined ? {} : { permissions: options.permission }) }), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
264
|
+
}
|
|
265
|
+
export async function packageOwners(options) {
|
|
266
|
+
const spec = packageSpec(options.package);
|
|
267
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
268
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
269
|
+
if (document.maintainers === undefined)
|
|
270
|
+
return [];
|
|
271
|
+
if (!Array.isArray(document.maintainers))
|
|
272
|
+
throw new RegistryError("Package maintainers must be an array");
|
|
273
|
+
return document.maintainers.map((value) => {
|
|
274
|
+
if (typeof value !== "object" || value === null || Array.isArray(value) || typeof value.name !== "string" || typeof value.email !== "string")
|
|
275
|
+
throw new RegistryError("Package metadata contains an invalid maintainer");
|
|
276
|
+
return { name: value.name, email: value.email };
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
export async function mutatePackageOwner(options) {
|
|
280
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(options.user))
|
|
281
|
+
throw new RegistryError("Invalid registry username");
|
|
282
|
+
const spec = packageSpec(options.package);
|
|
283
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
284
|
+
const user = await requestJson({ configuration, registry, path: `/-/user/org.couchdb.user:${encodeURIComponent(options.user)}`, fetch: options.fetch, signal: options.signal });
|
|
285
|
+
if (typeof user.name !== "string" || typeof user.email !== "string")
|
|
286
|
+
throw new RegistryError("Registry user response has no name or email");
|
|
287
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
288
|
+
if (typeof document._id !== "string" || typeof document._rev !== "string" || (document.maintainers !== undefined && !Array.isArray(document.maintainers)))
|
|
289
|
+
throw new RegistryError("Package metadata is missing owner revision data");
|
|
290
|
+
const owners = (document.maintainers ?? []);
|
|
291
|
+
const normalized = owners.map((value) => {
|
|
292
|
+
if (typeof value !== "object" || value === null || Array.isArray(value) || typeof value.name !== "string" || typeof value.email !== "string")
|
|
293
|
+
throw new RegistryError("Package metadata contains an invalid maintainer");
|
|
294
|
+
return { name: value.name, email: value.email };
|
|
295
|
+
});
|
|
296
|
+
const next = options.action === "add" ? [...normalized.filter((owner) => owner.name !== user.name), { name: user.name, email: user.email }] : normalized.filter((owner) => owner.name !== user.name);
|
|
297
|
+
if (options.action === "remove" && next.length === 0)
|
|
298
|
+
throw new RegistryError("Cannot remove the last package owner");
|
|
299
|
+
await requestJson({ configuration, registry, path: `/${spec.escapedName}/-rev/${encodeURIComponent(document._rev)}`, method: "PUT", body: JSON.stringify({ _id: document._id, _rev: document._rev, maintainers: next }), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
300
|
+
return next;
|
|
301
|
+
}
|
|
302
|
+
export async function mutatePackageStar(options) {
|
|
303
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(options.user))
|
|
304
|
+
throw new RegistryError("Invalid registry username");
|
|
305
|
+
const spec = packageSpec(options.package);
|
|
306
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
307
|
+
const document = await requestJson({ configuration, registry, path: `/${spec.escapedName}?write=true`, fetch: options.fetch, signal: options.signal });
|
|
308
|
+
if (typeof document._id !== "string" || typeof document._rev !== "string" || (document.users !== undefined && (typeof document.users !== "object" || document.users === null || Array.isArray(document.users))))
|
|
309
|
+
throw new RegistryError("Package metadata is missing favorite revision data");
|
|
310
|
+
const users = { ...(document.users ?? {}) };
|
|
311
|
+
if (options.starred)
|
|
312
|
+
users[options.user] = true;
|
|
313
|
+
else
|
|
314
|
+
delete users[options.user];
|
|
315
|
+
await requestJson({ configuration, registry, path: `/${spec.escapedName}`, method: "PUT", body: JSON.stringify({ _id: document._id, _rev: document._rev, users }), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
316
|
+
}
|
|
317
|
+
export async function starredPackages(options) {
|
|
318
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(options.user))
|
|
319
|
+
throw new RegistryError("Invalid registry username");
|
|
320
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
321
|
+
const url = new URL("/-/_view/starredByUser", registry);
|
|
322
|
+
url.searchParams.set("key", JSON.stringify(options.user));
|
|
323
|
+
const result = await requestJson({ configuration, registry, path: url.href, fetch: options.fetch, signal: options.signal });
|
|
324
|
+
if (!Array.isArray(result.rows))
|
|
325
|
+
throw new RegistryError("Registry favorites response has no rows array");
|
|
326
|
+
return result.rows.map((row) => {
|
|
327
|
+
if (typeof row !== "object" || row === null || Array.isArray(row) || typeof row.value !== "string")
|
|
328
|
+
throw new RegistryError("Registry returned an invalid favorite package");
|
|
329
|
+
return row.value;
|
|
330
|
+
}).sort();
|
|
331
|
+
}
|
|
332
|
+
function simpleName(value, kind) {
|
|
333
|
+
const normalized = value.replace(/^@/, "");
|
|
334
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(normalized))
|
|
335
|
+
throw new RegistryError(`Invalid ${kind} name`);
|
|
336
|
+
return normalized;
|
|
337
|
+
}
|
|
338
|
+
export async function organizationMembers(options) {
|
|
339
|
+
const organization = simpleName(options.organization, "organization");
|
|
340
|
+
const { configuration, registry } = await context(options.paths, `@${organization}/placeholder`, options.registry);
|
|
341
|
+
const result = await requestJson({ configuration, registry, path: `/-/org/${encodeURIComponent(organization)}/user`, fetch: options.fetch, signal: options.signal });
|
|
342
|
+
const members = {};
|
|
343
|
+
for (const [user, role] of Object.entries(result))
|
|
344
|
+
if (typeof role === "string")
|
|
345
|
+
members[user] = role;
|
|
346
|
+
return members;
|
|
347
|
+
}
|
|
348
|
+
export async function mutateOrganizationMember(options) {
|
|
349
|
+
const organization = simpleName(options.organization, "organization");
|
|
350
|
+
const user = simpleName(options.user, "user");
|
|
351
|
+
const { configuration, registry } = await context(options.paths, `@${organization}/placeholder`, options.registry);
|
|
352
|
+
await requestJson({ configuration, registry, path: `/-/org/${encodeURIComponent(organization)}/user`, method: options.role === undefined ? "DELETE" : "PUT", body: JSON.stringify({ user, ...(options.role === undefined ? {} : { role: options.role }) }), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
353
|
+
}
|
|
354
|
+
function teamEntity(value) {
|
|
355
|
+
const [scope, name, extra] = value.replace(/^@/, "").split(":");
|
|
356
|
+
if (!scope || !name || extra !== undefined)
|
|
357
|
+
throw new RegistryError("Team must use scope:team format");
|
|
358
|
+
return { scope: simpleName(scope, "scope"), team: simpleName(name, "team") };
|
|
359
|
+
}
|
|
360
|
+
export async function mutateRegistryTeam(options) {
|
|
361
|
+
const entity = teamEntity(options.entity);
|
|
362
|
+
if ((options.action === "add" || options.action === "remove") && options.user === undefined)
|
|
363
|
+
throw new RegistryError("Team membership mutation requires a user");
|
|
364
|
+
const user = options.user === undefined ? undefined : simpleName(options.user, "user");
|
|
365
|
+
const { configuration, registry } = await context(options.paths, `@${entity.scope}/placeholder`, options.registry);
|
|
366
|
+
const path = options.action === "create" ? `/-/org/${encodeURIComponent(entity.scope)}/team` : `/-/team/${encodeURIComponent(entity.scope)}/${encodeURIComponent(entity.team)}${options.action === "add" || options.action === "remove" ? "/user" : ""}`;
|
|
367
|
+
const method = options.action === "create" || options.action === "add" ? "PUT" : "DELETE";
|
|
368
|
+
const body = options.action === "create" ? { name: entity.team } : user === undefined ? undefined : { user };
|
|
369
|
+
await requestJson({ configuration, registry, path, method, ...(body === undefined ? {} : { body: JSON.stringify(body) }), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
370
|
+
}
|
|
371
|
+
export async function registryTeamEntries(options) {
|
|
372
|
+
const raw = options.entity.replace(/^@/, "");
|
|
373
|
+
const parsed = raw.includes(":") ? teamEntity(raw) : { scope: simpleName(raw, "scope") };
|
|
374
|
+
const { configuration, registry } = await context(options.paths, `@${parsed.scope}/placeholder`, options.registry);
|
|
375
|
+
const path = "team" in parsed ? `/-/team/${encodeURIComponent(parsed.scope)}/${encodeURIComponent(parsed.team)}/user?format=cli` : `/-/org/${encodeURIComponent(parsed.scope)}/team?format=cli`;
|
|
376
|
+
const result = await requestJson({ configuration, registry, path, fetch: options.fetch, signal: options.signal });
|
|
377
|
+
const nested = result.users ?? result.teams;
|
|
378
|
+
if (Array.isArray(nested) && nested.every((value) => typeof value === "string"))
|
|
379
|
+
return [...nested].sort();
|
|
380
|
+
return Object.entries(result).flatMap(([key, value]) => typeof value === "string" ? [value] : value === true ? [key] : []).sort();
|
|
381
|
+
}
|
|
382
|
+
const writableProfileKeys = new Set(["email", "fullname", "homepage", "freenode", "twitter", "github"]);
|
|
383
|
+
export async function registryProfile(options) {
|
|
384
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
385
|
+
return requestJson({ configuration, registry, path: "/-/npm/v1/user", fetch: options.fetch, signal: options.signal });
|
|
386
|
+
}
|
|
387
|
+
export async function setRegistryProfile(options) {
|
|
388
|
+
const key = options.key.toLowerCase();
|
|
389
|
+
if (!writableProfileKeys.has(key))
|
|
390
|
+
throw new RegistryError(`Profile field ${options.key} cannot be set non-interactively`);
|
|
391
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
392
|
+
const current = await requestJson({ configuration, registry, path: "/-/npm/v1/user", fetch: options.fetch, signal: options.signal });
|
|
393
|
+
const body = {};
|
|
394
|
+
for (const field of writableProfileKeys)
|
|
395
|
+
if (current[field] === null || typeof current[field] === "string")
|
|
396
|
+
body[field] = current[field];
|
|
397
|
+
body[key] = options.value === "" ? null : options.value;
|
|
398
|
+
return requestJson({ configuration, registry, path: "/-/npm/v1/user", method: "POST", body: JSON.stringify(body), fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
399
|
+
}
|
|
400
|
+
export async function mutateRegistryProfile(options) {
|
|
401
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
402
|
+
const body = {};
|
|
403
|
+
if (options.preserveWritable) {
|
|
404
|
+
const current = await requestJson({ configuration, registry, path: "/-/npm/v1/user", fetch: options.fetch, signal: options.signal });
|
|
405
|
+
for (const field of writableProfileKeys)
|
|
406
|
+
if (current[field] === null || typeof current[field] === "string")
|
|
407
|
+
body[field] = current[field];
|
|
408
|
+
}
|
|
409
|
+
Object.assign(body, options.change);
|
|
410
|
+
const serialized = JSON.stringify(body);
|
|
411
|
+
if (Buffer.byteLength(serialized) > 64 * 1024)
|
|
412
|
+
throw new RegistryError("Profile mutation body exceeds the size limit");
|
|
413
|
+
return requestJson({ configuration, registry, path: "/-/npm/v1/user", method: "POST", body: serialized, fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
414
|
+
}
|
|
415
|
+
const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
416
|
+
export async function stagedPackages(options) {
|
|
417
|
+
const { configuration, registry } = await context(options.paths, options.package ?? "", options.registry);
|
|
418
|
+
const items = [];
|
|
419
|
+
for (let page = 0; page < 100; page += 1) {
|
|
420
|
+
const url = new URL("/-/stage", registry);
|
|
421
|
+
url.searchParams.set("page", String(page));
|
|
422
|
+
url.searchParams.set("perPage", "100");
|
|
423
|
+
if (options.package)
|
|
424
|
+
url.searchParams.set("package", packageSpec(options.package).name);
|
|
425
|
+
const result = await requestJson({ configuration, registry, path: url.href, fetch: options.fetch, signal: options.signal });
|
|
426
|
+
if (!Array.isArray(result.items) || typeof result.total !== "number")
|
|
427
|
+
throw new RegistryError("Registry staged package response is invalid");
|
|
428
|
+
for (const item of result.items) {
|
|
429
|
+
if (typeof item !== "object" || item === null || Array.isArray(item))
|
|
430
|
+
throw new RegistryError("Registry returned an invalid staged package");
|
|
431
|
+
items.push(item);
|
|
432
|
+
}
|
|
433
|
+
if (items.length >= result.total || result.items.length < 100)
|
|
434
|
+
return items;
|
|
435
|
+
}
|
|
436
|
+
throw new RegistryError("Registry staged package pagination exceeded 100 pages");
|
|
437
|
+
}
|
|
438
|
+
export async function stagedPackage(options) {
|
|
439
|
+
if (!uuid.test(options.id))
|
|
440
|
+
throw new RegistryError("Stage id must be a UUID");
|
|
441
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
442
|
+
return requestJson({ configuration, registry, path: `/-/stage/${options.id}`, fetch: options.fetch, signal: options.signal });
|
|
443
|
+
}
|
|
444
|
+
export async function downloadStagedPackageTarball(options) {
|
|
445
|
+
if (!/^[0-9a-f-]{36}$/i.test(options.id))
|
|
446
|
+
throw new RegistryError("Invalid staged package id");
|
|
447
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
448
|
+
return downloadUnverifiedToQuarantine(new URL(`/-/stage/${options.id}/tarball`, registry), {
|
|
449
|
+
root: options.paths.quarantine,
|
|
450
|
+
...(options.fetch === undefined ? {} : { fetch: options.fetch }),
|
|
451
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
452
|
+
maxRetries: 2,
|
|
453
|
+
headers: (url) => {
|
|
454
|
+
if (url.origin !== registry.origin)
|
|
455
|
+
throw new RegistryError("Staged package redirect must remain on the HTTPS registry origin");
|
|
456
|
+
return configuration.headersFor(url);
|
|
457
|
+
},
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
export async function mutateStagedPackage(options) {
|
|
461
|
+
if (!uuid.test(options.id))
|
|
462
|
+
throw new RegistryError("Stage id must be a UUID");
|
|
463
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
464
|
+
await requestJson({ configuration, registry, path: options.action === "approve" ? `/-/stage/${options.id}/approve` : `/-/stage/${options.id}`, method: options.action === "approve" ? "POST" : "DELETE", fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
465
|
+
}
|
|
466
|
+
export async function packageTrust(options) {
|
|
467
|
+
const spec = packageSpec(options.package);
|
|
468
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
469
|
+
const result = await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/trust`, allowArray: true, fetch: options.fetch, signal: options.signal });
|
|
470
|
+
const values = Array.isArray(result) ? result : [result];
|
|
471
|
+
return values.map((value) => {
|
|
472
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
473
|
+
throw new RegistryError("Registry returned an invalid trust configuration");
|
|
474
|
+
return value;
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
export async function revokePackageTrust(options) {
|
|
478
|
+
if (!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$/.test(options.id))
|
|
479
|
+
throw new RegistryError("Invalid trust configuration id");
|
|
480
|
+
if (options.dryRun)
|
|
481
|
+
return;
|
|
482
|
+
const spec = packageSpec(options.package);
|
|
483
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
484
|
+
await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/trust/${encodeURIComponent(options.id)}`, method: "DELETE", fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
485
|
+
}
|
|
486
|
+
export async function createPackageTrust(options) {
|
|
487
|
+
const spec = packageSpec(options.package);
|
|
488
|
+
const { configuration, registry } = await context(options.paths, spec.name, options.registry);
|
|
489
|
+
const result = await requestJson({ configuration, registry, path: `/-/package/${spec.escapedName}/trust`, method: "POST", body: JSON.stringify([options.configuration]), allowArray: true, fetch: options.fetch, signal: options.signal, otp: options.otp });
|
|
490
|
+
const values = Array.isArray(result) ? result : [result];
|
|
491
|
+
return values.map((value) => {
|
|
492
|
+
if (typeof value !== "object" || value === null || Array.isArray(value))
|
|
493
|
+
throw new RegistryError("Registry returned an invalid trust configuration");
|
|
494
|
+
return value;
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
export async function pingRegistry(options) {
|
|
498
|
+
const { configuration, registry } = await context(options.paths, "", options.registry);
|
|
499
|
+
const details = await requestJson({ configuration, registry, path: "/-/ping", fetch: options.fetch, signal: options.signal });
|
|
500
|
+
return { registry: registry.href, details };
|
|
501
|
+
}
|
|
502
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../src/registry/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface PackageDistribution {
|
|
2
|
+
integrity?: string;
|
|
3
|
+
shasum?: string;
|
|
4
|
+
tarball: string;
|
|
5
|
+
}
|
|
6
|
+
export interface PackageVersionManifest {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
dependencies?: Readonly<Record<string, string>>;
|
|
10
|
+
devDependencies?: Readonly<Record<string, string>>;
|
|
11
|
+
optionalDependencies?: Readonly<Record<string, string>>;
|
|
12
|
+
peerDependencies?: Readonly<Record<string, string>>;
|
|
13
|
+
peerDependenciesMeta?: Readonly<Record<string, {
|
|
14
|
+
readonly optional?: boolean;
|
|
15
|
+
}>>;
|
|
16
|
+
scripts?: Readonly<Record<string, string>>;
|
|
17
|
+
bin?: string | Readonly<Record<string, string>>;
|
|
18
|
+
engines?: Readonly<Record<string, string>>;
|
|
19
|
+
os?: readonly string[];
|
|
20
|
+
cpu?: readonly string[];
|
|
21
|
+
libc?: readonly string[];
|
|
22
|
+
funding?: unknown;
|
|
23
|
+
dist: PackageDistribution;
|
|
24
|
+
}
|
|
25
|
+
export interface PackageDocument {
|
|
26
|
+
name: string;
|
|
27
|
+
"dist-tags": Readonly<Record<string, string>>;
|
|
28
|
+
versions: Readonly<Record<string, PackageVersionManifest>>;
|
|
29
|
+
time?: Readonly<Record<string, string>>;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/registry/types.ts"],"names":[],"mappings":""}
|