alepha 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/api-files/index.d.ts +28 -91
- package/dist/api-files/index.js +10 -755
- package/dist/api-files/index.js.map +1 -1
- package/dist/api-jobs/index.d.ts +67 -67
- package/dist/api-jobs/index.js +13 -13
- package/dist/api-jobs/index.js.map +1 -1
- package/dist/api-notifications/index.d.ts +129 -146
- package/dist/api-notifications/index.js +17 -39
- package/dist/api-notifications/index.js.map +1 -1
- package/dist/api-parameters/index.d.ts +21 -22
- package/dist/api-parameters/index.js +22 -22
- package/dist/api-parameters/index.js.map +1 -1
- package/dist/api-users/index.d.ts +224 -2001
- package/dist/api-users/index.js +914 -4787
- package/dist/api-users/index.js.map +1 -1
- package/dist/api-verifications/index.d.ts +96 -96
- package/dist/batch/index.d.ts +13 -13
- package/dist/batch/index.js +8 -8
- package/dist/batch/index.js.map +1 -1
- package/dist/bucket/index.d.ts +14 -14
- package/dist/bucket/index.js +12 -12
- package/dist/bucket/index.js.map +1 -1
- package/dist/cache/index.d.ts +11 -11
- package/dist/cache/index.js +9 -9
- package/dist/cache/index.js.map +1 -1
- package/dist/cli/{dist-Sz2EXvQX.cjs → dist-Dl9Vl7Ur.js} +17 -13
- package/dist/cli/{dist-BBPjuQ56.js.map → dist-Dl9Vl7Ur.js.map} +1 -1
- package/dist/cli/index.d.ts +31 -37
- package/dist/cli/index.js +152 -83
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +19 -19
- package/dist/command/index.js +25 -25
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +218 -218
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +232 -232
- package/dist/core/index.js +218 -218
- package/dist/core/index.js.map +1 -1
- package/dist/core/{index.cjs → index.native.js} +304 -455
- package/dist/core/index.native.js.map +1 -0
- package/dist/datetime/index.d.ts +9 -9
- package/dist/datetime/index.js +7 -7
- package/dist/datetime/index.js.map +1 -1
- package/dist/email/index.d.ts +16 -16
- package/dist/email/index.js +80 -82
- package/dist/email/index.js.map +1 -1
- package/dist/file/index.js +1 -1
- package/dist/file/index.js.map +1 -1
- package/dist/lock/index.d.ts +9 -9
- package/dist/lock/index.js +8 -8
- package/dist/lock/index.js.map +1 -1
- package/dist/lock-redis/index.js +3 -66
- package/dist/lock-redis/index.js.map +1 -1
- package/dist/logger/index.d.ts +5 -5
- package/dist/logger/index.js +8 -8
- package/dist/logger/index.js.map +1 -1
- package/dist/orm/index.browser.js +114 -114
- package/dist/orm/index.browser.js.map +1 -1
- package/dist/orm/index.d.ts +219 -219
- package/dist/orm/index.js +46 -46
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/index.d.ts +25 -25
- package/dist/queue/index.js +20 -20
- package/dist/queue/index.js.map +1 -1
- package/dist/queue-redis/index.d.ts +2 -2
- package/dist/redis/index.d.ts +10 -10
- package/dist/retry/index.d.ts +20 -20
- package/dist/retry/index.js +9 -9
- package/dist/retry/index.js.map +1 -1
- package/dist/scheduler/index.d.ts +12 -12
- package/dist/scheduler/index.js +9 -9
- package/dist/scheduler/index.js.map +1 -1
- package/dist/security/index.d.ts +53 -53
- package/dist/security/index.js +32 -32
- package/dist/security/index.js.map +1 -1
- package/dist/server/index.browser.js +1 -1
- package/dist/server/index.browser.js.map +1 -1
- package/dist/server/index.d.ts +101 -101
- package/dist/server/index.js +17 -17
- package/dist/server/index.js.map +1 -1
- package/dist/server-auth/index.browser.js +4 -982
- package/dist/server-auth/index.browser.js.map +1 -1
- package/dist/server-auth/index.d.ts +204 -785
- package/dist/server-auth/index.js +47 -1239
- package/dist/server-auth/index.js.map +1 -1
- package/dist/server-cache/index.d.ts +10 -10
- package/dist/server-cache/index.js +2 -2
- package/dist/server-cache/index.js.map +1 -1
- package/dist/server-compress/index.d.ts +4 -4
- package/dist/server-compress/index.js +1 -1
- package/dist/server-compress/index.js.map +1 -1
- package/dist/server-cookies/index.browser.js +8 -8
- package/dist/server-cookies/index.browser.js.map +1 -1
- package/dist/server-cookies/index.d.ts +17 -17
- package/dist/server-cookies/index.js +10 -10
- package/dist/server-cookies/index.js.map +1 -1
- package/dist/server-cors/index.d.ts +17 -17
- package/dist/server-cors/index.js +9 -9
- package/dist/server-cors/index.js.map +1 -1
- package/dist/server-health/index.d.ts +2 -2
- package/dist/server-helmet/index.d.ts +1 -1
- package/dist/server-links/index.browser.js +12 -12
- package/dist/server-links/index.browser.js.map +1 -1
- package/dist/server-links/index.d.ts +59 -251
- package/dist/server-links/index.js +23 -502
- package/dist/server-links/index.js.map +1 -1
- package/dist/server-metrics/index.d.ts +4 -4
- package/dist/server-metrics/index.js +170 -174
- package/dist/server-metrics/index.js.map +1 -1
- package/dist/server-multipart/index.d.ts +2 -2
- package/dist/server-proxy/index.d.ts +12 -12
- package/dist/server-proxy/index.js +10 -10
- package/dist/server-proxy/index.js.map +1 -1
- package/dist/server-rate-limit/index.d.ts +22 -22
- package/dist/server-rate-limit/index.js +12 -12
- package/dist/server-rate-limit/index.js.map +1 -1
- package/dist/server-security/index.d.ts +24 -24
- package/dist/server-security/index.js +15 -15
- package/dist/server-security/index.js.map +1 -1
- package/dist/server-static/index.d.ts +14 -14
- package/dist/server-static/index.js +8 -8
- package/dist/server-static/index.js.map +1 -1
- package/dist/server-swagger/index.d.ts +25 -184
- package/dist/server-swagger/index.js +21 -724
- package/dist/server-swagger/index.js.map +1 -1
- package/dist/sms/index.d.ts +14 -14
- package/dist/sms/index.js +9 -9
- package/dist/sms/index.js.map +1 -1
- package/dist/thread/index.d.ts +11 -11
- package/dist/thread/index.js +17 -17
- package/dist/thread/index.js.map +1 -1
- package/dist/topic/index.d.ts +26 -26
- package/dist/topic/index.js +16 -16
- package/dist/topic/index.js.map +1 -1
- package/dist/topic-redis/index.d.ts +1 -1
- package/dist/vite/index.d.ts +3 -3
- package/dist/vite/index.js +12 -13
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.browser.js +11 -11
- package/dist/websocket/index.browser.js.map +1 -1
- package/dist/websocket/index.d.ts +51 -51
- package/dist/websocket/index.js +13 -13
- package/dist/websocket/index.js.map +1 -1
- package/package.json +62 -52
- package/src/api-files/services/FileService.ts +5 -7
- package/src/api-jobs/index.ts +1 -1
- package/src/api-jobs/{descriptors → primitives}/$job.ts +8 -8
- package/src/api-jobs/providers/JobProvider.ts +9 -9
- package/src/api-jobs/services/JobService.ts +5 -5
- package/src/api-notifications/index.ts +5 -15
- package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
- package/src/api-notifications/services/NotificationSenderService.ts +3 -3
- package/src/api-parameters/index.ts +1 -1
- package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
- package/src/api-users/index.ts +1 -1
- package/src/api-users/{descriptors → primitives}/$userRealm.ts +8 -8
- package/src/api-users/providers/UserRealmProvider.ts +1 -1
- package/src/batch/index.ts +3 -3
- package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
- package/src/bucket/index.ts +8 -8
- package/src/bucket/{descriptors → primitives}/$bucket.ts +8 -8
- package/src/bucket/providers/LocalFileStorageProvider.ts +3 -3
- package/src/cache/index.ts +4 -4
- package/src/cache/{descriptors → primitives}/$cache.ts +15 -15
- package/src/cli/apps/AlephaPackageBuilderCli.ts +30 -3
- package/src/cli/assets/appRouterTs.ts +9 -0
- package/src/cli/assets/indexHtml.ts +2 -1
- package/src/cli/assets/mainBrowserTs.ts +10 -0
- package/src/cli/commands/CoreCommands.ts +6 -5
- package/src/cli/commands/DrizzleCommands.ts +69 -61
- package/src/cli/commands/VerifyCommands.ts +2 -2
- package/src/cli/commands/ViteCommands.ts +6 -1
- package/src/cli/services/ProjectUtils.ts +78 -41
- package/src/command/index.ts +5 -5
- package/src/command/{descriptors → primitives}/$command.ts +9 -12
- package/src/command/providers/CliProvider.ts +10 -10
- package/src/core/Alepha.ts +30 -33
- package/src/core/constants/KIND.ts +1 -1
- package/src/core/constants/OPTIONS.ts +1 -1
- package/src/core/helpers/{descriptor.ts → primitive.ts} +18 -18
- package/src/core/helpers/ref.ts +1 -1
- package/src/core/index.shared.ts +8 -8
- package/src/core/{descriptors → primitives}/$context.ts +5 -5
- package/src/core/{descriptors → primitives}/$hook.ts +4 -4
- package/src/core/{descriptors → primitives}/$inject.ts +2 -2
- package/src/core/{descriptors → primitives}/$module.ts +9 -9
- package/src/core/{descriptors → primitives}/$use.ts +2 -2
- package/src/core/providers/CodecManager.ts +1 -1
- package/src/core/providers/JsonSchemaCodec.ts +1 -1
- package/src/core/providers/StateManager.ts +2 -2
- package/src/datetime/index.ts +3 -3
- package/src/datetime/{descriptors → primitives}/$interval.ts +6 -6
- package/src/email/index.ts +4 -4
- package/src/email/{descriptors → primitives}/$email.ts +8 -8
- package/src/file/index.ts +1 -1
- package/src/lock/index.ts +3 -3
- package/src/lock/{descriptors → primitives}/$lock.ts +10 -10
- package/src/logger/index.ts +8 -8
- package/src/logger/{descriptors → primitives}/$logger.ts +2 -2
- package/src/logger/services/Logger.ts +1 -1
- package/src/orm/constants/PG_SYMBOLS.ts +2 -2
- package/src/orm/index.browser.ts +2 -2
- package/src/orm/index.ts +8 -8
- package/src/orm/{descriptors → primitives}/$entity.ts +11 -11
- package/src/orm/{descriptors → primitives}/$repository.ts +2 -2
- package/src/orm/{descriptors → primitives}/$sequence.ts +8 -8
- package/src/orm/{descriptors → primitives}/$transaction.ts +4 -4
- package/src/orm/providers/DrizzleKitProvider.ts +1 -1
- package/src/orm/providers/PostgresTypeProvider.ts +3 -3
- package/src/orm/providers/RepositoryProvider.ts +4 -4
- package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
- package/src/orm/services/ModelBuilder.ts +9 -9
- package/src/orm/services/PgRelationManager.ts +2 -2
- package/src/orm/services/PostgresModelBuilder.ts +5 -5
- package/src/orm/services/Repository.ts +7 -7
- package/src/orm/services/SqliteModelBuilder.ts +5 -5
- package/src/queue/index.ts +7 -7
- package/src/queue/{descriptors → primitives}/$consumer.ts +15 -15
- package/src/queue/{descriptors → primitives}/$queue.ts +12 -12
- package/src/queue/providers/WorkerProvider.ts +7 -7
- package/src/retry/index.ts +3 -3
- package/src/retry/{descriptors → primitives}/$retry.ts +19 -17
- package/src/scheduler/index.ts +3 -3
- package/src/scheduler/{descriptors → primitives}/$scheduler.ts +9 -9
- package/src/scheduler/providers/CronProvider.ts +1 -1
- package/src/security/index.ts +9 -9
- package/src/security/{descriptors → primitives}/$permission.ts +7 -7
- package/src/security/{descriptors → primitives}/$realm.ts +6 -12
- package/src/security/{descriptors → primitives}/$role.ts +12 -12
- package/src/security/{descriptors → primitives}/$serviceAccount.ts +8 -8
- package/src/server/index.browser.ts +1 -1
- package/src/server/index.ts +14 -14
- package/src/server/{descriptors → primitives}/$action.ts +13 -13
- package/src/server/{descriptors → primitives}/$route.ts +9 -9
- package/src/server/providers/NodeHttpServerProvider.ts +2 -2
- package/src/server/services/HttpClient.ts +1 -1
- package/src/server-auth/index.browser.ts +1 -1
- package/src/server-auth/index.ts +6 -6
- package/src/server-auth/{descriptors → primitives}/$auth.ts +10 -10
- package/src/server-auth/{descriptors → primitives}/$authCredentials.ts +4 -4
- package/src/server-auth/{descriptors → primitives}/$authGithub.ts +4 -4
- package/src/server-auth/{descriptors → primitives}/$authGoogle.ts +4 -4
- package/src/server-auth/providers/ServerAuthProvider.ts +4 -4
- package/src/server-cache/providers/ServerCacheProvider.ts +7 -7
- package/src/server-compress/providers/ServerCompressProvider.ts +3 -3
- package/src/server-cookies/index.browser.ts +2 -2
- package/src/server-cookies/index.ts +5 -5
- package/src/server-cookies/{descriptors → primitives}/$cookie.browser.ts +12 -12
- package/src/server-cookies/{descriptors → primitives}/$cookie.ts +13 -13
- package/src/server-cookies/providers/ServerCookiesProvider.ts +4 -4
- package/src/server-cookies/services/CookieParser.ts +1 -1
- package/src/server-cors/index.ts +3 -3
- package/src/server-cors/{descriptors → primitives}/$cors.ts +11 -13
- package/src/server-cors/providers/ServerCorsProvider.ts +5 -5
- package/src/server-links/index.browser.ts +5 -5
- package/src/server-links/index.ts +9 -9
- package/src/server-links/{descriptors → primitives}/$remote.ts +11 -11
- package/src/server-links/providers/LinkProvider.ts +7 -7
- package/src/server-links/providers/{RemoteDescriptorProvider.ts → RemotePrimitiveProvider.ts} +6 -6
- package/src/server-links/providers/ServerLinksProvider.ts +3 -3
- package/src/server-proxy/index.ts +3 -3
- package/src/server-proxy/{descriptors → primitives}/$proxy.ts +8 -8
- package/src/server-proxy/providers/ServerProxyProvider.ts +4 -4
- package/src/server-rate-limit/index.ts +6 -6
- package/src/server-rate-limit/{descriptors → primitives}/$rateLimit.ts +13 -13
- package/src/server-rate-limit/providers/ServerRateLimitProvider.ts +5 -5
- package/src/server-security/index.ts +3 -3
- package/src/server-security/{descriptors → primitives}/$basicAuth.ts +13 -13
- package/src/server-security/providers/ServerBasicAuthProvider.ts +5 -5
- package/src/server-security/providers/ServerSecurityProvider.ts +4 -4
- package/src/server-static/index.ts +3 -3
- package/src/server-static/{descriptors → primitives}/$serve.ts +8 -10
- package/src/server-static/providers/ServerStaticProvider.ts +6 -6
- package/src/server-swagger/index.ts +5 -5
- package/src/server-swagger/{descriptors → primitives}/$swagger.ts +9 -9
- package/src/server-swagger/providers/ServerSwaggerProvider.ts +11 -10
- package/src/sms/index.ts +4 -4
- package/src/sms/{descriptors → primitives}/$sms.ts +8 -8
- package/src/thread/index.ts +3 -3
- package/src/thread/{descriptors → primitives}/$thread.ts +13 -13
- package/src/thread/providers/ThreadProvider.ts +7 -9
- package/src/topic/index.ts +5 -5
- package/src/topic/{descriptors → primitives}/$subscriber.ts +14 -14
- package/src/topic/{descriptors → primitives}/$topic.ts +10 -10
- package/src/topic/providers/TopicProvider.ts +4 -4
- package/src/vite/helpers/boot.ts +3 -3
- package/src/vite/tasks/copyAssets.ts +1 -1
- package/src/vite/tasks/generateSitemap.ts +3 -3
- package/src/vite/tasks/prerenderPages.ts +2 -2
- package/src/vite/tasks/runAlepha.ts +2 -2
- package/src/websocket/index.browser.ts +3 -3
- package/src/websocket/index.shared.ts +2 -2
- package/src/websocket/index.ts +4 -4
- package/src/websocket/interfaces/WebSocketInterfaces.ts +3 -3
- package/src/websocket/{descriptors → primitives}/$channel.ts +10 -10
- package/src/websocket/{descriptors → primitives}/$websocket.ts +8 -8
- package/src/websocket/providers/NodeWebSocketServerProvider.ts +7 -7
- package/src/websocket/providers/WebSocketServerProvider.ts +3 -3
- package/src/websocket/services/WebSocketClient.ts +5 -5
- package/dist/api-files/index.cjs +0 -1293
- package/dist/api-files/index.cjs.map +0 -1
- package/dist/api-files/index.d.cts +0 -829
- package/dist/api-jobs/index.cjs +0 -274
- package/dist/api-jobs/index.cjs.map +0 -1
- package/dist/api-jobs/index.d.cts +0 -654
- package/dist/api-notifications/index.cjs +0 -380
- package/dist/api-notifications/index.cjs.map +0 -1
- package/dist/api-notifications/index.d.cts +0 -289
- package/dist/api-parameters/index.cjs +0 -66
- package/dist/api-parameters/index.cjs.map +0 -1
- package/dist/api-parameters/index.d.cts +0 -84
- package/dist/api-users/index.cjs +0 -6009
- package/dist/api-users/index.cjs.map +0 -1
- package/dist/api-users/index.d.cts +0 -4740
- package/dist/api-verifications/index.cjs +0 -407
- package/dist/api-verifications/index.cjs.map +0 -1
- package/dist/api-verifications/index.d.cts +0 -207
- package/dist/batch/index.cjs +0 -408
- package/dist/batch/index.cjs.map +0 -1
- package/dist/batch/index.d.cts +0 -330
- package/dist/bin/index.cjs +0 -17
- package/dist/bin/index.cjs.map +0 -1
- package/dist/bin/index.d.cts +0 -1
- package/dist/bucket/index.cjs +0 -303
- package/dist/bucket/index.cjs.map +0 -1
- package/dist/bucket/index.d.cts +0 -355
- package/dist/cache/index.cjs +0 -241
- package/dist/cache/index.cjs.map +0 -1
- package/dist/cache/index.d.cts +0 -202
- package/dist/cache-redis/index.cjs +0 -84
- package/dist/cache-redis/index.cjs.map +0 -1
- package/dist/cache-redis/index.d.cts +0 -40
- package/dist/cli/chunk-DSlc6foC.cjs +0 -43
- package/dist/cli/dist-BBPjuQ56.js +0 -2778
- package/dist/cli/dist-Sz2EXvQX.cjs.map +0 -1
- package/dist/cli/index.cjs +0 -1241
- package/dist/cli/index.cjs.map +0 -1
- package/dist/cli/index.d.cts +0 -422
- package/dist/command/index.cjs +0 -693
- package/dist/command/index.cjs.map +0 -1
- package/dist/command/index.d.cts +0 -340
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -1927
- package/dist/datetime/index.cjs +0 -318
- package/dist/datetime/index.cjs.map +0 -1
- package/dist/datetime/index.d.cts +0 -145
- package/dist/email/index.cjs +0 -10874
- package/dist/email/index.cjs.map +0 -1
- package/dist/email/index.d.cts +0 -186
- package/dist/fake/index.cjs +0 -34641
- package/dist/fake/index.cjs.map +0 -1
- package/dist/fake/index.d.cts +0 -74
- package/dist/file/index.cjs +0 -1212
- package/dist/file/index.cjs.map +0 -1
- package/dist/file/index.d.cts +0 -698
- package/dist/lock/index.cjs +0 -226
- package/dist/lock/index.cjs.map +0 -1
- package/dist/lock/index.d.cts +0 -361
- package/dist/lock-redis/index.cjs +0 -113
- package/dist/lock-redis/index.cjs.map +0 -1
- package/dist/lock-redis/index.d.cts +0 -24
- package/dist/logger/index.cjs +0 -521
- package/dist/logger/index.cjs.map +0 -1
- package/dist/logger/index.d.cts +0 -281
- package/dist/orm/index.cjs +0 -2986
- package/dist/orm/index.cjs.map +0 -1
- package/dist/orm/index.d.cts +0 -2213
- package/dist/queue/index.cjs +0 -1044
- package/dist/queue/index.cjs.map +0 -1
- package/dist/queue/index.d.cts +0 -1265
- package/dist/queue-redis/index.cjs +0 -873
- package/dist/queue-redis/index.cjs.map +0 -1
- package/dist/queue-redis/index.d.cts +0 -82
- package/dist/redis/index.cjs +0 -153
- package/dist/redis/index.cjs.map +0 -1
- package/dist/redis/index.d.cts +0 -82
- package/dist/retry/index.cjs +0 -146
- package/dist/retry/index.cjs.map +0 -1
- package/dist/retry/index.d.cts +0 -172
- package/dist/router/index.cjs +0 -111
- package/dist/router/index.cjs.map +0 -1
- package/dist/router/index.d.cts +0 -46
- package/dist/scheduler/index.cjs +0 -576
- package/dist/scheduler/index.cjs.map +0 -1
- package/dist/scheduler/index.d.cts +0 -145
- package/dist/security/index.cjs +0 -2402
- package/dist/security/index.cjs.map +0 -1
- package/dist/security/index.d.cts +0 -598
- package/dist/server/index.cjs +0 -1680
- package/dist/server/index.cjs.map +0 -1
- package/dist/server/index.d.cts +0 -810
- package/dist/server-auth/index.cjs +0 -3146
- package/dist/server-auth/index.cjs.map +0 -1
- package/dist/server-auth/index.d.cts +0 -1164
- package/dist/server-cache/index.cjs +0 -252
- package/dist/server-cache/index.cjs.map +0 -1
- package/dist/server-cache/index.d.cts +0 -164
- package/dist/server-compress/index.cjs +0 -141
- package/dist/server-compress/index.cjs.map +0 -1
- package/dist/server-compress/index.d.cts +0 -38
- package/dist/server-cookies/index.cjs +0 -234
- package/dist/server-cookies/index.cjs.map +0 -1
- package/dist/server-cookies/index.d.cts +0 -144
- package/dist/server-cors/index.cjs +0 -201
- package/dist/server-cors/index.cjs.map +0 -1
- package/dist/server-cors/index.d.cts +0 -140
- package/dist/server-health/index.cjs +0 -62
- package/dist/server-health/index.cjs.map +0 -1
- package/dist/server-health/index.d.cts +0 -58
- package/dist/server-helmet/index.cjs +0 -131
- package/dist/server-helmet/index.cjs.map +0 -1
- package/dist/server-helmet/index.d.cts +0 -97
- package/dist/server-links/index.cjs +0 -992
- package/dist/server-links/index.cjs.map +0 -1
- package/dist/server-links/index.d.cts +0 -513
- package/dist/server-metrics/index.cjs +0 -4535
- package/dist/server-metrics/index.cjs.map +0 -1
- package/dist/server-metrics/index.d.cts +0 -35
- package/dist/server-multipart/index.cjs +0 -237
- package/dist/server-multipart/index.cjs.map +0 -1
- package/dist/server-multipart/index.d.cts +0 -50
- package/dist/server-proxy/index.cjs +0 -186
- package/dist/server-proxy/index.cjs.map +0 -1
- package/dist/server-proxy/index.d.cts +0 -234
- package/dist/server-rate-limit/index.cjs +0 -241
- package/dist/server-rate-limit/index.cjs.map +0 -1
- package/dist/server-rate-limit/index.d.cts +0 -183
- package/dist/server-security/index.cjs +0 -316
- package/dist/server-security/index.cjs.map +0 -1
- package/dist/server-security/index.d.cts +0 -173
- package/dist/server-static/index.cjs +0 -170
- package/dist/server-static/index.cjs.map +0 -1
- package/dist/server-static/index.d.cts +0 -121
- package/dist/server-swagger/index.cjs +0 -1021
- package/dist/server-swagger/index.cjs.map +0 -1
- package/dist/server-swagger/index.d.cts +0 -382
- package/dist/sms/index.cjs +0 -221
- package/dist/sms/index.cjs.map +0 -1
- package/dist/sms/index.d.cts +0 -130
- package/dist/thread/index.cjs +0 -350
- package/dist/thread/index.cjs.map +0 -1
- package/dist/thread/index.d.cts +0 -260
- package/dist/topic/index.cjs +0 -282
- package/dist/topic/index.cjs.map +0 -1
- package/dist/topic/index.d.cts +0 -523
- package/dist/topic-redis/index.cjs +0 -71
- package/dist/topic-redis/index.cjs.map +0 -1
- package/dist/topic-redis/index.d.cts +0 -42
- package/dist/vite/index.cjs +0 -1077
- package/dist/vite/index.cjs.map +0 -1
- package/dist/vite/index.d.cts +0 -542
- package/dist/websocket/index.cjs +0 -1117
- package/dist/websocket/index.cjs.map +0 -1
- package/dist/websocket/index.d.cts +0 -861
- package/src/api-notifications/providers/MemorySmsProvider.ts +0 -20
- package/src/api-notifications/providers/SmsProvider.ts +0 -8
- /package/src/core/{descriptors → primitives}/$atom.ts +0 -0
- /package/src/core/{descriptors → primitives}/$env.ts +0 -0
- /package/src/server-auth/{descriptors → primitives}/$authApple.ts +0 -0
- /package/src/server-links/{descriptors → primitives}/$client.ts +0 -0
package/dist/core/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import * as TypeBoxValue from "typebox/value";
|
|
|
10
10
|
|
|
11
11
|
//#region src/core/constants/KIND.ts
|
|
12
12
|
/**
|
|
13
|
-
* Used for identifying
|
|
13
|
+
* Used for identifying primitives.
|
|
14
14
|
*
|
|
15
15
|
* @internal
|
|
16
16
|
*/
|
|
@@ -28,7 +28,7 @@ const MODULE = Symbol.for("Alepha.Module");
|
|
|
28
28
|
//#endregion
|
|
29
29
|
//#region src/core/constants/OPTIONS.ts
|
|
30
30
|
/**
|
|
31
|
-
* Used for
|
|
31
|
+
* Used for primitives options.
|
|
32
32
|
*
|
|
33
33
|
* @internal
|
|
34
34
|
*/
|
|
@@ -43,98 +43,6 @@ var AlephaError = class extends Error {
|
|
|
43
43
|
name = "AlephaError";
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
//#endregion
|
|
47
|
-
//#region src/core/descriptors/$module.ts
|
|
48
|
-
/**
|
|
49
|
-
* Wrap Services and Descriptors into a Module.
|
|
50
|
-
*
|
|
51
|
-
* - A module is just a Service with some extra {@link Module}.
|
|
52
|
-
* - You must attach a `name` to it.
|
|
53
|
-
* - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* ```ts
|
|
57
|
-
* import { $module } from "alepha";
|
|
58
|
-
* import { MyService } from "./MyService.ts";
|
|
59
|
-
*
|
|
60
|
-
* // export MyService, so it can be used everywhere (optional)
|
|
61
|
-
* export * from "./MyService.ts";
|
|
62
|
-
*
|
|
63
|
-
* export default $module({
|
|
64
|
-
* name: "my.project.module",
|
|
65
|
-
* // MyService will have a module context "my.project.module"
|
|
66
|
-
* services: [MyService],
|
|
67
|
-
* });
|
|
68
|
-
* ```
|
|
69
|
-
*
|
|
70
|
-
* ### Why Modules?
|
|
71
|
-
*
|
|
72
|
-
* #### Logging
|
|
73
|
-
*
|
|
74
|
-
* By default, AlephaLogger will log the module name in the logs.
|
|
75
|
-
* This helps to identify where the logs are coming from.
|
|
76
|
-
*
|
|
77
|
-
* You can also set different log levels for different modules.
|
|
78
|
-
* It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
|
|
79
|
-
*
|
|
80
|
-
* #### Modulith
|
|
81
|
-
*
|
|
82
|
-
* Force to structure your application in modules, even if it's a single deployable unit.
|
|
83
|
-
* It helps to keep a clean architecture and avoid monolithic applications.
|
|
84
|
-
*
|
|
85
|
-
* A strict mode flag will probably come to enforce module boundaries.
|
|
86
|
-
* -> Throwing errors when a service from another module is injected.
|
|
87
|
-
* But it's not implemented yet.
|
|
88
|
-
*
|
|
89
|
-
* ### When not to use Modules?
|
|
90
|
-
*
|
|
91
|
-
* Small applications does not need modules. It's better to keep it simple.
|
|
92
|
-
* Modules are more useful when the application grows and needs to be structured.
|
|
93
|
-
* If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
|
|
94
|
-
* Meaning that if you have 100 actions, you should have at least 3 modules.
|
|
95
|
-
*/
|
|
96
|
-
const $module = (options) => {
|
|
97
|
-
const { services = [], descriptors = [], name } = options;
|
|
98
|
-
if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
|
|
99
|
-
const $ = class extends Module {
|
|
100
|
-
options = options;
|
|
101
|
-
register(alepha) {
|
|
102
|
-
if (typeof options.register === "function") {
|
|
103
|
-
options.register(alepha);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
for (const service of services) alepha.inject(service, { parent: this.constructor });
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
Object.defineProperty($, "name", {
|
|
110
|
-
value: name,
|
|
111
|
-
writable: false
|
|
112
|
-
});
|
|
113
|
-
for (const service of services) if (!Module.is(service)) service[MODULE] = $;
|
|
114
|
-
for (const factory of descriptors) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
|
|
115
|
-
return $;
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Base class for all modules.
|
|
119
|
-
*/
|
|
120
|
-
var Module = class Module {
|
|
121
|
-
static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
|
|
122
|
-
/**
|
|
123
|
-
* Check if a Service is a Module.
|
|
124
|
-
*/
|
|
125
|
-
static is(ctor) {
|
|
126
|
-
return ctor.prototype instanceof Module;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Get the Module of a Service.
|
|
130
|
-
*
|
|
131
|
-
* Returns undefined if the Service is not part of a Module.
|
|
132
|
-
*/
|
|
133
|
-
static of(ctor) {
|
|
134
|
-
return ctor[MODULE];
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
46
|
//#endregion
|
|
139
47
|
//#region src/core/errors/CircularDependencyError.ts
|
|
140
48
|
var CircularDependencyError = class extends AlephaError {
|
|
@@ -183,7 +91,7 @@ const __alephaRef = {};
|
|
|
183
91
|
/**
|
|
184
92
|
* Note:
|
|
185
93
|
*
|
|
186
|
-
* This file is used to share context between $
|
|
94
|
+
* This file is used to share context between $primitives and the Alepha core during the injection phase.
|
|
187
95
|
*
|
|
188
96
|
* There is no side effect as long as Alepha is not used concurrently in multiple contexts (which is not the case).
|
|
189
97
|
*
|
|
@@ -222,11 +130,11 @@ const __alephaRef = {};
|
|
|
222
130
|
*/
|
|
223
131
|
|
|
224
132
|
//#endregion
|
|
225
|
-
//#region src/core/
|
|
133
|
+
//#region src/core/primitives/$context.ts
|
|
226
134
|
/**
|
|
227
135
|
* Get Alepha instance and current service from the current context.
|
|
228
136
|
*
|
|
229
|
-
* It can only be used inside $
|
|
137
|
+
* It can only be used inside $primitive functions.
|
|
230
138
|
*
|
|
231
139
|
* ```ts
|
|
232
140
|
* import { $context } from "alepha";
|
|
@@ -235,7 +143,7 @@ const __alephaRef = {};
|
|
|
235
143
|
* const { alepha, service, module } = $context();
|
|
236
144
|
*
|
|
237
145
|
* // alepha - alepha instance
|
|
238
|
-
* // service - class which is creating this
|
|
146
|
+
* // service - class which is creating this primitive, this is NOT the instance but the service definition
|
|
239
147
|
* // module - module definition, if any
|
|
240
148
|
*
|
|
241
149
|
* return {};
|
|
@@ -260,8 +168,8 @@ const $context = () => {
|
|
|
260
168
|
};
|
|
261
169
|
|
|
262
170
|
//#endregion
|
|
263
|
-
//#region src/core/helpers/
|
|
264
|
-
var
|
|
171
|
+
//#region src/core/helpers/primitive.ts
|
|
172
|
+
var Primitive = class {
|
|
265
173
|
alepha;
|
|
266
174
|
options;
|
|
267
175
|
config;
|
|
@@ -275,14 +183,14 @@ var Descriptor = class {
|
|
|
275
183
|
};
|
|
276
184
|
}
|
|
277
185
|
/**
|
|
278
|
-
* Called automatically by Alepha after the
|
|
186
|
+
* Called automatically by Alepha after the primitive is created.
|
|
279
187
|
*/
|
|
280
188
|
onInit() {}
|
|
281
189
|
};
|
|
282
|
-
const
|
|
190
|
+
const createPrimitive = (primitive, options) => {
|
|
283
191
|
const { alepha, service } = $context();
|
|
284
|
-
if (MODULE in
|
|
285
|
-
return alepha.inject(
|
|
192
|
+
if (MODULE in primitive && primitive[MODULE]) alepha.with(primitive[MODULE]);
|
|
193
|
+
return alepha.inject(primitive, {
|
|
286
194
|
lifetime: "transient",
|
|
287
195
|
args: [{
|
|
288
196
|
options,
|
|
@@ -300,6 +208,98 @@ function isClass(func) {
|
|
|
300
208
|
return !!descriptor && !descriptor.writable;
|
|
301
209
|
}
|
|
302
210
|
|
|
211
|
+
//#endregion
|
|
212
|
+
//#region src/core/primitives/$module.ts
|
|
213
|
+
/**
|
|
214
|
+
* Wrap Services and Primitives into a Module.
|
|
215
|
+
*
|
|
216
|
+
* - A module is just a Service with some extra {@link Module}.
|
|
217
|
+
* - You must attach a `name` to it.
|
|
218
|
+
* - Name must follow the pattern: `project.module.submodule`. (e.g. `myapp.users.auth`).
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```ts
|
|
222
|
+
* import { $module } from "alepha";
|
|
223
|
+
* import { MyService } from "./MyService.ts";
|
|
224
|
+
*
|
|
225
|
+
* // export MyService, so it can be used everywhere (optional)
|
|
226
|
+
* export * from "./MyService.ts";
|
|
227
|
+
*
|
|
228
|
+
* export default $module({
|
|
229
|
+
* name: "my.project.module",
|
|
230
|
+
* // MyService will have a module context "my.project.module"
|
|
231
|
+
* services: [MyService],
|
|
232
|
+
* });
|
|
233
|
+
* ```
|
|
234
|
+
*
|
|
235
|
+
* ### Why Modules?
|
|
236
|
+
*
|
|
237
|
+
* #### Logging
|
|
238
|
+
*
|
|
239
|
+
* By default, AlephaLogger will log the module name in the logs.
|
|
240
|
+
* This helps to identify where the logs are coming from.
|
|
241
|
+
*
|
|
242
|
+
* You can also set different log levels for different modules.
|
|
243
|
+
* It means you can set 'some.very.specific.module' to 'debug' and keep the rest of the application to 'info'.
|
|
244
|
+
*
|
|
245
|
+
* #### Modulith
|
|
246
|
+
*
|
|
247
|
+
* Force to structure your application in modules, even if it's a single deployable unit.
|
|
248
|
+
* It helps to keep a clean architecture and avoid monolithic applications.
|
|
249
|
+
*
|
|
250
|
+
* A strict mode flag will probably come to enforce module boundaries.
|
|
251
|
+
* -> Throwing errors when a service from another module is injected.
|
|
252
|
+
* But it's not implemented yet.
|
|
253
|
+
*
|
|
254
|
+
* ### When not to use Modules?
|
|
255
|
+
*
|
|
256
|
+
* Small applications does not need modules. It's better to keep it simple.
|
|
257
|
+
* Modules are more useful when the application grows and needs to be structured.
|
|
258
|
+
* If we speak with number of `$actions`, a module should be used when you have more than 30 actions in a single module.
|
|
259
|
+
* Meaning that if you have 100 actions, you should have at least 3 modules.
|
|
260
|
+
*/
|
|
261
|
+
const $module = (options) => {
|
|
262
|
+
const { services = [], primitives = [], name } = options;
|
|
263
|
+
if (!name || !Module.NAME_REGEX.test(name)) throw new AlephaError(`Invalid module name '${name}'. It should be in the format of 'project.module.submodule'`);
|
|
264
|
+
const $ = class extends Module {
|
|
265
|
+
options = options;
|
|
266
|
+
register(alepha) {
|
|
267
|
+
if (typeof options.register === "function") {
|
|
268
|
+
options.register(alepha);
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
for (const service of services) alepha.inject(service, { parent: this.constructor });
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
Object.defineProperty($, "name", {
|
|
275
|
+
value: name,
|
|
276
|
+
writable: false
|
|
277
|
+
});
|
|
278
|
+
for (const service of services) if (!Module.is(service)) service[MODULE] = $;
|
|
279
|
+
for (const factory of primitives) if (typeof factory[KIND] === "function") factory[KIND][MODULE] = $;
|
|
280
|
+
return $;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* Base class for all modules.
|
|
284
|
+
*/
|
|
285
|
+
var Module = class Module {
|
|
286
|
+
static NAME_REGEX = /^[a-z]+(\.[a-z][a-z0-9-]*)*$/;
|
|
287
|
+
/**
|
|
288
|
+
* Check if a Service is a Module.
|
|
289
|
+
*/
|
|
290
|
+
static is(ctor) {
|
|
291
|
+
return ctor.prototype instanceof Module;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get the Module of a Service.
|
|
295
|
+
*
|
|
296
|
+
* Returns undefined if the Service is not part of a Module.
|
|
297
|
+
*/
|
|
298
|
+
static of(ctor) {
|
|
299
|
+
return ctor[MODULE];
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
|
|
303
303
|
//#endregion
|
|
304
304
|
//#region src/core/providers/AlsProvider.ts
|
|
305
305
|
var AlsProvider = class AlsProvider {
|
|
@@ -333,7 +333,7 @@ var AlsProvider = class AlsProvider {
|
|
|
333
333
|
};
|
|
334
334
|
|
|
335
335
|
//#endregion
|
|
336
|
-
//#region src/core/
|
|
336
|
+
//#region src/core/primitives/$inject.ts
|
|
337
337
|
/**
|
|
338
338
|
* Get the instance of the specified type from the context.
|
|
339
339
|
*
|
|
@@ -352,7 +352,7 @@ const $inject = (type, opts = {}) => {
|
|
|
352
352
|
...opts
|
|
353
353
|
});
|
|
354
354
|
};
|
|
355
|
-
var
|
|
355
|
+
var InjectPrimitive = class extends Primitive {};
|
|
356
356
|
|
|
357
357
|
//#endregion
|
|
358
358
|
//#region src/core/providers/Json.ts
|
|
@@ -620,7 +620,7 @@ var EventManager = class {
|
|
|
620
620
|
};
|
|
621
621
|
|
|
622
622
|
//#endregion
|
|
623
|
-
//#region src/core/
|
|
623
|
+
//#region src/core/primitives/$atom.ts
|
|
624
624
|
/**
|
|
625
625
|
* Define an atom for state management.
|
|
626
626
|
*
|
|
@@ -823,7 +823,7 @@ var StateManager = class {
|
|
|
823
823
|
* // You can access the environment variables using alepha.env
|
|
824
824
|
* console.log(alepha.env.MY_VAR); // "value"
|
|
825
825
|
*
|
|
826
|
-
* // But you should use $env()
|
|
826
|
+
* // But you should use $env() primitive to get typed values from the environment.
|
|
827
827
|
* class App {
|
|
828
828
|
* env = $env(
|
|
829
829
|
* t.object({
|
|
@@ -836,7 +836,7 @@ var StateManager = class {
|
|
|
836
836
|
* ### Modules
|
|
837
837
|
*
|
|
838
838
|
* Modules are a way to group services together.
|
|
839
|
-
* You can register a module using the `$module`
|
|
839
|
+
* You can register a module using the `$module` primitive.
|
|
840
840
|
*
|
|
841
841
|
* ```ts
|
|
842
842
|
* import { $module } from "alepha";
|
|
@@ -854,7 +854,7 @@ var StateManager = class {
|
|
|
854
854
|
* ### Hooks
|
|
855
855
|
*
|
|
856
856
|
* Hooks are a way to run async functions from all registered providers/services.
|
|
857
|
-
* You can register a hook using the `$hook`
|
|
857
|
+
* You can register a hook using the `$hook` primitive.
|
|
858
858
|
*
|
|
859
859
|
* ```ts
|
|
860
860
|
* import { $hook } from "alepha";
|
|
@@ -915,7 +915,7 @@ var Alepha = class Alepha {
|
|
|
915
915
|
try {
|
|
916
916
|
onTestFinished?.(() => alepha.stop());
|
|
917
917
|
} catch (_error) {}
|
|
918
|
-
alepha.
|
|
918
|
+
alepha.store.set("alepha.test.beforeAll", beforeAll).set("alepha.test.afterAll", afterAll).set("alepha.test.afterEach", afterEach).set("alepha.test.onTestFinished", onTestFinished);
|
|
919
919
|
}
|
|
920
920
|
return alepha;
|
|
921
921
|
}
|
|
@@ -969,9 +969,9 @@ var Alepha = class Alepha {
|
|
|
969
969
|
*/
|
|
970
970
|
substitutions = /* @__PURE__ */ new Map();
|
|
971
971
|
/**
|
|
972
|
-
* Registry of
|
|
972
|
+
* Registry of primitives.
|
|
973
973
|
*/
|
|
974
|
-
|
|
974
|
+
primitiveRegistry = /* @__PURE__ */ new Map();
|
|
975
975
|
/**
|
|
976
976
|
* List of all services + how they are provided.
|
|
977
977
|
*/
|
|
@@ -995,7 +995,7 @@ var Alepha = class Alepha {
|
|
|
995
995
|
/**
|
|
996
996
|
* State manager to store arbitrary values.
|
|
997
997
|
*/
|
|
998
|
-
get
|
|
998
|
+
get store() {
|
|
999
999
|
this.events;
|
|
1000
1000
|
return this.inject(StateManager, { args: [this.init] });
|
|
1001
1001
|
}
|
|
@@ -1011,13 +1011,13 @@ var Alepha = class Alepha {
|
|
|
1011
1011
|
* Get logger instance.
|
|
1012
1012
|
*/
|
|
1013
1013
|
get log() {
|
|
1014
|
-
return this.
|
|
1014
|
+
return this.store.get("alepha.logger");
|
|
1015
1015
|
}
|
|
1016
1016
|
/**
|
|
1017
1017
|
* The environment variables for the App.
|
|
1018
1018
|
*/
|
|
1019
1019
|
get env() {
|
|
1020
|
-
return this.
|
|
1020
|
+
return this.store.get("env") ?? {};
|
|
1021
1021
|
}
|
|
1022
1022
|
constructor(init = {}) {
|
|
1023
1023
|
this.init = init;
|
|
@@ -1106,7 +1106,7 @@ var Alepha = class Alepha {
|
|
|
1106
1106
|
* Starts the App.
|
|
1107
1107
|
*
|
|
1108
1108
|
* - Lock any further changes to the container.
|
|
1109
|
-
* - Run "configure" hook for all services.
|
|
1109
|
+
* - Run "configure" hook for all services. Primitives will be processed.
|
|
1110
1110
|
* - Run "start" hook for all services. Providers will connect/listen/...
|
|
1111
1111
|
* - Run "ready" hook for all services. This is the point where the App is ready to serve requests.
|
|
1112
1112
|
*
|
|
@@ -1126,10 +1126,10 @@ var Alepha = class Alepha {
|
|
|
1126
1126
|
const now = Date.now();
|
|
1127
1127
|
this.log?.info("Starting App...");
|
|
1128
1128
|
for (const [key] of this.substitutions.entries()) this.inject(key);
|
|
1129
|
-
const target = this.
|
|
1129
|
+
const target = this.store.get("alepha.target");
|
|
1130
1130
|
if (target) {
|
|
1131
1131
|
this.registry = /* @__PURE__ */ new Map();
|
|
1132
|
-
this.
|
|
1132
|
+
this.primitiveRegistry = /* @__PURE__ */ new Map();
|
|
1133
1133
|
this.with(target);
|
|
1134
1134
|
}
|
|
1135
1135
|
this.locked = true;
|
|
@@ -1323,19 +1323,19 @@ var Alepha = class Alepha {
|
|
|
1323
1323
|
return list;
|
|
1324
1324
|
}
|
|
1325
1325
|
/**
|
|
1326
|
-
* Get all
|
|
1326
|
+
* Get all primitives of the specified type.
|
|
1327
1327
|
*/
|
|
1328
|
-
|
|
1328
|
+
primitives(factory) {
|
|
1329
1329
|
if (typeof factory === "string") {
|
|
1330
1330
|
const key1 = factory.toLowerCase().replace("$", "");
|
|
1331
|
-
const key2 = `${key1}
|
|
1332
|
-
for (const [key, value] of this.
|
|
1331
|
+
const key2 = `${key1}primitive`;
|
|
1332
|
+
for (const [key, value] of this.primitiveRegistry.entries()) {
|
|
1333
1333
|
const name = key.name.toLowerCase();
|
|
1334
1334
|
if (name === key1 || name === key2) return value;
|
|
1335
1335
|
}
|
|
1336
1336
|
return [];
|
|
1337
1337
|
}
|
|
1338
|
-
return this.
|
|
1338
|
+
return this.primitiveRegistry.get(factory[KIND]) ?? [];
|
|
1339
1339
|
}
|
|
1340
1340
|
new(service, args = []) {
|
|
1341
1341
|
this.pendingInstantiations.push(service);
|
|
@@ -1344,10 +1344,10 @@ var Alepha = class Alepha {
|
|
|
1344
1344
|
const instance = isClass(service) ? new service(...args) : service(...args) ?? {};
|
|
1345
1345
|
const obj = instance;
|
|
1346
1346
|
for (const [key, value] of Object.entries(obj)) {
|
|
1347
|
-
if (value instanceof
|
|
1347
|
+
if (value instanceof Primitive) this.processPrimitive(value, key);
|
|
1348
1348
|
if (typeof value === "object" && value !== null && typeof value[OPTIONS] === "object" && "getter" in value[OPTIONS]) {
|
|
1349
1349
|
const getter = value[OPTIONS].getter;
|
|
1350
|
-
Object.defineProperty(obj, key, { get: () => this.
|
|
1350
|
+
Object.defineProperty(obj, key, { get: () => this.store.get(getter) });
|
|
1351
1351
|
}
|
|
1352
1352
|
}
|
|
1353
1353
|
this.pendingInstantiations.pop();
|
|
@@ -1355,15 +1355,95 @@ var Alepha = class Alepha {
|
|
|
1355
1355
|
__alephaRef.service = this.pendingInstantiations[this.pendingInstantiations.length - 1];
|
|
1356
1356
|
return instance;
|
|
1357
1357
|
}
|
|
1358
|
-
|
|
1358
|
+
processPrimitive(value, propertyKey = "") {
|
|
1359
1359
|
value.config.propertyKey = propertyKey;
|
|
1360
1360
|
value.onInit();
|
|
1361
1361
|
const kind = value.constructor;
|
|
1362
|
-
const list = this.
|
|
1363
|
-
this.
|
|
1362
|
+
const list = this.primitiveRegistry.get(kind) ?? [];
|
|
1363
|
+
this.primitiveRegistry.set(kind, [...list, value]);
|
|
1364
1364
|
}
|
|
1365
1365
|
};
|
|
1366
1366
|
|
|
1367
|
+
//#endregion
|
|
1368
|
+
//#region src/core/errors/AppNotStartedError.ts
|
|
1369
|
+
var AppNotStartedError = class extends AlephaError {
|
|
1370
|
+
name = "AppNotStartedError";
|
|
1371
|
+
constructor() {
|
|
1372
|
+
super("App not started. Please start the app before.");
|
|
1373
|
+
}
|
|
1374
|
+
};
|
|
1375
|
+
|
|
1376
|
+
//#endregion
|
|
1377
|
+
//#region src/core/helpers/createPagination.ts
|
|
1378
|
+
/**
|
|
1379
|
+
* Create a pagination object from an array of entities.
|
|
1380
|
+
*
|
|
1381
|
+
* This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
|
|
1382
|
+
* It handles the core pagination logic including:
|
|
1383
|
+
* - Slicing the content to the requested page size
|
|
1384
|
+
* - Calculating pagination metadata (offset, page number, etc.)
|
|
1385
|
+
* - Determining navigation state (isFirst, isLast)
|
|
1386
|
+
* - Including sort metadata when provided
|
|
1387
|
+
*
|
|
1388
|
+
* @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
|
|
1389
|
+
* @param limit - The limit of the pagination (page size)
|
|
1390
|
+
* @param offset - The offset of the pagination (starting position)
|
|
1391
|
+
* @param sort - Optional sort metadata to include in response
|
|
1392
|
+
* @returns A complete Page object with content and metadata
|
|
1393
|
+
*
|
|
1394
|
+
* @example Basic pagination
|
|
1395
|
+
* ```ts
|
|
1396
|
+
* const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
|
|
1397
|
+
* const page = createPagination(users, 10, 0);
|
|
1398
|
+
* // page.content has max 10 items
|
|
1399
|
+
* // page.page.isLast tells us if there are more pages
|
|
1400
|
+
* ```
|
|
1401
|
+
*
|
|
1402
|
+
* @example With sorting
|
|
1403
|
+
* ```ts
|
|
1404
|
+
* const page = createPagination(
|
|
1405
|
+
* entities,
|
|
1406
|
+
* 10,
|
|
1407
|
+
* 0,
|
|
1408
|
+
* [{ column: "name", direction: "asc" }]
|
|
1409
|
+
* );
|
|
1410
|
+
* ```
|
|
1411
|
+
*
|
|
1412
|
+
* @example In a custom service
|
|
1413
|
+
* ```ts
|
|
1414
|
+
* class MyService {
|
|
1415
|
+
* async listItems(page: number, size: number) {
|
|
1416
|
+
* const items = await this.fetchItems({ limit: size + 1, offset: page * size });
|
|
1417
|
+
* return createPagination(items, size, page * size);
|
|
1418
|
+
* }
|
|
1419
|
+
* }
|
|
1420
|
+
* ```
|
|
1421
|
+
*/
|
|
1422
|
+
function createPagination(entities, limit = 10, offset = 0, sort) {
|
|
1423
|
+
const content = entities.slice(0, limit);
|
|
1424
|
+
const hasNext = entities.length === limit + 1;
|
|
1425
|
+
const pageNumber = Math.floor(offset / limit);
|
|
1426
|
+
return {
|
|
1427
|
+
content,
|
|
1428
|
+
page: {
|
|
1429
|
+
number: pageNumber,
|
|
1430
|
+
size: limit,
|
|
1431
|
+
offset,
|
|
1432
|
+
numberOfElements: content.length,
|
|
1433
|
+
isEmpty: content.length === 0,
|
|
1434
|
+
isFirst: pageNumber === 0,
|
|
1435
|
+
isLast: !hasNext,
|
|
1436
|
+
...sort && sort.length > 0 ? { sort: {
|
|
1437
|
+
sorted: true,
|
|
1438
|
+
fields: sort.map((s) => ({
|
|
1439
|
+
field: s.column,
|
|
1440
|
+
direction: s.direction
|
|
1441
|
+
}))
|
|
1442
|
+
} } : {}
|
|
1443
|
+
}
|
|
1444
|
+
};
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1367
1447
|
//#endregion
|
|
1368
1448
|
//#region src/core/helpers/FileLike.ts
|
|
1369
1449
|
const isTypeFile = (value) => {
|
|
@@ -1819,7 +1899,7 @@ var TypeProvider = class TypeProvider {
|
|
|
1819
1899
|
const t = new TypeProvider();
|
|
1820
1900
|
|
|
1821
1901
|
//#endregion
|
|
1822
|
-
//#region src/core/
|
|
1902
|
+
//#region src/core/primitives/$env.ts
|
|
1823
1903
|
/**
|
|
1824
1904
|
* Get typed values from environment variables.
|
|
1825
1905
|
*
|
|
@@ -1853,7 +1933,7 @@ const $env = (type) => {
|
|
|
1853
1933
|
};
|
|
1854
1934
|
|
|
1855
1935
|
//#endregion
|
|
1856
|
-
//#region src/core/
|
|
1936
|
+
//#region src/core/primitives/$hook.ts
|
|
1857
1937
|
/**
|
|
1858
1938
|
* Registers a new hook.
|
|
1859
1939
|
*
|
|
@@ -1893,8 +1973,8 @@ const $env = (type) => {
|
|
|
1893
1973
|
* ```
|
|
1894
1974
|
*
|
|
1895
1975
|
*/
|
|
1896
|
-
const $hook = (options) =>
|
|
1897
|
-
var
|
|
1976
|
+
const $hook = (options) => createPrimitive(HookPrimitive, options);
|
|
1977
|
+
var HookPrimitive = class extends Primitive {
|
|
1898
1978
|
called = 0;
|
|
1899
1979
|
onInit() {
|
|
1900
1980
|
this.alepha.events.on(this.options.on, {
|
|
@@ -1907,10 +1987,10 @@ var HookDescriptor = class extends Descriptor {
|
|
|
1907
1987
|
});
|
|
1908
1988
|
}
|
|
1909
1989
|
};
|
|
1910
|
-
$hook[KIND] =
|
|
1990
|
+
$hook[KIND] = HookPrimitive;
|
|
1911
1991
|
|
|
1912
1992
|
//#endregion
|
|
1913
|
-
//#region src/core/
|
|
1993
|
+
//#region src/core/primitives/$use.ts
|
|
1914
1994
|
/**
|
|
1915
1995
|
* Subscribes to an atom's state and returns its current value for use in components.
|
|
1916
1996
|
*
|
|
@@ -1935,94 +2015,14 @@ $hook[KIND] = HookDescriptor;
|
|
|
1935
2015
|
*/
|
|
1936
2016
|
const $use = (atom) => {
|
|
1937
2017
|
const { alepha } = $context();
|
|
1938
|
-
alepha.
|
|
1939
|
-
const init = alepha.
|
|
2018
|
+
alepha.store.register(atom);
|
|
2019
|
+
const init = alepha.store.get(atom.key);
|
|
1940
2020
|
return {
|
|
1941
2021
|
[OPTIONS]: { getter: atom.key },
|
|
1942
2022
|
...init
|
|
1943
2023
|
};
|
|
1944
2024
|
};
|
|
1945
2025
|
|
|
1946
|
-
//#endregion
|
|
1947
|
-
//#region src/core/errors/AppNotStartedError.ts
|
|
1948
|
-
var AppNotStartedError = class extends AlephaError {
|
|
1949
|
-
name = "AppNotStartedError";
|
|
1950
|
-
constructor() {
|
|
1951
|
-
super("App not started. Please start the app before.");
|
|
1952
|
-
}
|
|
1953
|
-
};
|
|
1954
|
-
|
|
1955
|
-
//#endregion
|
|
1956
|
-
//#region src/core/helpers/createPagination.ts
|
|
1957
|
-
/**
|
|
1958
|
-
* Create a pagination object from an array of entities.
|
|
1959
|
-
*
|
|
1960
|
-
* This is a pure function that works with any data source (databases, APIs, caches, arrays, etc.).
|
|
1961
|
-
* It handles the core pagination logic including:
|
|
1962
|
-
* - Slicing the content to the requested page size
|
|
1963
|
-
* - Calculating pagination metadata (offset, page number, etc.)
|
|
1964
|
-
* - Determining navigation state (isFirst, isLast)
|
|
1965
|
-
* - Including sort metadata when provided
|
|
1966
|
-
*
|
|
1967
|
-
* @param entities - The entities to paginate (should include one extra item to detect if there's a next page)
|
|
1968
|
-
* @param limit - The limit of the pagination (page size)
|
|
1969
|
-
* @param offset - The offset of the pagination (starting position)
|
|
1970
|
-
* @param sort - Optional sort metadata to include in response
|
|
1971
|
-
* @returns A complete Page object with content and metadata
|
|
1972
|
-
*
|
|
1973
|
-
* @example Basic pagination
|
|
1974
|
-
* ```ts
|
|
1975
|
-
* const users = await fetchUsers({ limit: 11, offset: 0 }); // Fetch limit + 1
|
|
1976
|
-
* const page = createPagination(users, 10, 0);
|
|
1977
|
-
* // page.content has max 10 items
|
|
1978
|
-
* // page.page.isLast tells us if there are more pages
|
|
1979
|
-
* ```
|
|
1980
|
-
*
|
|
1981
|
-
* @example With sorting
|
|
1982
|
-
* ```ts
|
|
1983
|
-
* const page = createPagination(
|
|
1984
|
-
* entities,
|
|
1985
|
-
* 10,
|
|
1986
|
-
* 0,
|
|
1987
|
-
* [{ column: "name", direction: "asc" }]
|
|
1988
|
-
* );
|
|
1989
|
-
* ```
|
|
1990
|
-
*
|
|
1991
|
-
* @example In a custom service
|
|
1992
|
-
* ```ts
|
|
1993
|
-
* class MyService {
|
|
1994
|
-
* async listItems(page: number, size: number) {
|
|
1995
|
-
* const items = await this.fetchItems({ limit: size + 1, offset: page * size });
|
|
1996
|
-
* return createPagination(items, size, page * size);
|
|
1997
|
-
* }
|
|
1998
|
-
* }
|
|
1999
|
-
* ```
|
|
2000
|
-
*/
|
|
2001
|
-
function createPagination(entities, limit = 10, offset = 0, sort) {
|
|
2002
|
-
const content = entities.slice(0, limit);
|
|
2003
|
-
const hasNext = entities.length === limit + 1;
|
|
2004
|
-
const pageNumber = Math.floor(offset / limit);
|
|
2005
|
-
return {
|
|
2006
|
-
content,
|
|
2007
|
-
page: {
|
|
2008
|
-
number: pageNumber,
|
|
2009
|
-
size: limit,
|
|
2010
|
-
offset,
|
|
2011
|
-
numberOfElements: content.length,
|
|
2012
|
-
isEmpty: content.length === 0,
|
|
2013
|
-
isFirst: pageNumber === 0,
|
|
2014
|
-
isLast: !hasNext,
|
|
2015
|
-
...sort && sort.length > 0 ? { sort: {
|
|
2016
|
-
sorted: true,
|
|
2017
|
-
fields: sort.map((s) => ({
|
|
2018
|
-
field: s.column,
|
|
2019
|
-
direction: s.direction
|
|
2020
|
-
}))
|
|
2021
|
-
} } : {}
|
|
2022
|
-
}
|
|
2023
|
-
};
|
|
2024
|
-
}
|
|
2025
|
-
|
|
2026
2026
|
//#endregion
|
|
2027
2027
|
//#region src/core/schemas/pageQuerySchema.ts
|
|
2028
2028
|
const pageQuerySchema = t.object({
|
|
@@ -2172,5 +2172,5 @@ const withCluster = (entry, opts) => {
|
|
|
2172
2172
|
};
|
|
2173
2173
|
|
|
2174
2174
|
//#endregion
|
|
2175
|
-
export { $atom, $context, $env, $hook, $inject, $module, $use, Alepha, AlephaError, AlsProvider, AppNotStartedError, Atom, CircularDependencyError, CodecManager, ContainerLockedError,
|
|
2175
|
+
export { $atom, $context, $env, $hook, $inject, $module, $use, Alepha, AlephaError, AlsProvider, AppNotStartedError, Atom, CircularDependencyError, CodecManager, ContainerLockedError, EventManager, HookPrimitive, InjectPrimitive, JsonSchemaCodec, KIND, Module, OPTIONS, Primitive, SchemaCodec, StateManager, TooLateSubstitutionError, TypeBox, TypeBoxError, TypeBoxFormat, TypeBoxValue, TypeGuard, TypeProvider, createPagination, createPrimitive, isClass, isDate, isDateTime, isDuration, isEmail, isFileLike, isTime, isTypeFile, isURL, isUUID, pageMetadataSchema, pageQuerySchema, pageSchema, run, t };
|
|
2176
2176
|
//# sourceMappingURL=index.js.map
|