alepha 0.13.0 → 0.13.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.
- package/README.md +1 -1
- package/dist/api-files/index.d.ts +28 -91
- package/dist/api-files/index.js +10 -755
- package/dist/api-files/index.js.map +1 -1
- package/dist/api-jobs/index.d.ts +67 -67
- package/dist/api-jobs/index.js +13 -13
- package/dist/api-jobs/index.js.map +1 -1
- package/dist/api-notifications/index.d.ts +129 -146
- package/dist/api-notifications/index.js +17 -39
- package/dist/api-notifications/index.js.map +1 -1
- package/dist/api-parameters/index.d.ts +21 -22
- package/dist/api-parameters/index.js +22 -22
- package/dist/api-parameters/index.js.map +1 -1
- package/dist/api-users/index.d.ts +224 -2001
- package/dist/api-users/index.js +914 -4787
- package/dist/api-users/index.js.map +1 -1
- package/dist/api-verifications/index.d.ts +96 -96
- package/dist/batch/index.d.ts +13 -13
- package/dist/batch/index.js +8 -8
- package/dist/batch/index.js.map +1 -1
- package/dist/bucket/index.d.ts +14 -14
- package/dist/bucket/index.js +12 -12
- package/dist/bucket/index.js.map +1 -1
- package/dist/cache/index.d.ts +11 -11
- package/dist/cache/index.js +9 -9
- package/dist/cache/index.js.map +1 -1
- package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
- package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
- package/dist/cli/index.d.ts +31 -37
- package/dist/cli/index.js +152 -83
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +19 -19
- package/dist/command/index.js +25 -25
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +218 -218
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +232 -232
- package/dist/core/index.js +218 -218
- package/dist/core/index.js.map +1 -1
- package/dist/core/{index.cjs → index.native.js} +304 -455
- package/dist/core/index.native.js.map +1 -0
- package/dist/datetime/index.d.ts +9 -9
- package/dist/datetime/index.js +7 -7
- package/dist/datetime/index.js.map +1 -1
- package/dist/email/index.d.ts +16 -16
- package/dist/email/index.js +80 -82
- package/dist/email/index.js.map +1 -1
- package/dist/file/index.js +1 -1
- package/dist/file/index.js.map +1 -1
- package/dist/lock/index.d.ts +9 -9
- package/dist/lock/index.js +8 -8
- package/dist/lock/index.js.map +1 -1
- package/dist/lock-redis/index.js +3 -66
- package/dist/lock-redis/index.js.map +1 -1
- package/dist/logger/index.d.ts +5 -5
- package/dist/logger/index.js +8 -8
- package/dist/logger/index.js.map +1 -1
- package/dist/orm/index.browser.js +114 -114
- package/dist/orm/index.browser.js.map +1 -1
- package/dist/orm/index.d.ts +219 -219
- package/dist/orm/index.js +46 -46
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/index.d.ts +25 -25
- package/dist/queue/index.js +20 -20
- package/dist/queue/index.js.map +1 -1
- package/dist/queue-redis/index.d.ts +2 -2
- package/dist/redis/index.d.ts +10 -10
- package/dist/retry/index.d.ts +20 -20
- package/dist/retry/index.js +9 -9
- package/dist/retry/index.js.map +1 -1
- package/dist/scheduler/index.d.ts +12 -12
- package/dist/scheduler/index.js +9 -9
- package/dist/scheduler/index.js.map +1 -1
- package/dist/security/index.d.ts +53 -53
- package/dist/security/index.js +32 -32
- package/dist/security/index.js.map +1 -1
- package/dist/server/index.browser.js +1 -1
- package/dist/server/index.browser.js.map +1 -1
- package/dist/server/index.d.ts +101 -101
- package/dist/server/index.js +17 -17
- package/dist/server/index.js.map +1 -1
- package/dist/server-auth/index.browser.js +4 -982
- package/dist/server-auth/index.browser.js.map +1 -1
- package/dist/server-auth/index.d.ts +204 -785
- package/dist/server-auth/index.js +47 -1239
- package/dist/server-auth/index.js.map +1 -1
- package/dist/server-cache/index.d.ts +10 -10
- package/dist/server-cache/index.js +2 -2
- package/dist/server-cache/index.js.map +1 -1
- package/dist/server-compress/index.d.ts +4 -4
- package/dist/server-compress/index.js +1 -1
- package/dist/server-compress/index.js.map +1 -1
- package/dist/server-cookies/index.browser.js +8 -8
- package/dist/server-cookies/index.browser.js.map +1 -1
- package/dist/server-cookies/index.d.ts +17 -17
- package/dist/server-cookies/index.js +10 -10
- package/dist/server-cookies/index.js.map +1 -1
- package/dist/server-cors/index.d.ts +17 -17
- package/dist/server-cors/index.js +9 -9
- package/dist/server-cors/index.js.map +1 -1
- package/dist/server-health/index.d.ts +2 -2
- package/dist/server-helmet/index.d.ts +1 -1
- package/dist/server-links/index.browser.js +12 -12
- package/dist/server-links/index.browser.js.map +1 -1
- package/dist/server-links/index.d.ts +59 -251
- package/dist/server-links/index.js +23 -502
- package/dist/server-links/index.js.map +1 -1
- package/dist/server-metrics/index.d.ts +4 -4
- package/dist/server-metrics/index.js +170 -174
- package/dist/server-metrics/index.js.map +1 -1
- package/dist/server-multipart/index.d.ts +2 -2
- package/dist/server-proxy/index.d.ts +12 -12
- package/dist/server-proxy/index.js +10 -10
- package/dist/server-proxy/index.js.map +1 -1
- package/dist/server-rate-limit/index.d.ts +22 -22
- package/dist/server-rate-limit/index.js +12 -12
- package/dist/server-rate-limit/index.js.map +1 -1
- package/dist/server-security/index.d.ts +24 -24
- package/dist/server-security/index.js +15 -15
- package/dist/server-security/index.js.map +1 -1
- package/dist/server-static/index.d.ts +14 -14
- package/dist/server-static/index.js +8 -8
- package/dist/server-static/index.js.map +1 -1
- package/dist/server-swagger/index.d.ts +25 -184
- package/dist/server-swagger/index.js +21 -724
- package/dist/server-swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +14 -14
- package/dist/sms/index.js +9 -9
- package/dist/sms/index.js.map +1 -1
- package/dist/thread/index.d.ts +11 -11
- package/dist/thread/index.js +17 -17
- package/dist/thread/index.js.map +1 -1
- package/dist/topic/index.d.ts +26 -26
- package/dist/topic/index.js +16 -16
- package/dist/topic/index.js.map +1 -1
- package/dist/topic-redis/index.d.ts +1 -1
- package/dist/vite/index.d.ts +3 -3
- package/dist/vite/index.js +12 -13
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.browser.js +11 -11
- package/dist/websocket/index.browser.js.map +1 -1
- package/dist/websocket/index.d.ts +51 -51
- package/dist/websocket/index.js +13 -13
- package/dist/websocket/index.js.map +1 -1
- package/package.json +62 -52
- package/src/api-files/services/FileService.ts +5 -7
- package/src/api-jobs/index.ts +1 -1
- package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
- package/src/api-jobs/providers/JobProvider.ts +9 -9
- package/src/api-jobs/services/JobService.ts +5 -5
- package/src/api-notifications/index.ts +5 -15
- package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
- package/src/api-notifications/services/NotificationSenderService.ts +3 -3
- package/src/api-parameters/index.ts +1 -1
- package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
- package/src/api-users/index.ts +1 -1
- package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
- package/src/api-users/providers/UserRealmProvider.ts +1 -1
- package/src/batch/index.ts +3 -3
- package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
- package/src/bucket/index.ts +8 -8
- package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
- package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
- package/src/cache/index.ts +4 -4
- package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
- package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
- package/src/cli/assets/appRouterTs.ts +9 -0
- package/src/cli/assets/indexHtml.ts +2 -1
- package/src/cli/assets/mainBrowserTs.ts +10 -0
- package/src/cli/commands/CoreCommands.ts +6 -5
- package/src/cli/commands/DrizzleCommands.ts +69 -61
- package/src/cli/commands/VerifyCommands.ts +2 -2
- package/src/cli/commands/ViteCommands.ts +6 -1
- package/src/cli/services/ProjectUtils.ts +78 -41
- package/src/command/index.ts +5 -5
- package/src/command/{descriptors → primitives}/$command.ts +9 -12
- package/src/command/providers/CliProvider.ts +10 -10
- package/src/core/Alepha.ts +30 -33
- package/src/core/constants/KIND.ts +1 -1
- package/src/core/constants/OPTIONS.ts +1 -1
- package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
- package/src/core/helpers/ref.ts +1 -1
- package/src/core/index.shared.ts +8 -8
- package/src/core/{descriptors → primitives}/$context.ts +5 -5
- package/src/core/{descriptors → primitives}/$hook.ts +4 -4
- package/src/core/{descriptors → primitives}/$inject.ts +2 -2
- package/src/core/{descriptors → primitives}/$module.ts +9 -9
- package/src/core/{descriptors → primitives}/$use.ts +2 -2
- package/src/core/providers/CodecManager.ts +1 -1
- package/src/core/providers/JsonSchemaCodec.ts +1 -1
- package/src/core/providers/StateManager.ts +2 -2
- package/src/datetime/index.ts +3 -3
- package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
- package/src/email/index.ts +4 -4
- package/src/email/{descriptors → primitives}/$email.ts +8 -8
- package/src/file/index.ts +1 -1
- package/src/lock/index.ts +3 -3
- package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
- package/src/logger/index.ts +8 -8
- package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
- package/src/logger/services/Logger.ts +1 -1
- package/src/orm/constants/PG_SYMBOLS.ts +2 -2
- package/src/orm/index.browser.ts +2 -2
- package/src/orm/index.ts +8 -8
- package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
- package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
- package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
- package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
- package/src/orm/providers/DrizzleKitProvider.ts +1 -1
- package/src/orm/providers/PostgresTypeProvider.ts +3 -3
- package/src/orm/providers/RepositoryProvider.ts +4 -4
- package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
- package/src/orm/services/ModelBuilder.ts +9 -9
- package/src/orm/services/PgRelationManager.ts +2 -2
- package/src/orm/services/PostgresModelBuilder.ts +5 -5
- package/src/orm/services/Repository.ts +7 -7
- package/src/orm/services/SqliteModelBuilder.ts +5 -5
- package/src/queue/index.ts +7 -7
- package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
- package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
- package/src/queue/providers/WorkerProvider.ts +7 -7
- package/src/retry/index.ts +3 -3
- package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
- package/src/scheduler/index.ts +3 -3
- package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
- package/src/scheduler/providers/CronProvider.ts +1 -1
- package/src/security/index.ts +9 -9
- package/src/security/{descriptors → primitives}/$permission.ts +7 -7
- package/src/security/{descriptors → primitives}/$realm.ts +6 -12
- package/src/security/{descriptors → primitives}/$role.ts +12 -12
- package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
- package/src/server/index.browser.ts +1 -1
- package/src/server/index.ts +14 -14
- package/src/server/{descriptors → primitives}/$action.ts +13 -13
- package/src/server/{descriptors → primitives}/$route.ts +9 -9
- package/src/server/providers/NodeHttpServerProvider.ts +2 -2
- package/src/server/services/HttpClient.ts +1 -1
- package/src/server-auth/index.browser.ts +1 -1
- package/src/server-auth/index.ts +6 -6
- package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
- package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
- package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
- package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
- package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
- package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
- package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
- package/src/server-cookies/index.browser.ts +2 -2
- package/src/server-cookies/index.ts +5 -5
- package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
- package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
- package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
- package/src/server-cookies/services/CookieParser.ts +1 -1
- package/src/server-cors/index.ts +3 -3
- package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
- package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
- package/src/server-links/index.browser.ts +5 -5
- package/src/server-links/index.ts +9 -9
- package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
- package/src/server-links/providers/LinkProvider.ts +7 -7
- package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
- package/src/server-links/providers/ServerLinksProvider.ts +3 -3
- package/src/server-proxy/index.ts +3 -3
- package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
- package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
- package/src/server-rate-limit/index.ts +6 -6
- package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
- package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
- package/src/server-security/index.ts +3 -3
- package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
- package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
- package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
- package/src/server-static/index.ts +3 -3
- package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
- package/src/server-static/providers/ServerStaticProvider.ts +6 -6
- package/src/server-swagger/index.ts +5 -5
- package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
- package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
- package/src/sms/index.ts +4 -4
- package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
- package/src/thread/index.ts +3 -3
- package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
- package/src/thread/providers/ThreadProvider.ts +7 -9
- package/src/topic/index.ts +5 -5
- package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
- package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
- package/src/topic/providers/TopicProvider.ts +4 -4
- package/src/vite/helpers/boot.ts +3 -3
- package/src/vite/tasks/copyAssets.ts +1 -1
- package/src/vite/tasks/generateSitemap.ts +3 -3
- package/src/vite/tasks/prerenderPages.ts +2 -2
- package/src/vite/tasks/runAlepha.ts +2 -2
- package/src/websocket/index.browser.ts +3 -3
- package/src/websocket/index.shared.ts +2 -2
- package/src/websocket/index.ts +4 -4
- package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
- package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
- package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
- package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
- package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
- package/src/websocket/services/WebSocketClient.ts +5 -5
- package/dist/api-files/index.cjs +0 -1293
- package/dist/api-files/index.cjs.map +0 -1
- package/dist/api-files/index.d.cts +0 -829
- package/dist/api-jobs/index.cjs +0 -274
- package/dist/api-jobs/index.cjs.map +0 -1
- package/dist/api-jobs/index.d.cts +0 -654
- package/dist/api-notifications/index.cjs +0 -380
- package/dist/api-notifications/index.cjs.map +0 -1
- package/dist/api-notifications/index.d.cts +0 -289
- package/dist/api-parameters/index.cjs +0 -66
- package/dist/api-parameters/index.cjs.map +0 -1
- package/dist/api-parameters/index.d.cts +0 -84
- package/dist/api-users/index.cjs +0 -6009
- package/dist/api-users/index.cjs.map +0 -1
- package/dist/api-users/index.d.cts +0 -4740
- package/dist/api-verifications/index.cjs +0 -407
- package/dist/api-verifications/index.cjs.map +0 -1
- package/dist/api-verifications/index.d.cts +0 -207
- package/dist/batch/index.cjs +0 -408
- package/dist/batch/index.cjs.map +0 -1
- package/dist/batch/index.d.cts +0 -330
- package/dist/bin/index.cjs +0 -17
- package/dist/bin/index.cjs.map +0 -1
- package/dist/bin/index.d.cts +0 -1
- package/dist/bucket/index.cjs +0 -303
- package/dist/bucket/index.cjs.map +0 -1
- package/dist/bucket/index.d.cts +0 -355
- package/dist/cache/index.cjs +0 -241
- package/dist/cache/index.cjs.map +0 -1
- package/dist/cache/index.d.cts +0 -202
- package/dist/cache-redis/index.cjs +0 -84
- package/dist/cache-redis/index.cjs.map +0 -1
- package/dist/cache-redis/index.d.cts +0 -40
- package/dist/cli/chunk-DSlc6foC.cjs +0 -43
- package/dist/cli/dist-BBPjuQ56.js +0 -2778
- package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
- package/dist/cli/index.cjs +0 -1241
- package/dist/cli/index.cjs.map +0 -1
- package/dist/cli/index.d.cts +0 -422
- package/dist/command/index.cjs +0 -693
- package/dist/command/index.cjs.map +0 -1
- package/dist/command/index.d.cts +0 -340
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -1927
- package/dist/datetime/index.cjs +0 -318
- package/dist/datetime/index.cjs.map +0 -1
- package/dist/datetime/index.d.cts +0 -145
- package/dist/email/index.cjs +0 -10874
- package/dist/email/index.cjs.map +0 -1
- package/dist/email/index.d.cts +0 -186
- package/dist/fake/index.cjs +0 -34641
- package/dist/fake/index.cjs.map +0 -1
- package/dist/fake/index.d.cts +0 -74
- package/dist/file/index.cjs +0 -1212
- package/dist/file/index.cjs.map +0 -1
- package/dist/file/index.d.cts +0 -698
- package/dist/lock/index.cjs +0 -226
- package/dist/lock/index.cjs.map +0 -1
- package/dist/lock/index.d.cts +0 -361
- package/dist/lock-redis/index.cjs +0 -113
- package/dist/lock-redis/index.cjs.map +0 -1
- package/dist/lock-redis/index.d.cts +0 -24
- package/dist/logger/index.cjs +0 -521
- package/dist/logger/index.cjs.map +0 -1
- package/dist/logger/index.d.cts +0 -281
- package/dist/orm/index.cjs +0 -2986
- package/dist/orm/index.cjs.map +0 -1
- package/dist/orm/index.d.cts +0 -2213
- package/dist/queue/index.cjs +0 -1044
- package/dist/queue/index.cjs.map +0 -1
- package/dist/queue/index.d.cts +0 -1265
- package/dist/queue-redis/index.cjs +0 -873
- package/dist/queue-redis/index.cjs.map +0 -1
- package/dist/queue-redis/index.d.cts +0 -82
- package/dist/redis/index.cjs +0 -153
- package/dist/redis/index.cjs.map +0 -1
- package/dist/redis/index.d.cts +0 -82
- package/dist/retry/index.cjs +0 -146
- package/dist/retry/index.cjs.map +0 -1
- package/dist/retry/index.d.cts +0 -172
- package/dist/router/index.cjs +0 -111
- package/dist/router/index.cjs.map +0 -1
- package/dist/router/index.d.cts +0 -46
- package/dist/scheduler/index.cjs +0 -576
- package/dist/scheduler/index.cjs.map +0 -1
- package/dist/scheduler/index.d.cts +0 -145
- package/dist/security/index.cjs +0 -2402
- package/dist/security/index.cjs.map +0 -1
- package/dist/security/index.d.cts +0 -598
- package/dist/server/index.cjs +0 -1680
- package/dist/server/index.cjs.map +0 -1
- package/dist/server/index.d.cts +0 -810
- package/dist/server-auth/index.cjs +0 -3146
- package/dist/server-auth/index.cjs.map +0 -1
- package/dist/server-auth/index.d.cts +0 -1164
- package/dist/server-cache/index.cjs +0 -252
- package/dist/server-cache/index.cjs.map +0 -1
- package/dist/server-cache/index.d.cts +0 -164
- package/dist/server-compress/index.cjs +0 -141
- package/dist/server-compress/index.cjs.map +0 -1
- package/dist/server-compress/index.d.cts +0 -38
- package/dist/server-cookies/index.cjs +0 -234
- package/dist/server-cookies/index.cjs.map +0 -1
- package/dist/server-cookies/index.d.cts +0 -144
- package/dist/server-cors/index.cjs +0 -201
- package/dist/server-cors/index.cjs.map +0 -1
- package/dist/server-cors/index.d.cts +0 -140
- package/dist/server-health/index.cjs +0 -62
- package/dist/server-health/index.cjs.map +0 -1
- package/dist/server-health/index.d.cts +0 -58
- package/dist/server-helmet/index.cjs +0 -131
- package/dist/server-helmet/index.cjs.map +0 -1
- package/dist/server-helmet/index.d.cts +0 -97
- package/dist/server-links/index.cjs +0 -992
- package/dist/server-links/index.cjs.map +0 -1
- package/dist/server-links/index.d.cts +0 -513
- package/dist/server-metrics/index.cjs +0 -4535
- package/dist/server-metrics/index.cjs.map +0 -1
- package/dist/server-metrics/index.d.cts +0 -35
- package/dist/server-multipart/index.cjs +0 -237
- package/dist/server-multipart/index.cjs.map +0 -1
- package/dist/server-multipart/index.d.cts +0 -50
- package/dist/server-proxy/index.cjs +0 -186
- package/dist/server-proxy/index.cjs.map +0 -1
- package/dist/server-proxy/index.d.cts +0 -234
- package/dist/server-rate-limit/index.cjs +0 -241
- package/dist/server-rate-limit/index.cjs.map +0 -1
- package/dist/server-rate-limit/index.d.cts +0 -183
- package/dist/server-security/index.cjs +0 -316
- package/dist/server-security/index.cjs.map +0 -1
- package/dist/server-security/index.d.cts +0 -173
- package/dist/server-static/index.cjs +0 -170
- package/dist/server-static/index.cjs.map +0 -1
- package/dist/server-static/index.d.cts +0 -121
- package/dist/server-swagger/index.cjs +0 -1021
- package/dist/server-swagger/index.cjs.map +0 -1
- package/dist/server-swagger/index.d.cts +0 -382
- package/dist/sms/index.cjs +0 -221
- package/dist/sms/index.cjs.map +0 -1
- package/dist/sms/index.d.cts +0 -130
- package/dist/thread/index.cjs +0 -350
- package/dist/thread/index.cjs.map +0 -1
- package/dist/thread/index.d.cts +0 -260
- package/dist/topic/index.cjs +0 -282
- package/dist/topic/index.cjs.map +0 -1
- package/dist/topic/index.d.cts +0 -523
- package/dist/topic-redis/index.cjs +0 -71
- package/dist/topic-redis/index.cjs.map +0 -1
- package/dist/topic-redis/index.d.cts +0 -42
- package/dist/vite/index.cjs +0 -1077
- package/dist/vite/index.cjs.map +0 -1
- package/dist/vite/index.d.cts +0 -542
- package/dist/websocket/index.cjs +0 -1117
- package/dist/websocket/index.cjs.map +0 -1
- package/dist/websocket/index.d.cts +0 -861
- package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
- package/src/api-notifications/providers/SmsProvider.ts +0 -8
- /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
- /package/src/core/{descriptors → primitives}/$env.ts +0 -0
- /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
- /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
|
@@ -57,15 +57,13 @@ export class CoreCommands {
|
|
|
57
57
|
// }),
|
|
58
58
|
// choose package manager
|
|
59
59
|
yarn: t.optional(t.boolean({ description: "Use Yarn package manager" })),
|
|
60
|
+
pnpm: t.optional(t.boolean({ description: "Use pnpm package manager" })),
|
|
60
61
|
// choose which dependencies to add
|
|
61
|
-
api: t.optional(
|
|
62
|
-
t.boolean({ description: "Include Alepha Server dependencies" }),
|
|
63
|
-
),
|
|
64
62
|
react: t.optional(
|
|
65
63
|
t.boolean({ description: "Include Alepha React dependencies" }),
|
|
66
64
|
),
|
|
67
|
-
|
|
68
|
-
t.boolean({ description: "Include Alepha
|
|
65
|
+
admin: t.optional(
|
|
66
|
+
t.boolean({ description: "Include Alepha admin panel dependencies" }),
|
|
69
67
|
),
|
|
70
68
|
}),
|
|
71
69
|
handler: async ({ run, flags, root }) => {
|
|
@@ -75,6 +73,8 @@ export class CoreCommands {
|
|
|
75
73
|
await this.utils.ensureConfig(root, {
|
|
76
74
|
tsconfigJson: true,
|
|
77
75
|
packageJson: flags,
|
|
76
|
+
biomeJson: true,
|
|
77
|
+
viteConfigTs: true,
|
|
78
78
|
indexHtml: !!flags.react,
|
|
79
79
|
});
|
|
80
80
|
},
|
|
@@ -86,6 +86,7 @@ export class CoreCommands {
|
|
|
86
86
|
|
|
87
87
|
if (flags.yarn || guessedPm === "yarn") {
|
|
88
88
|
await this.utils.ensureYarn(root);
|
|
89
|
+
await run("yarn set version stable");
|
|
89
90
|
await run("yarn install", {
|
|
90
91
|
alias: "Installing dependencies with Yarn",
|
|
91
92
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { createRequire } from "node:module";
|
|
3
2
|
import { join } from "node:path";
|
|
4
3
|
import { $inject, AlephaError, t } from "alepha";
|
|
5
4
|
import { $command } from "alepha/command";
|
|
6
5
|
import { $logger } from "alepha/logger";
|
|
6
|
+
import type { DrizzleKitProvider, RepositoryProvider } from "alepha/orm";
|
|
7
7
|
import { ProcessRunner } from "../services/ProcessRunner.ts";
|
|
8
8
|
import { ProjectUtils } from "../services/ProjectUtils.ts";
|
|
9
9
|
|
|
@@ -25,7 +25,7 @@ export class DrizzleCommands {
|
|
|
25
25
|
* Check if database migrations are up to date.
|
|
26
26
|
*/
|
|
27
27
|
check = $command({
|
|
28
|
-
name: "db:
|
|
28
|
+
name: "db:check-migrations",
|
|
29
29
|
description: "Check if database migration files are up to date",
|
|
30
30
|
args: t.optional(
|
|
31
31
|
t.text({
|
|
@@ -34,81 +34,89 @@ export class DrizzleCommands {
|
|
|
34
34
|
}),
|
|
35
35
|
),
|
|
36
36
|
flags: drizzleCommandFlags,
|
|
37
|
-
handler: async ({ args,
|
|
37
|
+
handler: async ({ args, root }) => {
|
|
38
38
|
const rootDir = root;
|
|
39
39
|
this.log.debug(`Using project root: ${rootDir}`);
|
|
40
|
+
|
|
40
41
|
const { alepha } = await this.utils.loadAlephaFromServerEntryFile(
|
|
41
42
|
rootDir,
|
|
42
43
|
args,
|
|
43
44
|
);
|
|
44
45
|
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
46
|
+
const repositoryProvider =
|
|
47
|
+
alepha.inject<RepositoryProvider>("RepositoryProvider");
|
|
48
|
+
const drizzleKitProvider =
|
|
49
|
+
alepha.inject<DrizzleKitProvider>("DrizzleKitProvider");
|
|
50
|
+
const accepted = new Set<string>([]);
|
|
49
51
|
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this.log.info(`No migration journal found.`);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
52
|
+
for (const primitive of repositoryProvider.getRepositories()) {
|
|
53
|
+
const provider = primitive.provider;
|
|
54
|
+
const providerName = provider.name;
|
|
55
|
+
if (accepted.has(providerName)) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
59
58
|
|
|
60
|
-
|
|
59
|
+
accepted.add(providerName);
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
const migrationDir = join(rootDir, "migrations", providerName);
|
|
63
62
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
`${migrationDir}/meta/${String(lastMigration.idx).padStart(4, "0")}_snapshot.json`,
|
|
63
|
+
const journalFile = await readFile(
|
|
64
|
+
`${migrationDir}/meta/_journal.json`,
|
|
67
65
|
"utf-8",
|
|
68
|
-
)
|
|
69
|
-
);
|
|
66
|
+
).catch(() => null);
|
|
70
67
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
if (!journalFile) {
|
|
69
|
+
this.log.info(`No migration journal found.`);
|
|
70
|
+
return;
|
|
74
71
|
}
|
|
75
|
-
}
|
|
76
72
|
|
|
77
|
-
|
|
73
|
+
const journal = JSON.parse(journalFile);
|
|
74
|
+
const lastMigration = journal.entries[journal.entries.length - 1];
|
|
75
|
+
const lastSnapshot = JSON.parse(
|
|
76
|
+
await readFile(
|
|
77
|
+
`${migrationDir}/meta/${String(lastMigration.idx).padStart(4, "0")}_snapshot.json`,
|
|
78
|
+
"utf-8",
|
|
79
|
+
),
|
|
80
|
+
);
|
|
78
81
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
resolve([{ message: "Migration generation timed out." }]);
|
|
83
|
-
}, 5000);
|
|
84
|
-
const statements = await kit.generateMigration(lastSnapshot, now);
|
|
85
|
-
clearTimeout(timer);
|
|
86
|
-
resolve(statements);
|
|
87
|
-
})();
|
|
88
|
-
});
|
|
82
|
+
const models = drizzleKitProvider.getModels(provider);
|
|
83
|
+
const kit = drizzleKitProvider.importDrizzleKit();
|
|
84
|
+
const now = kit.generateDrizzleJson(models, lastSnapshot.id);
|
|
89
85
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
86
|
+
const migrationStatements = await new Promise<Array<any>>((resolve) => {
|
|
87
|
+
(async () => {
|
|
88
|
+
const timer = setTimeout(() => {
|
|
89
|
+
resolve([{ message: "Migration generation timed out." }]);
|
|
90
|
+
}, 5000);
|
|
91
|
+
const statements = await kit.generateMigration(lastSnapshot, now);
|
|
92
|
+
clearTimeout(timer);
|
|
93
|
+
resolve(statements);
|
|
94
|
+
})();
|
|
95
|
+
});
|
|
94
96
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.log.info(stmt);
|
|
100
|
-
}
|
|
101
|
-
this.log.info("");
|
|
97
|
+
if (migrationStatements.length === 0) {
|
|
98
|
+
this.log.info("No changes detected.");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
102
101
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
this.log.info("");
|
|
103
|
+
this.log.info("Detected migration statements:");
|
|
104
|
+
this.log.info("");
|
|
105
|
+
for (const stmt of migrationStatements) {
|
|
106
|
+
this.log.info(stmt);
|
|
107
|
+
}
|
|
108
|
+
this.log.info("");
|
|
110
109
|
|
|
111
|
-
|
|
110
|
+
this.log.info(
|
|
111
|
+
`At least ${migrationStatements.length} change(s) detected.`,
|
|
112
|
+
);
|
|
113
|
+
this.log.info(
|
|
114
|
+
"Please, run 'alepha db:generate' to update the migration files.",
|
|
115
|
+
);
|
|
116
|
+
this.log.info("");
|
|
117
|
+
|
|
118
|
+
throw new AlephaError("Database migrations are not up to date.");
|
|
119
|
+
}
|
|
112
120
|
},
|
|
113
121
|
});
|
|
114
122
|
|
|
@@ -116,7 +124,7 @@ export class DrizzleCommands {
|
|
|
116
124
|
* Generate database migration files
|
|
117
125
|
*
|
|
118
126
|
* - Loads the Alepha instance from the specified entry file.
|
|
119
|
-
* - Retrieves all repository
|
|
127
|
+
* - Retrieves all repository primitives to gather database models.
|
|
120
128
|
* - Creates temporary entity definitions based on the current database schema.
|
|
121
129
|
* - Writes these definitions to a temporary schema file. (node_modules/.db/entities.ts)
|
|
122
130
|
* - Invokes Drizzle Kit's CLI to generate migration files based on the current schema.
|
|
@@ -159,7 +167,7 @@ export class DrizzleCommands {
|
|
|
159
167
|
* Push database schema changes directly to the database
|
|
160
168
|
*
|
|
161
169
|
* - Loads the Alepha instance from the specified entry file.
|
|
162
|
-
* - Retrieves all repository
|
|
170
|
+
* - Retrieves all repository primitives to gather database models.
|
|
163
171
|
* - Creates temporary entity definitions and Drizzle config.
|
|
164
172
|
* - Invokes Drizzle Kit's push command to apply schema changes directly.
|
|
165
173
|
*/
|
|
@@ -190,7 +198,7 @@ export class DrizzleCommands {
|
|
|
190
198
|
* Apply pending database migrations
|
|
191
199
|
*
|
|
192
200
|
* - Loads the Alepha instance from the specified entry file.
|
|
193
|
-
* - Retrieves all repository
|
|
201
|
+
* - Retrieves all repository primitives to gather database models.
|
|
194
202
|
* - Creates temporary entity definitions and Drizzle config.
|
|
195
203
|
* - Invokes Drizzle Kit's migrate command to apply pending migrations.
|
|
196
204
|
*/
|
|
@@ -221,7 +229,7 @@ export class DrizzleCommands {
|
|
|
221
229
|
* Launch Drizzle Studio database browser
|
|
222
230
|
*
|
|
223
231
|
* - Loads the Alepha instance from the specified entry file.
|
|
224
|
-
* - Retrieves all repository
|
|
232
|
+
* - Retrieves all repository primitives to gather database models.
|
|
225
233
|
* - Creates temporary entity definitions and Drizzle config.
|
|
226
234
|
* - Invokes Drizzle Kit's studio command to launch the web-based database browser.
|
|
227
235
|
*/
|
|
@@ -35,8 +35,8 @@ export class VerifyCommands {
|
|
|
35
35
|
await run("alepha test");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
if (await this.utils.
|
|
39
|
-
await run("alepha db:
|
|
38
|
+
if (await this.utils.exists(root, "migrations")) {
|
|
39
|
+
await run("alepha db:check-migrations");
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
await run("alepha build");
|
|
@@ -68,7 +68,12 @@ export class ViteCommands {
|
|
|
68
68
|
await access(join(root, "index.html"));
|
|
69
69
|
} catch {
|
|
70
70
|
this.log.trace("No index.html found, running entry file with tsx");
|
|
71
|
-
|
|
71
|
+
let cmd = "tsx --watch";
|
|
72
|
+
if (await this.utils.exists(root, ".env")) {
|
|
73
|
+
cmd += ` --env-file=./.env`;
|
|
74
|
+
}
|
|
75
|
+
cmd += ` ${entry}`;
|
|
76
|
+
await this.runner.exec(cmd);
|
|
72
77
|
return;
|
|
73
78
|
}
|
|
74
79
|
|
|
@@ -3,11 +3,13 @@ import { join } from "node:path";
|
|
|
3
3
|
import { $inject, Alepha, AlephaError } from "alepha";
|
|
4
4
|
import { FileSystemProvider } from "alepha/file";
|
|
5
5
|
import { $logger } from "alepha/logger";
|
|
6
|
-
import type { RepositoryProvider } from "alepha/orm";
|
|
6
|
+
import type { DrizzleKitProvider, RepositoryProvider } from "alepha/orm";
|
|
7
7
|
import { boot } from "alepha/vite";
|
|
8
8
|
import { tsImport } from "tsx/esm/api";
|
|
9
|
+
import { appRouterTs } from "../assets/appRouterTs.ts";
|
|
9
10
|
import { biomeJson } from "../assets/biomeJson.ts";
|
|
10
11
|
import { indexHtml } from "../assets/indexHtml.ts";
|
|
12
|
+
import { mainBrowserTs } from "../assets/mainBrowserTs.ts";
|
|
11
13
|
import { tsconfigJson } from "../assets/tsconfigJson.ts";
|
|
12
14
|
import { viteConfigTs } from "../assets/viteConfigTs.ts";
|
|
13
15
|
import { version } from "../version.ts";
|
|
@@ -40,18 +42,16 @@ export class ProjectUtils {
|
|
|
40
42
|
* @param root - The root directory of the project
|
|
41
43
|
*/
|
|
42
44
|
public async ensureYarn(root: string): Promise<void> {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
await this.ensureFileExists(
|
|
46
|
+
root,
|
|
47
|
+
".yarnrc.yml",
|
|
48
|
+
"nodeLinker: node-modules",
|
|
49
|
+
false,
|
|
50
|
+
);
|
|
49
51
|
|
|
50
52
|
// remove lock files from other package managers
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
await this.fs.rm(npmLockPath, { force: true });
|
|
54
|
-
await this.fs.rm(pnpmLockPath, { force: true });
|
|
53
|
+
await this.fs.rm(join(root, "package-lock.json"), { force: true });
|
|
54
|
+
await this.fs.rm(join(root, "pnpm-lock.yaml"), { force: true });
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/**
|
|
@@ -74,8 +74,13 @@ export class ProjectUtils {
|
|
|
74
74
|
|
|
75
75
|
if (modes.react) {
|
|
76
76
|
dependencies["@alepha/react"] = `^${version}`;
|
|
77
|
-
dependencies.react = "19.
|
|
78
|
-
|
|
77
|
+
dependencies.react = "^19.2.0";
|
|
78
|
+
dependencies["react-dom"] = "^19.2.0";
|
|
79
|
+
devDependencies["@types/react"] = "^19.2.0";
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (modes.admin) {
|
|
83
|
+
dependencies["@alepha/ui"] = `^${version}`;
|
|
79
84
|
}
|
|
80
85
|
|
|
81
86
|
return {
|
|
@@ -85,6 +90,7 @@ export class ProjectUtils {
|
|
|
85
90
|
scripts: {
|
|
86
91
|
dev: "alepha dev",
|
|
87
92
|
build: "alepha build",
|
|
93
|
+
verify: "alepha verify",
|
|
88
94
|
},
|
|
89
95
|
};
|
|
90
96
|
}
|
|
@@ -353,22 +359,6 @@ export class ProjectUtils {
|
|
|
353
359
|
);
|
|
354
360
|
}
|
|
355
361
|
|
|
356
|
-
/**
|
|
357
|
-
* Get DrizzleKitProvider from an Alepha instance.
|
|
358
|
-
*
|
|
359
|
-
* Searches the Alepha registry for the DrizzleKitProvider instance.
|
|
360
|
-
*
|
|
361
|
-
* @param alepha - The Alepha instance to search
|
|
362
|
-
* @returns The DrizzleKitProvider instance
|
|
363
|
-
*/
|
|
364
|
-
public getKitFromAlepha(alepha: Alepha): any {
|
|
365
|
-
// biome-ignore lint/complexity/useLiteralKeys: private key
|
|
366
|
-
return alepha["registry"]
|
|
367
|
-
.values()
|
|
368
|
-
.find((it: any) => it.instance.constructor.name === "DrizzleKitProvider")
|
|
369
|
-
?.instance;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
362
|
/**
|
|
373
363
|
* Generate JavaScript code for Drizzle entities export.
|
|
374
364
|
*
|
|
@@ -439,6 +429,16 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
439
429
|
},
|
|
440
430
|
};
|
|
441
431
|
|
|
432
|
+
if (options.dialect === "sqlite") {
|
|
433
|
+
let url = options.providerUrl;
|
|
434
|
+
url = url.replace("sqlite://", "").replace("file://", "");
|
|
435
|
+
url = join(options.rootDir, url);
|
|
436
|
+
|
|
437
|
+
config.dbCredentials = {
|
|
438
|
+
url,
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
|
|
442
442
|
if (options.providerName === "pglite") {
|
|
443
443
|
config.driver = "pglite";
|
|
444
444
|
}
|
|
@@ -452,6 +452,24 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
452
452
|
);
|
|
453
453
|
}
|
|
454
454
|
|
|
455
|
+
public async loadEnvFile(root: string): Promise<void> {
|
|
456
|
+
const envPath = join(root, ".env");
|
|
457
|
+
try {
|
|
458
|
+
const envContent = await readFile(envPath, "utf8");
|
|
459
|
+
const lines = envContent.split("\n");
|
|
460
|
+
for (const line of lines) {
|
|
461
|
+
const [key, ...rest] = line.split("=");
|
|
462
|
+
if (key) {
|
|
463
|
+
const value = rest.join("=");
|
|
464
|
+
process.env[key.trim()] = value.trim();
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
this.log.debug(`Loaded environment variables from ${envPath}`);
|
|
468
|
+
} catch {
|
|
469
|
+
this.log.debug(`No .env file found at ${envPath}, skipping load.`);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
455
473
|
/**
|
|
456
474
|
* Run a drizzle-kit command for all database providers in an Alepha instance.
|
|
457
475
|
*
|
|
@@ -469,6 +487,9 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
469
487
|
logMessage: (providerName: string, dialect: string) => string;
|
|
470
488
|
}): Promise<void> {
|
|
471
489
|
const rootDir = options.root;
|
|
490
|
+
|
|
491
|
+
await this.loadEnvFile(rootDir);
|
|
492
|
+
|
|
472
493
|
this.log.debug(`Using project root: ${rootDir}`);
|
|
473
494
|
|
|
474
495
|
const { alepha, entry } = await this.loadAlephaFromServerEntryFile(
|
|
@@ -476,13 +497,14 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
476
497
|
options.args,
|
|
477
498
|
);
|
|
478
499
|
|
|
479
|
-
const
|
|
500
|
+
const drizzleKitProvider =
|
|
501
|
+
alepha.inject<DrizzleKitProvider>("DrizzleKitProvider");
|
|
480
502
|
const repositoryProvider =
|
|
481
503
|
alepha.inject<RepositoryProvider>("RepositoryProvider");
|
|
482
504
|
const accepted = new Set<string>([]);
|
|
483
505
|
|
|
484
|
-
for (const
|
|
485
|
-
const provider =
|
|
506
|
+
for (const primitive of repositoryProvider.getRepositories()) {
|
|
507
|
+
const provider = primitive.provider;
|
|
486
508
|
const providerName = provider.name;
|
|
487
509
|
const dialect = provider.dialect;
|
|
488
510
|
|
|
@@ -503,7 +525,7 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
503
525
|
this.log.info(options.logMessage(providerName, dialect));
|
|
504
526
|
|
|
505
527
|
const drizzleConfigJsPath = await this.prepareDrizzleConfig({
|
|
506
|
-
kit,
|
|
528
|
+
kit: drizzleKitProvider,
|
|
507
529
|
provider,
|
|
508
530
|
providerName,
|
|
509
531
|
providerUrl: provider.url,
|
|
@@ -536,14 +558,30 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
536
558
|
return;
|
|
537
559
|
}
|
|
538
560
|
|
|
539
|
-
const
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
);
|
|
561
|
+
const serverEntry = "src/main.server.ts";
|
|
562
|
+
const browserEntry = "src/main.browser.ts";
|
|
563
|
+
const appRouter = "src/AppRouter.ts";
|
|
564
|
+
|
|
565
|
+
await this.fs.writeFile(join(root, "index.html"), indexHtml(browserEntry));
|
|
566
|
+
|
|
567
|
+
try {
|
|
568
|
+
await this.fs.mkdir(join(root, "src"), { recursive: true });
|
|
569
|
+
} catch {}
|
|
570
|
+
|
|
571
|
+
if (!(await this.fs.exists(join(root, browserEntry)))) {
|
|
572
|
+
await this.fs.writeFile(join(root, browserEntry), mainBrowserTs());
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
if (!(await this.fs.exists(join(root, serverEntry)))) {
|
|
576
|
+
await this.fs.writeFile(join(root, serverEntry), mainBrowserTs());
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
if (!(await this.fs.exists(join(root, appRouter)))) {
|
|
580
|
+
await this.fs.writeFile(join(root, appRouter), appRouterTs());
|
|
581
|
+
}
|
|
544
582
|
}
|
|
545
583
|
|
|
546
|
-
public async
|
|
584
|
+
public async exists(root: string, dirName: string): Promise<boolean> {
|
|
547
585
|
return this.fs.exists(join(root, dirName));
|
|
548
586
|
}
|
|
549
587
|
|
|
@@ -559,6 +597,5 @@ ${models.map((it: string) => `export const ${it} = models["${it}"];`).join("\n")
|
|
|
559
597
|
|
|
560
598
|
export interface DependencyModes {
|
|
561
599
|
react?: boolean;
|
|
562
|
-
|
|
563
|
-
// ui?: boolean;
|
|
600
|
+
admin?: boolean;
|
|
564
601
|
}
|
package/src/command/index.ts
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $command } from "./descriptors/$command.ts";
|
|
3
2
|
import { Asker } from "./helpers/Asker.ts";
|
|
4
3
|
import { PrettyPrint } from "./helpers/PrettyPrint.ts";
|
|
5
4
|
import { Runner } from "./helpers/Runner.ts";
|
|
5
|
+
import { $command } from "./primitives/$command.ts";
|
|
6
6
|
import { CliProvider } from "./providers/CliProvider.ts";
|
|
7
7
|
|
|
8
8
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
9
9
|
|
|
10
|
-
export * from "./descriptors/$command.ts";
|
|
11
10
|
export * from "./errors/CommandError.ts";
|
|
12
11
|
export * from "./helpers/Asker.ts";
|
|
13
12
|
export * from "./helpers/PrettyPrint.ts";
|
|
14
13
|
export * from "./helpers/Runner.ts";
|
|
14
|
+
export * from "./primitives/$command.ts";
|
|
15
15
|
export * from "./providers/CliProvider.ts";
|
|
16
16
|
|
|
17
17
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* This module provides a powerful way to build command-line interfaces
|
|
21
|
-
* directly within your Alepha application, using declarative
|
|
21
|
+
* directly within your Alepha application, using declarative primitives.
|
|
22
22
|
*
|
|
23
|
-
* It allows you to define commands using the `$command`
|
|
23
|
+
* It allows you to define commands using the `$command` primitive.
|
|
24
24
|
*
|
|
25
25
|
* @see {@link $command}
|
|
26
26
|
* @module alepha.command
|
|
27
27
|
*/
|
|
28
28
|
export const AlephaCommand = $module({
|
|
29
29
|
name: "alepha.command",
|
|
30
|
-
|
|
30
|
+
primitives: [$command],
|
|
31
31
|
services: [CliProvider, Runner, Asker, PrettyPrint],
|
|
32
32
|
});
|
|
33
33
|
|
|
@@ -2,9 +2,9 @@ import type * as fs from "node:fs/promises";
|
|
|
2
2
|
import type { glob } from "node:fs/promises";
|
|
3
3
|
import {
|
|
4
4
|
type Async,
|
|
5
|
-
|
|
6
|
-
Descriptor,
|
|
5
|
+
createPrimitive,
|
|
7
6
|
KIND,
|
|
7
|
+
Primitive,
|
|
8
8
|
type Static,
|
|
9
9
|
type TObject,
|
|
10
10
|
type TSchema,
|
|
@@ -16,19 +16,16 @@ import type { RunnerMethod } from "../helpers/Runner.ts";
|
|
|
16
16
|
/**
|
|
17
17
|
* Declares a CLI command.
|
|
18
18
|
*
|
|
19
|
-
* This
|
|
19
|
+
* This primitive allows you to define a command, its flags, and its handler
|
|
20
20
|
* within your Alepha application structure.
|
|
21
21
|
*/
|
|
22
22
|
export const $command = <T extends TObject, A extends TSchema>(
|
|
23
|
-
options:
|
|
24
|
-
) =>
|
|
23
|
+
options: CommandPrimitiveOptions<T, A>,
|
|
24
|
+
) => createPrimitive(CommandPrimitive<T, A>, options);
|
|
25
25
|
|
|
26
26
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
27
27
|
|
|
28
|
-
export interface
|
|
29
|
-
T extends TObject,
|
|
30
|
-
A extends TSchema,
|
|
31
|
-
> {
|
|
28
|
+
export interface CommandPrimitiveOptions<T extends TObject, A extends TSchema> {
|
|
32
29
|
/**
|
|
33
30
|
* The handler function to execute when the command is matched.
|
|
34
31
|
*/
|
|
@@ -89,10 +86,10 @@ export interface CommandDescriptorOptions<
|
|
|
89
86
|
|
|
90
87
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
91
88
|
|
|
92
|
-
export class
|
|
89
|
+
export class CommandPrimitive<
|
|
93
90
|
T extends TObject = TObject,
|
|
94
91
|
A extends TSchema = TSchema,
|
|
95
|
-
> extends
|
|
92
|
+
> extends Primitive<CommandPrimitiveOptions<T, A>> {
|
|
96
93
|
public readonly flags = this.options.flags ?? t.object({});
|
|
97
94
|
public readonly aliases = this.options.aliases ?? [];
|
|
98
95
|
|
|
@@ -104,7 +101,7 @@ export class CommandDescriptor<
|
|
|
104
101
|
}
|
|
105
102
|
}
|
|
106
103
|
|
|
107
|
-
$command[KIND] =
|
|
104
|
+
$command[KIND] = CommandPrimitive;
|
|
108
105
|
|
|
109
106
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
110
107
|
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
t,
|
|
15
15
|
} from "alepha";
|
|
16
16
|
import { $logger } from "alepha/logger";
|
|
17
|
-
import {
|
|
18
|
-
$command,
|
|
19
|
-
type CommandDescriptor,
|
|
20
|
-
type CommandHandlerArgs,
|
|
21
|
-
} from "../descriptors/$command.ts";
|
|
22
17
|
import { CommandError } from "../errors/CommandError.ts";
|
|
23
18
|
import { Asker } from "../helpers/Asker.ts";
|
|
24
19
|
import { Runner } from "../helpers/Runner.ts";
|
|
20
|
+
import {
|
|
21
|
+
$command,
|
|
22
|
+
type CommandHandlerArgs,
|
|
23
|
+
type CommandPrimitive,
|
|
24
|
+
} from "../primitives/$command.ts";
|
|
25
25
|
|
|
26
26
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
27
27
|
|
|
@@ -176,11 +176,11 @@ export class CliProvider {
|
|
|
176
176
|
},
|
|
177
177
|
});
|
|
178
178
|
|
|
179
|
-
public get commands():
|
|
180
|
-
return this.alepha.
|
|
179
|
+
public get commands(): CommandPrimitive<any>[] {
|
|
180
|
+
return this.alepha.primitives($command);
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
protected findCommand(name: string):
|
|
183
|
+
protected findCommand(name: string): CommandPrimitive<TObject> | undefined {
|
|
184
184
|
return this.commands.find(
|
|
185
185
|
(command) => command.name === name || command.aliases.includes(name),
|
|
186
186
|
);
|
|
@@ -408,7 +408,7 @@ export class CliProvider {
|
|
|
408
408
|
return "";
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
public printHelp(command?:
|
|
411
|
+
public printHelp(command?: CommandPrimitive<any>): void {
|
|
412
412
|
const cliName = this.name || "cli";
|
|
413
413
|
this.log.info(""); // Newline
|
|
414
414
|
|
|
@@ -485,7 +485,7 @@ export class CliProvider {
|
|
|
485
485
|
this.log.info(""); // Newline
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
private getMaxCmdLength(commands:
|
|
488
|
+
private getMaxCmdLength(commands: CommandPrimitive[]): number {
|
|
489
489
|
return Math.max(
|
|
490
490
|
...commands.map((c) => {
|
|
491
491
|
const cmdStr = [c.name, ...c.aliases].join(", ");
|