{"_id":"@aigentic/deployment","_rev":"2-8b5ad1dbff61b2cfeb125460454dcaa3","name":"@aigentic/deployment","dist-tags":{"alpha":"3.0.0-alpha.7","latest":"3.0.0-alpha.7"},"versions":{"3.0.0-alpha.7":{"name":"@aigentic/deployment","version":"3.0.0-alpha.7","_id":"@aigentic/deployment@3.0.0-alpha.7","maintainers":[{"name":"aigentic","email":"engineering@aigentic.net"}],"dist":{"shasum":"8bdab514a191e4acb9b4b361018db58fc5ff36c0","tarball":"https://registry.npmjs.org/@aigentic/deployment/-/deployment-3.0.0-alpha.7.tgz","fileCount":15,"integrity":"sha512-q6nipgiT34MNg9XjQ0tRfbh2PLeF2sY7OJNj83oFAOLthiBARtNbnTBc3qxfBo4KZB8BV7mYSo93UCZrJbon3Q==","signatures":[{"sig":"MEQCIAvmjz0eWuhahEk2r/jgCyu8xdh/255ndx33qQR4dvAOAiBXHs87i72D3AukYs5jeWgLHRkc7NKzkzdTGfA7S0WHVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56467},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":"./dist/index.js"},"gitHead":"e2cb6210ce8d478b39cad81872a4aef78a05ceb4","scripts":{"test":"vitest run","build":"tsc","release":"semantic-release"},"_npmUser":{"name":"aigentic","email":"engineering@aigentic.net"},"_npmVersion":"11.12.0","description":"Deployment module - Release management, CI/CD, versioning","directories":{},"_nodeVersion":"22.22.1","dependencies":{"@aigentic/shared":"^3.0.0-alpha.1"},"publishConfig":{"tag":"v3alpha","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@aigentic/vitest":"^4.0.16","@aigentic/semantic-release":"^25.0.2"},"_npmOperationalInternal":{"tmp":"tmp/deployment_3.0.0-alpha.7_1779324091582_0.21195260527374415","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-05-21T00:41:31.421Z","modified":"2026-09-13T15:30:30.155Z","3.0.0-alpha.7":"2026-05-21T00:41:31.744Z"},"description":"Deployment module - Release management, CI/CD, versioning","maintainers":[{"email":"engineering@aigentic.net","name":"aiggy"}],"readme":"# @claude-flow/deployment\n\n[![npm version](https://img.shields.io/npm/v/@claude-flow/deployment.svg)](https://www.npmjs.com/package/@claude-flow/deployment)\n[![npm downloads](https://img.shields.io/npm/dm/@claude-flow/deployment.svg)](https://www.npmjs.com/package/@claude-flow/deployment)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![CI/CD](https://img.shields.io/badge/CI%2FCD-Automated-green.svg)](https://github.com/ruvnet/claude-flow)\n[![Semantic Release](https://img.shields.io/badge/Semantic-Release-brightgreen.svg)](https://semantic-release.gitbook.io/)\n\n> Release management, CI/CD, and versioning module for Claude Flow v3.\n\n## Features\n\n- **Version Bumping**: Automatic version management (major, minor, patch, prerelease)\n- **Changelog Generation**: Generate changelogs from conventional commits\n- **Git Integration**: Automatic tagging and committing\n- **NPM Publishing**: Publish packages with tag support (alpha, beta, latest)\n- **Pre-Release Validation**: Lint, test, build, and dependency checks\n- **Dry Run Mode**: Test releases without making changes\n\n## Installation\n\n```bash\nnpm install @claude-flow/deployment\n```\n\n## Quick Start\n\n### Prepare a Release\n\n```typescript\nimport { prepareRelease } from '@claude-flow/deployment';\n\n// Bump patch version and generate changelog\nconst result = await prepareRelease({\n  bumpType: 'patch',\n  generateChangelog: true,\n  createTag: true,\n  commit: true\n});\n\nconsole.log(`Released ${result.newVersion}`);\n```\n\n### Publish to NPM\n\n```typescript\nimport { publishToNpm } from '@claude-flow/deployment';\n\n// Publish with 'latest' tag\nconst result = await publishToNpm({\n  tag: 'latest',\n  access: 'public'\n});\n\nconsole.log(`Published ${result.packageName}@${result.version}`);\n```\n\n### Validate Package\n\n```typescript\nimport { validate } from '@claude-flow/deployment';\n\n// Run all validation checks\nconst result = await validate({\n  lint: true,\n  test: true,\n  build: true,\n  checkDependencies: true\n});\n\nif (!result.valid) {\n  console.error('Validation failed:', result.errors);\n}\n```\n\n## API Reference\n\n### ReleaseManager\n\n```typescript\nimport { ReleaseManager } from '@claude-flow/deployment';\n\nconst manager = new ReleaseManager();\n\n// Prepare release with options\nconst result = await manager.prepareRelease({\n  bumpType: 'minor',           // major | minor | patch | prerelease\n  version: '2.0.0',            // Override version\n  channel: 'beta',             // alpha | beta | rc | latest\n  generateChangelog: true,     // Generate CHANGELOG.md\n  createTag: true,             // Create git tag\n  commit: true,                // Commit changes\n  dryRun: false,               // Test without changes\n  skipValidation: false,       // Skip validation checks\n  tagPrefix: 'v',              // Tag prefix (v2.0.0)\n  changelogPath: 'CHANGELOG.md' // Changelog file path\n});\n```\n\n#### Version Bumping\n\n```typescript\n// Bump patch: 1.0.0 -> 1.0.1\nawait manager.prepareRelease({ bumpType: 'patch' });\n\n// Bump minor: 1.0.0 -> 1.1.0\nawait manager.prepareRelease({ bumpType: 'minor' });\n\n// Bump major: 1.0.0 -> 2.0.0\nawait manager.prepareRelease({ bumpType: 'major' });\n\n// Bump prerelease: 1.0.0 -> 1.0.0-alpha.1\nawait manager.prepareRelease({ bumpType: 'prerelease', channel: 'alpha' });\n\n// Increment prerelease: 1.0.0-alpha.1 -> 1.0.0-alpha.2\nawait manager.prepareRelease({ bumpType: 'prerelease', channel: 'alpha' });\n```\n\n#### Changelog Generation\n\nGenerates changelog from conventional commits:\n\n```bash\n# Commit format: type(scope): message\ngit commit -m \"feat(api): add new endpoint\"\ngit commit -m \"fix(auth): resolve login issue\"\ngit commit -m \"feat(ui): update design BREAKING CHANGE: new layout\"\n```\n\nGenerated changelog:\n```markdown\n## [2.0.0] - 2026-01-04\n\n### BREAKING CHANGES\n\n- **ui**: update design BREAKING CHANGE: new layout\n\n### Features\n\n- **api**: add new endpoint\n- **ui**: update design\n\n### Bug Fixes\n\n- **auth**: resolve login issue\n```\n\n### Publisher\n\n```typescript\nimport { Publisher } from '@claude-flow/deployment';\n\nconst publisher = new Publisher();\n\n// Publish to npm\nconst result = await publisher.publishToNpm({\n  tag: 'latest',              // npm tag (alpha, beta, latest)\n  access: 'public',           // public | restricted\n  dryRun: false,              // Test publish without actual publish\n  registry: 'https://registry.npmjs.org/',\n  otp: '123456',              // 2FA OTP code\n  skipBuild: false,           // Skip build step\n  buildCommand: 'npm run build' // Custom build command\n});\n\n// Check if version exists\nconst exists = await publisher.checkVersionExists('my-package', '1.0.0');\n\n// Get latest version\nconst latest = await publisher.getLatestVersion('my-package', 'latest');\n\n// Verify npm authentication\nconst authenticated = await publisher.verifyAuth();\n\n// Pack to tarball\nconst tarball = await publisher.pack('./dist');\n```\n\n### Validator\n\n```typescript\nimport { Validator } from '@claude-flow/deployment';\n\nconst validator = new Validator();\n\n// Validate package\nconst result = await validator.validate({\n  lint: true,                 // Run linter\n  test: true,                 // Run tests\n  build: true,                // Run build\n  checkDependencies: true,    // Check dependencies\n  checkGitStatus: true,       // Check uncommitted changes\n  lintCommand: 'npm run lint',\n  testCommand: 'npm test',\n  buildCommand: 'npm run build'\n});\n\nconsole.log('Valid:', result.valid);\nconsole.log('Errors:', result.errors);\nconsole.log('Warnings:', result.warnings);\nconsole.log('Checks:', result.checks);\n```\n\n## Complete Release Workflow\n\n```typescript\nimport { Validator, ReleaseManager, Publisher } from '@claude-flow/deployment';\n\nasync function release(version: string, tag: string) {\n  // 1. Validate package\n  console.log('Validating package...');\n  const validator = new Validator();\n  const validation = await validator.validate();\n\n  if (!validation.valid) {\n    console.error('Validation failed:', validation.errors);\n    process.exit(1);\n  }\n\n  // 2. Prepare release\n  console.log('Preparing release...');\n  const manager = new ReleaseManager();\n  const release = await manager.prepareRelease({\n    version,\n    generateChangelog: true,\n    createTag: true,\n    commit: true\n  });\n\n  if (!release.success) {\n    console.error('Release preparation failed:', release.error);\n    process.exit(1);\n  }\n\n  // 3. Publish to npm\n  console.log('Publishing to npm...');\n  const publisher = new Publisher();\n  const publish = await publisher.publishToNpm({\n    tag,\n    access: 'public'\n  });\n\n  if (!publish.success) {\n    console.error('Publish failed:', publish.error);\n    process.exit(1);\n  }\n\n  console.log(`Successfully released ${publish.packageName}@${publish.version}`);\n}\n\n// Run release\nrelease('2.0.0', 'latest');\n```\n\n## CLI Usage\n\n```bash\n# Prepare release\nnpx @claude-flow/deployment release --version 2.0.0 --changelog --tag\n\n# Publish to npm\nnpx @claude-flow/deployment publish --tag latest --access public\n\n# Validate package\nnpx @claude-flow/deployment validate\n```\n\n## Dry Run Mode\n\nTest releases without making changes:\n\n```typescript\n// Test release preparation\nawait prepareRelease({\n  bumpType: 'minor',\n  dryRun: true\n});\n\n// Test npm publish\nawait publishToNpm({\n  tag: 'beta',\n  dryRun: true\n});\n```\n\n## Channel/Tag Strategy\n\n- **`alpha`**: Early development versions (1.0.0-alpha.1)\n- **`beta`**: Feature complete, testing (1.0.0-beta.1)\n- **`rc`**: Release candidate (1.0.0-rc.1)\n- **`latest`**: Stable production release (1.0.0)\n\n```typescript\n// Prerelease workflow\nawait prepareRelease({ bumpType: 'prerelease', channel: 'alpha' }); // 1.0.0-alpha.1\nawait publishToNpm({ tag: 'alpha' });\n\nawait prepareRelease({ bumpType: 'prerelease', channel: 'beta' });  // 1.0.0-beta.1\nawait publishToNpm({ tag: 'beta' });\n\nawait prepareRelease({ bumpType: 'patch' });  // 1.0.0\nawait publishToNpm({ tag: 'latest' });\n```\n\n## Environment Variables\n\n```bash\n# NPM authentication\nexport NPM_TOKEN=\"your-token\"\n\n# Custom registry\nexport NPM_CONFIG_REGISTRY=\"https://registry.npmjs.org/\"\n```\n\n## Error Handling\n\n```typescript\ntry {\n  const result = await prepareRelease({ bumpType: 'minor' });\n\n  if (!result.success) {\n    console.error('Release failed:', result.error);\n    console.warn('Warnings:', result.warnings);\n  }\n} catch (error) {\n  console.error('Unexpected error:', error);\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}