Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions packages/react-doctor/src/cli/commands/rules.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import * as path from "node:path";
import { buildRuleDocsUrl, highlighter, validateConfigTypes } from "@react-doctor/core";
import type { ReactDoctorConfig, RuleSeverityOverride } from "@react-doctor/core";
import { validateConfigTypes } from "../../core/core-configuration.js";
import type { ReactDoctorConfig, RuleSeverityOverride } from "../../core/core-configuration.js";
import { highlighter } from "../../core/core-presentation.js";
import { buildRuleDocsUrl } from "../../core/core-product.js";
import { cliLogger as logger } from "../utils/cli-logger.js";
import { METRIC } from "../utils/constants.js";
import { recordCount } from "../utils/record-metric.js";
Expand Down
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Command, Option } from "commander";
import { CANONICAL_GITHUB_URL, CI_URL, highlighter } from "@react-doctor/core";
import { highlighter } from "../core/core-presentation.js";
import { CANONICAL_GITHUB_URL, CI_URL } from "../core/core-product.js";
import { flushSentry, initializeSentry } from "../instrument.js";
import { ciConfigAction, ciInstallAction, ciUpgradeAction } from "./commands/ci.js";
import { designAction } from "./commands/design.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { getCategoryImpact } from "@react-doctor/core";
import { Box, Text } from "ink";
import { getCategoryImpact } from "../../../core/core-presentation.js";
import { useMemo } from "react";
import { buildCodeFrame } from "../../utils/build-code-frame.js";
import { TUI_DETAIL_INDENT_COLUMNS } from "../../utils/constants.js";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import path from "node:path";
import figures from "figures";
import { Box, Text, useInput } from "ink";
import { useMemo, useState } from "react";
import type { WorkspacePackage } from "@react-doctor/core";
import type { WorkspacePackage } from "../../../core/core-types.js";
import {
TUI_PRINTABLE_ASCII_MIN_CODE_POINT,
TUI_PROJECT_SELECT_CHROME_ROWS,
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/ink/components/report.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Box, Text, useInput } from "ink";
import { useEffect, useMemo, useRef } from "react";
import type { ScoreResult } from "@react-doctor/core";
import type { ScoreResult } from "../../../core/core-types.js";
import type { CliAgentId } from "../../utils/launch-agent.js";
import {
METRIC,
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/ink/components/scanning.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Box, Text } from "ink";
import Spinner from "ink-spinner";
import type { Diagnostic as LiveDiagnostic } from "@react-doctor/core/schemas";
import type { LiveDiagnostic } from "../../../core/core-reporting.js";
import { formatDiagnosticSite } from "../../utils/format-diagnostic-site.js";
import { severityVariant } from "../lib/severity-variants.js";

Expand Down
5 changes: 3 additions & 2 deletions packages/react-doctor/src/cli/ink/components/score-header.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Box, Text, useStdout } from "ink";
import { useMemo } from "react";
import { PERFECT_SCORE, SCORE_BAR_WIDTH_CHARS, TOP_ERRORS_DISPLAY_COUNT } from "@react-doctor/core";
import type { ScoreResult } from "@react-doctor/core";
import { SCORE_BAR_WIDTH_CHARS } from "../../../core/core-presentation.js";
import { PERFECT_SCORE, TOP_ERRORS_DISPLAY_COUNT } from "../../../core/core-score.js";
import type { ScoreResult } from "../../../core/core-types.js";
import { doctorFace } from "../../utils/doctor-face.js";
import {
TUI_HORIZONTAL_PADDING_COLUMNS,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DIAGNOSTIC_CATEGORY_BUCKETS } from "@react-doctor/core";
import { DIAGNOSTIC_CATEGORY_BUCKETS } from "../../../core/core-diagnostic-semantics.js";
import type { DiagnosticRow } from "./diagnostic-rows.js";

export interface DiagnosticHeaderEntry {
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/ink/lib/diagnostic-rows.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Diagnostic, ScoreResult } from "@react-doctor/core";
import type { Diagnostic, ScoreResult } from "../../../core/core-types.js";
import {
buildRulePriorityMap,
buildSortedRuleGroups,
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/ink/lib/score-color.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "@react-doctor/core";
import { SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "../../../core/core-score.js";

export const scoreColorName = (score: number): string => {
if (score >= SCORE_GOOD_THRESHOLD) return "green";
Expand Down
4 changes: 2 additions & 2 deletions packages/react-doctor/src/cli/ink/scan-bridge-layers.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import { Progress, Reporter } from "@react-doctor/core";
import type { ProgressHandle } from "@react-doctor/core";
import { Progress, Reporter } from "../../core/core-runtime.js";
import type { ProgressHandle } from "../../core/core-types.js";
import type { ScanStore } from "./scan-store.js";

export const reporterLayerForStore = (store: ScanStore): Layer.Layer<Reporter> =>
Expand Down
4 changes: 2 additions & 2 deletions packages/react-doctor/src/cli/ink/scan-store.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Diagnostic, ScoreResult } from "@react-doctor/core";
import type { Diagnostic, ScoreResult } from "../../core/core-types.js";
// The live feed carries diagnostics exactly as `Reporter.emit` produces them
// (the schema class), which differs from the index `Diagnostic` type only in
// nested-array readonly-ness. The settled `report` keeps the index type.
import type { Diagnostic as LiveDiagnostic } from "@react-doctor/core/schemas";
import type { LiveDiagnostic } from "../../core/core-reporting.js";

import { TUI_LIVE_FEED_MAX_ENTRIES } from "../utils/constants.js";
import type { CliAgentId } from "../utils/launch-agent.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { setColorEnabled } from "@react-doctor/core";
import { setColorEnabled } from "../../core/core-presentation.js";

/**
* Resolve an explicit color preference from `--color` / `--no-color` or the
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/apply-observability.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as Sentry from "@sentry/node";
import * as Effect from "effect/Effect";
import * as Tracer from "effect/Tracer";
import { layerOtlp } from "@react-doctor/core";
import { layerOtlp } from "../../core/core-runtime.js";
import { TRACE_FLAG_SAMPLED } from "./constants.js";
import { makeSentryTracer } from "./sentry-tracer.js";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { GITHUB_ACTIONS_SETUP_URL, highlighter } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";
import { GITHUB_ACTIONS_SETUP_URL } from "../../core/core-product.js";
import { cliLogger as logger } from "./cli-logger.js";
import { CI_TRUST_COMPANIES } from "./constants.js";
import { openUrl } from "./open-url.js";
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/box-text.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { highlighter } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";

// The ANSI escape introducer (built from its char code so the SGR patterns
// below don't embed a control character in a regex literal).
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/build-code-frame.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
CODE_FRAME_LINES_ABOVE,
CODE_FRAME_LINES_BELOW,
CODE_FRAME_MAX_LINE_LENGTH_CHARS,
} from "@react-doctor/core";
} from "../../core/core-presentation.js";
import { resolveAbsolutePath } from "./resolve-absolute-path.js";

interface CodeFrameInput {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CANONICAL_GITHUB_URL } from "@react-doctor/core";
import type { Diagnostic } from "@react-doctor/core";
import { CANONICAL_GITHUB_URL } from "../../core/core-product.js";
import type { Diagnostic } from "../../core/core-types.js";

interface BuildDiagnosticIssueUrlInput {
readonly diagnostic: Diagnostic;
Expand Down
4 changes: 2 additions & 2 deletions packages/react-doctor/src/cli/utils/build-handoff-payload.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { TOP_ERRORS_DISPLAY_COUNT } from "@react-doctor/core";
import type { Diagnostic } from "@react-doctor/core";
import { TOP_ERRORS_DISPLAY_COUNT } from "../../core/core-score.js";
import type { Diagnostic } from "../../core/core-types.js";
import { HANDOFF_MAX_FILES_PER_RULE } from "./constants.js";
import {
buildSortedRuleGroups,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ENTERPRISE_CONTACT_URL } from "@react-doctor/core";
import { ENTERPRISE_CONTACT_URL } from "../../core/core-product.js";

const ENTERPRISE_CONTACT_HINT = `Want something custom to your company? Contact us at ${ENTERPRISE_CONTACT_URL}.`;

Expand Down
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/utils/build-run-context.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { resolveLintBatchOrdering, scrubSensitivePaths } from "@react-doctor/core";
import { scrubSensitivePaths } from "../../core/core-primitives.js";
import { resolveLintBatchOrdering } from "../../core/core-scan-cache.js";
import { detectTerminalKind } from "./detect-terminal-kind.js";
import {
detectCiEventName,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { highlighter } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";
import { resolveMeasureWidth } from "./resolve-measure-width.js";

const DIVIDER_INDENT = " ";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ProjectInfo } from "@react-doctor/core";
import type { ProjectInfo } from "../../core/core-types.js";

export interface SentryProjectContext {
// Low-cardinality, searchable signals (framework, React major, capabilities)
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/ci/ci-provider.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { BlockingLevel, ScopeValue } from "@react-doctor/core";
import type { BlockingLevel, ScopeValue } from "../../../core/core-types.js";

// One CI backend React Doctor can scaffold and manage. GitHub Actions is the
// fully supported provider; GitLab CI is a gate-only scaffold (no PR-opening,
Expand Down
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/utils/ci/manage-ci.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as path from "node:path";
import * as fs from "node:fs";
import { CI_URL, GITHUB_ACTIONS_SETUP_URL, highlighter } from "@react-doctor/core";
import { highlighter } from "../../../core/core-presentation.js";
import { CI_URL, GITHUB_ACTIONS_SETUP_URL } from "../../../core/core-product.js";
import { cliLogger as logger } from "../cli-logger.js";
import { METRIC } from "../constants.js";
import { detectDefaultBranch } from "../detect-default-branch.js";
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/cli-logger.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as Console from "effect/Console";
import * as Effect from "effect/Effect";
import { highlighter } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";

/**
* Thin synchronous façade over Effect's `Console` module. Used by
Expand Down
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/utils/cli-migrations.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { findLegacyConfig, toRelativePath } from "@react-doctor/core";
import { findLegacyConfig } from "../../core/core-configuration.js";
import { toRelativePath } from "../../core/core-primitives.js";
import { cliLogger as logger } from "./cli-logger.js";
import { type CliStateOptions } from "./cli-state-store.js";
import { type Migration, type MigrationResult, runMigrations } from "./cli-lifecycle.js";
Expand Down
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/utils/colorize-by-score.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { highlighter, SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";
import { SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "../../core/core-score.js";

export const colorizeByScore = (text: string, score: number): string => {
if (score >= SCORE_GOOD_THRESHOLD) return highlighter.success(text);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { calculateScore, TOP_ERRORS_DISPLAY_COUNT } from "@react-doctor/core";
import type { Diagnostic, ScoreResult } from "@react-doctor/core";
import { calculateScore, TOP_ERRORS_DISPLAY_COUNT } from "../../core/core-score.js";
import type { Diagnostic, ScoreResult } from "../../core/core-types.js";
import { buildRulePriorityMap } from "./diagnostic-grouping.js";
import { getTopErrorRuleKeys } from "./render-diagnostics.js";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { InspectResult } from "@react-doctor/core";
import type { InspectResult } from "../../core/core-types.js";

export const countUniqueScannedFiles = (results: ReadonlyArray<InspectResult>): number => {
const uniqueScannedFilePaths = new Set<string>();
Expand Down
8 changes: 4 additions & 4 deletions packages/react-doctor/src/cli/utils/diagnostic-grouping.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import {
buildRuleDocsUrl,
groupBy,
hasPublishedFixRecipe,
MIGRATION_SCALE_RULE_FILE_COUNT,
MIN_SHARED_FIX_SITE_COUNT,
} from "@react-doctor/core";
import type { Diagnostic, ScoreResult } from "@react-doctor/core";
} from "../../core/core-presentation.js";
import { groupBy } from "../../core/core-diagnostic-semantics.js";
import { buildRuleDocsUrl } from "../../core/core-product.js";
import type { Diagnostic, ScoreResult } from "../../core/core-types.js";

// Ordering / formatting helpers shared by the diagnostics renderer, the
// agent-handoff payload builder, and the on-disk diagnostics writer — so
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Diagnostic } from "@react-doctor/core";
import type { Diagnostic } from "../../core/core-types.js";

export const diagnosticIntersectsLineRanges = (
diagnostic: Diagnostic,
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/doctor-face.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "@react-doctor/core";
import { SCORE_GOOD_THRESHOLD, SCORE_OK_THRESHOLD } from "../../core/core-score.js";

export const doctorFace = (score: number): readonly [string, string] => {
if (score >= SCORE_GOOD_THRESHOLD) return ["◠ ◠", " ▽ "];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { Diagnostic } from "@react-doctor/core";
import type { Diagnostic } from "../../core/core-types.js";

export const filterDiagnosticsByCategories = (
diagnostics: ReadonlyArray<Diagnostic>,
Expand Down
4 changes: 3 additions & 1 deletion packages/react-doctor/src/cli/utils/get-staged-files.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import { Git, StagedFiles, messageFromUnknown, type StagedSnapshot } from "@react-doctor/core";
import { messageFromUnknown } from "../../core/core-errors.js";
import { Git, StagedFiles } from "../../core/core-runtime.js";
import type { StagedSnapshot } from "../../core/core-types.js";
import { cliLogger } from "./cli-logger.js";

const stagedFilesLayer = StagedFiles.layerNode.pipe(Layer.provide(Git.layerNode));
Expand Down
4 changes: 2 additions & 2 deletions packages/react-doctor/src/cli/utils/handoff-to-agent.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as fs from "node:fs";
import { getSkillAgentConfig } from "agent-install";
import type { Diagnostic } from "@react-doctor/core";
import { highlighter } from "@react-doctor/core";
import type { Diagnostic } from "../../core/core-types.js";
import { highlighter } from "../../core/core-presentation.js";
import { buildHandoffPayload } from "./build-handoff-payload.js";
import { cliLogger as logger } from "./cli-logger.js";
import { detectLaunchableAgents } from "./detect-launchable-agents.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { InspectResult } from "@react-doctor/core";
import type { InspectResult } from "../../core/core-types.js";

// `skippedChecks` carries "lint" only when the whole lint pass failed
// (`didLintFail` in core's `build-skipped-checks`): an engine, plugin, or
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/install-agent-hooks.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as path from "node:path";
import type { SkillAgentType } from "agent-install";
import { isErrnoException } from "@react-doctor/core";
import { isErrnoException } from "../../core/core-errors.js";
import { AGENT_HOOK_TIMEOUT_SECONDS } from "./constants.js";
import * as fs from "node:fs";
import { CliInputError } from "./cli-input-error.js";
Expand Down
3 changes: 0 additions & 3 deletions packages/react-doctor/src/cli/utils/install-git-hook-file.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import * as fs from "node:fs";
import {
ensureTrailingNewline,
LEGACY_HOOK_RUNNER_RELATIVE_PATH,
NON_BLOCKING_REACT_DOCTOR_COMMAND,
REACT_DOCTOR_COMMAND,
runGit,
} from "./git-hook-shared.js";
Expand Down Expand Up @@ -129,5 +128,3 @@ export const installDirectGitHook = (options: InstallGitHookOptions): InstallGit
status: didHookExist ? "updated" : "created",
};
};

export { NON_BLOCKING_REACT_DOCTOR_COMMAND, REACT_DOCTOR_COMMAND };
3 changes: 2 additions & 1 deletion packages/react-doctor/src/cli/utils/install-react-doctor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import {
SKILL_MANIFEST_FILE,
type SkillAgentType,
} from "agent-install";
import { highlighter, SKILL_NAME } from "@react-doctor/core";
import { highlighter } from "../../core/core-presentation.js";
import { SKILL_NAME } from "../../core/core-product.js";
import { cliLogger as logger } from "./cli-logger.js";
import { computeDefaultSelectedAgents, detectAvailableAgents } from "./detect-agents.js";
import { readInstallAgents, rememberInstallAgents } from "./install-agents-preference.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { isErrnoException, messageFromUnknown } from "@react-doctor/core";
import { isErrnoException, messageFromUnknown } from "../../core/core-errors.js";

// Filesystem conditions React Doctor cannot fix: a full or read-only disk, a
// failing disk, denied permissions, or a path blocked by an existing file.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { isProjectDiscoveryError, isReactDoctorError } from "@react-doctor/core";
import { isProjectDiscoveryError, isReactDoctorError } from "../../core/core-errors.js";
import { CliInputError } from "./cli-input-error.js";
import { isEnvironmentError } from "./is-environment-error.js";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { isScanComplete } from "@react-doctor/core";
import type { InspectResult } from "@react-doctor/core";
import { isScanComplete } from "../../core/core-reporting.js";
import type { InspectResult } from "../../core/core-types.js";

export const isInspectResultComplete = (result: InspectResult): boolean =>
isScanComplete({
Expand Down
2 changes: 1 addition & 1 deletion packages/react-doctor/src/cli/utils/is-share-opted-out.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { ReactDoctorConfig } from "@react-doctor/core";
import type { ReactDoctorConfig } from "../../core/core-configuration.js";

// A scanned project as the aggregate share gate sees it: only its merged
// (root + module) config matters.
Expand Down
4 changes: 2 additions & 2 deletions packages/react-doctor/src/cli/utils/json-mode.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { performance } from "node:perf_hooks";
import * as fs from "node:fs";
import * as path from "node:path";
import { buildJsonReportError } from "@react-doctor/core";
import type { JsonReport, JsonReportMode } from "@react-doctor/core";
import { buildJsonReportError } from "../../core/core-reporting.js";
import type { JsonReport, JsonReportMode } from "../../core/core-reporting.js";
import { INTERNAL_ERROR_JSON_FALLBACK } from "./constants.js";
import { makeNoopConsole } from "./noop-console.js";
import { VERSION } from "./version.js";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as Effect from "effect/Effect";
import { Git } from "../../core/core-runtime.js";
import type { MaterializedTree } from "../../core/core-types.js";
import {
GIT_SHOW_MAX_BUFFER_BYTES,
Git,
type MaterializedTree,
materializeSourceTree,
} from "@react-doctor/core";
} from "../../core/core-version-control.js";
import { isMaterializableGitSource } from "./is-materializable-git-source.js";

export interface BaselineMaterializedTree extends MaterializedTree {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as path from "node:path";
import type { LegacyConfigLocation } from "@react-doctor/core";
import type { LegacyConfigLocation } from "../../core/core-types.js";
import { readObjectFile } from "./read-object-file.js";
import { serializeTsObjectLiteral } from "./serialize-ts-object-literal.js";
import * as fs from "node:fs";
Expand Down
4 changes: 1 addition & 3 deletions packages/react-doctor/src/cli/utils/onboarding-state.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { type CliStateOptions, ONBOARDING_EVENT, getCliStatePath } from "./cli-state-store.js";
import { type CliStateOptions, ONBOARDING_EVENT } from "./cli-state-store.js";
import { type Gate, isGatePending, recordGate } from "./cli-lifecycle.js";

// The first-run onboarding reveal, expressed as a global gate: it fires once
Expand All @@ -7,8 +7,6 @@ import { type Gate, isGatePending, recordGate } from "./cli-lifecycle.js";
// machinery supports both with no other change.
export const ONBOARDING_GATE: Gate = { id: ONBOARDING_EVENT, scope: "global" };

export const getOnboardingConfigPath = getCliStatePath;

// `isGatePending` defaults to "not pending" on an unreadable store, so this
// fails safe to "already onboarded" — a broken config dir never replays the
// reveal.
Expand Down
Loading
Loading