@bonvoy/plugin-npm 0.4.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -2,7 +2,7 @@ import { BonvoyPlugin } from "@bonvoy/core";
2
2
 
3
3
  //#region src/operations.d.ts
4
4
  interface NpmOperations {
5
- publish(args: string[], cwd: string): Promise<void>;
5
+ publish(args: string[], cwd: string): Promise<string>;
6
6
  view(pkg: string, version: string): Promise<string | null>;
7
7
  packageExists(pkg: string): Promise<boolean>;
8
8
  hasToken(): Promise<boolean>;
package/dist/index.mjs CHANGED
@@ -3,10 +3,11 @@ import { execa } from "execa";
3
3
  //#region src/operations.ts
4
4
  const defaultNpmOperations = {
5
5
  async publish(args, cwd) {
6
- await execa("npm", ["publish", ...args], {
6
+ const result = await execa("npm", ["publish", ...args], {
7
7
  cwd,
8
- stdio: "inherit"
8
+ stdio: "pipe"
9
9
  });
10
+ return result.stdout + (result.stderr ? `\n${result.stderr}` : "");
10
11
  },
11
12
  async view(pkg, version) {
12
13
  try {
@@ -97,7 +98,15 @@ var NpmPlugin = class {
97
98
  if (preid) args.push("--tag", preid);
98
99
  else if (pkg.version.includes("-")) args.push("--tag", "next");
99
100
  logger.info(`Publishing ${pkg.name}@${pkg.version}...`);
100
- await this.ops.publish(args, pkg.path);
101
+ try {
102
+ const output = await this.ops.publish(args, pkg.path);
103
+ if (output) logger.debug(output);
104
+ } catch (error) {
105
+ const stderr = error.stderr ?? "";
106
+ const output = [error.stdout ?? "", stderr].filter(Boolean).join("\n");
107
+ if (output) logger.error(output);
108
+ throw error;
109
+ }
101
110
  }
102
111
  async isAlreadyPublished(pkg) {
103
112
  return await this.ops.view(pkg.name, pkg.version) === pkg.version;
@@ -140,7 +149,7 @@ var NpmPlugin = class {
140
149
  }
141
150
  if (needsToken.length > 0) {
142
151
  logger.error(`❌ First publish requires NPM_TOKEN: ${needsToken.join(", ")}`);
143
- throw new Error(`Cannot release with OIDC: packages don't exist on npm yet (${needsToken.join(", ")}). First publish requires NPM_TOKEN. Run: node scripts/publish-dummy-packages.mjs`);
152
+ throw new Error(`Cannot release with OIDC: packages don't exist on npm yet (${needsToken.join(", ")}). First publish requires NPM_TOKEN environment variable.`);
144
153
  }
145
154
  }
146
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/operations.ts","../src/npm.ts"],"sourcesContent":["import { execa } from 'execa';\n\nexport interface NpmOperations {\n publish(args: string[], cwd: string): Promise<void>;\n view(pkg: string, version: string): Promise<string | null>;\n packageExists(pkg: string): Promise<boolean>;\n hasToken(): Promise<boolean>;\n unpublish(pkg: string, version: string): Promise<void>;\n}\n\nexport const defaultNpmOperations: NpmOperations = {\n async publish(args, cwd) {\n await execa('npm', ['publish', ...args], { cwd, stdio: 'inherit' });\n },\n\n async view(pkg, version) {\n try {\n const result = await execa('npm', ['view', `${pkg}@${version}`, 'version'], {\n stdio: 'pipe',\n });\n return result.stdout.trim() || null;\n } catch {\n return null;\n }\n },\n\n /* c8 ignore start - real npm operations */\n async packageExists(pkg) {\n try {\n await execa('npm', ['view', pkg, 'name'], { stdio: 'pipe' });\n return true;\n } catch {\n return false;\n }\n },\n\n async hasToken() {\n return !!process.env.NPM_TOKEN || !!process.env.NODE_AUTH_TOKEN;\n },\n\n async unpublish(pkg, version) {\n await execa('npm', ['unpublish', `${pkg}@${version}`], { stdio: 'pipe' });\n },\n /* c8 ignore stop */\n};\n","import type { BonvoyPlugin, Context, PublishContext, RollbackContext } from '@bonvoy/core';\n\nimport { defaultNpmOperations, type NpmOperations } from './operations.js';\n\nexport interface NpmPluginConfig {\n registry?: string;\n access?: 'public' | 'restricted';\n dryRun?: boolean;\n skipExisting?: boolean;\n provenance?: boolean;\n}\n\nexport default class NpmPlugin implements BonvoyPlugin {\n name = 'npm';\n\n private config: Required<NpmPluginConfig>;\n private ops: NpmOperations;\n\n constructor(config: NpmPluginConfig = {}, ops?: NpmOperations) {\n this.config = {\n registry: config.registry ?? 'https://registry.npmjs.org',\n access: config.access ?? 'public',\n dryRun: config.dryRun ?? false,\n skipExisting: config.skipExisting ?? true,\n provenance: config.provenance ?? true,\n };\n this.ops = ops ?? defaultNpmOperations;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: Hook types are complex and vary by implementation\n apply(bonvoy: { hooks: { validateRepo: any; publish: any; rollback: any } }): void {\n bonvoy.hooks.validateRepo.tapPromise(this.name, async (context: Context) => {\n await this.validatePackages(context);\n });\n\n bonvoy.hooks.publish.tapPromise(this.name, async (context: PublishContext) => {\n if (context.isDryRun) {\n context.logger.info('🔍 [dry-run] Would publish packages to npm');\n return;\n }\n await this.publishPackages(context);\n });\n\n bonvoy.hooks.rollback.tapPromise(this.name, async (context: RollbackContext) => {\n await this.rollback(context);\n });\n }\n\n private async publishPackages(context: PublishContext): Promise<void> {\n const { packages, logger, preid, actionLog } = context;\n\n for (const pkg of packages) {\n if (this.config.skipExisting && (await this.isAlreadyPublished(pkg))) {\n logger.info(`Skipping ${pkg.name}@${pkg.version} - already published`);\n continue;\n }\n\n await this.publishPackage(pkg, logger, preid);\n actionLog.record({\n plugin: 'npm',\n action: 'publish',\n data: { name: pkg.name, version: pkg.version },\n });\n }\n }\n\n private async publishPackage(\n pkg: { name: string; version: string; path: string },\n logger: PublishContext['logger'],\n preid?: string,\n ): Promise<void> {\n const args: string[] = [];\n\n if (this.config.dryRun) {\n args.push('--dry-run');\n }\n\n args.push('--access', this.config.access);\n\n if (this.config.provenance) {\n args.push('--provenance');\n }\n\n if (this.config.registry !== 'https://registry.npmjs.org') {\n args.push('--registry', this.config.registry);\n }\n\n // Use preid as npm tag for prereleases, fallback to 'next' if version contains '-'\n if (preid) {\n args.push('--tag', preid);\n } else if (pkg.version.includes('-')) {\n args.push('--tag', 'next');\n }\n\n logger.info(`Publishing ${pkg.name}@${pkg.version}...`);\n\n await this.ops.publish(args, pkg.path);\n }\n\n private async isAlreadyPublished(pkg: { name: string; version: string }): Promise<boolean> {\n const version = await this.ops.view(pkg.name, pkg.version);\n return version === pkg.version;\n }\n\n private async rollback(context: RollbackContext): Promise<void> {\n const { logger } = context;\n const actions = context.actions.filter((a) => a.plugin === 'npm').reverse();\n\n for (const action of actions) {\n if (action.action !== 'publish') continue;\n const { name, version } = action.data as { name: string; version: string };\n try {\n logger.info(` â†Šī¸ Unpublishing ${name}@${version} (best-effort)`);\n await this.ops.unpublish(name, version);\n } catch (error: unknown) {\n const msg = error instanceof Error ? error.message : String(error);\n logger.warn(` âš ī¸ Failed to unpublish ${name}@${version}: ${msg}`);\n }\n }\n }\n\n private async validatePackages(context: Context): Promise<void> {\n const { changedPackages, versions, logger } = context;\n if (!versions) return;\n\n const alreadyPublished: string[] = [];\n const needsToken: string[] = [];\n const hasToken = await this.ops.hasToken();\n\n for (const pkg of changedPackages) {\n const version = versions[pkg.name];\n if (!version) continue;\n\n // Check if version already exists\n const existingVersion = await this.ops.view(pkg.name, version);\n if (existingVersion === version) {\n alreadyPublished.push(`${pkg.name}@${version}`);\n continue;\n }\n\n // Check if package exists (for OIDC)\n if (!hasToken && this.config.provenance) {\n const exists = await this.ops.packageExists(pkg.name);\n if (!exists) {\n needsToken.push(pkg.name);\n }\n }\n }\n\n if (alreadyPublished.length > 0) {\n logger.error(`❌ npm versions already published: ${alreadyPublished.join(', ')}`);\n throw new Error(\n `Cannot release: npm versions already exist (${alreadyPublished.join(', ')}). Bump to a new version.`,\n );\n }\n\n if (needsToken.length > 0) {\n logger.error(`❌ First publish requires NPM_TOKEN: ${needsToken.join(', ')}`);\n throw new Error(\n `Cannot release with OIDC: packages don't exist on npm yet (${needsToken.join(', ')}). First publish requires NPM_TOKEN. Run: node scripts/publish-dummy-packages.mjs`,\n );\n }\n }\n}\n\nexport { defaultNpmOperations, type NpmOperations } from './operations.js';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/operations.ts","../src/npm.ts"],"sourcesContent":["import { execa } from 'execa';\n\nexport interface NpmOperations {\n publish(args: string[], cwd: string): Promise<string>;\n view(pkg: string, version: string): Promise<string | null>;\n packageExists(pkg: string): Promise<boolean>;\n hasToken(): Promise<boolean>;\n unpublish(pkg: string, version: string): Promise<void>;\n}\n\nexport const defaultNpmOperations: NpmOperations = {\n async publish(args, cwd) {\n const result = await execa('npm', ['publish', ...args], { cwd, stdio: 'pipe' });\n return result.stdout + (result.stderr ? `\\n${result.stderr}` : '');\n },\n\n async view(pkg, version) {\n try {\n const result = await execa('npm', ['view', `${pkg}@${version}`, 'version'], {\n stdio: 'pipe',\n });\n return result.stdout.trim() || null;\n } catch {\n return null;\n }\n },\n\n /* c8 ignore start - real npm operations */\n async packageExists(pkg) {\n try {\n await execa('npm', ['view', pkg, 'name'], { stdio: 'pipe' });\n return true;\n } catch {\n return false;\n }\n },\n\n async hasToken() {\n return !!process.env.NPM_TOKEN || !!process.env.NODE_AUTH_TOKEN;\n },\n\n async unpublish(pkg, version) {\n await execa('npm', ['unpublish', `${pkg}@${version}`], { stdio: 'pipe' });\n },\n /* c8 ignore stop */\n};\n","import type { BonvoyPlugin, Context, PublishContext, RollbackContext } from '@bonvoy/core';\n\nimport { defaultNpmOperations, type NpmOperations } from './operations.js';\n\nexport interface NpmPluginConfig {\n registry?: string;\n access?: 'public' | 'restricted';\n dryRun?: boolean;\n skipExisting?: boolean;\n provenance?: boolean;\n}\n\nexport default class NpmPlugin implements BonvoyPlugin {\n name = 'npm';\n\n private config: Required<NpmPluginConfig>;\n private ops: NpmOperations;\n\n constructor(config: NpmPluginConfig = {}, ops?: NpmOperations) {\n this.config = {\n registry: config.registry ?? 'https://registry.npmjs.org',\n access: config.access ?? 'public',\n dryRun: config.dryRun ?? false,\n skipExisting: config.skipExisting ?? true,\n provenance: config.provenance ?? true,\n };\n this.ops = ops ?? defaultNpmOperations;\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: Hook types are complex and vary by implementation\n apply(bonvoy: { hooks: { validateRepo: any; publish: any; rollback: any } }): void {\n bonvoy.hooks.validateRepo.tapPromise(this.name, async (context: Context) => {\n await this.validatePackages(context);\n });\n\n bonvoy.hooks.publish.tapPromise(this.name, async (context: PublishContext) => {\n if (context.isDryRun) {\n context.logger.info('🔍 [dry-run] Would publish packages to npm');\n return;\n }\n await this.publishPackages(context);\n });\n\n bonvoy.hooks.rollback.tapPromise(this.name, async (context: RollbackContext) => {\n await this.rollback(context);\n });\n }\n\n private async publishPackages(context: PublishContext): Promise<void> {\n const { packages, logger, preid, actionLog } = context;\n\n for (const pkg of packages) {\n if (this.config.skipExisting && (await this.isAlreadyPublished(pkg))) {\n logger.info(`Skipping ${pkg.name}@${pkg.version} - already published`);\n continue;\n }\n\n await this.publishPackage(pkg, logger, preid);\n actionLog.record({\n plugin: 'npm',\n action: 'publish',\n data: { name: pkg.name, version: pkg.version },\n });\n }\n }\n\n private async publishPackage(\n pkg: { name: string; version: string; path: string },\n logger: PublishContext['logger'],\n preid?: string,\n ): Promise<void> {\n const args: string[] = [];\n\n if (this.config.dryRun) {\n args.push('--dry-run');\n }\n\n args.push('--access', this.config.access);\n\n if (this.config.provenance) {\n args.push('--provenance');\n }\n\n if (this.config.registry !== 'https://registry.npmjs.org') {\n args.push('--registry', this.config.registry);\n }\n\n // Use preid as npm tag for prereleases, fallback to 'next' if version contains '-'\n if (preid) {\n args.push('--tag', preid);\n } else if (pkg.version.includes('-')) {\n args.push('--tag', 'next');\n }\n\n logger.info(`Publishing ${pkg.name}@${pkg.version}...`);\n\n try {\n const output = await this.ops.publish(args, pkg.path);\n if (output) logger.debug(output);\n } catch (error: unknown) {\n // On failure, include captured output in the error\n const stderr = (error as { stderr?: string }).stderr ?? '';\n const stdout = (error as { stdout?: string }).stdout ?? '';\n const output = [stdout, stderr].filter(Boolean).join('\\n');\n if (output) logger.error(output);\n throw error;\n }\n }\n\n private async isAlreadyPublished(pkg: { name: string; version: string }): Promise<boolean> {\n const version = await this.ops.view(pkg.name, pkg.version);\n return version === pkg.version;\n }\n\n private async rollback(context: RollbackContext): Promise<void> {\n const { logger } = context;\n const actions = context.actions.filter((a) => a.plugin === 'npm').reverse();\n\n for (const action of actions) {\n if (action.action !== 'publish') continue;\n const { name, version } = action.data as { name: string; version: string };\n try {\n logger.info(` â†Šī¸ Unpublishing ${name}@${version} (best-effort)`);\n await this.ops.unpublish(name, version);\n } catch (error: unknown) {\n const msg = error instanceof Error ? error.message : String(error);\n logger.warn(` âš ī¸ Failed to unpublish ${name}@${version}: ${msg}`);\n }\n }\n }\n\n private async validatePackages(context: Context): Promise<void> {\n const { changedPackages, versions, logger } = context;\n if (!versions) return;\n\n const alreadyPublished: string[] = [];\n const needsToken: string[] = [];\n const hasToken = await this.ops.hasToken();\n\n for (const pkg of changedPackages) {\n const version = versions[pkg.name];\n if (!version) continue;\n\n // Check if version already exists\n const existingVersion = await this.ops.view(pkg.name, version);\n if (existingVersion === version) {\n alreadyPublished.push(`${pkg.name}@${version}`);\n continue;\n }\n\n // Check if package exists (for OIDC)\n if (!hasToken && this.config.provenance) {\n const exists = await this.ops.packageExists(pkg.name);\n if (!exists) {\n needsToken.push(pkg.name);\n }\n }\n }\n\n if (alreadyPublished.length > 0) {\n logger.error(`❌ npm versions already published: ${alreadyPublished.join(', ')}`);\n throw new Error(\n `Cannot release: npm versions already exist (${alreadyPublished.join(', ')}). Bump to a new version.`,\n );\n }\n\n if (needsToken.length > 0) {\n logger.error(`❌ First publish requires NPM_TOKEN: ${needsToken.join(', ')}`);\n throw new Error(\n `Cannot release with OIDC: packages don't exist on npm yet (${needsToken.join(', ')}). First publish requires NPM_TOKEN environment variable.`,\n );\n }\n }\n}\n\nexport { defaultNpmOperations, type NpmOperations } from './operations.js';\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonvoy/plugin-npm",
3
- "version": "0.4.0",
3
+ "version": "0.12.0",
4
4
  "description": "đŸšĸ npm publishing plugin for bonvoy",
5
5
  "keywords": [
6
6
  "bonvoy",