alepha 0.14.4 → 0.15.0

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 (277) hide show
  1. package/README.md +1 -4
  2. package/dist/api/audits/index.d.ts +619 -731
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/files/index.d.ts +185 -298
  5. package/dist/api/files/index.d.ts.map +1 -1
  6. package/dist/api/files/index.js +0 -1
  7. package/dist/api/files/index.js.map +1 -1
  8. package/dist/api/jobs/index.d.ts +245 -356
  9. package/dist/api/jobs/index.d.ts.map +1 -1
  10. package/dist/api/notifications/index.d.ts +238 -350
  11. package/dist/api/notifications/index.d.ts.map +1 -1
  12. package/dist/api/parameters/index.d.ts +499 -611
  13. package/dist/api/parameters/index.d.ts.map +1 -1
  14. package/dist/api/users/index.browser.js +1 -2
  15. package/dist/api/users/index.browser.js.map +1 -1
  16. package/dist/api/users/index.d.ts +1697 -1804
  17. package/dist/api/users/index.d.ts.map +1 -1
  18. package/dist/api/users/index.js +178 -151
  19. package/dist/api/users/index.js.map +1 -1
  20. package/dist/api/verifications/index.d.ts +132 -132
  21. package/dist/api/verifications/index.d.ts.map +1 -1
  22. package/dist/batch/index.d.ts +122 -122
  23. package/dist/batch/index.d.ts.map +1 -1
  24. package/dist/batch/index.js +1 -2
  25. package/dist/batch/index.js.map +1 -1
  26. package/dist/bucket/index.d.ts +163 -163
  27. package/dist/bucket/index.d.ts.map +1 -1
  28. package/dist/cache/core/index.d.ts +46 -46
  29. package/dist/cache/core/index.d.ts.map +1 -1
  30. package/dist/cache/redis/index.d.ts.map +1 -1
  31. package/dist/cli/index.d.ts +302 -299
  32. package/dist/cli/index.d.ts.map +1 -1
  33. package/dist/cli/index.js +966 -564
  34. package/dist/cli/index.js.map +1 -1
  35. package/dist/command/index.d.ts +303 -299
  36. package/dist/command/index.d.ts.map +1 -1
  37. package/dist/command/index.js +11 -7
  38. package/dist/command/index.js.map +1 -1
  39. package/dist/core/index.browser.js +419 -99
  40. package/dist/core/index.browser.js.map +1 -1
  41. package/dist/core/index.d.ts +718 -625
  42. package/dist/core/index.d.ts.map +1 -1
  43. package/dist/core/index.js +420 -99
  44. package/dist/core/index.js.map +1 -1
  45. package/dist/core/index.native.js +419 -99
  46. package/dist/core/index.native.js.map +1 -1
  47. package/dist/datetime/index.d.ts +44 -44
  48. package/dist/datetime/index.d.ts.map +1 -1
  49. package/dist/datetime/index.js +4 -4
  50. package/dist/datetime/index.js.map +1 -1
  51. package/dist/email/index.d.ts +97 -50
  52. package/dist/email/index.d.ts.map +1 -1
  53. package/dist/email/index.js +129 -33
  54. package/dist/email/index.js.map +1 -1
  55. package/dist/fake/index.d.ts +7981 -14
  56. package/dist/fake/index.d.ts.map +1 -1
  57. package/dist/file/index.d.ts +523 -390
  58. package/dist/file/index.d.ts.map +1 -1
  59. package/dist/file/index.js +253 -1
  60. package/dist/file/index.js.map +1 -1
  61. package/dist/lock/core/index.d.ts +208 -208
  62. package/dist/lock/core/index.d.ts.map +1 -1
  63. package/dist/lock/redis/index.d.ts.map +1 -1
  64. package/dist/logger/index.d.ts +25 -26
  65. package/dist/logger/index.d.ts.map +1 -1
  66. package/dist/mcp/index.d.ts +197 -197
  67. package/dist/mcp/index.d.ts.map +1 -1
  68. package/dist/orm/chunk-DtkW-qnP.js +38 -0
  69. package/dist/orm/index.browser.js.map +1 -1
  70. package/dist/orm/index.bun.js +2814 -0
  71. package/dist/orm/index.bun.js.map +1 -0
  72. package/dist/orm/index.d.ts +1205 -1057
  73. package/dist/orm/index.d.ts.map +1 -1
  74. package/dist/orm/index.js +2056 -1753
  75. package/dist/orm/index.js.map +1 -1
  76. package/dist/queue/core/index.d.ts +248 -248
  77. package/dist/queue/core/index.d.ts.map +1 -1
  78. package/dist/queue/redis/index.d.ts.map +1 -1
  79. package/dist/redis/index.bun.js +285 -0
  80. package/dist/redis/index.bun.js.map +1 -0
  81. package/dist/redis/index.d.ts +118 -136
  82. package/dist/redis/index.d.ts.map +1 -1
  83. package/dist/redis/index.js +18 -38
  84. package/dist/redis/index.js.map +1 -1
  85. package/dist/retry/index.d.ts +69 -69
  86. package/dist/retry/index.d.ts.map +1 -1
  87. package/dist/router/index.d.ts +6 -6
  88. package/dist/router/index.d.ts.map +1 -1
  89. package/dist/scheduler/index.d.ts +25 -25
  90. package/dist/scheduler/index.d.ts.map +1 -1
  91. package/dist/security/index.browser.js +5 -1
  92. package/dist/security/index.browser.js.map +1 -1
  93. package/dist/security/index.d.ts +417 -254
  94. package/dist/security/index.d.ts.map +1 -1
  95. package/dist/security/index.js +386 -86
  96. package/dist/security/index.js.map +1 -1
  97. package/dist/server/auth/index.d.ts +277 -277
  98. package/dist/server/auth/index.d.ts.map +1 -1
  99. package/dist/server/auth/index.js +20 -20
  100. package/dist/server/auth/index.js.map +1 -1
  101. package/dist/server/cache/index.d.ts +60 -57
  102. package/dist/server/cache/index.d.ts.map +1 -1
  103. package/dist/server/cache/index.js +1 -1
  104. package/dist/server/cache/index.js.map +1 -1
  105. package/dist/server/compress/index.d.ts +3 -3
  106. package/dist/server/compress/index.d.ts.map +1 -1
  107. package/dist/server/cookies/index.d.ts +6 -6
  108. package/dist/server/cookies/index.d.ts.map +1 -1
  109. package/dist/server/cookies/index.js +3 -3
  110. package/dist/server/cookies/index.js.map +1 -1
  111. package/dist/server/core/index.d.ts +242 -150
  112. package/dist/server/core/index.d.ts.map +1 -1
  113. package/dist/server/core/index.js +288 -122
  114. package/dist/server/core/index.js.map +1 -1
  115. package/dist/server/cors/index.d.ts +11 -12
  116. package/dist/server/cors/index.d.ts.map +1 -1
  117. package/dist/server/health/index.d.ts +0 -1
  118. package/dist/server/health/index.d.ts.map +1 -1
  119. package/dist/server/helmet/index.d.ts +2 -2
  120. package/dist/server/helmet/index.d.ts.map +1 -1
  121. package/dist/server/links/index.browser.js.map +1 -1
  122. package/dist/server/links/index.d.ts +84 -85
  123. package/dist/server/links/index.d.ts.map +1 -1
  124. package/dist/server/links/index.js +1 -2
  125. package/dist/server/links/index.js.map +1 -1
  126. package/dist/server/metrics/index.d.ts.map +1 -1
  127. package/dist/server/multipart/index.d.ts +6 -6
  128. package/dist/server/multipart/index.d.ts.map +1 -1
  129. package/dist/server/proxy/index.d.ts +102 -103
  130. package/dist/server/proxy/index.d.ts.map +1 -1
  131. package/dist/server/rate-limit/index.d.ts +16 -16
  132. package/dist/server/rate-limit/index.d.ts.map +1 -1
  133. package/dist/server/static/index.d.ts +44 -44
  134. package/dist/server/static/index.d.ts.map +1 -1
  135. package/dist/server/swagger/index.d.ts +48 -49
  136. package/dist/server/swagger/index.d.ts.map +1 -1
  137. package/dist/server/swagger/index.js +1 -2
  138. package/dist/server/swagger/index.js.map +1 -1
  139. package/dist/sms/index.d.ts +13 -11
  140. package/dist/sms/index.d.ts.map +1 -1
  141. package/dist/sms/index.js +7 -7
  142. package/dist/sms/index.js.map +1 -1
  143. package/dist/thread/index.d.ts +71 -72
  144. package/dist/thread/index.d.ts.map +1 -1
  145. package/dist/topic/core/index.d.ts +318 -318
  146. package/dist/topic/core/index.d.ts.map +1 -1
  147. package/dist/topic/redis/index.d.ts +6 -6
  148. package/dist/topic/redis/index.d.ts.map +1 -1
  149. package/dist/vite/index.d.ts +5720 -159
  150. package/dist/vite/index.d.ts.map +1 -1
  151. package/dist/vite/index.js +41 -18
  152. package/dist/vite/index.js.map +1 -1
  153. package/dist/websocket/index.browser.js +6 -6
  154. package/dist/websocket/index.browser.js.map +1 -1
  155. package/dist/websocket/index.d.ts +247 -247
  156. package/dist/websocket/index.d.ts.map +1 -1
  157. package/dist/websocket/index.js +6 -6
  158. package/dist/websocket/index.js.map +1 -1
  159. package/package.json +9 -14
  160. package/src/api/files/controllers/AdminFileStatsController.ts +0 -1
  161. package/src/api/users/atoms/realmAuthSettingsAtom.ts +5 -0
  162. package/src/api/users/controllers/{UserRealmController.ts → RealmController.ts} +11 -11
  163. package/src/api/users/entities/users.ts +1 -1
  164. package/src/api/users/index.ts +8 -8
  165. package/src/api/users/primitives/{$userRealm.ts → $realm.ts} +17 -19
  166. package/src/api/users/providers/{UserRealmProvider.ts → RealmProvider.ts} +26 -30
  167. package/src/api/users/schemas/{userRealmConfigSchema.ts → realmConfigSchema.ts} +2 -2
  168. package/src/api/users/services/CredentialService.ts +7 -7
  169. package/src/api/users/services/IdentityService.ts +4 -4
  170. package/src/api/users/services/RegistrationService.spec.ts +25 -27
  171. package/src/api/users/services/RegistrationService.ts +38 -27
  172. package/src/api/users/services/SessionCrudService.ts +3 -3
  173. package/src/api/users/services/SessionService.spec.ts +3 -3
  174. package/src/api/users/services/SessionService.ts +28 -9
  175. package/src/api/users/services/UserService.ts +7 -7
  176. package/src/batch/providers/BatchProvider.ts +1 -2
  177. package/src/cli/apps/AlephaPackageBuilderCli.ts +38 -19
  178. package/src/cli/assets/apiHelloControllerTs.ts +18 -0
  179. package/src/cli/assets/apiIndexTs.ts +16 -0
  180. package/src/cli/assets/claudeMd.ts +303 -0
  181. package/src/cli/assets/mainBrowserTs.ts +2 -2
  182. package/src/cli/assets/mainServerTs.ts +24 -0
  183. package/src/cli/assets/webAppRouterTs.ts +15 -0
  184. package/src/cli/assets/webHelloComponentTsx.ts +16 -0
  185. package/src/cli/assets/webIndexTs.ts +16 -0
  186. package/src/cli/commands/build.ts +41 -21
  187. package/src/cli/commands/db.ts +21 -18
  188. package/src/cli/commands/deploy.ts +17 -5
  189. package/src/cli/commands/dev.ts +13 -17
  190. package/src/cli/commands/format.ts +8 -2
  191. package/src/cli/commands/init.ts +74 -29
  192. package/src/cli/commands/lint.ts +8 -2
  193. package/src/cli/commands/test.ts +8 -2
  194. package/src/cli/commands/typecheck.ts +5 -1
  195. package/src/cli/commands/verify.ts +4 -2
  196. package/src/cli/services/AlephaCliUtils.ts +39 -600
  197. package/src/cli/services/PackageManagerUtils.ts +301 -0
  198. package/src/cli/services/ProjectScaffolder.ts +306 -0
  199. package/src/command/helpers/Runner.ts +15 -3
  200. package/src/core/__tests__/Alepha-graph.spec.ts +4 -0
  201. package/src/core/index.shared.ts +1 -0
  202. package/src/core/index.ts +2 -0
  203. package/src/core/primitives/$hook.ts +6 -2
  204. package/src/core/primitives/$module.spec.ts +4 -0
  205. package/src/core/providers/AlsProvider.ts +1 -1
  206. package/src/core/providers/CodecManager.spec.ts +12 -6
  207. package/src/core/providers/CodecManager.ts +26 -6
  208. package/src/core/providers/EventManager.ts +169 -13
  209. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +621 -0
  210. package/src/core/providers/KeylessJsonSchemaCodec.ts +407 -0
  211. package/src/core/providers/StateManager.spec.ts +27 -16
  212. package/src/email/providers/LocalEmailProvider.spec.ts +111 -87
  213. package/src/email/providers/LocalEmailProvider.ts +52 -15
  214. package/src/email/providers/NodemailerEmailProvider.ts +167 -56
  215. package/src/file/errors/FileError.ts +7 -0
  216. package/src/file/index.ts +9 -1
  217. package/src/file/providers/MemoryFileSystemProvider.ts +393 -0
  218. package/src/orm/index.browser.ts +1 -19
  219. package/src/orm/index.bun.ts +77 -0
  220. package/src/orm/index.shared-server.ts +22 -0
  221. package/src/orm/index.shared.ts +15 -0
  222. package/src/orm/index.ts +19 -39
  223. package/src/orm/providers/drivers/BunPostgresProvider.ts +3 -5
  224. package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -1
  225. package/src/orm/providers/drivers/CloudflareD1Provider.ts +4 -0
  226. package/src/orm/providers/drivers/DatabaseProvider.ts +4 -0
  227. package/src/orm/providers/drivers/PglitePostgresProvider.ts +4 -0
  228. package/src/orm/services/Repository.ts +8 -0
  229. package/src/redis/index.bun.ts +35 -0
  230. package/src/redis/providers/BunRedisProvider.ts +12 -43
  231. package/src/redis/providers/BunRedisSubscriberProvider.ts +2 -3
  232. package/src/redis/providers/NodeRedisProvider.ts +16 -34
  233. package/src/{server/security → security}/__tests__/BasicAuth.spec.ts +11 -11
  234. package/src/{server/security → security}/__tests__/ServerSecurityProvider-realm.spec.ts +21 -16
  235. package/src/{server/security/providers → security/__tests__}/ServerSecurityProvider.spec.ts +5 -5
  236. package/src/security/index.browser.ts +5 -0
  237. package/src/security/index.ts +90 -7
  238. package/src/security/primitives/{$realm.spec.ts → $issuer.spec.ts} +11 -11
  239. package/src/security/primitives/{$realm.ts → $issuer.ts} +20 -17
  240. package/src/security/primitives/$role.ts +5 -5
  241. package/src/security/primitives/$serviceAccount.spec.ts +5 -5
  242. package/src/security/primitives/$serviceAccount.ts +3 -3
  243. package/src/{server/security → security}/providers/ServerSecurityProvider.ts +5 -7
  244. package/src/server/auth/primitives/$auth.ts +10 -10
  245. package/src/server/auth/primitives/$authCredentials.ts +3 -3
  246. package/src/server/auth/primitives/$authGithub.ts +3 -3
  247. package/src/server/auth/primitives/$authGoogle.ts +3 -3
  248. package/src/server/auth/providers/ServerAuthProvider.ts +13 -13
  249. package/src/server/cache/providers/ServerCacheProvider.ts +1 -1
  250. package/src/server/cookies/providers/ServerCookiesProvider.ts +3 -3
  251. package/src/server/core/providers/NodeHttpServerProvider.ts +25 -6
  252. package/src/server/core/providers/ServerBodyParserProvider.ts +19 -23
  253. package/src/server/core/providers/ServerLoggerProvider.ts +23 -19
  254. package/src/server/core/providers/ServerProvider.ts +144 -21
  255. package/src/server/core/providers/ServerRouterProvider.ts +259 -115
  256. package/src/server/core/providers/ServerTimingProvider.ts +2 -2
  257. package/src/server/links/index.ts +1 -1
  258. package/src/server/links/providers/LinkProvider.ts +1 -1
  259. package/src/server/swagger/index.ts +1 -1
  260. package/src/sms/providers/LocalSmsProvider.spec.ts +153 -111
  261. package/src/sms/providers/LocalSmsProvider.ts +8 -7
  262. package/src/vite/helpers/boot.ts +28 -17
  263. package/src/vite/tasks/buildServer.ts +12 -1
  264. package/src/vite/tasks/devServer.ts +3 -1
  265. package/src/vite/tasks/generateCloudflare.ts +7 -0
  266. package/dist/server/security/index.browser.js +0 -13
  267. package/dist/server/security/index.browser.js.map +0 -1
  268. package/dist/server/security/index.d.ts +0 -173
  269. package/dist/server/security/index.d.ts.map +0 -1
  270. package/dist/server/security/index.js +0 -311
  271. package/dist/server/security/index.js.map +0 -1
  272. package/src/cli/assets/appRouterTs.ts +0 -9
  273. package/src/cli/assets/mainTs.ts +0 -13
  274. package/src/server/security/index.browser.ts +0 -10
  275. package/src/server/security/index.ts +0 -94
  276. /package/src/{server/security → security}/primitives/$basicAuth.ts +0 -0
  277. /package/src/{server/security → security}/providers/ServerBasicAuthProvider.ts +0 -0
@@ -17,6 +17,7 @@ interface Module {
17
17
  dependencies: string[];
18
18
  native?: boolean;
19
19
  browser?: boolean;
20
+ bun?: boolean;
20
21
  node?: boolean;
21
22
  }
22
23
  declare class AlephaPackageBuilderCli {
@@ -47,231 +48,213 @@ declare const DEFAULT_IGNORE: string[];
47
48
  */
48
49
  declare const changelogOptions: alepha0.Atom<alepha0.TObject<{
49
50
  /**
50
- * Scopes to ignore (e.g., "project", "release", "chore").
51
- * Commits like `feat(chore): ...` will be excluded from changelog.
52
- */
51
+ * Scopes to ignore (e.g., "project", "release", "chore").
52
+ * Commits like `feat(chore): ...` will be excluded from changelog.
53
+ */
53
54
  ignore: alepha0.TOptional<alepha0.TArray<alepha0.TString>>;
54
55
  }>, "alepha.changelog">;
55
56
  type ChangelogOptions = Static<typeof changelogOptions.schema>;
56
57
  //#endregion
57
58
  //#region ../../src/cli/services/AlephaCliUtils.d.ts
58
59
  /**
59
- * Utility service for common project operations used by CLI commands.
60
+ * Core utility service for CLI commands.
60
61
  *
61
- * This service provides helper methods for:
62
- * - Project configuration file management (tsconfig.json, package.json, etc.)
63
- * - Package manager setup (Yarn, npm, pnpm)
64
- * - Sample project downloading
65
- * - Drizzle ORM/Kit utilities
66
- * - Alepha instance loading
62
+ * Provides:
63
+ * - Command execution
64
+ * - File editing helpers
65
+ * - Drizzle/ORM utilities
66
+ * - Environment loading
67
67
  */
68
68
  declare class AlephaCliUtils {
69
69
  protected readonly log: alepha_logger7.Logger;
70
70
  protected readonly fs: FileSystemProvider;
71
71
  protected readonly envUtils: EnvUtils;
72
- protected readonly alepha: Alepha;
73
72
  /**
74
- * Execute a command using npx with inherited stdio.
75
- *
76
- * @example
77
- * ```ts
78
- * const runner = alepha.inject(ProcessRunner);
79
- * await runner.exec("tsx watch src/index.ts");
80
- * ```
81
- */
73
+ * Execute a command with inherited stdio.
74
+ */
82
75
  exec(command: string, options?: {
76
+ root?: string;
83
77
  env?: Record<string, string>;
84
78
  global?: boolean;
85
79
  }): Promise<void>;
86
80
  /**
87
- * Write a configuration file to node_modules/.alepha directory.
88
- *
89
- * Creates the .alepha directory if it doesn't exist and writes the file with the given content.
90
- *
91
- * @param name - The name of the config file to create
92
- * @param content - The content to write to the file
93
- * @param root - The root directory (defaults to process.cwd())
94
- * @returns The absolute path to the created file
95
- *
96
- * @example
97
- * ```ts
98
- * const runner = alepha.inject(ProcessRunner);
99
- * const configPath = await runner.writeConfigFile("biome.json", biomeConfig);
100
- * ```
101
- */
81
+ * Write a configuration file to node_modules/.alepha directory.
82
+ */
102
83
  writeConfigFile(name: string, content: string, root?: string): Promise<string>;
103
- editFile(root: string, name: string, editFn: (content: string) => string | Promise<string>): Promise<void>;
104
- editJsonFile(root: string, name: string, editFn: (obj: any) => any | Promise<any>): Promise<void>;
105
- removeFiles(root: string, files: string[]): Promise<void>;
106
- removeYarn(root: string): Promise<void>;
107
- removePnpm(root: string): Promise<void>;
108
- removeNpm(root: string): Promise<void>;
109
- removeBun(root: string): Promise<void>;
110
- removeAllPmFilesExcept(root: string, except: string): Promise<void>;
111
- /**
112
- * Ensure Yarn is configured in the project directory.
113
- *
114
- * Creates a .yarnrc.yml file with node-modules linker if it doesn't exist.
115
- *
116
- * @param root - The root directory of the project
117
- */
118
- ensureYarn(root: string): Promise<void>;
119
- ensureBun(root: string): Promise<void>;
120
- ensurePnpm(root: string): Promise<void>;
121
- ensureNpm(root: string): Promise<void>;
122
- /**
123
- * Generate package.json content with Alepha dependencies.
124
- *
125
- * @param modes - Configuration for which dependencies to include
126
- * @returns Package.json partial with dependencies, devDependencies, and scripts
127
- */
128
- generatePackageJsonContent(modes: DependencyModes): {
129
- dependencies: Record<string, string>;
130
- devDependencies: Record<string, string>;
131
- scripts: Record<string, string>;
132
- type: "module";
133
- };
134
84
  /**
135
- * Ensure package.json exists and has correct configuration.
136
- *
137
- * Creates a new package.json if none exists, or updates an existing one to:
138
- * - Set "type": "module"
139
- * - Add Alepha dependencies
140
- * - Add standard scripts
141
- *
142
- * @param root - The root directory of the project
143
- * @param modes - Configuration for which dependencies to include
144
- */
145
- ensurePackageJson(root: string, modes: DependencyModes): Promise<object>;
146
- ensureConfig(root: string, opts: {
147
- packageJson?: boolean | DependencyModes;
148
- tsconfigJson?: boolean;
149
- indexHtml?: boolean;
150
- biomeJson?: boolean;
151
- editorconfig?: boolean;
152
- }): Promise<Array<void | object>>;
153
- /**
154
- * Ensure tsconfig.json exists in the project.
155
- *
156
- * Creates a standard Alepha tsconfig.json if none exists.
157
- *
158
- * @param root - The root directory of the project
159
- */
160
- ensureTsConfig(root: string): Promise<void>;
161
- protected checkFileExists(root: string, name: string, checkParentDirectories?: boolean): Promise<string | undefined>;
162
- protected ensureFileExists(root: string, name: string, content: string, checkParentDirectories?: boolean): Promise<void>;
163
- /**
164
- * Get the path to Biome configuration file.
165
- *
166
- * Looks for an existing biome.json in the project root, or creates one if it doesn't exist.
167
- */
168
- ensureBiomeConfig(root: string): Promise<void>;
169
- /**
170
- * Ensure .editorconfig exists in the project.
171
- *
172
- * Creates a standard .editorconfig if none exists.
173
- *
174
- * @param root - The root directory of the project
175
- */
176
- ensureEditorConfig(root: string): Promise<void>;
177
- /**
178
- * Load Alepha instance from a server entry file.
179
- *
180
- * Dynamically imports the server entry file and extracts the Alepha instance.
181
- * Skips the automatic start process.
182
- *
183
- * @param rootDir - The root directory of the project
184
- * @param explicitEntry - Optional explicit path to the entry file
185
- * @returns Object containing the Alepha instance and the entry file path
186
- * @throws {AlephaError} If the Alepha instance cannot be found
187
- */
85
+ * Load Alepha instance from a server entry file.
86
+ */
188
87
  loadAlephaFromServerEntryFile(rootDir?: string, explicitEntry?: string): Promise<{
189
88
  alepha: Alepha;
190
89
  entry: string;
191
90
  }>;
192
91
  /**
193
- * Generate JavaScript code for Drizzle entities export.
194
- *
195
- * Creates a temporary entities.js file that imports from the entry file
196
- * and exports database models for Drizzle Kit to process.
197
- *
198
- * @param entry - Path to the server entry file
199
- * @param provider - Name of the database provider
200
- * @param models - Array of model names to export
201
- * @returns JavaScript code as a string
202
- */
92
+ * Generate JavaScript code for Drizzle entities export.
93
+ */
203
94
  generateEntitiesJs(entry: string, provider: string, models?: string[]): string;
204
95
  /**
205
- * Load environment variables from a .env file.
206
- *
207
- * Reads the .env file in the specified root directory and sets
208
- * the environment variables in process.env.
209
- */
96
+ * Load environment variables from a .env file.
97
+ */
210
98
  loadEnv(root: string, files?: string[]): Promise<void>;
99
+ exists(root: string, path: string): Promise<boolean>;
100
+ protected checkFileExists(root: string, name: string): Promise<string | undefined>;
101
+ }
102
+ //#endregion
103
+ //#region ../../src/cli/services/PackageManagerUtils.d.ts
104
+ /**
105
+ * Utility service for package manager operations.
106
+ *
107
+ * Handles detection, installation, and cleanup for:
108
+ * - Yarn
109
+ * - npm
110
+ * - pnpm
111
+ * - Bun
112
+ */
113
+ declare class PackageManagerUtils {
114
+ protected readonly log: alepha_logger7.Logger;
115
+ protected readonly fs: FileSystemProvider;
116
+ protected readonly alepha: Alepha;
117
+ /**
118
+ * Detect the package manager used in the project.
119
+ */
211
120
  getPackageManager(root: string, flags?: {
212
121
  yarn?: boolean;
213
122
  pnpm?: boolean;
214
123
  npm?: boolean;
215
124
  bun?: boolean;
216
125
  }): Promise<"yarn" | "pnpm" | "npm" | "bun">;
217
- ensureIndexHtml(root: string): Promise<void>;
218
- exists(root: string, dirName: string): Promise<boolean>;
219
- /**
220
- * Ensure src/main.ts exists with a minimal Alepha bootstrap.
221
- *
222
- * Creates the src directory and main.ts file if the src directory
223
- * doesn't exist or is empty.
224
- *
225
- * @param root - The root directory of the project
226
- */
227
- ensureSrcMain(root: string): Promise<void>;
228
- /**
229
- * Ensure test directory exists with a dummy test file.
230
- *
231
- * Creates the test directory and a dummy.spec.ts file if the test directory
232
- * doesn't exist or is empty.
233
- *
234
- * @param root - The root directory of the project
235
- */
236
- ensureTestDir(root: string): Promise<void>;
237
- readPackageJson(root: string): Promise<Record<string, any>>;
238
126
  /**
239
- * Check if a dependency is installed in the project.
240
- *
241
- * @param root - The root directory of the project
242
- * @param packageName - The name of the package to check
243
- * @returns True if the package is in dependencies or devDependencies
244
- */
127
+ * Get the install command for a package.
128
+ */
129
+ getInstallCommand(root: string, packageName: string, dev?: boolean): Promise<string>;
130
+ /**
131
+ * Check if a dependency is installed in the project.
132
+ */
245
133
  hasDependency(root: string, packageName: string): Promise<boolean>;
246
134
  /**
247
- * Check if Expo is present in the project.
248
- *
249
- * @param root - The root directory of the project
250
- * @returns True if expo is in dependencies or devDependencies
251
- */
135
+ * Check if Expo is present in the project.
136
+ */
252
137
  hasExpo(root: string): Promise<boolean>;
253
- getInstallCommand(root: string, packageName: string, dev?: boolean): Promise<string>;
254
138
  /**
255
- * Install a dependency if it's missing from the project.
256
- *
257
- * Automatically detects the package manager (yarn, pnpm, npm) and installs
258
- * the package as a dev dependency if not already present.
259
- */
139
+ * Install a dependency if it's missing from the project.
140
+ */
260
141
  ensureDependency(root: string, packageName: string, options?: {
261
142
  dev?: boolean;
262
143
  run?: RunnerMethod;
144
+ exec?: (cmd: string, opts?: {
145
+ global?: boolean;
146
+ root?: string;
147
+ }) => Promise<void>;
263
148
  }): Promise<void>;
149
+ ensureYarn(root: string): Promise<void>;
150
+ ensureBun(root: string): Promise<void>;
151
+ ensurePnpm(root: string): Promise<void>;
152
+ ensureNpm(root: string): Promise<void>;
153
+ removeAllPmFilesExcept(root: string, except: string): Promise<void>;
154
+ removeYarn(root: string): Promise<void>;
155
+ removePnpm(root: string): Promise<void>;
156
+ removeNpm(root: string): Promise<void>;
157
+ removeBun(root: string): Promise<void>;
158
+ readPackageJson(root: string): Promise<Record<string, any>>;
159
+ writePackageJson(root: string, content: Record<string, any>): Promise<void>;
160
+ editPackageJson(root: string, editFn: (pkg: Record<string, any>) => Record<string, any>): Promise<void>;
161
+ ensurePackageJson(root: string, modes: DependencyModes): Promise<Record<string, any>>;
162
+ generatePackageJsonContent(modes: DependencyModes): {
163
+ dependencies: Record<string, string>;
164
+ devDependencies: Record<string, string>;
165
+ scripts: Record<string, string>;
166
+ type: "module";
167
+ };
168
+ protected removeFiles(root: string, files: string[]): Promise<void>;
264
169
  }
265
170
  interface DependencyModes {
171
+ web?: boolean;
172
+ admin?: boolean;
173
+ expo?: boolean;
174
+ }
175
+ //#endregion
176
+ //#region ../../src/cli/assets/claudeMd.d.ts
177
+ interface ClaudeMdOptions {
266
178
  react?: boolean;
267
179
  ui?: boolean;
268
- expo?: boolean;
180
+ projectName?: string;
181
+ }
182
+ //#endregion
183
+ //#region ../../src/cli/services/ProjectScaffolder.d.ts
184
+ /**
185
+ * Service for scaffolding new Alepha projects.
186
+ *
187
+ * Handles creation of:
188
+ * - Project structure (src/api, src/web)
189
+ * - Configuration files (tsconfig, biome, editorconfig)
190
+ * - Entry points (main.server.ts, main.browser.ts)
191
+ * - Example code (HelloController, Hello component)
192
+ */
193
+ declare class ProjectScaffolder {
194
+ protected readonly log: alepha_logger7.Logger;
195
+ protected readonly fs: FileSystemProvider;
196
+ protected readonly pm: PackageManagerUtils;
197
+ /**
198
+ * Get the app name from the directory name.
199
+ *
200
+ * Converts the directory name to a valid module name:
201
+ * - Converts to lowercase
202
+ * - Replaces spaces, dashes, underscores with nothing
203
+ * - Falls back to "app" if empty
204
+ */
205
+ getAppName(root: string): string;
206
+ /**
207
+ * Ensure all configuration files exist.
208
+ */
209
+ ensureConfig(root: string, opts: {
210
+ packageJson?: boolean | DependencyModes;
211
+ tsconfigJson?: boolean;
212
+ indexHtml?: boolean;
213
+ biomeJson?: boolean;
214
+ editorconfig?: boolean;
215
+ claudeMd?: boolean | ClaudeMdOptions;
216
+ }): Promise<void>;
217
+ ensureTsConfig(root: string): Promise<void>;
218
+ ensureBiomeConfig(root: string): Promise<void>;
219
+ ensureEditorConfig(root: string): Promise<void>;
220
+ ensureClaudeMd(root: string, options?: ClaudeMdOptions): Promise<void>;
221
+ /**
222
+ * Ensure src/main.server.ts exists with full API structure.
223
+ *
224
+ * Creates:
225
+ * - src/main.server.ts (entry point)
226
+ * - src/api/index.ts (API module)
227
+ * - src/api/controllers/HelloController.ts (example controller)
228
+ */
229
+ ensureApiProject(root: string): Promise<void>;
230
+ /**
231
+ * Ensure full React project structure exists.
232
+ *
233
+ * Creates:
234
+ * - index.html
235
+ * - src/main.server.ts, src/main.browser.ts
236
+ * - src/api/index.ts, src/api/controllers/HelloController.ts
237
+ * - src/web/index.ts, src/web/AppRouter.ts, src/web/components/Hello.tsx
238
+ */
239
+ ensureReactProject(root: string): Promise<void>;
240
+ /**
241
+ * Ensure test directory exists with a dummy test file.
242
+ */
243
+ ensureTestDir(root: string): Promise<void>;
244
+ protected ensureFileIfNotExists(root: string, relativePath: string, content: string): Promise<void>;
245
+ /**
246
+ * Check if a file exists in the given directory or any parent directory.
247
+ */
248
+ protected existsInParents(root: string, filename: string): Promise<boolean>;
269
249
  }
270
250
  //#endregion
271
251
  //#region ../../src/cli/commands/build.d.ts
272
252
  declare class BuildCommand {
273
253
  protected readonly log: alepha_logger7.Logger;
254
+ protected readonly fs: FileSystemProvider;
274
255
  protected readonly utils: AlephaCliUtils;
256
+ protected readonly pm: PackageManagerUtils;
257
+ protected readonly scaffolder: ProjectScaffolder;
275
258
  protected readonly options: Readonly<{
276
259
  stats?: boolean | undefined;
277
260
  vercel?: {
@@ -304,64 +287,66 @@ declare class BuildCommand {
304
287
  cloudflare: alepha0.TOptional<alepha0.TBoolean>;
305
288
  docker: alepha0.TOptional<alepha0.TBoolean>;
306
289
  sitemap: alepha0.TOptional<alepha0.TString>;
290
+ bun: alepha0.TOptional<alepha0.TBoolean>;
307
291
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
308
292
  }
309
293
  //#endregion
310
294
  //#region ../../src/cli/commands/clean.d.ts
311
295
  declare class CleanCommand {
312
296
  /**
313
- * Clean the project, removing the "dist" directory
314
- */
297
+ * Clean the project, removing the "dist" directory
298
+ */
315
299
  readonly clean: alepha_command0.CommandPrimitive<typebox0.TObject<typebox0.TProperties>, typebox0.TSchema, typebox0.TObject<typebox0.TProperties>>;
316
300
  }
317
301
  //#endregion
318
302
  //#region ../../src/cli/commands/db.d.ts
319
303
  declare class DbCommand {
320
304
  protected readonly log: alepha_logger7.Logger;
305
+ protected readonly fs: FileSystemProvider;
321
306
  protected readonly utils: AlephaCliUtils;
322
307
  /**
323
- * Check if database migrations are up to date.
324
- */
308
+ * Check if database migrations are up to date.
309
+ */
325
310
  protected readonly check: alepha_command0.CommandPrimitive<alepha0.TObject<{
326
311
  provider: alepha0.TOptional<alepha0.TString>;
327
312
  mode: alepha0.TOptional<alepha0.TString>;
328
313
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
329
314
  /**
330
- * Generate database migration files
331
- */
315
+ * Generate database migration files
316
+ */
332
317
  protected readonly generate: alepha_command0.CommandPrimitive<alepha0.TObject<{
333
318
  provider: alepha0.TOptional<alepha0.TString>;
334
319
  mode: alepha0.TOptional<alepha0.TString>;
335
320
  custom: alepha0.TOptional<alepha0.TString>;
336
321
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
337
322
  /**
338
- * Push database schema changes directly to the database
339
- */
323
+ * Push database schema changes directly to the database
324
+ */
340
325
  protected readonly push: alepha_command0.CommandPrimitive<alepha0.TObject<{
341
326
  provider: alepha0.TOptional<alepha0.TString>;
342
327
  mode: alepha0.TOptional<alepha0.TString>;
343
328
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
344
329
  /**
345
- * Apply pending database migrations
346
- */
330
+ * Apply pending database migrations
331
+ */
347
332
  protected readonly migrate: alepha_command0.CommandPrimitive<alepha0.TObject<{
348
333
  provider: alepha0.TOptional<alepha0.TString>;
349
334
  mode: alepha0.TOptional<alepha0.TString>;
350
335
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
351
336
  /**
352
- * Launch Drizzle Studio database browser
353
- */
337
+ * Launch Drizzle Studio database browser
338
+ */
354
339
  protected readonly studio: alepha_command0.CommandPrimitive<alepha0.TObject<{
355
340
  provider: alepha0.TOptional<alepha0.TString>;
356
341
  mode: alepha0.TOptional<alepha0.TString>;
357
342
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
358
343
  /**
359
- * Parent command for database operations.
360
- */
344
+ * Parent command for database operations.
345
+ */
361
346
  readonly db: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
362
347
  /**
363
- * Run a drizzle-kit command for all database providers in an Alepha instance.
364
- */
348
+ * Run a drizzle-kit command for all database providers in an Alepha instance.
349
+ */
365
350
  runDrizzleKitCommand(options: {
366
351
  root: string;
367
352
  args?: string;
@@ -372,13 +357,14 @@ declare class DbCommand {
372
357
  env?: string;
373
358
  }): Promise<void>;
374
359
  /**
375
- * Prepare Drizzle configuration files for a database provider.
376
- */
360
+ * Prepare Drizzle configuration files for a database provider.
361
+ */
377
362
  prepareDrizzleConfig(options: {
378
363
  kit: any;
379
364
  provider: DatabaseProvider;
380
365
  providerName: string;
381
366
  providerUrl: string;
367
+ providerDriver: string;
382
368
  dialect: string;
383
369
  entry: string;
384
370
  rootDir: string;
@@ -388,26 +374,28 @@ declare class DbCommand {
388
374
  //#region ../../src/cli/commands/deploy.d.ts
389
375
  declare class DeployCommand {
390
376
  protected readonly log: alepha_logger7.Logger;
377
+ protected readonly fs: FileSystemProvider;
391
378
  protected readonly utils: AlephaCliUtils;
392
- /**
393
- * Deploy the project to a hosting platform (e.g., Vercel, Cloudflare, Surge)
394
- *
395
- * Deploy command can be overridden by creating a alepha.config.ts in the project root:
396
- *
397
- * ```ts
398
- * import { defineConfig } from "alepha/cli";
399
- *
400
- * export default defineConfig({
401
- * commands: {
402
- * deploy: {
403
- * handler: async ({ root, mode, flags }) => {
404
- * // Custom deployment logic here
405
- * },
406
- * },
407
- * },
408
- * });
409
- * ```
410
- */
379
+ protected readonly pm: PackageManagerUtils;
380
+ /**
381
+ * Deploy the project to a hosting platform (e.g., Vercel, Cloudflare, Surge)
382
+ *
383
+ * Deploy command can be overridden by creating a alepha.config.ts in the project root:
384
+ *
385
+ * ```ts
386
+ * import { defineConfig } from "alepha/cli";
387
+ *
388
+ * export default defineConfig({
389
+ * commands: {
390
+ * deploy: {
391
+ * handler: async ({ root, mode, flags }) => {
392
+ * // Custom deployment logic here
393
+ * },
394
+ * },
395
+ * },
396
+ * });
397
+ * ```
398
+ */
411
399
  readonly deploy: alepha_command0.CommandPrimitive<alepha0.TObject<{
412
400
  build: alepha0.TBoolean;
413
401
  migrate: alepha0.TBoolean;
@@ -423,14 +411,17 @@ declare class DeployCommand {
423
411
  //#region ../../src/cli/commands/dev.d.ts
424
412
  declare class DevCommand {
425
413
  protected readonly log: alepha_logger7.Logger;
414
+ protected readonly fs: FileSystemProvider;
426
415
  protected readonly utils: AlephaCliUtils;
416
+ protected readonly pm: PackageManagerUtils;
417
+ protected readonly scaffolder: ProjectScaffolder;
427
418
  protected readonly alepha: Alepha;
428
419
  /**
429
- * Will run the project in watch mode.
430
- *
431
- * - If an index.html file is found in the project root, it will run Vite in dev mode.
432
- * - Otherwise, it will look for a server entry file and run it with tsx in watch mode.
433
- */
420
+ * Will run the project in watch mode.
421
+ *
422
+ * - If an index.html file is found in the project root, it will run Vite in dev mode.
423
+ * - Otherwise, it will look for a server entry file and run it with tsx in watch mode.
424
+ */
434
425
  readonly dev: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
435
426
  protected isBunProject(root: string): Promise<boolean>;
436
427
  protected isFullstackProject(root: string): Promise<boolean>;
@@ -439,6 +430,8 @@ declare class DevCommand {
439
430
  //#region ../../src/cli/commands/format.d.ts
440
431
  declare class FormatCommand {
441
432
  protected readonly utils: AlephaCliUtils;
433
+ protected readonly pm: PackageManagerUtils;
434
+ protected readonly scaffolder: ProjectScaffolder;
442
435
  readonly format: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
443
436
  }
444
437
  //#endregion
@@ -460,16 +453,16 @@ declare class FormatCommand {
460
453
  declare class GitMessageParser {
461
454
  protected readonly log: alepha_logger7.Logger;
462
455
  /**
463
- * Parse a git commit line into a structured Commit object.
464
- *
465
- * **Format:** `type(scope): description` or `type(scope)!: description`
466
- *
467
- * **Supported types:** feat, fix, docs, refactor, perf, revert
468
- *
469
- * **Breaking changes:** Use `!` before `:` (e.g., `feat(api)!: remove endpoint`)
470
- *
471
- * @returns Commit object or null if not matching/ignored
472
- */
456
+ * Parse a git commit line into a structured Commit object.
457
+ *
458
+ * **Format:** `type(scope): description` or `type(scope)!: description`
459
+ *
460
+ * **Supported types:** feat, fix, docs, refactor, perf, revert
461
+ *
462
+ * **Breaking changes:** Use `!` before `:` (e.g., `feat(api)!: remove endpoint`)
463
+ *
464
+ * @returns Commit object or null if not matching/ignored
465
+ */
473
466
  parseCommit(line: string, config: ChangelogOptions): Commit | null;
474
467
  }
475
468
  //#endregion
@@ -509,39 +502,39 @@ declare class ChangelogCommand {
509
502
  ignore?: string[] | undefined;
510
503
  }>;
511
504
  /**
512
- * Format a single commit line.
513
- * Example: `- **cli**: add new command (\`abc1234\`)`
514
- * Breaking changes are flagged: `- **cli**: add new command [BREAKING] (\`abc1234\`)`
515
- */
505
+ * Format a single commit line.
506
+ * Example: `- **cli**: add new command (\`abc1234\`)`
507
+ * Breaking changes are flagged: `- **cli**: add new command [BREAKING] (\`abc1234\`)`
508
+ */
516
509
  protected formatCommit(commit: Commit): string;
517
510
  /**
518
- * Format the changelog entry with sections.
519
- */
511
+ * Format the changelog entry with sections.
512
+ */
520
513
  protected formatEntry(entry: ChangelogEntry): string;
521
514
  /**
522
- * Parse git log output into a changelog entry.
523
- */
515
+ * Parse git log output into a changelog entry.
516
+ */
524
517
  protected parseCommits(commitsOutput: string): ChangelogEntry;
525
518
  /**
526
- * Check if entry has any public commits.
527
- */
519
+ * Check if entry has any public commits.
520
+ */
528
521
  protected hasChanges(entry: ChangelogEntry): boolean;
529
522
  /**
530
- * Get the latest version tag.
531
- */
523
+ * Get the latest version tag.
524
+ */
532
525
  protected getLatestTag(git: (cmd: string) => Promise<string>): Promise<string | null>;
533
526
  readonly command: alepha_command0.CommandPrimitive<alepha0.TObject<{
534
527
  /**
535
- * Show changes from this ref (tag, commit, branch).
536
- * Defaults to the latest version tag.
537
- * Example: --from=1.0.0
538
- */
528
+ * Show changes from this ref (tag, commit, branch).
529
+ * Defaults to the latest version tag.
530
+ * Example: --from=1.0.0
531
+ */
539
532
  from: alepha0.TOptional<alepha0.TString>;
540
533
  /**
541
- * Show changes up to this ref (tag, commit, branch).
542
- * Defaults to HEAD.
543
- * Example: --to=main
544
- */
534
+ * Show changes up to this ref (tag, commit, branch).
535
+ * Defaults to HEAD.
536
+ * Example: --to=main
537
+ */
545
538
  to: alepha0.TOptional<alepha0.TString>;
546
539
  }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
547
540
  }
@@ -559,24 +552,30 @@ declare class OpenApiCommand {
559
552
  //#region ../../src/cli/commands/init.d.ts
560
553
  declare class InitCommand {
561
554
  protected readonly utils: AlephaCliUtils;
555
+ protected readonly pm: PackageManagerUtils;
556
+ protected readonly scaffolder: ProjectScaffolder;
557
+ protected readonly fs: FileSystemProvider;
562
558
  /**
563
- * Ensure the project has the necessary Alepha configuration files.
564
- * Add the correct dependencies to package.json and install them.
565
- */
559
+ * Ensure the project has the necessary Alepha configuration files.
560
+ * Add the correct dependencies to package.json and install them.
561
+ */
566
562
  readonly init: alepha_command0.CommandPrimitive<alepha0.TObject<{
563
+ agent: alepha0.TOptional<alepha0.TBoolean>;
567
564
  yarn: alepha0.TOptional<alepha0.TBoolean>;
568
565
  pnpm: alepha0.TOptional<alepha0.TBoolean>;
569
566
  npm: alepha0.TOptional<alepha0.TBoolean>;
570
567
  bun: alepha0.TOptional<alepha0.TBoolean>;
571
- react: alepha0.TOptional<alepha0.TBoolean>;
572
- ui: alepha0.TOptional<alepha0.TBoolean>;
568
+ web: alepha0.TOptional<alepha0.TBoolean>;
569
+ admin: alepha0.TOptional<alepha0.TBoolean>;
573
570
  test: alepha0.TOptional<alepha0.TBoolean>;
574
- }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
571
+ }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
575
572
  }
576
573
  //#endregion
577
574
  //#region ../../src/cli/commands/lint.d.ts
578
575
  declare class LintCommand {
579
576
  protected readonly utils: AlephaCliUtils;
577
+ protected readonly pm: PackageManagerUtils;
578
+ protected readonly scaffolder: ProjectScaffolder;
580
579
  readonly lint: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
581
580
  }
582
581
  //#endregion
@@ -587,8 +586,8 @@ declare class RootCommand {
587
586
  protected readonly alepha: Alepha;
588
587
  protected readonly color: ConsoleColorProvider;
589
588
  /**
590
- * Called when no command is provided
591
- */
589
+ * Called when no command is provided
590
+ */
592
591
  readonly root: alepha_command0.CommandPrimitive<alepha0.TObject<{
593
592
  version: alepha0.TOptional<alepha0.TBoolean>;
594
593
  }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
@@ -597,6 +596,8 @@ declare class RootCommand {
597
596
  //#region ../../src/cli/commands/test.d.ts
598
597
  declare class TestCommand {
599
598
  protected readonly utils: AlephaCliUtils;
599
+ protected readonly pm: PackageManagerUtils;
600
+ protected readonly scaffolder: ProjectScaffolder;
600
601
  readonly test: alepha_command0.CommandPrimitive<alepha0.TObject<{
601
602
  config: alepha0.TOptional<alepha0.TString>;
602
603
  }>, alepha0.TSchema, alepha0.TObject<{
@@ -607,29 +608,31 @@ declare class TestCommand {
607
608
  //#region ../../src/cli/commands/typecheck.d.ts
608
609
  declare class TypecheckCommand {
609
610
  protected readonly utils: AlephaCliUtils;
611
+ protected readonly pm: PackageManagerUtils;
610
612
  protected readonly log: alepha_logger7.Logger;
611
613
  /**
612
- * Run TypeScript type checking across the codebase with no emit.
613
- */
614
+ * Run TypeScript type checking across the codebase with no emit.
615
+ */
614
616
  readonly typecheck: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
615
617
  }
616
618
  //#endregion
617
619
  //#region ../../src/cli/commands/verify.d.ts
618
620
  declare class VerifyCommand {
619
621
  protected readonly utils: AlephaCliUtils;
620
- /**
621
- * Run a series of verification commands to ensure code quality and correctness.
622
- *
623
- * This command runs the following checks in order:
624
- * - Clean the project
625
- * - Format the code
626
- * - Lint the code
627
- * - Run tests (if Vitest is a dev dependency)
628
- * - Check database migrations (if a migrations directory exists)
629
- * - Type check the code
630
- * - Build the project
631
- * - Clean the project again
632
- */
622
+ protected readonly pm: PackageManagerUtils;
623
+ /**
624
+ * Run a series of verification commands to ensure code quality and correctness.
625
+ *
626
+ * This command runs the following checks in order:
627
+ * - Clean the project
628
+ * - Format the code
629
+ * - Lint the code
630
+ * - Run tests (if Vitest is a dev dependency)
631
+ * - Check database migrations (if a migrations directory exists)
632
+ * - Type check the code
633
+ * - Build the project
634
+ * - Clean the project again
635
+ */
633
636
  readonly verify: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
634
637
  }
635
638
  //#endregion
@@ -642,12 +645,12 @@ declare class VerifyCommand {
642
645
  */
643
646
  declare const buildOptions: alepha0.Atom<alepha0.TObject<{
644
647
  /**
645
- * Generate build stats report.
646
- */
648
+ * Generate build stats report.
649
+ */
647
650
  stats: alepha0.TOptional<alepha0.TBoolean>;
648
651
  /**
649
- * Vercel deployment configuration.
650
- */
652
+ * Vercel deployment configuration.
653
+ */
651
654
  vercel: alepha0.TOptional<alepha0.TObject<{
652
655
  projectName: alepha0.TOptional<alepha0.TString>;
653
656
  orgId: alepha0.TOptional<alepha0.TString>;
@@ -660,33 +663,33 @@ declare const buildOptions: alepha0.Atom<alepha0.TObject<{
660
663
  }>>;
661
664
  }>>;
662
665
  /**
663
- * Cloudflare Workers deployment configuration.
664
- */
666
+ * Cloudflare Workers deployment configuration.
667
+ */
665
668
  cloudflare: alepha0.TOptional<alepha0.TObject<{
666
669
  config: alepha0.TOptional<alepha0.TRecord<string, alepha0.TAny>>;
667
670
  }>>;
668
671
  /**
669
- * Docker deployment configuration.
670
- */
672
+ * Docker deployment configuration.
673
+ */
671
674
  docker: alepha0.TOptional<alepha0.TObject<{
672
675
  /**
673
- * Docker image name to use in the Dockerfile.
674
- * @default "node:24-alpine"
675
- */
676
+ * Docker image name to use in the Dockerfile.
677
+ * @default "node:24-alpine"
678
+ */
676
679
  image: alepha0.TOptional<alepha0.TString>;
677
680
  /**
678
- * Command to run in the Docker container.
679
- * @default "node"
680
- */
681
+ * Command to run in the Docker container.
682
+ * @default "node"
683
+ */
681
684
  command: alepha0.TOptional<alepha0.TString>;
682
685
  }>>;
683
686
  /**
684
- * Sitemap generation configuration.
685
- */
687
+ * Sitemap generation configuration.
688
+ */
686
689
  sitemap: alepha0.TOptional<alepha0.TObject<{
687
690
  /**
688
- * Base URL for sitemap entries.
689
- */
691
+ * Base URL for sitemap entries.
692
+ */
690
693
  hostname: alepha0.TString;
691
694
  }>>;
692
695
  }>, "alepha.build.options">;
@@ -698,25 +701,25 @@ type BuildOptions = Static<typeof buildOptions.schema>;
698
701
  //#region ../../src/cli/defineConfig.d.ts
699
702
  interface AlephaCliConfig {
700
703
  /**
701
- * Add custom commands to the Alepha CLI.
702
- *
703
- * You can override 'deploy', 'build', 'dev', 'start' commands this way.
704
- * But you can also add your own commands and run them via `alepha <command>`.
705
- */
704
+ * Add custom commands to the Alepha CLI.
705
+ *
706
+ * You can override 'deploy', 'build', 'dev', 'start' commands this way.
707
+ * But you can also add your own commands and run them via `alepha <command>`.
708
+ */
706
709
  commands?: Record<string, CommandPrimitive>;
707
710
  /**
708
- * Register more services to the Alepha CLI (enhancements, commands, etc.).
709
- */
711
+ * Register more services to the Alepha CLI (enhancements, commands, etc.).
712
+ */
710
713
  services?: Array<any>;
711
714
  /**
712
- * Configure Alepha build command.
713
- */
715
+ * Configure Alepha build command.
716
+ */
714
717
  build?: BuildOptions;
715
718
  /**
716
- * Environment variables to set before running commands.
717
- *
718
- * Always use .env files by default, this is only for dynamic values.
719
- */
719
+ * Environment variables to set before running commands.
720
+ *
721
+ * Always use .env files by default, this is only for dynamic values.
722
+ */
720
723
  env?: Record<string, unknown>;
721
724
  }
722
725
  type AlephaCliConfigFn = (alepha: Alepha) => AlephaCliConfig;
@@ -733,5 +736,5 @@ declare const defineAlephaConfig: (runConfig: AlephaCliConfig | AlephaCliConfigF
733
736
  //#region ../../src/cli/version.d.ts
734
737
  declare const version: any;
735
738
  //#endregion
736
- export { AlephaCli, AlephaCliConfig, AlephaCliConfigFn, AlephaCliUtils, AlephaPackageBuilderCli, BuildCommand, ChangelogCommand, type ChangelogOptions, CleanCommand, Commit, DEFAULT_IGNORE, DbCommand, DependencyModes, DeployCommand, DevCommand, FormatCommand, GitMessageParser, GitProvider, InitCommand, LintCommand, OpenApiCommand, RootCommand, TestCommand, TypecheckCommand, VerifyCommand, analyzeModules, changelogOptions, defineAlephaConfig, defineConfig, version };
739
+ export { AlephaCli, AlephaCliConfig, AlephaCliConfigFn, AlephaCliUtils, AlephaPackageBuilderCli, BuildCommand, ChangelogCommand, type ChangelogOptions, CleanCommand, Commit, DEFAULT_IGNORE, DbCommand, DeployCommand, DevCommand, FormatCommand, GitMessageParser, GitProvider, InitCommand, LintCommand, OpenApiCommand, RootCommand, TestCommand, TypecheckCommand, VerifyCommand, analyzeModules, changelogOptions, defineAlephaConfig, defineConfig, version };
737
740
  //# sourceMappingURL=index.d.ts.map