alepha 0.13.1 → 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 +46 -46
- 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 +223 -2000
- 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/index.d.ts +28 -26
- package/dist/cli/index.js +50 -13
- 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.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 +9 -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 +46 -46
- 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 +10 -10
- 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 +80 -80
- 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 +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 +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 +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 +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 +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 +113 -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 +24 -2
- package/src/cli/commands/DrizzleCommands.ts +6 -6
- package/src/cli/commands/VerifyCommands.ts +1 -1
- package/src/cli/commands/ViteCommands.ts +6 -1
- package/src/cli/services/ProjectUtils.ts +34 -3
- 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/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 +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 +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/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/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.2",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
8
8
|
"node": ">=22.0.0"
|
|
@@ -70,217 +70,278 @@
|
|
|
70
70
|
"exports": {
|
|
71
71
|
"./api/files": {
|
|
72
72
|
"types": "./dist/api-files/index.js",
|
|
73
|
-
"import": "./dist/api-files/index.js"
|
|
73
|
+
"import": "./dist/api-files/index.js",
|
|
74
|
+
"default": "./dist/api-files/index.js"
|
|
74
75
|
},
|
|
75
76
|
"./api/jobs": {
|
|
76
77
|
"types": "./dist/api-jobs/index.js",
|
|
77
|
-
"import": "./dist/api-jobs/index.js"
|
|
78
|
+
"import": "./dist/api-jobs/index.js",
|
|
79
|
+
"default": "./dist/api-jobs/index.js"
|
|
78
80
|
},
|
|
79
81
|
"./api/notifications": {
|
|
80
82
|
"types": "./dist/api-notifications/index.js",
|
|
81
|
-
"import": "./dist/api-notifications/index.js"
|
|
83
|
+
"import": "./dist/api-notifications/index.js",
|
|
84
|
+
"default": "./dist/api-notifications/index.js"
|
|
82
85
|
},
|
|
83
86
|
"./api/parameters": {
|
|
84
87
|
"types": "./dist/api-parameters/index.js",
|
|
85
|
-
"import": "./dist/api-parameters/index.js"
|
|
88
|
+
"import": "./dist/api-parameters/index.js",
|
|
89
|
+
"default": "./dist/api-parameters/index.js"
|
|
86
90
|
},
|
|
87
91
|
"./api/users": {
|
|
88
92
|
"types": "./dist/api-users/index.js",
|
|
93
|
+
"react-native": "./dist/api-users/index.browser.js",
|
|
89
94
|
"browser": "./dist/api-users/index.browser.js",
|
|
90
|
-
"import": "./dist/api-users/index.js"
|
|
95
|
+
"import": "./dist/api-users/index.js",
|
|
96
|
+
"default": "./dist/api-users/index.js"
|
|
91
97
|
},
|
|
92
98
|
"./api/verifications": {
|
|
93
99
|
"types": "./dist/api-verifications/index.js",
|
|
94
|
-
"import": "./dist/api-verifications/index.js"
|
|
100
|
+
"import": "./dist/api-verifications/index.js",
|
|
101
|
+
"default": "./dist/api-verifications/index.js"
|
|
95
102
|
},
|
|
96
103
|
"./batch": {
|
|
97
104
|
"types": "./dist/batch/index.js",
|
|
98
|
-
"import": "./dist/batch/index.js"
|
|
105
|
+
"import": "./dist/batch/index.js",
|
|
106
|
+
"default": "./dist/batch/index.js"
|
|
99
107
|
},
|
|
100
108
|
"./bin": {
|
|
101
109
|
"types": "./dist/bin/index.js",
|
|
102
|
-
"import": "./dist/bin/index.js"
|
|
110
|
+
"import": "./dist/bin/index.js",
|
|
111
|
+
"default": "./dist/bin/index.js"
|
|
103
112
|
},
|
|
104
113
|
"./bucket": {
|
|
105
114
|
"types": "./dist/bucket/index.js",
|
|
106
|
-
"import": "./dist/bucket/index.js"
|
|
115
|
+
"import": "./dist/bucket/index.js",
|
|
116
|
+
"default": "./dist/bucket/index.js"
|
|
107
117
|
},
|
|
108
118
|
"./cache": {
|
|
109
119
|
"types": "./dist/cache/index.js",
|
|
110
|
-
"import": "./dist/cache/index.js"
|
|
120
|
+
"import": "./dist/cache/index.js",
|
|
121
|
+
"default": "./dist/cache/index.js"
|
|
111
122
|
},
|
|
112
123
|
"./cache/redis": {
|
|
113
124
|
"types": "./dist/cache-redis/index.js",
|
|
114
|
-
"import": "./dist/cache-redis/index.js"
|
|
125
|
+
"import": "./dist/cache-redis/index.js",
|
|
126
|
+
"default": "./dist/cache-redis/index.js"
|
|
115
127
|
},
|
|
116
128
|
"./cli": {
|
|
117
129
|
"types": "./dist/cli/index.js",
|
|
118
|
-
"import": "./dist/cli/index.js"
|
|
130
|
+
"import": "./dist/cli/index.js",
|
|
131
|
+
"default": "./dist/cli/index.js"
|
|
119
132
|
},
|
|
120
133
|
"./command": {
|
|
121
134
|
"types": "./dist/command/index.js",
|
|
122
|
-
"import": "./dist/command/index.js"
|
|
135
|
+
"import": "./dist/command/index.js",
|
|
136
|
+
"default": "./dist/command/index.js"
|
|
123
137
|
},
|
|
124
138
|
".": {
|
|
125
139
|
"types": "./dist/core/index.js",
|
|
140
|
+
"react-native": "./dist/core/index.native.js",
|
|
126
141
|
"browser": "./dist/core/index.browser.js",
|
|
127
|
-
"import": "./dist/core/index.js"
|
|
142
|
+
"import": "./dist/core/index.js",
|
|
143
|
+
"default": "./dist/core/index.js"
|
|
128
144
|
},
|
|
129
145
|
"./datetime": {
|
|
130
146
|
"types": "./dist/datetime/index.js",
|
|
131
|
-
"import": "./dist/datetime/index.js"
|
|
147
|
+
"import": "./dist/datetime/index.js",
|
|
148
|
+
"default": "./dist/datetime/index.js"
|
|
132
149
|
},
|
|
133
150
|
"./email": {
|
|
134
151
|
"types": "./dist/email/index.js",
|
|
135
|
-
"import": "./dist/email/index.js"
|
|
152
|
+
"import": "./dist/email/index.js",
|
|
153
|
+
"default": "./dist/email/index.js"
|
|
136
154
|
},
|
|
137
155
|
"./fake": {
|
|
138
156
|
"types": "./dist/fake/index.js",
|
|
139
|
-
"import": "./dist/fake/index.js"
|
|
157
|
+
"import": "./dist/fake/index.js",
|
|
158
|
+
"default": "./dist/fake/index.js"
|
|
140
159
|
},
|
|
141
160
|
"./file": {
|
|
142
161
|
"types": "./dist/file/index.js",
|
|
143
|
-
"import": "./dist/file/index.js"
|
|
162
|
+
"import": "./dist/file/index.js",
|
|
163
|
+
"default": "./dist/file/index.js"
|
|
144
164
|
},
|
|
145
165
|
"./lock": {
|
|
146
166
|
"types": "./dist/lock/index.js",
|
|
147
|
-
"import": "./dist/lock/index.js"
|
|
167
|
+
"import": "./dist/lock/index.js",
|
|
168
|
+
"default": "./dist/lock/index.js"
|
|
148
169
|
},
|
|
149
170
|
"./lock/redis": {
|
|
150
171
|
"types": "./dist/lock-redis/index.js",
|
|
151
|
-
"import": "./dist/lock-redis/index.js"
|
|
172
|
+
"import": "./dist/lock-redis/index.js",
|
|
173
|
+
"default": "./dist/lock-redis/index.js"
|
|
152
174
|
},
|
|
153
175
|
"./logger": {
|
|
154
176
|
"types": "./dist/logger/index.js",
|
|
155
|
-
"import": "./dist/logger/index.js"
|
|
177
|
+
"import": "./dist/logger/index.js",
|
|
178
|
+
"default": "./dist/logger/index.js"
|
|
156
179
|
},
|
|
157
180
|
"./orm": {
|
|
158
181
|
"types": "./dist/orm/index.js",
|
|
182
|
+
"react-native": "./dist/orm/index.browser.js",
|
|
159
183
|
"browser": "./dist/orm/index.browser.js",
|
|
160
|
-
"import": "./dist/orm/index.js"
|
|
184
|
+
"import": "./dist/orm/index.js",
|
|
185
|
+
"default": "./dist/orm/index.js"
|
|
161
186
|
},
|
|
162
187
|
"./queue": {
|
|
163
188
|
"types": "./dist/queue/index.js",
|
|
164
|
-
"import": "./dist/queue/index.js"
|
|
189
|
+
"import": "./dist/queue/index.js",
|
|
190
|
+
"default": "./dist/queue/index.js"
|
|
165
191
|
},
|
|
166
192
|
"./queue/redis": {
|
|
167
193
|
"types": "./dist/queue-redis/index.js",
|
|
168
|
-
"import": "./dist/queue-redis/index.js"
|
|
194
|
+
"import": "./dist/queue-redis/index.js",
|
|
195
|
+
"default": "./dist/queue-redis/index.js"
|
|
169
196
|
},
|
|
170
197
|
"./redis": {
|
|
171
198
|
"types": "./dist/redis/index.js",
|
|
172
|
-
"import": "./dist/redis/index.js"
|
|
199
|
+
"import": "./dist/redis/index.js",
|
|
200
|
+
"default": "./dist/redis/index.js"
|
|
173
201
|
},
|
|
174
202
|
"./retry": {
|
|
175
203
|
"types": "./dist/retry/index.js",
|
|
176
|
-
"import": "./dist/retry/index.js"
|
|
204
|
+
"import": "./dist/retry/index.js",
|
|
205
|
+
"default": "./dist/retry/index.js"
|
|
177
206
|
},
|
|
178
207
|
"./router": {
|
|
179
208
|
"types": "./dist/router/index.js",
|
|
180
|
-
"import": "./dist/router/index.js"
|
|
209
|
+
"import": "./dist/router/index.js",
|
|
210
|
+
"default": "./dist/router/index.js"
|
|
181
211
|
},
|
|
182
212
|
"./scheduler": {
|
|
183
213
|
"types": "./dist/scheduler/index.js",
|
|
184
|
-
"import": "./dist/scheduler/index.js"
|
|
214
|
+
"import": "./dist/scheduler/index.js",
|
|
215
|
+
"default": "./dist/scheduler/index.js"
|
|
185
216
|
},
|
|
186
217
|
"./security": {
|
|
187
218
|
"types": "./dist/security/index.js",
|
|
219
|
+
"react-native": "./dist/security/index.browser.js",
|
|
188
220
|
"browser": "./dist/security/index.browser.js",
|
|
189
|
-
"import": "./dist/security/index.js"
|
|
221
|
+
"import": "./dist/security/index.js",
|
|
222
|
+
"default": "./dist/security/index.js"
|
|
190
223
|
},
|
|
191
224
|
"./server": {
|
|
192
225
|
"types": "./dist/server/index.js",
|
|
226
|
+
"react-native": "./dist/server/index.browser.js",
|
|
193
227
|
"browser": "./dist/server/index.browser.js",
|
|
194
|
-
"import": "./dist/server/index.js"
|
|
228
|
+
"import": "./dist/server/index.js",
|
|
229
|
+
"default": "./dist/server/index.js"
|
|
195
230
|
},
|
|
196
231
|
"./server/auth": {
|
|
197
232
|
"types": "./dist/server-auth/index.js",
|
|
233
|
+
"react-native": "./dist/server-auth/index.browser.js",
|
|
198
234
|
"browser": "./dist/server-auth/index.browser.js",
|
|
199
|
-
"import": "./dist/server-auth/index.js"
|
|
235
|
+
"import": "./dist/server-auth/index.js",
|
|
236
|
+
"default": "./dist/server-auth/index.js"
|
|
200
237
|
},
|
|
201
238
|
"./server/cache": {
|
|
202
239
|
"types": "./dist/server-cache/index.js",
|
|
203
|
-
"import": "./dist/server-cache/index.js"
|
|
240
|
+
"import": "./dist/server-cache/index.js",
|
|
241
|
+
"default": "./dist/server-cache/index.js"
|
|
204
242
|
},
|
|
205
243
|
"./server/compress": {
|
|
206
244
|
"types": "./dist/server-compress/index.js",
|
|
207
|
-
"import": "./dist/server-compress/index.js"
|
|
245
|
+
"import": "./dist/server-compress/index.js",
|
|
246
|
+
"default": "./dist/server-compress/index.js"
|
|
208
247
|
},
|
|
209
248
|
"./server/cookies": {
|
|
210
249
|
"types": "./dist/server-cookies/index.js",
|
|
250
|
+
"react-native": "./dist/server-cookies/index.browser.js",
|
|
211
251
|
"browser": "./dist/server-cookies/index.browser.js",
|
|
212
|
-
"import": "./dist/server-cookies/index.js"
|
|
252
|
+
"import": "./dist/server-cookies/index.js",
|
|
253
|
+
"default": "./dist/server-cookies/index.js"
|
|
213
254
|
},
|
|
214
255
|
"./server/cors": {
|
|
215
256
|
"types": "./dist/server-cors/index.js",
|
|
216
|
-
"import": "./dist/server-cors/index.js"
|
|
257
|
+
"import": "./dist/server-cors/index.js",
|
|
258
|
+
"default": "./dist/server-cors/index.js"
|
|
217
259
|
},
|
|
218
260
|
"./server/health": {
|
|
219
261
|
"types": "./dist/server-health/index.js",
|
|
220
|
-
"import": "./dist/server-health/index.js"
|
|
262
|
+
"import": "./dist/server-health/index.js",
|
|
263
|
+
"default": "./dist/server-health/index.js"
|
|
221
264
|
},
|
|
222
265
|
"./server/helmet": {
|
|
223
266
|
"types": "./dist/server-helmet/index.js",
|
|
224
|
-
"import": "./dist/server-helmet/index.js"
|
|
267
|
+
"import": "./dist/server-helmet/index.js",
|
|
268
|
+
"default": "./dist/server-helmet/index.js"
|
|
225
269
|
},
|
|
226
270
|
"./server/links": {
|
|
227
271
|
"types": "./dist/server-links/index.js",
|
|
272
|
+
"react-native": "./dist/server-links/index.browser.js",
|
|
228
273
|
"browser": "./dist/server-links/index.browser.js",
|
|
229
|
-
"import": "./dist/server-links/index.js"
|
|
274
|
+
"import": "./dist/server-links/index.js",
|
|
275
|
+
"default": "./dist/server-links/index.js"
|
|
230
276
|
},
|
|
231
277
|
"./server/metrics": {
|
|
232
278
|
"types": "./dist/server-metrics/index.js",
|
|
233
|
-
"import": "./dist/server-metrics/index.js"
|
|
279
|
+
"import": "./dist/server-metrics/index.js",
|
|
280
|
+
"default": "./dist/server-metrics/index.js"
|
|
234
281
|
},
|
|
235
282
|
"./server/multipart": {
|
|
236
283
|
"types": "./dist/server-multipart/index.js",
|
|
237
|
-
"import": "./dist/server-multipart/index.js"
|
|
284
|
+
"import": "./dist/server-multipart/index.js",
|
|
285
|
+
"default": "./dist/server-multipart/index.js"
|
|
238
286
|
},
|
|
239
287
|
"./server/proxy": {
|
|
240
288
|
"types": "./dist/server-proxy/index.js",
|
|
241
|
-
"import": "./dist/server-proxy/index.js"
|
|
289
|
+
"import": "./dist/server-proxy/index.js",
|
|
290
|
+
"default": "./dist/server-proxy/index.js"
|
|
242
291
|
},
|
|
243
292
|
"./server/rate-limit": {
|
|
244
293
|
"types": "./dist/server-rate-limit/index.js",
|
|
245
|
-
"import": "./dist/server-rate-limit/index.js"
|
|
294
|
+
"import": "./dist/server-rate-limit/index.js",
|
|
295
|
+
"default": "./dist/server-rate-limit/index.js"
|
|
246
296
|
},
|
|
247
297
|
"./server/security": {
|
|
248
298
|
"types": "./dist/server-security/index.js",
|
|
299
|
+
"react-native": "./dist/server-security/index.browser.js",
|
|
249
300
|
"browser": "./dist/server-security/index.browser.js",
|
|
250
|
-
"import": "./dist/server-security/index.js"
|
|
301
|
+
"import": "./dist/server-security/index.js",
|
|
302
|
+
"default": "./dist/server-security/index.js"
|
|
251
303
|
},
|
|
252
304
|
"./server/static": {
|
|
253
305
|
"types": "./dist/server-static/index.js",
|
|
254
|
-
"import": "./dist/server-static/index.js"
|
|
306
|
+
"import": "./dist/server-static/index.js",
|
|
307
|
+
"default": "./dist/server-static/index.js"
|
|
255
308
|
},
|
|
256
309
|
"./server/swagger": {
|
|
257
310
|
"types": "./dist/server-swagger/index.js",
|
|
258
|
-
"import": "./dist/server-swagger/index.js"
|
|
311
|
+
"import": "./dist/server-swagger/index.js",
|
|
312
|
+
"default": "./dist/server-swagger/index.js"
|
|
259
313
|
},
|
|
260
314
|
"./sms": {
|
|
261
315
|
"types": "./dist/sms/index.js",
|
|
262
|
-
"import": "./dist/sms/index.js"
|
|
316
|
+
"import": "./dist/sms/index.js",
|
|
317
|
+
"default": "./dist/sms/index.js"
|
|
263
318
|
},
|
|
264
319
|
"./thread": {
|
|
265
320
|
"types": "./dist/thread/index.js",
|
|
266
|
-
"import": "./dist/thread/index.js"
|
|
321
|
+
"import": "./dist/thread/index.js",
|
|
322
|
+
"default": "./dist/thread/index.js"
|
|
267
323
|
},
|
|
268
324
|
"./topic": {
|
|
269
325
|
"types": "./dist/topic/index.js",
|
|
270
|
-
"import": "./dist/topic/index.js"
|
|
326
|
+
"import": "./dist/topic/index.js",
|
|
327
|
+
"default": "./dist/topic/index.js"
|
|
271
328
|
},
|
|
272
329
|
"./topic/redis": {
|
|
273
330
|
"types": "./dist/topic-redis/index.js",
|
|
274
|
-
"import": "./dist/topic-redis/index.js"
|
|
331
|
+
"import": "./dist/topic-redis/index.js",
|
|
332
|
+
"default": "./dist/topic-redis/index.js"
|
|
275
333
|
},
|
|
276
334
|
"./vite": {
|
|
277
335
|
"types": "./dist/vite/index.js",
|
|
278
|
-
"import": "./dist/vite/index.js"
|
|
336
|
+
"import": "./dist/vite/index.js",
|
|
337
|
+
"default": "./dist/vite/index.js"
|
|
279
338
|
},
|
|
280
339
|
"./websocket": {
|
|
281
340
|
"types": "./dist/websocket/index.js",
|
|
341
|
+
"react-native": "./dist/websocket/index.browser.js",
|
|
282
342
|
"browser": "./dist/websocket/index.browser.js",
|
|
283
|
-
"import": "./dist/websocket/index.js"
|
|
343
|
+
"import": "./dist/websocket/index.js",
|
|
344
|
+
"default": "./dist/websocket/index.js"
|
|
284
345
|
},
|
|
285
346
|
"./tsconfig.base": "./tsconfig.base.json",
|
|
286
347
|
"./package.json": "./package.json"
|
|
@@ -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) {
|
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,9 +1,7 @@
|
|
|
1
1
|
import { $module } from "alepha";
|
|
2
2
|
import { NotificationController } from "./controllers/NotificationController.ts";
|
|
3
|
-
import { $notification } from "./descriptors/$notification.ts";
|
|
4
3
|
import { NotificationJobs } from "./jobs/NotificationJobs.ts";
|
|
5
|
-
import {
|
|
6
|
-
import { SmsProvider } from "./providers/SmsProvider.ts";
|
|
4
|
+
import { $notification } from "./primitives/$notification.ts";
|
|
7
5
|
import { NotificationQueues } from "./queues/NotificationQueues.ts";
|
|
8
6
|
import { NotificationSenderService } from "./services/NotificationSenderService.ts";
|
|
9
7
|
import {
|
|
@@ -14,11 +12,9 @@ import {
|
|
|
14
12
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
15
13
|
|
|
16
14
|
export * from "./controllers/NotificationController.ts";
|
|
17
|
-
export * from "./descriptors/$notification.ts";
|
|
18
15
|
export * from "./entities/notifications.ts";
|
|
19
16
|
export * from "./jobs/NotificationJobs.ts";
|
|
20
|
-
export * from "./
|
|
21
|
-
export * from "./providers/SmsProvider.ts";
|
|
17
|
+
export * from "./primitives/$notification.ts";
|
|
22
18
|
export * from "./queues/NotificationQueues.ts";
|
|
23
19
|
export * from "./schemas/notificationContactPreferencesSchema.ts";
|
|
24
20
|
export * from "./schemas/notificationCreateSchema.ts";
|
|
@@ -33,27 +29,21 @@ export * from "./services/NotificationService.ts";
|
|
|
33
29
|
* This module includes notification sending, retrieval, status tracking,
|
|
34
30
|
* and user notification preferences management.
|
|
35
31
|
*
|
|
32
|
+
* Requires `AlephaSms` module to be loaded for SMS notifications.
|
|
33
|
+
*
|
|
36
34
|
* @module alepha.api.notifications
|
|
37
35
|
*/
|
|
38
36
|
export const AlephaApiNotifications = $module({
|
|
39
37
|
name: "alepha.api.notifications",
|
|
40
|
-
|
|
38
|
+
primitives: [$notification],
|
|
41
39
|
services: [
|
|
42
40
|
NotificationController,
|
|
43
41
|
NotificationService,
|
|
44
42
|
NotificationSenderService,
|
|
45
43
|
NotificationQueues,
|
|
46
44
|
NotificationJobs,
|
|
47
|
-
SmsProvider,
|
|
48
|
-
MemorySmsProvider,
|
|
49
45
|
],
|
|
50
46
|
register: (alepha) => {
|
|
51
|
-
alepha.with({
|
|
52
|
-
optional: true,
|
|
53
|
-
provide: SmsProvider,
|
|
54
|
-
use: MemorySmsProvider,
|
|
55
|
-
});
|
|
56
|
-
|
|
57
47
|
const env = alepha.parseEnv(notificationServiceEnvSchema);
|
|
58
48
|
if (env.NOTIFICATION_QUEUE) {
|
|
59
49
|
alepha.with(NotificationQueues);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
$inject,
|
|
3
|
-
|
|
4
|
-
Descriptor,
|
|
3
|
+
createPrimitive,
|
|
5
4
|
KIND,
|
|
5
|
+
Primitive,
|
|
6
6
|
type Static,
|
|
7
7
|
type StaticEncode,
|
|
8
8
|
type TObject,
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import { NotificationService } from "../services/NotificationService.ts";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* Creates a notification
|
|
13
|
+
* Creates a notification primitive for managing email/SMS notification templates.
|
|
14
14
|
*
|
|
15
15
|
* Provides type-safe, reusable notification templates with multi-language support,
|
|
16
16
|
* variable substitution, and categorization for different notification channels.
|
|
@@ -38,12 +38,12 @@ import { NotificationService } from "../services/NotificationService.ts";
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
export const $notification = <T extends TObject>(
|
|
41
|
-
options:
|
|
42
|
-
) =>
|
|
41
|
+
options: NotificationPrimitiveOptions<T>,
|
|
42
|
+
) => createPrimitive(NotificationPrimitive<T>, options);
|
|
43
43
|
|
|
44
44
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
45
45
|
|
|
46
|
-
export interface
|
|
46
|
+
export interface NotificationPrimitiveOptions<T extends TObject>
|
|
47
47
|
extends NotificationMessage<T> {
|
|
48
48
|
name?: string;
|
|
49
49
|
description?: string;
|
|
@@ -59,8 +59,8 @@ export interface NotificationDescriptorOptions<T extends TObject>
|
|
|
59
59
|
|
|
60
60
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
61
61
|
|
|
62
|
-
export class
|
|
63
|
-
|
|
62
|
+
export class NotificationPrimitive<T extends TObject> extends Primitive<
|
|
63
|
+
NotificationPrimitiveOptions<T>
|
|
64
64
|
> {
|
|
65
65
|
protected readonly notificationService = $inject(NotificationService);
|
|
66
66
|
|
|
@@ -78,12 +78,12 @@ export class NotificationDescriptor<T extends TObject> extends Descriptor<
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
public configure(options: Partial<
|
|
81
|
+
public configure(options: Partial<NotificationPrimitiveOptions<T>>) {
|
|
82
82
|
Object.assign(this.options, options);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
$notification[KIND] =
|
|
86
|
+
$notification[KIND] = NotificationPrimitive;
|
|
87
87
|
|
|
88
88
|
// ---------------------------------------------------------------------------------------------------------------------
|
|
89
89
|
|