@c15t/cli 1.2.0-beta.17 → 1.2.0-canary.1

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.
Files changed (96) hide show
  1. package/LICENSE.md +595 -0
  2. package/README.md +106 -0
  3. package/dist/actions/get-config/config-extraction.d.ts +37 -0
  4. package/dist/actions/get-config/config-extraction.d.ts.map +1 -0
  5. package/dist/actions/get-config/config-validation.d.ts +7 -0
  6. package/dist/actions/get-config/config-validation.d.ts.map +1 -0
  7. package/dist/actions/get-config/constants.d.ts +13 -0
  8. package/dist/actions/get-config/constants.d.ts.map +1 -0
  9. package/dist/actions/get-config/directory-search.d.ts +6 -0
  10. package/dist/actions/get-config/directory-search.d.ts.map +1 -0
  11. package/dist/actions/get-config/jiti-options.d.ts +9 -0
  12. package/dist/actions/get-config/jiti-options.d.ts.map +1 -0
  13. package/dist/actions/get-config.d.ts +13 -0
  14. package/dist/actions/get-config.d.ts.map +1 -0
  15. package/dist/actions/load-config-and-onboard.d.ts +9 -0
  16. package/dist/actions/load-config-and-onboard.d.ts.map +1 -0
  17. package/dist/actions/show-help-menu.d.ts +11 -0
  18. package/dist/actions/show-help-menu.d.ts.map +1 -0
  19. package/dist/commands/generate/actions/handle-existing-file.d.ts +7 -0
  20. package/dist/commands/generate/actions/handle-existing-file.d.ts.map +1 -0
  21. package/dist/commands/generate/actions/handle-new-file.d.ts +7 -0
  22. package/dist/commands/generate/actions/handle-new-file.d.ts.map +1 -0
  23. package/dist/commands/generate/actions/perform-write-action.d.ts +6 -0
  24. package/dist/commands/generate/actions/perform-write-action.d.ts.map +1 -0
  25. package/dist/commands/generate/generators/drizzle.d.ts +4 -0
  26. package/dist/commands/generate/generators/drizzle.d.ts.map +1 -0
  27. package/dist/commands/generate/generators/index.d.ts +19 -0
  28. package/dist/commands/generate/generators/index.d.ts.map +1 -0
  29. package/dist/commands/generate/generators/kysely.d.ts +11 -0
  30. package/dist/commands/generate/generators/kysely.d.ts.map +1 -0
  31. package/dist/commands/generate/generators/prisma.d.ts +3 -0
  32. package/dist/commands/generate/generators/prisma.d.ts.map +1 -0
  33. package/dist/commands/generate/generators/types.d.ts +13 -0
  34. package/dist/commands/generate/generators/types.d.ts.map +1 -0
  35. package/dist/commands/generate/schema.d.ts +10 -0
  36. package/dist/commands/generate/schema.d.ts.map +1 -0
  37. package/dist/commands/generate/setup.d.ts +13 -0
  38. package/dist/commands/generate/setup.d.ts.map +1 -0
  39. package/dist/commands/generate/write.d.ts +8 -0
  40. package/dist/commands/generate/write.d.ts.map +1 -0
  41. package/dist/commands/generate.d.ts +6 -0
  42. package/dist/commands/generate.d.ts.map +1 -0
  43. package/dist/commands/migrate/execute.d.ts +7 -0
  44. package/dist/commands/migrate/execute.d.ts.map +1 -0
  45. package/dist/commands/migrate/plan.d.ts +12 -0
  46. package/dist/commands/migrate/plan.d.ts.map +1 -0
  47. package/dist/commands/migrate/setup.d.ts +12 -0
  48. package/dist/commands/migrate/setup.d.ts.map +1 -0
  49. package/dist/commands/migrate.d.ts +3 -0
  50. package/dist/commands/migrate.d.ts.map +1 -0
  51. package/dist/components/intro.d.ts +9 -0
  52. package/dist/components/intro.d.ts.map +1 -0
  53. package/dist/context/config-management.d.ts +20 -0
  54. package/dist/context/config-management.d.ts.map +1 -0
  55. package/dist/context/creator.d.ts +11 -0
  56. package/dist/context/creator.d.ts.map +1 -0
  57. package/dist/context/error-handlers.d.ts +18 -0
  58. package/dist/context/error-handlers.d.ts.map +1 -0
  59. package/dist/context/file-system.d.ts +11 -0
  60. package/dist/context/file-system.d.ts.map +1 -0
  61. package/dist/context/parser.d.ts +11 -0
  62. package/dist/context/parser.d.ts.map +1 -0
  63. package/dist/context/types.d.ts +53 -0
  64. package/dist/context/types.d.ts.map +1 -0
  65. package/dist/context/user-interaction.d.ts +14 -0
  66. package/dist/context/user-interaction.d.ts.map +1 -0
  67. package/dist/index.d.ts +4 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.mjs +2002 -993
  70. package/dist/onboarding/dependencies.d.ts +20 -0
  71. package/dist/onboarding/dependencies.d.ts.map +1 -0
  72. package/dist/onboarding/detection.d.ts +33 -0
  73. package/dist/onboarding/detection.d.ts.map +1 -0
  74. package/dist/onboarding/index.d.ts +11 -0
  75. package/dist/onboarding/index.d.ts.map +1 -0
  76. package/dist/onboarding/storage-modes/c15t-mode.d.ts +22 -0
  77. package/dist/onboarding/storage-modes/c15t-mode.d.ts.map +1 -0
  78. package/dist/onboarding/storage-modes/custom-mode.d.ts +18 -0
  79. package/dist/onboarding/storage-modes/custom-mode.d.ts.map +1 -0
  80. package/dist/onboarding/storage-modes/index.d.ts +5 -0
  81. package/dist/onboarding/storage-modes/index.d.ts.map +1 -0
  82. package/dist/onboarding/storage-modes/offline-mode.d.ts +19 -0
  83. package/dist/onboarding/storage-modes/offline-mode.d.ts.map +1 -0
  84. package/dist/onboarding/storage-modes/self-hosted-mode.d.ts +22 -0
  85. package/dist/onboarding/storage-modes/self-hosted-mode.d.ts.map +1 -0
  86. package/dist/onboarding/templates.d.ts +30 -0
  87. package/dist/onboarding/templates.d.ts.map +1 -0
  88. package/dist/onboarding.d.ts +15 -0
  89. package/dist/onboarding.d.ts.map +1 -0
  90. package/dist/utils/capitalize-first-letter.d.ts +2 -0
  91. package/dist/utils/capitalize-first-letter.d.ts.map +1 -0
  92. package/dist/utils/logger.d.ts +30 -0
  93. package/dist/utils/logger.d.ts.map +1 -0
  94. package/dist/utils/telemetry.d.ts +173 -0
  95. package/dist/utils/telemetry.d.ts.map +1 -0
  96. package/package.json +36 -31
@@ -0,0 +1,20 @@
1
+ export type PackageManager = 'npm' | 'yarn' | 'pnpm';
2
+ /**
3
+ * Installs dependencies using the detected package manager
4
+ *
5
+ * @param projectRoot - The root directory of the project
6
+ * @param dependencies - Array of package names to install
7
+ * @param packageManager - The package manager to use (npm, yarn, pnpm)
8
+ * @returns Promise that resolves when installation is complete
9
+ */
10
+ export declare function addAndInstallDependenciesViaPM(projectRoot: string, dependencies: string[], packageManager: PackageManager): Promise<void>;
11
+ /**
12
+ * Generates the package manager command for manual installation
13
+ * Useful when automatic installation fails
14
+ *
15
+ * @param dependencies - Array of package names
16
+ * @param packageManager - The package manager to use
17
+ * @returns The command string to run for manual installation
18
+ */
19
+ export declare function getManualInstallCommand(dependencies: string[], packageManager: PackageManager): string;
20
+ //# sourceMappingURL=dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/onboarding/dependencies.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CACnD,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,EACtB,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACtC,YAAY,EAAE,MAAM,EAAE,EACtB,cAAc,EAAE,cAAc,GAC5B,MAAM,CAaR"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Supported package managers
3
+ */
4
+ export type PackageManager = 'npm' | 'yarn' | 'pnpm';
5
+ /**
6
+ * Framework detection result
7
+ */
8
+ export interface FrameworkDetectionResult {
9
+ framework: string | null;
10
+ hasReact: boolean;
11
+ }
12
+ /**
13
+ * Detects the framework and React usage in the project
14
+ *
15
+ * @param projectRoot - The root directory of the project
16
+ * @returns Object containing framework info and whether React is used
17
+ */
18
+ export declare function detectFramework(projectRoot: string): Promise<FrameworkDetectionResult>;
19
+ /**
20
+ * Detects the project root by finding the package.json file
21
+ *
22
+ * @param cwd - Current working directory
23
+ * @returns The project root directory path or cwd if not found
24
+ */
25
+ export declare function detectProjectRoot(cwd: string): Promise<string>;
26
+ /**
27
+ * Detects the package manager used in the project
28
+ *
29
+ * @param projectRoot - The root directory of the project
30
+ * @returns The detected package manager
31
+ */
32
+ export declare function detectPackageManager(projectRoot: string): Promise<PackageManager>;
33
+ //# sourceMappingURL=detection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../src/onboarding/detection.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC,CA+BnC;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACzC,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CA2DzB"}
@@ -0,0 +1,11 @@
1
+ import type { C15TOptions } from '@c15t/backend';
2
+ import type { ConsentManagerOptions } from '@c15t/react';
3
+ import type { CliContext } from '../context/types';
4
+ /**
5
+ * Starts the onboarding process to set up c15t configuration
6
+ *
7
+ * @param context - CLI context
8
+ * @param existingConfig - Optional existing configuration
9
+ */
10
+ export declare function startOnboarding(context: CliContext, existingConfig?: C15TOptions | ConsentManagerOptions | null): Promise<undefined>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/onboarding/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AASzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAoBnD;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,OAAO,EAAE,UAAU,EACnB,cAAc,CAAC,EAAE,WAAW,GAAG,qBAAqB,GAAG,IAAI,sBAsc3D"}
@@ -0,0 +1,22 @@
1
+ import * as p from '@clack/prompts';
2
+ import type { CliContext } from '../../context/types';
3
+ /**
4
+ * Result of c15t mode setup
5
+ */
6
+ export interface C15TModeResult {
7
+ clientConfigContent: string;
8
+ backendURL: string;
9
+ usingEnvFile: boolean;
10
+ }
11
+ /**
12
+ * Handles the setup process for the Hosted c15t (consent.io) mode
13
+ *
14
+ * @param context - CLI context
15
+ * @param projectRoot - Project root directory
16
+ * @param spinner - Spinner for loading indicators
17
+ * @param initialBackendURL - Initial backend URL if available
18
+ * @param handleCancel - Function to handle prompt cancellations
19
+ * @returns Configuration data for the c15t mode
20
+ */
21
+ export declare function setupC15tMode(context: CliContext, projectRoot: string, spinner: ReturnType<typeof p.spinner>, initialBackendURL?: string, handleCancel?: (value: unknown) => boolean): Promise<C15TModeResult>;
22
+ //# sourceMappingURL=c15t-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c15t-mode.d.ts","sourceRoot":"","sources":["../../../src/onboarding/storage-modes/c15t-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAGpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACrC,iBAAiB,CAAC,EAAE,MAAM,EAC1B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GACxC,OAAO,CAAC,cAAc,CAAC,CAgJzB"}
@@ -0,0 +1,18 @@
1
+ import type * as p from '@clack/prompts';
2
+ import type { CliContext } from '../../context/types';
3
+ /**
4
+ * Result of custom mode setup
5
+ */
6
+ export interface CustomModeResult {
7
+ clientConfigContent: string;
8
+ }
9
+ /**
10
+ * Handles the setup process for custom implementation mode
11
+ *
12
+ * @param context - CLI context
13
+ * @param projectRoot - Project root directory
14
+ * @param spinner - Spinner for loading indicators
15
+ * @returns Configuration data for the custom mode
16
+ */
17
+ export declare function setupCustomMode(context: CliContext, projectRoot: string, spinner: ReturnType<typeof p.spinner>): Promise<CustomModeResult>;
18
+ //# sourceMappingURL=custom-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-mode.d.ts","sourceRoot":"","sources":["../../../src/onboarding/storage-modes/custom-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACpC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA2B3B"}
@@ -0,0 +1,5 @@
1
+ export { setupC15tMode, type C15TModeResult } from './c15t-mode';
2
+ export { setupCustomMode, type CustomModeResult } from './custom-mode';
3
+ export { setupOfflineMode, type OfflineModeResult } from './offline-mode';
4
+ export { setupSelfHostedMode, type SelfHostedModeResult, } from './self-hosted-mode';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/onboarding/storage-modes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACN,mBAAmB,EACnB,KAAK,oBAAoB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type * as p from '@clack/prompts';
2
+ import type { CliContext } from '../../context/types';
3
+ /**
4
+ * Result of offline mode setup
5
+ */
6
+ export interface OfflineModeResult {
7
+ clientConfigContent: string;
8
+ }
9
+ /**
10
+ * Handles the setup process for offline mode (browser storage)
11
+ *
12
+ * @param context - CLI context
13
+ * @param projectRoot - Project root directory
14
+ * @param spinner - Spinner for loading indicators
15
+ * @param handleCancel - Function to handle prompt cancellations
16
+ * @returns Configuration data for the offline mode
17
+ */
18
+ export declare function setupOfflineMode(context: CliContext, projectRoot: string, spinner: ReturnType<typeof p.spinner>, handleCancel?: (value: unknown) => boolean): Promise<OfflineModeResult>;
19
+ //# sourceMappingURL=offline-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offline-mode.d.ts","sourceRoot":"","sources":["../../../src/onboarding/storage-modes/offline-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACrC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACrC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GACxC,OAAO,CAAC,iBAAiB,CAAC,CAuC5B"}
@@ -0,0 +1,22 @@
1
+ import * as p from '@clack/prompts';
2
+ import type { CliContext } from '../../context/types';
3
+ /**
4
+ * Result of self-hosted mode setup
5
+ */
6
+ export interface SelfHostedModeResult {
7
+ clientConfigContent: string;
8
+ backendConfigContent: string | null;
9
+ dependencies: string[];
10
+ adapterChoice: string;
11
+ }
12
+ /**
13
+ * Handles the setup process for self-hosted mode
14
+ *
15
+ * @param context - CLI context
16
+ * @param projectRoot - Project root directory
17
+ * @param spinner - Spinner for loading indicators
18
+ * @param handleCancel - Function to handle prompt cancellations
19
+ * @returns Configuration data for the self-hosted mode
20
+ */
21
+ export declare function setupSelfHostedMode(context: CliContext, projectRoot: string, spinner: ReturnType<typeof p.spinner>, handleCancel?: (value: unknown) => boolean): Promise<SelfHostedModeResult>;
22
+ //# sourceMappingURL=self-hosted-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-hosted-mode.d.ts","sourceRoot":"","sources":["../../../src/onboarding/storage-modes/self-hosted-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOtD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EACrC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GACxC,OAAO,CAAC,oBAAoB,CAAC,CA2I/B"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Templates module for generating configuration files
3
+ * These functions generate template configuration content for different storage modes
4
+ */
5
+ /**
6
+ * Generates client configuration file content based on storage mode
7
+ *
8
+ * @param mode - The storage mode ('c15t', 'offline', or 'custom')
9
+ * @param backendURL - URL for the c15t backend/API (for 'c15t' mode)
10
+ * @param useEnvFile - Whether to use environment variable for backendURL
11
+ * @returns The generated configuration file content
12
+ */
13
+ export declare function generateClientConfigContent(mode: string, backendURL?: string, useEnvFile?: boolean): string;
14
+ /**
15
+ * Generates backend configuration file content
16
+ *
17
+ * @param adapterChoice - The database adapter to use ('kysely-postgres', 'kysely-sqlite', or 'memory')
18
+ * @param connectionString - Connection string for database (for 'kysely-postgres')
19
+ * @param filePath - Path to the database file (for 'kysely-sqlite')
20
+ * @returns The generated backend configuration file content
21
+ */
22
+ export declare function generateBackendConfigContent(adapterChoice: string, connectionString?: string, filePath?: string): string;
23
+ /**
24
+ * Generates environment file content with the c15t backend URL
25
+ *
26
+ * @param backendURL - The backend URL to use
27
+ * @returns The generated environment file content
28
+ */
29
+ export declare function generateEnvFileContent(backendURL: string): string;
30
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/onboarding/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,OAAO,GAClB,MAAM,CA+FR;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC3C,aAAa,EAAE,MAAM,EACrB,gBAAgB,CAAC,EAAE,MAAM,EACzB,QAAQ,CAAC,EAAE,MAAM,GACf,MAAM,CAmDR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview Main entry point for c15t CLI onboarding
3
+ *
4
+ * This file has been refactored into smaller, more modular components.
5
+ * For better maintainability, the implementation has been split into:
6
+ * - templates.ts - Configuration templates
7
+ * - detection.ts - Environment detection
8
+ * - dependencies.ts - Dependency management
9
+ * - storage-modes/ - Mode-specific handlers
10
+ *
11
+ * This file now re-exports the startOnboarding function from
12
+ * the modular implementation for backward compatibility.
13
+ */
14
+ export { startOnboarding } from './onboarding/index';
15
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../src/onboarding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function capitalizeFirstLetter(str: string): string;
2
+ //# sourceMappingURL=capitalize-first-letter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize-first-letter.d.ts","sourceRoot":"","sources":["../../src/utils/capitalize-first-letter.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,UAEhD"}
@@ -0,0 +1,30 @@
1
+ import { type Logger } from '@doubletie/logger';
2
+ export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
3
+ export declare const validLogLevels: LogLevel[];
4
+ export interface CliExtensions {
5
+ message: (message: string, ...args: unknown[]) => void;
6
+ note: (message: string, ...args: unknown[]) => void;
7
+ outro: (message: string, ...args: unknown[]) => void;
8
+ success: (message: string, ...args: unknown[]) => void;
9
+ failed: (message: string, ...args: unknown[]) => void;
10
+ }
11
+ /**
12
+ * Formats a log message with appropriate styling based on log level
13
+ *
14
+ * @param logLevel - The log level to format for
15
+ * @param message - The message to format
16
+ * @param args - Additional arguments to format
17
+ * @returns The formatted message string
18
+ */
19
+ export declare const formatLogMessage: (logLevel: LogLevel | string, message: unknown, args?: unknown[]) => string;
20
+ /**
21
+ * Logs a message with the appropriate clack prompt styling
22
+ * Can be used before logger initialization
23
+ *
24
+ * @param logLevel - The log level to use
25
+ * @param message - The message to log
26
+ * @param args - Additional arguments to include
27
+ */
28
+ export declare const logMessage: (logLevel: LogLevel | "success" | "failed" | string, message: unknown, ...args: unknown[]) => void;
29
+ export declare const createCliLogger: (level: LogLevel) => Logger & CliExtensions;
30
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAG9D,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC3D,eAAO,MAAM,cAAc,EAAE,QAAQ,EAAuC,CAAC;AAG7E,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtD;AASD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAC5B,UAAU,QAAQ,GAAG,MAAM,EAC3B,SAAS,OAAO,EAChB,OAAM,OAAO,EAAO,KAClB,MA6BF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GACtB,UAAU,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,EAClD,SAAS,OAAO,EAChB,GAAG,MAAM,OAAO,EAAE,KAChB,IAqBF,CAAC;AAIF,eAAO,MAAM,eAAe,GAAI,OAAO,QAAQ,KAAG,MAAM,GAAG,aAgD1D,CAAC"}
@@ -0,0 +1,173 @@
1
+ import type { Logger } from '@doubletie/logger';
2
+ import { PostHog } from 'posthog-node';
3
+ import type { LogLevel } from './logger';
4
+ export declare enum TelemetryEventName {
5
+ CLI_INVOKED = "cli.invoked",
6
+ CLI_COMPLETED = "cli.completed",
7
+ CLI_EXITED = "cli.exited",
8
+ CLI_ENVIRONMENT_DETECTED = "cli.environment_detected",
9
+ COMMAND_EXECUTED = "command.executed",
10
+ COMMAND_SUCCEEDED = "command.succeeded",
11
+ COMMAND_FAILED = "command.failed",
12
+ COMMAND_UNKNOWN = "command.unknown",
13
+ INTERACTIVE_MENU_OPENED = "ui.menu.opened",
14
+ INTERACTIVE_MENU_EXITED = "ui.menu.exited",
15
+ CONFIG_LOADED = "config.loaded",
16
+ CONFIG_ERROR = "config.error",
17
+ CONFIG_UPDATED = "config.updated",
18
+ HELP_DISPLAYED = "help.displayed",
19
+ VERSION_DISPLAYED = "version.displayed",
20
+ ONBOARDING_STARTED = "onboarding.started",
21
+ ONBOARDING_COMPLETED = "onboarding.completed",
22
+ ONBOARDING_EXITED = "onboarding.exited",
23
+ ONBOARDING_STORAGE_MODE_SELECTED = "onboarding.storage_mode_selected",
24
+ ONBOARDING_C15T_MODE_CONFIGURED = "onboarding.c15t_mode_configured",
25
+ ONBOARDING_OFFLINE_MODE_CONFIGURED = "onboarding.offline_mode_configured",
26
+ ONBOARDING_SELF_HOSTED_CONFIGURED = "onboarding.self_hosted_configured",
27
+ ONBOARDING_CUSTOM_MODE_CONFIGURED = "onboarding.custom_mode_configured",
28
+ ONBOARDING_DEPENDENCIES_CHOICE = "onboarding.dependencies_choice",
29
+ ONBOARDING_DEPENDENCIES_INSTALLED = "onboarding.dependencies_installed",
30
+ ONBOARDING_GITHUB_STAR = "onboarding.github_star",
31
+ ERROR_OCCURRED = "error.occurred",
32
+ MIGRATION_STARTED = "migration.started",
33
+ MIGRATION_PLANNED = "migration.planned",
34
+ MIGRATION_EXECUTED = "migration.executed",
35
+ MIGRATION_COMPLETED = "migration.completed",
36
+ MIGRATION_FAILED = "migration.failed",
37
+ GENERATE_STARTED = "generate.started",
38
+ GENERATE_COMPLETED = "generate.completed",
39
+ GENERATE_FAILED = "generate.failed"
40
+ }
41
+ export interface TelemetryOptions {
42
+ /**
43
+ * Custom PostHog instance to use instead of the default
44
+ */
45
+ client?: PostHog;
46
+ /**
47
+ * Whether telemetry should be disabled
48
+ */
49
+ disabled?: boolean;
50
+ /**
51
+ * Default properties to add to all telemetry events
52
+ */
53
+ defaultProperties?: Record<string, string | number | boolean>;
54
+ /**
55
+ * Logger instance to use for logging telemetry events
56
+ */
57
+ logger?: Logger;
58
+ }
59
+ /**
60
+ * Manages telemetry for the CLI
61
+ *
62
+ * The Telemetry class provides methods to track CLI usage and errors
63
+ * in a privacy-preserving way.
64
+ */
65
+ export declare class Telemetry {
66
+ private client;
67
+ private disabled;
68
+ private defaultProperties;
69
+ private distinctId;
70
+ private apiKey;
71
+ private debug;
72
+ private logger;
73
+ /**
74
+ * Creates a new telemetry instance
75
+ *
76
+ * @param options - Configuration options for telemetry
77
+ */
78
+ constructor(options?: TelemetryOptions);
79
+ /**
80
+ * Track a telemetry event synchronously
81
+ *
82
+ * This method ensures the event is sent before returning
83
+ *
84
+ * @param eventName - The event name to track
85
+ * @param properties - Properties to include with the event
86
+ */
87
+ trackEventSync(eventName: TelemetryEventName, properties?: Record<string, string | number | boolean | undefined>): void;
88
+ /**
89
+ * Track a telemetry event
90
+ *
91
+ * @param eventName - The event name to track
92
+ * @param properties - Properties to include with the event
93
+ */
94
+ trackEvent(eventName: TelemetryEventName, properties?: Record<string, string | number | boolean | undefined>): void;
95
+ /**
96
+ * Track a command execution
97
+ *
98
+ * @param command - The command being executed
99
+ * @param args - Command arguments
100
+ * @param flags - Command flags
101
+ */
102
+ trackCommand(command: string, args?: string[], flags?: Record<string, string | number | boolean | undefined>): void;
103
+ /**
104
+ * Track CLI errors
105
+ *
106
+ * @param error - The error that occurred
107
+ * @param command - The command that was being executed when the error occurred
108
+ */
109
+ trackError(error: Error, command?: string): void;
110
+ /**
111
+ * Set log level for telemetry client
112
+ *
113
+ * @param level - The log level to set
114
+ */
115
+ setLogLevel(level: LogLevel): void;
116
+ /**
117
+ * Disable telemetry
118
+ */
119
+ disable(): void;
120
+ /**
121
+ * Enable telemetry
122
+ */
123
+ enable(): void;
124
+ /**
125
+ * Check if telemetry is disabled
126
+ *
127
+ * @returns Whether telemetry is disabled
128
+ */
129
+ isDisabled(): boolean;
130
+ /**
131
+ * Shutdown telemetry client
132
+ */
133
+ shutdown(): Promise<void>;
134
+ /**
135
+ * Set the logger instance to use for logging
136
+ *
137
+ * @param logger - The logger instance to use
138
+ */
139
+ setLogger(logger: Logger): void;
140
+ /**
141
+ * Log a debug message using the configured logger or console.debug as fallback
142
+ *
143
+ * @param message - The message to log
144
+ * @param args - Additional arguments to log
145
+ */
146
+ private logDebug;
147
+ /**
148
+ * Initialize the PostHog client
149
+ *
150
+ * @param customClient - Optional custom PostHog client
151
+ */
152
+ private initClient;
153
+ /**
154
+ * Generate an anonymous ID based on machine info
155
+ *
156
+ * @returns A hash that uniquely identifies the machine without PII
157
+ */
158
+ private generateAnonymousId;
159
+ /**
160
+ * Force immediate flushing of any pending telemetry events
161
+ *
162
+ * This is useful when you need to ensure events are sent before process exit
163
+ */
164
+ flushSync(): void;
165
+ }
166
+ /**
167
+ * Creates a telemetry instance with sensible defaults
168
+ *
169
+ * @param options - Configuration options for telemetry
170
+ * @returns A configured telemetry instance
171
+ */
172
+ export declare function createTelemetry(options?: TelemetryOptions): Telemetry;
173
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,53 +1,58 @@
1
1
  {
2
2
  "name": "@c15t/cli",
3
- "version": "1.2.0-beta.17",
3
+ "version": "1.2.0-canary.1",
4
4
  "description": "The CLI for c15t",
5
+ "type": "module",
5
6
  "exports": "./dist/index.mjs",
6
7
  "main": "./dist/index.mjs",
7
8
  "module": "dist/index.mjs",
8
- "bin": "./dist/index.mjs",
9
+ "bin": {
10
+ "cli": "dist/index.mjs"
11
+ },
9
12
  "files": [
10
13
  "dist"
11
14
  ],
12
- "scripts": {
13
- "build": "unbuild",
14
- "fmt": "pnpm biome format --write . && biome check --formatter-enabled=false --linter-enabled=false --organize-imports-enabled=true --write",
15
- "lint": "pnpm biome lint ./src",
16
- "start": "node ./dist/index.mjs",
17
- "stub": "unbuild --stub",
18
- "test": "vitest"
19
- },
20
15
  "dependencies": {
21
- "@babel/preset-react": "^7.26.3",
22
- "@babel/preset-typescript": "^7.26.0",
23
- "@c15t/backend": "workspace:*",
16
+ "@doubletie/logger": "1.0.4",
17
+ "@clack/prompts": "^0.10.1",
24
18
  "@mrleebo/prisma-ast": "^0.12.1",
25
- "@prisma/client": "^6.5.0",
26
- "@types/better-sqlite3": "^7.6.12",
27
- "@types/prompts": "^2.4.9",
28
- "better-sqlite3": "^11.8.1",
29
- "c12": "^3.0.2",
30
- "chalk": "^5.4.1",
31
- "commander": "^13.1.0",
32
- "dotenv": "^16.4.7",
33
- "drizzle-orm": "^0.40.0",
19
+ "@types/better-sqlite3": "^7.6.13",
20
+ "better-sqlite3": "^11.9.1",
21
+ "c12": "^3.0.3",
22
+ "dotenv": "^16.5.0",
23
+ "figlet": "^1.8.1",
34
24
  "fs-extra": "^11.3.0",
35
- "get-tsconfig": "^4.10.0",
36
- "prisma": "^6.4.1",
37
- "prompts": "^2.4.2",
38
- "tinyexec": "^0.3.2",
39
- "unbuild": "^3.5.0",
40
- "yocto-spinner": "^0.2.1",
41
- "zod": "^3.24.2"
25
+ "jiti": "^2.4.2",
26
+ "open": "^10.1.1",
27
+ "package-manager-detector": "^1.2.0",
28
+ "picocolors": "^1.1.1",
29
+ "posthog-node": "^4.11.7",
30
+ "zod": "^3.24.2",
31
+ "@c15t/react": "1.2.0-canary.1",
32
+ "@c15t/backend": "1.2.0-canary.1"
42
33
  },
43
34
  "devDependencies": {
35
+ "@types/figlet": "^1.7.0",
44
36
  "@types/fs-extra": "^11.0.4",
45
- "vitest": "^3.0.8"
37
+ "vitest": "^3.1.1",
38
+ "@c15t/vitest-config": "1.0.0",
39
+ "@c15t/typescript-config": "0.0.1-beta.1"
46
40
  },
47
41
  "publishConfig": {
48
42
  "access": "public",
49
43
  "executableFiles": [
50
44
  "./dist/index.mjs"
51
45
  ]
46
+ },
47
+ "scripts": {
48
+ "build": "rslib build",
49
+ "check-types": "tsc --noEmit",
50
+ "dev": "rslib build --watch",
51
+ "fmt": "pnpm biome format --write . && biome check --formatter-enabled=false --linter-enabled=false --organize-imports-enabled=true --write",
52
+ "knip": "knip",
53
+ "lint": "pnpm biome lint ./src",
54
+ "start": "node ./dist/index.mjs",
55
+ "test": "vitest run",
56
+ "test:watch": "vitest"
52
57
  }
53
- }
58
+ }