alepha 0.13.1 → 0.13.3
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.browser.js +80 -0
- package/dist/api-files/index.browser.js.map +1 -0
- 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.browser.js +56 -0
- package/dist/api-jobs/index.browser.js.map +1 -0
- package/dist/api-jobs/index.d.ts +46 -46
- package/dist/api-jobs/index.js +13 -13
- package/dist/api-jobs/index.js.map +1 -1
- package/dist/api-notifications/index.browser.js +382 -0
- package/dist/api-notifications/index.browser.js.map +1 -0
- package/dist/api-notifications/index.d.ts +231 -193
- package/dist/api-notifications/index.js +108 -78
- package/dist/api-notifications/index.js.map +1 -1
- package/dist/api-parameters/index.browser.js +29 -0
- package/dist/api-parameters/index.browser.js.map +1 -0
- 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 +237 -2001
- package/dist/api-users/index.js +969 -4795
- package/dist/api-users/index.js.map +1 -1
- package/dist/api-verifications/index.browser.js +52 -0
- package/dist/api-verifications/index.browser.js.map +1 -0
- package/dist/api-verifications/index.d.ts +119 -97
- package/dist/api-verifications/index.js +1 -1
- package/dist/api-verifications/index.js.map +1 -1
- package/dist/batch/index.d.ts +13 -13
- package/dist/batch/index.js +8 -13
- package/dist/batch/index.js.map +1 -1
- package/dist/bucket/index.d.ts +14 -14
- package/dist/bucket/index.js +19 -17
- 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-Dl9Vl7Ur.js → dist-lGnqsKpu.js} +11 -15
- package/dist/cli/dist-lGnqsKpu.js.map +1 -0
- package/dist/cli/index.d.ts +32 -49
- package/dist/cli/index.js +90 -71
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +20 -19
- package/dist/command/index.js +34 -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.native.js +2113 -0
- 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 +14 -9
- 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 +218 -218
- package/dist/orm/index.js +49 -49
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/index.d.ts +29 -29
- 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 +4 -4
- package/dist/retry/index.d.ts +19 -19
- package/dist/retry/index.js +7 -7
- package/dist/retry/index.js.map +1 -1
- package/dist/scheduler/index.d.ts +16 -16
- 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 +35 -35
- 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 +92 -92
- package/dist/server/index.js +16 -16
- 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 +11 -11
- 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 +19 -19
- 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-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 +22 -22
- 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 +26 -10
- 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 +8 -8
- 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 +58 -58
- package/dist/websocket/index.js +13 -13
- package/dist/websocket/index.js.map +1 -1
- package/package.json +128 -57
- package/src/api-files/index.browser.ts +17 -0
- package/src/api-files/services/FileService.ts +5 -7
- package/src/api-jobs/index.browser.ts +15 -0
- 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/controllers/NotificationController.ts +26 -1
- package/src/api-notifications/index.browser.ts +17 -0
- package/src/api-notifications/index.ts +6 -15
- package/src/api-notifications/{descriptors → primitives}/$notification.ts +10 -10
- package/src/api-notifications/schemas/notificationQuerySchema.ts +13 -0
- package/src/api-notifications/services/NotificationSenderService.ts +3 -3
- package/src/api-notifications/services/NotificationService.ts +45 -2
- package/src/api-parameters/index.browser.ts +12 -0
- package/src/api-parameters/index.ts +1 -1
- package/src/api-parameters/{descriptors → primitives}/$config.ts +7 -12
- package/src/api-users/atoms/realmAuthSettingsAtom.ts +3 -1
- package/src/api-users/controllers/UserController.ts +21 -1
- package/src/api-users/index.ts +1 -1
- package/src/api-users/{descriptors → primitives}/$userRealm.ts +40 -17
- package/src/api-users/providers/UserRealmProvider.ts +2 -1
- package/src/api-users/services/SessionService.ts +2 -0
- package/src/api-users/services/UserService.ts +56 -16
- package/src/api-verifications/index.browser.ts +15 -0
- package/src/api-verifications/index.ts +1 -0
- package/src/batch/index.ts +3 -3
- package/src/batch/{descriptors → primitives}/$batch.ts +13 -16
- package/src/batch/providers/BatchProvider.ts +0 -7
- package/src/bucket/index.ts +15 -13
- 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/AlephaCli.ts +27 -1
- package/src/cli/apps/AlephaPackageBuilderCli.ts +27 -2
- package/src/cli/commands/CoreCommands.ts +6 -2
- package/src/cli/commands/DrizzleCommands.ts +6 -6
- package/src/cli/commands/VerifyCommands.ts +1 -1
- package/src/cli/commands/ViteCommands.ts +8 -2
- package/src/cli/services/ProjectUtils.ts +74 -78
- package/src/command/helpers/Asker.ts +10 -0
- 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 +17 -9
- 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/PostgresTypeProvider.ts +3 -3
- package/src/orm/providers/RepositoryProvider.ts +4 -4
- package/src/orm/providers/drivers/DatabaseProvider.ts +7 -7
- package/src/orm/providers/drivers/NodeSqliteProvider.ts +3 -3
- 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 +14 -14
- 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 +1 -1
- 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 +6 -5
- 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 +24 -9
- 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/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/cli/dist-Dl9Vl7Ur.js.map +0 -1
- 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/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "alepha",
|
|
3
3
|
"description": "Easy-to-use modern TypeScript framework for building many kind of applications.",
|
|
4
4
|
"author": "Nicolas Foures",
|
|
5
|
-
"version": "0.13.
|
|
5
|
+
"version": "0.13.3",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=22.0.0"
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"drizzle-kit": "^0.31.7",
|
|
24
24
|
"drizzle-orm": "^0.44.7",
|
|
25
25
|
"postgres": "^3.4.7",
|
|
26
|
-
"tsx": "^4.
|
|
27
|
-
"typebox": "^1.0.
|
|
26
|
+
"tsx": "^4.21.0",
|
|
27
|
+
"typebox": "^1.0.61",
|
|
28
28
|
"typescript": "^5.9.3",
|
|
29
|
-
"vite": "^7.2.
|
|
29
|
+
"vite": "^7.2.6",
|
|
30
30
|
"vite-bundle-analyzer": "^1.2.3",
|
|
31
31
|
"ws": "^8.18.3"
|
|
32
32
|
},
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"@types/nodemailer": "^7.0.4",
|
|
38
38
|
"@types/ws": "^8.18.1",
|
|
39
39
|
"cron-schedule": "^6.0.0",
|
|
40
|
-
"jose": "^6.1.
|
|
40
|
+
"jose": "^6.1.3",
|
|
41
41
|
"nodemailer": "^7.0.11",
|
|
42
42
|
"openid-client": "^6.8.1",
|
|
43
43
|
"prom-client": "^15.1.3",
|
|
44
44
|
"swagger-ui-dist": "^5.30.3",
|
|
45
|
-
"vitest": "^4.0.
|
|
45
|
+
"vitest": "^4.0.15"
|
|
46
46
|
},
|
|
47
47
|
"scarfSettings": {
|
|
48
48
|
"enabled": false
|
|
@@ -70,217 +70,288 @@
|
|
|
70
70
|
"exports": {
|
|
71
71
|
"./api/files": {
|
|
72
72
|
"types": "./dist/api-files/index.js",
|
|
73
|
-
"
|
|
73
|
+
"react-native": "./dist/api-files/index.browser.js",
|
|
74
|
+
"browser": "./dist/api-files/index.browser.js",
|
|
75
|
+
"import": "./dist/api-files/index.js",
|
|
76
|
+
"default": "./dist/api-files/index.js"
|
|
74
77
|
},
|
|
75
78
|
"./api/jobs": {
|
|
76
79
|
"types": "./dist/api-jobs/index.js",
|
|
77
|
-
"
|
|
80
|
+
"react-native": "./dist/api-jobs/index.browser.js",
|
|
81
|
+
"browser": "./dist/api-jobs/index.browser.js",
|
|
82
|
+
"import": "./dist/api-jobs/index.js",
|
|
83
|
+
"default": "./dist/api-jobs/index.js"
|
|
78
84
|
},
|
|
79
85
|
"./api/notifications": {
|
|
80
86
|
"types": "./dist/api-notifications/index.js",
|
|
81
|
-
"
|
|
87
|
+
"react-native": "./dist/api-notifications/index.browser.js",
|
|
88
|
+
"browser": "./dist/api-notifications/index.browser.js",
|
|
89
|
+
"import": "./dist/api-notifications/index.js",
|
|
90
|
+
"default": "./dist/api-notifications/index.js"
|
|
82
91
|
},
|
|
83
92
|
"./api/parameters": {
|
|
84
93
|
"types": "./dist/api-parameters/index.js",
|
|
85
|
-
"
|
|
94
|
+
"react-native": "./dist/api-parameters/index.browser.js",
|
|
95
|
+
"browser": "./dist/api-parameters/index.browser.js",
|
|
96
|
+
"import": "./dist/api-parameters/index.js",
|
|
97
|
+
"default": "./dist/api-parameters/index.js"
|
|
86
98
|
},
|
|
87
99
|
"./api/users": {
|
|
88
100
|
"types": "./dist/api-users/index.js",
|
|
101
|
+
"react-native": "./dist/api-users/index.browser.js",
|
|
89
102
|
"browser": "./dist/api-users/index.browser.js",
|
|
90
|
-
"import": "./dist/api-users/index.js"
|
|
103
|
+
"import": "./dist/api-users/index.js",
|
|
104
|
+
"default": "./dist/api-users/index.js"
|
|
91
105
|
},
|
|
92
106
|
"./api/verifications": {
|
|
93
107
|
"types": "./dist/api-verifications/index.js",
|
|
94
|
-
"
|
|
108
|
+
"react-native": "./dist/api-verifications/index.browser.js",
|
|
109
|
+
"browser": "./dist/api-verifications/index.browser.js",
|
|
110
|
+
"import": "./dist/api-verifications/index.js",
|
|
111
|
+
"default": "./dist/api-verifications/index.js"
|
|
95
112
|
},
|
|
96
113
|
"./batch": {
|
|
97
114
|
"types": "./dist/batch/index.js",
|
|
98
|
-
"import": "./dist/batch/index.js"
|
|
115
|
+
"import": "./dist/batch/index.js",
|
|
116
|
+
"default": "./dist/batch/index.js"
|
|
99
117
|
},
|
|
100
118
|
"./bin": {
|
|
101
119
|
"types": "./dist/bin/index.js",
|
|
102
|
-
"import": "./dist/bin/index.js"
|
|
120
|
+
"import": "./dist/bin/index.js",
|
|
121
|
+
"default": "./dist/bin/index.js"
|
|
103
122
|
},
|
|
104
123
|
"./bucket": {
|
|
105
124
|
"types": "./dist/bucket/index.js",
|
|
106
|
-
"import": "./dist/bucket/index.js"
|
|
125
|
+
"import": "./dist/bucket/index.js",
|
|
126
|
+
"default": "./dist/bucket/index.js"
|
|
107
127
|
},
|
|
108
128
|
"./cache": {
|
|
109
129
|
"types": "./dist/cache/index.js",
|
|
110
|
-
"import": "./dist/cache/index.js"
|
|
130
|
+
"import": "./dist/cache/index.js",
|
|
131
|
+
"default": "./dist/cache/index.js"
|
|
111
132
|
},
|
|
112
133
|
"./cache/redis": {
|
|
113
134
|
"types": "./dist/cache-redis/index.js",
|
|
114
|
-
"import": "./dist/cache-redis/index.js"
|
|
135
|
+
"import": "./dist/cache-redis/index.js",
|
|
136
|
+
"default": "./dist/cache-redis/index.js"
|
|
115
137
|
},
|
|
116
138
|
"./cli": {
|
|
117
139
|
"types": "./dist/cli/index.js",
|
|
118
|
-
"import": "./dist/cli/index.js"
|
|
140
|
+
"import": "./dist/cli/index.js",
|
|
141
|
+
"default": "./dist/cli/index.js"
|
|
119
142
|
},
|
|
120
143
|
"./command": {
|
|
121
144
|
"types": "./dist/command/index.js",
|
|
122
|
-
"import": "./dist/command/index.js"
|
|
145
|
+
"import": "./dist/command/index.js",
|
|
146
|
+
"default": "./dist/command/index.js"
|
|
123
147
|
},
|
|
124
148
|
".": {
|
|
125
149
|
"types": "./dist/core/index.js",
|
|
150
|
+
"react-native": "./dist/core/index.native.js",
|
|
126
151
|
"browser": "./dist/core/index.browser.js",
|
|
127
|
-
"import": "./dist/core/index.js"
|
|
152
|
+
"import": "./dist/core/index.js",
|
|
153
|
+
"default": "./dist/core/index.js"
|
|
128
154
|
},
|
|
129
155
|
"./datetime": {
|
|
130
156
|
"types": "./dist/datetime/index.js",
|
|
131
|
-
"import": "./dist/datetime/index.js"
|
|
157
|
+
"import": "./dist/datetime/index.js",
|
|
158
|
+
"default": "./dist/datetime/index.js"
|
|
132
159
|
},
|
|
133
160
|
"./email": {
|
|
134
161
|
"types": "./dist/email/index.js",
|
|
135
|
-
"import": "./dist/email/index.js"
|
|
162
|
+
"import": "./dist/email/index.js",
|
|
163
|
+
"default": "./dist/email/index.js"
|
|
136
164
|
},
|
|
137
165
|
"./fake": {
|
|
138
166
|
"types": "./dist/fake/index.js",
|
|
139
|
-
"import": "./dist/fake/index.js"
|
|
167
|
+
"import": "./dist/fake/index.js",
|
|
168
|
+
"default": "./dist/fake/index.js"
|
|
140
169
|
},
|
|
141
170
|
"./file": {
|
|
142
171
|
"types": "./dist/file/index.js",
|
|
143
|
-
"import": "./dist/file/index.js"
|
|
172
|
+
"import": "./dist/file/index.js",
|
|
173
|
+
"default": "./dist/file/index.js"
|
|
144
174
|
},
|
|
145
175
|
"./lock": {
|
|
146
176
|
"types": "./dist/lock/index.js",
|
|
147
|
-
"import": "./dist/lock/index.js"
|
|
177
|
+
"import": "./dist/lock/index.js",
|
|
178
|
+
"default": "./dist/lock/index.js"
|
|
148
179
|
},
|
|
149
180
|
"./lock/redis": {
|
|
150
181
|
"types": "./dist/lock-redis/index.js",
|
|
151
|
-
"import": "./dist/lock-redis/index.js"
|
|
182
|
+
"import": "./dist/lock-redis/index.js",
|
|
183
|
+
"default": "./dist/lock-redis/index.js"
|
|
152
184
|
},
|
|
153
185
|
"./logger": {
|
|
154
186
|
"types": "./dist/logger/index.js",
|
|
155
|
-
"import": "./dist/logger/index.js"
|
|
187
|
+
"import": "./dist/logger/index.js",
|
|
188
|
+
"default": "./dist/logger/index.js"
|
|
156
189
|
},
|
|
157
190
|
"./orm": {
|
|
158
191
|
"types": "./dist/orm/index.js",
|
|
192
|
+
"react-native": "./dist/orm/index.browser.js",
|
|
159
193
|
"browser": "./dist/orm/index.browser.js",
|
|
160
|
-
"import": "./dist/orm/index.js"
|
|
194
|
+
"import": "./dist/orm/index.js",
|
|
195
|
+
"default": "./dist/orm/index.js"
|
|
161
196
|
},
|
|
162
197
|
"./queue": {
|
|
163
198
|
"types": "./dist/queue/index.js",
|
|
164
|
-
"import": "./dist/queue/index.js"
|
|
199
|
+
"import": "./dist/queue/index.js",
|
|
200
|
+
"default": "./dist/queue/index.js"
|
|
165
201
|
},
|
|
166
202
|
"./queue/redis": {
|
|
167
203
|
"types": "./dist/queue-redis/index.js",
|
|
168
|
-
"import": "./dist/queue-redis/index.js"
|
|
204
|
+
"import": "./dist/queue-redis/index.js",
|
|
205
|
+
"default": "./dist/queue-redis/index.js"
|
|
169
206
|
},
|
|
170
207
|
"./redis": {
|
|
171
208
|
"types": "./dist/redis/index.js",
|
|
172
|
-
"import": "./dist/redis/index.js"
|
|
209
|
+
"import": "./dist/redis/index.js",
|
|
210
|
+
"default": "./dist/redis/index.js"
|
|
173
211
|
},
|
|
174
212
|
"./retry": {
|
|
175
213
|
"types": "./dist/retry/index.js",
|
|
176
|
-
"import": "./dist/retry/index.js"
|
|
214
|
+
"import": "./dist/retry/index.js",
|
|
215
|
+
"default": "./dist/retry/index.js"
|
|
177
216
|
},
|
|
178
217
|
"./router": {
|
|
179
218
|
"types": "./dist/router/index.js",
|
|
180
|
-
"import": "./dist/router/index.js"
|
|
219
|
+
"import": "./dist/router/index.js",
|
|
220
|
+
"default": "./dist/router/index.js"
|
|
181
221
|
},
|
|
182
222
|
"./scheduler": {
|
|
183
223
|
"types": "./dist/scheduler/index.js",
|
|
184
|
-
"import": "./dist/scheduler/index.js"
|
|
224
|
+
"import": "./dist/scheduler/index.js",
|
|
225
|
+
"default": "./dist/scheduler/index.js"
|
|
185
226
|
},
|
|
186
227
|
"./security": {
|
|
187
228
|
"types": "./dist/security/index.js",
|
|
229
|
+
"react-native": "./dist/security/index.browser.js",
|
|
188
230
|
"browser": "./dist/security/index.browser.js",
|
|
189
|
-
"import": "./dist/security/index.js"
|
|
231
|
+
"import": "./dist/security/index.js",
|
|
232
|
+
"default": "./dist/security/index.js"
|
|
190
233
|
},
|
|
191
234
|
"./server": {
|
|
192
235
|
"types": "./dist/server/index.js",
|
|
236
|
+
"react-native": "./dist/server/index.browser.js",
|
|
193
237
|
"browser": "./dist/server/index.browser.js",
|
|
194
|
-
"import": "./dist/server/index.js"
|
|
238
|
+
"import": "./dist/server/index.js",
|
|
239
|
+
"default": "./dist/server/index.js"
|
|
195
240
|
},
|
|
196
241
|
"./server/auth": {
|
|
197
242
|
"types": "./dist/server-auth/index.js",
|
|
243
|
+
"react-native": "./dist/server-auth/index.browser.js",
|
|
198
244
|
"browser": "./dist/server-auth/index.browser.js",
|
|
199
|
-
"import": "./dist/server-auth/index.js"
|
|
245
|
+
"import": "./dist/server-auth/index.js",
|
|
246
|
+
"default": "./dist/server-auth/index.js"
|
|
200
247
|
},
|
|
201
248
|
"./server/cache": {
|
|
202
249
|
"types": "./dist/server-cache/index.js",
|
|
203
|
-
"import": "./dist/server-cache/index.js"
|
|
250
|
+
"import": "./dist/server-cache/index.js",
|
|
251
|
+
"default": "./dist/server-cache/index.js"
|
|
204
252
|
},
|
|
205
253
|
"./server/compress": {
|
|
206
254
|
"types": "./dist/server-compress/index.js",
|
|
207
|
-
"import": "./dist/server-compress/index.js"
|
|
255
|
+
"import": "./dist/server-compress/index.js",
|
|
256
|
+
"default": "./dist/server-compress/index.js"
|
|
208
257
|
},
|
|
209
258
|
"./server/cookies": {
|
|
210
259
|
"types": "./dist/server-cookies/index.js",
|
|
260
|
+
"react-native": "./dist/server-cookies/index.browser.js",
|
|
211
261
|
"browser": "./dist/server-cookies/index.browser.js",
|
|
212
|
-
"import": "./dist/server-cookies/index.js"
|
|
262
|
+
"import": "./dist/server-cookies/index.js",
|
|
263
|
+
"default": "./dist/server-cookies/index.js"
|
|
213
264
|
},
|
|
214
265
|
"./server/cors": {
|
|
215
266
|
"types": "./dist/server-cors/index.js",
|
|
216
|
-
"import": "./dist/server-cors/index.js"
|
|
267
|
+
"import": "./dist/server-cors/index.js",
|
|
268
|
+
"default": "./dist/server-cors/index.js"
|
|
217
269
|
},
|
|
218
270
|
"./server/health": {
|
|
219
271
|
"types": "./dist/server-health/index.js",
|
|
220
|
-
"import": "./dist/server-health/index.js"
|
|
272
|
+
"import": "./dist/server-health/index.js",
|
|
273
|
+
"default": "./dist/server-health/index.js"
|
|
221
274
|
},
|
|
222
275
|
"./server/helmet": {
|
|
223
276
|
"types": "./dist/server-helmet/index.js",
|
|
224
|
-
"import": "./dist/server-helmet/index.js"
|
|
277
|
+
"import": "./dist/server-helmet/index.js",
|
|
278
|
+
"default": "./dist/server-helmet/index.js"
|
|
225
279
|
},
|
|
226
280
|
"./server/links": {
|
|
227
281
|
"types": "./dist/server-links/index.js",
|
|
282
|
+
"react-native": "./dist/server-links/index.browser.js",
|
|
228
283
|
"browser": "./dist/server-links/index.browser.js",
|
|
229
|
-
"import": "./dist/server-links/index.js"
|
|
284
|
+
"import": "./dist/server-links/index.js",
|
|
285
|
+
"default": "./dist/server-links/index.js"
|
|
230
286
|
},
|
|
231
287
|
"./server/metrics": {
|
|
232
288
|
"types": "./dist/server-metrics/index.js",
|
|
233
|
-
"import": "./dist/server-metrics/index.js"
|
|
289
|
+
"import": "./dist/server-metrics/index.js",
|
|
290
|
+
"default": "./dist/server-metrics/index.js"
|
|
234
291
|
},
|
|
235
292
|
"./server/multipart": {
|
|
236
293
|
"types": "./dist/server-multipart/index.js",
|
|
237
|
-
"import": "./dist/server-multipart/index.js"
|
|
294
|
+
"import": "./dist/server-multipart/index.js",
|
|
295
|
+
"default": "./dist/server-multipart/index.js"
|
|
238
296
|
},
|
|
239
297
|
"./server/proxy": {
|
|
240
298
|
"types": "./dist/server-proxy/index.js",
|
|
241
|
-
"import": "./dist/server-proxy/index.js"
|
|
299
|
+
"import": "./dist/server-proxy/index.js",
|
|
300
|
+
"default": "./dist/server-proxy/index.js"
|
|
242
301
|
},
|
|
243
302
|
"./server/rate-limit": {
|
|
244
303
|
"types": "./dist/server-rate-limit/index.js",
|
|
245
|
-
"import": "./dist/server-rate-limit/index.js"
|
|
304
|
+
"import": "./dist/server-rate-limit/index.js",
|
|
305
|
+
"default": "./dist/server-rate-limit/index.js"
|
|
246
306
|
},
|
|
247
307
|
"./server/security": {
|
|
248
308
|
"types": "./dist/server-security/index.js",
|
|
309
|
+
"react-native": "./dist/server-security/index.browser.js",
|
|
249
310
|
"browser": "./dist/server-security/index.browser.js",
|
|
250
|
-
"import": "./dist/server-security/index.js"
|
|
311
|
+
"import": "./dist/server-security/index.js",
|
|
312
|
+
"default": "./dist/server-security/index.js"
|
|
251
313
|
},
|
|
252
314
|
"./server/static": {
|
|
253
315
|
"types": "./dist/server-static/index.js",
|
|
254
|
-
"import": "./dist/server-static/index.js"
|
|
316
|
+
"import": "./dist/server-static/index.js",
|
|
317
|
+
"default": "./dist/server-static/index.js"
|
|
255
318
|
},
|
|
256
319
|
"./server/swagger": {
|
|
257
320
|
"types": "./dist/server-swagger/index.js",
|
|
258
|
-
"import": "./dist/server-swagger/index.js"
|
|
321
|
+
"import": "./dist/server-swagger/index.js",
|
|
322
|
+
"default": "./dist/server-swagger/index.js"
|
|
259
323
|
},
|
|
260
324
|
"./sms": {
|
|
261
325
|
"types": "./dist/sms/index.js",
|
|
262
|
-
"import": "./dist/sms/index.js"
|
|
326
|
+
"import": "./dist/sms/index.js",
|
|
327
|
+
"default": "./dist/sms/index.js"
|
|
263
328
|
},
|
|
264
329
|
"./thread": {
|
|
265
330
|
"types": "./dist/thread/index.js",
|
|
266
|
-
"import": "./dist/thread/index.js"
|
|
331
|
+
"import": "./dist/thread/index.js",
|
|
332
|
+
"default": "./dist/thread/index.js"
|
|
267
333
|
},
|
|
268
334
|
"./topic": {
|
|
269
335
|
"types": "./dist/topic/index.js",
|
|
270
|
-
"import": "./dist/topic/index.js"
|
|
336
|
+
"import": "./dist/topic/index.js",
|
|
337
|
+
"default": "./dist/topic/index.js"
|
|
271
338
|
},
|
|
272
339
|
"./topic/redis": {
|
|
273
340
|
"types": "./dist/topic-redis/index.js",
|
|
274
|
-
"import": "./dist/topic-redis/index.js"
|
|
341
|
+
"import": "./dist/topic-redis/index.js",
|
|
342
|
+
"default": "./dist/topic-redis/index.js"
|
|
275
343
|
},
|
|
276
344
|
"./vite": {
|
|
277
345
|
"types": "./dist/vite/index.js",
|
|
278
|
-
"import": "./dist/vite/index.js"
|
|
346
|
+
"import": "./dist/vite/index.js",
|
|
347
|
+
"default": "./dist/vite/index.js"
|
|
279
348
|
},
|
|
280
349
|
"./websocket": {
|
|
281
350
|
"types": "./dist/websocket/index.js",
|
|
351
|
+
"react-native": "./dist/websocket/index.browser.js",
|
|
282
352
|
"browser": "./dist/websocket/index.browser.js",
|
|
283
|
-
"import": "./dist/websocket/index.js"
|
|
353
|
+
"import": "./dist/websocket/index.js",
|
|
354
|
+
"default": "./dist/websocket/index.js"
|
|
284
355
|
},
|
|
285
356
|
"./tsconfig.base": "./tsconfig.base.json",
|
|
286
357
|
"./package.json": "./package.json"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { $module } from "alepha";
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
export type * from "./controllers/FileController.ts";
|
|
6
|
+
export type * from "./controllers/StorageStatsController.ts";
|
|
7
|
+
export * from "./entities/files.ts";
|
|
8
|
+
export * from "./schemas/fileQuerySchema.ts";
|
|
9
|
+
export * from "./schemas/fileResourceSchema.ts";
|
|
10
|
+
export * from "./schemas/storageStatsSchema.ts";
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
export const AlephaApiFiles = $module({
|
|
15
|
+
name: "alepha.api.files",
|
|
16
|
+
services: [],
|
|
17
|
+
});
|
|
@@ -2,7 +2,7 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { $hook, $inject, Alepha, type FileLike } from "alepha";
|
|
3
3
|
import {
|
|
4
4
|
$bucket,
|
|
5
|
-
type
|
|
5
|
+
type BucketPrimitive,
|
|
6
6
|
FileNotFoundError,
|
|
7
7
|
} from "alepha/bucket";
|
|
8
8
|
import {
|
|
@@ -77,17 +77,15 @@ export class FileService {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
/**
|
|
80
|
-
* Gets a bucket
|
|
80
|
+
* Gets a bucket primitive by name.
|
|
81
81
|
*
|
|
82
82
|
* @param bucketName - The name of the bucket to retrieve (defaults to "default")
|
|
83
|
-
* @returns The bucket
|
|
83
|
+
* @returns The bucket primitive
|
|
84
84
|
* @throws {NotFoundError} If the bucket is not found
|
|
85
85
|
*/
|
|
86
|
-
public bucket(
|
|
87
|
-
bucketName: string = this.defaultBucket.name,
|
|
88
|
-
): BucketDescriptor {
|
|
86
|
+
public bucket(bucketName: string = this.defaultBucket.name): BucketPrimitive {
|
|
89
87
|
const bucket = this.alepha
|
|
90
|
-
.
|
|
88
|
+
.primitives($bucket)
|
|
91
89
|
.find((it) => it.name === bucketName);
|
|
92
90
|
|
|
93
91
|
if (!bucket) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { $module } from "alepha";
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
export * from "./entities/jobExecutions.ts";
|
|
6
|
+
export * from "./schemas/jobExecutionQuerySchema.ts";
|
|
7
|
+
export * from "./schemas/jobExecutionResourceSchema.ts";
|
|
8
|
+
export * from "./schemas/triggerJobSchema.ts";
|
|
9
|
+
|
|
10
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
export const AlephaApiJobs = $module({
|
|
13
|
+
name: "alepha.api.jobs",
|
|
14
|
+
services: [],
|
|
15
|
+
});
|
package/src/api-jobs/index.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { JobService } from "./services/JobService.ts";
|
|
|
6
6
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
7
7
|
|
|
8
8
|
export * from "./controllers/JobController.ts";
|
|
9
|
-
export * from "./descriptors/$job.ts";
|
|
10
9
|
export * from "./entities/jobExecutions.ts";
|
|
10
|
+
export * from "./primitives/$job.ts";
|
|
11
11
|
export * from "./providers/JobProvider.ts";
|
|
12
12
|
export * from "./schemas/jobExecutionQuerySchema.ts";
|
|
13
13
|
export * from "./schemas/jobExecutionResourceSchema.ts";
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { $inject,
|
|
1
|
+
import { $inject, createPrimitive, KIND, Primitive } from "alepha";
|
|
2
2
|
import type { DateTime } from "alepha/datetime";
|
|
3
3
|
import { type Job, JobProvider } from "../providers/JobProvider.ts";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Job
|
|
6
|
+
* Job primitive - a drop-in replacement for $scheduler with built-in execution tracking.
|
|
7
7
|
*/
|
|
8
|
-
export const $job = (options:
|
|
9
|
-
return
|
|
8
|
+
export const $job = (options: JobPrimitiveOptions): JobPrimitive => {
|
|
9
|
+
return createPrimitive(JobPrimitive, options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
13
13
|
|
|
14
|
-
export type
|
|
14
|
+
export type JobPrimitiveOptions = Omit<Job, "name"> & {
|
|
15
15
|
/**
|
|
16
|
-
* Name of the job. Defaults to the
|
|
16
|
+
* Name of the job. Defaults to the primitive property name.
|
|
17
17
|
*/
|
|
18
18
|
name?: string;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
22
22
|
|
|
23
|
-
export class
|
|
23
|
+
export class JobPrimitive extends Primitive<JobPrimitiveOptions> {
|
|
24
24
|
protected readonly jobProvider = $inject(JobProvider);
|
|
25
25
|
|
|
26
26
|
public get name(): string {
|
|
@@ -43,7 +43,7 @@ export class JobDescriptor extends Descriptor<JobDescriptorOptions> {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
$job[KIND] =
|
|
46
|
+
$job[KIND] = JobPrimitive;
|
|
47
47
|
|
|
48
48
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
49
49
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { $env, $inject, Alepha, type Async, type Static, t } from "alepha";
|
|
2
2
|
import { type DateTime, DateTimeProvider } from "alepha/datetime";
|
|
3
|
-
import { $lock, type
|
|
3
|
+
import { $lock, type LockPrimitive } from "alepha/lock";
|
|
4
4
|
import type { LogEntry } from "alepha/logger";
|
|
5
5
|
import { $repository } from "alepha/orm";
|
|
6
6
|
import { CronProvider } from "alepha/scheduler";
|
|
@@ -32,7 +32,7 @@ export class JobProvider {
|
|
|
32
32
|
protected readonly jobs = new Map<string, JobRegistration>();
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* Register and set up a job for execution (called during
|
|
35
|
+
* Register and set up a job for execution (called during primitive initialization).
|
|
36
36
|
*/
|
|
37
37
|
public registerJob(options: Job): JobRegistration {
|
|
38
38
|
const jobName = options.name;
|
|
@@ -55,8 +55,8 @@ export class JobProvider {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
// Create lock
|
|
59
|
-
const
|
|
58
|
+
// Create lock primitive if locking is enabled
|
|
59
|
+
const lockPrimitive =
|
|
60
60
|
options.lock !== false
|
|
61
61
|
? $lock({
|
|
62
62
|
name: () => {
|
|
@@ -74,7 +74,7 @@ export class JobProvider {
|
|
|
74
74
|
const registration: JobRegistration = {
|
|
75
75
|
name: jobName,
|
|
76
76
|
options,
|
|
77
|
-
|
|
77
|
+
lockPrimitive,
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
this.jobs.set(jobName, registration);
|
|
@@ -99,15 +99,15 @@ export class JobProvider {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
// Execute handler with or without lock
|
|
102
|
-
if (registration.options.lock !== false && registration.
|
|
103
|
-
await registration.
|
|
102
|
+
if (registration.options.lock !== false && registration.lockPrimitive) {
|
|
103
|
+
await registration.lockPrimitive.run();
|
|
104
104
|
} else {
|
|
105
105
|
await this.executeJob(jobName, registration.options.handler);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
/**
|
|
110
|
-
* Execute a job handler (called by the job
|
|
110
|
+
* Execute a job handler (called by the job primitive).
|
|
111
111
|
*/
|
|
112
112
|
public async executeJob(
|
|
113
113
|
jobName: string,
|
|
@@ -260,5 +260,5 @@ export interface Job {
|
|
|
260
260
|
export interface JobRegistration {
|
|
261
261
|
name: string;
|
|
262
262
|
options: Job;
|
|
263
|
-
|
|
263
|
+
lockPrimitive: LockPrimitive<() => Promise<void>> | null;
|
|
264
264
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { $inject, Alepha } from "alepha";
|
|
2
2
|
import { $repository } from "alepha/orm";
|
|
3
|
-
import { $job } from "../descriptors/$job.ts";
|
|
4
3
|
import { jobExecutions } from "../entities/jobExecutions.ts";
|
|
4
|
+
import { $job } from "../primitives/$job.ts";
|
|
5
5
|
import type { JobExecutionQuery } from "../schemas/jobExecutionQuerySchema.ts";
|
|
6
6
|
|
|
7
7
|
export class JobService {
|
|
@@ -9,8 +9,8 @@ export class JobService {
|
|
|
9
9
|
protected readonly executionRepository = $repository(jobExecutions);
|
|
10
10
|
|
|
11
11
|
public async getJobs(): Promise<string[]> {
|
|
12
|
-
const
|
|
13
|
-
return
|
|
12
|
+
const jobPrimitives = this.alepha.primitives($job);
|
|
13
|
+
return jobPrimitives.map((job) => job.name);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
public async getJobExecutions(query: JobExecutionQuery = {}) {
|
|
@@ -34,8 +34,8 @@ export class JobService {
|
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
public async triggerJob(name: string): Promise<{ ok: boolean }> {
|
|
37
|
-
const
|
|
38
|
-
const job =
|
|
37
|
+
const jobPrimitives = this.alepha.primitives($job);
|
|
38
|
+
const job = jobPrimitives.find((j) => j.name === name);
|
|
39
39
|
|
|
40
40
|
if (!job) {
|
|
41
41
|
throw new Error(`Job not found: ${name}`);
|
|
@@ -1 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
import { $inject } from "alepha";
|
|
2
|
+
import { pg } from "alepha/orm";
|
|
3
|
+
import { $action } from "alepha/server";
|
|
4
|
+
import { notifications } from "../entities/notifications.ts";
|
|
5
|
+
import { notificationQuerySchema } from "../schemas/notificationQuerySchema.ts";
|
|
6
|
+
import { NotificationService } from "../services/NotificationService.ts";
|
|
7
|
+
|
|
8
|
+
export class NotificationController {
|
|
9
|
+
protected readonly url = "/notifications";
|
|
10
|
+
protected readonly group = "notifications";
|
|
11
|
+
protected readonly notificationService = $inject(NotificationService);
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Find notifications with pagination and filtering.
|
|
15
|
+
*/
|
|
16
|
+
public readonly findNotifications = $action({
|
|
17
|
+
path: this.url,
|
|
18
|
+
group: this.group,
|
|
19
|
+
description: "Find notifications with pagination and filtering",
|
|
20
|
+
schema: {
|
|
21
|
+
query: notificationQuerySchema,
|
|
22
|
+
response: pg.page(notifications.schema),
|
|
23
|
+
},
|
|
24
|
+
handler: ({ query }) => this.notificationService.findNotifications(query),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { $module } from "alepha";
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
export * from "./controllers/NotificationController.ts";
|
|
6
|
+
export * from "./entities/notifications.ts";
|
|
7
|
+
export * from "./schemas/notificationContactPreferencesSchema.ts";
|
|
8
|
+
export * from "./schemas/notificationContactSchema.ts";
|
|
9
|
+
export * from "./schemas/notificationCreateSchema.ts";
|
|
10
|
+
export * from "./schemas/notificationQuerySchema.ts";
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
export const AlephaApiNotifications = $module({
|
|
15
|
+
name: "alepha.api.notifications",
|
|
16
|
+
services: [],
|
|
17
|
+
});
|