alepha 0.14.1 → 0.14.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 (97) hide show
  1. package/README.md +3 -3
  2. package/dist/api/audits/index.d.ts +342 -342
  3. package/dist/api/audits/index.d.ts.map +1 -1
  4. package/dist/api/audits/index.js.map +1 -1
  5. package/dist/api/files/index.js.map +1 -1
  6. package/dist/api/jobs/index.d.ts +161 -161
  7. package/dist/api/jobs/index.js.map +1 -1
  8. package/dist/api/parameters/index.js.map +1 -1
  9. package/dist/api/users/index.d.ts +791 -791
  10. package/dist/api/users/index.d.ts.map +1 -1
  11. package/dist/api/users/index.js +4 -0
  12. package/dist/api/users/index.js.map +1 -1
  13. package/dist/api/verifications/index.d.ts +128 -128
  14. package/dist/api/verifications/index.d.ts.map +1 -1
  15. package/dist/batch/index.js.map +1 -1
  16. package/dist/cache/core/index.js.map +1 -1
  17. package/dist/cli/index.d.ts +173 -167
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/index.js +427 -409
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/command/index.d.ts +5 -5
  22. package/dist/command/index.js.map +1 -1
  23. package/dist/core/index.browser.js.map +1 -1
  24. package/dist/core/index.d.ts.map +1 -1
  25. package/dist/core/index.js +7 -6
  26. package/dist/core/index.js.map +1 -1
  27. package/dist/core/index.native.js +7 -6
  28. package/dist/core/index.native.js.map +1 -1
  29. package/dist/datetime/index.js.map +1 -1
  30. package/dist/fake/index.js.map +1 -1
  31. package/dist/file/index.js.map +1 -1
  32. package/dist/lock/redis/index.js.map +1 -1
  33. package/dist/logger/index.js.map +1 -1
  34. package/dist/mcp/index.js.map +1 -1
  35. package/dist/orm/index.browser.js +26 -5
  36. package/dist/orm/index.browser.js.map +1 -1
  37. package/dist/orm/index.d.ts +115 -90
  38. package/dist/orm/index.d.ts.map +1 -1
  39. package/dist/orm/index.js +37 -12
  40. package/dist/orm/index.js.map +1 -1
  41. package/dist/redis/index.js.map +1 -1
  42. package/dist/retry/index.js.map +1 -1
  43. package/dist/router/index.js.map +1 -1
  44. package/dist/scheduler/index.d.ts +6 -6
  45. package/dist/scheduler/index.js.map +1 -1
  46. package/dist/security/index.d.ts +28 -28
  47. package/dist/security/index.d.ts.map +1 -1
  48. package/dist/security/index.js.map +1 -1
  49. package/dist/server/auth/index.d.ts +155 -155
  50. package/dist/server/auth/index.js.map +1 -1
  51. package/dist/server/cache/index.js.map +1 -1
  52. package/dist/server/cookies/index.browser.js.map +1 -1
  53. package/dist/server/cookies/index.js.map +1 -1
  54. package/dist/server/core/index.browser.js.map +1 -1
  55. package/dist/server/core/index.js.map +1 -1
  56. package/dist/server/health/index.d.ts +17 -17
  57. package/dist/server/helmet/index.js.map +1 -1
  58. package/dist/server/links/index.browser.js.map +1 -1
  59. package/dist/server/links/index.js.map +1 -1
  60. package/dist/server/multipart/index.js.map +1 -1
  61. package/dist/server/rate-limit/index.js.map +1 -1
  62. package/dist/server/security/index.d.ts +9 -9
  63. package/dist/server/security/index.js.map +1 -1
  64. package/dist/server/swagger/index.js.map +1 -1
  65. package/dist/thread/index.js.map +1 -1
  66. package/dist/topic/core/index.js.map +1 -1
  67. package/dist/vite/index.js.map +1 -1
  68. package/dist/websocket/index.browser.js.map +1 -1
  69. package/dist/websocket/index.d.ts +7 -7
  70. package/dist/websocket/index.js.map +1 -1
  71. package/package.json +3 -3
  72. package/src/api/users/index.ts +4 -0
  73. package/src/cli/apps/AlephaCli.ts +31 -14
  74. package/src/cli/apps/AlephaPackageBuilderCli.ts +2 -1
  75. package/src/cli/assets/appRouterTs.ts +1 -1
  76. package/src/cli/commands/{ViteCommands.ts → build.ts} +2 -105
  77. package/src/cli/commands/{ChangelogCommands.ts → changelog.ts} +7 -22
  78. package/src/cli/commands/clean.ts +14 -0
  79. package/src/cli/commands/{DrizzleCommands.ts → db.ts} +10 -117
  80. package/src/cli/commands/{DeployCommands.ts → deploy.ts} +1 -1
  81. package/src/cli/commands/dev.ts +57 -0
  82. package/src/cli/commands/format.ts +17 -0
  83. package/src/cli/commands/{CoreCommands.ts → init.ts} +2 -40
  84. package/src/cli/commands/lint.ts +17 -0
  85. package/src/cli/commands/root.ts +32 -0
  86. package/src/cli/commands/run.ts +24 -0
  87. package/src/cli/commands/test.ts +42 -0
  88. package/src/cli/commands/typecheck.ts +19 -0
  89. package/src/cli/commands/{VerifyCommands.ts → verify.ts} +1 -13
  90. package/src/cli/defineConfig.ts +10 -1
  91. package/src/cli/index.ts +16 -7
  92. package/src/cli/services/GitMessageParser.ts +1 -1
  93. package/src/core/Alepha.ts +7 -4
  94. package/src/orm/index.browser.ts +1 -1
  95. package/src/orm/index.ts +10 -6
  96. package/src/orm/providers/{PostgresTypeProvider.ts → DatabaseTypeProvider.ts} +25 -3
  97. package/src/cli/commands/BiomeCommands.ts +0 -29
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["keysToDelete: string[]"],"sources":["../../../src/cache/core/errors/CacheError.ts","../../../src/cache/core/providers/CacheProvider.ts","../../../src/cache/core/providers/MemoryCacheProvider.ts","../../../src/cache/core/primitives/$cache.ts","../../../src/cache/core/index.ts"],"sourcesContent":["import { AlephaError } from \"alepha\";\n\nexport class CacheError extends AlephaError {}\n","/**\n * Cache provider interface.\n *\n * All methods are asynchronous and return promises.\n * Values are stored as Uint8Array.\n */\nexport abstract class CacheProvider {\n /**\n * Get the value of a key.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param key The key of the value to get.\n *\n * @return The value of the key, or undefined if the key does not exist.\n */\n public abstract get(\n name: string,\n key: string,\n ): Promise<Uint8Array | undefined>;\n\n /**\n * Set the string value of a key.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param key The key of the value to set.\n * @param value The value to set.\n * @param ttl The time-to-live of the key, in milliseconds.\n *\n * @return The value of the key.\n */\n public abstract set(\n name: string,\n key: string,\n value: Uint8Array,\n ttl?: number,\n ): Promise<Uint8Array>;\n\n /**\n * Remove the specified keys.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param keys The keys to delete.\n */\n public abstract del(name: string, ...keys: string[]): Promise<void>;\n\n public abstract has(name: string, key: string): Promise<boolean>;\n\n public abstract keys(name: string, filter?: string): Promise<string[]>;\n\n /**\n * Remove all keys from all cache names.\n */\n public abstract clear(): Promise<void>;\n}\n","import { $inject } from \"alepha\";\nimport { DateTimeProvider, type Timeout } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport type { CacheProvider } from \"./CacheProvider.ts\";\n\ntype CacheName = string;\ntype CacheKey = string;\ntype CacheValue = {\n data?: Uint8Array;\n timeout?: Timeout;\n};\n\nexport class MemoryCacheProvider implements CacheProvider {\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly log = $logger();\n\n protected store: Record<CacheName, Record<CacheKey, CacheValue>> = {};\n\n public async get(name: string, key: string): Promise<Uint8Array | undefined> {\n return this.store[name]?.[key]?.data;\n }\n\n public async set(\n name: string,\n key: string,\n value: Uint8Array,\n ttl?: number,\n ): Promise<Uint8Array> {\n if (this.store[name] == null) {\n this.store[name] = {};\n }\n\n this.store[name][key] ??= {};\n this.store[name][key].data = value;\n\n this.log.debug(`Setting cache for name`, { name, key, ttl });\n\n // clear previous timeout if exists\n if (this.store[name][key].timeout) {\n this.dateTimeProvider.clearTimeout(this.store[name][key].timeout);\n this.store[name][key].timeout = undefined;\n }\n\n if (ttl) {\n this.store[name][key].timeout = this.dateTimeProvider.createTimeout(\n () => this.del(name, key),\n ttl,\n );\n }\n\n return this.store[name][key].data;\n }\n\n public async del(name: string, ...keys: string[]): Promise<void> {\n // delete all keys in name\n if (keys.length === 0) {\n this.log.debug(`Deleting all cache for name`, { name });\n\n if (this.store[name]) {\n for (const key of Object.keys(this.store[name])) {\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n }\n }\n delete this.store[name];\n return;\n }\n\n this.log.debug(`Deleting cache for name`, { name, keys });\n\n // delete specific keys in name\n for (const key of keys) {\n if (this.store[name] == null) break;\n\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n\n delete this.store[name][key];\n }\n\n if (Object.keys(this.store[name] ?? {}).length === 0) {\n // if name is empty, delete it\n delete this.store[name];\n }\n }\n\n public async has(name: string, key: string): Promise<boolean> {\n return this.store[name]?.[key]?.data != null;\n }\n\n public async keys(name: string, filter?: string): Promise<string[]> {\n const store = this.store[name] ?? {};\n const keys = Object.keys(store);\n if (filter) {\n return keys.filter((key) => key.startsWith(filter));\n }\n return keys;\n }\n\n public async clear(): Promise<void> {\n this.log.debug(\"Clearing all cache\");\n\n // Clear all timeouts before clearing the store\n for (const name of Object.keys(this.store)) {\n for (const key of Object.keys(this.store[name])) {\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n }\n }\n\n this.store = {};\n }\n}\n","import {\n $env,\n $inject,\n createPrimitive,\n type InstantiableClass,\n KIND,\n Primitive,\n t,\n} from \"alepha\";\nimport { DateTimeProvider, type DurationLike } from \"alepha/datetime\";\nimport { CacheError } from \"../errors/CacheError.ts\";\nimport { CacheProvider } from \"../providers/CacheProvider.ts\";\nimport { MemoryCacheProvider } from \"../providers/MemoryCacheProvider.ts\";\n\n/**\n * Creates a cache primitive for high-performance data caching with automatic management.\n *\n * Provides a caching layer that improves application performance by storing frequently accessed\n * data in memory or external stores like Redis, with support for both function result caching\n * and manual cache operations.\n *\n * **Key Features**\n * - Automatic function result caching based on input parameters\n * - Multiple storage backends (in-memory, Redis, custom providers)\n * - Intelligent serialization for JSON, strings, and binary data\n * - Configurable TTL with automatic expiration\n * - Pattern-based cache invalidation with wildcard support\n * - Environment controls to enable/disable caching\n *\n * **Storage Backends**\n * - Memory: Fast in-memory cache (default for development)\n * - Redis: Distributed cache for production environments\n * - Custom providers: Implement your own storage backend\n *\n * @example\n * ```ts\n * class DataService {\n * // Function result caching\n * getUserData = $cache({\n * name: \"user-data\",\n * ttl: [10, \"minutes\"],\n * handler: async (userId: string) => {\n * return await database.users.findById(userId);\n * }\n * });\n *\n * // Manual cache operations\n * sessionCache = $cache<UserSession>({\n * name: \"sessions\",\n * ttl: [1, \"hour\"]\n * });\n *\n * async storeSession(id: string, session: UserSession) {\n * await this.sessionCache.set(id, session);\n * }\n *\n * async invalidateUserSessions(userId: string) {\n * await this.sessionCache.invalidate(`user:${userId}:*`);\n * }\n * }\n * ```\n */\nexport const $cache = <TReturn = string, TParameter extends any[] = any[]>(\n options: CachePrimitiveOptions<TReturn, TParameter> = {},\n): CachePrimitiveFn<TReturn, TParameter> => {\n const instance = createPrimitive(\n CachePrimitive<TReturn, TParameter>,\n options,\n );\n const fn = (...args: TParameter): Promise<TReturn> => instance.run(...args);\n return Object.setPrototypeOf(fn, instance) as CachePrimitiveFn<\n TReturn,\n TParameter\n >;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CachePrimitiveOptions<\n TReturn = any,\n TParameter extends any[] = any[],\n> {\n /**\n * The cache name. This is useful for invalidating multiple caches at once.\n *\n * Store key as `cache:$name:$key`.\n *\n * @default Name of the key of the class.\n */\n name?: string;\n\n /**\n * Function which returns cached data.\n */\n handler?: (...args: TParameter) => TReturn;\n\n /**\n * The key generator for the cache.\n * If not provided, the arguments will be json.stringify().\n */\n key?: (...args: TParameter) => string;\n\n /**\n * The store provider for the cache.\n * If not provided, the default store provider will be used.\n */\n provider?: InstantiableClass<CacheProvider> | \"memory\";\n\n /**\n * The time-to-live for the cache in seconds.\n * Set 0 to skip expiration.\n *\n * @default 300 (5 minutes).\n */\n ttl?: DurationLike;\n\n /**\n * If the cache is disabled.\n */\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nconst envSchema = t.object({\n CACHE_ENABLED: t.boolean({ default: true }),\n CACHE_DEFAULT_TTL: t.number({\n default: 300, // 5 minutes\n description: \"The default time to live for cache entries. In seconds.\",\n }),\n});\n\nexport class CachePrimitive<\n TReturn = any,\n TParameter extends any[] = any[],\n> extends Primitive<CachePrimitiveOptions<TReturn, TParameter>> {\n protected readonly env = $env(envSchema);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly provider = this.$provider();\n protected encoder: TextEncoder = new TextEncoder();\n protected decoder: TextDecoder = new TextDecoder();\n protected codes = {\n BINARY: 0x01,\n JSON: 0x02,\n STRING: 0x03,\n };\n\n public get container(): string {\n return (\n this.options.name ??\n `${this.config.service.name}:${this.config.propertyKey}`\n );\n }\n\n public async run(...args: TParameter): Promise<TReturn> {\n const handler = this.options.handler;\n if (!handler) {\n throw new Error(\"Cache handler is not defined.\");\n }\n\n const key = this.key(...args);\n const cached = await this.get(key);\n if (cached) {\n return cached;\n }\n\n const result = await handler(...args);\n // note: when exception occurs, don't cache the result\n\n await this.set(key, result);\n\n return result;\n }\n\n public key(...args: TParameter): string {\n return this.options.key ? this.options.key(...args) : JSON.stringify(args);\n }\n\n public async invalidate(...keys: string[]): Promise<void> {\n const keysToDelete: string[] = [];\n\n for (const key of keys) {\n if (key.endsWith(\"*\")) {\n const result = await this.provider.keys(\n this.container,\n key.slice(0, -1),\n );\n keysToDelete.push(...result);\n } else {\n keysToDelete.push(key);\n }\n }\n\n await this.provider.del(this.container, ...keysToDelete);\n }\n\n public async set(\n key: string,\n value: TReturn,\n ttl?: DurationLike,\n ): Promise<void> {\n const px = this.dateTimeProvider\n .duration(\n ttl ?? this.options.ttl ?? [this.env.CACHE_DEFAULT_TTL, \"seconds\"],\n )\n .as(\"milliseconds\");\n\n await this.provider.set(\n this.container,\n key,\n this.serialize(value),\n px > 0 ? px : undefined,\n );\n }\n\n public async get(key: string): Promise<TReturn | undefined> {\n if (\n !this.alepha.isStarted() ||\n this.options.disabled ||\n !this.env.CACHE_ENABLED\n ) {\n return undefined;\n }\n\n const data = await this.provider.get(this.container, key);\n if (data) {\n return await this.deserialize<TReturn>(data);\n }\n\n return undefined;\n }\n\n protected serialize<TReturn>(value: TReturn): Uint8Array {\n if (value instanceof Uint8Array) {\n return new Uint8Array([this.codes.BINARY, ...value]); // TODO: check if copy is ok?\n }\n\n if (typeof value === \"string\") {\n return new Uint8Array([this.codes.STRING, ...this.encoder.encode(value)]);\n }\n\n return new Uint8Array([\n this.codes.JSON,\n ...this.encoder.encode(JSON.stringify(value)),\n ]);\n }\n\n protected async deserialize<TReturn>(\n uint8Array: Uint8Array,\n ): Promise<TReturn> {\n const type = uint8Array[0];\n const payload = uint8Array.slice(1);\n\n if (type === this.codes.BINARY) {\n return payload as TReturn;\n }\n if (type === this.codes.JSON) {\n return JSON.parse(this.decoder.decode(payload)) as TReturn;\n }\n if (type === this.codes.STRING) {\n return this.decoder.decode(payload) as TReturn;\n }\n\n throw new CacheError(`Unknown serialization type: ${type}`);\n }\n\n protected $provider(): CacheProvider {\n if (!this.options.provider) {\n return this.alepha.inject(CacheProvider);\n }\n\n if (this.options.provider === \"memory\") {\n return this.alepha.inject(MemoryCacheProvider);\n }\n\n return this.alepha.inject(this.options.provider);\n }\n}\n\nexport interface CachePrimitiveFn<\n TReturn = any,\n TParameter extends any[] = any[],\n> extends CachePrimitive<TReturn, TParameter> {\n /**\n * Run the cache primitive with the provided arguments.\n */\n (...args: TParameter): Promise<TReturn>;\n}\n\n$cache[KIND] = CachePrimitive;\n","import { $module } from \"alepha\";\nimport { $cache } from \"./primitives/$cache.ts\";\nimport { CacheProvider } from \"./providers/CacheProvider.ts\";\nimport { MemoryCacheProvider } from \"./providers/MemoryCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cache.ts\";\nexport * from \"./providers/CacheProvider.ts\";\nexport * from \"./providers/MemoryCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Provides high-performance caching capabilities for Alepha applications with configurable TTL and multiple storage backends.\n *\n * The cache module enables declarative caching through the `$cache` primitive, allowing you to cache method results,\n * API responses, or computed values with automatic invalidation and type safety. It supports both in-memory and\n * persistent storage backends for different performance and durability requirements.\n *\n * @see {@link $cache}\n * @see {@link CacheProvider}\n * @module alepha.cache\n */\nexport const AlephaCache = $module({\n name: \"alepha.cache\",\n primitives: [$cache],\n services: [CacheProvider, MemoryCacheProvider],\n register: (alepha) =>\n alepha.with({\n optional: true,\n provide: CacheProvider,\n use: MemoryCacheProvider,\n }),\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/cache/core/errors/CacheError.ts","../../../src/cache/core/providers/CacheProvider.ts","../../../src/cache/core/providers/MemoryCacheProvider.ts","../../../src/cache/core/primitives/$cache.ts","../../../src/cache/core/index.ts"],"sourcesContent":["import { AlephaError } from \"alepha\";\n\nexport class CacheError extends AlephaError {}\n","/**\n * Cache provider interface.\n *\n * All methods are asynchronous and return promises.\n * Values are stored as Uint8Array.\n */\nexport abstract class CacheProvider {\n /**\n * Get the value of a key.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param key The key of the value to get.\n *\n * @return The value of the key, or undefined if the key does not exist.\n */\n public abstract get(\n name: string,\n key: string,\n ): Promise<Uint8Array | undefined>;\n\n /**\n * Set the string value of a key.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param key The key of the value to set.\n * @param value The value to set.\n * @param ttl The time-to-live of the key, in milliseconds.\n *\n * @return The value of the key.\n */\n public abstract set(\n name: string,\n key: string,\n value: Uint8Array,\n ttl?: number,\n ): Promise<Uint8Array>;\n\n /**\n * Remove the specified keys.\n *\n * @param name Cache name, used to group keys. Should be Redis-like \"some:group:name\" format.\n * @param keys The keys to delete.\n */\n public abstract del(name: string, ...keys: string[]): Promise<void>;\n\n public abstract has(name: string, key: string): Promise<boolean>;\n\n public abstract keys(name: string, filter?: string): Promise<string[]>;\n\n /**\n * Remove all keys from all cache names.\n */\n public abstract clear(): Promise<void>;\n}\n","import { $inject } from \"alepha\";\nimport { DateTimeProvider, type Timeout } from \"alepha/datetime\";\nimport { $logger } from \"alepha/logger\";\nimport type { CacheProvider } from \"./CacheProvider.ts\";\n\ntype CacheName = string;\ntype CacheKey = string;\ntype CacheValue = {\n data?: Uint8Array;\n timeout?: Timeout;\n};\n\nexport class MemoryCacheProvider implements CacheProvider {\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly log = $logger();\n\n protected store: Record<CacheName, Record<CacheKey, CacheValue>> = {};\n\n public async get(name: string, key: string): Promise<Uint8Array | undefined> {\n return this.store[name]?.[key]?.data;\n }\n\n public async set(\n name: string,\n key: string,\n value: Uint8Array,\n ttl?: number,\n ): Promise<Uint8Array> {\n if (this.store[name] == null) {\n this.store[name] = {};\n }\n\n this.store[name][key] ??= {};\n this.store[name][key].data = value;\n\n this.log.debug(`Setting cache for name`, { name, key, ttl });\n\n // clear previous timeout if exists\n if (this.store[name][key].timeout) {\n this.dateTimeProvider.clearTimeout(this.store[name][key].timeout);\n this.store[name][key].timeout = undefined;\n }\n\n if (ttl) {\n this.store[name][key].timeout = this.dateTimeProvider.createTimeout(\n () => this.del(name, key),\n ttl,\n );\n }\n\n return this.store[name][key].data;\n }\n\n public async del(name: string, ...keys: string[]): Promise<void> {\n // delete all keys in name\n if (keys.length === 0) {\n this.log.debug(`Deleting all cache for name`, { name });\n\n if (this.store[name]) {\n for (const key of Object.keys(this.store[name])) {\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n }\n }\n delete this.store[name];\n return;\n }\n\n this.log.debug(`Deleting cache for name`, { name, keys });\n\n // delete specific keys in name\n for (const key of keys) {\n if (this.store[name] == null) break;\n\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n\n delete this.store[name][key];\n }\n\n if (Object.keys(this.store[name] ?? {}).length === 0) {\n // if name is empty, delete it\n delete this.store[name];\n }\n }\n\n public async has(name: string, key: string): Promise<boolean> {\n return this.store[name]?.[key]?.data != null;\n }\n\n public async keys(name: string, filter?: string): Promise<string[]> {\n const store = this.store[name] ?? {};\n const keys = Object.keys(store);\n if (filter) {\n return keys.filter((key) => key.startsWith(filter));\n }\n return keys;\n }\n\n public async clear(): Promise<void> {\n this.log.debug(\"Clearing all cache\");\n\n // Clear all timeouts before clearing the store\n for (const name of Object.keys(this.store)) {\n for (const key of Object.keys(this.store[name])) {\n const timeout = this.store[name][key]?.timeout;\n if (timeout) {\n this.dateTimeProvider.clearTimeout(timeout);\n }\n }\n }\n\n this.store = {};\n }\n}\n","import {\n $env,\n $inject,\n createPrimitive,\n type InstantiableClass,\n KIND,\n Primitive,\n t,\n} from \"alepha\";\nimport { DateTimeProvider, type DurationLike } from \"alepha/datetime\";\nimport { CacheError } from \"../errors/CacheError.ts\";\nimport { CacheProvider } from \"../providers/CacheProvider.ts\";\nimport { MemoryCacheProvider } from \"../providers/MemoryCacheProvider.ts\";\n\n/**\n * Creates a cache primitive for high-performance data caching with automatic management.\n *\n * Provides a caching layer that improves application performance by storing frequently accessed\n * data in memory or external stores like Redis, with support for both function result caching\n * and manual cache operations.\n *\n * **Key Features**\n * - Automatic function result caching based on input parameters\n * - Multiple storage backends (in-memory, Redis, custom providers)\n * - Intelligent serialization for JSON, strings, and binary data\n * - Configurable TTL with automatic expiration\n * - Pattern-based cache invalidation with wildcard support\n * - Environment controls to enable/disable caching\n *\n * **Storage Backends**\n * - Memory: Fast in-memory cache (default for development)\n * - Redis: Distributed cache for production environments\n * - Custom providers: Implement your own storage backend\n *\n * @example\n * ```ts\n * class DataService {\n * // Function result caching\n * getUserData = $cache({\n * name: \"user-data\",\n * ttl: [10, \"minutes\"],\n * handler: async (userId: string) => {\n * return await database.users.findById(userId);\n * }\n * });\n *\n * // Manual cache operations\n * sessionCache = $cache<UserSession>({\n * name: \"sessions\",\n * ttl: [1, \"hour\"]\n * });\n *\n * async storeSession(id: string, session: UserSession) {\n * await this.sessionCache.set(id, session);\n * }\n *\n * async invalidateUserSessions(userId: string) {\n * await this.sessionCache.invalidate(`user:${userId}:*`);\n * }\n * }\n * ```\n */\nexport const $cache = <TReturn = string, TParameter extends any[] = any[]>(\n options: CachePrimitiveOptions<TReturn, TParameter> = {},\n): CachePrimitiveFn<TReturn, TParameter> => {\n const instance = createPrimitive(\n CachePrimitive<TReturn, TParameter>,\n options,\n );\n const fn = (...args: TParameter): Promise<TReturn> => instance.run(...args);\n return Object.setPrototypeOf(fn, instance) as CachePrimitiveFn<\n TReturn,\n TParameter\n >;\n};\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport interface CachePrimitiveOptions<\n TReturn = any,\n TParameter extends any[] = any[],\n> {\n /**\n * The cache name. This is useful for invalidating multiple caches at once.\n *\n * Store key as `cache:$name:$key`.\n *\n * @default Name of the key of the class.\n */\n name?: string;\n\n /**\n * Function which returns cached data.\n */\n handler?: (...args: TParameter) => TReturn;\n\n /**\n * The key generator for the cache.\n * If not provided, the arguments will be json.stringify().\n */\n key?: (...args: TParameter) => string;\n\n /**\n * The store provider for the cache.\n * If not provided, the default store provider will be used.\n */\n provider?: InstantiableClass<CacheProvider> | \"memory\";\n\n /**\n * The time-to-live for the cache in seconds.\n * Set 0 to skip expiration.\n *\n * @default 300 (5 minutes).\n */\n ttl?: DurationLike;\n\n /**\n * If the cache is disabled.\n */\n disabled?: boolean;\n}\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nconst envSchema = t.object({\n CACHE_ENABLED: t.boolean({ default: true }),\n CACHE_DEFAULT_TTL: t.number({\n default: 300, // 5 minutes\n description: \"The default time to live for cache entries. In seconds.\",\n }),\n});\n\nexport class CachePrimitive<\n TReturn = any,\n TParameter extends any[] = any[],\n> extends Primitive<CachePrimitiveOptions<TReturn, TParameter>> {\n protected readonly env = $env(envSchema);\n protected readonly dateTimeProvider = $inject(DateTimeProvider);\n protected readonly provider = this.$provider();\n protected encoder: TextEncoder = new TextEncoder();\n protected decoder: TextDecoder = new TextDecoder();\n protected codes = {\n BINARY: 0x01,\n JSON: 0x02,\n STRING: 0x03,\n };\n\n public get container(): string {\n return (\n this.options.name ??\n `${this.config.service.name}:${this.config.propertyKey}`\n );\n }\n\n public async run(...args: TParameter): Promise<TReturn> {\n const handler = this.options.handler;\n if (!handler) {\n throw new Error(\"Cache handler is not defined.\");\n }\n\n const key = this.key(...args);\n const cached = await this.get(key);\n if (cached) {\n return cached;\n }\n\n const result = await handler(...args);\n // note: when exception occurs, don't cache the result\n\n await this.set(key, result);\n\n return result;\n }\n\n public key(...args: TParameter): string {\n return this.options.key ? this.options.key(...args) : JSON.stringify(args);\n }\n\n public async invalidate(...keys: string[]): Promise<void> {\n const keysToDelete: string[] = [];\n\n for (const key of keys) {\n if (key.endsWith(\"*\")) {\n const result = await this.provider.keys(\n this.container,\n key.slice(0, -1),\n );\n keysToDelete.push(...result);\n } else {\n keysToDelete.push(key);\n }\n }\n\n await this.provider.del(this.container, ...keysToDelete);\n }\n\n public async set(\n key: string,\n value: TReturn,\n ttl?: DurationLike,\n ): Promise<void> {\n const px = this.dateTimeProvider\n .duration(\n ttl ?? this.options.ttl ?? [this.env.CACHE_DEFAULT_TTL, \"seconds\"],\n )\n .as(\"milliseconds\");\n\n await this.provider.set(\n this.container,\n key,\n this.serialize(value),\n px > 0 ? px : undefined,\n );\n }\n\n public async get(key: string): Promise<TReturn | undefined> {\n if (\n !this.alepha.isStarted() ||\n this.options.disabled ||\n !this.env.CACHE_ENABLED\n ) {\n return undefined;\n }\n\n const data = await this.provider.get(this.container, key);\n if (data) {\n return await this.deserialize<TReturn>(data);\n }\n\n return undefined;\n }\n\n protected serialize<TReturn>(value: TReturn): Uint8Array {\n if (value instanceof Uint8Array) {\n return new Uint8Array([this.codes.BINARY, ...value]); // TODO: check if copy is ok?\n }\n\n if (typeof value === \"string\") {\n return new Uint8Array([this.codes.STRING, ...this.encoder.encode(value)]);\n }\n\n return new Uint8Array([\n this.codes.JSON,\n ...this.encoder.encode(JSON.stringify(value)),\n ]);\n }\n\n protected async deserialize<TReturn>(\n uint8Array: Uint8Array,\n ): Promise<TReturn> {\n const type = uint8Array[0];\n const payload = uint8Array.slice(1);\n\n if (type === this.codes.BINARY) {\n return payload as TReturn;\n }\n if (type === this.codes.JSON) {\n return JSON.parse(this.decoder.decode(payload)) as TReturn;\n }\n if (type === this.codes.STRING) {\n return this.decoder.decode(payload) as TReturn;\n }\n\n throw new CacheError(`Unknown serialization type: ${type}`);\n }\n\n protected $provider(): CacheProvider {\n if (!this.options.provider) {\n return this.alepha.inject(CacheProvider);\n }\n\n if (this.options.provider === \"memory\") {\n return this.alepha.inject(MemoryCacheProvider);\n }\n\n return this.alepha.inject(this.options.provider);\n }\n}\n\nexport interface CachePrimitiveFn<\n TReturn = any,\n TParameter extends any[] = any[],\n> extends CachePrimitive<TReturn, TParameter> {\n /**\n * Run the cache primitive with the provided arguments.\n */\n (...args: TParameter): Promise<TReturn>;\n}\n\n$cache[KIND] = CachePrimitive;\n","import { $module } from \"alepha\";\nimport { $cache } from \"./primitives/$cache.ts\";\nimport { CacheProvider } from \"./providers/CacheProvider.ts\";\nimport { MemoryCacheProvider } from \"./providers/MemoryCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\nexport * from \"./primitives/$cache.ts\";\nexport * from \"./providers/CacheProvider.ts\";\nexport * from \"./providers/MemoryCacheProvider.ts\";\n\n// ---------------------------------------------------------------------------------------------------------------------\n\n/**\n * Provides high-performance caching capabilities for Alepha applications with configurable TTL and multiple storage backends.\n *\n * The cache module enables declarative caching through the `$cache` primitive, allowing you to cache method results,\n * API responses, or computed values with automatic invalidation and type safety. It supports both in-memory and\n * persistent storage backends for different performance and durability requirements.\n *\n * @see {@link $cache}\n * @see {@link CacheProvider}\n * @module alepha.cache\n */\nexport const AlephaCache = $module({\n name: \"alepha.cache\",\n primitives: [$cache],\n services: [CacheProvider, MemoryCacheProvider],\n register: (alepha) =>\n alepha.with({\n optional: true,\n provide: CacheProvider,\n use: MemoryCacheProvider,\n }),\n});\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ import { FileSystemProvider } from "alepha/file";
4
4
  import * as alepha_command0 from "alepha/command";
5
5
  import { CliProvider, CommandPrimitive, EnvUtils, RunnerMethod } from "alepha/command";
6
6
  import * as alepha_logger5 from "alepha/logger";
7
+ import * as typebox0 from "typebox";
7
8
  import { DatabaseProvider } from "alepha/orm";
8
9
 
9
10
  //#region ../../src/cli/apps/AlephaCli.d.ts
@@ -25,6 +26,33 @@ declare class AlephaPackageBuilderCli {
25
26
  }
26
27
  declare function analyzeModules(srcDir: string, packageName: string): Promise<Module[]>;
27
28
  //#endregion
29
+ //#region ../../src/cli/atoms/changelogOptions.d.ts
30
+ /**
31
+ * Default scopes to ignore in changelog generation.
32
+ * Commits with these scopes won't appear in release notes.
33
+ */
34
+ declare const DEFAULT_IGNORE: string[];
35
+ /**
36
+ * Changelog configuration atom.
37
+ *
38
+ * Configure in `alepha.config.ts`:
39
+ * ```ts
40
+ * import { changelogOptions } from "alepha/cli";
41
+ *
42
+ * alepha.set(changelogOptions, {
43
+ * ignore: ["project", "release", "chore", "docs"],
44
+ * });
45
+ * ```
46
+ */
47
+ declare const changelogOptions: alepha0.Atom<alepha0.TObject<{
48
+ /**
49
+ * Scopes to ignore (e.g., "project", "release", "chore").
50
+ * Commits like `feat(chore): ...` will be excluded from changelog.
51
+ */
52
+ ignore: alepha0.TOptional<alepha0.TArray<alepha0.TString>>;
53
+ }>, "alepha.changelog">;
54
+ type ChangelogOptions = Static<typeof changelogOptions.schema>;
55
+ //#endregion
28
56
  //#region ../../src/cli/services/AlephaCliUtils.d.ts
29
57
  /**
30
58
  * Utility service for common project operations used by CLI commands.
@@ -235,41 +263,19 @@ interface DependencyModes {
235
263
  expo?: boolean;
236
264
  }
237
265
  //#endregion
238
- //#region ../../src/cli/commands/BiomeCommands.d.ts
239
- declare class BiomeCommands {
266
+ //#region ../../src/cli/commands/build.d.ts
267
+ declare class BuildCommand {
240
268
  protected readonly log: alepha_logger5.Logger;
241
269
  protected readonly utils: AlephaCliUtils;
242
- readonly format: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
243
- readonly lint: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
270
+ readonly build: alepha_command0.CommandPrimitive<alepha0.TObject<{
271
+ stats: alepha0.TOptional<alepha0.TBoolean>;
272
+ vercel: alepha0.TOptional<alepha0.TBoolean>;
273
+ cloudflare: alepha0.TOptional<alepha0.TBoolean>;
274
+ docker: alepha0.TOptional<alepha0.TBoolean>;
275
+ sitemap: alepha0.TOptional<alepha0.TString>;
276
+ }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
244
277
  }
245
278
  //#endregion
246
- //#region ../../src/cli/atoms/changelogOptions.d.ts
247
- /**
248
- * Default scopes to ignore in changelog generation.
249
- * Commits with these scopes won't appear in release notes.
250
- */
251
- declare const DEFAULT_IGNORE: string[];
252
- /**
253
- * Changelog configuration atom.
254
- *
255
- * Configure in `alepha.config.ts`:
256
- * ```ts
257
- * import { changelogOptions } from "alepha/cli";
258
- *
259
- * alepha.set(changelogOptions, {
260
- * ignore: ["project", "release", "chore", "docs"],
261
- * });
262
- * ```
263
- */
264
- declare const changelogOptions: alepha0.Atom<alepha0.TObject<{
265
- /**
266
- * Scopes to ignore (e.g., "project", "release", "chore").
267
- * Commits like `feat(chore): ...` will be excluded from changelog.
268
- */
269
- ignore: alepha0.TOptional<alepha0.TArray<alepha0.TString>>;
270
- }>, "alepha.changelog">;
271
- type ChangelogOptions = Static<typeof changelogOptions.schema>;
272
- //#endregion
273
279
  //#region ../../src/cli/services/GitMessageParser.d.ts
274
280
  /**
275
281
  * Service for parsing git commit messages into structured format.
@@ -301,7 +307,7 @@ declare class GitMessageParser {
301
307
  parseCommit(line: string, config: ChangelogOptions): Commit | null;
302
308
  }
303
309
  //#endregion
304
- //#region ../../src/cli/commands/ChangelogCommands.d.ts
310
+ //#region ../../src/cli/commands/changelog.d.ts
305
311
  /**
306
312
  * Git provider for executing git commands.
307
313
  * Can be substituted in tests with a mock implementation.
@@ -319,7 +325,6 @@ interface Commit {
319
325
  interface ChangelogEntry {
320
326
  features: Commit[];
321
327
  fixes: Commit[];
322
- breaking: Commit[];
323
328
  }
324
329
  /**
325
330
  * Changelog command for generating release notes from git commits.
@@ -330,7 +335,7 @@ interface ChangelogEntry {
330
335
  * - `alepha changelog --from=1.0.0 --to=1.1.0` - Show changes between two refs
331
336
  * - `alepha changelog | tee -a CHANGELOG.md` - Append to file
332
337
  */
333
- declare class ChangelogCommands {
338
+ declare class ChangelogCommand {
334
339
  protected readonly log: alepha_logger5.Logger;
335
340
  protected readonly git: GitProvider;
336
341
  protected readonly parser: GitMessageParser;
@@ -340,6 +345,7 @@ declare class ChangelogCommands {
340
345
  /**
341
346
  * Format a single commit line.
342
347
  * Example: `- **cli**: add new command (\`abc1234\`)`
348
+ * Breaking changes are flagged: `- **cli**: add new command [BREAKING] (\`abc1234\`)`
343
349
  */
344
350
  protected formatCommit(commit: Commit): string;
345
351
  /**
@@ -374,143 +380,60 @@ declare class ChangelogCommands {
374
380
  }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
375
381
  }
376
382
  //#endregion
377
- //#region ../../src/cli/commands/CoreCommands.d.ts
378
- declare class CoreCommands {
379
- protected readonly log: alepha_logger5.Logger;
380
- protected readonly cli: CliProvider;
381
- protected readonly utils: AlephaCliUtils;
382
- /**
383
- * Called when no command is provided
384
- */
385
- readonly root: alepha_command0.CommandPrimitive<alepha0.TObject<{
386
- version: alepha0.TOptional<alepha0.TBoolean>;
387
- }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
383
+ //#region ../../src/cli/commands/clean.d.ts
384
+ declare class CleanCommand {
388
385
  /**
389
386
  * Clean the project, removing the "dist" directory
390
387
  */
391
- readonly clean: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
392
- /**
393
- * Ensure the project has the necessary Alepha configuration files.
394
- * Add the correct dependencies to package.json and install them.
395
- */
396
- readonly init: alepha_command0.CommandPrimitive<alepha0.TObject<{
397
- yarn: alepha0.TOptional<alepha0.TBoolean>;
398
- pnpm: alepha0.TOptional<alepha0.TBoolean>;
399
- npm: alepha0.TOptional<alepha0.TBoolean>;
400
- bun: alepha0.TOptional<alepha0.TBoolean>;
401
- react: alepha0.TOptional<alepha0.TBoolean>;
402
- ui: alepha0.TOptional<alepha0.TBoolean>;
403
- test: alepha0.TOptional<alepha0.TBoolean>;
404
- }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
388
+ readonly clean: alepha_command0.CommandPrimitive<typebox0.TObject<typebox0.TProperties>, typebox0.TSchema, typebox0.TObject<typebox0.TProperties>>;
405
389
  }
406
390
  //#endregion
407
- //#region ../../src/cli/commands/DeployCommands.d.ts
408
- declare class DeployCommands {
391
+ //#region ../../src/cli/commands/db.d.ts
392
+ declare class DbCommand {
409
393
  protected readonly log: alepha_logger5.Logger;
410
394
  protected readonly utils: AlephaCliUtils;
411
- /**
412
- * Deploy the project to a hosting platform (e.g., Vercel, Cloudflare, Surge)
413
- *
414
- * Deploy command can be overridden by creating a alepha.config.ts in the project root:
415
- *
416
- * ```ts
417
- * import { defineConfig } from "alepha/cli";
418
- *
419
- * export default defineConfig({
420
- * commands: {
421
- * deploy: {
422
- * handler: async ({ root, mode, flags }) => {
423
- * // Custom deployment logic here
424
- * },
425
- * },
426
- * },
427
- * });
428
- * ```
429
- */
430
- readonly deploy: alepha_command0.CommandPrimitive<alepha0.TObject<{
431
- build: alepha0.TBoolean;
432
- migrate: alepha0.TBoolean;
433
- }>, alepha0.TSchema, alepha0.TObject<{
434
- VERCEL_TOKEN: alepha0.TOptional<alepha0.TString>;
435
- VERCEL_ORG_ID: alepha0.TOptional<alepha0.TString>;
436
- VERCEL_PROJECT_ID: alepha0.TOptional<alepha0.TString>;
437
- CLOUDFLARE_API_TOKEN: alepha0.TOptional<alepha0.TString>;
438
- CLOUDFLARE_ACCOUNT_ID: alepha0.TOptional<alepha0.TString>;
439
- }>>;
440
- }
441
- //#endregion
442
- //#region ../../src/cli/commands/DrizzleCommands.d.ts
443
- declare class DrizzleCommands {
444
- log: alepha_logger5.Logger;
445
- utils: AlephaCliUtils;
446
395
  /**
447
396
  * Check if database migrations are up to date.
448
397
  */
449
- check: alepha_command0.CommandPrimitive<alepha0.TObject<{
398
+ protected readonly check: alepha_command0.CommandPrimitive<alepha0.TObject<{
450
399
  provider: alepha0.TOptional<alepha0.TString>;
451
400
  mode: alepha0.TOptional<alepha0.TString>;
452
401
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
453
402
  /**
454
403
  * Generate database migration files
455
- *
456
- * - Loads the Alepha instance from the specified entry file.
457
- * - Retrieves all repository primitives to gather database models.
458
- * - Creates temporary entity definitions based on the current database schema.
459
- * - Writes these definitions to a temporary schema file. (node_modules/.db/entities.ts)
460
- * - Invokes Drizzle Kit's CLI to generate migration files based on the current schema.
461
404
  */
462
- generate: alepha_command0.CommandPrimitive<alepha0.TObject<{
405
+ protected readonly generate: alepha_command0.CommandPrimitive<alepha0.TObject<{
463
406
  provider: alepha0.TOptional<alepha0.TString>;
464
407
  mode: alepha0.TOptional<alepha0.TString>;
465
408
  custom: alepha0.TOptional<alepha0.TString>;
466
409
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
467
410
  /**
468
411
  * Push database schema changes directly to the database
469
- *
470
- * - Loads the Alepha instance from the specified entry file.
471
- * - Retrieves all repository primitives to gather database models.
472
- * - Creates temporary entity definitions and Drizzle config.
473
- * - Invokes Drizzle Kit's push command to apply schema changes directly.
474
412
  */
475
- push: alepha_command0.CommandPrimitive<alepha0.TObject<{
413
+ protected readonly push: alepha_command0.CommandPrimitive<alepha0.TObject<{
476
414
  provider: alepha0.TOptional<alepha0.TString>;
477
415
  mode: alepha0.TOptional<alepha0.TString>;
478
416
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
479
417
  /**
480
418
  * Apply pending database migrations
481
- *
482
- * - Loads the Alepha instance from the specified entry file.
483
- * - Retrieves all repository primitives to gather database models.
484
- * - Creates temporary entity definitions and Drizzle config.
485
- * - Invokes Drizzle Kit's migrate command to apply pending migrations.
486
419
  */
487
- migrate: alepha_command0.CommandPrimitive<alepha0.TObject<{
420
+ protected readonly migrate: alepha_command0.CommandPrimitive<alepha0.TObject<{
488
421
  provider: alepha0.TOptional<alepha0.TString>;
489
422
  mode: alepha0.TOptional<alepha0.TString>;
490
423
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
491
424
  /**
492
425
  * Launch Drizzle Studio database browser
493
- *
494
- * - Loads the Alepha instance from the specified entry file.
495
- * - Retrieves all repository primitives to gather database models.
496
- * - Creates temporary entity definitions and Drizzle config.
497
- * - Invokes Drizzle Kit's studio command to launch the web-based database browser.
498
426
  */
499
- studio: alepha_command0.CommandPrimitive<alepha0.TObject<{
427
+ protected readonly studio: alepha_command0.CommandPrimitive<alepha0.TObject<{
500
428
  provider: alepha0.TOptional<alepha0.TString>;
501
429
  mode: alepha0.TOptional<alepha0.TString>;
502
430
  }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
503
431
  /**
504
432
  * Parent command for database operations.
505
433
  */
506
- db: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
434
+ readonly db: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
507
435
  /**
508
436
  * Run a drizzle-kit command for all database providers in an Alepha instance.
509
- *
510
- * Iterates through all repository providers, prepares Drizzle config for each,
511
- * and executes the specified drizzle-kit command.
512
- *
513
- * @param options - Configuration including command to run, flags, and logging
514
437
  */
515
438
  runDrizzleKitCommand(options: {
516
439
  root: string;
@@ -523,12 +446,6 @@ declare class DrizzleCommands {
523
446
  }): Promise<void>;
524
447
  /**
525
448
  * Prepare Drizzle configuration files for a database provider.
526
- *
527
- * Creates temporary entities.js and drizzle.config.js files needed
528
- * for Drizzle Kit commands to run properly.
529
- *
530
- * @param options - Configuration options including kit, provider info, and paths
531
- * @returns Path to the generated drizzle.config.js file
532
449
  */
533
450
  prepareDrizzleConfig(options: {
534
451
  kit: any;
@@ -541,39 +458,45 @@ declare class DrizzleCommands {
541
458
  }): Promise<string>;
542
459
  }
543
460
  //#endregion
544
- //#region ../../src/cli/commands/VerifyCommands.d.ts
545
- declare class VerifyCommands {
461
+ //#region ../../src/cli/commands/deploy.d.ts
462
+ declare class DeployCommand {
463
+ protected readonly log: alepha_logger5.Logger;
546
464
  protected readonly utils: AlephaCliUtils;
547
465
  /**
548
- * Run a series of verification commands to ensure code quality and correctness.
466
+ * Deploy the project to a hosting platform (e.g., Vercel, Cloudflare, Surge)
549
467
  *
550
- * This command runs the following checks in order:
551
- * - Clean the project
552
- * - Format the code
553
- * - Lint the code
554
- * - Run tests (if Vitest is a dev dependency)
555
- * - Check database migrations (if a migrations directory exists)
556
- * - Type check the code
557
- * - Build the project
558
- * - Clean the project again
559
- */
560
- readonly verify: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
561
- /**
562
- * Run TypeScript type checking across the codebase with no emit.
468
+ * Deploy command can be overridden by creating a alepha.config.ts in the project root:
469
+ *
470
+ * ```ts
471
+ * import { defineConfig } from "alepha/cli";
472
+ *
473
+ * export default defineConfig({
474
+ * commands: {
475
+ * deploy: {
476
+ * handler: async ({ root, mode, flags }) => {
477
+ * // Custom deployment logic here
478
+ * },
479
+ * },
480
+ * },
481
+ * });
482
+ * ```
563
483
  */
564
- readonly typecheck: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
484
+ readonly deploy: alepha_command0.CommandPrimitive<alepha0.TObject<{
485
+ build: alepha0.TBoolean;
486
+ migrate: alepha0.TBoolean;
487
+ }>, alepha0.TSchema, alepha0.TObject<{
488
+ VERCEL_TOKEN: alepha0.TOptional<alepha0.TString>;
489
+ VERCEL_ORG_ID: alepha0.TOptional<alepha0.TString>;
490
+ VERCEL_PROJECT_ID: alepha0.TOptional<alepha0.TString>;
491
+ CLOUDFLARE_API_TOKEN: alepha0.TOptional<alepha0.TString>;
492
+ CLOUDFLARE_ACCOUNT_ID: alepha0.TOptional<alepha0.TString>;
493
+ }>>;
565
494
  }
566
495
  //#endregion
567
- //#region ../../src/cli/commands/ViteCommands.d.ts
568
- declare class ViteCommands {
496
+ //#region ../../src/cli/commands/dev.d.ts
497
+ declare class DevCommand {
569
498
  protected readonly log: alepha_logger5.Logger;
570
499
  protected readonly utils: AlephaCliUtils;
571
- protected readonly env: {
572
- VITEST_ARGS: string;
573
- };
574
- readonly run: alepha_command0.CommandPrimitive<alepha0.TObject<{
575
- watch: alepha0.TOptional<alepha0.TBoolean>;
576
- }>, alepha0.TString, alepha0.TObject<alepha0.TProperties>>;
577
500
  /**
578
501
  * Will run the project in watch mode.
579
502
  *
@@ -581,13 +504,61 @@ declare class ViteCommands {
581
504
  * - Otherwise, it will look for a server entry file and run it with tsx in watch mode.
582
505
  */
583
506
  readonly dev: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
584
- readonly build: alepha_command0.CommandPrimitive<alepha0.TObject<{
585
- stats: alepha0.TOptional<alepha0.TBoolean>;
586
- vercel: alepha0.TOptional<alepha0.TBoolean>;
587
- cloudflare: alepha0.TOptional<alepha0.TBoolean>;
588
- docker: alepha0.TOptional<alepha0.TBoolean>;
589
- sitemap: alepha0.TOptional<alepha0.TString>;
590
- }>, alepha0.TOptional<alepha0.TString>, alepha0.TObject<alepha0.TProperties>>;
507
+ }
508
+ //#endregion
509
+ //#region ../../src/cli/commands/format.d.ts
510
+ declare class FormatCommand {
511
+ protected readonly utils: AlephaCliUtils;
512
+ readonly format: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
513
+ }
514
+ //#endregion
515
+ //#region ../../src/cli/commands/init.d.ts
516
+ declare class InitCommand {
517
+ protected readonly utils: AlephaCliUtils;
518
+ /**
519
+ * Ensure the project has the necessary Alepha configuration files.
520
+ * Add the correct dependencies to package.json and install them.
521
+ */
522
+ readonly init: alepha_command0.CommandPrimitive<alepha0.TObject<{
523
+ yarn: alepha0.TOptional<alepha0.TBoolean>;
524
+ pnpm: alepha0.TOptional<alepha0.TBoolean>;
525
+ npm: alepha0.TOptional<alepha0.TBoolean>;
526
+ bun: alepha0.TOptional<alepha0.TBoolean>;
527
+ react: alepha0.TOptional<alepha0.TBoolean>;
528
+ ui: alepha0.TOptional<alepha0.TBoolean>;
529
+ test: alepha0.TOptional<alepha0.TBoolean>;
530
+ }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
531
+ }
532
+ //#endregion
533
+ //#region ../../src/cli/commands/lint.d.ts
534
+ declare class LintCommand {
535
+ protected readonly utils: AlephaCliUtils;
536
+ readonly lint: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
537
+ }
538
+ //#endregion
539
+ //#region ../../src/cli/commands/root.d.ts
540
+ declare class RootCommand {
541
+ protected readonly log: alepha_logger5.Logger;
542
+ protected readonly cli: CliProvider;
543
+ /**
544
+ * Called when no command is provided
545
+ */
546
+ readonly root: alepha_command0.CommandPrimitive<alepha0.TObject<{
547
+ version: alepha0.TOptional<alepha0.TBoolean>;
548
+ }>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
549
+ }
550
+ //#endregion
551
+ //#region ../../src/cli/commands/run.d.ts
552
+ declare class RunCommand {
553
+ protected readonly utils: AlephaCliUtils;
554
+ readonly run: alepha_command0.CommandPrimitive<alepha0.TObject<{
555
+ watch: alepha0.TOptional<alepha0.TBoolean>;
556
+ }>, alepha0.TString, alepha0.TObject<alepha0.TProperties>>;
557
+ }
558
+ //#endregion
559
+ //#region ../../src/cli/commands/test.d.ts
560
+ declare class TestCommand {
561
+ protected readonly utils: AlephaCliUtils;
591
562
  readonly test: alepha_command0.CommandPrimitive<alepha0.TObject<{
592
563
  config: alepha0.TOptional<alepha0.TString>;
593
564
  }>, alepha0.TSchema, alepha0.TObject<{
@@ -595,16 +566,51 @@ declare class ViteCommands {
595
566
  }>>;
596
567
  }
597
568
  //#endregion
569
+ //#region ../../src/cli/commands/typecheck.d.ts
570
+ declare class TypecheckCommand {
571
+ protected readonly utils: AlephaCliUtils;
572
+ /**
573
+ * Run TypeScript type checking across the codebase with no emit.
574
+ */
575
+ readonly typecheck: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
576
+ }
577
+ //#endregion
578
+ //#region ../../src/cli/commands/verify.d.ts
579
+ declare class VerifyCommand {
580
+ protected readonly utils: AlephaCliUtils;
581
+ /**
582
+ * Run a series of verification commands to ensure code quality and correctness.
583
+ *
584
+ * This command runs the following checks in order:
585
+ * - Clean the project
586
+ * - Format the code
587
+ * - Lint the code
588
+ * - Run tests (if Vitest is a dev dependency)
589
+ * - Check database migrations (if a migrations directory exists)
590
+ * - Type check the code
591
+ * - Build the project
592
+ * - Clean the project again
593
+ */
594
+ readonly verify: alepha_command0.CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
595
+ }
596
+ //#endregion
598
597
  //#region ../../src/cli/defineConfig.d.ts
599
598
  type AlephaCliConfig = (alepha: Alepha) => {
600
599
  commands?: Record<string, CommandPrimitive>;
600
+ services?: Array<any>;
601
601
  };
602
602
  declare const defineConfig: (config: AlephaCliConfig) => (alepha: Alepha) => {
603
603
  [x: string]: CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
604
604
  };
605
+ /**
606
+ * @alias defineConfig
607
+ */
608
+ declare const defineAlephaConfig: (config: AlephaCliConfig) => (alepha: Alepha) => {
609
+ [x: string]: CommandPrimitive<alepha0.TObject<alepha0.TProperties>, alepha0.TSchema, alepha0.TObject<alepha0.TProperties>>;
610
+ };
605
611
  //#endregion
606
612
  //#region ../../src/cli/version.d.ts
607
613
  declare const version: any;
608
614
  //#endregion
609
- export { AlephaCli, AlephaCliConfig, AlephaCliUtils, AlephaPackageBuilderCli, BiomeCommands, ChangelogCommands, type ChangelogOptions, Commit, CoreCommands, DEFAULT_IGNORE, DependencyModes, DeployCommands, DrizzleCommands, GitMessageParser, GitProvider, VerifyCommands, ViteCommands, analyzeModules, changelogOptions, defineConfig, version };
615
+ export { AlephaCli, AlephaCliConfig, AlephaCliUtils, AlephaPackageBuilderCli, BuildCommand, ChangelogCommand, type ChangelogOptions, CleanCommand, Commit, DEFAULT_IGNORE, DbCommand, DependencyModes, DeployCommand, DevCommand, FormatCommand, GitMessageParser, GitProvider, InitCommand, LintCommand, RootCommand, RunCommand, TestCommand, TypecheckCommand, VerifyCommand, analyzeModules, changelogOptions, defineAlephaConfig, defineConfig, version };
610
616
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/cli/apps/AlephaCli.ts","../../src/cli/apps/AlephaPackageBuilderCli.ts","../../src/cli/services/AlephaCliUtils.ts","../../src/cli/commands/BiomeCommands.ts","../../src/cli/atoms/changelogOptions.ts","../../src/cli/services/GitMessageParser.ts","../../src/cli/commands/ChangelogCommands.ts","../../src/cli/commands/CoreCommands.ts","../../src/cli/commands/DeployCommands.ts","../../src/cli/commands/DrizzleCommands.ts","../../src/cli/commands/VerifyCommands.ts","../../src/cli/commands/ViteCommands.ts","../../src/cli/defineConfig.ts","../../src/cli/version.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/cli/apps/AlephaCli.ts","../../src/cli/apps/AlephaPackageBuilderCli.ts","../../src/cli/atoms/changelogOptions.ts","../../src/cli/services/AlephaCliUtils.ts","../../src/cli/commands/build.ts","../../src/cli/services/GitMessageParser.ts","../../src/cli/commands/changelog.ts","../../src/cli/commands/clean.ts","../../src/cli/commands/db.ts","../../src/cli/commands/deploy.ts","../../src/cli/commands/dev.ts","../../src/cli/commands/format.ts","../../src/cli/commands/init.ts","../../src/cli/commands/lint.ts","../../src/cli/commands/root.ts","../../src/cli/commands/run.ts","../../src/cli/commands/test.ts","../../src/cli/commands/typecheck.ts","../../src/cli/commands/verify.ts","../../src/cli/defineConfig.ts","../../src/cli/version.ts"],"sourcesContent":[],"mappings":"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"}