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
package/src/core/Alepha.ts
CHANGED
|
@@ -2,13 +2,11 @@ import type { Static, TObject } from "typebox";
|
|
|
2
2
|
import { KIND } from "./constants/KIND.ts";
|
|
3
3
|
import { MODULE } from "./constants/MODULE.ts";
|
|
4
4
|
import { OPTIONS } from "./constants/OPTIONS.ts";
|
|
5
|
-
import type { InjectOptions } from "./descriptors/$inject.ts";
|
|
6
|
-
import { Module, type WithModule } from "./descriptors/$module.ts";
|
|
7
5
|
import { AlephaError } from "./errors/AlephaError.ts";
|
|
8
6
|
import { CircularDependencyError } from "./errors/CircularDependencyError.ts";
|
|
9
7
|
import { ContainerLockedError } from "./errors/ContainerLockedError.ts";
|
|
10
8
|
import { TooLateSubstitutionError } from "./errors/TooLateSubstitutionError.ts";
|
|
11
|
-
import {
|
|
9
|
+
import { Primitive } from "./helpers/primitive.ts";
|
|
12
10
|
import { __alephaRef } from "./helpers/ref.ts";
|
|
13
11
|
import type { Async } from "./interfaces/Async.ts";
|
|
14
12
|
import type { LoggerInterface } from "./interfaces/LoggerInterface.ts";
|
|
@@ -19,6 +17,8 @@ import {
|
|
|
19
17
|
type Service,
|
|
20
18
|
type ServiceEntry,
|
|
21
19
|
} from "./interfaces/Service.ts";
|
|
20
|
+
import type { InjectOptions } from "./primitives/$inject.ts";
|
|
21
|
+
import { Module, type WithModule } from "./primitives/$module.ts";
|
|
22
22
|
import { AlsProvider } from "./providers/AlsProvider.ts";
|
|
23
23
|
import { CodecManager } from "./providers/CodecManager.ts";
|
|
24
24
|
import { EventManager } from "./providers/EventManager.ts";
|
|
@@ -82,7 +82,7 @@ import type { TSchema } from "./providers/TypeProvider.ts";
|
|
|
82
82
|
* // You can access the environment variables using alepha.env
|
|
83
83
|
* console.log(alepha.env.MY_VAR); // "value"
|
|
84
84
|
*
|
|
85
|
-
* // But you should use $env()
|
|
85
|
+
* // But you should use $env() primitive to get typed values from the environment.
|
|
86
86
|
* class App {
|
|
87
87
|
* env = $env(
|
|
88
88
|
* t.object({
|
|
@@ -95,7 +95,7 @@ import type { TSchema } from "./providers/TypeProvider.ts";
|
|
|
95
95
|
* ### Modules
|
|
96
96
|
*
|
|
97
97
|
* Modules are a way to group services together.
|
|
98
|
-
* You can register a module using the `$module`
|
|
98
|
+
* You can register a module using the `$module` primitive.
|
|
99
99
|
*
|
|
100
100
|
* ```ts
|
|
101
101
|
* import { $module } from "alepha";
|
|
@@ -113,7 +113,7 @@ import type { TSchema } from "./providers/TypeProvider.ts";
|
|
|
113
113
|
* ### Hooks
|
|
114
114
|
*
|
|
115
115
|
* Hooks are a way to run async functions from all registered providers/services.
|
|
116
|
-
* You can register a hook using the `$hook`
|
|
116
|
+
* You can register a hook using the `$hook` primitive.
|
|
117
117
|
*
|
|
118
118
|
* ```ts
|
|
119
119
|
* import { $hook } from "alepha";
|
|
@@ -187,7 +187,7 @@ export class Alepha {
|
|
|
187
187
|
// ignore
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
alepha.
|
|
190
|
+
alepha.store
|
|
191
191
|
.set("alepha.test.beforeAll", beforeAll)
|
|
192
192
|
.set("alepha.test.afterAll", afterAll)
|
|
193
193
|
.set("alepha.test.afterEach", afterEach)
|
|
@@ -257,12 +257,9 @@ export class Alepha {
|
|
|
257
257
|
protected substitutions = new Map<Service, { use: Service }>();
|
|
258
258
|
|
|
259
259
|
/**
|
|
260
|
-
* Registry of
|
|
260
|
+
* Registry of primitives.
|
|
261
261
|
*/
|
|
262
|
-
protected
|
|
263
|
-
Service<Descriptor>,
|
|
264
|
-
Array<Descriptor>
|
|
265
|
-
>();
|
|
262
|
+
protected primitiveRegistry = new Map<Service<Primitive>, Array<Primitive>>();
|
|
266
263
|
|
|
267
264
|
/**
|
|
268
265
|
* List of all services + how they are provided.
|
|
@@ -294,7 +291,7 @@ export class Alepha {
|
|
|
294
291
|
/**
|
|
295
292
|
* State manager to store arbitrary values.
|
|
296
293
|
*/
|
|
297
|
-
public get
|
|
294
|
+
public get store(): StateManager<State> {
|
|
298
295
|
this.events; // ensure events is initialized first (TODO: move this to constructor?)
|
|
299
296
|
return this.inject(StateManager, {
|
|
300
297
|
args: [this.init],
|
|
@@ -314,14 +311,14 @@ export class Alepha {
|
|
|
314
311
|
* Get logger instance.
|
|
315
312
|
*/
|
|
316
313
|
public get log(): LoggerInterface | undefined {
|
|
317
|
-
return this.
|
|
314
|
+
return this.store.get("alepha.logger");
|
|
318
315
|
}
|
|
319
316
|
|
|
320
317
|
/**
|
|
321
318
|
* The environment variables for the App.
|
|
322
319
|
*/
|
|
323
320
|
public get env(): Readonly<Env> {
|
|
324
|
-
return this.
|
|
321
|
+
return this.store.get("env") ?? {};
|
|
325
322
|
}
|
|
326
323
|
|
|
327
324
|
constructor(init: Partial<State> = {}) {
|
|
@@ -442,7 +439,7 @@ export class Alepha {
|
|
|
442
439
|
* Starts the App.
|
|
443
440
|
*
|
|
444
441
|
* - Lock any further changes to the container.
|
|
445
|
-
* - Run "configure" hook for all services.
|
|
442
|
+
* - Run "configure" hook for all services. Primitives will be processed.
|
|
446
443
|
* - Run "start" hook for all services. Providers will connect/listen/...
|
|
447
444
|
* - Run "ready" hook for all services. This is the point where the App is ready to serve requests.
|
|
448
445
|
*
|
|
@@ -472,10 +469,10 @@ export class Alepha {
|
|
|
472
469
|
this.inject(key);
|
|
473
470
|
}
|
|
474
471
|
|
|
475
|
-
const target = this.
|
|
472
|
+
const target = this.store.get("alepha.target");
|
|
476
473
|
if (target) {
|
|
477
474
|
this.registry = new Map();
|
|
478
|
-
this.
|
|
475
|
+
this.primitiveRegistry = new Map();
|
|
479
476
|
this.with(target);
|
|
480
477
|
}
|
|
481
478
|
|
|
@@ -878,28 +875,28 @@ export class Alepha {
|
|
|
878
875
|
}
|
|
879
876
|
|
|
880
877
|
/**
|
|
881
|
-
* Get all
|
|
878
|
+
* Get all primitives of the specified type.
|
|
882
879
|
*/
|
|
883
|
-
public
|
|
880
|
+
public primitives<TPrimitive extends Primitive>(
|
|
884
881
|
factory:
|
|
885
882
|
| {
|
|
886
|
-
[KIND]: InstantiableClass<
|
|
883
|
+
[KIND]: InstantiableClass<TPrimitive>;
|
|
887
884
|
}
|
|
888
885
|
| string,
|
|
889
|
-
): Array<
|
|
886
|
+
): Array<TPrimitive> {
|
|
890
887
|
if (typeof factory === "string") {
|
|
891
888
|
const key1 = factory.toLowerCase().replace("$", "");
|
|
892
|
-
const key2 = `${key1}
|
|
893
|
-
for (const [key, value] of this.
|
|
889
|
+
const key2 = `${key1}primitive`;
|
|
890
|
+
for (const [key, value] of this.primitiveRegistry.entries()) {
|
|
894
891
|
const name = key.name.toLowerCase();
|
|
895
892
|
if (name === key1 || name === key2) {
|
|
896
|
-
return value as Array<
|
|
893
|
+
return value as Array<TPrimitive>;
|
|
897
894
|
}
|
|
898
895
|
}
|
|
899
896
|
return [];
|
|
900
897
|
}
|
|
901
|
-
return (this.
|
|
902
|
-
[]) as Array<
|
|
898
|
+
return (this.primitiveRegistry.get(factory[KIND]) ??
|
|
899
|
+
[]) as Array<TPrimitive>;
|
|
903
900
|
}
|
|
904
901
|
|
|
905
902
|
// -------------------------------------------------------------------------------------------------------------------
|
|
@@ -922,8 +919,8 @@ export class Alepha {
|
|
|
922
919
|
|
|
923
920
|
const obj = instance as unknown as Record<string, any>;
|
|
924
921
|
for (const [key, value] of Object.entries(obj)) {
|
|
925
|
-
if (value instanceof
|
|
926
|
-
this.
|
|
922
|
+
if (value instanceof Primitive) {
|
|
923
|
+
this.processPrimitive(value, key);
|
|
927
924
|
}
|
|
928
925
|
if (
|
|
929
926
|
typeof value === "object" &&
|
|
@@ -933,7 +930,7 @@ export class Alepha {
|
|
|
933
930
|
) {
|
|
934
931
|
const getter = value[OPTIONS].getter as keyof State;
|
|
935
932
|
Object.defineProperty(obj, key, {
|
|
936
|
-
get: () => this.
|
|
933
|
+
get: () => this.store.get(getter),
|
|
937
934
|
});
|
|
938
935
|
}
|
|
939
936
|
}
|
|
@@ -951,13 +948,13 @@ export class Alepha {
|
|
|
951
948
|
return instance;
|
|
952
949
|
}
|
|
953
950
|
|
|
954
|
-
protected
|
|
951
|
+
protected processPrimitive(value: Primitive, propertyKey = "") {
|
|
955
952
|
value.config.propertyKey = propertyKey;
|
|
956
953
|
(value as any).onInit();
|
|
957
954
|
|
|
958
955
|
const kind = value.constructor as Service;
|
|
959
|
-
const list = this.
|
|
960
|
-
this.
|
|
956
|
+
const list = this.primitiveRegistry.get(kind) ?? [];
|
|
957
|
+
this.primitiveRegistry.set(kind, [...list, value]);
|
|
961
958
|
}
|
|
962
959
|
}
|
|
963
960
|
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { Alepha } from "../Alepha.ts";
|
|
2
2
|
import { KIND } from "../constants/KIND.ts";
|
|
3
3
|
import { MODULE } from "../constants/MODULE.ts";
|
|
4
|
-
import { $context } from "../descriptors/$context.ts";
|
|
5
4
|
import type { InstantiableClass, Service } from "../interfaces/Service.ts";
|
|
5
|
+
import { $context } from "../primitives/$context.ts";
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface PrimitiveArgs<T extends object = {}> {
|
|
10
10
|
options: T;
|
|
11
11
|
alepha: Alepha;
|
|
12
12
|
service: InstantiableClass<Service>;
|
|
13
13
|
module?: Service;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface PrimitiveConfig {
|
|
17
17
|
propertyKey: string;
|
|
18
18
|
service: InstantiableClass<Service>;
|
|
19
19
|
module?: Service;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export abstract class
|
|
22
|
+
export abstract class Primitive<T extends object = {}> {
|
|
23
23
|
protected readonly alepha: Alepha;
|
|
24
24
|
|
|
25
25
|
public readonly options: T;
|
|
26
|
-
public readonly config:
|
|
26
|
+
public readonly config: PrimitiveConfig;
|
|
27
27
|
|
|
28
|
-
constructor(args:
|
|
28
|
+
constructor(args: PrimitiveArgs<T>) {
|
|
29
29
|
this.alepha = args.alepha;
|
|
30
30
|
this.options = args.options;
|
|
31
31
|
this.config = {
|
|
@@ -36,7 +36,7 @@ export abstract class Descriptor<T extends object = {}> {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
* Called automatically by Alepha after the
|
|
39
|
+
* Called automatically by Alepha after the primitive is created.
|
|
40
40
|
*/
|
|
41
41
|
protected onInit(): void {
|
|
42
42
|
// this method can be overridden by subclasses to perform initialization logic.
|
|
@@ -47,27 +47,27 @@ export abstract class Descriptor<T extends object = {}> {
|
|
|
47
47
|
|
|
48
48
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
49
49
|
|
|
50
|
-
export type
|
|
51
|
-
(options:
|
|
52
|
-
[KIND]: InstantiableClass<
|
|
50
|
+
export type PrimitiveFactory<TPrimitive extends Primitive = Primitive> = {
|
|
51
|
+
(options: TPrimitive["options"]): TPrimitive;
|
|
52
|
+
[KIND]: InstantiableClass<TPrimitive>;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export type
|
|
55
|
+
export type PrimitiveFactoryLike<T extends object = any> = {
|
|
56
56
|
(options: T): any;
|
|
57
57
|
[KIND]: any;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
export const
|
|
61
|
-
|
|
62
|
-
options:
|
|
63
|
-
):
|
|
60
|
+
export const createPrimitive = <TPrimitive extends Primitive>(
|
|
61
|
+
primitive: InstantiableClass<TPrimitive> & { [MODULE]?: Service },
|
|
62
|
+
options: TPrimitive["options"],
|
|
63
|
+
): TPrimitive => {
|
|
64
64
|
const { alepha, service } = $context();
|
|
65
65
|
|
|
66
|
-
if (MODULE in
|
|
67
|
-
alepha.with(
|
|
66
|
+
if (MODULE in primitive && primitive[MODULE]) {
|
|
67
|
+
alepha.with(primitive[MODULE]);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
return alepha.inject(
|
|
70
|
+
return alepha.inject(primitive, {
|
|
71
71
|
lifetime: "transient",
|
|
72
72
|
args: [
|
|
73
73
|
{
|
package/src/core/helpers/ref.ts
CHANGED
|
@@ -18,7 +18,7 @@ export const __alephaRef: {
|
|
|
18
18
|
/**
|
|
19
19
|
* Note:
|
|
20
20
|
*
|
|
21
|
-
* This file is used to share context between $
|
|
21
|
+
* This file is used to share context between $primitives and the Alepha core during the injection phase.
|
|
22
22
|
*
|
|
23
23
|
* There is no side effect as long as Alepha is not used concurrently in multiple contexts (which is not the case).
|
|
24
24
|
*
|
package/src/core/index.shared.ts
CHANGED
|
@@ -3,13 +3,6 @@
|
|
|
3
3
|
export * from "./Alepha.ts";
|
|
4
4
|
export * from "./constants/KIND.ts";
|
|
5
5
|
export * from "./constants/OPTIONS.ts";
|
|
6
|
-
export * from "./descriptors/$atom.ts";
|
|
7
|
-
export * from "./descriptors/$context.ts";
|
|
8
|
-
export * from "./descriptors/$env.ts";
|
|
9
|
-
export * from "./descriptors/$hook.ts";
|
|
10
|
-
export * from "./descriptors/$inject.ts";
|
|
11
|
-
export * from "./descriptors/$module.ts";
|
|
12
|
-
export * from "./descriptors/$use.ts";
|
|
13
6
|
export * from "./errors/AlephaError.ts";
|
|
14
7
|
export * from "./errors/AppNotStartedError.ts";
|
|
15
8
|
export * from "./errors/CircularDependencyError.ts";
|
|
@@ -17,12 +10,19 @@ export * from "./errors/ContainerLockedError.ts";
|
|
|
17
10
|
export * from "./errors/TooLateSubstitutionError.ts";
|
|
18
11
|
export * from "./errors/TypeBoxError.ts";
|
|
19
12
|
export * from "./helpers/createPagination.ts";
|
|
20
|
-
export * from "./helpers/descriptor.ts";
|
|
21
13
|
export * from "./helpers/FileLike.ts";
|
|
14
|
+
export * from "./helpers/primitive.ts";
|
|
22
15
|
export * from "./interfaces/Async.ts";
|
|
23
16
|
export * from "./interfaces/LoggerInterface.ts";
|
|
24
17
|
export * from "./interfaces/Pagination.ts";
|
|
25
18
|
export * from "./interfaces/Service.ts";
|
|
19
|
+
export * from "./primitives/$atom.ts";
|
|
20
|
+
export * from "./primitives/$context.ts";
|
|
21
|
+
export * from "./primitives/$env.ts";
|
|
22
|
+
export * from "./primitives/$hook.ts";
|
|
23
|
+
export * from "./primitives/$inject.ts";
|
|
24
|
+
export * from "./primitives/$module.ts";
|
|
25
|
+
export * from "./primitives/$use.ts";
|
|
26
26
|
export * from "./providers/AlsProvider.ts";
|
|
27
27
|
export * from "./providers/CodecManager.ts";
|
|
28
28
|
export * from "./providers/EventManager.ts";
|
|
@@ -7,7 +7,7 @@ import type { Service } from "../interfaces/Service.ts";
|
|
|
7
7
|
/**
|
|
8
8
|
* Get Alepha instance and current service from the current context.
|
|
9
9
|
*
|
|
10
|
-
* It can only be used inside $
|
|
10
|
+
* It can only be used inside $primitive functions.
|
|
11
11
|
*
|
|
12
12
|
* ```ts
|
|
13
13
|
* import { $context } from "alepha";
|
|
@@ -16,7 +16,7 @@ import type { Service } from "../interfaces/Service.ts";
|
|
|
16
16
|
* const { alepha, service, module } = $context();
|
|
17
17
|
*
|
|
18
18
|
* // alepha - alepha instance
|
|
19
|
-
* // service - class which is creating this
|
|
19
|
+
* // service - class which is creating this primitive, this is NOT the instance but the service definition
|
|
20
20
|
* // module - module definition, if any
|
|
21
21
|
*
|
|
22
22
|
* return {};
|
|
@@ -31,7 +31,7 @@ import type { Service } from "../interfaces/Service.ts";
|
|
|
31
31
|
*
|
|
32
32
|
* @internal
|
|
33
33
|
*/
|
|
34
|
-
export const $context = ():
|
|
34
|
+
export const $context = (): ContextPrimitive => {
|
|
35
35
|
if (!__alephaRef.alepha) {
|
|
36
36
|
throw new MissingContextError();
|
|
37
37
|
}
|
|
@@ -45,13 +45,13 @@ export const $context = (): ContextDescriptor => {
|
|
|
45
45
|
|
|
46
46
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
47
47
|
|
|
48
|
-
export interface
|
|
48
|
+
export interface ContextPrimitive {
|
|
49
49
|
/**
|
|
50
50
|
* Alepha instance.
|
|
51
51
|
*/
|
|
52
52
|
alepha: Alepha;
|
|
53
53
|
/**
|
|
54
|
-
* Service definition which is creating this
|
|
54
|
+
* Service definition which is creating this primitive.
|
|
55
55
|
* This is NOT the instance but the service definition.
|
|
56
56
|
*/
|
|
57
57
|
service?: Service;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Hooks } from "../Alepha.ts";
|
|
2
2
|
import { KIND } from "../constants/KIND.ts";
|
|
3
|
-
import {
|
|
3
|
+
import { createPrimitive, Primitive } from "../helpers/primitive.ts";
|
|
4
4
|
import type { Async } from "../interfaces/Async.ts";
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -43,7 +43,7 @@ import type { Async } from "../interfaces/Async.ts";
|
|
|
43
43
|
*
|
|
44
44
|
*/
|
|
45
45
|
export const $hook = <T extends keyof Hooks>(options: HookOptions<T>) =>
|
|
46
|
-
|
|
46
|
+
createPrimitive(HookPrimitive<T>, options);
|
|
47
47
|
|
|
48
48
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
49
49
|
|
|
@@ -76,7 +76,7 @@ export interface HookOptions<T extends keyof Hooks> {
|
|
|
76
76
|
|
|
77
77
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
78
78
|
|
|
79
|
-
export class
|
|
79
|
+
export class HookPrimitive<T extends keyof Hooks> extends Primitive<
|
|
80
80
|
HookOptions<T>
|
|
81
81
|
> {
|
|
82
82
|
public called = 0;
|
|
@@ -93,4 +93,4 @@ export class HookDescriptor<T extends keyof Hooks> extends Descriptor<
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
$hook[KIND] =
|
|
96
|
+
$hook[KIND] = HookPrimitive;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Primitive } from "../helpers/primitive.ts";
|
|
2
2
|
import type { InstantiableClass, Service } from "../interfaces/Service.ts";
|
|
3
3
|
import { $context } from "./$context.ts";
|
|
4
4
|
|
|
@@ -30,7 +30,7 @@ export const $inject = <T extends object>(
|
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
export class
|
|
33
|
+
export class InjectPrimitive extends Primitive {}
|
|
34
34
|
|
|
35
35
|
export interface InjectOptions<T extends object = any> {
|
|
36
36
|
/**
|
|
@@ -2,11 +2,11 @@ import type { Alepha } from "../Alepha.ts";
|
|
|
2
2
|
import { KIND } from "../constants/KIND.ts";
|
|
3
3
|
import { MODULE } from "../constants/MODULE.ts";
|
|
4
4
|
import { AlephaError } from "../errors/AlephaError.ts";
|
|
5
|
-
import type {
|
|
5
|
+
import type { PrimitiveFactoryLike } from "../helpers/primitive.ts";
|
|
6
6
|
import type { Service } from "../interfaces/Service.ts";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Wrap Services and
|
|
9
|
+
* Wrap Services and Primitives into a Module.
|
|
10
10
|
*
|
|
11
11
|
* - A module is just a Service with some extra {@link Module}.
|
|
12
12
|
* - You must attach a `name` to it.
|
|
@@ -54,9 +54,9 @@ import type { Service } from "../interfaces/Service.ts";
|
|
|
54
54
|
* Meaning that if you have 100 actions, you should have at least 3 modules.
|
|
55
55
|
*/
|
|
56
56
|
export const $module = <T extends object = {}>(
|
|
57
|
-
options:
|
|
57
|
+
options: ModulePrimitiveOptions,
|
|
58
58
|
): Service<Module> => {
|
|
59
|
-
const { services = [],
|
|
59
|
+
const { services = [], primitives = [], name } = options;
|
|
60
60
|
|
|
61
61
|
// ensure name is valid
|
|
62
62
|
if (!name || !Module.NAME_REGEX.test(name)) {
|
|
@@ -94,7 +94,7 @@ export const $module = <T extends object = {}>(
|
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
for (const factory of
|
|
97
|
+
for (const factory of primitives) {
|
|
98
98
|
if (typeof factory[KIND] === "function") {
|
|
99
99
|
factory[KIND][MODULE] = $;
|
|
100
100
|
}
|
|
@@ -105,7 +105,7 @@ export const $module = <T extends object = {}>(
|
|
|
105
105
|
|
|
106
106
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
107
107
|
|
|
108
|
-
export interface
|
|
108
|
+
export interface ModulePrimitiveOptions {
|
|
109
109
|
/**
|
|
110
110
|
* Name of the module.
|
|
111
111
|
*
|
|
@@ -122,9 +122,9 @@ export interface ModuleDescriptorOptions {
|
|
|
122
122
|
services?: Array<Service>;
|
|
123
123
|
|
|
124
124
|
/**
|
|
125
|
-
* List of $
|
|
125
|
+
* List of $primitives to register in the module.
|
|
126
126
|
*/
|
|
127
|
-
|
|
127
|
+
primitives?: Array<PrimitiveFactoryLike>;
|
|
128
128
|
|
|
129
129
|
/**
|
|
130
130
|
* By default, module will register ALL services.
|
|
@@ -140,7 +140,7 @@ export interface ModuleDescriptorOptions {
|
|
|
140
140
|
* Base class for all modules.
|
|
141
141
|
*/
|
|
142
142
|
export abstract class Module {
|
|
143
|
-
public abstract readonly options:
|
|
143
|
+
public abstract readonly options: ModulePrimitiveOptions;
|
|
144
144
|
|
|
145
145
|
public abstract register(alepha: Alepha): void;
|
|
146
146
|
|
|
@@ -32,9 +32,9 @@ export const $use = <T extends TObject, N extends string>(
|
|
|
32
32
|
const { alepha } = $context();
|
|
33
33
|
|
|
34
34
|
// register atom in state if not already registered
|
|
35
|
-
alepha.
|
|
35
|
+
alepha.store.register(atom);
|
|
36
36
|
|
|
37
|
-
const init = alepha.
|
|
37
|
+
const init = alepha.store.get(atom.key as keyof State) as object;
|
|
38
38
|
|
|
39
39
|
return {
|
|
40
40
|
[OPTIONS]: { getter: atom.key }, // alepha will replace this with by a real 'get prop()'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StaticEncode, TSchema } from "typebox";
|
|
2
|
-
import { $inject } from "../descriptors/$inject.ts";
|
|
3
2
|
import { AlephaError } from "../errors/AlephaError.ts";
|
|
3
|
+
import { $inject } from "../primitives/$inject.ts";
|
|
4
4
|
import { JsonSchemaCodec } from "./JsonSchemaCodec.ts";
|
|
5
5
|
import type { SchemaCodec } from "./SchemaCodec.ts";
|
|
6
6
|
import { SchemaValidator, type ValidateOptions } from "./SchemaValidator.ts";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TSchema } from "typebox";
|
|
2
|
-
import { $inject } from "../
|
|
2
|
+
import { $inject } from "../primitives/$inject.ts";
|
|
3
3
|
import { Json } from "./Json.ts";
|
|
4
4
|
import { SchemaCodec } from "./SchemaCodec.ts";
|
|
5
5
|
import type { Static } from "./TypeProvider.ts";
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
Atom,
|
|
5
5
|
type AtomStatic,
|
|
6
6
|
type TAtomObject,
|
|
7
|
-
} from "../
|
|
8
|
-
import { $inject } from "../
|
|
7
|
+
} from "../primitives/$atom.ts";
|
|
8
|
+
import { $inject } from "../primitives/$inject.ts";
|
|
9
9
|
import { AlsProvider } from "./AlsProvider.ts";
|
|
10
10
|
import { EventManager } from "./EventManager.ts";
|
|
11
11
|
import { JsonSchemaCodec } from "./JsonSchemaCodec.ts";
|
package/src/datetime/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $interval } from "./
|
|
2
|
+
import { $interval } from "./primitives/$interval.ts";
|
|
3
3
|
import { DateTimeProvider } from "./providers/DateTimeProvider.ts";
|
|
4
4
|
|
|
5
|
-
export * from "./
|
|
5
|
+
export * from "./primitives/$interval.ts";
|
|
6
6
|
export * from "./providers/DateTimeProvider.ts";
|
|
7
7
|
|
|
8
8
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
9
9
|
|
|
10
10
|
export const AlephaDateTime = $module({
|
|
11
11
|
name: "alepha.datetime",
|
|
12
|
-
|
|
12
|
+
primitives: [$interval],
|
|
13
13
|
services: [DateTimeProvider],
|
|
14
14
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $inject,
|
|
1
|
+
import { $inject, createPrimitive, KIND, Primitive } from "alepha";
|
|
2
2
|
import {
|
|
3
3
|
DateTimeProvider,
|
|
4
4
|
type DurationLike,
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
* It uses the `setInterval` internally.
|
|
10
10
|
* It starts by default when the context starts and stops when the context stops.
|
|
11
11
|
*/
|
|
12
|
-
export const $interval = (options:
|
|
13
|
-
|
|
12
|
+
export const $interval = (options: IntervalPrimitiveOptions) =>
|
|
13
|
+
createPrimitive(IntervalPrimitive, options);
|
|
14
14
|
|
|
15
15
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
16
16
|
|
|
17
|
-
export interface
|
|
17
|
+
export interface IntervalPrimitiveOptions {
|
|
18
18
|
/**
|
|
19
19
|
* The interval handler.
|
|
20
20
|
*/
|
|
@@ -28,7 +28,7 @@ export interface IntervalDescriptorOptions {
|
|
|
28
28
|
|
|
29
29
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
30
30
|
|
|
31
|
-
export class
|
|
31
|
+
export class IntervalPrimitive extends Primitive<IntervalPrimitiveOptions> {
|
|
32
32
|
protected readonly dateTimeProvider = $inject(DateTimeProvider);
|
|
33
33
|
|
|
34
34
|
public called = 0;
|
|
@@ -41,4 +41,4 @@ export class IntervalDescriptor extends Descriptor<IntervalDescriptorOptions> {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
$interval[KIND] =
|
|
44
|
+
$interval[KIND] = IntervalPrimitive;
|
package/src/email/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $email } from "./
|
|
2
|
+
import { $email } from "./primitives/$email.ts";
|
|
3
3
|
import { EmailProvider } from "./providers/EmailProvider.ts";
|
|
4
4
|
import { LocalEmailProvider } from "./providers/LocalEmailProvider.ts";
|
|
5
5
|
import { MemoryEmailProvider } from "./providers/MemoryEmailProvider.ts";
|
|
@@ -7,8 +7,8 @@ import { NodemailerEmailProvider } from "./providers/NodemailerEmailProvider.ts"
|
|
|
7
7
|
|
|
8
8
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
9
9
|
|
|
10
|
-
export * from "./descriptors/$email.ts";
|
|
11
10
|
export * from "./errors/EmailError.ts";
|
|
11
|
+
export * from "./primitives/$email.ts";
|
|
12
12
|
export * from "./providers/EmailProvider.ts";
|
|
13
13
|
export * from "./providers/LocalEmailProvider.ts";
|
|
14
14
|
export * from "./providers/MemoryEmailProvider.ts";
|
|
@@ -38,7 +38,7 @@ declare module "alepha" {
|
|
|
38
38
|
/**
|
|
39
39
|
* Provides email sending capabilities for Alepha applications with multiple provider backends.
|
|
40
40
|
*
|
|
41
|
-
* The email module enables declarative email sending through the `$email`
|
|
41
|
+
* The email module enables declarative email sending through the `$email` primitive, allowing you to send
|
|
42
42
|
* emails through different providers: memory (for testing), local file system, or SMTP via Nodemailer.
|
|
43
43
|
* It supports HTML email content and automatic provider selection based on environment configuration.
|
|
44
44
|
*
|
|
@@ -47,7 +47,7 @@ declare module "alepha" {
|
|
|
47
47
|
*/
|
|
48
48
|
export const AlephaEmail = $module({
|
|
49
49
|
name: "alepha.email",
|
|
50
|
-
|
|
50
|
+
primitives: [$email],
|
|
51
51
|
services: [
|
|
52
52
|
EmailProvider,
|
|
53
53
|
MemoryEmailProvider,
|