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
|
@@ -1,94 +1,31 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { ServerRouteSecure } from "alepha/server/security";
|
|
2
|
+
import * as alepha1 from "alepha";
|
|
3
|
+
import { Alepha, Async, KIND, Primitive, Static } from "alepha";
|
|
4
4
|
import * as alepha_server0 from "alepha/server";
|
|
5
|
-
import {
|
|
5
|
+
import { ActionPrimitive, ClientRequestEntry, ClientRequestOptions, ClientRequestResponse, FetchResponse, HttpClient, RequestConfigSchema, ServerRequest, ServerRequestConfigEntry, ServerResponseBody, ServerTimingProvider } from "alepha/server";
|
|
6
6
|
import * as alepha_logger0 from "alepha/logger";
|
|
7
7
|
import * as alepha_retry0 from "alepha/retry";
|
|
8
|
+
import { ProxyPrimitiveOptions, ServerProxyProvider } from "alepha/server/proxy";
|
|
9
|
+
import { ServiceAccountPrimitive, UserAccountToken } from "alepha/security";
|
|
8
10
|
|
|
9
|
-
//#region src/server-security/providers/ServerBasicAuthProvider.d.ts
|
|
10
|
-
interface BasicAuthOptions {
|
|
11
|
-
username: string;
|
|
12
|
-
password: string;
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/server-security/providers/ServerSecurityProvider.d.ts
|
|
16
|
-
|
|
17
|
-
type ServerRouteSecure = {
|
|
18
|
-
realm?: string;
|
|
19
|
-
basic?: BasicAuthOptions;
|
|
20
|
-
};
|
|
21
|
-
//#endregion
|
|
22
|
-
//#region src/server-security/index.d.ts
|
|
23
|
-
declare module "alepha" {
|
|
24
|
-
interface State {
|
|
25
|
-
/**
|
|
26
|
-
* Real (or fake) user account, used for internal actions.
|
|
27
|
-
*
|
|
28
|
-
* If you define this, you assume that all actions are executed by this user by default.
|
|
29
|
-
* > To force a different user, you need to pass it explicitly in the options.
|
|
30
|
-
*/
|
|
31
|
-
"alepha.server.security.system.user"?: UserAccountToken;
|
|
32
|
-
/**
|
|
33
|
-
* The authenticated user account attached to the server request state.
|
|
34
|
-
*
|
|
35
|
-
* @internal
|
|
36
|
-
*/
|
|
37
|
-
"alepha.server.request.user"?: UserAccount;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
declare module "alepha/server" {
|
|
41
|
-
interface ServerRequest<TConfig> {
|
|
42
|
-
user?: UserAccountToken;
|
|
43
|
-
}
|
|
44
|
-
interface ServerActionRequest<TConfig> {
|
|
45
|
-
user: UserAccountToken;
|
|
46
|
-
}
|
|
47
|
-
interface ServerRoute {
|
|
48
|
-
/**
|
|
49
|
-
* If true, the route will be protected by the security provider.
|
|
50
|
-
* All actions are secure by default, but you can disable it for specific actions.
|
|
51
|
-
*/
|
|
52
|
-
secure?: boolean | ServerRouteSecure;
|
|
53
|
-
}
|
|
54
|
-
interface ClientRequestOptions extends FetchOptions {
|
|
55
|
-
/**
|
|
56
|
-
* Forward user from the previous request.
|
|
57
|
-
* If "system", use system user. @see {ServerSecurityProvider.localSystemUser}
|
|
58
|
-
* If "context", use the user from the current context (e.g. request).
|
|
59
|
-
*
|
|
60
|
-
* @default "system" if provided, else "context" if available.
|
|
61
|
-
*/
|
|
62
|
-
user?: UserAccountToken | "system" | "context";
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Plugin for Alepha Server that provides security features. Based on the Alepha Security module.
|
|
67
|
-
*
|
|
68
|
-
* By default, all $action will be guarded by a permission check.
|
|
69
|
-
*
|
|
70
|
-
* @see {@link ServerSecurityProvider}
|
|
71
|
-
* @module alepha.server.security
|
|
72
|
-
*/
|
|
73
|
-
//#endregion
|
|
74
11
|
//#region src/server-links/schemas/apiLinksResponseSchema.d.ts
|
|
75
|
-
declare const apiLinkSchema:
|
|
76
|
-
name:
|
|
77
|
-
group:
|
|
78
|
-
path:
|
|
79
|
-
method:
|
|
80
|
-
requestBodyType:
|
|
81
|
-
service:
|
|
12
|
+
declare const apiLinkSchema: alepha1.TObject<{
|
|
13
|
+
name: alepha1.TString;
|
|
14
|
+
group: alepha1.TOptional<alepha1.TString>;
|
|
15
|
+
path: alepha1.TString;
|
|
16
|
+
method: alepha1.TOptional<alepha1.TString>;
|
|
17
|
+
requestBodyType: alepha1.TOptional<alepha1.TString>;
|
|
18
|
+
service: alepha1.TOptional<alepha1.TString>;
|
|
82
19
|
}>;
|
|
83
|
-
declare const apiLinksResponseSchema:
|
|
84
|
-
prefix:
|
|
85
|
-
links:
|
|
86
|
-
name:
|
|
87
|
-
group:
|
|
88
|
-
path:
|
|
89
|
-
method:
|
|
90
|
-
requestBodyType:
|
|
91
|
-
service:
|
|
20
|
+
declare const apiLinksResponseSchema: alepha1.TObject<{
|
|
21
|
+
prefix: alepha1.TOptional<alepha1.TString>;
|
|
22
|
+
links: alepha1.TArray<alepha1.TObject<{
|
|
23
|
+
name: alepha1.TString;
|
|
24
|
+
group: alepha1.TOptional<alepha1.TString>;
|
|
25
|
+
path: alepha1.TString;
|
|
26
|
+
method: alepha1.TOptional<alepha1.TString>;
|
|
27
|
+
requestBodyType: alepha1.TOptional<alepha1.TString>;
|
|
28
|
+
service: alepha1.TOptional<alepha1.TString>;
|
|
92
29
|
}>>;
|
|
93
30
|
}>;
|
|
94
31
|
type ApiLinksResponse = Static<typeof apiLinksResponseSchema>;
|
|
@@ -155,13 +92,13 @@ interface ClientScope {
|
|
|
155
92
|
service?: string;
|
|
156
93
|
hostname?: string;
|
|
157
94
|
}
|
|
158
|
-
type HttpVirtualClient<T> = { [K in keyof T as T[K] extends
|
|
159
|
-
interface VirtualAction<T extends RequestConfigSchema> extends Pick<
|
|
95
|
+
type HttpVirtualClient<T> = { [K in keyof T as T[K] extends ActionPrimitive<RequestConfigSchema> ? K : never]: T[K] extends ActionPrimitive<infer Schema> ? VirtualAction<Schema> : never };
|
|
96
|
+
interface VirtualAction<T extends RequestConfigSchema> extends Pick<ActionPrimitive<T>, "name" | "run" | "fetch"> {
|
|
160
97
|
(config?: ClientRequestEntry<T>, opts?: ClientRequestOptions): Promise<ClientRequestResponse<T>>;
|
|
161
98
|
can: () => boolean;
|
|
162
99
|
}
|
|
163
100
|
//#endregion
|
|
164
|
-
//#region src/server-links/
|
|
101
|
+
//#region src/server-links/primitives/$client.d.ts
|
|
165
102
|
/**
|
|
166
103
|
* Create a new client.
|
|
167
104
|
*/
|
|
@@ -170,138 +107,9 @@ declare const $client: {
|
|
|
170
107
|
[KIND]: string;
|
|
171
108
|
};
|
|
172
109
|
//#endregion
|
|
173
|
-
//#region src/server-
|
|
174
|
-
type ProxyDescriptorOptions = {
|
|
175
|
-
/**
|
|
176
|
-
* Path pattern to match for proxying requests.
|
|
177
|
-
*
|
|
178
|
-
* Supports wildcards and path parameters:
|
|
179
|
-
* - `/api/*` - Matches all paths starting with `/api/`
|
|
180
|
-
* - `/api/v1/*` - Matches all paths starting with `/api/v1/`
|
|
181
|
-
* - `/users/:id` - Matches `/users/123`, `/users/abc`, etc.
|
|
182
|
-
*
|
|
183
|
-
* @example "/api/*"
|
|
184
|
-
* @example "/secure/admin/*"
|
|
185
|
-
* @example "/users/:id/posts"
|
|
186
|
-
*/
|
|
187
|
-
path: string;
|
|
188
|
-
/**
|
|
189
|
-
* Target URL to which matching requests should be forwarded.
|
|
190
|
-
*
|
|
191
|
-
* Can be either:
|
|
192
|
-
* - **Static string**: A fixed URL like `"https://api.example.com"`
|
|
193
|
-
* - **Dynamic function**: A function that returns the URL, enabling runtime target resolution
|
|
194
|
-
*
|
|
195
|
-
* The target URL will be combined with the remaining path from the original request.
|
|
196
|
-
*
|
|
197
|
-
* @example "https://api.example.com"
|
|
198
|
-
* @example () => process.env.API_URL || "http://localhost:3001"
|
|
199
|
-
*/
|
|
200
|
-
target: string | (() => string);
|
|
201
|
-
/**
|
|
202
|
-
* Whether this proxy is disabled.
|
|
203
|
-
*
|
|
204
|
-
* When `true`, requests matching the path will not be proxied and will be handled
|
|
205
|
-
* by other routes or return 404. Useful for feature toggles or conditional proxying.
|
|
206
|
-
*
|
|
207
|
-
* @default false
|
|
208
|
-
* @example !process.env.ENABLE_PROXY
|
|
209
|
-
*/
|
|
210
|
-
disabled?: boolean;
|
|
211
|
-
/**
|
|
212
|
-
* Hook called before forwarding the request to the target server.
|
|
213
|
-
*
|
|
214
|
-
* Use this to:
|
|
215
|
-
* - Add authentication headers
|
|
216
|
-
* - Modify request headers or body
|
|
217
|
-
* - Add request tracking/logging
|
|
218
|
-
* - Transform the request before forwarding
|
|
219
|
-
*
|
|
220
|
-
* @param request - The original incoming server request
|
|
221
|
-
* @param proxyRequest - The request that will be sent to the target (modifiable)
|
|
222
|
-
*
|
|
223
|
-
* @example
|
|
224
|
-
* ```ts
|
|
225
|
-
* beforeRequest: async (request, proxyRequest) => {
|
|
226
|
-
* proxyRequest.headers = {
|
|
227
|
-
* ...proxyRequest.headers,
|
|
228
|
-
* 'Authorization': `Bearer ${await getToken()}`,
|
|
229
|
-
* 'X-Request-ID': generateRequestId()
|
|
230
|
-
* };
|
|
231
|
-
* }
|
|
232
|
-
* ```
|
|
233
|
-
*/
|
|
234
|
-
beforeRequest?: (request: ServerRequest, proxyRequest: RequestInit) => Async<void>;
|
|
235
|
-
/**
|
|
236
|
-
* Hook called after receiving the response from the target server.
|
|
237
|
-
*
|
|
238
|
-
* Use this to:
|
|
239
|
-
* - Log response details for monitoring
|
|
240
|
-
* - Add custom headers to the response
|
|
241
|
-
* - Transform response data
|
|
242
|
-
* - Handle error responses
|
|
243
|
-
*
|
|
244
|
-
* @param request - The original incoming server request
|
|
245
|
-
* @param proxyResponse - The response received from the target server
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
* ```ts
|
|
249
|
-
* afterResponse: async (request, proxyResponse) => {
|
|
250
|
-
* console.log(`Proxy ${request.method} ${request.url} -> ${proxyResponse.status}`);
|
|
251
|
-
*
|
|
252
|
-
* if (!proxyResponse.ok) {
|
|
253
|
-
* await logError(`Proxy error: ${proxyResponse.status}`, { request, response: proxyResponse });
|
|
254
|
-
* }
|
|
255
|
-
* }
|
|
256
|
-
* ```
|
|
257
|
-
*/
|
|
258
|
-
afterResponse?: (request: ServerRequest, proxyResponse: Response) => Async<void>;
|
|
259
|
-
/**
|
|
260
|
-
* Function to rewrite the URL before sending to the target server.
|
|
261
|
-
*
|
|
262
|
-
* Use this to:
|
|
263
|
-
* - Remove or add path prefixes
|
|
264
|
-
* - Transform path parameters
|
|
265
|
-
* - Modify query parameters
|
|
266
|
-
* - Change the URL structure entirely
|
|
267
|
-
*
|
|
268
|
-
* The function receives a mutable URL object and should modify it in-place.
|
|
269
|
-
*
|
|
270
|
-
* @param url - The URL object to modify (mutable)
|
|
271
|
-
*
|
|
272
|
-
* @example
|
|
273
|
-
* ```ts
|
|
274
|
-
* // Remove /api prefix when forwarding
|
|
275
|
-
* rewrite: (url) => {
|
|
276
|
-
* url.pathname = url.pathname.replace('/api', '');
|
|
277
|
-
* }
|
|
278
|
-
* ```
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
* ```ts
|
|
282
|
-
* // Add version prefix
|
|
283
|
-
* rewrite: (url) => {
|
|
284
|
-
* url.pathname = `/v2${url.pathname}`;
|
|
285
|
-
* }
|
|
286
|
-
* ```
|
|
287
|
-
*/
|
|
288
|
-
rewrite?: (url: URL) => void;
|
|
289
|
-
};
|
|
290
|
-
//#endregion
|
|
291
|
-
//#region src/server-proxy/providers/ServerProxyProvider.d.ts
|
|
292
|
-
declare class ServerProxyProvider {
|
|
293
|
-
protected readonly log: alepha_logger0.Logger;
|
|
294
|
-
protected readonly routerProvider: ServerRouterProvider;
|
|
295
|
-
protected readonly alepha: Alepha;
|
|
296
|
-
protected readonly configure: alepha23.HookDescriptor<"configure">;
|
|
297
|
-
createProxy(options: ProxyDescriptorOptions): void;
|
|
298
|
-
createProxyHandler(target: string, options: Omit<ProxyDescriptorOptions, "path">): ServerHandler;
|
|
299
|
-
private getRawRequestBody;
|
|
300
|
-
}
|
|
301
|
-
//#endregion
|
|
302
|
-
//#region src/server-links/descriptors/$remote.d.ts
|
|
110
|
+
//#region src/server-links/primitives/$remote.d.ts
|
|
303
111
|
/**
|
|
304
|
-
* $remote is a
|
|
112
|
+
* $remote is a primitive that allows you to define remote service access.
|
|
305
113
|
*
|
|
306
114
|
* Use it only when you have 2 or more services that need to communicate with each other.
|
|
307
115
|
*
|
|
@@ -310,10 +118,10 @@ declare class ServerProxyProvider {
|
|
|
310
118
|
* You can add a service account if you want to use a security layer.
|
|
311
119
|
*/
|
|
312
120
|
declare const $remote: {
|
|
313
|
-
(options:
|
|
314
|
-
[KIND]: typeof
|
|
121
|
+
(options: RemotePrimitiveOptions): RemotePrimitive;
|
|
122
|
+
[KIND]: typeof RemotePrimitive;
|
|
315
123
|
};
|
|
316
|
-
interface
|
|
124
|
+
interface RemotePrimitiveOptions {
|
|
317
125
|
/**
|
|
318
126
|
* The URL of the remote service.
|
|
319
127
|
* You can use a function to generate the URL dynamically.
|
|
@@ -345,7 +153,7 @@ interface RemoteDescriptorOptions {
|
|
|
345
153
|
* If true, all methods of the remote service will be exposed as actions in this context.
|
|
346
154
|
* > Note: Proxy will never use the service account, it just... proxies the request.
|
|
347
155
|
*/
|
|
348
|
-
proxy?: boolean | Partial<
|
|
156
|
+
proxy?: boolean | Partial<ProxyPrimitiveOptions & {
|
|
349
157
|
/**
|
|
350
158
|
* If true, the remote service won't be available internally, only through the proxy.
|
|
351
159
|
*/
|
|
@@ -355,14 +163,14 @@ interface RemoteDescriptorOptions {
|
|
|
355
163
|
* For communication between the server and the remote service with a security layer.
|
|
356
164
|
* This will be used for internal communication and will not be exposed to the client.
|
|
357
165
|
*/
|
|
358
|
-
serviceAccount?:
|
|
166
|
+
serviceAccount?: ServiceAccountPrimitive;
|
|
359
167
|
}
|
|
360
|
-
declare class
|
|
168
|
+
declare class RemotePrimitive extends Primitive<RemotePrimitiveOptions> {
|
|
361
169
|
get name(): string;
|
|
362
170
|
}
|
|
363
171
|
//#endregion
|
|
364
|
-
//#region src/server-links/providers/
|
|
365
|
-
declare class
|
|
172
|
+
//#region src/server-links/providers/RemotePrimitiveProvider.d.ts
|
|
173
|
+
declare class RemotePrimitiveProvider {
|
|
366
174
|
protected readonly env: {
|
|
367
175
|
SERVER_API_PREFIX: string;
|
|
368
176
|
};
|
|
@@ -372,10 +180,10 @@ declare class RemoteDescriptorProvider {
|
|
|
372
180
|
protected readonly remotes: Array<ServerRemote>;
|
|
373
181
|
protected readonly log: alepha_logger0.Logger;
|
|
374
182
|
getRemotes(): ServerRemote[];
|
|
375
|
-
readonly configure:
|
|
376
|
-
readonly start:
|
|
377
|
-
registerRemote(value:
|
|
378
|
-
protected readonly fetchLinks: alepha_retry0.
|
|
183
|
+
readonly configure: alepha1.HookPrimitive<"configure">;
|
|
184
|
+
readonly start: alepha1.HookPrimitive<"start">;
|
|
185
|
+
registerRemote(value: RemotePrimitive): Promise<void>;
|
|
186
|
+
protected readonly fetchLinks: alepha_retry0.RetryPrimitiveFn<(opts: FetchLinksOptions) => Promise<ApiLinksResponse>>;
|
|
379
187
|
}
|
|
380
188
|
interface FetchLinksOptions {
|
|
381
189
|
/**
|
|
@@ -424,7 +232,7 @@ interface ServerRemote {
|
|
|
424
232
|
/**
|
|
425
233
|
* Force a default access token provider when not provided.
|
|
426
234
|
*/
|
|
427
|
-
serviceAccount?:
|
|
235
|
+
serviceAccount?: ServiceAccountPrimitive;
|
|
428
236
|
/**
|
|
429
237
|
* Prefix for the remote service links.
|
|
430
238
|
*/
|
|
@@ -438,25 +246,25 @@ declare class ServerLinksProvider {
|
|
|
438
246
|
};
|
|
439
247
|
protected readonly alepha: Alepha;
|
|
440
248
|
protected readonly linkProvider: LinkProvider;
|
|
441
|
-
protected readonly remoteProvider:
|
|
249
|
+
protected readonly remoteProvider: RemotePrimitiveProvider;
|
|
442
250
|
protected readonly serverTimingProvider: ServerTimingProvider;
|
|
443
251
|
get prefix(): string;
|
|
444
|
-
readonly onRoute:
|
|
252
|
+
readonly onRoute: alepha1.HookPrimitive<"configure">;
|
|
445
253
|
/**
|
|
446
254
|
* First API - Get all API links for the user.
|
|
447
255
|
*
|
|
448
256
|
* This is based on the user's permissions.
|
|
449
257
|
*/
|
|
450
|
-
readonly links: alepha_server0.
|
|
451
|
-
response:
|
|
452
|
-
prefix:
|
|
453
|
-
links:
|
|
454
|
-
name:
|
|
455
|
-
group:
|
|
456
|
-
path:
|
|
457
|
-
method:
|
|
458
|
-
requestBodyType:
|
|
459
|
-
service:
|
|
258
|
+
readonly links: alepha_server0.RoutePrimitive<{
|
|
259
|
+
response: alepha1.TObject<{
|
|
260
|
+
prefix: alepha1.TOptional<alepha1.TString>;
|
|
261
|
+
links: alepha1.TArray<alepha1.TObject<{
|
|
262
|
+
name: alepha1.TString;
|
|
263
|
+
group: alepha1.TOptional<alepha1.TString>;
|
|
264
|
+
path: alepha1.TString;
|
|
265
|
+
method: alepha1.TOptional<alepha1.TString>;
|
|
266
|
+
requestBodyType: alepha1.TOptional<alepha1.TString>;
|
|
267
|
+
service: alepha1.TOptional<alepha1.TString>;
|
|
460
268
|
}>>;
|
|
461
269
|
}>;
|
|
462
270
|
}>;
|
|
@@ -466,11 +274,11 @@ declare class ServerLinksProvider {
|
|
|
466
274
|
* Note: Body/Response schema are not included in `links` API because it's TOO BIG.
|
|
467
275
|
* I mean for 150+ links, you got 50ms of serialization time.
|
|
468
276
|
*/
|
|
469
|
-
readonly schema: alepha_server0.
|
|
470
|
-
params:
|
|
471
|
-
name:
|
|
277
|
+
readonly schema: alepha_server0.RoutePrimitive<{
|
|
278
|
+
params: alepha1.TObject<{
|
|
279
|
+
name: alepha1.TString;
|
|
472
280
|
}>;
|
|
473
|
-
response:
|
|
281
|
+
response: alepha1.TRecord<string, alepha1.TAny>;
|
|
474
282
|
}>;
|
|
475
283
|
getSchemaByName(name: string, options?: GetApiLinksOptions): Promise<RequestConfigSchema>;
|
|
476
284
|
/**
|
|
@@ -499,7 +307,7 @@ declare module "alepha" {
|
|
|
499
307
|
/**
|
|
500
308
|
* Provides server-side link management and remote capabilities for client-server interactions.
|
|
501
309
|
*
|
|
502
|
-
* The server-links module enables declarative link definitions using `$remote` and `$client`
|
|
310
|
+
* The server-links module enables declarative link definitions using `$remote` and `$client` primitives,
|
|
503
311
|
* facilitating seamless API endpoint management and client-server communication. It integrates with server
|
|
504
312
|
* security features to ensure safe and controlled access to resources.
|
|
505
313
|
*
|
|
@@ -507,7 +315,7 @@ declare module "alepha" {
|
|
|
507
315
|
* @see {@link $client}
|
|
508
316
|
* @module alepha.server.links
|
|
509
317
|
*/
|
|
510
|
-
declare const AlephaServerLinks:
|
|
318
|
+
declare const AlephaServerLinks: alepha1.Service<alepha1.Module>;
|
|
511
319
|
//#endregion
|
|
512
|
-
export { $client, $remote, AlephaServerLinks, ApiLink, ApiLinksResponse, ClientScope, FetchLinksOptions, GetApiLinksOptions, HttpClientLink, HttpVirtualClient, LinkProvider,
|
|
320
|
+
export { $client, $remote, AlephaServerLinks, ApiLink, ApiLinksResponse, ClientScope, FetchLinksOptions, GetApiLinksOptions, HttpClientLink, HttpVirtualClient, LinkProvider, RemotePrimitive, RemotePrimitiveOptions, RemotePrimitiveProvider, ServerLinksProvider, ServerRemote, VirtualAction, apiLinkSchema, apiLinksResponseSchema };
|
|
513
321
|
//# sourceMappingURL=index.d.ts.map
|