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
|
@@ -3,12 +3,12 @@ import { DateTimeProvider } from "alepha/datetime";
|
|
|
3
3
|
import { EmailProvider } from "alepha/email";
|
|
4
4
|
import { $logger } from "alepha/logger";
|
|
5
5
|
import { $repository } from "alepha/orm";
|
|
6
|
-
import {
|
|
6
|
+
import { SmsProvider } from "alepha/sms";
|
|
7
7
|
import {
|
|
8
8
|
type NotificationEntity,
|
|
9
9
|
notifications,
|
|
10
10
|
} from "../entities/notifications.ts";
|
|
11
|
-
import {
|
|
11
|
+
import { $notification } from "../primitives/$notification.ts";
|
|
12
12
|
|
|
13
13
|
export class NotificationSenderService {
|
|
14
14
|
protected readonly alepha = $inject(Alepha);
|
|
@@ -161,7 +161,7 @@ export class NotificationSenderService {
|
|
|
161
161
|
const variables = notification.variables || {};
|
|
162
162
|
const contact = notification.contact;
|
|
163
163
|
const template = this.alepha
|
|
164
|
-
.
|
|
164
|
+
.primitives($notification)
|
|
165
165
|
.find((it) => it.name === notification.template);
|
|
166
166
|
|
|
167
167
|
if (!template) {
|
|
@@ -2,8 +2,8 @@ import { $module } from "alepha";
|
|
|
2
2
|
|
|
3
3
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
export * from "./descriptors/$config.ts";
|
|
6
5
|
export * from "./entities/parameters.ts";
|
|
6
|
+
export * from "./primitives/$config.ts";
|
|
7
7
|
|
|
8
8
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
9
9
|
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createDescriptor,
|
|
3
|
-
Descriptor,
|
|
4
|
-
type Static,
|
|
5
|
-
type TObject,
|
|
6
|
-
} from "alepha";
|
|
1
|
+
import { createPrimitive, Primitive, type Static, type TObject } from "alepha";
|
|
7
2
|
import type { UserAccount } from "alepha/security";
|
|
8
3
|
|
|
9
4
|
/**
|
|
10
|
-
* Creates a configuration parameter
|
|
5
|
+
* Creates a configuration parameter primitive for managing application settings.
|
|
11
6
|
*
|
|
12
7
|
* Provides type-safe, versioned configuration with schema validation, default values,
|
|
13
8
|
* and scheduled activation. Useful for feature flags, system parameters, and runtime settings.
|
|
@@ -33,15 +28,15 @@ import type { UserAccount } from "alepha/security";
|
|
|
33
28
|
* }
|
|
34
29
|
* ```
|
|
35
30
|
*/
|
|
36
|
-
export interface
|
|
31
|
+
export interface ConfigPrimitiveOptions<T extends TObject> {
|
|
37
32
|
name?: string;
|
|
38
33
|
description?: string;
|
|
39
34
|
schema: T;
|
|
40
35
|
default: Static<T>;
|
|
41
36
|
}
|
|
42
37
|
|
|
43
|
-
export class
|
|
44
|
-
|
|
38
|
+
export class ConfigPrimitive<T extends TObject> extends Primitive<
|
|
39
|
+
ConfigPrimitiveOptions<T>
|
|
45
40
|
> {
|
|
46
41
|
public get name() {
|
|
47
42
|
return this.options.name || this.config.propertyKey;
|
|
@@ -78,7 +73,7 @@ export class ConfigDescriptor<T extends TObject> extends Descriptor<
|
|
|
78
73
|
}
|
|
79
74
|
|
|
80
75
|
export const $config = <T extends TObject>(
|
|
81
|
-
options:
|
|
76
|
+
options: ConfigPrimitiveOptions<T>,
|
|
82
77
|
) => {
|
|
83
|
-
return
|
|
78
|
+
return createPrimitive(ConfigPrimitive<T>, options);
|
|
84
79
|
};
|
package/src/api-users/index.ts
CHANGED
|
@@ -21,10 +21,10 @@ export * from "./controllers/IdentityController.ts";
|
|
|
21
21
|
export * from "./controllers/SessionController.ts";
|
|
22
22
|
export * from "./controllers/UserController.ts";
|
|
23
23
|
export * from "./controllers/UserRealmController.ts";
|
|
24
|
-
export * from "./descriptors/$userRealm.ts";
|
|
25
24
|
export * from "./entities/identities.ts";
|
|
26
25
|
export * from "./entities/sessions.ts";
|
|
27
26
|
export * from "./entities/users.ts";
|
|
27
|
+
export * from "./primitives/$userRealm.ts";
|
|
28
28
|
export * from "./providers/UserRealmProvider.ts";
|
|
29
29
|
export * from "./schemas/completePasswordResetRequestSchema.ts";
|
|
30
30
|
export * from "./schemas/completeRegistrationRequestSchema.ts";
|
|
@@ -2,15 +2,15 @@ import { $context } from "alepha";
|
|
|
2
2
|
import type { Repository } from "alepha/orm";
|
|
3
3
|
import {
|
|
4
4
|
$realm,
|
|
5
|
-
type
|
|
6
|
-
type
|
|
5
|
+
type RealmPrimitive,
|
|
6
|
+
type RealmPrimitiveOptions,
|
|
7
7
|
SecurityProvider,
|
|
8
8
|
} from "alepha/security";
|
|
9
9
|
import {
|
|
10
10
|
$authCredentials,
|
|
11
11
|
$authGithub,
|
|
12
12
|
$authGoogle,
|
|
13
|
-
type
|
|
13
|
+
type AuthPrimitive,
|
|
14
14
|
type Credentials,
|
|
15
15
|
type LinkAccountOptions,
|
|
16
16
|
type WithLinkFn,
|
|
@@ -23,7 +23,7 @@ import { DEFAULT_USER_REALM_NAME, type users } from "../entities/users.ts";
|
|
|
23
23
|
import { UserRealmProvider } from "../providers/UserRealmProvider.ts";
|
|
24
24
|
import { SessionService } from "../services/SessionService.ts";
|
|
25
25
|
|
|
26
|
-
export type
|
|
26
|
+
export type UserRealmPrimitive = RealmPrimitive & WithLinkFn & WithLoginFn;
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Already configured realm for user management.
|
|
@@ -41,7 +41,7 @@ export type UserRealmDescriptor = RealmDescriptor & WithLinkFn & WithLoginFn;
|
|
|
41
41
|
|
|
42
42
|
export const $userRealm = (
|
|
43
43
|
options: UserRealmOptions = {},
|
|
44
|
-
):
|
|
44
|
+
): UserRealmPrimitive => {
|
|
45
45
|
const { alepha } = $context();
|
|
46
46
|
const sessionService = alepha.inject(SessionService);
|
|
47
47
|
const securityProvider = alepha.inject(SecurityProvider);
|
|
@@ -50,7 +50,7 @@ export const $userRealm = (
|
|
|
50
50
|
|
|
51
51
|
userRealmProvider.register(name, options);
|
|
52
52
|
|
|
53
|
-
const realm:
|
|
53
|
+
const realm: UserRealmPrimitive = $realm({
|
|
54
54
|
...options.realm,
|
|
55
55
|
name,
|
|
56
56
|
secret: options.secret ?? securityProvider.secretKey,
|
|
@@ -104,7 +104,7 @@ export const $userRealm = (
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
if (options.identities) {
|
|
107
|
-
const identities: Record<string,
|
|
107
|
+
const identities: Record<string, AuthPrimitive> = {};
|
|
108
108
|
if (options.identities?.credentials) {
|
|
109
109
|
identities.credentials = $authCredentials(realm);
|
|
110
110
|
}
|
|
@@ -135,7 +135,7 @@ export interface UserRealmOptions {
|
|
|
135
135
|
*
|
|
136
136
|
* It's already pre-configured for user management with admin and user roles.
|
|
137
137
|
*/
|
|
138
|
-
realm?: Partial<
|
|
138
|
+
realm?: Partial<RealmPrimitiveOptions>;
|
|
139
139
|
|
|
140
140
|
/**
|
|
141
141
|
* Override entities.
|
|
@@ -40,7 +40,7 @@ export class UserRealmProvider {
|
|
|
40
40
|
protected readonly onConfigure = $hook({
|
|
41
41
|
on: "configure",
|
|
42
42
|
handler: () => {
|
|
43
|
-
this.alepha.
|
|
43
|
+
this.alepha.store.set("alepha.server.security.system.user", {
|
|
44
44
|
id: "00000000-0000-0000-0000-000000000000",
|
|
45
45
|
name: "system",
|
|
46
46
|
roles: ["admin"], // TODO: use realm config
|
package/src/batch/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $batch } from "./
|
|
2
|
+
import { $batch } from "./primitives/$batch.ts";
|
|
3
3
|
import { BatchProvider } from "./providers/BatchProvider.ts";
|
|
4
4
|
|
|
5
5
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
6
6
|
|
|
7
|
-
export * from "./
|
|
7
|
+
export * from "./primitives/$batch.ts";
|
|
8
8
|
export * from "./providers/BatchProvider.ts";
|
|
9
9
|
|
|
10
10
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -53,6 +53,6 @@ export * from "./providers/BatchProvider.ts";
|
|
|
53
53
|
*/
|
|
54
54
|
export const AlephaBatch = $module({
|
|
55
55
|
name: "alepha.batch",
|
|
56
|
-
|
|
56
|
+
primitives: [$batch],
|
|
57
57
|
services: [BatchProvider],
|
|
58
58
|
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$hook,
|
|
3
3
|
$inject,
|
|
4
|
-
|
|
5
|
-
Descriptor,
|
|
4
|
+
createPrimitive,
|
|
6
5
|
KIND,
|
|
6
|
+
Primitive,
|
|
7
7
|
type Static,
|
|
8
8
|
type TSchema,
|
|
9
9
|
} from "alepha";
|
|
10
10
|
import type { DurationLike } from "alepha/datetime";
|
|
11
|
-
import type {
|
|
11
|
+
import type { RetryPrimitiveOptions } from "alepha/retry";
|
|
12
12
|
import {
|
|
13
13
|
type BatchContext,
|
|
14
14
|
type BatchItemState,
|
|
@@ -17,19 +17,16 @@ import {
|
|
|
17
17
|
} from "../providers/BatchProvider.ts";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Creates a batch processing
|
|
20
|
+
* Creates a batch processing primitive for efficient grouping and processing of multiple operations.
|
|
21
21
|
*/
|
|
22
22
|
export const $batch = <TItem extends TSchema, TResponse>(
|
|
23
|
-
options:
|
|
24
|
-
):
|
|
25
|
-
|
|
23
|
+
options: BatchPrimitiveOptions<TItem, TResponse>,
|
|
24
|
+
): BatchPrimitive<TItem, TResponse> =>
|
|
25
|
+
createPrimitive(BatchPrimitive<TItem, TResponse>, options);
|
|
26
26
|
|
|
27
27
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
28
28
|
|
|
29
|
-
export interface
|
|
30
|
-
TItem extends TSchema,
|
|
31
|
-
TResponse = any,
|
|
32
|
-
> {
|
|
29
|
+
export interface BatchPrimitiveOptions<TItem extends TSchema, TResponse = any> {
|
|
33
30
|
/**
|
|
34
31
|
* TypeBox schema for validating each item added to the batch.
|
|
35
32
|
*/
|
|
@@ -69,7 +66,7 @@ export interface BatchDescriptorOptions<
|
|
|
69
66
|
/**
|
|
70
67
|
* Retry configuration for failed batch processing operations.
|
|
71
68
|
*/
|
|
72
|
-
retry?: Omit<
|
|
69
|
+
retry?: Omit<RetryPrimitiveOptions<() => Array<Static<TItem>>>, "handler">;
|
|
73
70
|
}
|
|
74
71
|
|
|
75
72
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -78,16 +75,16 @@ export type { BatchItemState, BatchItemStatus };
|
|
|
78
75
|
|
|
79
76
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
80
77
|
|
|
81
|
-
export class
|
|
78
|
+
export class BatchPrimitive<
|
|
82
79
|
TItem extends TSchema,
|
|
83
80
|
TResponse = any,
|
|
84
|
-
> extends
|
|
81
|
+
> extends Primitive<BatchPrimitiveOptions<TItem, TResponse>> {
|
|
85
82
|
protected readonly batchProvider = $inject(BatchProvider);
|
|
86
83
|
protected readonly context: BatchContext<Static<TItem>, TResponse>;
|
|
87
84
|
|
|
88
85
|
constructor(
|
|
89
86
|
...args: ConstructorParameters<
|
|
90
|
-
typeof
|
|
87
|
+
typeof Primitive<BatchPrimitiveOptions<TItem, TResponse>>
|
|
91
88
|
>
|
|
92
89
|
) {
|
|
93
90
|
super(...args);
|
|
@@ -172,4 +169,4 @@ export class BatchDescriptor<
|
|
|
172
169
|
});
|
|
173
170
|
}
|
|
174
171
|
|
|
175
|
-
$batch[KIND] =
|
|
172
|
+
$batch[KIND] = BatchPrimitive;
|
package/src/bucket/index.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { $module, type FileLike } from "alepha";
|
|
2
2
|
import {
|
|
3
3
|
$bucket,
|
|
4
|
-
type BucketDescriptor,
|
|
5
4
|
type BucketFileOptions,
|
|
6
|
-
|
|
5
|
+
type BucketPrimitive,
|
|
6
|
+
} from "./primitives/$bucket.ts";
|
|
7
7
|
import { FileStorageProvider } from "./providers/FileStorageProvider.ts";
|
|
8
8
|
import { LocalFileStorageProvider } from "./providers/LocalFileStorageProvider.ts";
|
|
9
9
|
import { MemoryFileStorageProvider } from "./providers/MemoryFileStorageProvider.ts";
|
|
10
10
|
|
|
11
11
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
12
12
|
|
|
13
|
-
export * from "./descriptors/$bucket.ts";
|
|
14
13
|
export * from "./errors/FileNotFoundError.ts";
|
|
14
|
+
export * from "./primitives/$bucket.ts";
|
|
15
15
|
export * from "./providers/FileStorageProvider.ts";
|
|
16
16
|
export * from "./providers/LocalFileStorageProvider.ts";
|
|
17
17
|
export * from "./providers/MemoryFileStorageProvider.ts";
|
|
@@ -27,7 +27,7 @@ declare module "alepha" {
|
|
|
27
27
|
"bucket:file:uploaded": {
|
|
28
28
|
id: string;
|
|
29
29
|
file: FileLike;
|
|
30
|
-
bucket:
|
|
30
|
+
bucket: BucketPrimitive;
|
|
31
31
|
options: BucketFileOptions;
|
|
32
32
|
};
|
|
33
33
|
/**
|
|
@@ -35,7 +35,7 @@ declare module "alepha" {
|
|
|
35
35
|
*/
|
|
36
36
|
"bucket:file:deleted": {
|
|
37
37
|
id: string;
|
|
38
|
-
bucket:
|
|
38
|
+
bucket: BucketPrimitive;
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -43,9 +43,9 @@ declare module "alepha" {
|
|
|
43
43
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
44
44
|
|
|
45
45
|
/**
|
|
46
|
-
* Provides file storage capabilities through declarative bucket
|
|
46
|
+
* Provides file storage capabilities through declarative bucket primitives with support for multiple storage backends.
|
|
47
47
|
*
|
|
48
|
-
* The bucket module enables unified file operations across different storage systems using the `$bucket`
|
|
48
|
+
* The bucket module enables unified file operations across different storage systems using the `$bucket` primitive
|
|
49
49
|
* on class properties. It abstracts storage provider differences, offering consistent APIs for local filesystem,
|
|
50
50
|
* cloud storage, or in-memory storage for testing environments.
|
|
51
51
|
*
|
|
@@ -55,7 +55,7 @@ declare module "alepha" {
|
|
|
55
55
|
*/
|
|
56
56
|
export const AlephaBucket = $module({
|
|
57
57
|
name: "alepha.bucket",
|
|
58
|
-
|
|
58
|
+
primitives: [$bucket],
|
|
59
59
|
services: [
|
|
60
60
|
FileStorageProvider,
|
|
61
61
|
MemoryFileStorageProvider,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$inject,
|
|
3
|
-
|
|
4
|
-
Descriptor,
|
|
3
|
+
createPrimitive,
|
|
5
4
|
type FileLike,
|
|
6
5
|
KIND,
|
|
6
|
+
Primitive,
|
|
7
7
|
type Service,
|
|
8
8
|
} from "alepha";
|
|
9
9
|
import { FileSystemProvider } from "alepha/file";
|
|
@@ -12,7 +12,7 @@ import { FileStorageProvider } from "../providers/FileStorageProvider.ts";
|
|
|
12
12
|
import { MemoryFileStorageProvider } from "../providers/MemoryFileStorageProvider.ts";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
* Creates a bucket
|
|
15
|
+
* Creates a bucket primitive for file storage and management with configurable validation.
|
|
16
16
|
*
|
|
17
17
|
* Provides a comprehensive file storage system that handles uploads, downloads, validation,
|
|
18
18
|
* and management across multiple storage backends with MIME type and size limit controls.
|
|
@@ -60,10 +60,10 @@ import { MemoryFileStorageProvider } from "../providers/MemoryFileStorageProvide
|
|
|
60
60
|
* }
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
|
-
export const $bucket = (options:
|
|
64
|
-
|
|
63
|
+
export const $bucket = (options: BucketPrimitiveOptions) =>
|
|
64
|
+
createPrimitive(BucketPrimitive, options);
|
|
65
65
|
|
|
66
|
-
export interface
|
|
66
|
+
export interface BucketPrimitiveOptions extends BucketFileOptions {
|
|
67
67
|
/**
|
|
68
68
|
* File storage provider configuration for the bucket.
|
|
69
69
|
*
|
|
@@ -204,7 +204,7 @@ export interface BucketFileOptions {
|
|
|
204
204
|
|
|
205
205
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
206
206
|
|
|
207
|
-
export class
|
|
207
|
+
export class BucketPrimitive extends Primitive<BucketPrimitiveOptions> {
|
|
208
208
|
public readonly provider = this.$provider();
|
|
209
209
|
private readonly fileSystem = $inject(FileSystemProvider);
|
|
210
210
|
|
|
@@ -302,7 +302,7 @@ export class BucketDescriptor extends Descriptor<BucketDescriptorOptions> {
|
|
|
302
302
|
}
|
|
303
303
|
}
|
|
304
304
|
|
|
305
|
-
$bucket[KIND] =
|
|
305
|
+
$bucket[KIND] = BucketPrimitive;
|
|
306
306
|
|
|
307
307
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
308
308
|
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
} from "alepha";
|
|
18
18
|
import { FileDetector, FileSystemProvider } from "alepha/file";
|
|
19
19
|
import { $logger } from "alepha/logger";
|
|
20
|
-
import { $bucket } from "../descriptors/$bucket.ts";
|
|
21
20
|
import { FileNotFoundError } from "../errors/FileNotFoundError.ts";
|
|
21
|
+
import { $bucket } from "../primitives/$bucket.ts";
|
|
22
22
|
import type { FileStorageProvider } from "./FileStorageProvider.ts";
|
|
23
23
|
|
|
24
24
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -68,7 +68,7 @@ export class LocalFileStorageProvider implements FileStorageProvider {
|
|
|
68
68
|
this.alepha.isTest() &&
|
|
69
69
|
this.storagePath === localFileStorageOptions.options.default.storagePath
|
|
70
70
|
) {
|
|
71
|
-
this.alepha.
|
|
71
|
+
this.alepha.store.set(localFileStorageOptions, {
|
|
72
72
|
storagePath: join(tmpdir(), `alepha-test-${Date.now()}`),
|
|
73
73
|
});
|
|
74
74
|
}
|
|
@@ -82,7 +82,7 @@ export class LocalFileStorageProvider implements FileStorageProvider {
|
|
|
82
82
|
await mkdir(this.storagePath, { recursive: true });
|
|
83
83
|
} catch {}
|
|
84
84
|
|
|
85
|
-
for (const bucket of this.alepha.
|
|
85
|
+
for (const bucket of this.alepha.primitives($bucket)) {
|
|
86
86
|
if (bucket.provider !== this) {
|
|
87
87
|
continue;
|
|
88
88
|
}
|
package/src/cache/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $cache } from "./
|
|
2
|
+
import { $cache } from "./primitives/$cache.ts";
|
|
3
3
|
import { CacheProvider } from "./providers/CacheProvider.ts";
|
|
4
4
|
import { MemoryCacheProvider } from "./providers/MemoryCacheProvider.ts";
|
|
5
5
|
|
|
6
6
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
7
7
|
|
|
8
|
-
export * from "./
|
|
8
|
+
export * from "./primitives/$cache.ts";
|
|
9
9
|
export * from "./providers/CacheProvider.ts";
|
|
10
10
|
export * from "./providers/MemoryCacheProvider.ts";
|
|
11
11
|
|
|
@@ -14,7 +14,7 @@ export * from "./providers/MemoryCacheProvider.ts";
|
|
|
14
14
|
/**
|
|
15
15
|
* Provides high-performance caching capabilities for Alepha applications with configurable TTL and multiple storage backends.
|
|
16
16
|
*
|
|
17
|
-
* The cache module enables declarative caching through the `$cache`
|
|
17
|
+
* The cache module enables declarative caching through the `$cache` primitive, allowing you to cache method results,
|
|
18
18
|
* API responses, or computed values with automatic invalidation and type safety. It supports both in-memory and
|
|
19
19
|
* persistent storage backends for different performance and durability requirements.
|
|
20
20
|
*
|
|
@@ -24,7 +24,7 @@ export * from "./providers/MemoryCacheProvider.ts";
|
|
|
24
24
|
*/
|
|
25
25
|
export const AlephaCache = $module({
|
|
26
26
|
name: "alepha.cache",
|
|
27
|
-
|
|
27
|
+
primitives: [$cache],
|
|
28
28
|
services: [CacheProvider, MemoryCacheProvider],
|
|
29
29
|
register: (alepha) =>
|
|
30
30
|
alepha.with({
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$env,
|
|
3
3
|
$inject,
|
|
4
|
-
|
|
5
|
-
Descriptor,
|
|
4
|
+
createPrimitive,
|
|
6
5
|
type InstantiableClass,
|
|
7
6
|
KIND,
|
|
7
|
+
Primitive,
|
|
8
8
|
t,
|
|
9
9
|
} from "alepha";
|
|
10
10
|
import { DateTimeProvider, type DurationLike } from "alepha/datetime";
|
|
@@ -13,7 +13,7 @@ import { CacheProvider } from "../providers/CacheProvider.ts";
|
|
|
13
13
|
import { MemoryCacheProvider } from "../providers/MemoryCacheProvider.ts";
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* Creates a cache
|
|
16
|
+
* Creates a cache primitive for high-performance data caching with automatic management.
|
|
17
17
|
*
|
|
18
18
|
* Provides a caching layer that improves application performance by storing frequently accessed
|
|
19
19
|
* data in memory or external stores like Redis, with support for both function result caching
|
|
@@ -61,14 +61,14 @@ import { MemoryCacheProvider } from "../providers/MemoryCacheProvider.ts";
|
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
63
|
export const $cache = <TReturn = string, TParameter extends any[] = any[]>(
|
|
64
|
-
options:
|
|
65
|
-
):
|
|
66
|
-
const instance =
|
|
67
|
-
|
|
64
|
+
options: CachePrimitiveOptions<TReturn, TParameter> = {},
|
|
65
|
+
): CachePrimitiveFn<TReturn, TParameter> => {
|
|
66
|
+
const instance = createPrimitive(
|
|
67
|
+
CachePrimitive<TReturn, TParameter>,
|
|
68
68
|
options,
|
|
69
69
|
);
|
|
70
70
|
const fn = (...args: TParameter): Promise<TReturn> => instance.run(...args);
|
|
71
|
-
return Object.setPrototypeOf(fn, instance) as
|
|
71
|
+
return Object.setPrototypeOf(fn, instance) as CachePrimitiveFn<
|
|
72
72
|
TReturn,
|
|
73
73
|
TParameter
|
|
74
74
|
>;
|
|
@@ -76,7 +76,7 @@ export const $cache = <TReturn = string, TParameter extends any[] = any[]>(
|
|
|
76
76
|
|
|
77
77
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
78
78
|
|
|
79
|
-
export interface
|
|
79
|
+
export interface CachePrimitiveOptions<
|
|
80
80
|
TReturn = any,
|
|
81
81
|
TParameter extends any[] = any[],
|
|
82
82
|
> {
|
|
@@ -130,10 +130,10 @@ const envSchema = t.object({
|
|
|
130
130
|
}),
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
-
export class
|
|
133
|
+
export class CachePrimitive<
|
|
134
134
|
TReturn = any,
|
|
135
135
|
TParameter extends any[] = any[],
|
|
136
|
-
> extends
|
|
136
|
+
> extends Primitive<CachePrimitiveOptions<TReturn, TParameter>> {
|
|
137
137
|
protected readonly env = $env(envSchema);
|
|
138
138
|
protected readonly dateTimeProvider = $inject(DateTimeProvider);
|
|
139
139
|
protected readonly provider = this.$provider();
|
|
@@ -277,14 +277,14 @@ export class CacheDescriptor<
|
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
export interface
|
|
280
|
+
export interface CachePrimitiveFn<
|
|
281
281
|
TReturn = any,
|
|
282
282
|
TParameter extends any[] = any[],
|
|
283
|
-
> extends
|
|
283
|
+
> extends CachePrimitive<TReturn, TParameter> {
|
|
284
284
|
/**
|
|
285
|
-
* Run the cache
|
|
285
|
+
* Run the cache primitive with the provided arguments.
|
|
286
286
|
*/
|
|
287
287
|
(...args: TParameter): Promise<TReturn>;
|
|
288
288
|
}
|
|
289
289
|
|
|
290
|
-
$cache[KIND] =
|
|
290
|
+
$cache[KIND] = CachePrimitive;
|
|
@@ -9,6 +9,7 @@ import type { InlineConfig } from "tsdown";
|
|
|
9
9
|
interface Module {
|
|
10
10
|
name: string;
|
|
11
11
|
dependencies: string[];
|
|
12
|
+
native?: boolean;
|
|
12
13
|
browser?: boolean;
|
|
13
14
|
node?: boolean;
|
|
14
15
|
}
|
|
@@ -34,25 +35,35 @@ export class AlephaPackageBuilderCli {
|
|
|
34
35
|
});
|
|
35
36
|
|
|
36
37
|
pkgData.exports = {};
|
|
38
|
+
|
|
37
39
|
for (const item of modules) {
|
|
38
40
|
const path =
|
|
39
41
|
item.name === "core" ? "." : `./${item.name.replace("-", "/")}`;
|
|
40
42
|
pkgData.exports[path] = {};
|
|
41
43
|
// order is important here for compatibility
|
|
42
44
|
pkgData.exports[path].types = `./src/${item.name}/index.ts`;
|
|
45
|
+
if (item.native) {
|
|
46
|
+
pkgData.exports[path]["react-native"] =
|
|
47
|
+
`./src/${item.name}/index.native.ts`;
|
|
48
|
+
} else if (item.browser) {
|
|
49
|
+
pkgData.exports[path]["react-native"] =
|
|
50
|
+
`./src/${item.name}/index.browser.ts`;
|
|
51
|
+
}
|
|
43
52
|
if (item.browser) {
|
|
44
53
|
pkgData.exports[path].browser = `./src/${item.name}/index.browser.ts`;
|
|
45
54
|
}
|
|
46
55
|
pkgData.exports[path].import = `./src/${item.name}/index.ts`;
|
|
47
|
-
pkgData.exports[path].require = `./src/${item.name}/index.ts`;
|
|
48
56
|
}
|
|
57
|
+
|
|
49
58
|
if (packageName === "alepha") {
|
|
50
59
|
pkgData.exports["./tsconfig.base"] = "./tsconfig.base.json";
|
|
51
60
|
pkgData.exports["./package.json"] = "./package.json";
|
|
52
61
|
}
|
|
62
|
+
|
|
53
63
|
if (packageName === "@alepha/ui") {
|
|
54
64
|
pkgData.exports["./styles"] = "./styles.css";
|
|
55
65
|
}
|
|
66
|
+
|
|
56
67
|
await this.fs.writeFile("package.json", JSON.stringify(pkgData, null, 2));
|
|
57
68
|
|
|
58
69
|
const tmpDir = join(root, "node_modules/.alepha");
|
|
@@ -65,7 +76,10 @@ export class AlephaPackageBuilderCli {
|
|
|
65
76
|
|
|
66
77
|
const external = [
|
|
67
78
|
"alepha",
|
|
68
|
-
|
|
79
|
+
packageName,
|
|
80
|
+
...modules.map(
|
|
81
|
+
(item) => `${packageName}/${item.name.replace("-", "/")}`,
|
|
82
|
+
),
|
|
69
83
|
];
|
|
70
84
|
|
|
71
85
|
await run.rm(this.dist);
|
|
@@ -78,13 +92,24 @@ export class AlephaPackageBuilderCli {
|
|
|
78
92
|
entries.push({
|
|
79
93
|
entry: join(src, "index.ts"),
|
|
80
94
|
outDir: dest,
|
|
81
|
-
format: ["esm"
|
|
95
|
+
format: ["esm"],
|
|
82
96
|
sourcemap: true,
|
|
83
97
|
fixedExtension: false,
|
|
84
98
|
platform: "node", // TODO: node must be enabled only if index.node.ts exists
|
|
85
99
|
external,
|
|
86
100
|
});
|
|
87
101
|
|
|
102
|
+
if (item.native) {
|
|
103
|
+
entries.push({
|
|
104
|
+
entry: join(src, "index.native.ts"),
|
|
105
|
+
outDir: dest,
|
|
106
|
+
platform: "neutral",
|
|
107
|
+
sourcemap: true,
|
|
108
|
+
dts: false,
|
|
109
|
+
external,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
88
113
|
if (item.browser) {
|
|
89
114
|
entries.push({
|
|
90
115
|
entry: join(src, "index.browser.ts"),
|
|
@@ -239,6 +264,7 @@ export async function analyzeModules(
|
|
|
239
264
|
|
|
240
265
|
// Check for browser/node entry points
|
|
241
266
|
const hasBrowser = await fileExists(join(modulePath, "index.browser.ts"));
|
|
267
|
+
const hasNative = await fileExists(join(modulePath, "index.native.ts"));
|
|
242
268
|
const hasNode = await fileExists(join(modulePath, "index.node.ts"));
|
|
243
269
|
|
|
244
270
|
// Get all .ts/.tsx files in this module
|
|
@@ -271,6 +297,7 @@ export async function analyzeModules(
|
|
|
271
297
|
dependencies: Array.from(dependencies),
|
|
272
298
|
};
|
|
273
299
|
|
|
300
|
+
if (hasNative) module.native = true;
|
|
274
301
|
if (hasBrowser) module.browser = true;
|
|
275
302
|
if (hasNode) module.node = true;
|
|
276
303
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const indexHtml = (
|
|
2
|
-
browserEntry: string
|
|
2
|
+
browserEntry: string,
|
|
3
3
|
) => `
|
|
4
4
|
<!DOCTYPE html>
|
|
5
5
|
<html lang="en">
|
|
@@ -8,6 +8,7 @@ export const indexHtml = (
|
|
|
8
8
|
<title>App</title>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
|
+
<div id="root"></div>
|
|
11
12
|
<script type="module" src="${browserEntry}"></script>
|
|
12
13
|
</body>
|
|
13
14
|
</html>
|