Added better formatting for cli package and updated versions to match workspace

This commit is contained in:
Nate Kelley 2025-09-05 11:39:43 -06:00
parent 01130b9d7d
commit 55d873ee2d
No known key found for this signature in database
GPG Key ID: FD90372AB8D98B4F
25 changed files with 167 additions and 451 deletions

View File

@ -33,9 +33,9 @@
"ink-gradient": "^3.0.0", "ink-gradient": "^3.0.0",
"ink-spinner": "^5.0.0", "ink-spinner": "^5.0.0",
"ink-text-input": "^6.0.0", "ink-text-input": "^6.0.0",
"js-yaml": "^4.1.0", "js-yaml": "catalog:",
"micromatch": "^4.0.8", "micromatch": "^4.0.8",
"react": "^19.1.1", "react": "catalog:",
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
@ -43,11 +43,9 @@
"@buster/env-utils": "workspace:*", "@buster/env-utils": "workspace:*",
"@buster/typescript-config": "workspace:*", "@buster/typescript-config": "workspace:*",
"@buster/vitest-config": "workspace:*", "@buster/vitest-config": "workspace:*",
"@types/bun": "^1.2.21", "@types/js-yaml": "catalog:",
"@types/js-yaml": "^4.0.9",
"@types/micromatch": "^4.0.9", "@types/micromatch": "^4.0.9",
"@types/node": "^22.10.5", "@types/react": "catalog:",
"@types/react": "^19.1.12",
"ink-testing-library": "^4.0.0", "ink-testing-library": "^4.0.0",
"react-devtools-core": "^6.1.5", "react-devtools-core": "^6.1.5",
"tsx": "catalog:" "tsx": "catalog:"

View File

@ -2,11 +2,10 @@ import { createBusterSDK } from '@buster/sdk';
import { Box, Text, useApp, useInput } from 'ink'; import { Box, Text, useApp, useInput } from 'ink';
import Spinner from 'ink-spinner'; import Spinner from 'ink-spinner';
import TextInput from 'ink-text-input'; import TextInput from 'ink-text-input';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { import {
type Credentials, type Credentials,
deleteCredentials, deleteCredentials,
getCredentials,
loadCredentials, loadCredentials,
saveCredentials, saveCredentials,
} from '../utils/credentials.js'; } from '../utils/credentials.js';

View File

@ -1,6 +1,5 @@
import { Box, Text } from 'ink'; import { Box, Text } from 'ink';
import Spinner from 'ink-spinner'; import Spinner from 'ink-spinner';
import React from 'react';
interface DeployProgressProps { interface DeployProgressProps {
current: number; current: number;

View File

@ -1,5 +1,4 @@
import { Box, Text } from 'ink'; import { Box, Text } from 'ink';
import React from 'react';
import type { CLIDeploymentResult } from '../schemas'; import type { CLIDeploymentResult } from '../schemas';
interface DeploySummaryProps { interface DeploySummaryProps {

View File

@ -3,7 +3,7 @@ import { tmpdir } from 'node:os';
import { join } from 'node:path'; import { join } from 'node:path';
import yaml from 'js-yaml'; import yaml from 'js-yaml';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import type { BusterConfig, ProjectContext } from '../schemas'; import type { BusterConfig } from '../schemas';
import { loadBusterConfig, resolveConfiguration } from './config-loader'; import { loadBusterConfig, resolveConfiguration } from './config-loader';
describe('config-loader', () => { describe('config-loader', () => {

View File

@ -1,12 +1,11 @@
import { existsSync } from 'node:fs'; import { existsSync } from 'node:fs';
import { readdir, readFile, stat } from 'node:fs/promises'; import { readdir, readFile, stat } from 'node:fs/promises';
import { join, relative, resolve } from 'node:path'; import { join, resolve } from 'node:path';
import yaml from 'js-yaml'; import yaml from 'js-yaml';
import { import {
type BusterConfig, type BusterConfig,
BusterConfigSchema, BusterConfigSchema,
type DeployOptions, type DeployOptions,
type ProjectContext,
type ResolvedConfig, type ResolvedConfig,
ResolvedConfigSchema, ResolvedConfigSchema,
} from '../schemas'; } from '../schemas';

View File

@ -4,7 +4,7 @@ import { join } from 'node:path';
import yaml from 'js-yaml'; import yaml from 'js-yaml';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { deployHandler, validateDeployOptions } from './deploy-handler'; import { deployHandler, validateDeployOptions } from './deploy-handler';
import type { BusterConfig, DeployOptions, DeployRequest, DeployResponse, Model } from './schemas'; import type { BusterConfig, DeployOptions, DeployRequest, DeployResponse } from './schemas';
import { isDeploymentValidationError } from './utils/errors'; import { isDeploymentValidationError } from './utils/errors';
// Mock the deployment strategies module // Mock the deployment strategies module

View File

@ -1,7 +1,6 @@
import { relative, resolve } from 'node:path'; import { relative, resolve } from 'node:path';
import { getConfigBaseDir, loadBusterConfig, resolveConfiguration } from './config/config-loader'; import { getConfigBaseDir, loadBusterConfig, resolveConfiguration } from './config/config-loader';
import { import {
createParseFailures,
formatDeploymentSummary, formatDeploymentSummary,
mergeDeploymentResults, mergeDeploymentResults,
processDeploymentResponse, processDeploymentResponse,

View File

@ -1,5 +1,5 @@
import { Box, Text } from 'ink'; import { Box, Text } from 'ink';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { BusterBanner } from '../../components/banner'; import { BusterBanner } from '../../components/banner';
import { Spinner } from '../../components/spinner'; import { Spinner } from '../../components/spinner';
import { DeployProgress } from './components/deploy-progress'; import { DeployProgress } from './components/deploy-progress';

View File

@ -1,5 +1,5 @@
import { relative } from 'node:path'; import { relative } from 'node:path';
import type { CLIDeploymentResult, DeploymentExcluded, DeployResponse, Model } from '../schemas'; import type { CLIDeploymentResult, DeployResponse, Model } from '../schemas';
/** /**
* Pure function to merge multiple deployment results into one * Pure function to merge multiple deployment results into one

View File

@ -1,5 +1,4 @@
import { render } from 'ink-testing-library'; import { render } from 'ink-testing-library';
import React from 'react';
import { describe, expect, it } from 'vitest'; import { describe, expect, it } from 'vitest';
import { HelloCommand } from './hello'; import { HelloCommand } from './hello';

View File

@ -4,7 +4,7 @@ import { createBusterSDK } from '@buster/sdk';
import { Box, Text, useApp, useInput } from 'ink'; import { Box, Text, useApp, useInput } from 'ink';
import Spinner from 'ink-spinner'; import Spinner from 'ink-spinner';
import TextInput from 'ink-text-input'; import TextInput from 'ink-text-input';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { BusterBanner } from '../components/banner.js'; import { BusterBanner } from '../components/banner.js';
import { type Credentials, getCredentials, saveCredentials } from '../utils/credentials.js'; import { type Credentials, getCredentials, saveCredentials } from '../utils/credentials.js';

View File

@ -2,14 +2,9 @@ import { createBusterSDK } from '@buster/sdk';
import { Box, render, Text, useApp, useInput } from 'ink'; import { Box, render, Text, useApp, useInput } from 'ink';
import Spinner from 'ink-spinner'; import Spinner from 'ink-spinner';
import TextInput from 'ink-text-input'; import TextInput from 'ink-text-input';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { BusterBanner } from '../components/banner.js'; import { BusterBanner } from '../components/banner.js';
import { import { type Credentials, getCredentials, saveCredentials } from '../utils/credentials.js';
type Credentials,
getCredentials,
hasCredentials,
saveCredentials,
} from '../utils/credentials.js';
import { DeployCommand } from './deploy/deploy.js'; import { DeployCommand } from './deploy/deploy.js';
import { DeployOptionsSchema } from './deploy/schemas.js'; import { DeployOptionsSchema } from './deploy/schemas.js';
import { InitCommand } from './init.js'; import { InitCommand } from './init.js';

View File

@ -1,5 +1,5 @@
import { Box, Text, useApp } from 'ink'; import { Box, Text, useApp } from 'ink';
import React, { useEffect } from 'react'; import { useEffect } from 'react';
import { AnimatedLogo } from '../components/animated-logo.js'; import { AnimatedLogo } from '../components/animated-logo.js';
export function Welcome() { export function Welcome() {

View File

@ -1,5 +1,5 @@
import { Box, Text } from 'ink'; import { Box, Text } from 'ink';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
// ASCII art for the Buster "b" logo - compact version // ASCII art for the Buster "b" logo - compact version
const BUSTER_LOGO_FRAMES = [ const BUSTER_LOGO_FRAMES = [

View File

@ -1,6 +1,5 @@
import { Box, Text } from 'ink'; import { Box, Text } from 'ink';
import BigText from 'ink-big-text'; import BigText from 'ink-big-text';
import React from 'react';
interface BannerProps { interface BannerProps {
showSubtitle?: boolean; showSubtitle?: boolean;

View File

@ -1,5 +1,5 @@
import { Text } from 'ink'; import { Text } from 'ink';
import React, { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
interface SpinnerProps { interface SpinnerProps {
label?: string; label?: string;

View File

@ -1,7 +1,6 @@
#!/usr/bin/env bun #!/usr/bin/env bun
import { program } from 'commander'; import { program } from 'commander';
import { render } from 'ink'; import { render } from 'ink';
import React from 'react';
import { Auth } from './commands/auth.js'; import { Auth } from './commands/auth.js';
import { DeployCommand } from './commands/deploy/deploy.js'; import { DeployCommand } from './commands/deploy/deploy.js';
import { DeployOptionsSchema } from './commands/deploy/schemas.js'; import { DeployOptionsSchema } from './commands/deploy/schemas.js';

View File

@ -7,10 +7,6 @@
"jsx": "react", "jsx": "react",
"jsxFactory": "React.createElement", "jsxFactory": "React.createElement",
"jsxFragmentFactory": "React.Fragment", "jsxFragmentFactory": "React.Fragment",
"module": "ESNext",
"target": "ES2022",
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"types": ["bun", "node"] "types": ["bun", "node"]
}, },
"include": ["src/**/*", "env.d.ts"], "include": ["src/**/*", "env.d.ts"],

View File

@ -1,5 +1,5 @@
{ {
"$schema": "https://biomejs.dev/schemas/2.2.2/schema.json", "$schema": "https://biomejs.dev/schemas/2.2.3/schema.json",
"files": { "files": {
"ignoreUnknown": false, "ignoreUnknown": false,
"includes": [ "includes": [

View File

@ -28,12 +28,6 @@
"typecheck": "cross-env NODE_OPTIONS=--max-old-space-size=8192 tsc --noEmit", "typecheck": "cross-env NODE_OPTIONS=--max-old-space-size=8192 tsc --noEmit",
"typecheck:watch": "tsc --noEmit --watch" "typecheck:watch": "tsc --noEmit --watch"
}, },
"peerDependencies": {
"@types/react": "^19.1.10",
"@types/react-dom": "^19.1.7",
"react": "^19.1.1",
"react-dom": "^19.1.1"
},
"dependencies": { "dependencies": {
"@ariakit/react": "^0.4.18", "@ariakit/react": "^0.4.18",
"@buster/server-shared": "workspace:*", "@buster/server-shared": "workspace:*",
@ -144,7 +138,7 @@
"framer-motion": "^12.23.12", "framer-motion": "^12.23.12",
"html2canvas-pro": "^1.5.11", "html2canvas-pro": "^1.5.11",
"js-cookie": "^3.0.5", "js-cookie": "^3.0.5",
"js-yaml": "^4.1.0", "js-yaml": "catalog:",
"jwt-decode": "^4.0.0", "jwt-decode": "^4.0.0",
"ky": "^1.10.0", "ky": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
@ -156,12 +150,12 @@
"platejs": "49.2.21", "platejs": "49.2.21",
"pluralize": "^8.0.0", "pluralize": "^8.0.0",
"posthog-js": "^1.261.7", "posthog-js": "^1.261.7",
"react": "^19.1.1", "react": "catalog:",
"react-colorful": "^5.6.1", "react-colorful": "^5.6.1",
"react-day-picker": "^8.10.1", "react-day-picker": "^8.10.1",
"react-dnd": "^16.0.1", "react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1", "react-dnd-html5-backend": "^16.0.1",
"react-dom": "^19.1.1", "react-dom": "catalog:",
"react-error-boundary": "^6.0.0", "react-error-boundary": "^6.0.0",
"react-hotkeys-hook": "^5.1.0", "react-hotkeys-hook": "^5.1.0",
"react-lite-youtube-embed": "^2.5.6", "react-lite-youtube-embed": "^2.5.6",
@ -187,7 +181,7 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.2.2", "@biomejs/biome": "2.2.3",
"@chromatic-com/storybook": "^4.1.1", "@chromatic-com/storybook": "^4.1.1",
"@storybook/addon-a11y": "^9.1.4", "@storybook/addon-a11y": "^9.1.4",
"@storybook/addon-docs": "^9.1.4", "@storybook/addon-docs": "^9.1.4",
@ -199,11 +193,11 @@
"@testing-library/react": "^16.3.0", "@testing-library/react": "^16.3.0",
"@types/canvas-confetti": "^1.9.0", "@types/canvas-confetti": "^1.9.0",
"@types/js-cookie": "^3.0.6", "@types/js-cookie": "^3.0.6",
"@types/js-yaml": "^4.0.9", "@types/js-yaml": "catalog:",
"@types/lodash": "^4.17.20", "@types/lodash": "^4.17.20",
"@types/pluralize": "^0.0.33", "@types/pluralize": "^0.0.33",
"@types/react": "^19.1.12", "@types/react": "catalog:",
"@types/react-dom": "^19.1.9", "@types/react-dom": "catalog:",
"@vitejs/plugin-react": "^5.0.2", "@vitejs/plugin-react": "^5.0.2",
"@vitest/browser": "3.2.4", "@vitest/browser": "3.2.4",
"@vitest/coverage-v8": "3.2.4", "@vitest/coverage-v8": "3.2.4",

View File

@ -56,7 +56,7 @@
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^1.9.4", "@biomejs/biome": "^1.9.4",
"@types/node": "^22.0.0", "@types/node": "^22.11.0",
"tsx": "catalog:", "tsx": "catalog:",
"turbo": "^2.5.6", "turbo": "^2.5.6",
"vitest": "catalog:" "vitest": "catalog:"

View File

@ -35,7 +35,6 @@
"zod": "catalog:" "zod": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^20.11.0",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"vitest": "catalog:" "vitest": "catalog:"
} }

File diff suppressed because it is too large Load Diff

View File

@ -24,6 +24,12 @@ catalog:
lodash-es: ^4.17.21 lodash-es: ^4.17.21
hono: ^4.9.6 hono: ^4.9.6
pg: ^8.16.3 pg: ^8.16.3
react: ^19.1.1
react-dom: ^19.1.1
'@types/react': ^19.1.12
'@types/react-dom': ^19.1.9
'@types/js-yaml': ^4.0.9
js-yaml: ^4.1.0
tsup: ^8.5.0 tsup: ^8.5.0
tsx: ^4.20.5 tsx: ^4.20.5
uuid: ^11.1.0 uuid: ^11.1.0