@lofcz/depset 0.1.1 → 53.4.10

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.js CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import { exec, execSync } from "node:child_process";
2
+ import { execSync } from "node:child_process";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
- import { promisify } from "node:util";
6
5
  import { Command } from "commander";
7
6
  import prompts from "prompts";
7
+ import { exec } from "tinyexec";
8
8
  import { ZodError, z } from "zod";
9
9
  import { detect } from "@antfu/ni";
10
10
  import { cyan, green, red, yellow } from "kleur/colors";
11
11
  import ora from "ora";
12
12
 
13
13
  //#region package.json
14
- var version = "0.1.1";
14
+ var version = "53.4.10";
15
15
 
16
16
  //#endregion
17
17
  //#region src/utils/get-package-manager.ts
@@ -90,7 +90,6 @@ function spinner(text, options) {
90
90
  //#region src/index.ts
91
91
  process.on("SIGINT", () => process.exit(0));
92
92
  process.on("SIGTERM", () => process.exit(0));
93
- const execPromise = promisify(exec);
94
93
  const VERSION_PREFIX_REGEX = /^\D*/;
95
94
  const DepSyncOptionsSchema = z.object({
96
95
  packageSpecifier: z.string().min(1, "Package specifier is required."),
@@ -116,7 +115,16 @@ async function getPackageJson(cwd, options) {
116
115
  }
117
116
  async function fetchPackageVersion(pkg, targetVersionString) {
118
117
  try {
119
- const { stdout } = await execPromise(`npm view ${targetVersionString ? `${pkg}@"<=${targetVersionString}"` : pkg} version --json`);
118
+ const { stdout } = await exec("npm", [
119
+ "view",
120
+ "--json",
121
+ "--",
122
+ targetVersionString ? `${pkg}@<=${targetVersionString}` : pkg,
123
+ "version"
124
+ ], {
125
+ nodePath: false,
126
+ throwOnError: true
127
+ });
120
128
  const versions = JSON.parse(stdout);
121
129
  const latestMatchingVersion = Array.isArray(versions) ? versions.at(-1) : versions;
122
130
  if (latestMatchingVersion) return latestMatchingVersion.trim();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["createSpinner","error: any","version","updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }>","packageFilterFn: (pkgName: string) => boolean","matchDescription: string","packageJson.version"],"sources":["../package.json","../src/utils/get-package-manager.ts","../src/utils/logger.ts","../src/utils/handle-error.ts","../src/utils/spinner.ts","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@lofcz/depset\",\n \"version\": \"0.1.1\",\n \"description\": \"Synchronize dependencies in package.json\",\n \"keywords\": [\n \"dependencies\",\n \"package.json\",\n \"sync\",\n \"upgrade\",\n \"version\",\n \"yarn\",\n \"pnpm\",\n \"npm\",\n \"bun\"\n ],\n \"homepage\": \"https://github.com/udecode/plate/packages/udecode/depset/README.md\",\n \"bugs\": {\n \"url\": \"https://github.com/udecode/plate/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/lofcz/plate.git\",\n \"directory\": \"packages/udecode/depset\"\n },\n \"license\": \"MIT\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": \"./dist/index.js\",\n \"./package.json\": \"./package.json\"\n },\n \"bin\": \"./dist/index.js\",\n \"files\": [\n \"dist/**/*\"\n ],\n \"scripts\": {\n \"build\": \"tsdown --log-level warn\",\n \"build:watch\": \"tsdown --watch\",\n \"lint\": \"plate-pkg p:lint\",\n \"lint:fix\": \"plate-pkg p:lint:fix\",\n \"clean\": \"plate-pkg p:clean\",\n \"start\": \"node dist/index.js\",\n \"typecheck\": \"plate-pkg p:typecheck\"\n },\n \"dependencies\": {\n \"@antfu/ni\": \"24.3.0\",\n \"commander\": \"14.0.0\",\n \"kleur\": \"4.1.5\",\n \"ora\": \"8.2.0\",\n \"prompts\": \"2.4.2\",\n \"zod\": \"3.25.61\"\n },\n \"devDependencies\": {\n \"@plate/scripts\": \"workspace:*\",\n \"@types/prompts\": \"2.4.9\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n}\n","import { detect } from '@antfu/ni';\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn';\n\nexport async function getPackageManager(\n targetDir: string,\n {\n programmatic = true, // ni specific\n withFallback = true,\n }: { programmatic?: boolean; withFallback?: boolean } = {}\n): Promise<PackageManager> {\n const detected = await detect({ cwd: targetDir, programmatic });\n\n if (detected) {\n if (detected.startsWith('yarn')) return 'yarn'; // Catches yarn and yarn@berry\n if (detected.startsWith('pnpm')) return 'pnpm'; // Catches pnpm and pnpm@version\n if (detected === 'bun') return 'bun';\n if (detected === 'npm') return 'npm';\n }\n\n if (withFallback) {\n // Fallback to user agent if not detected.\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n }\n\n return 'npm'; // Default or if no fallback matched\n}\n","import { cyan, green, red, yellow } from 'kleur/colors';\n\nexport const highlighter = {\n error: red,\n info: cyan,\n success: green,\n warn: yellow,\n};\n\nexport const logger = {\n break() {\n console.log('');\n },\n error(...args: unknown[]) {\n console.log(highlighter.error(args.join(' ')));\n },\n info(...args: unknown[]) {\n console.log(highlighter.info(args.join(' ')));\n },\n log(...args: unknown[]) {\n console.log(args.join(' '));\n },\n success(...args: unknown[]) {\n console.log(highlighter.success(args.join(' ')));\n },\n warn(...args: unknown[]) {\n console.log(highlighter.warn(args.join(' ')));\n },\n};\n","import { ZodError } from 'zod';\n\nimport { highlighter, logger } from './logger';\n\nexport function handleError(error: unknown): void {\n logger.error(\n 'Something went wrong. Please check the error below for more details.'\n );\n\n if (typeof error === 'string') {\n logger.error(error);\n } else if (error instanceof ZodError) {\n logger.error('Validation failed:');\n for (const [key, value] of Object.entries(error.flatten().fieldErrors)) {\n logger.error(\n `- ${highlighter.info(key)}: ${(value as string[]).join(', ')}`\n );\n }\n } else if (error instanceof Error) {\n logger.error(error.message);\n }\n\n logger.break();\n process.exit(1);\n}\n","import ora, { type Options } from 'ora';\n\nexport function spinner(\n text: Options['text'],\n options?: {\n silent?: boolean;\n }\n) {\n return ora({\n isSilent: options?.silent,\n text,\n });\n}\n","#!/usr/bin/env node\n\nimport { exec, execSync } from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { promisify } from 'node:util';\nimport { Command } from 'commander';\nimport prompts from 'prompts';\nimport { z } from 'zod';\nimport packageJson from '../package.json';\nimport { getPackageManager } from './utils/get-package-manager';\nimport { handleError } from './utils/handle-error';\nimport { logger } from './utils/logger';\nimport { spinner as createSpinner } from './utils/spinner';\n\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\nconst execPromise = promisify(exec);\nconst VERSION_PREFIX_REGEX = /^\\D*/;\n\nconst DepSyncOptionsSchema = z.object({\n packageSpecifier: z.string().min(1, 'Package specifier is required.'),\n targetVersion: z.string().optional(),\n install: z.boolean().default(false),\n yes: z.boolean().default(false),\n cwd: z.string().default(process.cwd()),\n silent: z.boolean().default(false), // Added for global silent control\n latest: z.boolean().optional(), // Added for --latest flag\n});\n\ntype DepSyncOptions = z.infer<typeof DepSyncOptionsSchema>;\n\nasync function getPackageJson(\n cwd: string,\n options: Pick<DepSyncOptions, 'silent'>\n): Promise<any> {\n const targetPath = path.join(cwd, './package.json');\n const sp = createSpinner(`Reading package.json from ${targetPath}`, {\n silent: options.silent,\n })?.start();\n try {\n const fileContent = await fs.readFile(targetPath, 'utf8');\n sp?.succeed('Successfully read package.json');\n return JSON.parse(fileContent);\n } catch (error) {\n sp?.fail(`Error reading package.json at ${targetPath}`);\n handleError(error); // handleError will exit\n return null; // Should not be reached\n }\n}\n\nasync function fetchPackageVersion(\n pkg: string,\n targetVersionString: string | undefined\n): Promise<string | null> {\n try {\n const versionSpecifier = targetVersionString\n ? `${pkg}@\"<=${targetVersionString}\"`\n : pkg;\n const { stdout } = await execPromise(\n `npm view ${versionSpecifier} version --json`\n );\n const versions = JSON.parse(stdout);\n const latestMatchingVersion = Array.isArray(versions)\n ? versions.at(-1)\n : versions;\n\n if (latestMatchingVersion) {\n return latestMatchingVersion.trim();\n }\n return null;\n } catch (error: any) {\n logger.error(error.message);\n return null;\n }\n}\n\nasync function fetchPackageVersions(\n packagesToFetch: string[],\n currentPackageJson: any,\n options: DepSyncOptions\n): Promise<Map<string, { currentVersion: string; version: string }>> {\n const specifierDisplay = options.packageSpecifier\n ? ` matching \"${options.packageSpecifier}\"`\n : '';\n const fetchingMessage = options.targetVersion\n ? `Fetching latest package versions${specifierDisplay} (up to ${options.targetVersion})`\n : `Fetching latest package versions${specifierDisplay}`;\n logger.info(fetchingMessage);\n\n const sp = createSpinner('Fetching package versions in parallel...', {\n silent: options.silent,\n })?.start();\n\n const versionPromises = packagesToFetch.map(async (pkg) => {\n const version = await fetchPackageVersion(pkg, options.targetVersion);\n if (version) {\n const currentVersion =\n currentPackageJson.dependencies?.[pkg]?.replace(\n VERSION_PREFIX_REGEX,\n ''\n ) ||\n currentPackageJson.devDependencies?.[pkg]?.replace(\n VERSION_PREFIX_REGEX,\n ''\n ) ||\n 'Not installed';\n return [pkg, { currentVersion, version }];\n }\n return null;\n });\n\n const results = await Promise.all(versionPromises);\n const versionMap = new Map<\n string,\n { currentVersion: string; version: string }\n >(results.filter(Boolean) as any);\n sp?.succeed('Finished fetching package versions.');\n return versionMap;\n}\n\nasync function preparePackageUpdates(\n currentPackageJson: any,\n versionMap: Map<string, { currentVersion: string; version: string }>\n): Promise<{\n updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }>;\n newPackageJsonString: string;\n}> {\n const updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }> = [];\n const newPackageJson = JSON.parse(JSON.stringify(currentPackageJson)); // Deep clone\n\n for (const [name, versions] of Array.from(versionMap.entries())) {\n let changed = false;\n if (\n newPackageJson.dependencies?.[name] &&\n newPackageJson.dependencies[name].replace(VERSION_PREFIX_REGEX, '') !==\n versions.version\n ) {\n newPackageJson.dependencies[name] = versions.version; // Or keep prefix if present: `^${versions.version}`\n changed = true;\n }\n if (\n newPackageJson.devDependencies?.[name] &&\n newPackageJson.devDependencies[name].replace(VERSION_PREFIX_REGEX, '') !==\n versions.version\n ) {\n newPackageJson.devDependencies[name] = versions.version;\n changed = true;\n }\n\n if (changed) {\n updatedPackages.push({\n name,\n currentVersion: versions.currentVersion,\n newVersion: versions.version,\n });\n }\n }\n return {\n updatedPackages,\n newPackageJsonString: JSON.stringify(newPackageJson, null, 2),\n };\n}\n\nasync function runSync(options: DepSyncOptions) {\n let mainSpinner = createSpinner('Starting dependency synchronization...', {\n silent: options.silent,\n })?.start();\n\n let packageFilterFn: (pkgName: string) => boolean;\n let matchDescription: string;\n\n if (options.packageSpecifier.endsWith('*')) {\n const prefix = options.packageSpecifier.slice(0, -1);\n packageFilterFn = (pkgName) => pkgName.startsWith(prefix);\n matchDescription = `packages starting with \"${prefix}\"`;\n } else if (\n options.packageSpecifier.startsWith('@') &&\n !options.packageSpecifier.includes('/')\n ) {\n const scopeAsExact = options.packageSpecifier;\n const scopeAsPrefix = `${options.packageSpecifier}/`;\n packageFilterFn = (pkgName) =>\n pkgName.startsWith(scopeAsPrefix) || pkgName === scopeAsExact;\n matchDescription = `packages in scope \"${options.packageSpecifier}\"`;\n } else {\n packageFilterFn = (pkgName) => pkgName === options.packageSpecifier;\n matchDescription = `package \"${options.packageSpecifier}\"`;\n }\n\n logger.info(`\\nSynchronizing ${matchDescription}`);\n if (options.targetVersion) {\n logger.info(`Targeting version: ${options.targetVersion}`);\n }\n logger.info(`Working directory: ${options.cwd}`);\n\n if (!options.yes) {\n mainSpinner.stop();\n mainSpinner.clear();\n mainSpinner = createSpinner('Processing packages...', {\n silent: options.silent,\n })?.start();\n }\n\n const currentPackageJson = await getPackageJson(options.cwd, options);\n if (!currentPackageJson) return; // Error handled in getPackageJson\n\n const allDependencies = {\n ...(currentPackageJson.dependencies || {}),\n ...(currentPackageJson.devDependencies || {}),\n };\n\n const packagesToFetch = Object.keys(allDependencies).filter(packageFilterFn);\n\n if (packagesToFetch.length === 0) {\n mainSpinner.warn(\n `No packages found in dependencies for ${matchDescription}.`\n );\n if (\n options.packageSpecifier &&\n !options.packageSpecifier.endsWith('*') &&\n !options.packageSpecifier.includes('/')\n ) {\n logger.info(\n `Did you mean '${options.packageSpecifier}/*' or an exact package name like '${options.packageSpecifier}/some-package'?`\n );\n }\n return;\n }\n logger.info(\n `Found ${packagesToFetch.length} package${packagesToFetch.length === 1 ? '' : 's'} to check: ${packagesToFetch.join(', ')}`\n );\n\n const versionMap = await fetchPackageVersions(\n packagesToFetch,\n currentPackageJson,\n options\n );\n\n if (versionMap.size === 0 && packagesToFetch.length > 0) {\n mainSpinner.warn(\n 'Could not fetch versions for any of the targeted packages.'\n );\n return;\n }\n if (versionMap.size === 0 && packagesToFetch.length === 0) {\n // This case is already handled by the packagesToFetch.length === 0 check above, but good for clarity\n mainSpinner.info('No packages matched the specifier.');\n return;\n }\n\n const { updatedPackages, newPackageJsonString } = await preparePackageUpdates(\n currentPackageJson,\n versionMap\n );\n mainSpinner.succeed('Package analysis complete.');\n\n if (updatedPackages.length > 0) {\n logger.info('The following packages will be updated:');\n updatedPackages.forEach(({ name, currentVersion, newVersion }) => {\n logger.log(` ${name}: ${currentVersion} -> ${newVersion}`);\n });\n logger.break();\n\n let proceed = options.yes;\n if (!options.yes) {\n const { confirmUpdate } = await prompts({\n type: 'confirm',\n name: 'confirmUpdate',\n message: 'Apply these changes to package.json?',\n initial: true,\n });\n proceed = confirmUpdate;\n }\n\n if (proceed) {\n const writeSpinner = createSpinner('Updating package.json...', {\n silent: options.silent,\n })?.start();\n try {\n await fs.writeFile(\n path.join(options.cwd, './package.json'),\n newPackageJsonString\n );\n writeSpinner?.succeed('package.json updated successfully.');\n } catch (error) {\n writeSpinner?.fail('Error writing to package.json.');\n handleError(error);\n return;\n }\n\n // Decide whether to run install\n let shouldRunInstall = false;\n if (options.install) {\n // --install flag IS present\n shouldRunInstall = true;\n } else if (options.yes) {\n // --install flag IS NOT present, but --yes IS present\n shouldRunInstall = true;\n } else {\n // --install is NOT present, --yes is NOT present\n const { confirmInstall } = await prompts({\n type: 'confirm',\n name: 'confirmInstall',\n message:\n 'Run package manager install command to apply these changes?',\n initial: true,\n });\n shouldRunInstall = confirmInstall;\n }\n\n if (shouldRunInstall) {\n const pm = await getPackageManager(options.cwd);\n const installCommand = `${pm} install`;\n const installSpinner = createSpinner(\n `Running \\`${installCommand}\\`...`,\n { silent: options.silent }\n )?.start();\n try {\n execSync(installCommand, {\n cwd: options.cwd,\n stdio: options.silent ? 'pipe' : 'inherit',\n });\n installSpinner?.succeed(`Successfully ran \\`${installCommand}\\``);\n } catch (error) {\n installSpinner?.fail(`Error running \\`${installCommand}\\``);\n handleError(error); // Will exit\n return;\n }\n } else if (\n updatedPackages.length > 0 &&\n !options.install &&\n options.yes\n ) {\n logger.info(\n 'Skipping package installation as --install was not provided with --yes.'\n );\n } else if (updatedPackages.length > 0 && !shouldRunInstall) {\n logger.info('Skipping package installation.');\n }\n } else {\n logger.info('Changes to package.json were not applied by user.');\n }\n } else {\n logger.success('All specified packages are already up to date.');\n // Removed redundant logging here as installation prompting is handled above or not applicable\n }\n logger.break();\n}\n\nasync function main() {\n const program = new Command();\n program\n .name('depset')\n .description(\n 'Synchronize package dependencies to their latest or a specific version.'\n )\n .version(\n packageJson.version || '0.1.0',\n '-v, --version',\n 'display the version number'\n )\n .argument(\n '[package-specifier]',\n 'Package name or pattern (e.g., \"@scope/foo*\", \"my-package\", \"@myorg\")'\n )\n .argument(\n '[target-version]',\n 'Target version (e.g., \"1.2.3\") - defaults to latest if omitted'\n )\n .option(\n '-i, --install',\n 'Automatically run install after updating package.json',\n false\n )\n .option('-y, --yes', 'Skip all confirmation prompts', false)\n .option(\n '-c, --cwd <path>',\n 'Set the current working directory',\n process.cwd()\n )\n .option('-s, --silent', 'Silence all output except for errors', false)\n .option(\n '-L, --latest',\n 'Use the latest version, skip version prompt',\n false\n ) // Added --latest option\n .action(async (packageSpecifierArg, targetVersionArg, cliOpts) => {\n try {\n let pkgSpec = packageSpecifierArg;\n let targetVer = targetVersionArg;\n\n if (!pkgSpec && !cliOpts.yes) {\n const response = await prompts({\n type: 'text',\n name: 'packageSpecifier',\n message: 'Enter the package name or pattern to synchronize:',\n validate: (value) =>\n value && value.trim().length > 0\n ? true\n : 'Package specifier cannot be empty.',\n });\n if (!response.packageSpecifier) {\n logger.warn('Package specifier is required. Exiting.');\n return;\n }\n pkgSpec = response.packageSpecifier;\n } else if (!pkgSpec && cliOpts.yes) {\n logger.error('Error: package-specifier is required.');\n process.exit(1);\n }\n\n if (!targetVer && !cliOpts.yes && !cliOpts.latest) {\n // Skip if --latest is used\n const versionResponse = await prompts({\n type: 'text',\n name: 'targetVersion',\n message:\n 'Enter the target version (e.g., \"1.2.3\", or leave blank for latest):',\n });\n targetVer = versionResponse.targetVersion || undefined;\n } else if (cliOpts.latest) {\n targetVer = undefined; // Ensure targetVer is undefined if --latest is used\n }\n\n // Merge CLI options with defaults from schema for parsing\n const rawOptions = {\n packageSpecifier: pkgSpec,\n targetVersion: targetVer,\n install: cliOpts.install,\n yes: cliOpts.yes,\n cwd: cliOpts.cwd,\n silent: cliOpts.silent,\n latest: cliOpts.latest, // Added latest to rawOptions\n };\n const options = DepSyncOptionsSchema.parse(rawOptions);\n if (options.silent) {\n // Suppress non-error console logs if silent is true\n logger.info = () => {};\n logger.success = () => {};\n logger.warn = () => {};\n logger.log = () => {};\n logger.break = () => {};\n }\n await runSync(options);\n } catch (error) {\n // Ensure logger still works for handleError even if silenced\n const originalLogger = { ...logger };\n if (cliOpts.silent) {\n logger.error = console.error; // Fallback for errors\n logger.break = () => console.log('');\n }\n handleError(error);\n // Restore logger if it was modified\n if (cliOpts.silent) {\n Object.assign(logger, originalLogger);\n }\n }\n });\n\n await program.parseAsync(process.argv);\n}\n\nmain();\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["createSpinner","error: any","version","updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }>","packageFilterFn: (pkgName: string) => boolean","matchDescription: string","packageJson.version"],"sources":["../package.json","../src/utils/get-package-manager.ts","../src/utils/logger.ts","../src/utils/handle-error.ts","../src/utils/spinner.ts","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@lofcz/depset\",\n \"version\": \"53.4.10\",\n \"description\": \"Synchronize dependencies in package.json\",\n \"keywords\": [\n \"dependencies\",\n \"package.json\",\n \"sync\",\n \"upgrade\",\n \"version\",\n \"yarn\",\n \"pnpm\",\n \"npm\",\n \"bun\"\n ],\n \"homepage\": \"https://github.com/udecode/plate/packages/udecode/depset/README.md\",\n \"bugs\": {\n \"url\": \"https://github.com/udecode/plate/issues\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/lofcz/plate.git\",\n \"directory\": \"packages/udecode/depset\"\n },\n \"license\": \"MIT\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": \"./dist/index.js\",\n \"./package.json\": \"./package.json\"\n },\n \"bin\": \"./dist/index.js\",\n \"files\": [\n \"dist/**/*\"\n ],\n \"scripts\": {\n \"build\": \"tsdown --log-level warn\",\n \"build:watch\": \"tsdown --watch\",\n \"lint\": \"plate-pkg p:lint\",\n \"lint:fix\": \"plate-pkg p:lint:fix\",\n \"clean\": \"plate-pkg p:clean\",\n \"start\": \"node dist/index.js\",\n \"typecheck\": \"plate-pkg p:typecheck\"\n },\n \"dependencies\": {\n \"@antfu/ni\": \"24.3.0\",\n \"commander\": \"14.0.0\",\n \"kleur\": \"4.1.5\",\n \"ora\": \"8.2.0\",\n \"prompts\": \"2.4.2\",\n \"zod\": \"3.25.61\"\n },\n \"devDependencies\": {\n \"@plate/scripts\": \"workspace:*\",\n \"@types/prompts\": \"2.4.9\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n}\n","import { detect } from '@antfu/ni';\n\nexport type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn';\n\nexport async function getPackageManager(\n targetDir: string,\n {\n programmatic = true, // ni specific\n withFallback = true,\n }: { programmatic?: boolean; withFallback?: boolean } = {}\n): Promise<PackageManager> {\n const detected = await detect({ cwd: targetDir, programmatic });\n\n if (detected) {\n if (detected.startsWith('yarn')) return 'yarn'; // Catches yarn and yarn@berry\n if (detected.startsWith('pnpm')) return 'pnpm'; // Catches pnpm and pnpm@version\n if (detected === 'bun') return 'bun';\n if (detected === 'npm') return 'npm';\n }\n\n if (withFallback) {\n // Fallback to user agent if not detected.\n const userAgent = process.env.npm_config_user_agent || '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n }\n\n return 'npm'; // Default or if no fallback matched\n}\n","import { cyan, green, red, yellow } from 'kleur/colors';\n\nexport const highlighter = {\n error: red,\n info: cyan,\n success: green,\n warn: yellow,\n};\n\nexport const logger = {\n break() {\n console.log('');\n },\n error(...args: unknown[]) {\n console.log(highlighter.error(args.join(' ')));\n },\n info(...args: unknown[]) {\n console.log(highlighter.info(args.join(' ')));\n },\n log(...args: unknown[]) {\n console.log(args.join(' '));\n },\n success(...args: unknown[]) {\n console.log(highlighter.success(args.join(' ')));\n },\n warn(...args: unknown[]) {\n console.log(highlighter.warn(args.join(' ')));\n },\n};\n","import { ZodError } from 'zod';\n\nimport { highlighter, logger } from './logger';\n\nexport function handleError(error: unknown): void {\n logger.error(\n 'Something went wrong. Please check the error below for more details.'\n );\n\n if (typeof error === 'string') {\n logger.error(error);\n } else if (error instanceof ZodError) {\n logger.error('Validation failed:');\n for (const [key, value] of Object.entries(error.flatten().fieldErrors)) {\n logger.error(\n `- ${highlighter.info(key)}: ${(value as string[]).join(', ')}`\n );\n }\n } else if (error instanceof Error) {\n logger.error(error.message);\n }\n\n logger.break();\n process.exit(1);\n}\n","import ora, { type Options } from 'ora';\n\nexport function spinner(\n text: Options['text'],\n options?: {\n silent?: boolean;\n }\n) {\n return ora({\n isSilent: options?.silent,\n text,\n });\n}\n","#!/usr/bin/env node\n\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { Command } from 'commander';\nimport prompts from 'prompts';\nimport { exec } from 'tinyexec';\nimport { z } from 'zod';\nimport packageJson from '../package.json';\nimport { getPackageManager } from './utils/get-package-manager';\nimport { handleError } from './utils/handle-error';\nimport { logger } from './utils/logger';\nimport { spinner as createSpinner } from './utils/spinner';\n\nprocess.on('SIGINT', () => process.exit(0));\nprocess.on('SIGTERM', () => process.exit(0));\n\nconst VERSION_PREFIX_REGEX = /^\\D*/;\n\nconst DepSyncOptionsSchema = z.object({\n packageSpecifier: z.string().min(1, 'Package specifier is required.'),\n targetVersion: z.string().optional(),\n install: z.boolean().default(false),\n yes: z.boolean().default(false),\n cwd: z.string().default(process.cwd()),\n silent: z.boolean().default(false), // Added for global silent control\n latest: z.boolean().optional(), // Added for --latest flag\n});\n\ntype DepSyncOptions = z.infer<typeof DepSyncOptionsSchema>;\n\nasync function getPackageJson(\n cwd: string,\n options: Pick<DepSyncOptions, 'silent'>\n): Promise<any> {\n const targetPath = path.join(cwd, './package.json');\n const sp = createSpinner(`Reading package.json from ${targetPath}`, {\n silent: options.silent,\n })?.start();\n try {\n const fileContent = await fs.readFile(targetPath, 'utf8');\n sp?.succeed('Successfully read package.json');\n return JSON.parse(fileContent);\n } catch (error) {\n sp?.fail(`Error reading package.json at ${targetPath}`);\n handleError(error); // handleError will exit\n return null; // Should not be reached\n }\n}\n\nasync function fetchPackageVersion(\n pkg: string,\n targetVersionString: string | undefined\n): Promise<string | null> {\n try {\n const versionSpecifier = targetVersionString\n ? `${pkg}@<=${targetVersionString}`\n : pkg;\n const { stdout } = await exec(\n 'npm',\n ['view', '--json', '--', versionSpecifier, 'version'],\n { nodePath: false, throwOnError: true }\n );\n const versions = JSON.parse(stdout);\n const latestMatchingVersion = Array.isArray(versions)\n ? versions.at(-1)\n : versions;\n\n if (latestMatchingVersion) {\n return latestMatchingVersion.trim();\n }\n return null;\n } catch (error: any) {\n logger.error(error.message);\n return null;\n }\n}\n\nasync function fetchPackageVersions(\n packagesToFetch: string[],\n currentPackageJson: any,\n options: DepSyncOptions\n): Promise<Map<string, { currentVersion: string; version: string }>> {\n const specifierDisplay = options.packageSpecifier\n ? ` matching \"${options.packageSpecifier}\"`\n : '';\n const fetchingMessage = options.targetVersion\n ? `Fetching latest package versions${specifierDisplay} (up to ${options.targetVersion})`\n : `Fetching latest package versions${specifierDisplay}`;\n logger.info(fetchingMessage);\n\n const sp = createSpinner('Fetching package versions in parallel...', {\n silent: options.silent,\n })?.start();\n\n const versionPromises = packagesToFetch.map(async (pkg) => {\n const version = await fetchPackageVersion(pkg, options.targetVersion);\n if (version) {\n const currentVersion =\n currentPackageJson.dependencies?.[pkg]?.replace(\n VERSION_PREFIX_REGEX,\n ''\n ) ||\n currentPackageJson.devDependencies?.[pkg]?.replace(\n VERSION_PREFIX_REGEX,\n ''\n ) ||\n 'Not installed';\n return [pkg, { currentVersion, version }];\n }\n return null;\n });\n\n const results = await Promise.all(versionPromises);\n const versionMap = new Map<\n string,\n { currentVersion: string; version: string }\n >(results.filter(Boolean) as any);\n sp?.succeed('Finished fetching package versions.');\n return versionMap;\n}\n\nasync function preparePackageUpdates(\n currentPackageJson: any,\n versionMap: Map<string, { currentVersion: string; version: string }>\n): Promise<{\n updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }>;\n newPackageJsonString: string;\n}> {\n const updatedPackages: Array<{\n name: string;\n currentVersion: string;\n newVersion: string;\n }> = [];\n const newPackageJson = JSON.parse(JSON.stringify(currentPackageJson)); // Deep clone\n\n for (const [name, versions] of Array.from(versionMap.entries())) {\n let changed = false;\n if (\n newPackageJson.dependencies?.[name] &&\n newPackageJson.dependencies[name].replace(VERSION_PREFIX_REGEX, '') !==\n versions.version\n ) {\n newPackageJson.dependencies[name] = versions.version; // Or keep prefix if present: `^${versions.version}`\n changed = true;\n }\n if (\n newPackageJson.devDependencies?.[name] &&\n newPackageJson.devDependencies[name].replace(VERSION_PREFIX_REGEX, '') !==\n versions.version\n ) {\n newPackageJson.devDependencies[name] = versions.version;\n changed = true;\n }\n\n if (changed) {\n updatedPackages.push({\n name,\n currentVersion: versions.currentVersion,\n newVersion: versions.version,\n });\n }\n }\n return {\n updatedPackages,\n newPackageJsonString: JSON.stringify(newPackageJson, null, 2),\n };\n}\n\nasync function runSync(options: DepSyncOptions) {\n let mainSpinner = createSpinner('Starting dependency synchronization...', {\n silent: options.silent,\n })?.start();\n\n let packageFilterFn: (pkgName: string) => boolean;\n let matchDescription: string;\n\n if (options.packageSpecifier.endsWith('*')) {\n const prefix = options.packageSpecifier.slice(0, -1);\n packageFilterFn = (pkgName) => pkgName.startsWith(prefix);\n matchDescription = `packages starting with \"${prefix}\"`;\n } else if (\n options.packageSpecifier.startsWith('@') &&\n !options.packageSpecifier.includes('/')\n ) {\n const scopeAsExact = options.packageSpecifier;\n const scopeAsPrefix = `${options.packageSpecifier}/`;\n packageFilterFn = (pkgName) =>\n pkgName.startsWith(scopeAsPrefix) || pkgName === scopeAsExact;\n matchDescription = `packages in scope \"${options.packageSpecifier}\"`;\n } else {\n packageFilterFn = (pkgName) => pkgName === options.packageSpecifier;\n matchDescription = `package \"${options.packageSpecifier}\"`;\n }\n\n logger.info(`\\nSynchronizing ${matchDescription}`);\n if (options.targetVersion) {\n logger.info(`Targeting version: ${options.targetVersion}`);\n }\n logger.info(`Working directory: ${options.cwd}`);\n\n if (!options.yes) {\n mainSpinner.stop();\n mainSpinner.clear();\n mainSpinner = createSpinner('Processing packages...', {\n silent: options.silent,\n })?.start();\n }\n\n const currentPackageJson = await getPackageJson(options.cwd, options);\n if (!currentPackageJson) return; // Error handled in getPackageJson\n\n const allDependencies = {\n ...(currentPackageJson.dependencies || {}),\n ...(currentPackageJson.devDependencies || {}),\n };\n\n const packagesToFetch = Object.keys(allDependencies).filter(packageFilterFn);\n\n if (packagesToFetch.length === 0) {\n mainSpinner.warn(\n `No packages found in dependencies for ${matchDescription}.`\n );\n if (\n options.packageSpecifier &&\n !options.packageSpecifier.endsWith('*') &&\n !options.packageSpecifier.includes('/')\n ) {\n logger.info(\n `Did you mean '${options.packageSpecifier}/*' or an exact package name like '${options.packageSpecifier}/some-package'?`\n );\n }\n return;\n }\n logger.info(\n `Found ${packagesToFetch.length} package${packagesToFetch.length === 1 ? '' : 's'} to check: ${packagesToFetch.join(', ')}`\n );\n\n const versionMap = await fetchPackageVersions(\n packagesToFetch,\n currentPackageJson,\n options\n );\n\n if (versionMap.size === 0 && packagesToFetch.length > 0) {\n mainSpinner.warn(\n 'Could not fetch versions for any of the targeted packages.'\n );\n return;\n }\n if (versionMap.size === 0 && packagesToFetch.length === 0) {\n // This case is already handled by the packagesToFetch.length === 0 check above, but good for clarity\n mainSpinner.info('No packages matched the specifier.');\n return;\n }\n\n const { updatedPackages, newPackageJsonString } = await preparePackageUpdates(\n currentPackageJson,\n versionMap\n );\n mainSpinner.succeed('Package analysis complete.');\n\n if (updatedPackages.length > 0) {\n logger.info('The following packages will be updated:');\n updatedPackages.forEach(({ name, currentVersion, newVersion }) => {\n logger.log(` ${name}: ${currentVersion} -> ${newVersion}`);\n });\n logger.break();\n\n let proceed = options.yes;\n if (!options.yes) {\n const { confirmUpdate } = await prompts({\n type: 'confirm',\n name: 'confirmUpdate',\n message: 'Apply these changes to package.json?',\n initial: true,\n });\n proceed = confirmUpdate;\n }\n\n if (proceed) {\n const writeSpinner = createSpinner('Updating package.json...', {\n silent: options.silent,\n })?.start();\n try {\n await fs.writeFile(\n path.join(options.cwd, './package.json'),\n newPackageJsonString\n );\n writeSpinner?.succeed('package.json updated successfully.');\n } catch (error) {\n writeSpinner?.fail('Error writing to package.json.');\n handleError(error);\n return;\n }\n\n // Decide whether to run install\n let shouldRunInstall = false;\n if (options.install) {\n // --install flag IS present\n shouldRunInstall = true;\n } else if (options.yes) {\n // --install flag IS NOT present, but --yes IS present\n shouldRunInstall = true;\n } else {\n // --install is NOT present, --yes is NOT present\n const { confirmInstall } = await prompts({\n type: 'confirm',\n name: 'confirmInstall',\n message:\n 'Run package manager install command to apply these changes?',\n initial: true,\n });\n shouldRunInstall = confirmInstall;\n }\n\n if (shouldRunInstall) {\n const pm = await getPackageManager(options.cwd);\n const installCommand = `${pm} install`;\n const installSpinner = createSpinner(\n `Running \\`${installCommand}\\`...`,\n { silent: options.silent }\n )?.start();\n try {\n execSync(installCommand, {\n cwd: options.cwd,\n stdio: options.silent ? 'pipe' : 'inherit',\n });\n installSpinner?.succeed(`Successfully ran \\`${installCommand}\\``);\n } catch (error) {\n installSpinner?.fail(`Error running \\`${installCommand}\\``);\n handleError(error); // Will exit\n return;\n }\n } else if (\n updatedPackages.length > 0 &&\n !options.install &&\n options.yes\n ) {\n logger.info(\n 'Skipping package installation as --install was not provided with --yes.'\n );\n } else if (updatedPackages.length > 0 && !shouldRunInstall) {\n logger.info('Skipping package installation.');\n }\n } else {\n logger.info('Changes to package.json were not applied by user.');\n }\n } else {\n logger.success('All specified packages are already up to date.');\n // Removed redundant logging here as installation prompting is handled above or not applicable\n }\n logger.break();\n}\n\nasync function main() {\n const program = new Command();\n program\n .name('depset')\n .description(\n 'Synchronize package dependencies to their latest or a specific version.'\n )\n .version(\n packageJson.version || '0.1.0',\n '-v, --version',\n 'display the version number'\n )\n .argument(\n '[package-specifier]',\n 'Package name or pattern (e.g., \"@scope/foo*\", \"my-package\", \"@myorg\")'\n )\n .argument(\n '[target-version]',\n 'Target version (e.g., \"1.2.3\") - defaults to latest if omitted'\n )\n .option(\n '-i, --install',\n 'Automatically run install after updating package.json',\n false\n )\n .option('-y, --yes', 'Skip all confirmation prompts', false)\n .option(\n '-c, --cwd <path>',\n 'Set the current working directory',\n process.cwd()\n )\n .option('-s, --silent', 'Silence all output except for errors', false)\n .option(\n '-L, --latest',\n 'Use the latest version, skip version prompt',\n false\n ) // Added --latest option\n .action(async (packageSpecifierArg, targetVersionArg, cliOpts) => {\n try {\n let pkgSpec = packageSpecifierArg;\n let targetVer = targetVersionArg;\n\n if (!pkgSpec && !cliOpts.yes) {\n const response = await prompts({\n type: 'text',\n name: 'packageSpecifier',\n message: 'Enter the package name or pattern to synchronize:',\n validate: (value) =>\n value && value.trim().length > 0\n ? true\n : 'Package specifier cannot be empty.',\n });\n if (!response.packageSpecifier) {\n logger.warn('Package specifier is required. Exiting.');\n return;\n }\n pkgSpec = response.packageSpecifier;\n } else if (!pkgSpec && cliOpts.yes) {\n logger.error('Error: package-specifier is required.');\n process.exit(1);\n }\n\n if (!targetVer && !cliOpts.yes && !cliOpts.latest) {\n // Skip if --latest is used\n const versionResponse = await prompts({\n type: 'text',\n name: 'targetVersion',\n message:\n 'Enter the target version (e.g., \"1.2.3\", or leave blank for latest):',\n });\n targetVer = versionResponse.targetVersion || undefined;\n } else if (cliOpts.latest) {\n targetVer = undefined; // Ensure targetVer is undefined if --latest is used\n }\n\n // Merge CLI options with defaults from schema for parsing\n const rawOptions = {\n packageSpecifier: pkgSpec,\n targetVersion: targetVer,\n install: cliOpts.install,\n yes: cliOpts.yes,\n cwd: cliOpts.cwd,\n silent: cliOpts.silent,\n latest: cliOpts.latest, // Added latest to rawOptions\n };\n const options = DepSyncOptionsSchema.parse(rawOptions);\n if (options.silent) {\n // Suppress non-error console logs if silent is true\n logger.info = () => {};\n logger.success = () => {};\n logger.warn = () => {};\n logger.log = () => {};\n logger.break = () => {};\n }\n await runSync(options);\n } catch (error) {\n // Ensure logger still works for handleError even if silenced\n const originalLogger = { ...logger };\n if (cliOpts.silent) {\n logger.error = console.error; // Fallback for errors\n logger.break = () => console.log('');\n }\n handleError(error);\n // Restore logger if it was modified\n if (cliOpts.silent) {\n Object.assign(logger, originalLogger);\n }\n }\n });\n\n await program.parseAsync(process.argv);\n}\n\nmain();\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lofcz/depset",
3
- "version": "0.1.1",
3
+ "version": "53.4.10",
4
4
  "description": "Synchronize dependencies in package.json",
5
5
  "keywords": [
6
6
  "dependencies",