paperkite 0.1.3 → 0.2.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.
@@ -1,24 +1,25 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { spawnSync } from "node:child_process";
3
3
  import { join, resolve } from "node:path";
4
- import { PROFILE_WORKSPACE, defaultProfileManifest, profileDirectory } from "./profile.js";
4
+ import { PROFILE_WORKSPACE, bundleRanges, defaultProfileManifest, ensureProfile, profileDirectory, readProfile, userPlugins, writeProfile } from "./profile.js";
5
+ import { acquireProcessLock } from "../control/process-lock.js";
6
+ import { inspectPlugins } from "./loader.js";
7
+ import { filterScopes, readBundleManifest, readPackument, readReleasePolicy, selectPluginVersion } from "./manifest.js";
8
+ import { DEFAULT_PLUGIN_SETTINGS } from "../config/settings.js";
9
+ import { parseRange, parseVersion, satisfiesRange } from "./semver.js";
5
10
  export function managePlugins(profile, args) {
6
11
  const directory = profileDirectory(profile);
7
12
  initProfileSync(directory, profile);
8
13
  const before = readProfileSync(directory);
9
- const anchored = args.map((value) => anchorPath(value, process.cwd()));
14
+ const anchored = installArgs(args).map((value) => anchorPath(value, process.cwd()));
10
15
  const result = spawnSync("pnpm", anchored, {
11
16
  cwd: directory,
12
17
  stdio: "inherit",
13
18
  shell: process.platform === "win32"
14
19
  });
15
20
  if (result.error) {
16
- if (result.error.code === "ENOENT") {
17
- process.stderr.write("paperkite: pnpm is required for plugin management\n");
18
- return 127;
19
- }
20
- process.stderr.write("paperkite: " + formatError(result.error) + "\n");
21
- return 1;
21
+ process.stderr.write(pnpmError(result.error));
22
+ return result.error.code === "ENOENT" ? 127 : 1;
22
23
  }
23
24
  const exitCode = result.status ?? 1;
24
25
  if (exitCode !== 0) {
@@ -28,6 +29,307 @@ export function managePlugins(profile, args) {
28
29
  reconcileProfileSync(directory, before);
29
30
  return 0;
30
31
  }
32
+ /** 按清单安装缺失的内置插件;已固定的版本与用户插件都不改动。 */
33
+ export async function syncBundles(profile = "default", options = {}) {
34
+ const settings = options.settings ?? DEFAULT_PLUGIN_SETTINGS;
35
+ const directory = await ensureProfile(profile);
36
+ const release = await readReleasePolicy(directory);
37
+ const lock = await acquireProcessLock(join(directory, ".paperkite-bundles.lock"));
38
+ try {
39
+ const manifest = await readBundleManifest({
40
+ settings,
41
+ offline: options.offline,
42
+ refresh: options.refresh,
43
+ fetch: options.fetch,
44
+ now: options.now,
45
+ cacheDir: options.cacheDir
46
+ });
47
+ const context = {
48
+ settings,
49
+ release,
50
+ offline: options.offline ?? false,
51
+ refresh: options.refresh ?? false,
52
+ fetch: options.fetch,
53
+ now: options.now ?? Date.now,
54
+ cacheDir: options.cacheDir,
55
+ warnings: [...manifest.warnings],
56
+ problems: []
57
+ };
58
+ const { accepted, skipped } = filterScopes(manifest.dependencies, settings.scopes);
59
+ for (const name of skipped) {
60
+ context.warnings.push(name + " is outside the configured bundle scopes; skipped");
61
+ }
62
+ const current = await readProfile(directory);
63
+ const dependencies = { ...(current.dependencies ?? {}) };
64
+ const managed = bundleRanges(current);
65
+ const additions = [];
66
+ const kept = [];
67
+ for (const [name, range] of Object.entries(accepted)) {
68
+ const spec = dependencies[name];
69
+ const installed = installedVersion(directory, name);
70
+ if (spec && installed && specSatisfied(spec, installed)) {
71
+ kept.push(name);
72
+ continue;
73
+ }
74
+ const pinned = spec && parseVersion(spec) ? spec : undefined;
75
+ if (pinned && !satisfiesRange(pinned, range)) {
76
+ context.warnings.push(name + " is pinned to " + pinned + ", outside " + range + "; run paperkite plugin update " + name);
77
+ }
78
+ const version = pinned ?? (await resolveVersion(context, name, range));
79
+ if (!version)
80
+ continue;
81
+ additions.push({ name, version, range });
82
+ }
83
+ const removed = Object.keys(managed).filter((name) => !(name in accepted));
84
+ const plugins = [...userPlugins(current)];
85
+ for (const name of removed) {
86
+ context.warnings.push(name + " is no longer managed by the bundle manifest; it stays installed");
87
+ if (dependencies[name] && !plugins.includes(name))
88
+ plugins.push(name);
89
+ }
90
+ const bundles = Object.fromEntries(Object.entries(accepted).map(([name, range]) => [name, range]));
91
+ const nextManifest = {
92
+ ...current,
93
+ dependencies: { ...dependencies, ...Object.fromEntries(additions.map((item) => [item.name, item.version])) },
94
+ paperkite: {
95
+ ...(current.paperkite ?? {}),
96
+ profile: { ...(current.paperkite?.profile ?? {}), plugins: unique(plugins), bundles }
97
+ }
98
+ };
99
+ const changed = JSON.stringify(nextManifest) !== JSON.stringify(current);
100
+ if (options.check) {
101
+ return {
102
+ origin: manifest.origin,
103
+ manifestVersion: manifest.version,
104
+ added: additions,
105
+ kept,
106
+ removed,
107
+ warnings: context.warnings,
108
+ problems: context.problems,
109
+ applied: false
110
+ };
111
+ }
112
+ if (changed)
113
+ await writeProfile(directory, nextManifest);
114
+ if (additions.length) {
115
+ const code = await (options.runner ?? runPnpm)(["install", "--ignore-scripts"], directory);
116
+ if (code !== 0)
117
+ context.problems.push("pnpm install failed in " + directory + " (exit " + code + ")");
118
+ }
119
+ const applied = changed || additions.length > 0;
120
+ return {
121
+ origin: manifest.origin,
122
+ manifestVersion: manifest.version,
123
+ added: additions,
124
+ kept,
125
+ removed,
126
+ warnings: context.warnings,
127
+ problems: context.problems,
128
+ applied
129
+ };
130
+ }
131
+ finally {
132
+ await lock.release();
133
+ }
134
+ }
135
+ /** 重算清单管理插件的版本并前进;已是最新时不执行安装。 */
136
+ export async function updatePlugins(profile, names, options = {}) {
137
+ const settings = options.settings ?? DEFAULT_PLUGIN_SETTINGS;
138
+ const directory = await ensureProfile(profile);
139
+ const release = await readReleasePolicy(directory);
140
+ const lock = await acquireProcessLock(join(directory, ".paperkite-bundles.lock"));
141
+ try {
142
+ const manifest = await readBundleManifest({
143
+ settings,
144
+ offline: options.offline,
145
+ refresh: options.refresh,
146
+ fetch: options.fetch,
147
+ now: options.now,
148
+ cacheDir: options.cacheDir
149
+ });
150
+ const context = {
151
+ settings,
152
+ release,
153
+ offline: options.offline ?? false,
154
+ refresh: options.refresh ?? false,
155
+ fetch: options.fetch,
156
+ now: options.now ?? Date.now,
157
+ cacheDir: options.cacheDir,
158
+ warnings: [...manifest.warnings],
159
+ problems: []
160
+ };
161
+ const accepted = filterScopes(manifest.dependencies, settings.scopes).accepted;
162
+ const current = await readProfile(directory);
163
+ const dependencies = { ...(current.dependencies ?? {}) };
164
+ const managed = bundleRanges(current);
165
+ const additions = [];
166
+ const kept = [];
167
+ for (const name of unique(names)) {
168
+ const spec = dependencies[name];
169
+ const range = managed[name] ?? accepted[name] ?? specRange(spec);
170
+ if (!range) {
171
+ context.problems.push(name + " has no upgradable range declared; nothing to update");
172
+ continue;
173
+ }
174
+ const version = await resolveVersion(context, name, range);
175
+ if (!version)
176
+ continue;
177
+ if (installedVersion(directory, name) === version && specSatisfied(spec, version)) {
178
+ kept.push(name);
179
+ continue;
180
+ }
181
+ additions.push({ name, version, range });
182
+ }
183
+ const nextManifest = {
184
+ ...current,
185
+ dependencies: { ...dependencies, ...Object.fromEntries(additions.map((item) => [item.name, item.version])) },
186
+ paperkite: {
187
+ ...(current.paperkite ?? {}),
188
+ profile: {
189
+ ...(current.paperkite?.profile ?? {}),
190
+ plugins: [...userPlugins(current)],
191
+ bundles: { ...managed, ...Object.fromEntries(additions.map((item) => [item.name, item.range])) }
192
+ }
193
+ }
194
+ };
195
+ const changed = JSON.stringify(nextManifest) !== JSON.stringify(current);
196
+ const installs = additions.length > 0;
197
+ if (!options.check) {
198
+ if (changed)
199
+ await writeProfile(directory, nextManifest);
200
+ if (installs) {
201
+ const code = await (options.runner ?? runPnpm)(["install", "--ignore-scripts"], directory);
202
+ if (code !== 0)
203
+ context.problems.push("pnpm install failed in " + directory + " (exit " + code + ")");
204
+ }
205
+ }
206
+ return {
207
+ origin: manifest.origin,
208
+ manifestVersion: manifest.version,
209
+ added: additions,
210
+ kept,
211
+ removed: [],
212
+ warnings: context.warnings,
213
+ problems: context.problems,
214
+ applied: !options.check && (changed || installs)
215
+ };
216
+ }
217
+ finally {
218
+ await lock.release();
219
+ }
220
+ }
221
+ /** profile 视图 + 清单可用版本,供 `plugin list` 输出。 */
222
+ export async function listPlugins(profile = "default", options = {}) {
223
+ const settings = options.settings ?? DEFAULT_PLUGIN_SETTINGS;
224
+ const directory = profileDirectory(profile);
225
+ const views = await inspectPlugins(profile);
226
+ const current = await readProfile(directory);
227
+ const dependencies = current.dependencies ?? {};
228
+ const manifest = await readBundleManifest({
229
+ settings,
230
+ offline: options.offline,
231
+ refresh: options.refresh,
232
+ fetch: options.fetch,
233
+ now: options.now,
234
+ cacheDir: options.cacheDir
235
+ });
236
+ const accepted = filterScopes(manifest.dependencies, settings.scopes).accepted;
237
+ const warnings = [];
238
+ const context = {
239
+ settings,
240
+ release: await readReleasePolicy(directory),
241
+ offline: options.offline ?? false,
242
+ refresh: options.refresh ?? false,
243
+ fetch: options.fetch,
244
+ now: options.now ?? Date.now,
245
+ cacheDir: options.cacheDir,
246
+ warnings,
247
+ problems: []
248
+ };
249
+ const entries = [];
250
+ for (const view of views) {
251
+ const range = view.range ?? accepted[view.name] ?? specRange(dependencies[view.name]);
252
+ const available = range ? await resolveVersion(context, view.name, range) : undefined;
253
+ entries.push({
254
+ name: view.name,
255
+ source: view.source,
256
+ root: view.root,
257
+ version: view.version,
258
+ range,
259
+ available,
260
+ compatibility: view.compatibility,
261
+ capabilities: view.capabilities.map((capability) => capability.name),
262
+ note: view.warning
263
+ });
264
+ }
265
+ return entries.sort((left, right) => left.name.localeCompare(right.name));
266
+ }
267
+ async function resolveVersion(context, name, range) {
268
+ try {
269
+ const packument = await readPackument(name, {
270
+ settings: context.settings,
271
+ offline: context.offline,
272
+ refresh: context.refresh,
273
+ fetch: context.fetch,
274
+ now: context.now,
275
+ cacheDir: context.cacheDir,
276
+ release: context.release
277
+ });
278
+ const choice = selectPluginVersion(packument, range, {
279
+ name,
280
+ release: context.release,
281
+ now: context.now
282
+ });
283
+ if (!choice) {
284
+ context.problems.push("no release of " + name + " satisfies " + range + " under this core");
285
+ return undefined;
286
+ }
287
+ if (choice.verdict.verdict === "warn")
288
+ context.warnings.push(choice.verdict.detail);
289
+ return choice.version;
290
+ }
291
+ catch (error) {
292
+ context.problems.push("cannot read releases of " + name + ": " + formatError(error));
293
+ return undefined;
294
+ }
295
+ }
296
+ function installedVersion(directory, name) {
297
+ try {
298
+ const manifest = JSON.parse(readFileSync(join(directory, "node_modules", name, "package.json"), "utf8"));
299
+ return typeof manifest.version === "string" ? manifest.version : undefined;
300
+ }
301
+ catch {
302
+ return undefined;
303
+ }
304
+ }
305
+ function specSatisfied(spec, version) {
306
+ if (!spec || !version)
307
+ return false;
308
+ return satisfiesRange(version, spec) || spec === version;
309
+ }
310
+ function specRange(spec) {
311
+ if (!spec || parseVersion(spec))
312
+ return undefined;
313
+ return parseRange(spec) ? spec : undefined;
314
+ }
315
+ function runPnpm(args, cwd) {
316
+ const result = spawnSync("pnpm", [...args], {
317
+ cwd,
318
+ stdio: "inherit",
319
+ shell: process.platform === "win32"
320
+ });
321
+ if (result.error) {
322
+ process.stderr.write(pnpmError(result.error));
323
+ return result.error.code === "ENOENT" ? 127 : 1;
324
+ }
325
+ return result.status ?? 1;
326
+ }
327
+ function pnpmError(error) {
328
+ if (error.code === "ENOENT") {
329
+ return "paperkite: pnpm is required for plugin management\n";
330
+ }
331
+ return "paperkite: " + formatError(error) + "\n";
332
+ }
31
333
  function initProfileSync(directory, profile) {
32
334
  mkdirSync(directory, { recursive: true });
33
335
  const current = readProfileSync(directory);
@@ -38,13 +340,17 @@ function initProfileSync(directory, profile) {
38
340
  writeFileSync(workspacePath, PROFILE_WORKSPACE, "utf8");
39
341
  }
40
342
  }
343
+ /** 清单接管的依赖不属于用户插件清单,回填时跳过。 */
41
344
  function reconcileProfileSync(directory, before) {
42
345
  const after = readProfileSync(directory);
43
346
  const dependencies = Object.keys(after.dependencies ?? {});
44
347
  const previous = new Set(Object.keys(before.dependencies ?? {}));
45
- const configured = [...(after.paperkite?.profile?.plugins ?? [])];
348
+ const managed = bundleRanges(after);
349
+ const configured = [...userPlugins(after)];
46
350
  let changed = false;
47
351
  for (const dependency of dependencies) {
352
+ if (dependency in managed)
353
+ continue;
48
354
  const plugin = readPluginMeta(dependency, directory);
49
355
  if (plugin && !configured.includes(dependency)) {
50
356
  configured.push(dependency);
@@ -90,6 +396,15 @@ function resolvePackageJson(name, directory) {
90
396
  ];
91
397
  return candidates.find((candidate) => existsSync(candidate));
92
398
  }
399
+ /** 安装类透传统一补 `--ignore-scripts`,用户显式传入的选项优先。 */
400
+ function installArgs(args) {
401
+ const verb = args[0];
402
+ if (verb !== "add" && verb !== "install" && verb !== "i")
403
+ return args;
404
+ if (args.some((value) => value === "--ignore-scripts" || value === "--no-ignore-scripts"))
405
+ return args;
406
+ return [...args, "--ignore-scripts"];
407
+ }
93
408
  function anchorPath(value, cwd) {
94
409
  const match = /^(?:(file|link):)?(\.\.?[\\/].*)$/.exec(value);
95
410
  if (!match?.[2])
@@ -107,6 +422,9 @@ function readProfileSync(directory) {
107
422
  function writeProfileSync(directory, value) {
108
423
  writeFileSync(join(directory, "package.json"), JSON.stringify(value, null, 2) + "\n", "utf8");
109
424
  }
425
+ function unique(values) {
426
+ return [...new Set(values)];
427
+ }
110
428
  function formatError(error) {
111
429
  return error instanceof Error ? error.message : String(error);
112
430
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/extensions/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/extensions/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { type CompatibilityVerdict, type CoreAbiPolicy } from "./abi.js";
2
+ import type { PluginSettings } from "../config/settings.js";
3
+ export interface HttpResponseLike {
4
+ readonly ok: boolean;
5
+ readonly status: number;
6
+ readonly headers: {
7
+ get(name: string): string | null;
8
+ };
9
+ json(): Promise<unknown>;
10
+ }
11
+ export type HttpFetch = (url: string, init?: {
12
+ headers?: Record<string, string>;
13
+ }) => Promise<HttpResponseLike>;
14
+ export declare const defaultFetch: HttpFetch;
15
+ export type ManifestOrigin = "online" | "cache" | "snapshot";
16
+ export interface BundleManifest {
17
+ readonly name: string;
18
+ readonly version?: string;
19
+ readonly origin: ManifestOrigin;
20
+ readonly dependencies: Readonly<Record<string, string>>;
21
+ readonly warnings: readonly string[];
22
+ }
23
+ export interface PackumentVersion {
24
+ readonly version?: string;
25
+ readonly dependencies?: Record<string, unknown>;
26
+ readonly devDependencies?: Record<string, unknown>;
27
+ readonly peerDependencies?: Record<string, unknown>;
28
+ }
29
+ export interface Packument {
30
+ readonly name?: string;
31
+ readonly distTags: Readonly<Record<string, string>>;
32
+ readonly versions: Readonly<Record<string, PackumentVersion>>;
33
+ readonly time: Readonly<Record<string, string>>;
34
+ }
35
+ export interface ReleasePolicy {
36
+ readonly minimumReleaseAgeMinutes: number;
37
+ readonly exclude: readonly string[];
38
+ }
39
+ export interface VersionChoice {
40
+ readonly version: string;
41
+ readonly verdict: CompatibilityVerdict;
42
+ }
43
+ export interface ManifestOptions {
44
+ readonly settings: PluginSettings;
45
+ readonly offline?: boolean;
46
+ readonly refresh?: boolean;
47
+ readonly fetch?: HttpFetch;
48
+ readonly now?: () => number;
49
+ readonly cacheDir?: string;
50
+ }
51
+ /** core 随包携带的离线快照;读取失败按空清单处理。 */
52
+ export declare function readSnapshot(file?: string): Promise<BundleManifest>;
53
+ export declare function parseManifestDocument(document: unknown): {
54
+ name: string;
55
+ version?: string;
56
+ dependencies: Record<string, string>;
57
+ };
58
+ export declare function readBundleManifest(options: ManifestOptions): Promise<BundleManifest>;
59
+ /** 插件版本的 packument;离线时只读缓存。 */
60
+ export declare function readPackument(name: string, options: ManifestOptions & {
61
+ release?: ReleasePolicy;
62
+ }): Promise<Packument>;
63
+ /** 范围内满足 ABI 的最高稳定版;被 core 拒绝的版本排除。 */
64
+ export declare function selectPluginVersion(packument: Packument, range: string, options?: {
65
+ readonly name?: string;
66
+ readonly policy?: CoreAbiPolicy;
67
+ readonly release?: ReleasePolicy;
68
+ readonly now?: () => number;
69
+ }): VersionChoice | undefined;
70
+ /** 清单 scope 之外的名字跳过;默认只接受 `@paperkite/`。 */
71
+ export declare function filterScopes(dependencies: Readonly<Record<string, string>>, scopes: readonly string[]): {
72
+ readonly accepted: Record<string, string>;
73
+ readonly skipped: readonly string[];
74
+ };
75
+ /** 与 pnpm 对齐的供应链延迟设置,取自 profile 的 pnpm-workspace.yaml。 */
76
+ export declare function readReleasePolicy(directory: string): Promise<ReleasePolicy>;
77
+ export declare function cacheDirectory(options?: {
78
+ readonly cacheDir?: string;
79
+ }): string;