@c15t/cli 1.8.3 → 2.0.0-rc.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 (187) hide show
  1. package/dist/760.mjs +1720 -0
  2. package/dist/__tests__/auth/config-store.test.d.ts +2 -0
  3. package/dist/__tests__/auth/config-store.test.d.ts.map +1 -0
  4. package/dist/__tests__/constants.test.d.ts +2 -0
  5. package/dist/__tests__/constants.test.d.ts.map +1 -0
  6. package/dist/__tests__/detection/layout.test.d.ts +2 -0
  7. package/dist/__tests__/detection/layout.test.d.ts.map +1 -0
  8. package/dist/__tests__/mocks/prompts.d.ts +25 -0
  9. package/dist/__tests__/mocks/prompts.d.ts.map +1 -0
  10. package/dist/__tests__/utils/validation.test.d.ts +2 -0
  11. package/dist/__tests__/utils/validation.test.d.ts.map +1 -0
  12. package/dist/auth/config-store.d.ts +63 -0
  13. package/dist/auth/config-store.d.ts.map +1 -0
  14. package/dist/auth/device-flow.d.ts +41 -0
  15. package/dist/auth/device-flow.d.ts.map +1 -0
  16. package/dist/auth/index.d.ts +7 -0
  17. package/dist/auth/index.d.ts.map +1 -0
  18. package/dist/auth/types.d.ts +90 -0
  19. package/dist/auth/types.d.ts.map +1 -0
  20. package/dist/commands/auth/index.d.ts +21 -0
  21. package/dist/commands/auth/index.d.ts.map +1 -0
  22. package/dist/commands/generate/index.d.ts +23 -2
  23. package/dist/commands/generate/index.d.ts.map +1 -1
  24. package/dist/commands/generate/options/c15t-mode.d.ts.map +1 -1
  25. package/dist/commands/generate/options/custom-mode.d.ts +3 -1
  26. package/dist/commands/generate/options/custom-mode.d.ts.map +1 -1
  27. package/dist/commands/generate/options/offline-mode.d.ts.map +1 -1
  28. package/dist/commands/generate/options/self-hosted-mode.d.ts.map +1 -1
  29. package/dist/commands/generate/options/shared/backend-options.d.ts +26 -0
  30. package/dist/commands/generate/options/shared/backend-options.d.ts.map +1 -0
  31. package/dist/commands/generate/options/shared/dev-tools.d.ts +9 -0
  32. package/dist/commands/generate/options/shared/dev-tools.d.ts.map +1 -0
  33. package/dist/commands/generate/options/shared/frontend-ui-options.d.ts +44 -0
  34. package/dist/commands/generate/options/shared/frontend-ui-options.d.ts.map +1 -0
  35. package/dist/commands/generate/options/shared/index.d.ts +9 -0
  36. package/dist/commands/generate/options/shared/index.d.ts.map +1 -0
  37. package/dist/commands/generate/options/shared/ssr.d.ts +21 -0
  38. package/dist/commands/generate/options/shared/ssr.d.ts.map +1 -0
  39. package/dist/commands/generate/options/utils/generate-files.d.ts +10 -2
  40. package/dist/commands/generate/options/utils/generate-files.d.ts.map +1 -1
  41. package/dist/commands/generate/preflight.d.ts +31 -0
  42. package/dist/commands/generate/preflight.d.ts.map +1 -0
  43. package/dist/commands/generate/prompts/expanded-theme.d.ts +46 -0
  44. package/dist/commands/generate/prompts/expanded-theme.d.ts.map +1 -0
  45. package/dist/commands/generate/prompts/index.d.ts +10 -0
  46. package/dist/commands/generate/prompts/index.d.ts.map +1 -0
  47. package/dist/commands/generate/prompts/instance.d.ts +33 -0
  48. package/dist/commands/generate/prompts/instance.d.ts.map +1 -0
  49. package/dist/commands/generate/prompts/mode-select.d.ts +42 -0
  50. package/dist/commands/generate/prompts/mode-select.d.ts.map +1 -0
  51. package/dist/commands/generate/prompts/scripts.d.ts +66 -0
  52. package/dist/commands/generate/prompts/scripts.d.ts.map +1 -0
  53. package/dist/commands/generate/prompts/theme.d.ts +46 -0
  54. package/dist/commands/generate/prompts/theme.d.ts.map +1 -0
  55. package/dist/commands/generate/prompts/ui-style.d.ts +36 -0
  56. package/dist/commands/generate/prompts/ui-style.d.ts.map +1 -0
  57. package/dist/commands/generate/summary.d.ts +37 -0
  58. package/dist/commands/generate/summary.d.ts.map +1 -0
  59. package/dist/commands/generate/templates/config.d.ts +7 -6
  60. package/dist/commands/generate/templates/config.d.ts.map +1 -1
  61. package/dist/commands/generate/templates/css.d.ts +12 -0
  62. package/dist/commands/generate/templates/css.d.ts.map +1 -0
  63. package/dist/commands/generate/templates/index.d.ts +1 -1
  64. package/dist/commands/generate/templates/index.d.ts.map +1 -1
  65. package/dist/commands/generate/templates/layout.d.ts +7 -0
  66. package/dist/commands/generate/templates/layout.d.ts.map +1 -1
  67. package/dist/commands/generate/templates/next/app/layout.d.ts +9 -2
  68. package/dist/commands/generate/templates/next/app/layout.d.ts.map +1 -1
  69. package/dist/commands/generate/templates/next/index.d.ts +7 -0
  70. package/dist/commands/generate/templates/next/index.d.ts.map +1 -1
  71. package/dist/commands/generate/templates/next/pages/layout.d.ts +3 -1
  72. package/dist/commands/generate/templates/next/pages/layout.d.ts.map +1 -1
  73. package/dist/commands/generate/templates/shared/components.d.ts +69 -0
  74. package/dist/commands/generate/templates/shared/components.d.ts.map +1 -0
  75. package/dist/commands/generate/templates/shared/directory.d.ts +71 -0
  76. package/dist/commands/generate/templates/shared/directory.d.ts.map +1 -0
  77. package/dist/commands/generate/templates/shared/expanded-components.d.ts +50 -0
  78. package/dist/commands/generate/templates/shared/expanded-components.d.ts.map +1 -0
  79. package/dist/commands/generate/templates/shared/framework-config.d.ts +18 -0
  80. package/dist/commands/generate/templates/shared/framework-config.d.ts.map +1 -0
  81. package/dist/commands/generate/templates/shared/layout-pipeline.d.ts +47 -0
  82. package/dist/commands/generate/templates/shared/layout-pipeline.d.ts.map +1 -0
  83. package/dist/commands/generate/templates/shared/module-specifier.d.ts +68 -0
  84. package/dist/commands/generate/templates/shared/module-specifier.d.ts.map +1 -0
  85. package/dist/commands/generate/templates/shared/options.d.ts +37 -20
  86. package/dist/commands/generate/templates/shared/options.d.ts.map +1 -1
  87. package/dist/commands/generate/templates/shared/scripts.d.ts +62 -0
  88. package/dist/commands/generate/templates/shared/scripts.d.ts.map +1 -0
  89. package/dist/commands/generate/templates/shared/server-components.d.ts +38 -0
  90. package/dist/commands/generate/templates/shared/server-components.d.ts.map +1 -0
  91. package/dist/commands/index.d.ts +8 -0
  92. package/dist/commands/index.d.ts.map +1 -0
  93. package/dist/commands/instances/index.d.ts +22 -0
  94. package/dist/commands/instances/index.d.ts.map +1 -0
  95. package/dist/commands/self-host/migrate/migrator-result.d.ts +1 -1
  96. package/dist/commands/self-host/migrate/migrator-result.d.ts.map +1 -1
  97. package/dist/commands/self-host/migrate/orm-result.d.ts +1 -1
  98. package/dist/commands/self-host/migrate/orm-result.d.ts.map +1 -1
  99. package/dist/commands/self-host/migrate/read-config.d.ts +1 -1
  100. package/dist/commands/self-host/migrate/read-config.d.ts.map +1 -1
  101. package/dist/constants.d.ts +101 -0
  102. package/dist/constants.d.ts.map +1 -0
  103. package/dist/context/framework-detection.d.ts +1 -0
  104. package/dist/context/framework-detection.d.ts.map +1 -1
  105. package/dist/context/types.d.ts +3 -3
  106. package/dist/context/types.d.ts.map +1 -1
  107. package/dist/core/context.d.ts +24 -0
  108. package/dist/core/context.d.ts.map +1 -0
  109. package/dist/core/errors.d.ts +214 -0
  110. package/dist/core/errors.d.ts.map +1 -0
  111. package/dist/core/index.d.ts +9 -0
  112. package/dist/core/index.d.ts.map +1 -0
  113. package/dist/core/logger.d.ts +50 -0
  114. package/dist/core/logger.d.ts.map +1 -0
  115. package/dist/core/parser.d.ts +35 -0
  116. package/dist/core/parser.d.ts.map +1 -0
  117. package/dist/core/telemetry.d.ts +78 -0
  118. package/dist/core/telemetry.d.ts.map +1 -0
  119. package/dist/detection/framework.d.ts +31 -0
  120. package/dist/detection/framework.d.ts.map +1 -0
  121. package/dist/detection/index.d.ts +7 -0
  122. package/dist/detection/index.d.ts.map +1 -0
  123. package/dist/detection/layout.d.ts +36 -0
  124. package/dist/detection/layout.d.ts.map +1 -0
  125. package/dist/detection/package-manager.d.ts +31 -0
  126. package/dist/detection/package-manager.d.ts.map +1 -0
  127. package/dist/index.d.ts +9 -0
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.mjs +2066 -1836
  130. package/dist/machines/generate/actions.d.ts +116 -0
  131. package/dist/machines/generate/actions.d.ts.map +1 -0
  132. package/dist/machines/generate/actors/dependencies.d.ts +43 -0
  133. package/dist/machines/generate/actors/dependencies.d.ts.map +1 -0
  134. package/dist/machines/generate/actors/file-generation.d.ts +54 -0
  135. package/dist/machines/generate/actors/file-generation.d.ts.map +1 -0
  136. package/dist/machines/generate/actors/preflight.d.ts +46 -0
  137. package/dist/machines/generate/actors/preflight.d.ts.map +1 -0
  138. package/dist/machines/generate/actors/prompts.d.ts +122 -0
  139. package/dist/machines/generate/actors/prompts.d.ts.map +1 -0
  140. package/dist/machines/generate/guards.d.ts +180 -0
  141. package/dist/machines/generate/guards.d.ts.map +1 -0
  142. package/dist/machines/generate/machine.d.ts +250 -0
  143. package/dist/machines/generate/machine.d.ts.map +1 -0
  144. package/dist/machines/generate/runner.d.ts +40 -0
  145. package/dist/machines/generate/runner.d.ts.map +1 -0
  146. package/dist/machines/generate/types.d.ts +189 -0
  147. package/dist/machines/generate/types.d.ts.map +1 -0
  148. package/dist/machines/index.d.ts +20 -0
  149. package/dist/machines/index.d.ts.map +1 -0
  150. package/dist/machines/persistence.d.ts +65 -0
  151. package/dist/machines/persistence.d.ts.map +1 -0
  152. package/dist/machines/telemetry-plugin.d.ts +54 -0
  153. package/dist/machines/telemetry-plugin.d.ts.map +1 -0
  154. package/dist/machines/types.d.ts +104 -0
  155. package/dist/machines/types.d.ts.map +1 -0
  156. package/dist/mcp/client.d.ts +61 -0
  157. package/dist/mcp/client.d.ts.map +1 -0
  158. package/dist/mcp/index.d.ts +6 -0
  159. package/dist/mcp/index.d.ts.map +1 -0
  160. package/dist/mcp/types.d.ts +84 -0
  161. package/dist/mcp/types.d.ts.map +1 -0
  162. package/dist/types.d.ts +238 -0
  163. package/dist/types.d.ts.map +1 -0
  164. package/dist/utils/formatter.d.ts +71 -0
  165. package/dist/utils/formatter.d.ts.map +1 -0
  166. package/dist/utils/fs.d.ts +80 -0
  167. package/dist/utils/fs.d.ts.map +1 -0
  168. package/dist/utils/index.d.ts +8 -0
  169. package/dist/utils/index.d.ts.map +1 -0
  170. package/dist/utils/spinner.d.ts +60 -0
  171. package/dist/utils/spinner.d.ts.map +1 -0
  172. package/dist/utils/telemetry.d.ts +4 -0
  173. package/dist/utils/telemetry.d.ts.map +1 -1
  174. package/dist/utils/validation.d.ts +68 -0
  175. package/dist/utils/validation.d.ts.map +1 -0
  176. package/package.json +63 -64
  177. package/LICENSE.md +0 -595
  178. package/dist/commands/generate/options/utils/shared-frontend.d.ts +0 -14
  179. package/dist/commands/generate/options/utils/shared-frontend.d.ts.map +0 -1
  180. package/dist/commands/generate/templates/backend.d.ts +0 -10
  181. package/dist/commands/generate/templates/backend.d.ts.map +0 -1
  182. package/dist/commands/generate/templates/next/app/components.d.ts +0 -44
  183. package/dist/commands/generate/templates/next/app/components.d.ts.map +0 -1
  184. package/dist/commands/generate/templates/next/pages/components.d.ts +0 -22
  185. package/dist/commands/generate/templates/next/pages/components.d.ts.map +0 -1
  186. package/dist/commands/generate/templates/react/components.d.ts +0 -21
  187. package/dist/commands/generate/templates/react/components.d.ts.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/auth/config-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/constants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layout.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/detection/layout.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Mock @clack/prompts for testing
3
+ */
4
+ import { type Mock } from 'vitest';
5
+ export interface MockPrompts {
6
+ select: Mock;
7
+ text: Mock;
8
+ confirm: Mock;
9
+ multiselect: Mock;
10
+ isCancel: Mock;
11
+ spinner: Mock;
12
+ log: {
13
+ message: Mock;
14
+ info: Mock;
15
+ warn: Mock;
16
+ error: Mock;
17
+ step: Mock;
18
+ };
19
+ intro: Mock;
20
+ outro: Mock;
21
+ note: Mock;
22
+ }
23
+ export declare function createMockPrompts(responses?: Record<string, unknown>): MockPrompts;
24
+ export declare function mockCancel(prompts: MockPrompts): void;
25
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/__tests__/mocks/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAM,MAAM,QAAQ,CAAC;AAEvC,MAAM,WAAW,WAAW;IAC3B,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,GAAG,EAAE;QACJ,OAAO,EAAE,IAAI,CAAC;QACd,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC;KACX,CAAC;IACF,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACX;AAED,wBAAgB,iBAAiB,CAChC,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,WAAW,CA8Cb;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAErD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/validation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Configuration store for c15t CLI credentials
3
+ *
4
+ * Stores authentication credentials and preferences in ~/.c15t/config.json
5
+ */
6
+ import type { AuthState, C15tConfig } from './types';
7
+ /**
8
+ * Get the path to the c15t config directory
9
+ */
10
+ export declare function getConfigDir(): string;
11
+ /**
12
+ * Get the path to the config file
13
+ */
14
+ export declare function getConfigPath(): string;
15
+ /**
16
+ * Load the stored configuration
17
+ */
18
+ export declare function loadConfig(): Promise<C15tConfig | null>;
19
+ /**
20
+ * Save configuration to the store
21
+ */
22
+ export declare function saveConfig(config: C15tConfig): Promise<void>;
23
+ /**
24
+ * Update specific fields in the configuration
25
+ */
26
+ export declare function updateConfig(updates: Partial<C15tConfig>): Promise<C15tConfig | null>;
27
+ /**
28
+ * Clear the stored configuration (logout)
29
+ */
30
+ export declare function clearConfig(): Promise<void>;
31
+ /**
32
+ * Check if the stored token is expired
33
+ */
34
+ export declare function isTokenExpired(config: C15tConfig): boolean;
35
+ /**
36
+ * Get the current auth state
37
+ */
38
+ export declare function getAuthState(): Promise<AuthState>;
39
+ /**
40
+ * Check if the user is logged in
41
+ */
42
+ export declare function isLoggedIn(): Promise<boolean>;
43
+ /**
44
+ * Get the stored access token
45
+ */
46
+ export declare function getAccessToken(): Promise<string | null>;
47
+ /**
48
+ * Get the selected instance ID
49
+ */
50
+ export declare function getSelectedInstanceId(): Promise<string | null>;
51
+ /**
52
+ * Set the selected instance ID
53
+ */
54
+ export declare function setSelectedInstanceId(instanceId: string): Promise<void>;
55
+ /**
56
+ * Store tokens from a token response
57
+ */
58
+ export declare function storeTokens(accessToken: string, options?: {
59
+ refreshToken?: string;
60
+ expiresIn?: number;
61
+ email?: string;
62
+ }): Promise<void>;
63
+ //# sourceMappingURL=config-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/auth/config-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAUD;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgB7D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASlE;AAED;;GAEG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC1B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAS5B;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAOjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAS1D;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAgBvD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAGnD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAM7D;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGpE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE;IACT,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACC,OAAO,CAAC,IAAI,CAAC,CAkBf"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * OAuth 2.0 Device Authorization Grant (RFC 8628)
3
+ *
4
+ * Implements the device flow for CLI authentication.
5
+ * The user is directed to a URL to authorize the device,
6
+ * while the CLI polls for the token.
7
+ */
8
+ import type { DeviceCodeResponse, DeviceFlowState, TokenResponse } from './types';
9
+ /**
10
+ * Initiate the device authorization flow
11
+ *
12
+ * Requests a device code and user code from the authorization server.
13
+ */
14
+ export declare function initiateDeviceFlow(baseUrl?: string): Promise<DeviceCodeResponse>;
15
+ /**
16
+ * Poll for the token
17
+ *
18
+ * Polls the token endpoint until the user authorizes the device,
19
+ * the request expires, or is denied.
20
+ */
21
+ export declare function pollForToken(baseUrl: string, deviceCode: string, interval?: number, expiresIn?: number): Promise<TokenResponse>;
22
+ /**
23
+ * Run the complete device flow
24
+ *
25
+ * Returns a state object that can be used to track the flow progress.
26
+ */
27
+ export declare function runDeviceFlow(baseUrl?: string, callbacks?: {
28
+ onDeviceCode?: (response: DeviceCodeResponse) => void;
29
+ onPolling?: () => void;
30
+ onSuccess?: (token: TokenResponse) => void;
31
+ onError?: (error: Error) => void;
32
+ }): Promise<DeviceFlowState>;
33
+ /**
34
+ * Format the user code for display (e.g., "ABCD-EFGH")
35
+ */
36
+ export declare function formatUserCode(userCode: string): string;
37
+ /**
38
+ * Get the complete verification URL with user code
39
+ */
40
+ export declare function getVerificationUrl(response: DeviceCodeResponse): string;
41
+ //# sourceMappingURL=device-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/auth/device-flow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACX,kBAAkB,EAElB,eAAe,EACf,aAAa,EACb,MAAM,SAAS,CAAC;AAoBjB;;;;GAIG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,GAAE,MAAwB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA+B7B;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CACjC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA2C,EACrD,SAAS,GAAE,MAAoC,GAC7C,OAAO,CAAC,aAAa,CAAC,CAmExB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,GAAE,MAAwB,EACjC,SAAS,CAAC,EAAE;IACX,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,GACC,OAAO,CAAC,eAAe,CAAC,CAiC1B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CASvE"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Auth module exports
3
+ */
4
+ export { clearConfig, getAccessToken, getAuthState, getConfigDir, getConfigPath, getSelectedInstanceId, isLoggedIn, isTokenExpired, loadConfig, saveConfig, setSelectedInstanceId, storeTokens, updateConfig, } from './config-store';
5
+ export { formatUserCode, getVerificationUrl, initiateDeviceFlow, pollForToken, runDeviceFlow, } from './device-flow';
6
+ export type { AuthState, C15tConfig, DeviceCodeResponse, DeviceFlowError, DeviceFlowErrorCode, DeviceFlowState, TokenResponse, } from './types';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACN,WAAW,EACX,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,qBAAqB,EACrB,WAAW,EACX,YAAY,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,GACb,MAAM,eAAe,CAAC;AAEvB,YAAY,EACX,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,GACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Authentication types
3
+ */
4
+ /**
5
+ * Stored configuration in ~/.c15t/config.json
6
+ */
7
+ export interface C15tConfig {
8
+ /** OAuth access token */
9
+ accessToken: string;
10
+ /** OAuth refresh token */
11
+ refreshToken?: string;
12
+ /** Token expiration timestamp (unix ms) */
13
+ expiresAt?: number;
14
+ /** Currently selected instance ID */
15
+ selectedInstanceId?: string;
16
+ /** Last login timestamp */
17
+ lastLogin?: number;
18
+ /** User email (for display purposes) */
19
+ email?: string;
20
+ }
21
+ /**
22
+ * Device code response from the authorization server (RFC 8628)
23
+ */
24
+ export interface DeviceCodeResponse {
25
+ /** The device verification code */
26
+ device_code: string;
27
+ /** The end-user verification code */
28
+ user_code: string;
29
+ /** The end-user verification URI */
30
+ verification_uri: string;
31
+ /** Complete verification URI with user code */
32
+ verification_uri_complete?: string;
33
+ /** Lifetime in seconds of the device_code and user_code */
34
+ expires_in: number;
35
+ /** Minimum time in seconds to wait between polling requests */
36
+ interval: number;
37
+ }
38
+ /**
39
+ * Token response from the authorization server
40
+ */
41
+ export interface TokenResponse {
42
+ /** The access token */
43
+ access_token: string;
44
+ /** The token type (usually "Bearer") */
45
+ token_type: string;
46
+ /** Lifetime in seconds of the access token */
47
+ expires_in?: number;
48
+ /** The refresh token */
49
+ refresh_token?: string;
50
+ /** The scope of the access token */
51
+ scope?: string;
52
+ }
53
+ /**
54
+ * Device flow error response
55
+ */
56
+ export interface DeviceFlowError {
57
+ /** Error code */
58
+ error: DeviceFlowErrorCode;
59
+ /** Human-readable error description */
60
+ error_description?: string;
61
+ }
62
+ /**
63
+ * Device flow error codes (RFC 8628)
64
+ */
65
+ export type DeviceFlowErrorCode = 'authorization_pending' | 'slow_down' | 'access_denied' | 'expired_token';
66
+ /**
67
+ * Device flow state
68
+ */
69
+ export interface DeviceFlowState {
70
+ /** Current state */
71
+ status: 'pending' | 'polling' | 'success' | 'error' | 'cancelled';
72
+ /** Device code response */
73
+ deviceCode?: DeviceCodeResponse;
74
+ /** Token response (on success) */
75
+ token?: TokenResponse;
76
+ /** Error message */
77
+ error?: string;
78
+ }
79
+ /**
80
+ * Auth state for the CLI
81
+ */
82
+ export interface AuthState {
83
+ /** Whether the user is logged in */
84
+ isLoggedIn: boolean;
85
+ /** The stored config */
86
+ config: C15tConfig | null;
87
+ /** Whether the token is expired */
88
+ isExpired: boolean;
89
+ }
90
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,iBAAiB;IACjB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAC5B,uBAAuB,GACvB,WAAW,GACX,eAAe,GACf,eAAe,CAAC;AAEnB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,oBAAoB;IACpB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IAClE,2BAA2B;IAC3B,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,kCAAkC;IAClC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Authentication commands (login/logout)
3
+ */
4
+ import type { CliCommand } from '../../types';
5
+ /**
6
+ * Login command definition
7
+ */
8
+ export declare const loginCommand: CliCommand;
9
+ /**
10
+ * Logout command definition
11
+ */
12
+ export declare const logoutCommand: CliCommand;
13
+ /**
14
+ * Auth status command definition (hidden, used as subcommand)
15
+ */
16
+ export declare const authStatusCommand: CliCommand;
17
+ /**
18
+ * All auth commands
19
+ */
20
+ export declare const authCommands: CliCommand[];
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAgL1D;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAO1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAM3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAO/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,cAAmD,CAAC"}
@@ -1,6 +1,27 @@
1
- import type { CliContext } from '../../context/types';
2
1
  /**
3
- * Generate command - loads config, allows updating via onboarding, then generates artifacts.
2
+ * Generate command - sets up c15t in a project
3
+ *
4
+ * This command uses a state machine to:
5
+ * 1. Run pre-flight checks
6
+ * 2. Prompt for storage mode selection
7
+ * 3. Configure the selected mode
8
+ * 4. Generate necessary files
9
+ * 5. Install dependencies
10
+ * 6. Display next steps
11
+ *
12
+ * Features:
13
+ * - Resume from interrupted state (--resume flag)
14
+ * - Automatic rollback on error/cancel
15
+ * - Unified cancellation handling
16
+ * - Auto-tracked telemetry
17
+ */
18
+ import type { CliCommand, CliContext } from '../../context/types';
19
+ /**
20
+ * Legacy generate function for backwards compatibility
4
21
  */
5
22
  export declare function generate(context: CliContext, mode?: string): Promise<void>;
23
+ /**
24
+ * Generate command definition
25
+ */
26
+ export declare const generateCommand: CliCommand;
6
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAYlD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,iBAoChE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA+C9D;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,iBAMhE;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAO7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"c15t-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/c15t-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKvD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IACjD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,eAAgB,SAAQ,WAAW;IAC5C,OAAO,EAAE,UAAU,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA8GD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,EACnC,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,YAAY,GACZ,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsC3C"}
1
+ {"version":3,"file":"c15t-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/c15t-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IACjD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,eAAgB,SAAQ,WAAW;IAC5C,OAAO,EAAE,UAAU,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AA8GD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,EACnC,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,YAAY,GACZ,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CA8D3C"}
@@ -10,6 +10,7 @@ export interface CustomModeResult extends BaseResult {
10
10
  interface CustomModeOptions extends BaseOptions {
11
11
  context: CliContext;
12
12
  spinner: ReturnType<typeof p.spinner>;
13
+ handleCancel?: (value: unknown) => boolean;
13
14
  }
14
15
  /**
15
16
  * Handles the setup process for custom implementation mode
@@ -17,8 +18,9 @@ interface CustomModeOptions extends BaseOptions {
17
18
  * @param context - CLI context
18
19
  * @param projectRoot - Project root directory
19
20
  * @param spinner - Spinner for loading indicators
21
+ * @param handleCancel - Function to handle prompt cancellations
20
22
  * @returns Configuration data for the custom mode
21
23
  */
22
- export declare function setupCustomMode({ context, spinner, }: CustomModeOptions): Promise<CustomModeResult>;
24
+ export declare function setupCustomMode({ context, spinner, handleCancel, }: CustomModeOptions): Promise<CustomModeResult>;
23
25
  export {};
24
26
  //# sourceMappingURL=custom-mode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/custom-mode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,iBAAkB,SAAQ,WAAW;IAC9C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,EACrC,OAAO,EACP,OAAO,GACP,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+B/C"}
1
+ {"version":3,"file":"custom-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/custom-mode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IACnD,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,iBAAkB,SAAQ,WAAW;IAC9C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,EACrC,OAAO,EACP,OAAO,EACP,YAAY,GACZ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuD/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"offline-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/offline-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACpD,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,YAAY,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwBjD"}
1
+ {"version":3,"file":"offline-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/offline-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACpD,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,YAAY,GACZ,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0CjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"self-hosted-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/self-hosted-mode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACrD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,mBAAoB,SAAQ,WAAW;IAChD,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED,wBAAsB,mBAAmB,CAAC,EACzC,OAAO,EACP,OAAO,EACP,YAAY,GACZ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgFnD"}
1
+ {"version":3,"file":"self-hosted-mode.d.ts","sourceRoot":"","sources":["../../../../src/commands/generate/options/self-hosted-mode.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAWzD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIvD,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACrD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,mBAAoB,SAAQ,WAAW;IAChD,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED,wBAAsB,mBAAmB,CAAC,EACzC,OAAO,EACP,OAAO,EACP,YAAY,GACZ,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+FnD"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Backend options composer
3
+ * Composes backend-related prompts (env file + proxy) for modes with a backend URL
4
+ */
5
+ import type { CliContext } from '../../../../context/types';
6
+ interface BackendOptionsInput {
7
+ context: CliContext;
8
+ backendURL: string;
9
+ handleCancel?: (value: unknown) => boolean;
10
+ }
11
+ interface BackendOptionsResult {
12
+ useEnvFile: boolean;
13
+ proxyNextjs?: boolean;
14
+ }
15
+ /**
16
+ * Composes backend-related prompts (env file + proxy).
17
+ * Only called for modes that have a backendURL.
18
+ *
19
+ * @param options.context - CLI context
20
+ * @param options.backendURL - The backend URL to configure
21
+ * @param options.handleCancel - Function to handle prompt cancellations
22
+ * @returns Configuration for env file and Next.js proxy
23
+ */
24
+ export declare function getBackendOptions({ context, backendURL, handleCancel, }: BackendOptionsInput): Promise<BackendOptionsResult>;
25
+ export {};
26
+ //# sourceMappingURL=backend-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-options.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/shared/backend-options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,mBAAmB;IAC5B,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED,UAAU,oBAAoB;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,EACvC,OAAO,EACP,UAAU,EACV,YAAY,GACZ,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8CrD"}
@@ -0,0 +1,9 @@
1
+ import type { CliContext } from '../../../../context/types';
2
+ interface GetDevToolsOptionOptions {
3
+ context: CliContext;
4
+ handleCancel?: (value: unknown) => boolean;
5
+ onCancel?: () => void;
6
+ }
7
+ export declare function getDevToolsOption({ context, handleCancel, onCancel, }: GetDevToolsOptionOptions): Promise<boolean>;
8
+ export {};
9
+ //# sourceMappingURL=dev-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-tools.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/shared/dev-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,wBAAwB;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAsB,iBAAiB,CAAC,EACvC,OAAO,EACP,YAAY,EACZ,QAAQ,GACR,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4C7C"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Frontend UI options composer
3
+ * Composes all frontend UI-related prompts based on detected framework
4
+ */
5
+ import type { CliContext } from '../../../../context/types';
6
+ import { type ExpandedTheme, type UIStyle } from '../../prompts';
7
+ interface FrontendUIOptionsInput {
8
+ context: CliContext;
9
+ /**
10
+ * Whether the mode has a backend URL.
11
+ * SSR is only relevant when there's a backend to fetch initial data from.
12
+ */
13
+ hasBackend?: boolean;
14
+ handleCancel?: (value: unknown) => boolean;
15
+ }
16
+ interface FrontendUIOptionsResult {
17
+ enableSSR?: boolean;
18
+ enableDevTools?: boolean;
19
+ uiStyle?: UIStyle;
20
+ expandedTheme?: ExpandedTheme;
21
+ }
22
+ /**
23
+ * Composes all frontend UI-related prompts based on detected framework:
24
+ *
25
+ * @c15t/nextjs (with backend):
26
+ * - SSR option (fetchInitialData)
27
+ * - UI style (prebuilt vs expanded)
28
+ * - Expanded theme (if expanded selected)
29
+ *
30
+ * @c15t/nextjs (without backend - offline/custom):
31
+ * - UI style (prebuilt vs expanded)
32
+ * - Expanded theme (if expanded selected)
33
+ *
34
+ * @c15t/react:
35
+ * - UI style (prebuilt vs expanded)
36
+ * - Expanded theme (if expanded selected)
37
+ * - DevTools option
38
+ *
39
+ * c15t (core):
40
+ * - DevTools option
41
+ */
42
+ export declare function getFrontendUIOptions({ context, hasBackend, handleCancel, }: FrontendUIOptionsInput): Promise<FrontendUIOptionsResult>;
43
+ export {};
44
+ //# sourceMappingURL=frontend-ui-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontend-ui-options.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/shared/frontend-ui-options.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACN,KAAK,aAAa,EAGlB,KAAK,OAAO,EACZ,MAAM,eAAe,CAAC;AAIvB,UAAU,sBAAsB;IAC/B,OAAO,EAAE,UAAU,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;CAC3C;AAED,UAAU,uBAAuB;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,oBAAoB,CAAC,EAC1C,OAAO,EACP,UAAkB,EAClB,YAAY,GACZ,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA6C3D"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared options utilities exports
3
+ */
4
+ export { getBackendOptions } from './backend-options';
5
+ export { getDevToolsOption } from './dev-tools';
6
+ export { getFrontendUIOptions } from './frontend-ui-options';
7
+ export { getScriptsToAdd } from './scripts';
8
+ export { getSSROption } from './ssr';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { CliContext } from '../../../../context/types';
2
+ interface GetSSROptionOptions {
3
+ context: CliContext;
4
+ handleCancel?: (value: unknown) => boolean;
5
+ onCancel?: () => void;
6
+ }
7
+ /**
8
+ * Prompts the user to enable SSR data fetching for Next.js App Router.
9
+ *
10
+ * @remarks
11
+ * SSR data fetching uses `fetchInitialData()` which requires Next.js `headers()` API.
12
+ * This is a dynamic API that:
13
+ * - Works in dynamic routes and server components
14
+ * - Forces the route to be dynamically rendered
15
+ * - Is not available during static generation
16
+ *
17
+ * @returns true if SSR should be enabled, false otherwise
18
+ */
19
+ export declare function getSSROption({ context, handleCancel, onCancel, }: GetSSROptionOptions): Promise<boolean>;
20
+ export {};
21
+ //# sourceMappingURL=ssr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/shared/ssr.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,UAAU,mBAAmB;IAC5B,OAAO,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,EAClC,OAAO,EACP,YAAY,EACZ,QAAQ,GACR,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CxC"}
@@ -1,11 +1,17 @@
1
1
  import type { CliContext } from '../../../../context/types';
2
+ import type { ExpandedTheme, UIStyle } from '../../prompts';
2
3
  import type { BaseOptions } from '../types';
3
4
  export interface GenerateFilesOptions extends BaseOptions {
4
5
  context: CliContext;
5
- mode: 'c15t' | 'offline' | 'custom';
6
+ mode: 'c15t' | 'self-hosted' | 'offline' | 'custom';
6
7
  proxyNextjs?: boolean;
7
8
  backendURL?: string;
8
9
  useEnvFile?: boolean;
10
+ enableSSR?: boolean;
11
+ enableDevTools?: boolean;
12
+ uiStyle?: UIStyle;
13
+ expandedTheme?: ExpandedTheme;
14
+ selectedScripts?: string[];
9
15
  }
10
16
  export interface GenerateFilesResult {
11
17
  configContent?: string;
@@ -15,6 +21,8 @@ export interface GenerateFilesResult {
15
21
  nextConfigUpdated?: boolean;
16
22
  nextConfigPath?: string | null;
17
23
  nextConfigCreated?: boolean;
24
+ tailwindCssUpdated?: boolean;
25
+ tailwindCssPath?: string | null;
18
26
  }
19
27
  /**
20
28
  * Generates appropriate files based on the package type and mode
@@ -22,5 +30,5 @@ export interface GenerateFilesResult {
22
30
  * @param options - Configuration options for file generation
23
31
  * @returns Information about generated/updated files
24
32
  */
25
- export declare function generateFiles({ context, mode, spinner, useEnvFile, proxyNextjs, backendURL, }: GenerateFilesOptions): Promise<GenerateFilesResult>;
33
+ export declare function generateFiles({ context, mode, spinner, useEnvFile, proxyNextjs, backendURL, enableSSR, enableDevTools, uiStyle, expandedTheme, selectedScripts, }: GenerateFilesOptions): Promise<GenerateFilesResult>;
26
34
  //# sourceMappingURL=generate-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-files.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/utils/generate-files.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAUlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAqOD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,EACnC,OAAO,EACP,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,GACV,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiErD"}
1
+ {"version":3,"file":"generate-files.d.ts","sourceRoot":"","sources":["../../../../../src/commands/generate/options/utils/generate-files.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACxD,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AA+PD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,EACnC,OAAO,EACP,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,EACP,aAAa,EACb,eAAe,GACf,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkGrD"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Pre-flight checks for the generate command
3
+ *
4
+ * Validates the project environment before starting generation.
5
+ */
6
+ import type { CliContext } from '../../context/types';
7
+ /**
8
+ * Pre-flight check result
9
+ */
10
+ export interface PreflightResult {
11
+ passed: boolean;
12
+ checks: PreflightCheck[];
13
+ }
14
+ /**
15
+ * Individual check result
16
+ */
17
+ export interface PreflightCheck {
18
+ name: string;
19
+ status: 'pass' | 'warn' | 'fail';
20
+ message: string;
21
+ hint?: string;
22
+ }
23
+ /**
24
+ * Run all pre-flight checks
25
+ */
26
+ export declare function runPreflightChecks(context: CliContext): Promise<PreflightResult>;
27
+ /**
28
+ * Display pre-flight failure message
29
+ */
30
+ export declare function displayPreflightFailure(context: CliContext, result: PreflightResult): void;
31
+ //# sourceMappingURL=preflight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.d.ts","sourceRoot":"","sources":["../../../src/commands/generate/preflight.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAeD;;GAEG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,UAAU,GACjB,OAAO,CAAC,eAAe,CAAC,CA+E1B;AAkDD;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,eAAe,GACrB,IAAI,CAgBN"}