@cmflow/cli 3.4.0-beta.25 → 3.4.0-beta.27

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 +1 @@
1
- {"version":3,"file":"common-CfQycsia.mjs","names":["isObservable","chalk"],"sources":["../src/common/cli/bun.ts","../src/common/cli/lerna.ts","../src/common/cli/pnpm.ts","../src/common/cli/yarn.ts","../src/common/configure-git-workspace.ts","../src/common/get-package-manager.ts","../src/common/get-release-config.ts","../src/common/run-command.ts"],"sourcesContent":["import { Cli } from \"./cli.js\";\n\nclass BunCli extends Cli {\n constructor() {\n super(\"bun\");\n }\n\n newVersion(version: string) {\n return this.pm(\"version\", \"--no-git-tag-version\", version);\n }\n\n pm(...args: string[]) {\n return this.sync(\"pm\", ...args);\n }\n\n run(...args: string[]) {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]) {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without bun.lock mutation\n * @returns {Promise<unknown>}\n */\n restore() {\n return super.run(\"install\", \"--frozen-lockfile\");\n }\n}\n\nexport const bun = new BunCli();\n","import { Cli } from \"./cli.js\";\n\nclass LernaCli extends Cli {\n constructor() {\n super(\"lerna\");\n }\n\n newVersion(version: string) {\n return this.version(version, \"--exact\", \"--yes\", \"--no-git-tag-version\", \"--no-push\");\n }\n\n version(...args: string[]) {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]) {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]) {\n return super.run(\"install\", ...args);\n }\n}\n\nexport const lerna = new LernaCli();\n","import { Cli } from \"./cli.js\";\n\nclass PnpmCli extends Cli {\n constructor() {\n super(\"pnpm\");\n }\n\n newVersion(version: string) {\n // pnpm follows npm's version CLI semantics\n return this.version(\"--no-git-tag-version\", version);\n }\n\n version(...args: string[]) {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]) {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]) {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without pnpm-lock.yaml mutation\n * @returns {Promise<unknown>}\n */\n restore() {\n return super.run(\"install\", \"--frozen-lockfile\");\n }\n}\n\nexport const pnpm = new PnpmCli();\n","import { Cli } from \"./cli.js\";\n\nclass YarnCli extends Cli {\n constructor() {\n super(\"yarn\");\n }\n\n newVersion(version: string) {\n return this.version(\"--no-git-tag-version\", \"--new-version\", version);\n }\n\n version(...args: string[]) {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]) {\n return super.run(...args);\n }\n\n install(...args: string[]) {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without yarn.lock mutation\n * @returns {Promise<unknown>}\n */\n restore() {\n return super.run(\"install\", \"--immutable\");\n }\n}\n\nexport const yarn = new YarnCli();\n","import { git } from \"./cli/git.js\";\nimport type { CmContext } from \"./interfaces\";\n\nexport function configureGitWorkspace(context: CmContext) {\n const {\n logger,\n config: { SCM_TOKEN, REPOSITORY_URL, ORIGIN, GIT_USER_NAME, GIT_USER_EMAIL, GIT_DISABLE_SSL }\n } = context;\n\n if (GIT_USER_NAME && GIT_USER_EMAIL) {\n git.config(\"--global\", \"user.name\", `\"${GIT_USER_NAME}\"`);\n git.config(\"--global\", \"user.email\", `\"${GIT_USER_EMAIL}\"`);\n }\n\n if (GIT_DISABLE_SSL) {\n logger.info(\"Disable SSL verification\");\n git.config(\"--global\", \"http.sslVerify\", \"false\");\n }\n\n if (SCM_TOKEN) {\n const repository = (REPOSITORY_URL ?? \"\").replace(\"https://\", \"\");\n\n logger.info(`Configure remote repository ${repository}`);\n git.remote(\"remove\", ORIGIN ?? \"origin\").sync();\n git.remote(\"add\", ORIGIN ?? \"origin\", `https://${SCM_TOKEN}@${repository}`).sync();\n }\n}\n","import { bun } from \"./cli/bun.js\";\nimport { npm } from \"./cli/npm.js\";\nimport { pnpm } from \"./cli/pnpm.js\";\nimport { yarn } from \"./cli/yarn.js\";\n\nexport function getPackageManager(pkgManager: string) {\n if (pkgManager === \"bun\") {\n return bun;\n }\n\n return pkgManager === \"yarn\" ? yarn : pkgManager === \"pnpm\" ? pnpm : npm;\n}\n","import { existsSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nconst releaseConfigFileNames = [\"release.config.ts\", \"release.config.mjs\", \"release.config.js\"];\n\nexport function findReleaseConfig(cwd = process.cwd()): string | undefined {\n let directory = resolve(cwd);\n\n while (true) {\n for (const fileName of releaseConfigFileNames) {\n const configPath = join(directory, fileName);\n if (existsSync(configPath)) {\n return configPath;\n }\n }\n\n const parentDirectory = dirname(directory);\n if (parentDirectory === directory) {\n return undefined;\n }\n directory = parentDirectory;\n }\n}\n\nexport async function getReleaseConfig(cwd?: string): Promise<Record<string, unknown>> {\n const configPath = findReleaseConfig(cwd);\n if (!configPath) {\n return {};\n }\n\n try {\n if (configPath.endsWith(\".ts\")) {\n const loadedModule = await (await import(\"tsx/esm/api\")).tsImport(configPath, import.meta.url);\n const module = (loadedModule.default ?? loadedModule) as Record<string, unknown>;\n return (module.default as Record<string, unknown> | undefined) ?? module;\n }\n\n const module = await import(pathToFileURL(configPath).href);\n return module.default ?? module;\n } catch (error) {\n console.error(`Error while loading ${configPath}`, error);\n return {};\n }\n}\n","import chalk from \"chalk\";\nimport { cancel, isCancel, log, spinner } from \"@clack/prompts\";\nimport { isObservable } from \"rxjs\";\n\nimport type { CmContext, CmTask, CommandConstructor } from \"./interfaces/index.js\";\nimport { getConfig } from \"./get-config.js\";\nimport { getReleaseConfig } from \"./get-release-config.js\";\n\nasync function runTask(task: CmTask, context: CmContext): Promise<void> {\n if (task.enabled && !task.enabled()) {\n return;\n }\n\n if (context.dryRun) {\n log.info(`Dry run: ${task.title}`);\n return;\n }\n\n const skipped = task.skip?.();\n if (skipped) {\n log.info(`${task.title} ${typeof skipped === \"string\" ? `(${skipped})` : \"(skipped)\"}`);\n return;\n }\n\n const result = task.task();\n if (Array.isArray(result)) {\n for (const child of result) {\n await runTask(child as CmTask, context);\n }\n return;\n }\n\n const progress = spinner();\n progress.start(task.title);\n try {\n if (isObservable(result)) {\n await new Promise<void>((resolve, reject) => result.subscribe({ complete: resolve, error: reject }));\n } else {\n await result;\n }\n progress.stop(task.title);\n } catch (error) {\n progress.stop(`${task.title} failed`);\n throw error;\n }\n}\n\nasync function createTasksRunner(tasks: CmTask[], context: CmContext): Promise<void> {\n for (const task of tasks) {\n await runTask(task, context);\n }\n}\n\nexport async function runCommand(\n klass: CommandConstructor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n opts: Record<string, any>\n): Promise<void> {\n try {\n const config = getConfig();\n\n let context = {\n ...(await getReleaseConfig()),\n ...config,\n branch: { name: config.BRANCH_NAME as string },\n config,\n dryRun: opts.dryRun as boolean | undefined,\n logger: console,\n verbose: opts.verbose as number | undefined\n } as unknown as CmContext;\n\n const command = new klass();\n\n if (command.mapContext) {\n context = command.mapContext(opts as Record<string, unknown>, context);\n }\n\n if (command.prompt) {\n const answers = await command.prompt(context);\n if (isCancel(answers)) {\n cancel(\"Operation cancelled.\");\n return;\n }\n context = {\n ...context,\n ...answers\n };\n }\n\n command.verifyConditions?.(context);\n\n const tasks = command.getTasks(context);\n\n await createTasksRunner(tasks, context);\n\n command.success?.(context);\n } catch (er) {\n log.error(chalk.red(String(er)));\n if (opts.verbose) {\n console.error(String((er as Error).stack ?? \"\").replace(String(er), \"\"));\n }\n process.exit(-1);\n }\n}\n\nprocess.on(\"unhandledRejection\", () => {\n // avoid extra promise rejection when using toObservable\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"common-CfQycsia.mjs","names":["isObservable","chalk"],"sources":["../src/common/cli/bun.ts","../src/common/cli/lerna.ts","../src/common/cli/pnpm.ts","../src/common/cli/yarn.ts","../src/common/configure-git-workspace.ts","../src/common/get-package-manager.ts","../src/common/get-release-config.ts","../src/common/run-command.ts"],"sourcesContent":["import { type CliResult, type CliSyncResult, Cli } from \"./cli.js\";\n\nclass BunCli extends Cli {\n constructor() {\n super(\"bun\");\n }\n\n newVersion(version: string): CliSyncResult {\n return this.pm(\"version\", \"--no-git-tag-version\", version);\n }\n\n pm(...args: string[]): CliSyncResult {\n return this.sync(\"pm\", ...args);\n }\n\n run(...args: string[]): CliResult {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]): CliResult {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without bun.lock mutation\n * @returns {Promise<unknown>}\n */\n restore(): CliResult {\n return super.run(\"install\", \"--frozen-lockfile\");\n }\n}\n\nexport const bun = new BunCli();\n","import { type CliResult, type CliSyncResult, Cli } from \"./cli.js\";\n\nclass LernaCli extends Cli {\n constructor() {\n super(\"lerna\");\n }\n\n newVersion(version: string): CliSyncResult {\n return this.version(version, \"--exact\", \"--yes\", \"--no-git-tag-version\", \"--no-push\");\n }\n\n version(...args: string[]): CliSyncResult {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]): CliResult {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]): CliResult {\n return super.run(\"install\", ...args);\n }\n}\n\nexport const lerna = new LernaCli();\n","import { type CliResult, type CliSyncResult, Cli } from \"./cli.js\";\n\nclass PnpmCli extends Cli {\n constructor() {\n super(\"pnpm\");\n }\n\n newVersion(version: string): CliSyncResult {\n // pnpm follows npm's version CLI semantics\n return this.version(\"--no-git-tag-version\", version);\n }\n\n version(...args: string[]): CliSyncResult {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]): CliResult {\n return super.run(\"run\", ...args);\n }\n\n install(...args: string[]): CliResult {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without pnpm-lock.yaml mutation\n * @returns {Promise<unknown>}\n */\n restore(): CliResult {\n return super.run(\"install\", \"--frozen-lockfile\");\n }\n}\n\nexport const pnpm = new PnpmCli();\n","import { type CliResult, type CliSyncResult, Cli } from \"./cli.js\";\n\nclass YarnCli extends Cli {\n constructor() {\n super(\"yarn\");\n }\n\n newVersion(version: string): CliSyncResult {\n return this.version(\"--no-git-tag-version\", \"--new-version\", version);\n }\n\n version(...args: string[]): CliSyncResult {\n return this.sync(\"version\", ...args);\n }\n\n run(...args: string[]): CliResult {\n return super.run(...args);\n }\n\n install(...args: string[]): CliResult {\n return super.run(\"install\", ...args);\n }\n\n /**\n * Reinstall dependencies without yarn.lock mutation\n * @returns {Promise<unknown>}\n */\n restore(): CliResult {\n return super.run(\"install\", \"--immutable\");\n }\n}\n\nexport const yarn = new YarnCli();\n","import { git } from \"./cli/git.js\";\nimport type { CmContext } from \"./interfaces\";\n\nexport function configureGitWorkspace(context: CmContext) {\n const {\n logger,\n config: { SCM_TOKEN, REPOSITORY_URL, ORIGIN, GIT_USER_NAME, GIT_USER_EMAIL, GIT_DISABLE_SSL }\n } = context;\n\n if (GIT_USER_NAME && GIT_USER_EMAIL) {\n git.config(\"--global\", \"user.name\", `\"${GIT_USER_NAME}\"`);\n git.config(\"--global\", \"user.email\", `\"${GIT_USER_EMAIL}\"`);\n }\n\n if (GIT_DISABLE_SSL) {\n logger.info(\"Disable SSL verification\");\n git.config(\"--global\", \"http.sslVerify\", \"false\");\n }\n\n if (SCM_TOKEN) {\n const repository = (REPOSITORY_URL ?? \"\").replace(\"https://\", \"\");\n\n logger.info(`Configure remote repository ${repository}`);\n git.remote(\"remove\", ORIGIN ?? \"origin\").sync();\n git.remote(\"add\", ORIGIN ?? \"origin\", `https://${SCM_TOKEN}@${repository}`).sync();\n }\n}\n","import { bun } from \"./cli/bun.js\";\nimport { type CliResult, type CliSyncResult, Cli } from \"./cli/cli.js\";\nimport { npm } from \"./cli/npm.js\";\nimport { pnpm } from \"./cli/pnpm.js\";\nimport { yarn } from \"./cli/yarn.js\";\n\nexport interface PackageManager extends Cli {\n newVersion(version: string): CliSyncResult;\n run(...args: string[]): CliResult;\n install(...args: string[]): CliResult;\n restore(): CliResult;\n}\n\nexport function getPackageManager(pkgManager: string): PackageManager {\n if (pkgManager === \"bun\") {\n return bun;\n }\n\n return pkgManager === \"yarn\" ? yarn : pkgManager === \"pnpm\" ? pnpm : npm;\n}\n","import { existsSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\n\nconst releaseConfigFileNames = [\"release.config.ts\", \"release.config.mjs\", \"release.config.js\"];\n\nexport function findReleaseConfig(cwd = process.cwd()): string | undefined {\n let directory = resolve(cwd);\n\n while (true) {\n for (const fileName of releaseConfigFileNames) {\n const configPath = join(directory, fileName);\n if (existsSync(configPath)) {\n return configPath;\n }\n }\n\n const parentDirectory = dirname(directory);\n if (parentDirectory === directory) {\n return undefined;\n }\n directory = parentDirectory;\n }\n}\n\nexport async function getReleaseConfig(cwd?: string): Promise<Record<string, unknown>> {\n const configPath = findReleaseConfig(cwd);\n if (!configPath) {\n return {};\n }\n\n try {\n if (configPath.endsWith(\".ts\")) {\n const loadedModule = await (await import(\"tsx/esm/api\")).tsImport(configPath, import.meta.url);\n const module = (loadedModule.default ?? loadedModule) as Record<string, unknown>;\n return (module.default as Record<string, unknown> | undefined) ?? module;\n }\n\n const module = await import(pathToFileURL(configPath).href);\n return module.default ?? module;\n } catch (error) {\n console.error(`Error while loading ${configPath}`, error);\n return {};\n }\n}\n","import chalk from \"chalk\";\nimport { cancel, isCancel, log, spinner } from \"@clack/prompts\";\nimport { isObservable } from \"rxjs\";\n\nimport type { CmContext, CmTask, CommandConstructor } from \"./interfaces/index.js\";\nimport { getConfig } from \"./get-config.js\";\nimport { getReleaseConfig } from \"./get-release-config.js\";\n\nasync function runTask(task: CmTask, context: CmContext): Promise<void> {\n if (task.enabled && !task.enabled()) {\n return;\n }\n\n if (context.dryRun) {\n log.info(`Dry run: ${task.title}`);\n return;\n }\n\n const skipped = task.skip?.();\n if (skipped) {\n log.info(`${task.title} ${typeof skipped === \"string\" ? `(${skipped})` : \"(skipped)\"}`);\n return;\n }\n\n const result = task.task();\n if (Array.isArray(result)) {\n for (const child of result) {\n await runTask(child as CmTask, context);\n }\n return;\n }\n\n const progress = spinner();\n progress.start(task.title);\n try {\n if (isObservable(result)) {\n await new Promise<void>((resolve, reject) => result.subscribe({ complete: resolve, error: reject }));\n } else {\n await result;\n }\n progress.stop(task.title);\n } catch (error) {\n progress.stop(`${task.title} failed`);\n throw error;\n }\n}\n\nasync function createTasksRunner(tasks: CmTask[], context: CmContext): Promise<void> {\n for (const task of tasks) {\n await runTask(task, context);\n }\n}\n\nexport async function runCommand(\n klass: CommandConstructor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n opts: Record<string, any>\n): Promise<void> {\n try {\n const config = getConfig();\n\n let context = {\n ...(await getReleaseConfig()),\n ...config,\n branch: { name: config.BRANCH_NAME as string },\n config,\n dryRun: opts.dryRun as boolean | undefined,\n logger: console,\n verbose: opts.verbose as number | undefined\n } as unknown as CmContext;\n\n const command = new klass();\n\n if (command.mapContext) {\n context = command.mapContext(opts as Record<string, unknown>, context);\n }\n\n if (command.prompt) {\n const answers = await command.prompt(context);\n if (isCancel(answers)) {\n cancel(\"Operation cancelled.\");\n return;\n }\n context = {\n ...context,\n ...answers\n };\n }\n\n command.verifyConditions?.(context);\n\n const tasks = command.getTasks(context);\n\n await createTasksRunner(tasks, context);\n\n command.success?.(context);\n } catch (er) {\n log.error(chalk.red(String(er)));\n if (opts.verbose) {\n console.error(String((er as Error).stack ?? \"\").replace(String(er), \"\"));\n }\n process.exit(-1);\n }\n}\n\nprocess.on(\"unhandledRejection\", () => {\n // avoid extra promise rejection when using toObservable\n});\n"],"mappings":"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"}