@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.
Files changed (204) hide show
  1. package/README.md +83 -0
  2. package/dist/package.json +45 -0
  3. package/dist/src/cache/archive.d.ts +15 -0
  4. package/dist/src/cache/archive.js +163 -0
  5. package/dist/src/cache/archive.js.map +1 -0
  6. package/dist/src/cache/commands.d.ts +15 -0
  7. package/dist/src/cache/commands.js +168 -0
  8. package/dist/src/cache/commands.js.map +1 -0
  9. package/dist/src/cache/quarantine.d.ts +18 -0
  10. package/dist/src/cache/quarantine.js +104 -0
  11. package/dist/src/cache/quarantine.js.map +1 -0
  12. package/dist/src/cache/store.d.ts +10 -0
  13. package/dist/src/cache/store.js +155 -0
  14. package/dist/src/cache/store.js.map +1 -0
  15. package/dist/src/cli.d.ts +2 -0
  16. package/dist/src/cli.js +4 -0
  17. package/dist/src/cli.js.map +1 -0
  18. package/dist/src/commands/diff.d.ts +34 -0
  19. package/dist/src/commands/diff.js +223 -0
  20. package/dist/src/commands/diff.js.map +1 -0
  21. package/dist/src/commands/doctor.d.ts +14 -0
  22. package/dist/src/commands/doctor.js +42 -0
  23. package/dist/src/commands/doctor.js.map +1 -0
  24. package/dist/src/commands/edit.d.ts +12 -0
  25. package/dist/src/commands/edit.js +100 -0
  26. package/dist/src/commands/edit.js.map +1 -0
  27. package/dist/src/commands/fund.d.ts +10 -0
  28. package/dist/src/commands/fund.js +32 -0
  29. package/dist/src/commands/fund.js.map +1 -0
  30. package/dist/src/commands/graph.d.ts +29 -0
  31. package/dist/src/commands/graph.js +90 -0
  32. package/dist/src/commands/graph.js.map +1 -0
  33. package/dist/src/commands/index.d.ts +20 -0
  34. package/dist/src/commands/index.js +1753 -0
  35. package/dist/src/commands/index.js.map +1 -0
  36. package/dist/src/commands/navigation.d.ts +2 -0
  37. package/dist/src/commands/navigation.js +47 -0
  38. package/dist/src/commands/navigation.js.map +1 -0
  39. package/dist/src/commands/outdated.d.ts +17 -0
  40. package/dist/src/commands/outdated.js +69 -0
  41. package/dist/src/commands/outdated.js.map +1 -0
  42. package/dist/src/commands/process.d.ts +11 -0
  43. package/dist/src/commands/process.js +189 -0
  44. package/dist/src/commands/process.js.map +1 -0
  45. package/dist/src/commands/prompts.d.ts +6 -0
  46. package/dist/src/commands/prompts.js +86 -0
  47. package/dist/src/commands/prompts.js.map +1 -0
  48. package/dist/src/commands/query.d.ts +48 -0
  49. package/dist/src/commands/query.js +639 -0
  50. package/dist/src/commands/query.js.map +1 -0
  51. package/dist/src/commands/rebuild.d.ts +16 -0
  52. package/dist/src/commands/rebuild.js +44 -0
  53. package/dist/src/commands/rebuild.js.map +1 -0
  54. package/dist/src/commands/sbom.d.ts +6 -0
  55. package/dist/src/commands/sbom.js +31 -0
  56. package/dist/src/commands/sbom.js.map +1 -0
  57. package/dist/src/commands/script-approvals.d.ts +22 -0
  58. package/dist/src/commands/script-approvals.js +128 -0
  59. package/dist/src/commands/script-approvals.js.map +1 -0
  60. package/dist/src/commands/shrinkwrap.d.ts +6 -0
  61. package/dist/src/commands/shrinkwrap.js +97 -0
  62. package/dist/src/commands/shrinkwrap.js.map +1 -0
  63. package/dist/src/commands/stage.d.ts +20 -0
  64. package/dist/src/commands/stage.js +40 -0
  65. package/dist/src/commands/stage.js.map +1 -0
  66. package/dist/src/commands/token.d.ts +2 -0
  67. package/dist/src/commands/token.js +47 -0
  68. package/dist/src/commands/token.js.map +1 -0
  69. package/dist/src/commands/trust.d.ts +5 -0
  70. package/dist/src/commands/trust.js +41 -0
  71. package/dist/src/commands/trust.js.map +1 -0
  72. package/dist/src/config/commands.d.ts +5 -0
  73. package/dist/src/config/commands.js +91 -0
  74. package/dist/src/config/commands.js.map +1 -0
  75. package/dist/src/config/configuration.d.ts +40 -0
  76. package/dist/src/config/configuration.js +157 -0
  77. package/dist/src/config/configuration.js.map +1 -0
  78. package/dist/src/config/interactive.d.ts +16 -0
  79. package/dist/src/config/interactive.js +19 -0
  80. package/dist/src/config/interactive.js.map +1 -0
  81. package/dist/src/config/paths.d.ts +22 -0
  82. package/dist/src/config/paths.js +46 -0
  83. package/dist/src/config/paths.js.map +1 -0
  84. package/dist/src/config/types.d.ts +15 -0
  85. package/dist/src/config/types.js +6 -0
  86. package/dist/src/config/types.js.map +1 -0
  87. package/dist/src/core/cli-parser.d.ts +102 -0
  88. package/dist/src/core/cli-parser.js +1148 -0
  89. package/dist/src/core/cli-parser.js.map +1 -0
  90. package/dist/src/core/cli-runner.d.ts +15 -0
  91. package/dist/src/core/cli-runner.js +261 -0
  92. package/dist/src/core/cli-runner.js.map +1 -0
  93. package/dist/src/core/exit-codes.d.ts +13 -0
  94. package/dist/src/core/exit-codes.js +13 -0
  95. package/dist/src/core/exit-codes.js.map +1 -0
  96. package/dist/src/core/output.d.ts +23 -0
  97. package/dist/src/core/output.js +123 -0
  98. package/dist/src/core/output.js.map +1 -0
  99. package/dist/src/installer/install.d.ts +73 -0
  100. package/dist/src/installer/install.js +596 -0
  101. package/dist/src/installer/install.js.map +1 -0
  102. package/dist/src/installer/mutations.d.ts +5 -0
  103. package/dist/src/installer/mutations.js +160 -0
  104. package/dist/src/installer/mutations.js.map +1 -0
  105. package/dist/src/linker/project-linker.d.ts +9 -0
  106. package/dist/src/linker/project-linker.js +223 -0
  107. package/dist/src/linker/project-linker.js.map +1 -0
  108. package/dist/src/lockfile/index.d.ts +27 -0
  109. package/dist/src/lockfile/index.js +221 -0
  110. package/dist/src/lockfile/index.js.map +1 -0
  111. package/dist/src/package/authoring.d.ts +31 -0
  112. package/dist/src/package/authoring.js +125 -0
  113. package/dist/src/package/authoring.js.map +1 -0
  114. package/dist/src/package/pack.d.ts +22 -0
  115. package/dist/src/package/pack.js +238 -0
  116. package/dist/src/package/pack.js.map +1 -0
  117. package/dist/src/package/provenance.d.ts +28 -0
  118. package/dist/src/package/provenance.js +162 -0
  119. package/dist/src/package/provenance.js.map +1 -0
  120. package/dist/src/package/publish.d.ts +28 -0
  121. package/dist/src/package/publish.js +189 -0
  122. package/dist/src/package/publish.js.map +1 -0
  123. package/dist/src/package/trusted-publishing.d.ts +7 -0
  124. package/dist/src/package/trusted-publishing.js +84 -0
  125. package/dist/src/package/trusted-publishing.js.map +1 -0
  126. package/dist/src/project/dependency-error.d.ts +3 -0
  127. package/dist/src/project/dependency-error.js +7 -0
  128. package/dist/src/project/dependency-error.js.map +1 -0
  129. package/dist/src/project/dev-engines.d.ts +10 -0
  130. package/dist/src/project/dev-engines.js +70 -0
  131. package/dist/src/project/dev-engines.js.map +1 -0
  132. package/dist/src/project/discovery.d.ts +6 -0
  133. package/dist/src/project/discovery.js +51 -0
  134. package/dist/src/project/discovery.js.map +1 -0
  135. package/dist/src/project/global.d.ts +3 -0
  136. package/dist/src/project/global.js +43 -0
  137. package/dist/src/project/global.js.map +1 -0
  138. package/dist/src/project/invalidation.d.ts +3 -0
  139. package/dist/src/project/invalidation.js +21 -0
  140. package/dist/src/project/invalidation.js.map +1 -0
  141. package/dist/src/project/link.d.ts +21 -0
  142. package/dist/src/project/link.js +152 -0
  143. package/dist/src/project/link.js.map +1 -0
  144. package/dist/src/project/manifest.d.ts +27 -0
  145. package/dist/src/project/manifest.js +378 -0
  146. package/dist/src/project/manifest.js.map +1 -0
  147. package/dist/src/project/pkg.d.ts +5 -0
  148. package/dist/src/project/pkg.js +94 -0
  149. package/dist/src/project/pkg.js.map +1 -0
  150. package/dist/src/project/recovery.d.ts +2 -0
  151. package/dist/src/project/recovery.js +82 -0
  152. package/dist/src/project/recovery.js.map +1 -0
  153. package/dist/src/project/workspaces.d.ts +4 -0
  154. package/dist/src/project/workspaces.js +59 -0
  155. package/dist/src/project/workspaces.js.map +1 -0
  156. package/dist/src/registry/account.d.ts +79 -0
  157. package/dist/src/registry/account.js +305 -0
  158. package/dist/src/registry/account.js.map +1 -0
  159. package/dist/src/registry/audit.d.ts +18 -0
  160. package/dist/src/registry/audit.js +74 -0
  161. package/dist/src/registry/audit.js.map +1 -0
  162. package/dist/src/registry/client.d.ts +19 -0
  163. package/dist/src/registry/client.js +102 -0
  164. package/dist/src/registry/client.js.map +1 -0
  165. package/dist/src/registry/configuration.d.ts +36 -0
  166. package/dist/src/registry/configuration.js +133 -0
  167. package/dist/src/registry/configuration.js.map +1 -0
  168. package/dist/src/registry/operations.d.ts +163 -0
  169. package/dist/src/registry/operations.js +502 -0
  170. package/dist/src/registry/operations.js.map +1 -0
  171. package/dist/src/registry/types.d.ts +30 -0
  172. package/dist/src/registry/types.js +2 -0
  173. package/dist/src/registry/types.js.map +1 -0
  174. package/dist/src/resolver/registry-resolver.d.ts +40 -0
  175. package/dist/src/resolver/registry-resolver.js +354 -0
  176. package/dist/src/resolver/registry-resolver.js.map +1 -0
  177. package/dist/src/resolver/source-provider.d.ts +17 -0
  178. package/dist/src/resolver/source-provider.js +336 -0
  179. package/dist/src/resolver/source-provider.js.map +1 -0
  180. package/dist/src/resolver/types.d.ts +28 -0
  181. package/dist/src/resolver/types.js +2 -0
  182. package/dist/src/resolver/types.js.map +1 -0
  183. package/dist/src/security/analyzer.d.ts +38 -0
  184. package/dist/src/security/analyzer.js +241 -0
  185. package/dist/src/security/analyzer.js.map +1 -0
  186. package/dist/src/security/audit.d.ts +19 -0
  187. package/dist/src/security/audit.js +61 -0
  188. package/dist/src/security/audit.js.map +1 -0
  189. package/dist/src/security/findings.d.ts +23 -0
  190. package/dist/src/security/findings.js +2 -0
  191. package/dist/src/security/findings.js.map +1 -0
  192. package/dist/src/security/integrity.d.ts +14 -0
  193. package/dist/src/security/integrity.js +40 -0
  194. package/dist/src/security/integrity.js.map +1 -0
  195. package/dist/src/security/policy.d.ts +16 -0
  196. package/dist/src/security/policy.js +24 -0
  197. package/dist/src/security/policy.js.map +1 -0
  198. package/dist/src/security/recent-release.d.ts +19 -0
  199. package/dist/src/security/recent-release.js +27 -0
  200. package/dist/src/security/recent-release.js.map +1 -0
  201. package/dist/src/security/script-runner.d.ts +13 -0
  202. package/dist/src/security/script-runner.js +73 -0
  203. package/dist/src/security/script-runner.js.map +1 -0
  204. package/package.json +45 -0
@@ -0,0 +1,221 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
3
+ import { dirname, join } from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+ import YAML from "yaml";
6
+ import { storePath } from "../cache/store.js";
7
+ export class LockfileError extends Error {
8
+ constructor(message) {
9
+ super(`Lockfile error: ${message}`);
10
+ this.name = "LockfileError";
11
+ }
12
+ }
13
+ function objectFromMap(map, convert) {
14
+ return Object.fromEntries([...map].sort(([left], [right]) => left.localeCompare(right)).map(([key, value]) => [key, convert(value, key)]));
15
+ }
16
+ export function createLockfile(graph, requirements, options, security) {
17
+ const requirementByName = new Map(requirements.map((requirement) => [requirement.name, requirement]));
18
+ const requirementByImporter = new Map();
19
+ for (const requirement of requirements) {
20
+ const importer = requirement.importer ?? ".";
21
+ let values = requirementByImporter.get(importer);
22
+ if (!values) {
23
+ values = new Map();
24
+ requirementByImporter.set(importer, values);
25
+ }
26
+ values.set(requirement.name, requirement);
27
+ }
28
+ const importerRoots = graph.importers ?? new Map([[".", graph.roots]]);
29
+ const decisions = new Map((security?.decisions ?? []).map((decision) => [decision.packageId, decision]));
30
+ const document = {
31
+ lockfileVersion: 1,
32
+ settings: { registry: options.registry, recentReleaseHours: options.recentReleaseHours },
33
+ importers: objectFromMap(importerRoots, (roots, importer) => ({
34
+ dependencies: objectFromMap(roots, (version, name) => ({
35
+ specifier: requirementByImporter.get(importer)?.get(name)?.specifier ?? requirementByName.get(name)?.specifier ?? version,
36
+ version,
37
+ type: requirementByImporter.get(importer)?.get(name)?.kind ?? requirementByName.get(name)?.kind ?? "dependency",
38
+ })),
39
+ })),
40
+ packages: objectFromMap(graph.packages, (pkg, id) => ({
41
+ resolution: pkg.localPath === undefined
42
+ ? { integrity: pkg.integrity, tarball: pkg.tarball.href, ...(pkg.source === undefined || pkg.source === "registry" ? {} : { source: pkg.source }) }
43
+ : { integrity: pkg.integrity, directory: pkg.localPath, source: "directory" },
44
+ ...(pkg.publishedAt === undefined ? {} : { publishedAt: pkg.publishedAt.toISOString() }),
45
+ ...(pkg.dependencies.size === 0 ? {} : { dependencies: Object.fromEntries(pkg.dependencies) }),
46
+ ...(security?.analyses.get(id)?.lifecycles.length ? {
47
+ scripts: Object.fromEntries(security.analyses.get(id)?.lifecycles.map((fact) => [fact.stage, { command: fact.command, commandHash: fact.commandHash, contentHash: fact.contentHash }]) ?? []),
48
+ } : {}),
49
+ ...(security?.analyses.get(id)?.analysis.findings.length ? {
50
+ security: { ruleSetVersion: security.analyses.get(id)?.analysis.ruleSetVersion, findings: security.analyses.get(id)?.analysis.findings },
51
+ } : {}),
52
+ })),
53
+ ...(security && [...decisions.values()].some((decision) => decision.approvedLifecycles.length > 0) ? {
54
+ approvals: Object.fromEntries([...decisions].filter(([, decision]) => decision.approvedLifecycles.length > 0).map(([id, decision]) => {
55
+ const pkg = graph.packages.get(id);
56
+ return [id, {
57
+ integrity: pkg?.integrity,
58
+ scripts: Object.fromEntries(decision.approvedLifecycles.map((fact) => [fact.stage, { commandHash: fact.commandHash, contentHash: fact.contentHash, approved: true }])),
59
+ }];
60
+ })),
61
+ } : {}),
62
+ };
63
+ return YAML.stringify(document, { lineWidth: 0, sortMapEntries: true });
64
+ }
65
+ export async function writeLockfileAtomic(path, bytes) {
66
+ await mkdir(dirname(path), { recursive: true });
67
+ const temporary = join(dirname(path), `.${randomUUID()}.tmp`);
68
+ try {
69
+ await writeFile(temporary, bytes, { encoding: "utf8", flag: "wx", mode: 0o600 });
70
+ await rename(temporary, path);
71
+ }
72
+ finally {
73
+ await rm(temporary, { force: true });
74
+ }
75
+ }
76
+ function mapping(value, field) {
77
+ if (value === null || typeof value !== "object" || Array.isArray(value))
78
+ throw new LockfileError(`${field} must be a mapping`);
79
+ return value;
80
+ }
81
+ function identity(id) {
82
+ const context = id.indexOf("(");
83
+ const base = context < 0 ? id : id.slice(0, context);
84
+ const separator = base.lastIndexOf("@");
85
+ if (separator <= 0 || separator === base.length - 1)
86
+ throw new LockfileError(`invalid package identity ${id}`);
87
+ return { name: base.slice(0, separator), version: base.slice(separator + 1) };
88
+ }
89
+ export async function readLockfileGraph(path, storeRoot) {
90
+ let value;
91
+ try {
92
+ const document = YAML.parseDocument(await readFile(path, "utf8"), { uniqueKeys: true, strict: true });
93
+ if (document.errors.length > 0)
94
+ throw new LockfileError(document.errors[0]?.message ?? "invalid YAML");
95
+ value = document.toJS();
96
+ }
97
+ catch (error) {
98
+ if (error.code === "ENOENT")
99
+ throw new LockfileError("offline or frozen install requires bnpm-lock.yaml");
100
+ throw error;
101
+ }
102
+ const root = mapping(value, "root");
103
+ if (root.lockfileVersion !== 1)
104
+ throw new LockfileError("unsupported lockfileVersion");
105
+ const settings = mapping(root.settings, "settings");
106
+ if (![1, 6, 24].includes(settings.recentReleaseHours))
107
+ throw new LockfileError("invalid recentReleaseHours");
108
+ const importerMappings = mapping(root.importers, "importers");
109
+ const importers = new Map();
110
+ const requirements = [];
111
+ for (const [importerName, rawImporter] of Object.entries(importerMappings).sort(([left], [right]) => left.localeCompare(right))) {
112
+ const importer = mapping(rawImporter, `importer ${importerName}`);
113
+ const roots = new Map();
114
+ for (const [name, raw] of Object.entries(mapping(importer.dependencies ?? {}, `importer ${importerName} dependencies`)).sort(([left], [right]) => left.localeCompare(right))) {
115
+ const entry = mapping(raw, `importer dependency ${importerName}:${name}`);
116
+ if (typeof entry.specifier !== "string" || typeof entry.version !== "string")
117
+ throw new LockfileError(`invalid importer dependency ${importerName}:${name}`);
118
+ const kind = entry.type ?? "dependency";
119
+ if (!["dependency", "dev", "optional", "peer", "workspace"].includes(kind))
120
+ throw new LockfileError(`invalid importer dependency type ${importerName}:${name}`);
121
+ roots.set(name, entry.version);
122
+ requirements.push({ name, specifier: entry.specifier, kind: kind, ...(importerName === "." ? {} : { importer: importerName }) });
123
+ }
124
+ importers.set(importerName, roots);
125
+ }
126
+ const roots = new Map(importers.get(".") ?? []);
127
+ const packages = new Map();
128
+ const lockedScripts = new Map();
129
+ const dangerousPackageIds = new Set();
130
+ for (const [id, raw] of Object.entries(mapping(root.packages, "packages")).sort(([left], [right]) => left.localeCompare(right))) {
131
+ const entry = mapping(raw, `package ${id}`);
132
+ const resolution = mapping(entry.resolution, `package ${id} resolution`);
133
+ if (typeof resolution.integrity !== "string" || (typeof resolution.tarball !== "string" && typeof resolution.directory !== "string"))
134
+ throw new LockfileError(`invalid resolution for ${id}`);
135
+ if (resolution.source !== undefined && !["registry", "directory", "tarball", "git"].includes(resolution.source))
136
+ throw new LockfileError(`invalid package source for ${id}`);
137
+ const parsedIdentity = identity(id);
138
+ const packageRoot = storePath(storeRoot, resolution.integrity);
139
+ let manifest;
140
+ try {
141
+ manifest = JSON.parse(await readFile(join(packageRoot, "package.json"), "utf8"));
142
+ }
143
+ catch (error) {
144
+ if (error.code === "ENOENT")
145
+ throw new LockfileError(`store entry is missing for ${id}`);
146
+ throw error;
147
+ }
148
+ if (manifest.name !== parsedIdentity.name || manifest.version !== parsedIdentity.version)
149
+ throw new LockfileError(`store identity mismatch for ${id}`);
150
+ const dependencyValues = mapping(entry.dependencies ?? {}, `package ${id} dependencies`);
151
+ const dependencies = new Map();
152
+ for (const [name, dependencyId] of Object.entries(dependencyValues)) {
153
+ if (typeof dependencyId !== "string")
154
+ throw new LockfileError(`invalid dependency ${id} -> ${name}`);
155
+ dependencies.set(name, dependencyId);
156
+ }
157
+ const publishedAt = typeof entry.publishedAt === "string" ? new Date(entry.publishedAt) : undefined;
158
+ if (publishedAt && Number.isNaN(publishedAt.getTime()))
159
+ throw new LockfileError(`invalid publication time for ${id}`);
160
+ packages.set(id, {
161
+ id,
162
+ name: parsedIdentity.name,
163
+ version: parsedIdentity.version,
164
+ integrity: resolution.integrity,
165
+ tarball: typeof resolution.tarball === "string" ? new URL(resolution.tarball) : pathToFileURL(resolution.directory),
166
+ ...(typeof resolution.directory === "string" ? { localPath: resolution.directory } : {}),
167
+ ...(typeof resolution.source === "string" ? { source: resolution.source } : {}),
168
+ ...(publishedAt === undefined ? {} : { publishedAt }),
169
+ manifest,
170
+ dependencies,
171
+ });
172
+ const scriptFacts = {};
173
+ for (const [stage, rawScript] of Object.entries(mapping(entry.scripts ?? {}, `package ${id} scripts`))) {
174
+ const script = mapping(rawScript, `package ${id} script ${stage}`);
175
+ if (typeof script.commandHash !== "string" || typeof script.contentHash !== "string")
176
+ throw new LockfileError(`invalid script facts for ${id} ${stage}`);
177
+ scriptFacts[stage] = { commandHash: script.commandHash, contentHash: script.contentHash };
178
+ }
179
+ lockedScripts.set(id, scriptFacts);
180
+ if (entry.security !== undefined) {
181
+ const security = mapping(entry.security, `package ${id} security`);
182
+ if (!Array.isArray(security.findings))
183
+ throw new LockfileError(`invalid security findings for ${id}`);
184
+ for (const rawFinding of security.findings) {
185
+ const finding = mapping(rawFinding, `package ${id} finding`);
186
+ if (finding.severity === "dangerous")
187
+ dangerousPackageIds.add(id);
188
+ }
189
+ }
190
+ }
191
+ for (const importerRoots of importers.values())
192
+ for (const id of importerRoots.values())
193
+ if (!packages.has(id))
194
+ throw new LockfileError(`importer points to missing package ${id}`);
195
+ for (const pkg of packages.values())
196
+ for (const id of pkg.dependencies.values())
197
+ if (!packages.has(id))
198
+ throw new LockfileError(`${pkg.id} points to missing package ${id}`);
199
+ const approvals = {};
200
+ for (const [id, raw] of Object.entries(mapping(root.approvals ?? {}, "approvals"))) {
201
+ const pkg = packages.get(id);
202
+ if (!pkg)
203
+ throw new LockfileError(`approval points to missing package ${id}`);
204
+ const entry = mapping(raw, `approval ${id}`);
205
+ if (entry.integrity !== pkg.integrity)
206
+ throw new LockfileError(`approval integrity mismatch for ${id}`);
207
+ const scripts = {};
208
+ for (const [stage, rawScript] of Object.entries(mapping(entry.scripts, `approval ${id} scripts`))) {
209
+ const script = mapping(rawScript, `approval ${id} ${stage}`);
210
+ if (script.approved !== true || typeof script.commandHash !== "string" || typeof script.contentHash !== "string")
211
+ throw new LockfileError(`invalid script approval for ${id} ${stage}`);
212
+ const fact = lockedScripts.get(id)?.[stage];
213
+ if (!fact || fact.commandHash !== script.commandHash || fact.contentHash !== script.contentHash)
214
+ throw new LockfileError(`script approval no longer matches facts for ${id} ${stage}`);
215
+ scripts[stage] = { commandHash: script.commandHash, contentHash: script.contentHash };
216
+ }
217
+ approvals[pkg.name] = { version: pkg.version, integrity: pkg.integrity, scripts };
218
+ }
219
+ return { graph: { roots, packages, importers }, requirements, recentReleaseHours: settings.recentReleaseHours, approvals, dangerousPackageIds, lifecycleScripts: lockedScripts };
220
+ }
221
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lockfile/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export declare function initializePackage(options: {
2
+ readonly directory: string;
3
+ readonly values?: Readonly<Partial<Record<"name" | "version" | "description" | "entry" | "license", string>>>;
4
+ }): Promise<Readonly<Record<string, unknown>>>;
5
+ export declare function initializeWorkspace(options: {
6
+ readonly root: string;
7
+ readonly workspace: string;
8
+ readonly createManifest: boolean;
9
+ }): Promise<{
10
+ readonly root: string;
11
+ readonly directory: string;
12
+ readonly workspace: string;
13
+ readonly manifest?: Readonly<Record<string, unknown>>;
14
+ }>;
15
+ export declare function readPackageVersion(directory: string): Promise<{
16
+ readonly name: string;
17
+ readonly version: string;
18
+ readonly manifest: Record<string, unknown>;
19
+ }>;
20
+ export declare function nextPackageVersion(current: string, requested: string, options?: {
21
+ readonly preid?: string;
22
+ readonly allowSame?: boolean;
23
+ }): string;
24
+ export declare function changePackageVersion(directory: string, requested: string, options?: {
25
+ readonly preid?: string;
26
+ readonly allowSame?: boolean;
27
+ }): Promise<{
28
+ readonly name: string;
29
+ readonly previous: string;
30
+ readonly version: string;
31
+ }>;
@@ -0,0 +1,125 @@
1
+ import { randomBytes } from "node:crypto";
2
+ import { mkdir, readFile, realpath, rename, rm, writeFile } from "node:fs/promises";
3
+ import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
4
+ import semver from "semver";
5
+ import { PackError } from "./pack.js";
6
+ async function atomicJson(path, value) {
7
+ await mkdir(dirname(path), { recursive: true });
8
+ const temporary = `${path}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
9
+ try {
10
+ await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`, { flag: "wx", mode: 0o644 });
11
+ await rename(temporary, path);
12
+ }
13
+ catch (error) {
14
+ await rm(temporary, { force: true });
15
+ throw error;
16
+ }
17
+ }
18
+ function defaultName(directory) {
19
+ const normalized = basename(directory).toLowerCase().replace(/[^a-z0-9._-]+/g, "-").replace(/^[._-]+|[._-]+$/g, "");
20
+ if (!normalized)
21
+ throw new PackError("cannot infer a valid package name from the directory");
22
+ return normalized;
23
+ }
24
+ export async function initializePackage(options) {
25
+ const path = join(options.directory, "package.json");
26
+ try {
27
+ await readFile(path);
28
+ throw new PackError("package.json already exists");
29
+ }
30
+ catch (error) {
31
+ if (error.code !== "ENOENT")
32
+ throw error;
33
+ }
34
+ const name = options.values?.name || defaultName(options.directory);
35
+ if (!/^(?:@[^/@\s]+\/)?[A-Za-z0-9][A-Za-z0-9._-]*$/.test(name))
36
+ throw new PackError("package name is invalid");
37
+ const version = options.values?.version || "1.0.0";
38
+ if (!semver.valid(version))
39
+ throw new PackError("package version must be exact semantic version");
40
+ const manifest = {
41
+ name,
42
+ version,
43
+ description: options.values?.description ?? "",
44
+ main: options.values?.entry || "index.js",
45
+ scripts: { test: "echo \"Error: no test specified\" && exit 1" },
46
+ keywords: [],
47
+ author: "",
48
+ license: options.values?.license || "ISC",
49
+ };
50
+ await atomicJson(path, manifest);
51
+ return manifest;
52
+ }
53
+ export async function initializeWorkspace(options) {
54
+ if (!options.workspace || options.workspace.includes("\0") || isAbsolute(options.workspace) || options.workspace.split(/[\\/]/).includes(".."))
55
+ throw new PackError("workspace init path must be a safe relative directory");
56
+ const root = await realpath(options.root);
57
+ const directory = resolve(root, options.workspace);
58
+ if (!directory.startsWith(`${root}${sep}`))
59
+ throw new PackError("workspace init path escapes the project root");
60
+ const rootPath = join(root, "package.json");
61
+ let document;
62
+ try {
63
+ const parsed = JSON.parse(await readFile(rootPath, "utf8"));
64
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
65
+ throw new Error("not an object");
66
+ document = parsed;
67
+ }
68
+ catch (error) {
69
+ throw new PackError(`cannot read workspace root package.json: ${error instanceof Error ? error.message : String(error)}`);
70
+ }
71
+ const workspace = relative(root, directory).split(sep).join("/");
72
+ const current = document.workspaces;
73
+ if (current === undefined)
74
+ document.workspaces = [workspace];
75
+ else if (Array.isArray(current) && current.every((value) => typeof value === "string"))
76
+ document.workspaces = [...new Set([...current, workspace])];
77
+ else if (typeof current === "object" && current !== null && !Array.isArray(current) && Array.isArray(current.packages) && current.packages.every((value) => typeof value === "string"))
78
+ document.workspaces = { ...current, packages: [...new Set([...current.packages, workspace])] };
79
+ else
80
+ throw new PackError("workspace root has an invalid workspaces field");
81
+ await mkdir(directory, { recursive: true });
82
+ const manifest = options.createManifest ? await initializePackage({ directory }) : undefined;
83
+ try {
84
+ await atomicJson(rootPath, document);
85
+ }
86
+ catch (error) {
87
+ if (options.createManifest)
88
+ await rm(join(directory, "package.json"), { force: true });
89
+ throw error;
90
+ }
91
+ return { root, directory, workspace, ...(manifest === undefined ? {} : { manifest }) };
92
+ }
93
+ export async function readPackageVersion(directory) {
94
+ const path = join(directory, "package.json");
95
+ let manifest;
96
+ try {
97
+ const parsed = JSON.parse(await readFile(path, "utf8"));
98
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
99
+ throw new Error("not an object");
100
+ manifest = parsed;
101
+ }
102
+ catch (error) {
103
+ throw new PackError(`cannot read package.json: ${error instanceof Error ? error.message : String(error)}`);
104
+ }
105
+ if (typeof manifest.name !== "string" || typeof manifest.version !== "string" || !semver.valid(manifest.version))
106
+ throw new PackError("package.json requires a name and exact semantic version");
107
+ return { name: manifest.name, version: manifest.version, manifest };
108
+ }
109
+ export function nextPackageVersion(current, requested, options = {}) {
110
+ const release = ["major", "minor", "patch", "premajor", "preminor", "prepatch", "prerelease"].includes(requested)
111
+ ? options.preid === undefined ? semver.inc(current, requested) : semver.inc(current, requested, options.preid)
112
+ : semver.valid(requested);
113
+ if (!release)
114
+ throw new PackError(`invalid version or release type ${requested}`);
115
+ if (release === current && !options.allowSame)
116
+ throw new PackError(`version is already ${release}`);
117
+ return release;
118
+ }
119
+ export async function changePackageVersion(directory, requested, options = {}) {
120
+ const current = await readPackageVersion(directory);
121
+ const release = nextPackageVersion(current.version, requested, options);
122
+ await atomicJson(join(directory, "package.json"), { ...current.manifest, version: release });
123
+ return { name: current.name, previous: current.version, version: release };
124
+ }
125
+ //# sourceMappingURL=authoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring.js","sourceRoot":"","sources":["../../../src/package/authoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export declare class PackError extends Error {
2
+ constructor(message: string);
3
+ }
4
+ export interface PackedFile {
5
+ readonly path: string;
6
+ readonly size: number;
7
+ readonly mode: number;
8
+ }
9
+ export interface PackedPackage {
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly version: string;
13
+ readonly filename: string;
14
+ readonly size: number;
15
+ readonly unpackedSize: number;
16
+ readonly shasum: string;
17
+ readonly integrity: string;
18
+ readonly files: readonly PackedFile[];
19
+ readonly manifest: Readonly<Record<string, unknown>>;
20
+ readonly tarball: Buffer;
21
+ }
22
+ export declare function packPackage(directory: string): Promise<PackedPackage>;