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
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
type PgIdentityOptions,
|
|
28
28
|
type PgRefOptions,
|
|
29
29
|
} from "../constants/PG_SYMBOLS.ts";
|
|
30
|
-
import type {
|
|
31
|
-
import type {
|
|
30
|
+
import type { EntityPrimitive, FromSchema } from "../primitives/$entity.ts";
|
|
31
|
+
import type { SequencePrimitive } from "../primitives/$sequence.ts";
|
|
32
32
|
import { byte } from "../types/byte.ts";
|
|
33
33
|
import { schema } from "../types/schema.ts";
|
|
34
34
|
import { ModelBuilder } from "./ModelBuilder.ts";
|
|
@@ -57,7 +57,7 @@ export class PostgresModelBuilder extends ModelBuilder {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
public buildTable(
|
|
60
|
-
entity:
|
|
60
|
+
entity: EntityPrimitive<any>,
|
|
61
61
|
options: {
|
|
62
62
|
tables: Map<string, unknown>;
|
|
63
63
|
enums: Map<string, unknown>;
|
|
@@ -88,7 +88,7 @@ export class PostgresModelBuilder extends ModelBuilder {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
public buildSequence(
|
|
91
|
-
sequence:
|
|
91
|
+
sequence: SequencePrimitive,
|
|
92
92
|
options: {
|
|
93
93
|
sequences: Map<string, unknown>;
|
|
94
94
|
schema: string;
|
|
@@ -113,7 +113,7 @@ export class PostgresModelBuilder extends ModelBuilder {
|
|
|
113
113
|
* Get PostgreSQL-specific config builder for the table.
|
|
114
114
|
*/
|
|
115
115
|
protected getTableConfig(
|
|
116
|
-
entity:
|
|
116
|
+
entity: EntityPrimitive,
|
|
117
117
|
tables: Map<string, unknown>,
|
|
118
118
|
):
|
|
119
119
|
| ((
|
|
@@ -30,10 +30,6 @@ import {
|
|
|
30
30
|
PG_UPDATED_AT,
|
|
31
31
|
PG_VERSION,
|
|
32
32
|
} from "../constants/PG_SYMBOLS.ts";
|
|
33
|
-
import type {
|
|
34
|
-
EntityDescriptor,
|
|
35
|
-
SchemaToTableConfig,
|
|
36
|
-
} from "../descriptors/$entity.ts";
|
|
37
33
|
import { DbConflictError } from "../errors/DbConflictError.ts";
|
|
38
34
|
import { DbEntityNotFoundError } from "../errors/DbEntityNotFoundError.ts";
|
|
39
35
|
import { DbError } from "../errors/DbError.ts";
|
|
@@ -49,6 +45,10 @@ import type {
|
|
|
49
45
|
PgQueryWhere,
|
|
50
46
|
PgQueryWhereOrSQL,
|
|
51
47
|
} from "../interfaces/PgQueryWhere.ts";
|
|
48
|
+
import type {
|
|
49
|
+
EntityPrimitive,
|
|
50
|
+
SchemaToTableConfig,
|
|
51
|
+
} from "../primitives/$entity.ts";
|
|
52
52
|
import {
|
|
53
53
|
DatabaseProvider,
|
|
54
54
|
type SQLLike,
|
|
@@ -59,7 +59,7 @@ import { PgRelationManager } from "./PgRelationManager.ts";
|
|
|
59
59
|
import { type PgJoin, QueryManager } from "./QueryManager.ts";
|
|
60
60
|
|
|
61
61
|
export abstract class Repository<T extends TObject> {
|
|
62
|
-
public readonly entity:
|
|
62
|
+
public readonly entity: EntityPrimitive<T>;
|
|
63
63
|
public readonly provider: DatabaseProvider;
|
|
64
64
|
|
|
65
65
|
protected readonly relationManager = $inject(PgRelationManager);
|
|
@@ -67,10 +67,10 @@ export abstract class Repository<T extends TObject> {
|
|
|
67
67
|
protected readonly dateTimeProvider = $inject(DateTimeProvider);
|
|
68
68
|
protected readonly alepha = $inject(Alepha);
|
|
69
69
|
|
|
70
|
-
constructor(entity:
|
|
70
|
+
constructor(entity: EntityPrimitive<T>, provider = DatabaseProvider) {
|
|
71
71
|
this.entity = entity;
|
|
72
72
|
this.provider = this.alepha.inject(provider);
|
|
73
|
-
this.provider.registerEntity(entity as
|
|
73
|
+
this.provider.registerEntity(entity as EntityPrimitive);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
/**
|
|
@@ -28,13 +28,13 @@ import {
|
|
|
28
28
|
PG_UPDATED_AT,
|
|
29
29
|
type PgRefOptions,
|
|
30
30
|
} from "../constants/PG_SYMBOLS.ts";
|
|
31
|
-
import type {
|
|
32
|
-
import type {
|
|
31
|
+
import type { EntityPrimitive } from "../primitives/$entity.ts";
|
|
32
|
+
import type { SequencePrimitive } from "../primitives/$sequence.ts";
|
|
33
33
|
import { ModelBuilder } from "./ModelBuilder.ts";
|
|
34
34
|
|
|
35
35
|
export class SqliteModelBuilder extends ModelBuilder {
|
|
36
36
|
public buildTable(
|
|
37
|
-
entity:
|
|
37
|
+
entity: EntityPrimitive<any>,
|
|
38
38
|
options: {
|
|
39
39
|
tables: Map<string, unknown>;
|
|
40
40
|
enums: Map<string, unknown>;
|
|
@@ -62,7 +62,7 @@ export class SqliteModelBuilder extends ModelBuilder {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
public buildSequence(
|
|
65
|
-
sequence:
|
|
65
|
+
sequence: SequencePrimitive,
|
|
66
66
|
options: {
|
|
67
67
|
sequences: Map<string, unknown>;
|
|
68
68
|
schema: string;
|
|
@@ -75,7 +75,7 @@ export class SqliteModelBuilder extends ModelBuilder {
|
|
|
75
75
|
* Get SQLite-specific config builder for the table.
|
|
76
76
|
*/
|
|
77
77
|
protected getTableConfig(
|
|
78
|
-
entity:
|
|
78
|
+
entity: EntityPrimitive,
|
|
79
79
|
tables: Map<string, unknown>,
|
|
80
80
|
): ((self: BuildColumns<string, any, "sqlite">) => any) | undefined {
|
|
81
81
|
// SQLite-specific builders
|
package/src/queue/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { $module, type Alepha } from "alepha";
|
|
2
|
-
import { $consumer } from "./
|
|
3
|
-
import { $queue } from "./
|
|
2
|
+
import { $consumer } from "./primitives/$consumer.ts";
|
|
3
|
+
import { $queue } from "./primitives/$queue.ts";
|
|
4
4
|
import { MemoryQueueProvider } from "./providers/MemoryQueueProvider.ts";
|
|
5
5
|
import { QueueProvider } from "./providers/QueueProvider.ts";
|
|
6
6
|
import { WorkerProvider } from "./providers/WorkerProvider.ts";
|
|
7
7
|
|
|
8
8
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
9
9
|
|
|
10
|
-
export * from "./descriptors/$consumer.ts";
|
|
11
|
-
export * from "./descriptors/$queue.ts";
|
|
12
10
|
export * from "./interfaces/QueueJob.ts";
|
|
11
|
+
export * from "./primitives/$consumer.ts";
|
|
12
|
+
export * from "./primitives/$queue.ts";
|
|
13
13
|
export * from "./providers/MemoryQueueProvider.ts";
|
|
14
14
|
export * from "./providers/QueueProvider.ts";
|
|
15
15
|
export * from "./providers/WorkerProvider.ts";
|
|
@@ -17,9 +17,9 @@ export * from "./providers/WorkerProvider.ts";
|
|
|
17
17
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Provides asynchronous message queuing and processing capabilities through declarative queue
|
|
20
|
+
* Provides asynchronous message queuing and processing capabilities through declarative queue primitives.
|
|
21
21
|
*
|
|
22
|
-
* The queue module enables reliable background job processing and message passing using the `$queue`
|
|
22
|
+
* The queue module enables reliable background job processing and message passing using the `$queue` primitive
|
|
23
23
|
* on class properties. It supports schema validation, automatic retries, and multiple queue backends for
|
|
24
24
|
* building scalable, decoupled applications with robust error handling.
|
|
25
25
|
*
|
|
@@ -29,7 +29,7 @@ export * from "./providers/WorkerProvider.ts";
|
|
|
29
29
|
*/
|
|
30
30
|
export const AlephaQueue = $module({
|
|
31
31
|
name: "alepha.queue",
|
|
32
|
-
|
|
32
|
+
primitives: [$queue, $consumer],
|
|
33
33
|
services: [QueueProvider, MemoryQueueProvider, WorkerProvider],
|
|
34
34
|
register: (alepha: Alepha) =>
|
|
35
35
|
alepha
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
Descriptor,
|
|
2
|
+
createPrimitive,
|
|
4
3
|
KIND,
|
|
4
|
+
Primitive,
|
|
5
5
|
type Static,
|
|
6
6
|
type TSchema,
|
|
7
7
|
} from "alepha";
|
|
8
|
-
import type {
|
|
8
|
+
import type { QueuePrimitive } from "./$queue.ts";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* Creates a consumer
|
|
11
|
+
* Creates a consumer primitive to process messages from a specific queue.
|
|
12
12
|
*
|
|
13
13
|
* Provides a dedicated message consumer that connects to a queue and processes messages
|
|
14
14
|
* with custom handler logic, enabling scalable architectures where multiple consumers
|
|
15
15
|
* can process messages from the same queue.
|
|
16
16
|
*
|
|
17
17
|
* **Key Features**
|
|
18
|
-
* - Seamless integration with any $queue
|
|
18
|
+
* - Seamless integration with any $queue primitive
|
|
19
19
|
* - Full type safety inherited from queue schema
|
|
20
20
|
* - Automatic worker management for background processing
|
|
21
21
|
* - Built-in error handling and retry mechanisms
|
|
@@ -57,16 +57,16 @@ import type { QueueDescriptor } from "./$queue.ts";
|
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
59
|
export const $consumer = <T extends TSchema>(
|
|
60
|
-
options:
|
|
61
|
-
):
|
|
62
|
-
return
|
|
60
|
+
options: ConsumerPrimitiveOptions<T>,
|
|
61
|
+
): ConsumerPrimitive<T> => {
|
|
62
|
+
return createPrimitive(ConsumerPrimitive<T>, options);
|
|
63
63
|
};
|
|
64
64
|
|
|
65
65
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
66
66
|
|
|
67
|
-
export interface
|
|
67
|
+
export interface ConsumerPrimitiveOptions<T extends TSchema> {
|
|
68
68
|
/**
|
|
69
|
-
* The queue
|
|
69
|
+
* The queue primitive that this consumer will process messages from.
|
|
70
70
|
*
|
|
71
71
|
* This establishes the connection between the consumer and its source queue:
|
|
72
72
|
* - The consumer inherits the queue's message schema for type safety
|
|
@@ -90,12 +90,12 @@ export interface ConsumerDescriptorOptions<T extends TSchema> {
|
|
|
90
90
|
*
|
|
91
91
|
* // Then, create a consumer for that queue
|
|
92
92
|
* emailConsumer = $consumer({
|
|
93
|
-
* queue: this.emailQueue, // Reference the queue
|
|
93
|
+
* queue: this.emailQueue, // Reference the queue primitive
|
|
94
94
|
* handler: async (message) => { } // process email
|
|
95
95
|
* });
|
|
96
96
|
* ```
|
|
97
97
|
*/
|
|
98
|
-
queue:
|
|
98
|
+
queue: QueuePrimitive<T>;
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
101
|
* Message handler function that processes individual messages from the queue.
|
|
@@ -175,8 +175,8 @@ export interface ConsumerDescriptorOptions<T extends TSchema> {
|
|
|
175
175
|
|
|
176
176
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
177
177
|
|
|
178
|
-
export class
|
|
179
|
-
|
|
178
|
+
export class ConsumerPrimitive<T extends TSchema> extends Primitive<
|
|
179
|
+
ConsumerPrimitiveOptions<T>
|
|
180
180
|
> {}
|
|
181
181
|
|
|
182
|
-
$consumer[KIND] =
|
|
182
|
+
$consumer[KIND] = ConsumerPrimitive;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
Descriptor,
|
|
2
|
+
createPrimitive,
|
|
4
3
|
KIND,
|
|
4
|
+
Primitive,
|
|
5
5
|
type Service,
|
|
6
6
|
type Static,
|
|
7
7
|
type TSchema,
|
|
@@ -15,9 +15,9 @@ import { MemoryQueueProvider } from "../providers/MemoryQueueProvider.ts";
|
|
|
15
15
|
import { QueueProvider } from "../providers/QueueProvider.ts";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Creates a queue
|
|
18
|
+
* Creates a queue primitive for asynchronous message processing with background workers.
|
|
19
19
|
*
|
|
20
|
-
* The $queue
|
|
20
|
+
* The $queue primitive enables powerful asynchronous communication patterns in your application.
|
|
21
21
|
* It provides type-safe message queuing with automatic worker processing, making it perfect for
|
|
22
22
|
* decoupling components and handling background tasks efficiently.
|
|
23
23
|
*
|
|
@@ -126,14 +126,14 @@ import { QueueProvider } from "../providers/QueueProvider.ts";
|
|
|
126
126
|
* ```
|
|
127
127
|
*/
|
|
128
128
|
export const $queue = <T extends TSchema>(
|
|
129
|
-
options:
|
|
130
|
-
):
|
|
131
|
-
return
|
|
129
|
+
options: QueuePrimitiveOptions<T>,
|
|
130
|
+
): QueuePrimitive<T> => {
|
|
131
|
+
return createPrimitive(QueuePrimitive<T>, options);
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
135
135
|
|
|
136
|
-
export interface
|
|
136
|
+
export interface QueuePrimitiveOptions<T extends TSchema> {
|
|
137
137
|
/**
|
|
138
138
|
* Unique name for the queue.
|
|
139
139
|
*
|
|
@@ -337,8 +337,8 @@ export interface QueueDescriptorOptions<T extends TSchema> {
|
|
|
337
337
|
|
|
338
338
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
339
339
|
|
|
340
|
-
export class
|
|
341
|
-
|
|
340
|
+
export class QueuePrimitive<T extends TSchema> extends Primitive<
|
|
341
|
+
QueuePrimitiveOptions<T>
|
|
342
342
|
> {
|
|
343
343
|
protected readonly log = $logger();
|
|
344
344
|
public readonly provider = this.$provider();
|
|
@@ -415,7 +415,7 @@ export class QueueDescriptor<T extends TSchema> extends Descriptor<
|
|
|
415
415
|
}
|
|
416
416
|
|
|
417
417
|
/**
|
|
418
|
-
* Get default job options from
|
|
418
|
+
* Get default job options from primitive configuration.
|
|
419
419
|
*/
|
|
420
420
|
protected getDefaultJobOptions() {
|
|
421
421
|
return {
|
|
@@ -442,7 +442,7 @@ export class QueueDescriptor<T extends TSchema> extends Descriptor<
|
|
|
442
442
|
}
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
$queue[KIND] =
|
|
445
|
+
$queue[KIND] = QueuePrimitive;
|
|
446
446
|
|
|
447
447
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
448
448
|
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
} from "alepha";
|
|
10
10
|
import { DateTimeProvider } from "alepha/datetime";
|
|
11
11
|
import { $logger } from "alepha/logger";
|
|
12
|
-
import {
|
|
12
|
+
import type { QueueAcquiredJob } from "../interfaces/QueueJob.ts";
|
|
13
|
+
import { $consumer } from "../primitives/$consumer.ts";
|
|
13
14
|
import {
|
|
14
15
|
$queue,
|
|
15
|
-
type QueueDescriptor,
|
|
16
16
|
type QueueMessage,
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
type QueuePrimitive,
|
|
18
|
+
} from "../primitives/$queue.ts";
|
|
19
19
|
import { QueueProvider } from "./QueueProvider.ts";
|
|
20
20
|
|
|
21
21
|
const envSchema = t.object({
|
|
@@ -83,7 +83,7 @@ export class WorkerProvider {
|
|
|
83
83
|
on: "start",
|
|
84
84
|
priority: "last",
|
|
85
85
|
handler: () => {
|
|
86
|
-
for (const queue of this.alepha.
|
|
86
|
+
for (const queue of this.alepha.primitives($queue)) {
|
|
87
87
|
const handler = queue.options.handler;
|
|
88
88
|
if (handler) {
|
|
89
89
|
this.consumers.push({
|
|
@@ -93,7 +93,7 @@ export class WorkerProvider {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
for (const consumer of this.alepha.
|
|
96
|
+
for (const consumer of this.alepha.primitives($consumer)) {
|
|
97
97
|
this.consumers.push(consumer.options);
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -333,7 +333,7 @@ export class WorkerProvider {
|
|
|
333
333
|
}
|
|
334
334
|
|
|
335
335
|
export interface Consumer<T extends TSchema = TSchema> {
|
|
336
|
-
queue:
|
|
336
|
+
queue: QueuePrimitive<T>;
|
|
337
337
|
handler: (message: QueueMessage<T>) => Promise<void>;
|
|
338
338
|
}
|
|
339
339
|
|
package/src/retry/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $retry } from "./
|
|
2
|
+
import { $retry } from "./primitives/$retry.ts";
|
|
3
3
|
import { RetryProvider } from "./providers/RetryProvider.ts";
|
|
4
4
|
|
|
5
5
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
6
6
|
|
|
7
|
-
export * from "./descriptors/$retry.ts";
|
|
8
7
|
export * from "./errors/RetryCancelError.ts";
|
|
9
8
|
export * from "./errors/RetryTimeoutError.ts";
|
|
9
|
+
export * from "./primitives/$retry.ts";
|
|
10
10
|
export * from "./providers/RetryProvider.ts";
|
|
11
11
|
|
|
12
12
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -19,6 +19,6 @@ export * from "./providers/RetryProvider.ts";
|
|
|
19
19
|
*/
|
|
20
20
|
export const AlephaRetry = $module({
|
|
21
21
|
name: "alepha.retry",
|
|
22
|
-
|
|
22
|
+
primitives: [$retry],
|
|
23
23
|
services: [RetryProvider],
|
|
24
24
|
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$inject,
|
|
3
|
-
|
|
4
|
-
Descriptor,
|
|
5
|
-
type DescriptorArgs,
|
|
3
|
+
createPrimitive,
|
|
6
4
|
KIND,
|
|
5
|
+
Primitive,
|
|
6
|
+
type PrimitiveArgs,
|
|
7
7
|
} from "alepha";
|
|
8
8
|
import type { DurationLike } from "alepha/datetime";
|
|
9
9
|
import type { RetryBackoffOptions } from "../providers/RetryProvider.ts";
|
|
@@ -14,16 +14,16 @@ import { RetryProvider } from "../providers/RetryProvider.ts";
|
|
|
14
14
|
* with support for exponential backoff, max duration, and cancellation.
|
|
15
15
|
*/
|
|
16
16
|
export const $retry = <T extends (...args: any[]) => any>(
|
|
17
|
-
options:
|
|
18
|
-
):
|
|
19
|
-
const instance =
|
|
17
|
+
options: RetryPrimitiveOptions<T>,
|
|
18
|
+
): RetryPrimitiveFn<T> => {
|
|
19
|
+
const instance = createPrimitive(RetryPrimitive, options);
|
|
20
20
|
const fn = (...args: Parameters<T>) => instance.run(...args);
|
|
21
|
-
return Object.setPrototypeOf(fn, instance) as
|
|
21
|
+
return Object.setPrototypeOf(fn, instance) as RetryPrimitiveFn<T>;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
25
25
|
|
|
26
|
-
export interface
|
|
26
|
+
export interface RetryPrimitiveOptions<T extends (...args: any[]) => any> {
|
|
27
27
|
/**
|
|
28
28
|
* The function to retry.
|
|
29
29
|
*/
|
|
@@ -72,22 +72,24 @@ export interface RetryDescriptorOptions<T extends (...args: any[]) => any> {
|
|
|
72
72
|
|
|
73
73
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
74
74
|
|
|
75
|
-
export class
|
|
75
|
+
export class RetryPrimitive<
|
|
76
76
|
T extends (...args: any[]) => any,
|
|
77
|
-
> extends
|
|
77
|
+
> extends Primitive<RetryPrimitiveOptions<T>> {
|
|
78
78
|
protected readonly retryProvider = $inject(RetryProvider);
|
|
79
|
-
protected appAbortController
|
|
79
|
+
protected appAbortController?: AbortController;
|
|
80
80
|
|
|
81
|
-
constructor(args:
|
|
81
|
+
constructor(args: PrimitiveArgs<RetryPrimitiveOptions<T>>) {
|
|
82
82
|
super(args);
|
|
83
83
|
|
|
84
|
-
this.appAbortController = new AbortController();
|
|
85
84
|
this.alepha.events.on("stop", () => {
|
|
86
|
-
this.appAbortController
|
|
85
|
+
this.appAbortController?.abort();
|
|
87
86
|
});
|
|
88
87
|
}
|
|
89
88
|
|
|
90
89
|
async run(...args: Parameters<T>): Promise<ReturnType<T>> {
|
|
90
|
+
// Nov 25: Cloudflare does not like 'new AbortController' outside main handler, we can't pre-create it in the constructor.
|
|
91
|
+
this.appAbortController ??= new AbortController();
|
|
92
|
+
|
|
91
93
|
return this.retryProvider.retry(
|
|
92
94
|
{
|
|
93
95
|
...this.options,
|
|
@@ -98,9 +100,9 @@ export class RetryDescriptor<
|
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
102
|
|
|
101
|
-
export interface
|
|
102
|
-
extends
|
|
103
|
+
export interface RetryPrimitiveFn<T extends (...args: any[]) => any>
|
|
104
|
+
extends RetryPrimitive<T> {
|
|
103
105
|
(...args: Parameters<T>): Promise<ReturnType<T>>;
|
|
104
106
|
}
|
|
105
107
|
|
|
106
|
-
$retry[KIND] =
|
|
108
|
+
$retry[KIND] = RetryPrimitive;
|
package/src/scheduler/index.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
2
|
import type { DateTime } from "alepha/datetime";
|
|
3
3
|
import { AlephaLock } from "alepha/lock";
|
|
4
|
-
import { $scheduler } from "./
|
|
4
|
+
import { $scheduler } from "./primitives/$scheduler.ts";
|
|
5
5
|
import { CronProvider } from "./providers/CronProvider.ts";
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
8
8
|
|
|
9
9
|
export * from "./constants/CRON.ts";
|
|
10
|
-
export * from "./
|
|
10
|
+
export * from "./primitives/$scheduler.ts";
|
|
11
11
|
export * from "./providers/CronProvider.ts";
|
|
12
12
|
|
|
13
13
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -42,6 +42,6 @@ declare module "alepha" {
|
|
|
42
42
|
*/
|
|
43
43
|
export const AlephaScheduler = $module({
|
|
44
44
|
name: "alepha.scheduler",
|
|
45
|
-
|
|
45
|
+
primitives: [$scheduler],
|
|
46
46
|
services: [AlephaLock, CronProvider],
|
|
47
47
|
});
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
$inject,
|
|
4
4
|
Alepha,
|
|
5
5
|
type Async,
|
|
6
|
-
|
|
7
|
-
Descriptor,
|
|
6
|
+
createPrimitive,
|
|
8
7
|
KIND,
|
|
8
|
+
Primitive,
|
|
9
9
|
type Static,
|
|
10
10
|
t,
|
|
11
11
|
} from "alepha";
|
|
@@ -19,17 +19,17 @@ import { $logger } from "alepha/logger";
|
|
|
19
19
|
import { CronProvider } from "../providers/CronProvider.ts";
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* Scheduler
|
|
22
|
+
* Scheduler primitive.
|
|
23
23
|
*/
|
|
24
24
|
export const $scheduler = (
|
|
25
|
-
options:
|
|
26
|
-
):
|
|
27
|
-
return
|
|
25
|
+
options: SchedulerPrimitiveOptions,
|
|
26
|
+
): SchedulerPrimitive => {
|
|
27
|
+
return createPrimitive(SchedulerPrimitive, options);
|
|
28
28
|
};
|
|
29
29
|
|
|
30
30
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
31
31
|
|
|
32
|
-
export type
|
|
32
|
+
export type SchedulerPrimitiveOptions = {
|
|
33
33
|
/**
|
|
34
34
|
* Function to run on schedule.
|
|
35
35
|
*/
|
|
@@ -78,7 +78,7 @@ declare module "alepha" {
|
|
|
78
78
|
interface Env extends Partial<Static<typeof envSchema>> {}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
export class
|
|
81
|
+
export class SchedulerPrimitive extends Primitive<SchedulerPrimitiveOptions> {
|
|
82
82
|
protected readonly log = $logger();
|
|
83
83
|
protected readonly env = $env(envSchema);
|
|
84
84
|
protected readonly alepha = $inject(Alepha);
|
|
@@ -186,7 +186,7 @@ export class SchedulerDescriptor extends Descriptor<SchedulerDescriptorOptions>
|
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
$scheduler[KIND] =
|
|
189
|
+
$scheduler[KIND] = SchedulerPrimitive;
|
|
190
190
|
|
|
191
191
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
192
192
|
|
|
@@ -74,7 +74,7 @@ export class CronProvider {
|
|
|
74
74
|
/**
|
|
75
75
|
* Registers a cron job.
|
|
76
76
|
*
|
|
77
|
-
* It's automatically done when using the `$scheduler`
|
|
77
|
+
* It's automatically done when using the `$scheduler` primitive but can also be used manually.
|
|
78
78
|
*/
|
|
79
79
|
public createCronJob(
|
|
80
80
|
name: string,
|
package/src/security/index.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $permission } from "./
|
|
3
|
-
import { $realm } from "./
|
|
4
|
-
import { $role } from "./
|
|
2
|
+
import { $permission } from "./primitives/$permission.ts";
|
|
3
|
+
import { $realm } from "./primitives/$realm.ts";
|
|
4
|
+
import { $role } from "./primitives/$role.ts";
|
|
5
5
|
import { CryptoProvider } from "./providers/CryptoProvider.ts";
|
|
6
6
|
import { JwtProvider } from "./providers/JwtProvider.ts";
|
|
7
7
|
import { SecurityProvider } from "./providers/SecurityProvider.ts";
|
|
8
8
|
import type { UserAccount } from "./schemas/userAccountInfoSchema.ts";
|
|
9
9
|
|
|
10
|
-
export * from "./descriptors/$permission.ts";
|
|
11
|
-
export * from "./descriptors/$realm.ts";
|
|
12
|
-
export * from "./descriptors/$role.ts";
|
|
13
|
-
export * from "./descriptors/$serviceAccount.ts";
|
|
14
10
|
export * from "./errors/InvalidCredentialsError.ts";
|
|
15
11
|
export * from "./errors/InvalidPermissionError.ts";
|
|
16
12
|
export * from "./errors/SecurityError.ts";
|
|
17
13
|
export * from "./interfaces/UserAccountToken.ts";
|
|
14
|
+
export * from "./primitives/$permission.ts";
|
|
15
|
+
export * from "./primitives/$realm.ts";
|
|
16
|
+
export * from "./primitives/$role.ts";
|
|
17
|
+
export * from "./primitives/$serviceAccount.ts";
|
|
18
18
|
export * from "./providers/CryptoProvider.ts";
|
|
19
19
|
export * from "./providers/JwtProvider.ts";
|
|
20
20
|
export * from "./providers/SecurityProvider.ts";
|
|
@@ -34,7 +34,7 @@ declare module "alepha" {
|
|
|
34
34
|
/**
|
|
35
35
|
* Provides comprehensive authentication and authorization capabilities with JWT tokens, role-based access control, and user management.
|
|
36
36
|
*
|
|
37
|
-
* The security module enables building secure applications using
|
|
37
|
+
* The security module enables building secure applications using primitives like `$realm`, `$role`, and `$permission`
|
|
38
38
|
* on class properties. It offers JWT-based authentication, fine-grained permissions, service accounts, and seamless
|
|
39
39
|
* integration with various authentication providers and user management systems.
|
|
40
40
|
*
|
|
@@ -45,6 +45,6 @@ declare module "alepha" {
|
|
|
45
45
|
*/
|
|
46
46
|
export const AlephaSecurity = $module({
|
|
47
47
|
name: "alepha.security",
|
|
48
|
-
|
|
48
|
+
primitives: [$realm, $role, $permission],
|
|
49
49
|
services: [SecurityProvider, JwtProvider, CryptoProvider],
|
|
50
50
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $inject,
|
|
1
|
+
import { $inject, createPrimitive, KIND, Primitive } from "alepha";
|
|
2
2
|
import { SecurityProvider } from "../providers/SecurityProvider.ts";
|
|
3
3
|
import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
|
|
4
4
|
|
|
@@ -6,14 +6,14 @@ import type { UserAccount } from "../schemas/userAccountInfoSchema.ts";
|
|
|
6
6
|
* Create a new permission.
|
|
7
7
|
*/
|
|
8
8
|
export const $permission = (
|
|
9
|
-
options:
|
|
10
|
-
):
|
|
11
|
-
return
|
|
9
|
+
options: PermissionPrimitiveOptions = {},
|
|
10
|
+
): PermissionPrimitive => {
|
|
11
|
+
return createPrimitive(PermissionPrimitive, options);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface PermissionPrimitiveOptions {
|
|
17
17
|
/**
|
|
18
18
|
* Name of the permission. Use Property name is not provided.
|
|
19
19
|
*/
|
|
@@ -32,7 +32,7 @@ export interface PermissionDescriptorOptions {
|
|
|
32
32
|
|
|
33
33
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
34
34
|
|
|
35
|
-
export class
|
|
35
|
+
export class PermissionPrimitive extends Primitive<PermissionPrimitiveOptions> {
|
|
36
36
|
protected readonly securityProvider = $inject(SecurityProvider);
|
|
37
37
|
|
|
38
38
|
public get name(): string {
|
|
@@ -67,4 +67,4 @@ export class PermissionDescriptor extends Descriptor<PermissionDescriptorOptions
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
$permission[KIND] =
|
|
70
|
+
$permission[KIND] = PermissionPrimitive;
|