alepha 0.15.0 → 0.15.2

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 (551) hide show
  1. package/README.md +43 -98
  2. package/dist/api/audits/index.d.ts +630 -653
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js +12 -35
  5. package/dist/api/audits/index.js.map +1 -1
  6. package/dist/api/files/index.d.ts +365 -358
  7. package/dist/api/files/index.d.ts.map +1 -1
  8. package/dist/api/files/index.js +12 -5
  9. package/dist/api/files/index.js.map +1 -1
  10. package/dist/api/jobs/index.d.ts +255 -248
  11. package/dist/api/jobs/index.d.ts.map +1 -1
  12. package/dist/api/jobs/index.js +10 -3
  13. package/dist/api/jobs/index.js.map +1 -1
  14. package/dist/api/keys/index.d.ts +413 -0
  15. package/dist/api/keys/index.d.ts.map +1 -0
  16. package/dist/api/keys/index.js +476 -0
  17. package/dist/api/keys/index.js.map +1 -0
  18. package/dist/api/notifications/index.browser.js +4 -4
  19. package/dist/api/notifications/index.browser.js.map +1 -1
  20. package/dist/api/notifications/index.d.ts +84 -78
  21. package/dist/api/notifications/index.d.ts.map +1 -1
  22. package/dist/api/notifications/index.js +14 -8
  23. package/dist/api/notifications/index.js.map +1 -1
  24. package/dist/api/parameters/index.d.ts +528 -535
  25. package/dist/api/parameters/index.d.ts.map +1 -1
  26. package/dist/api/parameters/index.js +30 -37
  27. package/dist/api/parameters/index.js.map +1 -1
  28. package/dist/api/users/index.d.ts +1221 -910
  29. package/dist/api/users/index.d.ts.map +1 -1
  30. package/dist/api/users/index.js +2556 -248
  31. package/dist/api/users/index.js.map +1 -1
  32. package/dist/api/verifications/index.d.ts +142 -136
  33. package/dist/api/verifications/index.d.ts.map +1 -1
  34. package/dist/api/verifications/index.js +12 -4
  35. package/dist/api/verifications/index.js.map +1 -1
  36. package/dist/batch/index.d.ts +142 -162
  37. package/dist/batch/index.d.ts.map +1 -1
  38. package/dist/batch/index.js +31 -44
  39. package/dist/batch/index.js.map +1 -1
  40. package/dist/bucket/index.d.ts +595 -171
  41. package/dist/bucket/index.d.ts.map +1 -1
  42. package/dist/bucket/index.js +1856 -12
  43. package/dist/bucket/index.js.map +1 -1
  44. package/dist/cache/core/index.d.ts +225 -53
  45. package/dist/cache/core/index.d.ts.map +1 -1
  46. package/dist/cache/core/index.js +213 -7
  47. package/dist/cache/core/index.js.map +1 -1
  48. package/dist/cache/redis/index.d.ts +1 -0
  49. package/dist/cache/redis/index.d.ts.map +1 -1
  50. package/dist/cache/redis/index.js +6 -2
  51. package/dist/cache/redis/index.js.map +1 -1
  52. package/dist/cli/index.d.ts +834 -226
  53. package/dist/cli/index.d.ts.map +1 -1
  54. package/dist/cli/index.js +2872 -417
  55. package/dist/cli/index.js.map +1 -1
  56. package/dist/command/index.d.ts +458 -310
  57. package/dist/command/index.d.ts.map +1 -1
  58. package/dist/command/index.js +2011 -76
  59. package/dist/command/index.js.map +1 -1
  60. package/dist/core/index.browser.js +309 -97
  61. package/dist/core/index.browser.js.map +1 -1
  62. package/dist/core/index.d.ts +796 -701
  63. package/dist/core/index.d.ts.map +1 -1
  64. package/dist/core/index.js +329 -97
  65. package/dist/core/index.js.map +1 -1
  66. package/dist/core/index.native.js +309 -97
  67. package/dist/core/index.native.js.map +1 -1
  68. package/dist/datetime/index.d.ts +59 -44
  69. package/dist/datetime/index.d.ts.map +1 -1
  70. package/dist/datetime/index.js +15 -0
  71. package/dist/datetime/index.js.map +1 -1
  72. package/dist/email/index.d.ts +314 -19
  73. package/dist/email/index.d.ts.map +1 -1
  74. package/dist/email/index.js +1852 -7
  75. package/dist/email/index.js.map +1 -1
  76. package/dist/fake/index.d.ts +5500 -5418
  77. package/dist/fake/index.d.ts.map +1 -1
  78. package/dist/fake/index.js +113 -42
  79. package/dist/fake/index.js.map +1 -1
  80. package/dist/lock/core/index.d.ts +219 -212
  81. package/dist/lock/core/index.d.ts.map +1 -1
  82. package/dist/lock/core/index.js +11 -4
  83. package/dist/lock/core/index.js.map +1 -1
  84. package/dist/lock/redis/index.d.ts.map +1 -1
  85. package/dist/logger/index.d.ts +41 -90
  86. package/dist/logger/index.d.ts.map +1 -1
  87. package/dist/logger/index.js +15 -68
  88. package/dist/logger/index.js.map +1 -1
  89. package/dist/mcp/index.d.ts +228 -230
  90. package/dist/mcp/index.d.ts.map +1 -1
  91. package/dist/mcp/index.js +32 -31
  92. package/dist/mcp/index.js.map +1 -1
  93. package/dist/orm/index.browser.js +12 -12
  94. package/dist/orm/index.browser.js.map +1 -1
  95. package/dist/orm/index.bun.js +90 -80
  96. package/dist/orm/index.bun.js.map +1 -1
  97. package/dist/orm/index.d.ts +1434 -1459
  98. package/dist/orm/index.d.ts.map +1 -1
  99. package/dist/orm/index.js +112 -130
  100. package/dist/orm/index.js.map +1 -1
  101. package/dist/queue/core/index.d.ts +262 -254
  102. package/dist/queue/core/index.d.ts.map +1 -1
  103. package/dist/queue/core/index.js +14 -6
  104. package/dist/queue/core/index.js.map +1 -1
  105. package/dist/queue/redis/index.d.ts.map +1 -1
  106. package/dist/react/auth/index.browser.js +108 -0
  107. package/dist/react/auth/index.browser.js.map +1 -0
  108. package/dist/react/auth/index.d.ts +100 -0
  109. package/dist/react/auth/index.d.ts.map +1 -0
  110. package/dist/react/auth/index.js +145 -0
  111. package/dist/react/auth/index.js.map +1 -0
  112. package/dist/react/core/index.d.ts +469 -0
  113. package/dist/react/core/index.d.ts.map +1 -0
  114. package/dist/react/core/index.js +464 -0
  115. package/dist/react/core/index.js.map +1 -0
  116. package/dist/react/form/index.d.ts +232 -0
  117. package/dist/react/form/index.d.ts.map +1 -0
  118. package/dist/react/form/index.js +432 -0
  119. package/dist/react/form/index.js.map +1 -0
  120. package/dist/react/head/index.browser.js +423 -0
  121. package/dist/react/head/index.browser.js.map +1 -0
  122. package/dist/react/head/index.d.ts +288 -0
  123. package/dist/react/head/index.d.ts.map +1 -0
  124. package/dist/react/head/index.js +465 -0
  125. package/dist/react/head/index.js.map +1 -0
  126. package/dist/react/i18n/index.d.ts +175 -0
  127. package/dist/react/i18n/index.d.ts.map +1 -0
  128. package/dist/react/i18n/index.js +224 -0
  129. package/dist/react/i18n/index.js.map +1 -0
  130. package/dist/react/router/index.browser.js +1980 -0
  131. package/dist/react/router/index.browser.js.map +1 -0
  132. package/dist/react/router/index.d.ts +2068 -0
  133. package/dist/react/router/index.d.ts.map +1 -0
  134. package/dist/react/router/index.js +4932 -0
  135. package/dist/react/router/index.js.map +1 -0
  136. package/dist/react/websocket/index.d.ts +117 -0
  137. package/dist/react/websocket/index.d.ts.map +1 -0
  138. package/dist/react/websocket/index.js +107 -0
  139. package/dist/react/websocket/index.js.map +1 -0
  140. package/dist/redis/index.bun.js +4 -0
  141. package/dist/redis/index.bun.js.map +1 -1
  142. package/dist/redis/index.d.ts +127 -130
  143. package/dist/redis/index.d.ts.map +1 -1
  144. package/dist/redis/index.js +16 -25
  145. package/dist/redis/index.js.map +1 -1
  146. package/dist/retry/index.d.ts +80 -71
  147. package/dist/retry/index.d.ts.map +1 -1
  148. package/dist/retry/index.js +11 -2
  149. package/dist/retry/index.js.map +1 -1
  150. package/dist/router/index.d.ts +6 -6
  151. package/dist/router/index.d.ts.map +1 -1
  152. package/dist/scheduler/index.d.ts +119 -28
  153. package/dist/scheduler/index.d.ts.map +1 -1
  154. package/dist/scheduler/index.js +404 -3
  155. package/dist/scheduler/index.js.map +1 -1
  156. package/dist/security/index.d.ts +642 -228
  157. package/dist/security/index.d.ts.map +1 -1
  158. package/dist/security/index.js +1579 -37
  159. package/dist/security/index.js.map +1 -1
  160. package/dist/server/auth/index.d.ts +1141 -111
  161. package/dist/server/auth/index.d.ts.map +1 -1
  162. package/dist/server/auth/index.js +1261 -25
  163. package/dist/server/auth/index.js.map +1 -1
  164. package/dist/server/cache/index.d.ts +63 -78
  165. package/dist/server/cache/index.d.ts.map +1 -1
  166. package/dist/server/cache/index.js +7 -22
  167. package/dist/server/cache/index.js.map +1 -1
  168. package/dist/server/compress/index.d.ts +13 -5
  169. package/dist/server/compress/index.d.ts.map +1 -1
  170. package/dist/server/compress/index.js +10 -2
  171. package/dist/server/compress/index.js.map +1 -1
  172. package/dist/server/cookies/index.d.ts +46 -22
  173. package/dist/server/cookies/index.d.ts.map +1 -1
  174. package/dist/server/cookies/index.js +7 -5
  175. package/dist/server/cookies/index.js.map +1 -1
  176. package/dist/server/core/index.d.ts +307 -196
  177. package/dist/server/core/index.d.ts.map +1 -1
  178. package/dist/server/core/index.js +271 -38
  179. package/dist/server/core/index.js.map +1 -1
  180. package/dist/server/cors/index.d.ts +24 -34
  181. package/dist/server/cors/index.d.ts.map +1 -1
  182. package/dist/server/cors/index.js +7 -21
  183. package/dist/server/cors/index.js.map +1 -1
  184. package/dist/server/health/index.d.ts +25 -19
  185. package/dist/server/health/index.d.ts.map +1 -1
  186. package/dist/server/health/index.js +8 -2
  187. package/dist/server/health/index.js.map +1 -1
  188. package/dist/server/helmet/index.d.ts +13 -5
  189. package/dist/server/helmet/index.d.ts.map +1 -1
  190. package/dist/server/helmet/index.js +11 -3
  191. package/dist/server/helmet/index.js.map +1 -1
  192. package/dist/server/links/index.browser.js +9 -1
  193. package/dist/server/links/index.browser.js.map +1 -1
  194. package/dist/server/links/index.d.ts +133 -128
  195. package/dist/server/links/index.d.ts.map +1 -1
  196. package/dist/server/links/index.js +24 -11
  197. package/dist/server/links/index.js.map +1 -1
  198. package/dist/server/metrics/index.d.ts +524 -4
  199. package/dist/server/metrics/index.d.ts.map +1 -1
  200. package/dist/server/metrics/index.js +4472 -7
  201. package/dist/server/metrics/index.js.map +1 -1
  202. package/dist/server/multipart/index.d.ts +15 -9
  203. package/dist/server/multipart/index.d.ts.map +1 -1
  204. package/dist/server/multipart/index.js +9 -3
  205. package/dist/server/multipart/index.js.map +1 -1
  206. package/dist/server/proxy/index.d.ts +110 -104
  207. package/dist/server/proxy/index.d.ts.map +1 -1
  208. package/dist/server/proxy/index.js +8 -2
  209. package/dist/server/proxy/index.js.map +1 -1
  210. package/dist/server/rate-limit/index.d.ts +46 -51
  211. package/dist/server/rate-limit/index.d.ts.map +1 -1
  212. package/dist/server/rate-limit/index.js +18 -55
  213. package/dist/server/rate-limit/index.js.map +1 -1
  214. package/dist/server/static/index.d.ts +181 -48
  215. package/dist/server/static/index.d.ts.map +1 -1
  216. package/dist/server/static/index.js +1848 -5
  217. package/dist/server/static/index.js.map +1 -1
  218. package/dist/server/swagger/index.d.ts +348 -53
  219. package/dist/server/swagger/index.d.ts.map +1 -1
  220. package/dist/server/swagger/index.js +1849 -6
  221. package/dist/server/swagger/index.js.map +1 -1
  222. package/dist/sms/index.d.ts +312 -18
  223. package/dist/sms/index.d.ts.map +1 -1
  224. package/dist/sms/index.js +1854 -10
  225. package/dist/sms/index.js.map +1 -1
  226. package/dist/system/index.browser.js +496 -0
  227. package/dist/system/index.browser.js.map +1 -0
  228. package/dist/system/index.d.ts +1158 -0
  229. package/dist/system/index.d.ts.map +1 -0
  230. package/dist/{file → system}/index.js +412 -20
  231. package/dist/system/index.js.map +1 -0
  232. package/dist/thread/index.d.ts +82 -73
  233. package/dist/thread/index.d.ts.map +1 -1
  234. package/dist/thread/index.js +13 -4
  235. package/dist/thread/index.js.map +1 -1
  236. package/dist/topic/core/index.d.ts +330 -323
  237. package/dist/topic/core/index.d.ts.map +1 -1
  238. package/dist/topic/core/index.js +12 -5
  239. package/dist/topic/core/index.js.map +1 -1
  240. package/dist/topic/redis/index.d.ts +6 -6
  241. package/dist/topic/redis/index.d.ts.map +1 -1
  242. package/dist/vite/index.d.ts +163 -5825
  243. package/dist/vite/index.d.ts.map +1 -1
  244. package/dist/vite/index.js +130 -477
  245. package/dist/vite/index.js.map +1 -1
  246. package/dist/websocket/index.browser.js +3 -3
  247. package/dist/websocket/index.browser.js.map +1 -1
  248. package/dist/websocket/index.d.ts +287 -283
  249. package/dist/websocket/index.d.ts.map +1 -1
  250. package/dist/websocket/index.js +15 -11
  251. package/dist/websocket/index.js.map +1 -1
  252. package/package.json +86 -17
  253. package/src/api/audits/index.ts +10 -33
  254. package/src/api/files/__tests__/$bucket.spec.ts +1 -1
  255. package/src/api/files/controllers/AdminFileStatsController.spec.ts +1 -1
  256. package/src/api/files/controllers/FileController.spec.ts +1 -1
  257. package/src/api/files/index.ts +10 -3
  258. package/src/api/files/jobs/FileJobs.spec.ts +1 -1
  259. package/src/api/files/services/FileService.spec.ts +1 -1
  260. package/src/api/jobs/index.ts +10 -3
  261. package/src/api/keys/controllers/AdminApiKeyController.ts +75 -0
  262. package/src/api/keys/controllers/ApiKeyController.ts +103 -0
  263. package/src/api/keys/entities/apiKeyEntity.ts +41 -0
  264. package/src/api/keys/index.ts +49 -0
  265. package/src/api/keys/schemas/adminApiKeyQuerySchema.ts +7 -0
  266. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +17 -0
  267. package/src/api/keys/schemas/createApiKeyBodySchema.ts +7 -0
  268. package/src/api/keys/schemas/createApiKeyResponseSchema.ts +11 -0
  269. package/src/api/keys/schemas/listApiKeyResponseSchema.ts +15 -0
  270. package/src/api/keys/schemas/revokeApiKeyParamsSchema.ts +5 -0
  271. package/src/api/keys/schemas/revokeApiKeyResponseSchema.ts +5 -0
  272. package/src/api/keys/services/ApiKeyService.spec.ts +553 -0
  273. package/src/api/keys/services/ApiKeyService.ts +306 -0
  274. package/src/api/logs/TODO.md +52 -0
  275. package/src/api/notifications/index.ts +10 -4
  276. package/src/api/parameters/index.ts +9 -30
  277. package/src/api/parameters/primitives/$config.ts +12 -4
  278. package/src/api/parameters/services/ConfigStore.ts +9 -3
  279. package/src/api/users/__tests__/ApiKeys-integration.spec.ts +1035 -0
  280. package/src/api/users/__tests__/ApiKeys.spec.ts +401 -0
  281. package/src/api/users/index.ts +14 -3
  282. package/src/api/users/primitives/$realm.ts +33 -5
  283. package/src/api/users/providers/RealmProvider.ts +1 -12
  284. package/src/api/users/services/SessionService.ts +1 -11
  285. package/src/api/verifications/controllers/VerificationController.ts +2 -0
  286. package/src/api/verifications/index.ts +10 -4
  287. package/src/batch/index.ts +9 -36
  288. package/src/batch/primitives/$batch.ts +0 -8
  289. package/src/batch/providers/BatchProvider.ts +29 -2
  290. package/src/bucket/__tests__/shared.ts +1 -1
  291. package/src/bucket/index.ts +13 -6
  292. package/src/bucket/primitives/$bucket.ts +1 -1
  293. package/src/bucket/providers/LocalFileStorageProvider.ts +1 -1
  294. package/src/bucket/providers/MemoryFileStorageProvider.ts +1 -1
  295. package/src/cache/core/__tests__/shared.ts +30 -0
  296. package/src/cache/core/index.ts +11 -6
  297. package/src/cache/core/primitives/$cache.spec.ts +5 -0
  298. package/src/cache/core/providers/CacheProvider.ts +17 -0
  299. package/src/cache/core/providers/MemoryCacheProvider.ts +300 -1
  300. package/src/cache/redis/__tests__/cache-redis.spec.ts +5 -0
  301. package/src/cache/redis/providers/RedisCacheProvider.ts +9 -0
  302. package/src/cli/apps/AlephaCli.ts +3 -16
  303. package/src/cli/apps/AlephaPackageBuilderCli.ts +10 -2
  304. package/src/cli/atoms/appEntryOptions.ts +13 -0
  305. package/src/cli/atoms/buildOptions.ts +1 -1
  306. package/src/cli/atoms/changelogOptions.ts +1 -1
  307. package/src/cli/commands/build.ts +64 -52
  308. package/src/cli/commands/db.ts +17 -11
  309. package/src/cli/commands/deploy.ts +1 -1
  310. package/src/cli/commands/dev.ts +13 -49
  311. package/src/cli/commands/gen/env.ts +6 -3
  312. package/src/cli/commands/gen/openapi.ts +5 -2
  313. package/src/cli/commands/init.spec.ts +544 -0
  314. package/src/cli/commands/init.ts +101 -58
  315. package/src/cli/commands/lint.ts +8 -2
  316. package/src/cli/commands/typecheck.ts +11 -0
  317. package/src/cli/defineConfig.ts +9 -0
  318. package/src/cli/index.ts +2 -1
  319. package/src/cli/providers/AppEntryProvider.ts +131 -0
  320. package/src/cli/providers/ViteBuildProvider.ts +40 -0
  321. package/src/cli/providers/ViteDevServerProvider.ts +378 -0
  322. package/src/cli/services/AlephaCliUtils.ts +39 -93
  323. package/src/cli/services/PackageManagerUtils.ts +140 -17
  324. package/src/cli/services/ProjectScaffolder.ts +169 -101
  325. package/src/cli/services/ViteUtils.ts +82 -0
  326. package/src/cli/{assets/claudeMd.ts → templates/agentMd.ts} +41 -28
  327. package/src/cli/{assets → templates}/apiHelloControllerTs.ts +2 -1
  328. package/src/cli/{assets → templates}/biomeJson.ts +2 -1
  329. package/src/cli/{assets → templates}/dummySpecTs.ts +2 -1
  330. package/src/cli/{assets → templates}/editorconfig.ts +2 -1
  331. package/src/cli/templates/gitignore.ts +39 -0
  332. package/src/cli/{assets → templates}/mainBrowserTs.ts +2 -1
  333. package/src/cli/templates/mainCss.ts +33 -0
  334. package/src/cli/templates/mainServerTs.ts +33 -0
  335. package/src/cli/{assets → templates}/tsconfigJson.ts +2 -1
  336. package/src/cli/templates/webAppRouterTs.ts +50 -0
  337. package/src/cli/templates/webHelloComponentTsx.ts +20 -0
  338. package/src/command/helpers/Runner.spec.ts +4 -0
  339. package/src/command/helpers/Runner.ts +3 -21
  340. package/src/command/index.ts +12 -4
  341. package/src/command/providers/CliProvider.spec.ts +1067 -0
  342. package/src/command/providers/CliProvider.ts +203 -40
  343. package/src/core/Alepha.ts +3 -9
  344. package/src/core/__tests__/Alepha-start.spec.ts +4 -4
  345. package/src/core/helpers/jsonSchemaToTypeBox.spec.ts +771 -0
  346. package/src/core/helpers/jsonSchemaToTypeBox.ts +62 -10
  347. package/src/core/index.shared.ts +1 -0
  348. package/src/core/index.ts +20 -0
  349. package/src/core/primitives/$module.ts +12 -0
  350. package/src/core/providers/EventManager.spec.ts +0 -71
  351. package/src/core/providers/EventManager.ts +3 -15
  352. package/src/core/providers/Json.ts +2 -14
  353. package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +257 -0
  354. package/src/core/providers/KeylessJsonSchemaCodec.ts +396 -14
  355. package/src/core/providers/SchemaValidator.spec.ts +236 -0
  356. package/src/datetime/index.ts +15 -0
  357. package/src/email/index.ts +10 -5
  358. package/src/email/providers/LocalEmailProvider.spec.ts +1 -1
  359. package/src/email/providers/LocalEmailProvider.ts +1 -1
  360. package/src/fake/__tests__/keyName.example.ts +1 -1
  361. package/src/fake/__tests__/keyName.spec.ts +5 -5
  362. package/src/fake/index.ts +9 -6
  363. package/src/fake/providers/FakeProvider.spec.ts +258 -40
  364. package/src/fake/providers/FakeProvider.ts +133 -19
  365. package/src/lock/core/index.ts +11 -4
  366. package/src/logger/index.ts +17 -66
  367. package/src/logger/providers/PrettyFormatterProvider.ts +0 -9
  368. package/src/mcp/errors/McpError.ts +30 -0
  369. package/src/mcp/index.ts +13 -27
  370. package/src/mcp/transports/SseMcpTransport.ts +6 -7
  371. package/src/orm/__tests__/PostgresProvider.spec.ts +2 -2
  372. package/src/orm/index.browser.ts +2 -2
  373. package/src/orm/index.bun.ts +4 -2
  374. package/src/orm/index.ts +21 -47
  375. package/src/orm/providers/DrizzleKitProvider.ts +3 -5
  376. package/src/orm/providers/drivers/BunSqliteProvider.ts +1 -0
  377. package/src/orm/services/Repository.ts +18 -3
  378. package/src/queue/core/index.ts +14 -6
  379. package/src/react/auth/__tests__/$auth.spec.ts +202 -0
  380. package/src/react/auth/hooks/useAuth.ts +32 -0
  381. package/src/react/auth/index.browser.ts +13 -0
  382. package/src/react/auth/index.shared.ts +2 -0
  383. package/src/react/auth/index.ts +48 -0
  384. package/src/react/auth/providers/ReactAuthProvider.ts +16 -0
  385. package/src/react/auth/services/ReactAuth.ts +135 -0
  386. package/src/react/core/__tests__/Router.spec.tsx +169 -0
  387. package/src/react/core/components/ClientOnly.tsx +49 -0
  388. package/src/react/core/components/ErrorBoundary.tsx +73 -0
  389. package/src/react/core/contexts/AlephaContext.ts +7 -0
  390. package/src/react/core/contexts/AlephaProvider.tsx +42 -0
  391. package/src/react/core/hooks/useAction.browser.spec.tsx +569 -0
  392. package/src/react/core/hooks/useAction.ts +480 -0
  393. package/src/react/core/hooks/useAlepha.ts +26 -0
  394. package/src/react/core/hooks/useClient.ts +17 -0
  395. package/src/react/core/hooks/useEvents.ts +51 -0
  396. package/src/react/core/hooks/useInject.ts +12 -0
  397. package/src/react/core/hooks/useStore.ts +52 -0
  398. package/src/react/core/index.ts +90 -0
  399. package/src/react/form/components/FormState.tsx +17 -0
  400. package/src/react/form/errors/FormValidationError.ts +18 -0
  401. package/src/react/form/hooks/useForm.browser.spec.tsx +366 -0
  402. package/src/react/form/hooks/useForm.ts +47 -0
  403. package/src/react/form/hooks/useFormState.ts +130 -0
  404. package/src/react/form/index.ts +44 -0
  405. package/src/react/form/services/FormModel.ts +614 -0
  406. package/src/react/head/helpers/SeoExpander.spec.ts +203 -0
  407. package/src/react/head/helpers/SeoExpander.ts +142 -0
  408. package/src/react/head/hooks/useHead.spec.tsx +288 -0
  409. package/src/react/head/hooks/useHead.ts +62 -0
  410. package/src/react/head/index.browser.ts +26 -0
  411. package/src/react/head/index.ts +44 -0
  412. package/src/react/head/interfaces/Head.ts +105 -0
  413. package/src/react/head/primitives/$head.ts +25 -0
  414. package/src/react/head/providers/BrowserHeadProvider.browser.spec.ts +196 -0
  415. package/src/react/head/providers/BrowserHeadProvider.ts +212 -0
  416. package/src/react/head/providers/HeadProvider.ts +168 -0
  417. package/src/react/head/providers/ServerHeadProvider.ts +31 -0
  418. package/src/react/i18n/__tests__/integration.spec.tsx +239 -0
  419. package/src/react/i18n/components/Localize.spec.tsx +357 -0
  420. package/src/react/i18n/components/Localize.tsx +35 -0
  421. package/src/react/i18n/hooks/useI18n.browser.spec.tsx +438 -0
  422. package/src/react/i18n/hooks/useI18n.ts +18 -0
  423. package/src/react/i18n/index.ts +41 -0
  424. package/src/react/i18n/primitives/$dictionary.ts +69 -0
  425. package/src/react/i18n/providers/I18nProvider.spec.ts +389 -0
  426. package/src/react/i18n/providers/I18nProvider.ts +278 -0
  427. package/src/react/router/__tests__/page-head-browser.browser.spec.ts +95 -0
  428. package/src/react/router/__tests__/page-head.spec.ts +48 -0
  429. package/src/react/router/__tests__/seo-head.spec.ts +125 -0
  430. package/src/react/router/atoms/ssrManifestAtom.ts +58 -0
  431. package/src/react/router/components/ErrorViewer.tsx +872 -0
  432. package/src/react/router/components/Link.tsx +23 -0
  433. package/src/react/router/components/NestedView.tsx +223 -0
  434. package/src/react/router/components/NotFound.tsx +30 -0
  435. package/src/react/router/constants/PAGE_PRELOAD_KEY.ts +6 -0
  436. package/src/react/router/contexts/RouterLayerContext.ts +12 -0
  437. package/src/react/router/errors/Redirection.ts +28 -0
  438. package/src/react/router/hooks/useActive.ts +52 -0
  439. package/src/react/router/hooks/useQueryParams.ts +63 -0
  440. package/src/react/router/hooks/useRouter.ts +20 -0
  441. package/src/react/router/hooks/useRouterState.ts +11 -0
  442. package/src/react/router/index.browser.ts +45 -0
  443. package/src/react/router/index.shared.ts +19 -0
  444. package/src/react/router/index.ts +142 -0
  445. package/src/react/router/primitives/$page.browser.spec.tsx +851 -0
  446. package/src/react/router/primitives/$page.spec.tsx +708 -0
  447. package/src/react/router/primitives/$page.ts +497 -0
  448. package/src/react/router/providers/ReactBrowserProvider.ts +309 -0
  449. package/src/react/router/providers/ReactBrowserRendererProvider.ts +25 -0
  450. package/src/react/router/providers/ReactBrowserRouterProvider.ts +168 -0
  451. package/src/react/router/providers/ReactPageProvider.ts +726 -0
  452. package/src/react/router/providers/ReactServerProvider.spec.tsx +316 -0
  453. package/src/react/router/providers/ReactServerProvider.ts +558 -0
  454. package/src/react/router/providers/ReactServerTemplateProvider.ts +979 -0
  455. package/src/react/router/providers/SSRManifestProvider.ts +334 -0
  456. package/src/react/router/services/ReactPageServerService.ts +48 -0
  457. package/src/react/router/services/ReactPageService.ts +27 -0
  458. package/src/react/router/services/ReactRouter.ts +262 -0
  459. package/src/react/websocket/hooks/useRoom.tsx +242 -0
  460. package/src/react/websocket/index.ts +7 -0
  461. package/src/redis/__tests__/redis.spec.ts +13 -0
  462. package/src/redis/index.ts +9 -25
  463. package/src/redis/providers/BunRedisProvider.ts +9 -0
  464. package/src/redis/providers/NodeRedisProvider.ts +8 -0
  465. package/src/redis/providers/RedisProvider.ts +16 -0
  466. package/src/retry/index.ts +11 -2
  467. package/src/router/index.ts +15 -0
  468. package/src/scheduler/index.ts +11 -2
  469. package/src/security/__tests__/BasicAuth.spec.ts +2 -0
  470. package/src/security/__tests__/ServerSecurityProvider.spec.ts +13 -5
  471. package/src/security/index.ts +15 -10
  472. package/src/security/interfaces/IssuerResolver.ts +27 -0
  473. package/src/security/primitives/$issuer.ts +55 -0
  474. package/src/security/providers/SecurityProvider.ts +179 -0
  475. package/src/security/providers/ServerBasicAuthProvider.ts +6 -2
  476. package/src/security/providers/ServerSecurityProvider.ts +36 -22
  477. package/src/server/auth/index.ts +12 -7
  478. package/src/server/cache/index.ts +7 -22
  479. package/src/server/compress/index.ts +10 -2
  480. package/src/server/cookies/index.ts +7 -5
  481. package/src/server/cookies/primitives/$cookie.ts +33 -11
  482. package/src/server/core/index.ts +17 -7
  483. package/src/server/core/interfaces/ServerRequest.ts +83 -1
  484. package/src/server/core/primitives/$action.spec.ts +1 -1
  485. package/src/server/core/primitives/$action.ts +8 -3
  486. package/src/server/core/providers/BunHttpServerProvider.ts +1 -1
  487. package/src/server/core/providers/NodeHttpServerProvider.spec.ts +125 -0
  488. package/src/server/core/providers/NodeHttpServerProvider.ts +77 -22
  489. package/src/server/core/providers/ServerLoggerProvider.ts +2 -2
  490. package/src/server/core/providers/ServerProvider.ts +9 -12
  491. package/src/server/core/services/ServerRequestParser.spec.ts +520 -0
  492. package/src/server/core/services/ServerRequestParser.ts +306 -13
  493. package/src/server/cors/index.ts +7 -21
  494. package/src/server/cors/primitives/$cors.ts +6 -2
  495. package/src/server/health/index.ts +8 -2
  496. package/src/server/helmet/index.ts +11 -3
  497. package/src/server/links/atoms/apiLinksAtom.ts +7 -0
  498. package/src/server/links/index.browser.ts +2 -0
  499. package/src/server/links/index.ts +13 -6
  500. package/src/server/metrics/index.ts +10 -3
  501. package/src/server/multipart/index.ts +9 -3
  502. package/src/server/proxy/index.ts +8 -2
  503. package/src/server/rate-limit/index.ts +21 -25
  504. package/src/server/rate-limit/primitives/$rateLimit.ts +6 -2
  505. package/src/server/rate-limit/providers/ServerRateLimitProvider.spec.ts +38 -14
  506. package/src/server/rate-limit/providers/ServerRateLimitProvider.ts +22 -56
  507. package/src/server/static/index.ts +8 -2
  508. package/src/server/static/providers/ServerStaticProvider.ts +1 -1
  509. package/src/server/swagger/index.ts +9 -4
  510. package/src/server/swagger/providers/ServerSwaggerProvider.ts +1 -1
  511. package/src/sms/index.ts +9 -5
  512. package/src/sms/providers/LocalSmsProvider.spec.ts +1 -1
  513. package/src/sms/providers/LocalSmsProvider.ts +1 -1
  514. package/src/system/index.browser.ts +11 -0
  515. package/src/system/index.ts +62 -0
  516. package/src/{file → system}/providers/FileSystemProvider.ts +16 -0
  517. package/src/{file → system}/providers/MemoryFileSystemProvider.ts +116 -3
  518. package/src/system/providers/MemoryShellProvider.ts +164 -0
  519. package/src/{file → system}/providers/NodeFileSystemProvider.spec.ts +2 -2
  520. package/src/{file → system}/providers/NodeFileSystemProvider.ts +36 -0
  521. package/src/system/providers/NodeShellProvider.ts +184 -0
  522. package/src/system/providers/ShellProvider.ts +74 -0
  523. package/src/{file → system}/services/FileDetector.spec.ts +2 -2
  524. package/src/thread/index.ts +11 -2
  525. package/src/topic/core/index.ts +12 -5
  526. package/src/vite/index.ts +3 -2
  527. package/src/vite/tasks/buildClient.ts +2 -8
  528. package/src/vite/tasks/buildServer.ts +84 -21
  529. package/src/vite/tasks/copyAssets.ts +5 -4
  530. package/src/vite/tasks/generateSitemap.ts +64 -23
  531. package/src/vite/tasks/index.ts +0 -2
  532. package/src/vite/tasks/prerenderPages.ts +49 -24
  533. package/src/websocket/index.ts +12 -8
  534. package/dist/file/index.d.ts +0 -839
  535. package/dist/file/index.d.ts.map +0 -1
  536. package/dist/file/index.js.map +0 -1
  537. package/src/cli/assets/indexHtml.ts +0 -15
  538. package/src/cli/assets/mainServerTs.ts +0 -24
  539. package/src/cli/assets/webAppRouterTs.ts +0 -15
  540. package/src/cli/assets/webHelloComponentTsx.ts +0 -16
  541. package/src/cli/commands/format.ts +0 -23
  542. package/src/file/index.ts +0 -43
  543. package/src/vite/helpers/boot.ts +0 -117
  544. package/src/vite/plugins/viteAlephaDev.ts +0 -177
  545. package/src/vite/tasks/devServer.ts +0 -71
  546. package/src/vite/tasks/runAlepha.ts +0 -270
  547. /package/dist/orm/{chunk-DtkW-qnP.js → chunk-DH6iiROE.js} +0 -0
  548. /package/src/cli/{assets → templates}/apiIndexTs.ts +0 -0
  549. /package/src/cli/{assets → templates}/webIndexTs.ts +0 -0
  550. /package/src/{file → system}/errors/FileError.ts +0 -0
  551. /package/src/{file → system}/services/FileDetector.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/system/errors/FileError.ts","../../src/system/providers/FileSystemProvider.ts","../../src/system/providers/MemoryFileSystemProvider.ts","../../src/system/providers/ShellProvider.ts","../../src/system/providers/MemoryShellProvider.ts","../../src/system/services/FileDetector.ts","../../src/system/providers/NodeFileSystemProvider.ts","../../src/system/providers/NodeShellProvider.ts","../../src/system/index.ts"],"mappings":"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"}
@@ -1,18 +1,20 @@
1
- import { $inject, $module, AlephaError, isFileLike } from "alepha";
1
+ import { $inject, $module, AlephaError, Json, isFileLike } from "alepha";
2
+ import { join } from "node:path";
2
3
  import { createReadStream } from "node:fs";
3
4
  import { access, copyFile, cp, mkdir, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
4
- import { join } from "node:path";
5
5
  import { PassThrough, Readable } from "node:stream";
6
6
  import { fileURLToPath } from "node:url";
7
+ import { exec, spawn } from "node:child_process";
8
+ import { $logger } from "alepha/logger";
7
9
 
8
- //#region ../../src/file/providers/FileSystemProvider.ts
10
+ //#region ../../src/system/providers/FileSystemProvider.ts
9
11
  /**
10
12
  * FileSystem interface providing utilities for working with files.
11
13
  */
12
14
  var FileSystemProvider = class {};
13
15
 
14
16
  //#endregion
15
- //#region ../../src/file/providers/MemoryFileSystemProvider.ts
17
+ //#region ../../src/system/providers/MemoryFileSystemProvider.ts
16
18
  /**
17
19
  * In-memory implementation of FileSystemProvider for testing.
18
20
  *
@@ -37,6 +39,7 @@ var FileSystemProvider = class {};
37
39
  * ```
38
40
  */
39
41
  var MemoryFileSystemProvider = class {
42
+ json = $inject(Json);
40
43
  /**
41
44
  * In-memory storage for files (path -> content)
42
45
  */
@@ -54,6 +57,14 @@ var MemoryFileSystemProvider = class {
54
57
  */
55
58
  writeFileCalls = [];
56
59
  /**
60
+ * Track readFile calls for test assertions
61
+ */
62
+ readFileCalls = [];
63
+ /**
64
+ * Track rm calls for test assertions
65
+ */
66
+ rmCalls = [];
67
+ /**
57
68
  * Track join calls for test assertions
58
69
  */
59
70
  joinCalls = [];
@@ -76,15 +87,32 @@ var MemoryFileSystemProvider = class {
76
87
  }
77
88
  /**
78
89
  * Join path segments using forward slashes.
90
+ * Uses Node's path.join for proper normalization (handles .. and .)
79
91
  */
80
92
  join(...paths) {
81
93
  this.joinCalls.push(paths);
82
- return paths.filter(Boolean).join("/").replace(/\/+/g, "/");
94
+ return join(...paths);
83
95
  }
84
96
  /**
85
97
  * Create a FileLike object from various sources.
86
98
  */
87
99
  createFile(options) {
100
+ if ("path" in options) {
101
+ const filePath = options.path;
102
+ const buffer = this.files.get(filePath);
103
+ if (buffer === void 0) throw new Error(`ENOENT: no such file or directory, open '${filePath}'`);
104
+ return {
105
+ name: options.name ?? filePath.split("/").pop() ?? "file",
106
+ type: options.type ?? "application/octet-stream",
107
+ size: buffer.byteLength,
108
+ lastModified: Date.now(),
109
+ stream: () => {
110
+ throw new Error("Stream not implemented in MemoryFileSystemProvider");
111
+ },
112
+ arrayBuffer: async () => buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength),
113
+ text: async () => buffer.toString("utf-8")
114
+ };
115
+ }
88
116
  if ("buffer" in options) {
89
117
  const buffer = options.buffer;
90
118
  return {
@@ -119,6 +147,10 @@ var MemoryFileSystemProvider = class {
119
147
  * Remove a file or directory from memory.
120
148
  */
121
149
  async rm(path, options) {
150
+ this.rmCalls.push({
151
+ path,
152
+ options
153
+ });
122
154
  if (!(this.files.has(path) || this.directories.has(path)) && !options?.force) throw new Error(`ENOENT: no such file or directory, rm '${path}'`);
123
155
  if (this.directories.has(path)) if (options?.recursive) {
124
156
  this.directories.delete(path);
@@ -213,12 +245,26 @@ var MemoryFileSystemProvider = class {
213
245
  * Read a file from memory.
214
246
  */
215
247
  async readFile(path) {
248
+ this.readFileCalls.push(path);
216
249
  if (this.readFileError) throw this.readFileError;
217
250
  const content = this.files.get(path);
218
251
  if (!content) throw new Error(`ENOENT: no such file or directory, open '${path}'`);
219
252
  return content;
220
253
  }
221
254
  /**
255
+ * Read a file from memory as text.
256
+ */
257
+ async readTextFile(path) {
258
+ return (await this.readFile(path)).toString("utf-8");
259
+ }
260
+ /**
261
+ * Read a file from memory as JSON.
262
+ */
263
+ async readJsonFile(path) {
264
+ const text = await this.readTextFile(path);
265
+ return this.json.parse(text);
266
+ }
267
+ /**
222
268
  * Write a file to memory.
223
269
  */
224
270
  async writeFile(path, data) {
@@ -239,12 +285,59 @@ var MemoryFileSystemProvider = class {
239
285
  this.directories.clear();
240
286
  this.mkdirCalls = [];
241
287
  this.writeFileCalls = [];
288
+ this.readFileCalls = [];
289
+ this.rmCalls = [];
242
290
  this.joinCalls = [];
243
291
  this.mkdirError = null;
244
292
  this.writeFileError = null;
245
293
  this.readFileError = null;
246
294
  }
247
295
  /**
296
+ * Check if a file was written during the test.
297
+ *
298
+ * @example
299
+ * ```typescript
300
+ * expect(fs.wasWritten("/project/tsconfig.json")).toBe(true);
301
+ * ```
302
+ */
303
+ wasWritten(path) {
304
+ return this.writeFileCalls.some((call) => call.path === path);
305
+ }
306
+ /**
307
+ * Check if a file was written with content matching a pattern.
308
+ *
309
+ * @example
310
+ * ```typescript
311
+ * expect(fs.wasWrittenMatching("/project/tsconfig.json", /extends/)).toBe(true);
312
+ * ```
313
+ */
314
+ wasWrittenMatching(path, pattern) {
315
+ const call = this.writeFileCalls.find((c) => c.path === path);
316
+ return call ? pattern.test(call.data) : false;
317
+ }
318
+ /**
319
+ * Check if a file was read during the test.
320
+ *
321
+ * @example
322
+ * ```typescript
323
+ * expect(fs.wasRead("/project/package.json")).toBe(true);
324
+ * ```
325
+ */
326
+ wasRead(path) {
327
+ return this.readFileCalls.includes(path);
328
+ }
329
+ /**
330
+ * Check if a file was deleted during the test.
331
+ *
332
+ * @example
333
+ * ```typescript
334
+ * expect(fs.wasDeleted("/project/old-file.txt")).toBe(true);
335
+ * ```
336
+ */
337
+ wasDeleted(path) {
338
+ return this.rmCalls.some((call) => call.path === path);
339
+ }
340
+ /**
248
341
  * Get the content of a file as a string (convenience method for testing).
249
342
  */
250
343
  getFileContent(path) {
@@ -253,7 +346,116 @@ var MemoryFileSystemProvider = class {
253
346
  };
254
347
 
255
348
  //#endregion
256
- //#region ../../src/file/services/FileDetector.ts
349
+ //#region ../../src/system/providers/MemoryShellProvider.ts
350
+ /**
351
+ * In-memory implementation of ShellProvider for testing.
352
+ *
353
+ * Records all commands that would be executed without actually running them.
354
+ * Can be configured to return specific outputs or throw errors for testing.
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * // In tests, substitute the real ShellProvider with MemoryShellProvider
359
+ * const alepha = Alepha.create().with({
360
+ * provide: ShellProvider,
361
+ * use: MemoryShellProvider,
362
+ * });
363
+ *
364
+ * // Configure mock behavior
365
+ * const shell = alepha.inject(MemoryShellProvider);
366
+ * shell.configure({
367
+ * outputs: { "echo hello": "hello\n" },
368
+ * errors: { "failing-cmd": "Command failed" },
369
+ * });
370
+ *
371
+ * // Or use the fluent API
372
+ * shell.outputs.set("another-cmd", "output");
373
+ * shell.errors.set("another-error", "Error message");
374
+ *
375
+ * // Run code that uses ShellProvider
376
+ * const service = alepha.inject(MyService);
377
+ * await service.doSomething();
378
+ *
379
+ * // Verify commands were called
380
+ * expect(shell.calls).toHaveLength(2);
381
+ * expect(shell.calls[0].command).toBe("yarn install");
382
+ * ```
383
+ */
384
+ var MemoryShellProvider = class {
385
+ /**
386
+ * All recorded shell calls.
387
+ */
388
+ calls = [];
389
+ /**
390
+ * Simulated outputs for specific commands.
391
+ */
392
+ outputs = /* @__PURE__ */ new Map();
393
+ /**
394
+ * Commands that should throw an error.
395
+ */
396
+ errors = /* @__PURE__ */ new Map();
397
+ /**
398
+ * Commands considered installed in the system PATH.
399
+ */
400
+ installedCommands = /* @__PURE__ */ new Set();
401
+ /**
402
+ * Configure the mock with predefined outputs, errors, and installed commands.
403
+ */
404
+ configure(options) {
405
+ if (options.outputs) for (const [cmd, output] of Object.entries(options.outputs)) this.outputs.set(cmd, output);
406
+ if (options.errors) for (const [cmd, error] of Object.entries(options.errors)) this.errors.set(cmd, error);
407
+ if (options.installedCommands) for (const cmd of options.installedCommands) this.installedCommands.add(cmd);
408
+ return this;
409
+ }
410
+ /**
411
+ * Record command and return simulated output.
412
+ */
413
+ async run(command, options = {}) {
414
+ this.calls.push({
415
+ command,
416
+ options
417
+ });
418
+ const errorMsg = this.errors.get(command);
419
+ if (errorMsg) throw new Error(errorMsg);
420
+ return this.outputs.get(command) ?? "";
421
+ }
422
+ /**
423
+ * Check if a specific command was called.
424
+ */
425
+ wasCalled(command) {
426
+ return this.calls.some((call) => call.command === command);
427
+ }
428
+ /**
429
+ * Check if a command matching a pattern was called.
430
+ */
431
+ wasCalledMatching(pattern) {
432
+ return this.calls.some((call) => pattern.test(call.command));
433
+ }
434
+ /**
435
+ * Get all calls matching a pattern.
436
+ */
437
+ getCallsMatching(pattern) {
438
+ return this.calls.filter((call) => pattern.test(call.command));
439
+ }
440
+ /**
441
+ * Check if a command is installed.
442
+ */
443
+ async isInstalled(command) {
444
+ return this.installedCommands.has(command);
445
+ }
446
+ /**
447
+ * Reset all recorded state.
448
+ */
449
+ reset() {
450
+ this.calls = [];
451
+ this.outputs.clear();
452
+ this.errors.clear();
453
+ this.installedCommands.clear();
454
+ }
455
+ };
456
+
457
+ //#endregion
458
+ //#region ../../src/system/services/FileDetector.ts
257
459
  /**
258
460
  * Service for detecting file types and getting content types.
259
461
  *
@@ -956,7 +1158,7 @@ var FileDetector = class FileDetector {
956
1158
  };
957
1159
 
958
1160
  //#endregion
959
- //#region ../../src/file/providers/NodeFileSystemProvider.ts
1161
+ //#region ../../src/system/providers/NodeFileSystemProvider.ts
960
1162
  /**
961
1163
  * Node.js implementation of FileSystem interface.
962
1164
  *
@@ -983,6 +1185,7 @@ var FileDetector = class FileDetector {
983
1185
  */
984
1186
  var NodeFileSystemProvider = class {
985
1187
  detector = $inject(FileDetector);
1188
+ json = $inject(Json);
986
1189
  join(...paths) {
987
1190
  return join(...paths);
988
1191
  }
@@ -1269,6 +1472,37 @@ var NodeFileSystemProvider = class {
1269
1472
  await writeFile(path, data);
1270
1473
  }
1271
1474
  /**
1475
+ * Reads the content of a file as a string.
1476
+ *
1477
+ * @param path - The file path to read
1478
+ * @returns The file content as a string
1479
+ *
1480
+ * @example
1481
+ * ```typescript
1482
+ * const fs = alepha.inject(NodeFileSystemProvider);
1483
+ * const content = await fs.readTextFile("/tmp/file.txt");
1484
+ * ```
1485
+ */
1486
+ async readTextFile(path) {
1487
+ return (await this.readFile(path)).toString("utf-8");
1488
+ }
1489
+ /**
1490
+ * Reads the content of a file as JSON.
1491
+ *
1492
+ * @param path - The file path to read
1493
+ * @returns The parsed JSON content
1494
+ *
1495
+ * @example
1496
+ * ```typescript
1497
+ * const fs = alepha.inject(NodeFileSystemProvider);
1498
+ * const config = await fs.readJsonFile<{ name: string }>("/tmp/config.json");
1499
+ * ```
1500
+ */
1501
+ async readJsonFile(path) {
1502
+ const text = await this.readTextFile(path);
1503
+ return this.json.parse(text);
1504
+ }
1505
+ /**
1272
1506
  * Creates a FileLike object from a Web File.
1273
1507
  *
1274
1508
  * @protected
@@ -1421,7 +1655,154 @@ var NodeFileSystemProvider = class {
1421
1655
  };
1422
1656
 
1423
1657
  //#endregion
1424
- //#region ../../src/file/errors/FileError.ts
1658
+ //#region ../../src/system/providers/NodeShellProvider.ts
1659
+ /**
1660
+ * Node.js implementation of ShellProvider.
1661
+ *
1662
+ * Executes shell commands using Node.js child_process module.
1663
+ * Supports binary resolution from node_modules/.bin for local packages.
1664
+ */
1665
+ var NodeShellProvider = class {
1666
+ log = $logger();
1667
+ fs = $inject(FileSystemProvider);
1668
+ /**
1669
+ * Run a shell command or binary.
1670
+ */
1671
+ async run(command, options = {}) {
1672
+ const { resolve = false, capture = false, root, env } = options;
1673
+ const cwd = root ?? process.cwd();
1674
+ this.log.debug(`Shell: ${command}`, {
1675
+ cwd,
1676
+ resolve,
1677
+ capture
1678
+ });
1679
+ let executable;
1680
+ let args;
1681
+ if (resolve) {
1682
+ const [bin, ...rest] = command.split(" ");
1683
+ executable = await this.resolveExecutable(bin, cwd);
1684
+ args = rest;
1685
+ } else [executable, ...args] = command.split(" ");
1686
+ if (capture) return this.execCapture(command, {
1687
+ cwd,
1688
+ env
1689
+ });
1690
+ return this.execInherit(executable, args, {
1691
+ cwd,
1692
+ env
1693
+ });
1694
+ }
1695
+ /**
1696
+ * Execute command with inherited stdio (streams to terminal).
1697
+ */
1698
+ async execInherit(executable, args, options) {
1699
+ const proc = spawn(executable, args, {
1700
+ stdio: "inherit",
1701
+ cwd: options.cwd,
1702
+ env: {
1703
+ ...process.env,
1704
+ ...options.env
1705
+ }
1706
+ });
1707
+ return new Promise((resolve, reject) => {
1708
+ proc.on("exit", (code) => {
1709
+ if (code === 0 || code === null) resolve("");
1710
+ else reject(new AlephaError(`Command exited with code ${code}`));
1711
+ });
1712
+ proc.on("error", reject);
1713
+ });
1714
+ }
1715
+ /**
1716
+ * Execute command and capture stdout.
1717
+ */
1718
+ execCapture(command, options) {
1719
+ return new Promise((resolve, reject) => {
1720
+ exec(command, {
1721
+ cwd: options.cwd,
1722
+ env: {
1723
+ ...process.env,
1724
+ LOG_FORMAT: "pretty",
1725
+ ...options.env
1726
+ }
1727
+ }, (err, stdout) => {
1728
+ if (err) {
1729
+ err.stdout = stdout;
1730
+ reject(err);
1731
+ } else resolve(stdout);
1732
+ });
1733
+ });
1734
+ }
1735
+ /**
1736
+ * Resolve executable path from node_modules/.bin.
1737
+ *
1738
+ * Search order:
1739
+ * 1. Local: node_modules/.bin/
1740
+ * 2. Pnpm nested: node_modules/alepha/node_modules/.bin/
1741
+ * 3. Monorepo: Walk up to 3 parent directories
1742
+ */
1743
+ async resolveExecutable(name, root) {
1744
+ const suffix = process.platform === "win32" ? ".cmd" : "";
1745
+ let execPath = await this.findExecutable(root, `node_modules/.bin/${name}${suffix}`);
1746
+ if (!execPath) execPath = await this.findExecutable(root, `node_modules/alepha/node_modules/.bin/${name}${suffix}`);
1747
+ if (!execPath) {
1748
+ let parentDir = this.fs.join(root, "..");
1749
+ for (let i = 0; i < 3; i++) {
1750
+ execPath = await this.findExecutable(parentDir, `node_modules/.bin/${name}${suffix}`);
1751
+ if (execPath) break;
1752
+ parentDir = this.fs.join(parentDir, "..");
1753
+ }
1754
+ }
1755
+ if (!execPath) throw new AlephaError(`Could not find executable for '${name}'. Make sure the package is installed.`);
1756
+ return execPath;
1757
+ }
1758
+ /**
1759
+ * Check if executable exists at path.
1760
+ */
1761
+ async findExecutable(root, relativePath) {
1762
+ const fullPath = this.fs.join(root, relativePath);
1763
+ if (await this.fs.exists(fullPath)) return fullPath;
1764
+ }
1765
+ /**
1766
+ * Check if a command is installed and available in the system PATH.
1767
+ */
1768
+ isInstalled(command) {
1769
+ return new Promise((resolve) => {
1770
+ exec(process.platform === "win32" ? `where ${command}` : `command -v ${command}`, (error) => resolve(!error));
1771
+ });
1772
+ }
1773
+ };
1774
+
1775
+ //#endregion
1776
+ //#region ../../src/system/providers/ShellProvider.ts
1777
+ /**
1778
+ * Abstract provider for executing shell commands and binaries.
1779
+ *
1780
+ * Implementations:
1781
+ * - `NodeShellProvider` - Real shell execution using Node.js child_process
1782
+ * - `MemoryShellProvider` - In-memory mock for testing
1783
+ *
1784
+ * @example
1785
+ * ```typescript
1786
+ * class MyService {
1787
+ * protected readonly shell = $inject(ShellProvider);
1788
+ *
1789
+ * async build() {
1790
+ * // Run shell command directly
1791
+ * await this.shell.run("yarn install");
1792
+ *
1793
+ * // Run local binary with resolution
1794
+ * await this.shell.run("vite build", { resolve: true });
1795
+ *
1796
+ * // Capture output
1797
+ * const output = await this.shell.run("echo hello", { capture: true });
1798
+ * }
1799
+ * }
1800
+ * ```
1801
+ */
1802
+ var ShellProvider = class {};
1803
+
1804
+ //#endregion
1805
+ //#region ../../src/system/errors/FileError.ts
1425
1806
  var FileError = class extends Error {
1426
1807
  constructor(message, cause) {
1427
1808
  super(message);
@@ -1431,34 +1812,45 @@ var FileError = class extends Error {
1431
1812
  };
1432
1813
 
1433
1814
  //#endregion
1434
- //#region ../../src/file/index.ts
1815
+ //#region ../../src/system/index.ts
1435
1816
  /**
1436
- * Provides file system capabilities for Alepha applications with support for multiple file sources and operations.
1817
+ * | type | quality | stability |
1818
+ * |------|---------|-----------|
1819
+ * | tooling | standard | stable |
1437
1820
  *
1438
- * The file module enables working with files from various sources (URLs, buffers, streams) and provides
1439
- * utilities for file type detection, content type determination, and common file system operations.
1821
+ * System-level abstractions for portable code across runtimes.
1440
1822
  *
1441
- * @see {@link FileDetector}
1442
- * @see {@link FileSystemProvider}
1443
- * @see {@link NodeFileSystemProvider}
1444
- * @module alepha.file
1823
+ * **Features:**
1824
+ * - File system operations (read, write, exists, etc.)
1825
+ * - Shell command execution
1826
+ * - File type detection and MIME utilities
1827
+ * - Memory implementations for testing
1828
+ *
1829
+ * @module alepha.system
1445
1830
  */
1446
- const AlephaFile = $module({
1447
- name: "alepha.file",
1831
+ const AlephaSystem = $module({
1832
+ name: "alepha.system",
1448
1833
  primitives: [],
1449
1834
  services: [
1450
1835
  FileDetector,
1451
1836
  FileSystemProvider,
1452
1837
  MemoryFileSystemProvider,
1453
- NodeFileSystemProvider
1838
+ NodeFileSystemProvider,
1839
+ ShellProvider,
1840
+ MemoryShellProvider,
1841
+ NodeShellProvider
1454
1842
  ],
1455
1843
  register: (alepha) => alepha.with({
1456
1844
  optional: true,
1457
1845
  provide: FileSystemProvider,
1458
1846
  use: NodeFileSystemProvider
1847
+ }).with({
1848
+ optional: true,
1849
+ provide: ShellProvider,
1850
+ use: alepha.isTest() ? MemoryShellProvider : NodeShellProvider
1459
1851
  })
1460
1852
  });
1461
1853
 
1462
1854
  //#endregion
1463
- export { AlephaFile, FileDetector, FileError, FileSystemProvider, MemoryFileSystemProvider, NodeFileSystemProvider };
1855
+ export { AlephaSystem, FileDetector, FileError, FileSystemProvider, MemoryFileSystemProvider, MemoryShellProvider, NodeFileSystemProvider, NodeShellProvider, ShellProvider };
1464
1856
  //# sourceMappingURL=index.js.map