@c15t/cli 2.0.0-rc.5 → 2.0.0-rc.8
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/README.md +1 -1
- package/dist/145.mjs +7401 -0
- package/dist/generate-files.mjs +1771 -0
- package/dist/index.mjs +1 -6311
- package/dist-types/auth/base-url.d.ts +1 -1
- package/dist-types/auth/config-store.d.ts +2 -2
- package/dist-types/auth/types.d.ts +1 -1
- package/dist-types/commands/codemods/add-stylesheet-imports.d.ts +54 -0
- package/dist-types/commands/generate/prompts/theme.d.ts +1 -1
- package/dist-types/commands/generate/templates/css.d.ts +10 -11
- package/dist-types/commands/generate/templates/shared/components.d.ts +1 -1
- package/dist-types/commands/index.d.ts +1 -1
- package/dist-types/commands/instances/index.d.ts +13 -8
- package/dist-types/commands/self-host/migrate/migrator-result.d.ts +1 -1
- package/dist-types/commands/self-host/migrate/orm-result.d.ts +1 -1
- package/dist-types/commands/self-host/migrate/read-config.d.ts +1 -1
- package/dist-types/commands/shared/stylesheets.d.ts +19 -0
- package/dist-types/constants.d.ts +12 -0
- package/dist-types/context/types.d.ts +3 -1
- package/dist-types/control-plane/client.d.ts +6 -6
- package/dist-types/control-plane/types.d.ts +5 -5
- package/dist-types/core/errors.d.ts +5 -5
- package/dist-types/core/telemetry.d.ts +2 -77
- package/dist-types/machines/generate/machine.d.ts +7 -7
- package/dist-types/types.d.ts +8 -18
- package/dist-types/utils/logger.d.ts +7 -6
- package/dist-types/utils/telemetry.d.ts +61 -117
- package/dist-types/utils/validation.d.ts +2 -2
- package/package.json +14 -14
- package/dist/642.mjs +0 -1804
|
@@ -45,11 +45,11 @@ export declare function isLoggedIn(): Promise<boolean>;
|
|
|
45
45
|
*/
|
|
46
46
|
export declare function getAccessToken(): Promise<string | null>;
|
|
47
47
|
/**
|
|
48
|
-
* Get the selected
|
|
48
|
+
* Get the selected project ID
|
|
49
49
|
*/
|
|
50
50
|
export declare function getSelectedInstanceId(): Promise<string | null>;
|
|
51
51
|
/**
|
|
52
|
-
* Set the selected
|
|
52
|
+
* Set the selected project ID
|
|
53
53
|
*/
|
|
54
54
|
export declare function setSelectedInstanceId(instanceId: string): Promise<void>;
|
|
55
55
|
/**
|
|
@@ -11,7 +11,7 @@ export interface C15tConfig {
|
|
|
11
11
|
refreshToken?: string;
|
|
12
12
|
/** Token expiration timestamp (unix ms) */
|
|
13
13
|
expiresAt?: number;
|
|
14
|
-
/** Currently selected
|
|
14
|
+
/** Currently selected project ID */
|
|
15
15
|
selectedInstanceId?: string;
|
|
16
16
|
/** Last login timestamp */
|
|
17
17
|
lastLogin?: number;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface CodemodRunOptions {
|
|
2
|
+
/**
|
|
3
|
+
* Absolute or relative project root to scan for source files.
|
|
4
|
+
*/
|
|
5
|
+
projectRoot: string;
|
|
6
|
+
/**
|
|
7
|
+
* Whether to skip saving transformed files.
|
|
8
|
+
*/
|
|
9
|
+
dryRun: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Result summary for a codemod run.
|
|
13
|
+
*/
|
|
14
|
+
export interface CodemodRunResult {
|
|
15
|
+
/**
|
|
16
|
+
* Number of source files scanned.
|
|
17
|
+
*/
|
|
18
|
+
totalFiles: number;
|
|
19
|
+
/**
|
|
20
|
+
* Per-file transformation summaries.
|
|
21
|
+
*/
|
|
22
|
+
changedFiles: Array<{
|
|
23
|
+
filePath: string;
|
|
24
|
+
operations: number;
|
|
25
|
+
summaries: string[];
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Non-fatal per-file transform errors.
|
|
29
|
+
*/
|
|
30
|
+
errors: Array<{
|
|
31
|
+
filePath: string;
|
|
32
|
+
error: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Runs the add-stylesheet-imports codemod across project source files.
|
|
37
|
+
*
|
|
38
|
+
* Detects whether the project uses styled c15t UI components and adds the
|
|
39
|
+
* required CSS import(s) to the appropriate root entrypoint file.
|
|
40
|
+
*
|
|
41
|
+
* @param options Codemod execution options.
|
|
42
|
+
* @returns Summary with changed files and non-fatal per-file errors.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const result = await runAddStylesheetImportsCodemod({
|
|
47
|
+
* projectRoot: process.cwd(),
|
|
48
|
+
* dryRun: true,
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @throws Propagates unexpected setup failures such as directory traversal errors.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runAddStylesheetImportsCodemod(options: CodemodRunOptions): Promise<CodemodRunResult>;
|
|
@@ -42,4 +42,4 @@ export declare function generateThemeConfig(theme: ThemeId): string;
|
|
|
42
42
|
/**
|
|
43
43
|
* Generate CSS import for theme
|
|
44
44
|
*/
|
|
45
|
-
export declare function getThemeCssImport(theme: ThemeId): string | null;
|
|
45
|
+
export declare function getThemeCssImport(theme: ThemeId, framework?: 'react' | 'nextjs'): string | null;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}>;
|
|
1
|
+
import { type EnsureGlobalCssStylesheetImportsResult, type StyledPackageName } from '../../shared/stylesheets';
|
|
2
|
+
export interface UpdateAppStylesheetImportsOptions {
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
packageName: Exclude<StyledPackageName, '@c15t/ui'>;
|
|
5
|
+
tailwindVersion: string | null;
|
|
6
|
+
entrypointPath?: string | null;
|
|
7
|
+
dryRun?: boolean;
|
|
8
|
+
includeIab?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function updateAppStylesheetImports(options: UpdateAppStylesheetImportsOptions): Promise<EnsureGlobalCssStylesheetImportsResult>;
|
|
@@ -17,7 +17,7 @@ interface GenerateConsentComponentOptions {
|
|
|
17
17
|
defaultExport?: boolean;
|
|
18
18
|
/** Whether to add ssrData prop passed inside options object (App Dir client with SSR) */
|
|
19
19
|
ssrDataOption?: boolean;
|
|
20
|
-
/** Whether to add geo override for development
|
|
20
|
+
/** Whether to add geo override for development */
|
|
21
21
|
includeOverrides?: boolean;
|
|
22
22
|
/** Whether to add c15t DevTools component */
|
|
23
23
|
enableDevTools?: boolean;
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
export { authCommands, loginCommand, logoutCommand } from './auth';
|
|
5
5
|
export { codemodsCommand, runCodemods } from './codemods';
|
|
6
6
|
export { generate, generateCommand } from './generate';
|
|
7
|
-
export {
|
|
7
|
+
export { instancesAliasCommand, projectsCommand } from './instances';
|
|
8
8
|
export { selfHost } from './self-host';
|
|
9
9
|
export { installSkills } from './skills';
|
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Project management commands
|
|
3
3
|
*/
|
|
4
|
-
import type { CliCommand, CliContext } from '../../types';
|
|
4
|
+
import type { CliCommand, CliContext } from '../../context/types';
|
|
5
5
|
/**
|
|
6
|
-
* List
|
|
6
|
+
* List projects command
|
|
7
7
|
*/
|
|
8
8
|
declare function listAction(context: CliContext): Promise<void>;
|
|
9
9
|
/**
|
|
10
|
-
* Select
|
|
10
|
+
* Select project command
|
|
11
11
|
*/
|
|
12
12
|
declare function selectAction(context: CliContext): Promise<void>;
|
|
13
13
|
/**
|
|
14
|
-
* Create
|
|
14
|
+
* Create project command
|
|
15
15
|
*/
|
|
16
16
|
declare function createAction(context: CliContext): Promise<void>;
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Main projects command (defaults to list)
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
declare function projectsAction(context: CliContext): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Projects command definition
|
|
23
|
+
*/
|
|
24
|
+
export declare const projectsCommand: CliCommand;
|
|
25
|
+
export declare const instancesAliasCommand: CliCommand;
|
|
26
|
+
export { createAction, listAction, projectsAction, selectAction };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { MigrationResult } from '
|
|
1
|
+
import type { MigrationResult } from '@c15t/backend/db/migrator';
|
|
2
2
|
import type { CliContext } from '../../../context/types';
|
|
3
3
|
export declare function handleMigrationResult(context: CliContext, result: MigrationResult): Promise<void>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ORMResult } from '
|
|
1
|
+
import type { ORMResult } from '@c15t/backend/db/migrator';
|
|
2
2
|
import type { CliContext } from '../../../context/types';
|
|
3
3
|
export declare function handleORMResult(context: CliContext, result: ORMResult): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DB } from '
|
|
1
|
+
import { DB } from '@c15t/backend/db/schema';
|
|
2
2
|
import type { CliContext } from '../../../context/types';
|
|
3
3
|
export declare function readConfigAndGetDb(context: CliContext, absoluteConfigPath: string): Promise<{
|
|
4
4
|
db: ReturnType<typeof DB.client>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type StyledPackageName = '@c15t/react' | '@c15t/nextjs' | '@c15t/ui';
|
|
2
|
+
export interface EnsureGlobalCssStylesheetImportsOptions {
|
|
3
|
+
projectRoot: string;
|
|
4
|
+
packageName: StyledPackageName;
|
|
5
|
+
tailwindVersion: string | null;
|
|
6
|
+
entrypointPath?: string | null;
|
|
7
|
+
includeBase: boolean;
|
|
8
|
+
includeIab: boolean;
|
|
9
|
+
dryRun?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface EnsureGlobalCssStylesheetImportsResult {
|
|
12
|
+
updated: boolean;
|
|
13
|
+
filePath: string | null;
|
|
14
|
+
searchedPaths: string[];
|
|
15
|
+
changes: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare function formatSearchedCssPaths(projectRoot: string, searchedPaths: string[]): string;
|
|
18
|
+
export declare function isTailwindV3(version: string | null): boolean;
|
|
19
|
+
export declare function ensureGlobalCssStylesheetImports(options: EnsureGlobalCssStylesheetImportsOptions): Promise<EnsureGlobalCssStylesheetImportsResult>;
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
export declare const URLS: {
|
|
8
8
|
/** Default c15t cloud platform URL */
|
|
9
9
|
readonly CONSENT_IO: "https://consent.io";
|
|
10
|
+
/** First-party telemetry logs endpoint */
|
|
11
|
+
readonly TELEMETRY: "https://telemetry.c15t.com/c15t/v1/logs";
|
|
10
12
|
/** Documentation website */
|
|
11
13
|
readonly DOCS: "https://v2.c15t.com/docs";
|
|
12
14
|
/** GitHub repository */
|
|
@@ -25,6 +27,10 @@ export declare const PATHS: {
|
|
|
25
27
|
readonly CONFIG_DIR: ".c15t";
|
|
26
28
|
/** Config file name */
|
|
27
29
|
readonly CONFIG_FILE: "config.json";
|
|
30
|
+
/** Telemetry state file name */
|
|
31
|
+
readonly TELEMETRY_STATE_FILE: "telemetry.json";
|
|
32
|
+
/** Telemetry retry queue file name */
|
|
33
|
+
readonly TELEMETRY_QUEUE_FILE: "telemetry-queue.json";
|
|
28
34
|
/** Project config file name */
|
|
29
35
|
readonly PROJECT_CONFIG: "c15t.config.ts";
|
|
30
36
|
/** Alternative project config file name */
|
|
@@ -71,6 +77,12 @@ export declare const ENV_VARS: {
|
|
|
71
77
|
readonly V2: "V2";
|
|
72
78
|
/** Disable telemetry */
|
|
73
79
|
readonly TELEMETRY_DISABLED: "C15T_TELEMETRY_DISABLED";
|
|
80
|
+
/** Override telemetry ingest endpoint */
|
|
81
|
+
readonly TELEMETRY_ENDPOINT: "C15T_TELEMETRY_ENDPOINT";
|
|
82
|
+
/** Optional write key for telemetry ingest */
|
|
83
|
+
readonly TELEMETRY_WRITE_KEY: "C15T_TELEMETRY_WRITE_KEY";
|
|
84
|
+
/** Optional Axiom org ID for telemetry ingest */
|
|
85
|
+
readonly TELEMETRY_ORG_ID: "C15T_TELEMETRY_ORG_ID";
|
|
74
86
|
/** Control-plane/dashboard base URL override */
|
|
75
87
|
readonly CONSENT_URL: "CONSENT_URL";
|
|
76
88
|
/** c15t backend URL */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { C15TOptions } from '
|
|
1
|
+
import type { C15TOptions } from '@c15t/backend/core';
|
|
2
2
|
import type { CliLogger } from '../utils/logger';
|
|
3
3
|
import type { Telemetry } from '../utils/telemetry';
|
|
4
4
|
import type { FrameworkDetectionResult } from './framework-detection';
|
|
@@ -9,6 +9,8 @@ export interface CliCommand {
|
|
|
9
9
|
hint: string;
|
|
10
10
|
description: string;
|
|
11
11
|
action: (context: CliContext) => Promise<void>;
|
|
12
|
+
subcommands?: CliCommand[];
|
|
13
|
+
hidden?: boolean;
|
|
12
14
|
}
|
|
13
15
|
export type FlagType = 'boolean' | 'string' | 'special';
|
|
14
16
|
export interface CliFlag {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Control-plane client for c15t
|
|
2
|
+
* Control-plane client for c15t hosted projects.
|
|
3
3
|
*/
|
|
4
4
|
import type { Instance } from '../types';
|
|
5
5
|
import type { ControlPlaneClientConfig, ControlPlaneConnectionState, ControlPlaneOrganization, ControlPlaneRegion, CreateInstanceRequest } from './types';
|
|
6
6
|
/**
|
|
7
|
-
* Client for c15t
|
|
7
|
+
* Client for c15t hosted projects.
|
|
8
8
|
*
|
|
9
9
|
* Uses direct control-plane HTTP endpoints under /api/v1.
|
|
10
10
|
*/
|
|
@@ -30,19 +30,19 @@ export declare class ControlPlaneClient {
|
|
|
30
30
|
listOrganizations(): Promise<ControlPlaneOrganization[]>;
|
|
31
31
|
listRegions(): Promise<ControlPlaneRegion[]>;
|
|
32
32
|
/**
|
|
33
|
-
* List all
|
|
33
|
+
* List all hosted projects for the authenticated user.
|
|
34
34
|
*/
|
|
35
35
|
listInstances(): Promise<Instance[]>;
|
|
36
36
|
/**
|
|
37
|
-
* Get a specific
|
|
37
|
+
* Get a specific hosted project by ID.
|
|
38
38
|
*/
|
|
39
39
|
getInstance(id: string): Promise<Instance>;
|
|
40
40
|
/**
|
|
41
|
-
* Create a new
|
|
41
|
+
* Create a new hosted project.
|
|
42
42
|
*/
|
|
43
43
|
createInstance(request: CreateInstanceRequest): Promise<Instance>;
|
|
44
44
|
/**
|
|
45
|
-
* Delete
|
|
45
|
+
* Delete a hosted project.
|
|
46
46
|
*/
|
|
47
47
|
deleteInstance(id: string): Promise<void>;
|
|
48
48
|
}
|
|
@@ -39,14 +39,14 @@ export interface ControlPlaneCapabilities {
|
|
|
39
39
|
version?: string;
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
* Create
|
|
42
|
+
* Create hosted project request
|
|
43
43
|
*/
|
|
44
44
|
export interface CreateInstanceRequest {
|
|
45
|
-
/**
|
|
45
|
+
/** Project slug */
|
|
46
46
|
name: string;
|
|
47
|
-
/**
|
|
47
|
+
/** Project configuration */
|
|
48
48
|
config: {
|
|
49
|
-
/** Organization slug to create the
|
|
49
|
+
/** Organization slug to create the project under */
|
|
50
50
|
organizationSlug: string;
|
|
51
51
|
/** Region ID for provisioning */
|
|
52
52
|
region: string;
|
|
@@ -64,7 +64,7 @@ export interface ControlPlaneOrganization {
|
|
|
64
64
|
role: string;
|
|
65
65
|
}
|
|
66
66
|
/**
|
|
67
|
-
* Provisioning region for control-plane
|
|
67
|
+
* Provisioning region for control-plane projects
|
|
68
68
|
*/
|
|
69
69
|
export interface ControlPlaneRegion {
|
|
70
70
|
id: string;
|
|
@@ -92,17 +92,17 @@ export declare const ERROR_CATALOG: {
|
|
|
92
92
|
readonly URL_INVALID: {
|
|
93
93
|
readonly code: "URL_INVALID";
|
|
94
94
|
readonly message: "Invalid URL format";
|
|
95
|
-
readonly hint: "Expected format: https://your-
|
|
95
|
+
readonly hint: "Expected format: https://your-project.c15t.dev";
|
|
96
96
|
};
|
|
97
97
|
readonly INSTANCE_NOT_FOUND: {
|
|
98
98
|
readonly code: "INSTANCE_NOT_FOUND";
|
|
99
|
-
readonly message: "
|
|
100
|
-
readonly hint: "Run `c15t
|
|
99
|
+
readonly message: "Project not found";
|
|
100
|
+
readonly hint: "Run `c15t projects list` to see available projects";
|
|
101
101
|
};
|
|
102
102
|
readonly INSTANCE_NAME_INVALID: {
|
|
103
103
|
readonly code: "INSTANCE_NAME_INVALID";
|
|
104
|
-
readonly message: "Invalid
|
|
105
|
-
readonly hint: "
|
|
104
|
+
readonly message: "Invalid project slug";
|
|
105
|
+
readonly hint: "Project slugs must be alphanumeric with hyphens";
|
|
106
106
|
};
|
|
107
107
|
readonly FILE_NOT_FOUND: {
|
|
108
108
|
readonly code: "FILE_NOT_FOUND";
|
|
@@ -1,77 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Provides anonymous usage tracking to help improve the CLI.
|
|
5
|
-
* Respects user preferences and can be disabled via --no-telemetry flag
|
|
6
|
-
* or C15T_TELEMETRY_DISABLED environment variable.
|
|
7
|
-
*/
|
|
8
|
-
import { PostHog } from 'posthog-node';
|
|
9
|
-
import type { CliLogger, Telemetry } from '../types';
|
|
10
|
-
export declare const TelemetryEventName: {
|
|
11
|
-
readonly CLI_INVOKED: "cli.invoked";
|
|
12
|
-
readonly CLI_COMPLETED: "cli.completed";
|
|
13
|
-
readonly CLI_EXITED: "cli.exited";
|
|
14
|
-
readonly CLI_ENVIRONMENT_DETECTED: "cli.environment_detected";
|
|
15
|
-
readonly COMMAND_EXECUTED: "command.executed";
|
|
16
|
-
readonly COMMAND_SUCCEEDED: "command.succeeded";
|
|
17
|
-
readonly COMMAND_FAILED: "command.failed";
|
|
18
|
-
readonly COMMAND_UNKNOWN: "command.unknown";
|
|
19
|
-
readonly INTERACTIVE_MENU_OPENED: "ui.menu.opened";
|
|
20
|
-
readonly INTERACTIVE_MENU_EXITED: "ui.menu.exited";
|
|
21
|
-
readonly AUTH_LOGIN_STARTED: "auth.login.started";
|
|
22
|
-
readonly AUTH_LOGIN_SUCCEEDED: "auth.login.succeeded";
|
|
23
|
-
readonly AUTH_LOGIN_FAILED: "auth.login.failed";
|
|
24
|
-
readonly AUTH_LOGOUT: "auth.logout";
|
|
25
|
-
readonly CONFIG_LOADED: "config.loaded";
|
|
26
|
-
readonly CONFIG_ERROR: "config.error";
|
|
27
|
-
readonly CONFIG_UPDATED: "config.updated";
|
|
28
|
-
readonly HELP_DISPLAYED: "help.displayed";
|
|
29
|
-
readonly VERSION_DISPLAYED: "version.displayed";
|
|
30
|
-
readonly ONBOARDING_STARTED: "onboarding.started";
|
|
31
|
-
readonly ONBOARDING_COMPLETED: "onboarding.completed";
|
|
32
|
-
readonly ONBOARDING_EXITED: "onboarding.exited";
|
|
33
|
-
readonly ONBOARDING_STORAGE_MODE_SELECTED: "onboarding.storage_mode_selected";
|
|
34
|
-
readonly ONBOARDING_C15T_MODE_CONFIGURED: "onboarding.c15t_mode_configured";
|
|
35
|
-
readonly ONBOARDING_OFFLINE_MODE_CONFIGURED: "onboarding.offline_mode_configured";
|
|
36
|
-
readonly ONBOARDING_SELF_HOSTED_CONFIGURED: "onboarding.self_hosted_configured";
|
|
37
|
-
readonly ONBOARDING_CUSTOM_MODE_CONFIGURED: "onboarding.custom_mode_configured";
|
|
38
|
-
readonly ONBOARDING_DEPENDENCIES_CHOICE: "onboarding.dependencies_choice";
|
|
39
|
-
readonly ONBOARDING_DEPENDENCIES_INSTALLED: "onboarding.dependencies_installed";
|
|
40
|
-
readonly ONBOARDING_GITHUB_STAR: "onboarding.github_star";
|
|
41
|
-
readonly INSTANCES_LISTED: "instances.listed";
|
|
42
|
-
readonly INSTANCE_SELECTED: "instance.selected";
|
|
43
|
-
readonly INSTANCE_CREATED: "instance.created";
|
|
44
|
-
readonly ERROR_OCCURRED: "error.occurred";
|
|
45
|
-
readonly MIGRATION_STARTED: "migration.started";
|
|
46
|
-
readonly MIGRATION_PLANNED: "migration.planned";
|
|
47
|
-
readonly MIGRATION_EXECUTED: "migration.executed";
|
|
48
|
-
readonly MIGRATION_COMPLETED: "migration.completed";
|
|
49
|
-
readonly MIGRATION_FAILED: "migration.failed";
|
|
50
|
-
readonly GENERATE_STARTED: "generate.started";
|
|
51
|
-
readonly GENERATE_COMPLETED: "generate.completed";
|
|
52
|
-
readonly GENERATE_FAILED: "generate.failed";
|
|
53
|
-
readonly SELF_HOST_STARTED: "self-host.started";
|
|
54
|
-
readonly SELF_HOST_COMPLETED: "self-host.completed";
|
|
55
|
-
readonly SELF_HOST_FAILED: "self-host.failed";
|
|
56
|
-
};
|
|
57
|
-
export type TelemetryEventNameType = (typeof TelemetryEventName)[keyof typeof TelemetryEventName];
|
|
58
|
-
export interface TelemetryOptions {
|
|
59
|
-
/** Custom PostHog client instance */
|
|
60
|
-
client?: PostHog;
|
|
61
|
-
/** Disable telemetry */
|
|
62
|
-
disabled?: boolean;
|
|
63
|
-
/** Enable debug mode */
|
|
64
|
-
debug?: boolean;
|
|
65
|
-
/** Default properties for all events */
|
|
66
|
-
defaultProperties?: Record<string, string | number | boolean>;
|
|
67
|
-
/** Logger instance */
|
|
68
|
-
logger?: CliLogger;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Create a telemetry instance
|
|
72
|
-
*/
|
|
73
|
-
export declare function createTelemetry(options?: TelemetryOptions): Telemetry;
|
|
74
|
-
/**
|
|
75
|
-
* Create a disabled telemetry instance (for testing)
|
|
76
|
-
*/
|
|
77
|
-
export declare function createDisabledTelemetry(): Telemetry;
|
|
1
|
+
export { createTelemetry, Telemetry, TelemetryEventName, type TelemetryEventName as TelemetryEventNameType, type TelemetryOptions, } from '../utils/telemetry';
|
|
2
|
+
export declare function createDisabledTelemetry(): import("./telemetry").Telemetry;
|
|
@@ -142,6 +142,12 @@ export declare const generateMachine: import("xstate").StateMachine<GenerateMach
|
|
|
142
142
|
} | {
|
|
143
143
|
type: "preflightPassed";
|
|
144
144
|
params: unknown;
|
|
145
|
+
} | {
|
|
146
|
+
type: "installConfirmed";
|
|
147
|
+
params: unknown;
|
|
148
|
+
} | {
|
|
149
|
+
type: "installSucceeded";
|
|
150
|
+
params: unknown;
|
|
145
151
|
} | {
|
|
146
152
|
type: "preflightFailed";
|
|
147
153
|
params: unknown;
|
|
@@ -184,12 +190,6 @@ export declare const generateMachine: import("xstate").StateMachine<GenerateMach
|
|
|
184
190
|
} | {
|
|
185
191
|
type: "isExpandedUIStyle";
|
|
186
192
|
params: unknown;
|
|
187
|
-
} | {
|
|
188
|
-
type: "installConfirmed";
|
|
189
|
-
params: unknown;
|
|
190
|
-
} | {
|
|
191
|
-
type: "installSucceeded";
|
|
192
|
-
params: unknown;
|
|
193
193
|
} | {
|
|
194
194
|
type: "hasFilesToRollback";
|
|
195
195
|
params: unknown;
|
|
@@ -208,7 +208,7 @@ export declare const generateMachine: import("xstate").StateMachine<GenerateMach
|
|
|
208
208
|
} | {
|
|
209
209
|
type: "shouldPromptUIStyle";
|
|
210
210
|
params: unknown;
|
|
211
|
-
}, never, "error" | "exited" | "complete" | "
|
|
211
|
+
}, never, "error" | "exited" | "complete" | "idle" | "preflight" | "preflightError" | "modeSelection" | "hostedMode" | "offlineMode" | "customMode" | "backendOptions" | "frontendOptions" | "scriptsOptions" | "fileGeneration" | "dependencyInstall" | "summary" | "skillsInstall" | "githubStar" | "cancelling" | "dependencyCheck" | "dependencyConfirm" | "rollback" | "routeToMode", string, {
|
|
212
212
|
cliContext: CliContext;
|
|
213
213
|
modeArg?: StorageMode;
|
|
214
214
|
}, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
|
package/dist-types/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared type definitions for the c15t CLI
|
|
3
3
|
*/
|
|
4
4
|
import type { AvailablePackage as AvailablePackageType, StorageMode as StorageModeType } from './constants';
|
|
5
|
+
import type { CliLogger as SharedCliLogger } from './utils/logger';
|
|
5
6
|
export type StorageMode = StorageModeType;
|
|
6
7
|
export type AvailablePackage = AvailablePackageType;
|
|
7
8
|
export interface CliCommand {
|
|
@@ -85,18 +86,7 @@ export interface PackageManagerResult {
|
|
|
85
86
|
/** Execute command (npx, bunx, etc.) */
|
|
86
87
|
execCommand: string;
|
|
87
88
|
}
|
|
88
|
-
export
|
|
89
|
-
debug(message: string, ...args: unknown[]): void;
|
|
90
|
-
info(message: string, ...args: unknown[]): void;
|
|
91
|
-
warn(message: string, ...args: unknown[]): void;
|
|
92
|
-
error(message: string, ...args: unknown[]): void;
|
|
93
|
-
message(message: string): void;
|
|
94
|
-
note(content: string, title?: string): void;
|
|
95
|
-
success(message: string): void;
|
|
96
|
-
failed(message: string): never;
|
|
97
|
-
outro(message: string): void;
|
|
98
|
-
step(current: number, total: number, label: string): void;
|
|
99
|
-
}
|
|
89
|
+
export type CliLogger = SharedCliLogger;
|
|
100
90
|
export interface ErrorHandlers {
|
|
101
91
|
/** Handle an error and exit */
|
|
102
92
|
handleError: (error: unknown, message: string) => never;
|
|
@@ -128,7 +118,7 @@ export interface FileSystemUtils {
|
|
|
128
118
|
}
|
|
129
119
|
export interface Telemetry {
|
|
130
120
|
/** Track an event */
|
|
131
|
-
trackEvent: (eventName: string, properties?: Record<string,
|
|
121
|
+
trackEvent: (eventName: string, properties?: Record<string, unknown>) => void;
|
|
132
122
|
/** Track a command execution */
|
|
133
123
|
trackCommand: (command: string, args?: string[], flags?: Record<string, string | number | boolean | undefined>) => void;
|
|
134
124
|
/** Track an error */
|
|
@@ -173,7 +163,7 @@ export interface GenerateOptions {
|
|
|
173
163
|
mode: StorageMode;
|
|
174
164
|
/** Backend URL (for hosted or self-hosted mode) */
|
|
175
165
|
backendUrl?: string;
|
|
176
|
-
/**
|
|
166
|
+
/** Project ID (for hosted mode) */
|
|
177
167
|
instanceId?: string;
|
|
178
168
|
/** Selected scripts to configure */
|
|
179
169
|
scripts?: string[];
|
|
@@ -215,19 +205,19 @@ export interface PreflightCheck {
|
|
|
215
205
|
hint?: string;
|
|
216
206
|
}
|
|
217
207
|
export interface Instance {
|
|
218
|
-
/**
|
|
208
|
+
/** Project ID */
|
|
219
209
|
id: string;
|
|
220
|
-
/**
|
|
210
|
+
/** Project name */
|
|
221
211
|
name: string;
|
|
222
212
|
/** Organization slug */
|
|
223
213
|
organizationSlug?: string;
|
|
224
214
|
/** Provisioning region */
|
|
225
215
|
region?: string;
|
|
226
|
-
/**
|
|
216
|
+
/** Project backend URL */
|
|
227
217
|
url: string;
|
|
228
218
|
/** Created timestamp */
|
|
229
219
|
createdAt: string;
|
|
230
|
-
/**
|
|
220
|
+
/** Project status */
|
|
231
221
|
status: 'active' | 'inactive' | 'pending';
|
|
232
222
|
}
|
|
233
223
|
export type RecoveryAction = 'retry' | 'skip' | 'manual' | 'troubleshoot' | 'abort';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { type Logger } from '
|
|
1
|
+
import { type Logger } from '@c15t/logger';
|
|
2
2
|
export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
|
|
3
3
|
export declare const validLogLevels: LogLevel[];
|
|
4
4
|
export type CliLogger = Logger & CliExtensions;
|
|
5
5
|
export interface CliExtensions {
|
|
6
|
-
message: (message: string
|
|
7
|
-
note: (
|
|
8
|
-
outro: (message: string
|
|
9
|
-
success: (message: string
|
|
10
|
-
failed: (message: string
|
|
6
|
+
message: (message: string) => void;
|
|
7
|
+
note: (content: string, title?: string) => void;
|
|
8
|
+
outro: (message: string) => void;
|
|
9
|
+
success: (message: string) => void;
|
|
10
|
+
failed: (message: string) => never;
|
|
11
|
+
step: (current: number, total: number, label: string) => void;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* Formats a log message with appropriate styling based on log level
|