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
|
@@ -17,7 +17,7 @@ import { $logger } from "alepha/logger";
|
|
|
17
17
|
import { AlephaSecurity } from "alepha/security";
|
|
18
18
|
import {
|
|
19
19
|
$action,
|
|
20
|
-
type
|
|
20
|
+
type ActionPrimitive,
|
|
21
21
|
type RequestConfigSchema,
|
|
22
22
|
ServerProvider,
|
|
23
23
|
ServerRouterProvider,
|
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
$swagger,
|
|
28
28
|
type OpenApiDocument,
|
|
29
29
|
type OpenApiOperation,
|
|
30
|
-
type
|
|
31
|
-
} from "../
|
|
30
|
+
type SwaggerPrimitiveOptions,
|
|
31
|
+
} from "../primitives/$swagger.ts";
|
|
32
32
|
|
|
33
33
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
34
34
|
|
|
@@ -74,7 +74,7 @@ export class ServerSwaggerProvider {
|
|
|
74
74
|
on: "configure",
|
|
75
75
|
priority: "last", // wait for all configurations, sometimes some actions are registered late!
|
|
76
76
|
handler: async (alepha) => {
|
|
77
|
-
const options = alepha.
|
|
77
|
+
const options = alepha.primitives($swagger)?.[0]?.options;
|
|
78
78
|
if (!options) {
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
@@ -84,14 +84,14 @@ export class ServerSwaggerProvider {
|
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
public async createSwagger(
|
|
87
|
-
options:
|
|
87
|
+
options: SwaggerPrimitiveOptions,
|
|
88
88
|
): Promise<OpenApiDocument | undefined> {
|
|
89
89
|
if (options.disabled) {
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
const json = this.configureOpenApi(
|
|
94
|
-
this.alepha.
|
|
94
|
+
this.alepha.primitives($action),
|
|
95
95
|
options,
|
|
96
96
|
);
|
|
97
97
|
|
|
@@ -111,8 +111,8 @@ export class ServerSwaggerProvider {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
protected configureOpenApi(
|
|
114
|
-
actions:
|
|
115
|
-
doc:
|
|
114
|
+
actions: ActionPrimitive<RequestConfigSchema>[],
|
|
115
|
+
doc: SwaggerPrimitiveOptions,
|
|
116
116
|
): OpenApiDocument {
|
|
117
117
|
const openApi: OpenApiDocument = {
|
|
118
118
|
openapi: "3.0.0",
|
|
@@ -290,7 +290,7 @@ export class ServerSwaggerProvider {
|
|
|
290
290
|
});
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
-
public getResponseSchema(route:
|
|
293
|
+
public getResponseSchema(route: ActionPrimitive<RequestConfigSchema>):
|
|
294
294
|
| {
|
|
295
295
|
type?: string;
|
|
296
296
|
schema?: any;
|
|
@@ -357,7 +357,7 @@ export class ServerSwaggerProvider {
|
|
|
357
357
|
|
|
358
358
|
protected async configureSwaggerUi(
|
|
359
359
|
prefix: string,
|
|
360
|
-
options:
|
|
360
|
+
options: SwaggerPrimitiveOptions,
|
|
361
361
|
): Promise<void> {
|
|
362
362
|
const ui = typeof options.ui === "object" ? options.ui : {};
|
|
363
363
|
const initializer = `
|
|
@@ -391,6 +391,7 @@ window.onload = function() {
|
|
|
391
391
|
const root = await this.getAssetPath(
|
|
392
392
|
ui.root,
|
|
393
393
|
join(dirname, "../../assets/swagger-ui"),
|
|
394
|
+
join(dirname, "../../../assets/swagger-ui"),
|
|
394
395
|
join(dirname, "../../../../assets/swagger-ui"),
|
|
395
396
|
);
|
|
396
397
|
|
package/src/sms/index.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
|
-
import { $sms } from "./
|
|
2
|
+
import { $sms } from "./primitives/$sms.ts";
|
|
3
3
|
import { LocalSmsProvider } from "./providers/LocalSmsProvider.ts";
|
|
4
4
|
import { MemorySmsProvider } from "./providers/MemorySmsProvider.ts";
|
|
5
5
|
import { SmsProvider } from "./providers/SmsProvider.ts";
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
8
8
|
|
|
9
|
-
export * from "./descriptors/$sms.ts";
|
|
10
9
|
export * from "./errors/SmsError.ts";
|
|
10
|
+
export * from "./primitives/$sms.ts";
|
|
11
11
|
export * from "./providers/LocalSmsProvider.ts";
|
|
12
12
|
export * from "./providers/MemorySmsProvider.ts";
|
|
13
13
|
export * from "./providers/SmsProvider.ts";
|
|
@@ -36,7 +36,7 @@ declare module "alepha" {
|
|
|
36
36
|
/**
|
|
37
37
|
* Provides SMS sending capabilities for Alepha applications with multiple provider backends.
|
|
38
38
|
*
|
|
39
|
-
* The SMS module enables declarative SMS sending through the `$sms`
|
|
39
|
+
* The SMS module enables declarative SMS sending through the `$sms` primitive, allowing you to send
|
|
40
40
|
* text messages through different providers: memory (for testing) or local file system.
|
|
41
41
|
* It supports automatic provider selection based on environment configuration.
|
|
42
42
|
*
|
|
@@ -45,7 +45,7 @@ declare module "alepha" {
|
|
|
45
45
|
*/
|
|
46
46
|
export const AlephaSms = $module({
|
|
47
47
|
name: "alepha.sms",
|
|
48
|
-
|
|
48
|
+
primitives: [$sms],
|
|
49
49
|
services: [SmsProvider, MemorySmsProvider, LocalSmsProvider],
|
|
50
50
|
register: (alepha) =>
|
|
51
51
|
alepha.with({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
Descriptor,
|
|
2
|
+
createPrimitive,
|
|
4
3
|
type InstantiableClass,
|
|
5
4
|
KIND,
|
|
5
|
+
Primitive,
|
|
6
6
|
} from "alepha";
|
|
7
7
|
import { MemorySmsProvider } from "../providers/MemorySmsProvider.ts";
|
|
8
8
|
import type { SmsSendOptions } from "../providers/SmsProvider.ts";
|
|
@@ -10,12 +10,12 @@ import { SmsProvider } from "../providers/SmsProvider.ts";
|
|
|
10
10
|
|
|
11
11
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
12
12
|
|
|
13
|
-
export const $sms = (options:
|
|
14
|
-
|
|
13
|
+
export const $sms = (options: SmsPrimitiveOptions = {}) =>
|
|
14
|
+
createPrimitive(SmsPrimitive, options);
|
|
15
15
|
|
|
16
16
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
17
17
|
|
|
18
|
-
export interface
|
|
18
|
+
export interface SmsPrimitiveOptions {
|
|
19
19
|
name?: string;
|
|
20
20
|
provider?: InstantiableClass<SmsProvider> | "memory";
|
|
21
21
|
}
|
|
@@ -23,7 +23,7 @@ export interface SmsDescriptorOptions {
|
|
|
23
23
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* SMS
|
|
26
|
+
* SMS primitive for sending SMS messages through various providers.
|
|
27
27
|
*
|
|
28
28
|
* Usage:
|
|
29
29
|
* ```typescript
|
|
@@ -39,7 +39,7 @@ export interface SmsDescriptorOptions {
|
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
export class
|
|
42
|
+
export class SmsPrimitive extends Primitive<SmsPrimitiveOptions> {
|
|
43
43
|
protected readonly provider = this.$provider();
|
|
44
44
|
|
|
45
45
|
public get name() {
|
|
@@ -82,4 +82,4 @@ export class SmsDescriptor extends Descriptor<SmsDescriptorOptions> {
|
|
|
82
82
|
|
|
83
83
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
84
84
|
|
|
85
|
-
$sms[KIND] =
|
|
85
|
+
$sms[KIND] = SmsPrimitive;
|
package/src/thread/index.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { $module, Alepha } from "alepha";
|
|
2
|
-
import { $thread } from "./
|
|
2
|
+
import { $thread } from "./primitives/$thread.ts";
|
|
3
3
|
import { ThreadProvider } from "./providers/ThreadProvider.ts";
|
|
4
4
|
|
|
5
5
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
6
6
|
|
|
7
|
-
export * from "./
|
|
7
|
+
export * from "./primitives/$thread.ts";
|
|
8
8
|
export * from "./providers/ThreadProvider.ts";
|
|
9
9
|
|
|
10
10
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
@@ -29,6 +29,6 @@ Alepha.prototype.isWorkerThread = function (this: Alepha): boolean {
|
|
|
29
29
|
*/
|
|
30
30
|
export const AlephaThread = $module({
|
|
31
31
|
name: "alepha.thread",
|
|
32
|
-
|
|
32
|
+
primitives: [$thread],
|
|
33
33
|
services: [ThreadProvider],
|
|
34
34
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { cpus } from "node:os";
|
|
2
2
|
import { MessageChannel, type MessagePort, Worker } from "node:worker_threads";
|
|
3
3
|
import type { TSchema } from "alepha";
|
|
4
|
-
import {
|
|
4
|
+
import { createPrimitive, KIND, Primitive, TypeBoxValue } from "alepha";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Creates a worker thread
|
|
7
|
+
* Creates a worker thread primitive for offloading CPU-intensive tasks to separate threads.
|
|
8
8
|
*
|
|
9
|
-
* This
|
|
9
|
+
* This primitive enables you to run JavaScript code in Node.js worker threads, allowing you to
|
|
10
10
|
* leverage multiple CPU cores and avoid blocking the main event loop. It provides a pool-based
|
|
11
11
|
* approach with intelligent thread reuse and automatic lifecycle management.
|
|
12
12
|
*
|
|
@@ -117,13 +117,13 @@ import { createDescriptor, Descriptor, KIND, TypeBoxValue } from "alepha";
|
|
|
117
117
|
* }
|
|
118
118
|
* ```
|
|
119
119
|
*/
|
|
120
|
-
export const $thread = (options:
|
|
121
|
-
return
|
|
120
|
+
export const $thread = (options: ThreadPrimitiveOptions): ThreadPrimitive => {
|
|
121
|
+
return createPrimitive(ThreadPrimitive, options);
|
|
122
122
|
};
|
|
123
123
|
|
|
124
124
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
125
125
|
|
|
126
|
-
export interface
|
|
126
|
+
export interface ThreadPrimitiveOptions {
|
|
127
127
|
/**
|
|
128
128
|
* Unique name for this thread worker.
|
|
129
129
|
*
|
|
@@ -132,7 +132,7 @@ export interface ThreadDescriptorOptions {
|
|
|
132
132
|
* - Logging and debugging
|
|
133
133
|
* - Error messages and stack traces
|
|
134
134
|
*
|
|
135
|
-
* If not provided, defaults to the property key of the
|
|
135
|
+
* If not provided, defaults to the property key of the primitive.
|
|
136
136
|
*
|
|
137
137
|
* @example "image-processor"
|
|
138
138
|
* @example "crypto-worker"
|
|
@@ -210,7 +210,7 @@ export interface ThreadDescriptorOptions {
|
|
|
210
210
|
|
|
211
211
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
212
212
|
|
|
213
|
-
export class
|
|
213
|
+
export class ThreadPrimitive extends Primitive<ThreadPrimitiveOptions> {
|
|
214
214
|
protected readonly script = process.argv[1];
|
|
215
215
|
static readonly globalPool = new Map<string, ThreadPool>();
|
|
216
216
|
|
|
@@ -227,8 +227,8 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
private getPool(): ThreadPool {
|
|
230
|
-
if (!
|
|
231
|
-
|
|
230
|
+
if (!ThreadPrimitive.globalPool.has(this.name)) {
|
|
231
|
+
ThreadPrimitive.globalPool.set(
|
|
232
232
|
this.name,
|
|
233
233
|
new ThreadPool(
|
|
234
234
|
this.name,
|
|
@@ -238,7 +238,7 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
|
|
|
238
238
|
),
|
|
239
239
|
);
|
|
240
240
|
}
|
|
241
|
-
return
|
|
241
|
+
return ThreadPrimitive.globalPool.get(this.name)!;
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
public async execute<T = any>(data?: any, schema?: TSchema): Promise<T> {
|
|
@@ -264,11 +264,11 @@ export class ThreadDescriptor extends Descriptor<ThreadDescriptorOptions> {
|
|
|
264
264
|
public async terminate(): Promise<void> {
|
|
265
265
|
const pool = this.getPool();
|
|
266
266
|
await pool.terminate();
|
|
267
|
-
|
|
267
|
+
ThreadPrimitive.globalPool.delete(this.name);
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
-
$thread[KIND] =
|
|
271
|
+
$thread[KIND] = ThreadPrimitive;
|
|
272
272
|
|
|
273
273
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
274
274
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { parentPort, workerData } from "node:worker_threads";
|
|
2
2
|
import { $env, $hook, t } from "alepha";
|
|
3
3
|
import { $logger } from "alepha/logger";
|
|
4
|
-
import { $thread } from "../
|
|
4
|
+
import { $thread } from "../primitives/$thread.ts";
|
|
5
5
|
|
|
6
6
|
interface ThreadMessage<T = any> {
|
|
7
7
|
id: string;
|
|
@@ -26,15 +26,15 @@ export class ThreadProvider {
|
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const threads = alepha.
|
|
30
|
-
const
|
|
29
|
+
const threads = alepha.primitives($thread);
|
|
30
|
+
const threadPrimitive = threads.find((thread) => thread.name === worker);
|
|
31
31
|
|
|
32
|
-
if (!
|
|
32
|
+
if (!threadPrimitive) {
|
|
33
33
|
this.log.error(`Thread not found: ${worker}`);
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
this.log.info(`Thread ready: ${
|
|
37
|
+
this.log.info(`Thread ready: ${threadPrimitive.name}`);
|
|
38
38
|
|
|
39
39
|
// Use the message channel port from worker data if available, fallback to parentPort
|
|
40
40
|
const communicationPort = workerData?.port || parentPort;
|
|
@@ -48,10 +48,8 @@ export class ThreadProvider {
|
|
|
48
48
|
communicationPort.on("message", async (message: ThreadMessage) => {
|
|
49
49
|
if (message.type === "execute") {
|
|
50
50
|
try {
|
|
51
|
-
this.log.debug(
|
|
52
|
-
|
|
53
|
-
);
|
|
54
|
-
const result = await threadDescriptor.options.handler();
|
|
51
|
+
this.log.debug(`Executing thread handler: ${threadPrimitive.name}`);
|
|
52
|
+
const result = await threadPrimitive.options.handler();
|
|
55
53
|
|
|
56
54
|
communicationPort.postMessage({
|
|
57
55
|
id: message.id,
|
package/src/topic/index.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { $module, type Alepha } from "alepha";
|
|
2
|
-
import { $subscriber } from "./
|
|
3
|
-
import { $topic } from "./
|
|
2
|
+
import { $subscriber } from "./primitives/$subscriber.ts";
|
|
3
|
+
import { $topic } from "./primitives/$topic.ts";
|
|
4
4
|
import { MemoryTopicProvider } from "./providers/MemoryTopicProvider.ts";
|
|
5
5
|
import { TopicProvider } from "./providers/TopicProvider.ts";
|
|
6
6
|
|
|
7
7
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
8
8
|
|
|
9
|
-
export * from "./descriptors/$subscriber.ts";
|
|
10
|
-
export * from "./descriptors/$topic.ts";
|
|
11
9
|
export * from "./errors/TopicTimeoutError.ts";
|
|
10
|
+
export * from "./primitives/$subscriber.ts";
|
|
11
|
+
export * from "./primitives/$topic.ts";
|
|
12
12
|
export * from "./providers/MemoryTopicProvider.ts";
|
|
13
13
|
export * from "./providers/TopicProvider.ts";
|
|
14
14
|
|
|
@@ -25,7 +25,7 @@ export * from "./providers/TopicProvider.ts";
|
|
|
25
25
|
*/
|
|
26
26
|
export const AlephaTopic = $module({
|
|
27
27
|
name: "alepha.topic",
|
|
28
|
-
|
|
28
|
+
primitives: [$topic, $subscriber],
|
|
29
29
|
services: [TopicProvider, MemoryTopicProvider],
|
|
30
30
|
register: (alepha: Alepha) =>
|
|
31
31
|
alepha.with({
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createPrimitive, KIND, Primitive } from "alepha";
|
|
2
2
|
import type {
|
|
3
|
-
TopicDescriptor,
|
|
4
3
|
TopicHandler,
|
|
5
4
|
TopicMessageSchema,
|
|
5
|
+
TopicPrimitive,
|
|
6
6
|
} from "./$topic.ts";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Creates a subscriber
|
|
9
|
+
* Creates a subscriber primitive to listen for messages from a specific topic.
|
|
10
10
|
*
|
|
11
11
|
* Provides a dedicated message subscriber that connects to a topic and processes messages
|
|
12
12
|
* with custom handler logic, enabling scalable pub/sub architectures where multiple
|
|
13
13
|
* subscribers can react to the same events independently.
|
|
14
14
|
*
|
|
15
15
|
* **Key Features**
|
|
16
|
-
* - Seamless integration with any $topic
|
|
16
|
+
* - Seamless integration with any $topic primitive
|
|
17
17
|
* - Full type safety inherited from topic schema
|
|
18
18
|
* - Real-time message delivery when events are published
|
|
19
19
|
* - Error isolation between subscribers
|
|
@@ -61,16 +61,16 @@ import type {
|
|
|
61
61
|
* ```
|
|
62
62
|
*/
|
|
63
63
|
export const $subscriber = <T extends TopicMessageSchema>(
|
|
64
|
-
options:
|
|
65
|
-
):
|
|
66
|
-
return
|
|
64
|
+
options: SubscriberPrimitiveOptions<T>,
|
|
65
|
+
): SubscriberPrimitive<T> => {
|
|
66
|
+
return createPrimitive(SubscriberPrimitive<T>, options);
|
|
67
67
|
};
|
|
68
68
|
|
|
69
69
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
70
70
|
|
|
71
|
-
export interface
|
|
71
|
+
export interface SubscriberPrimitiveOptions<T extends TopicMessageSchema> {
|
|
72
72
|
/**
|
|
73
|
-
* The topic
|
|
73
|
+
* The topic primitive that this subscriber will listen to for messages.
|
|
74
74
|
*
|
|
75
75
|
* This establishes the connection between the subscriber and its source topic:
|
|
76
76
|
* - The subscriber inherits the topic's message schema for type safety
|
|
@@ -97,12 +97,12 @@ export interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
|
|
|
97
97
|
*
|
|
98
98
|
* // Then, create a subscriber for that topic
|
|
99
99
|
* activitySubscriber = $subscriber({
|
|
100
|
-
* topic: this.userEvents, // Reference the topic
|
|
100
|
+
* topic: this.userEvents, // Reference the topic primitive
|
|
101
101
|
* handler: async (message) => { } // Process messages here
|
|
102
102
|
* });
|
|
103
103
|
* ```
|
|
104
104
|
*/
|
|
105
|
-
topic:
|
|
105
|
+
topic: TopicPrimitive<T>;
|
|
106
106
|
|
|
107
107
|
/**
|
|
108
108
|
* Message handler function that processes individual messages from the topic.
|
|
@@ -203,8 +203,8 @@ export interface SubscriberDescriptorOptions<T extends TopicMessageSchema> {
|
|
|
203
203
|
|
|
204
204
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
205
205
|
|
|
206
|
-
export class
|
|
206
|
+
export class SubscriberPrimitive<
|
|
207
207
|
T extends TopicMessageSchema,
|
|
208
|
-
> extends
|
|
208
|
+
> extends Primitive<SubscriberPrimitiveOptions<T>> {}
|
|
209
209
|
|
|
210
|
-
$subscriber[KIND] =
|
|
210
|
+
$subscriber[KIND] = SubscriberPrimitive;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$inject,
|
|
3
|
-
|
|
4
|
-
Descriptor,
|
|
3
|
+
createPrimitive,
|
|
5
4
|
KIND,
|
|
5
|
+
Primitive,
|
|
6
6
|
type Service,
|
|
7
7
|
type Static,
|
|
8
8
|
type TSchema,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "../providers/TopicProvider.ts";
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* Creates a topic
|
|
24
|
+
* Creates a topic primitive for publish/subscribe messaging and event-driven architecture.
|
|
25
25
|
*
|
|
26
26
|
* Enables decoupled communication through a pub/sub pattern where publishers send messages
|
|
27
27
|
* and multiple subscribers receive them. Supports type-safe messages, real-time delivery,
|
|
@@ -59,14 +59,14 @@ import {
|
|
|
59
59
|
* ```
|
|
60
60
|
*/
|
|
61
61
|
export const $topic = <T extends TopicMessageSchema>(
|
|
62
|
-
options:
|
|
63
|
-
):
|
|
64
|
-
return
|
|
62
|
+
options: TopicPrimitiveOptions<T>,
|
|
63
|
+
): TopicPrimitive<T> => {
|
|
64
|
+
return createPrimitive(TopicPrimitive<T>, options);
|
|
65
65
|
};
|
|
66
66
|
|
|
67
67
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
68
68
|
|
|
69
|
-
export interface
|
|
69
|
+
export interface TopicPrimitiveOptions<T extends TopicMessageSchema> {
|
|
70
70
|
/**
|
|
71
71
|
* Unique name identifier for the topic.
|
|
72
72
|
*
|
|
@@ -248,8 +248,8 @@ export interface TopicDescriptorOptions<T extends TopicMessageSchema> {
|
|
|
248
248
|
|
|
249
249
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
250
250
|
|
|
251
|
-
export class
|
|
252
|
-
|
|
251
|
+
export class TopicPrimitive<T extends TopicMessageSchema> extends Primitive<
|
|
252
|
+
TopicPrimitiveOptions<T>
|
|
253
253
|
> {
|
|
254
254
|
protected readonly log = $logger();
|
|
255
255
|
protected readonly dateTimeProvider = $inject(DateTimeProvider);
|
|
@@ -336,7 +336,7 @@ export class TopicDescriptor<T extends TopicMessageSchema> extends Descriptor<
|
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
338
|
|
|
339
|
-
$topic[KIND] =
|
|
339
|
+
$topic[KIND] = TopicPrimitive;
|
|
340
340
|
|
|
341
341
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
342
342
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { $inject, Alepha } from "alepha";
|
|
2
|
-
import { $subscriber } from "../
|
|
3
|
-
import { $topic } from "../
|
|
2
|
+
import { $subscriber } from "../primitives/$subscriber.ts";
|
|
3
|
+
import { $topic } from "../primitives/$topic.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Base class for topic providers.
|
|
@@ -40,7 +40,7 @@ export abstract class TopicProvider {
|
|
|
40
40
|
protected subscribers(): Array<() => Promise<unknown>> {
|
|
41
41
|
const handlers: Array<() => Promise<unknown>> = [];
|
|
42
42
|
|
|
43
|
-
const topics = this.alepha.
|
|
43
|
+
const topics = this.alepha.primitives($topic);
|
|
44
44
|
|
|
45
45
|
for (const topic of topics) {
|
|
46
46
|
if (topic.provider !== this) {
|
|
@@ -53,7 +53,7 @@ export abstract class TopicProvider {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const subscribers = this.alepha.
|
|
56
|
+
const subscribers = this.alepha.primitives($subscriber);
|
|
57
57
|
for (const subscriber of subscribers) {
|
|
58
58
|
if (subscriber.options.topic.provider !== this) {
|
|
59
59
|
continue;
|
package/src/vite/helpers/boot.ts
CHANGED
|
@@ -43,10 +43,8 @@ const getServerEntry = async (
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
const maybeEntry = [
|
|
46
|
-
"src/index.server.ts",
|
|
47
46
|
"src/main.server.ts",
|
|
48
47
|
"src/server-entry.ts",
|
|
49
|
-
"src/index.server.tsx",
|
|
50
48
|
"src/main.server.tsx",
|
|
51
49
|
"src/server-entry.tsx",
|
|
52
50
|
"src/main.ts",
|
|
@@ -68,7 +66,9 @@ const getServerEntry = async (
|
|
|
68
66
|
return clientEntry;
|
|
69
67
|
}
|
|
70
68
|
|
|
71
|
-
throw new AlephaError(
|
|
69
|
+
throw new AlephaError(
|
|
70
|
+
`Could not find a server entry file. List of supported entry file: ${maybeEntry.join(", ")}`,
|
|
71
|
+
);
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
/**
|
|
@@ -27,7 +27,7 @@ export interface CopyAssetsOptions {
|
|
|
27
27
|
export async function copyAssets(opts: CopyAssetsOptions): Promise<void> {
|
|
28
28
|
const root = process.cwd();
|
|
29
29
|
const alepha = await importAlepha(opts.entry);
|
|
30
|
-
const assets = alepha.
|
|
30
|
+
const assets = alepha.store.get("alepha.build.assets");
|
|
31
31
|
|
|
32
32
|
if (!assets || assets.length === 0) {
|
|
33
33
|
return;
|
|
@@ -19,10 +19,10 @@ export interface GenerateSitemapOptions {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* Generate sitemap.xml from Alepha page
|
|
22
|
+
* Generate sitemap.xml from Alepha page primitives.
|
|
23
23
|
*
|
|
24
24
|
* This task loads the built Alepha application,
|
|
25
|
-
* queries all page
|
|
25
|
+
* queries all page primitives, and generates a sitemap.xml
|
|
26
26
|
* containing URLs for all accessible pages.
|
|
27
27
|
*/
|
|
28
28
|
export async function generateSitemap(
|
|
@@ -45,7 +45,7 @@ export async function generateSitemap(
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
function generateSitemapFromAlepha(alepha: Alepha, baseUrl: string): string {
|
|
48
|
-
const pages = alepha.
|
|
48
|
+
const pages = alepha.primitives("page") as any[];
|
|
49
49
|
const urls: string[] = [];
|
|
50
50
|
|
|
51
51
|
for (const page of pages) {
|
|
@@ -34,7 +34,7 @@ export interface PrerenderPagesResult {
|
|
|
34
34
|
* Pre-render static pages defined in the Alepha application.
|
|
35
35
|
*
|
|
36
36
|
* This task loads the built Alepha application, queries all page
|
|
37
|
-
*
|
|
37
|
+
* primitives with `static: true`, and generates static HTML files
|
|
38
38
|
* for each page. Supports pages with parameterized routes via
|
|
39
39
|
* `static.entries` configuration.
|
|
40
40
|
*/
|
|
@@ -59,7 +59,7 @@ async function prerenderFromAlepha(
|
|
|
59
59
|
compress?: ViteCompressOptions | boolean,
|
|
60
60
|
): Promise<PrerenderPagesResult> {
|
|
61
61
|
let count = 0;
|
|
62
|
-
const pages = alepha.
|
|
62
|
+
const pages = alepha.primitives("page") as any[];
|
|
63
63
|
|
|
64
64
|
for (const page of pages) {
|
|
65
65
|
const options = page.options;
|
|
@@ -65,7 +65,7 @@ export class AlephaRunner {
|
|
|
65
65
|
isSsrEnabled(): boolean {
|
|
66
66
|
if (!this.state.app) return false;
|
|
67
67
|
return (
|
|
68
|
-
(this.state.app.
|
|
68
|
+
(this.state.app.store.get("alepha.react.server.ssr" as keyof State) as
|
|
69
69
|
| boolean
|
|
70
70
|
| undefined) ?? false
|
|
71
71
|
);
|
|
@@ -140,7 +140,7 @@ export class AlephaRunner {
|
|
|
140
140
|
return;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
this.state.app.
|
|
143
|
+
this.state.app.store.set("alepha.node.server" as any, server.httpServer);
|
|
144
144
|
|
|
145
145
|
await this.state.app.start();
|
|
146
146
|
this.state.started = true;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { $module, type Alepha } from "alepha";
|
|
2
2
|
import { AlephaTopic } from "alepha/topic";
|
|
3
|
-
import { $channel } from "./
|
|
4
|
-
import { $websocket } from "./
|
|
3
|
+
import { $channel } from "./primitives/$channel.ts";
|
|
4
|
+
import { $websocket } from "./primitives/$websocket.ts";
|
|
5
5
|
import { WebSocketClient } from "./services/WebSocketClient.ts";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -16,7 +16,7 @@ export * from "./index.shared.ts";
|
|
|
16
16
|
|
|
17
17
|
export const AlephaWebSocket = $module({
|
|
18
18
|
name: "alepha.websocket",
|
|
19
|
-
|
|
19
|
+
primitives: [$channel, $websocket],
|
|
20
20
|
services: [WebSocketClient],
|
|
21
21
|
register: (alepha: Alepha) => {
|
|
22
22
|
alepha.with(AlephaTopic);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from "./descriptors/$channel.ts";
|
|
2
|
-
export * from "./descriptors/$websocket.ts";
|
|
3
1
|
export * from "./errors/WebSocketError.ts";
|
|
4
2
|
export * from "./interfaces/WebSocketInterfaces.ts";
|
|
3
|
+
export * from "./primitives/$channel.ts";
|
|
4
|
+
export * from "./primitives/$websocket.ts";
|
|
5
5
|
export * from "./providers/WebSocketServerProvider.ts";
|
|
6
6
|
export * from "./services/RoomManager.ts";
|
|
7
7
|
export * from "./services/WebSocketClient.ts";
|
package/src/websocket/index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { $module, type Alepha } from "alepha";
|
|
2
2
|
import { AlephaServer } from "alepha/server";
|
|
3
3
|
import { AlephaTopic } from "alepha/topic";
|
|
4
|
-
import { $channel } from "./
|
|
5
|
-
import { $websocket } from "./
|
|
4
|
+
import { $channel } from "./primitives/$channel.ts";
|
|
5
|
+
import { $websocket } from "./primitives/$websocket.ts";
|
|
6
6
|
import { NodeWebSocketServerProvider } from "./providers/NodeWebSocketServerProvider.ts";
|
|
7
7
|
import { WebSocketServerProvider } from "./providers/WebSocketServerProvider.ts";
|
|
8
8
|
import { RoomManager } from "./services/RoomManager.ts";
|
|
@@ -60,7 +60,7 @@ export * from "./providers/NodeWebSocketServerProvider.ts";
|
|
|
60
60
|
/**
|
|
61
61
|
* Provides real-time bidirectional communication using WebSockets.
|
|
62
62
|
*
|
|
63
|
-
* The WebSockets module enables building real-time applications using the `$websocket`
|
|
63
|
+
* The WebSockets module enables building real-time applications using the `$websocket` primitive
|
|
64
64
|
* on class properties. It provides automatic connection management, message routing, type-safe
|
|
65
65
|
* message handling, and seamless integration with other Alepha modules.
|
|
66
66
|
*
|
|
@@ -72,7 +72,7 @@ export * from "./providers/NodeWebSocketServerProvider.ts";
|
|
|
72
72
|
*/
|
|
73
73
|
export const AlephaWebSocket = $module({
|
|
74
74
|
name: "alepha.websocket",
|
|
75
|
-
|
|
75
|
+
primitives: [$channel, $websocket],
|
|
76
76
|
services: [
|
|
77
77
|
WebSocketServerProvider,
|
|
78
78
|
NodeWebSocketServerProvider,
|