alepha 0.15.0 → 0.15.1
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 +43 -98
- package/dist/api/audits/index.d.ts +240 -240
- package/dist/api/audits/index.d.ts.map +1 -1
- package/dist/api/audits/index.js +2 -2
- package/dist/api/audits/index.js.map +1 -1
- package/dist/api/files/index.d.ts +185 -185
- package/dist/api/files/index.d.ts.map +1 -1
- package/dist/api/files/index.js +2 -2
- package/dist/api/files/index.js.map +1 -1
- package/dist/api/jobs/index.d.ts +245 -245
- package/dist/api/jobs/index.d.ts.map +1 -1
- package/dist/api/notifications/index.browser.js +4 -4
- package/dist/api/notifications/index.browser.js.map +1 -1
- package/dist/api/notifications/index.d.ts +74 -74
- package/dist/api/notifications/index.d.ts.map +1 -1
- package/dist/api/notifications/index.js +4 -4
- package/dist/api/notifications/index.js.map +1 -1
- package/dist/api/parameters/index.d.ts +221 -221
- package/dist/api/parameters/index.d.ts.map +1 -1
- package/dist/api/users/index.d.ts +1632 -1631
- package/dist/api/users/index.d.ts.map +1 -1
- package/dist/api/users/index.js +26 -34
- package/dist/api/users/index.js.map +1 -1
- package/dist/api/verifications/index.d.ts +132 -132
- package/dist/api/verifications/index.d.ts.map +1 -1
- package/dist/batch/index.d.ts +122 -122
- package/dist/batch/index.d.ts.map +1 -1
- package/dist/bucket/index.d.ts +163 -163
- package/dist/bucket/index.d.ts.map +1 -1
- package/dist/cache/core/index.d.ts +46 -46
- package/dist/cache/core/index.d.ts.map +1 -1
- package/dist/cache/redis/index.d.ts.map +1 -1
- package/dist/cache/redis/index.js +2 -2
- package/dist/cache/redis/index.js.map +1 -1
- package/dist/cli/index.d.ts +5933 -201
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +609 -169
- package/dist/cli/index.js.map +1 -1
- package/dist/command/index.d.ts +296 -296
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +19 -19
- package/dist/command/index.js.map +1 -1
- package/dist/core/index.browser.js +268 -79
- package/dist/core/index.browser.js.map +1 -1
- package/dist/core/index.d.ts +768 -694
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +268 -79
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.native.js +268 -79
- package/dist/core/index.native.js.map +1 -1
- package/dist/datetime/index.d.ts +44 -44
- package/dist/datetime/index.d.ts.map +1 -1
- package/dist/email/index.d.ts +25 -25
- package/dist/email/index.d.ts.map +1 -1
- package/dist/fake/index.d.ts +5409 -5409
- package/dist/fake/index.d.ts.map +1 -1
- package/dist/fake/index.js +22 -22
- package/dist/fake/index.js.map +1 -1
- package/dist/file/index.d.ts +435 -435
- package/dist/file/index.d.ts.map +1 -1
- package/dist/lock/core/index.d.ts +208 -208
- package/dist/lock/core/index.d.ts.map +1 -1
- package/dist/lock/redis/index.d.ts.map +1 -1
- package/dist/logger/index.d.ts +24 -24
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +1 -5
- package/dist/logger/index.js.map +1 -1
- package/dist/mcp/index.d.ts +216 -198
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +28 -4
- package/dist/mcp/index.js.map +1 -1
- package/dist/orm/index.browser.js +9 -9
- package/dist/orm/index.browser.js.map +1 -1
- package/dist/orm/index.bun.js +83 -76
- package/dist/orm/index.bun.js.map +1 -1
- package/dist/orm/index.d.ts +961 -960
- package/dist/orm/index.d.ts.map +1 -1
- package/dist/orm/index.js +88 -81
- package/dist/orm/index.js.map +1 -1
- package/dist/queue/core/index.d.ts +244 -244
- package/dist/queue/core/index.d.ts.map +1 -1
- package/dist/queue/redis/index.d.ts.map +1 -1
- package/dist/redis/index.d.ts +105 -105
- package/dist/redis/index.d.ts.map +1 -1
- package/dist/retry/index.d.ts +69 -69
- package/dist/retry/index.d.ts.map +1 -1
- package/dist/router/index.d.ts +6 -6
- package/dist/router/index.d.ts.map +1 -1
- package/dist/scheduler/index.d.ts +108 -26
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +393 -1
- package/dist/scheduler/index.js.map +1 -1
- package/dist/security/index.d.ts +532 -209
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +1422 -11
- package/dist/security/index.js.map +1 -1
- package/dist/server/auth/index.d.ts +1296 -271
- package/dist/server/auth/index.d.ts.map +1 -1
- package/dist/server/auth/index.js +1249 -18
- package/dist/server/auth/index.js.map +1 -1
- package/dist/server/cache/index.d.ts +56 -56
- package/dist/server/cache/index.d.ts.map +1 -1
- package/dist/server/compress/index.d.ts +3 -3
- package/dist/server/compress/index.d.ts.map +1 -1
- package/dist/server/cookies/index.d.ts +6 -6
- package/dist/server/cookies/index.d.ts.map +1 -1
- package/dist/server/core/index.d.ts +196 -186
- package/dist/server/core/index.d.ts.map +1 -1
- package/dist/server/core/index.js +43 -27
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/cors/index.d.ts +11 -11
- package/dist/server/cors/index.d.ts.map +1 -1
- package/dist/server/health/index.d.ts.map +1 -1
- package/dist/server/helmet/index.d.ts +2 -2
- package/dist/server/helmet/index.d.ts.map +1 -1
- package/dist/server/links/index.browser.js +9 -1
- package/dist/server/links/index.browser.js.map +1 -1
- package/dist/server/links/index.d.ts +83 -83
- package/dist/server/links/index.d.ts.map +1 -1
- package/dist/server/links/index.js +13 -5
- package/dist/server/links/index.js.map +1 -1
- package/dist/server/metrics/index.d.ts +514 -1
- package/dist/server/metrics/index.d.ts.map +1 -1
- package/dist/server/metrics/index.js +4462 -4
- package/dist/server/metrics/index.js.map +1 -1
- package/dist/server/multipart/index.d.ts +6 -6
- package/dist/server/multipart/index.d.ts.map +1 -1
- package/dist/server/proxy/index.d.ts +102 -102
- package/dist/server/proxy/index.d.ts.map +1 -1
- package/dist/server/rate-limit/index.d.ts +16 -16
- package/dist/server/rate-limit/index.d.ts.map +1 -1
- package/dist/server/static/index.d.ts +44 -44
- package/dist/server/static/index.d.ts.map +1 -1
- package/dist/server/swagger/index.d.ts +47 -47
- package/dist/server/swagger/index.d.ts.map +1 -1
- package/dist/sms/index.d.ts +11 -11
- package/dist/sms/index.d.ts.map +1 -1
- package/dist/sms/index.js +3 -3
- package/dist/sms/index.js.map +1 -1
- package/dist/thread/index.d.ts +71 -71
- package/dist/thread/index.d.ts.map +1 -1
- package/dist/thread/index.js +2 -2
- package/dist/thread/index.js.map +1 -1
- package/dist/topic/core/index.d.ts +318 -318
- package/dist/topic/core/index.d.ts.map +1 -1
- package/dist/topic/redis/index.d.ts +6 -6
- package/dist/topic/redis/index.d.ts.map +1 -1
- package/dist/vite/index.d.ts +2324 -1719
- package/dist/vite/index.d.ts.map +1 -1
- package/dist/vite/index.js +123 -475
- package/dist/vite/index.js.map +1 -1
- package/dist/websocket/index.browser.js +3 -3
- package/dist/websocket/index.browser.js.map +1 -1
- package/dist/websocket/index.d.ts +275 -275
- package/dist/websocket/index.d.ts.map +1 -1
- package/dist/websocket/index.js +3 -3
- package/dist/websocket/index.js.map +1 -1
- package/package.json +9 -9
- package/src/api/users/services/SessionService.ts +0 -10
- package/src/cli/apps/AlephaCli.ts +2 -2
- package/src/cli/apps/AlephaPackageBuilderCli.ts +9 -1
- package/src/cli/assets/apiHelloControllerTs.ts +2 -1
- package/src/cli/assets/biomeJson.ts +2 -1
- package/src/cli/assets/claudeMd.ts +9 -4
- package/src/cli/assets/dummySpecTs.ts +2 -1
- package/src/cli/assets/editorconfig.ts +2 -1
- package/src/cli/assets/mainBrowserTs.ts +2 -1
- package/src/cli/assets/mainCss.ts +24 -0
- package/src/cli/assets/tsconfigJson.ts +2 -1
- package/src/cli/assets/webAppRouterTs.ts +2 -1
- package/src/cli/assets/webHelloComponentTsx.ts +6 -2
- package/src/cli/atoms/appEntryOptions.ts +13 -0
- package/src/cli/atoms/buildOptions.ts +1 -1
- package/src/cli/atoms/changelogOptions.ts +1 -1
- package/src/cli/commands/build.ts +63 -47
- package/src/cli/commands/dev.ts +16 -33
- package/src/cli/commands/gen/env.ts +1 -1
- package/src/cli/commands/init.ts +17 -8
- package/src/cli/commands/lint.ts +1 -1
- package/src/cli/defineConfig.ts +9 -0
- package/src/cli/index.ts +2 -1
- package/src/cli/providers/AppEntryProvider.ts +131 -0
- package/src/cli/providers/ViteBuildProvider.ts +82 -0
- package/src/cli/providers/ViteDevServerProvider.ts +350 -0
- package/src/cli/providers/ViteTemplateProvider.ts +27 -0
- package/src/cli/services/AlephaCliUtils.ts +33 -2
- package/src/cli/services/PackageManagerUtils.ts +13 -6
- package/src/cli/services/ProjectScaffolder.ts +72 -49
- package/src/core/Alepha.ts +2 -8
- package/src/core/primitives/$module.ts +12 -0
- package/src/core/providers/KeylessJsonSchemaCodec.spec.ts +257 -0
- package/src/core/providers/KeylessJsonSchemaCodec.ts +396 -14
- package/src/core/providers/SchemaValidator.spec.ts +236 -0
- package/src/logger/providers/PrettyFormatterProvider.ts +0 -9
- package/src/mcp/errors/McpError.ts +30 -0
- package/src/mcp/index.ts +3 -0
- package/src/mcp/transports/SseMcpTransport.ts +16 -6
- package/src/orm/providers/DrizzleKitProvider.ts +3 -5
- package/src/orm/services/Repository.ts +11 -0
- package/src/server/core/index.ts +1 -1
- package/src/server/core/providers/BunHttpServerProvider.ts +1 -1
- package/src/server/core/providers/NodeHttpServerProvider.spec.ts +125 -0
- package/src/server/core/providers/NodeHttpServerProvider.ts +71 -22
- package/src/server/core/providers/ServerLoggerProvider.ts +2 -2
- package/src/server/core/providers/ServerProvider.ts +9 -12
- package/src/server/links/atoms/apiLinksAtom.ts +7 -0
- package/src/server/links/index.browser.ts +2 -0
- package/src/server/links/index.ts +2 -0
- package/src/vite/index.ts +3 -2
- package/src/vite/tasks/buildClient.ts +0 -1
- package/src/vite/tasks/buildServer.ts +68 -21
- package/src/vite/tasks/copyAssets.ts +5 -4
- package/src/vite/tasks/generateSitemap.ts +64 -23
- package/src/vite/tasks/index.ts +0 -2
- package/src/vite/tasks/prerenderPages.ts +49 -24
- package/src/cli/assets/indexHtml.ts +0 -15
- package/src/cli/commands/format.ts +0 -23
- package/src/vite/helpers/boot.ts +0 -117
- package/src/vite/plugins/viteAlephaDev.ts +0 -177
- package/src/vite/tasks/devServer.ts +0 -71
- package/src/vite/tasks/runAlepha.ts +0 -270
- /package/dist/orm/{chunk-DtkW-qnP.js → chunk-DH6iiROE.js} +0 -0
|
@@ -19,12 +19,12 @@ declare class ServerMultipartProvider {
|
|
|
19
19
|
cleanup: () => Promise<void>;
|
|
20
20
|
}>;
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
* This is a legacy code, previously we used "busboy" to parse multipart in Node.js environment.
|
|
23
|
+
* Now we rely on Web Request's formData() method, which is supported in modern Node.js versions.
|
|
24
|
+
* However, we still need to create temporary files for uploaded files to provide a consistent File-like interface.
|
|
25
|
+
*
|
|
26
|
+
* TODO: In future, we might want to refactor this to avoid using temporary files if not necessary?
|
|
27
|
+
*/
|
|
28
28
|
protected createHybridFile(file: Blob, fieldName: string): Promise<HybridFile>;
|
|
29
29
|
}
|
|
30
30
|
interface HybridFile extends FileLike {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/multipart/providers/ServerMultipartProvider.ts","../../../src/server/multipart/index.ts"],"mappings":";;;;;;cAmCa,uBAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/multipart/providers/ServerMultipartProvider.ts","../../../src/server/multipart/index.ts"],"mappings":";;;;;;cAmCa,uBAAA;EAAA,mBACQ,MAAA,EAAM,MAAA;EAAA,mBACN,GAAA;;;;;qBACA,GAAA,EAFM,cAAA,CAEH,MAAA;EAAA,SAEN,SAAA,EAFM,OAAA,CAEG,aAAA;EAAA,SAuET,UAAA,EAvES,OAAA,CAuEC,aAAA;EAUb,0BAAA,CACX,KAAA,EAAO,WAAA,EACP,OAAA,EAAS,OAAA,GACR,OAAA;IACD,IAAA,EAAM,MAAA;IACN,OAAA,QAAe,OAAA;EAAA;EAAA;;;;;;;EAAA,UAwHD,gBAAA,CACd,IAAA,EAAM,IAAA,EACN,SAAA,WACC,OAAA,CAAQ,UAAA;AAAA;AAAA,UAqDH,UAAA,SAAmB,QAAA;EAC3B,OAAA,IAAW,OAAA;EACX,MAAA;IACE,OAAA;IACA,IAAA;IACA,OAAA;EAAA;AAAA;;;;;;;;AAhRJ;;cClBa,qBAAA,EAAqB,OAAA,CAAA,OAAA,CAGhC,OAAA,CAHgC,MAAA"}
|
|
@@ -93,118 +93,118 @@ declare const $proxy: {
|
|
|
93
93
|
};
|
|
94
94
|
type ProxyPrimitiveOptions = {
|
|
95
95
|
/**
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
96
|
+
* Path pattern to match for proxying requests.
|
|
97
|
+
*
|
|
98
|
+
* Supports wildcards and path parameters:
|
|
99
|
+
* - `/api/*` - Matches all paths starting with `/api/`
|
|
100
|
+
* - `/api/v1/*` - Matches all paths starting with `/api/v1/`
|
|
101
|
+
* - `/users/:id` - Matches `/users/123`, `/users/abc`, etc.
|
|
102
|
+
*
|
|
103
|
+
* @example "/api/*"
|
|
104
|
+
* @example "/secure/admin/*"
|
|
105
|
+
* @example "/users/:id/posts"
|
|
106
|
+
*/
|
|
107
107
|
path: string;
|
|
108
108
|
/**
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
109
|
+
* Target URL to which matching requests should be forwarded.
|
|
110
|
+
*
|
|
111
|
+
* Can be either:
|
|
112
|
+
* - **Static string**: A fixed URL like `"https://api.example.com"`
|
|
113
|
+
* - **Dynamic function**: A function that returns the URL, enabling runtime target resolution
|
|
114
|
+
*
|
|
115
|
+
* The target URL will be combined with the remaining path from the original request.
|
|
116
|
+
*
|
|
117
|
+
* @example "https://api.example.com"
|
|
118
|
+
* @example () => process.env.API_URL || "http://localhost:3001"
|
|
119
|
+
*/
|
|
120
120
|
target: string | (() => string);
|
|
121
121
|
/**
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
* Whether this proxy is disabled.
|
|
123
|
+
*
|
|
124
|
+
* When `true`, requests matching the path will not be proxied and will be handled
|
|
125
|
+
* by other routes or return 404. Useful for feature toggles or conditional proxying.
|
|
126
|
+
*
|
|
127
|
+
* @default false
|
|
128
|
+
* @example !process.env.ENABLE_PROXY
|
|
129
|
+
*/
|
|
130
130
|
disabled?: boolean;
|
|
131
131
|
/**
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
132
|
+
* Hook called before forwarding the request to the target server.
|
|
133
|
+
*
|
|
134
|
+
* Use this to:
|
|
135
|
+
* - Add authentication headers
|
|
136
|
+
* - Modify request headers or body
|
|
137
|
+
* - Add request tracking/logging
|
|
138
|
+
* - Transform the request before forwarding
|
|
139
|
+
*
|
|
140
|
+
* @param request - The original incoming server request
|
|
141
|
+
* @param proxyRequest - The request that will be sent to the target (modifiable)
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* beforeRequest: async (request, proxyRequest) => {
|
|
146
|
+
* proxyRequest.headers = {
|
|
147
|
+
* ...proxyRequest.headers,
|
|
148
|
+
* 'Authorization': `Bearer ${await getToken()}`,
|
|
149
|
+
* 'X-Request-ID': generateRequestId()
|
|
150
|
+
* };
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
154
|
beforeRequest?: (request: ServerRequest, proxyRequest: RequestInit) => Async<void>;
|
|
155
155
|
/**
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
156
|
+
* Hook called after receiving the response from the target server.
|
|
157
|
+
*
|
|
158
|
+
* Use this to:
|
|
159
|
+
* - Log response details for monitoring
|
|
160
|
+
* - Add custom headers to the response
|
|
161
|
+
* - Transform response data
|
|
162
|
+
* - Handle error responses
|
|
163
|
+
*
|
|
164
|
+
* @param request - The original incoming server request
|
|
165
|
+
* @param proxyResponse - The response received from the target server
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```ts
|
|
169
|
+
* afterResponse: async (request, proxyResponse) => {
|
|
170
|
+
* console.log(`Proxy ${request.method} ${request.url} -> ${proxyResponse.status}`);
|
|
171
|
+
*
|
|
172
|
+
* if (!proxyResponse.ok) {
|
|
173
|
+
* await logError(`Proxy error: ${proxyResponse.status}`, { request, response: proxyResponse });
|
|
174
|
+
* }
|
|
175
|
+
* }
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
178
|
afterResponse?: (request: ServerRequest, proxyResponse: Response) => Async<void>;
|
|
179
179
|
/**
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
180
|
+
* Function to rewrite the URL before sending to the target server.
|
|
181
|
+
*
|
|
182
|
+
* Use this to:
|
|
183
|
+
* - Remove or add path prefixes
|
|
184
|
+
* - Transform path parameters
|
|
185
|
+
* - Modify query parameters
|
|
186
|
+
* - Change the URL structure entirely
|
|
187
|
+
*
|
|
188
|
+
* The function receives a mutable URL object and should modify it in-place.
|
|
189
|
+
*
|
|
190
|
+
* @param url - The URL object to modify (mutable)
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```ts
|
|
194
|
+
* // Remove /api prefix when forwarding
|
|
195
|
+
* rewrite: (url) => {
|
|
196
|
+
* url.pathname = url.pathname.replace('/api', '');
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```ts
|
|
202
|
+
* // Add version prefix
|
|
203
|
+
* rewrite: (url) => {
|
|
204
|
+
* url.pathname = `/v2${url.pathname}`;
|
|
205
|
+
* }
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
208
|
rewrite?: (url: URL) => void;
|
|
209
209
|
};
|
|
210
210
|
declare class ProxyPrimitive extends Primitive<ProxyPrimitiveOptions> {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/proxy/primitives/$proxy.ts","../../../src/server/proxy/providers/ServerProxyProvider.ts","../../../src/server/proxy/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/proxy/primitives/$proxy.ts","../../../src/server/proxy/providers/ServerProxyProvider.ts","../../../src/server/proxy/index.ts"],"mappings":";;;;;;;;;;AAsFA;;;;;;;;;;;;;;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmIA;;;;;;;;AClNA;;;;;;;;;;;;;;;;;;;;;;;cD2Ea,MAAA;EAAA,UAAmB,qBAAA,GAAwB,cAAA;EAAA;;KAI5C,qBAAA;ECpCR;;;;;;;;ACpCJ;;;;EFqFE,IAAA;;;;;;;;;;;;;EAcA,MAAA;;;;;;;;;;EAWA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;EAyBA,aAAA,IACE,OAAA,EAAS,aAAA,EACT,YAAA,EAAc,WAAA,KACX,KAAA;;;;;;;;;;;;;;;;;;;;;;;;EAyBL,aAAA,IACE,OAAA,EAAS,aAAA,EACT,aAAA,EAAe,QAAA,KACZ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BL,OAAA,IAAW,GAAA,EAAK,GAAA;AAAA;AAAA,cAML,cAAA,SAAuB,SAAA,CAAU,qBAAA;;;cClNjC,mBAAA;EAAA,mBACQ,GAAA,EADW,cAAA,CACR,MAAA;EAAA,mBACH,cAAA,EAAc,oBAAA;EAAA,mBACd,MAAA,EAAM,MAAA;EAAA,mBAEN,SAAA,EAFM,OAAA,CAEG,aAAA;EASrB,WAAA,CAAY,OAAA,EAAS,qBAAA;EA2BrB,kBAAA,CACL,MAAA,UACA,OAAA,EAAS,IAAA,CAAK,qBAAA,YACb,aAAA;EAAA,QAkDK,iBAAA;AAAA;;;;;;;ADnBV;;cEpEa,iBAAA,EAAiB,OAAA,CAAA,OAAA,CAI5B,OAAA,CAJ4B,MAAA"}
|
|
@@ -42,23 +42,23 @@ declare class ServerRateLimitProvider {
|
|
|
42
42
|
skipSuccessfulRequests?: boolean | undefined;
|
|
43
43
|
}>;
|
|
44
44
|
/**
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
* Registered rate limit configurations with their path patterns
|
|
46
|
+
*/
|
|
47
47
|
readonly registeredConfigs: RateLimitPrimitiveOptions[];
|
|
48
48
|
/**
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
* Register a rate limit configuration (called by primitives)
|
|
50
|
+
*/
|
|
51
51
|
registerRateLimit(config: RateLimitPrimitiveOptions): void;
|
|
52
52
|
protected readonly onStart: alepha1.HookPrimitive<"start">;
|
|
53
53
|
readonly onRequest: alepha1.HookPrimitive<"server:onRequest">;
|
|
54
54
|
readonly onActionRequest: alepha1.HookPrimitive<"action:onRequest">;
|
|
55
55
|
/**
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
* Build complete rate limit options by merging with global defaults
|
|
57
|
+
*/
|
|
58
58
|
protected buildRateLimitOptions(config: RateLimitPrimitiveOptions): RateLimitOptions;
|
|
59
59
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
* Set rate limit headers on the response
|
|
61
|
+
*/
|
|
62
62
|
protected setRateLimitHeaders(request: ServerRequest, result: RateLimitResult): void;
|
|
63
63
|
checkLimit(req: ServerRequest, options?: RateLimitOptions): Promise<RateLimitResult>;
|
|
64
64
|
protected generateKey(req: ServerRequest): string;
|
|
@@ -117,8 +117,8 @@ declare class RateLimitPrimitive extends Primitive<RateLimitPrimitiveOptions> im
|
|
|
117
117
|
get name(): string;
|
|
118
118
|
protected onInit(): void;
|
|
119
119
|
/**
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
* Checks rate limit for the given request using this primitive's configuration.
|
|
121
|
+
*/
|
|
122
122
|
check(request: ServerRequest, options?: RateLimitOptions): Promise<RateLimitResult>;
|
|
123
123
|
}
|
|
124
124
|
//#endregion
|
|
@@ -126,16 +126,16 @@ declare class RateLimitPrimitive extends Primitive<RateLimitPrimitiveOptions> im
|
|
|
126
126
|
declare module "alepha/server" {
|
|
127
127
|
interface ActionPrimitiveOptions<TConfig> {
|
|
128
128
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
* Rate limiting configuration for this action.
|
|
130
|
+
* When specified, the action will be rate limited according to these settings.
|
|
131
|
+
*/
|
|
132
132
|
rateLimit?: RateLimitOptions;
|
|
133
133
|
}
|
|
134
134
|
interface ServerRoute {
|
|
135
135
|
/**
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
* Route-specific rate limit configuration.
|
|
137
|
+
* If set, overrides the global rate limit options for this route.
|
|
138
|
+
*/
|
|
139
139
|
rateLimit?: RateLimitOptions;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/rate-limit/providers/ServerRateLimitProvider.ts","../../../src/server/rate-limit/primitives/$rateLimit.ts","../../../src/server/rate-limit/index.ts"],"mappings":";;;;;;;UAaiB,eAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/rate-limit/providers/ServerRateLimitProvider.ts","../../../src/server/rate-limit/primitives/$rateLimit.ts","../../../src/server/rate-limit/index.ts"],"mappings":";;;;;;;UAaiB,eAAA;EACf,OAAA;EACA,KAAA;EACA,SAAA;EACA,SAAA;EACA,UAAA;AAAA;;;;cAMW,gBAAA,EAAgB,OAAA,CAAA,IAAA,SAAA,OAAA;8BAyB3B,OAAA,CAAA,OAAA;;;;;KAEU,oBAAA,GAAuB,MAAA,QAAc,gBAAA,CAAiB,MAAA;AAAA;EAAA,UAGtD,KAAA;IAAA,CACP,gBAAA,CAAiB,GAAA,GAAM,oBAAA;EAAA;AAAA;AAAA,cAiBf,uBAAA;EAAA,mBACQ,GAAA,EADe,cAAA,CACZ,MAAA;EAAA,mBACH,oBAAA,EAAoB,oBAAA;EAAA,mBACpB,GAAA;;;;qBAEA,KAAA,EAAK,aAAA,CAAA,gBAAA,CAAA,aAAA;EAAA,mBAKL,aAAA,EAAa,QAAA;;;;;;;;;WAKhB,iBAAA,EAAmB,yBAAA;;;;EAK5B,iBAAA,CAAkB,MAAA,EAAQ,yBAAA;EAAA,mBAId,OAAA,EAJuC,OAAA,CAIhC,aAAA;EAAA,SAuBV,SAAA,EAvBU,OAAA,CAuBD,aAAA;EAAA,SAuBT,eAAA,EAvBS,OAAA,CAuBM,aAAA;;;;YA2BrB,qBAAA,CACR,MAAA,EAAQ,yBAAA,GACP,gBAAA;EAxH6D;;;EAAA,UAwItD,mBAAA,CACR,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,eAAA;EAiBG,UAAA,CACX,GAAA,EAAK,aAAA,EACL,OAAA,GAAS,gBAAA,GACR,OAAA,CAAQ,eAAA;EAAA,UAiDD,WAAA,CAAY,GAAA,EAAK,aAAA;EAAA,UAMjB,WAAA,CAAY,GAAA,EAAK,aAAA;AAAA;AAAA,UAanB,aAAA;EACR,KAAA;EACA,WAAA;EACA,IAAA;AAAA;;;;;;AA3QF;;;;;;;;;;;AAWA;;;;;;;;;;;;cCUa,UAAA;EAAA,WACF,yBAAA,GACR,0BAAA;EAAA;;UAMc,yBAAA,SAAkC,gBAAA;;EAEjD,IAAA;;EAEA,KAAA;AAAA;AAAA,UAGe,0BAAA;EAAA,SACN,IAAA;EAAA,SACA,OAAA,EAAS,yBAAA;EAClB,KAAA,CACE,OAAA,EAAS,aAAA,EACT,OAAA,GAAU,gBAAA,GACT,OAAA,CAAQ,eAAA;AAAA;AAAA,cAGA,kBAAA,SACH,SAAA,CAAU,yBAAA,aACP,0BAAA;EAAA,mBAEQ,uBAAA,EAAuB,uBAAA;EAAA,IAE/B,IAAA,CAAA;EAAA,UAID,MAAA,CAAA;EDjBA;;;ECyBG,KAAA,CACX,OAAA,EAAS,aAAA,EACT,OAAA,GAAU,gBAAA,GACT,OAAA,CAAQ,eAAA;AAAA;;;;YClED,sBAAA;;;;AFAZ;IEKI,SAAA,GAAY,gBAAA;EAAA;EAAA,UAGJ,WAAA;IFPV;;;;IEYE,SAAA,GAAY,gBAAA;EAAA;AAAA;AAAA,UAMC,gBAAA;EFiBf;EEfA,GAAA;EFeA;EEbA,QAAA;;EAEA,YAAA,IAAgB,GAAA;;EAEhB,kBAAA;;EAEA,sBAAA;AAAA;;;;;;;;;;;;;;;;;;;;AFSF;;;;;;;cEoBa,qBAAA,EAAqB,OAAA,CAAA,OAAA,CAIhC,OAAA,CAJgC,MAAA"}
|
|
@@ -15,72 +15,72 @@ declare const $serve: {
|
|
|
15
15
|
};
|
|
16
16
|
interface ServePrimitiveOptions {
|
|
17
17
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
* Prefix for the served path.
|
|
19
|
+
*
|
|
20
|
+
* @default "/"
|
|
21
|
+
*/
|
|
22
22
|
path?: string;
|
|
23
23
|
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
* Path to the directory to serve.
|
|
25
|
+
*
|
|
26
|
+
* @default process.cwd()
|
|
27
|
+
*/
|
|
28
28
|
root?: string;
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
* If true, primitive will be ignored.
|
|
31
|
+
*
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
34
|
disabled?: boolean;
|
|
35
35
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
* Whether to keep dot files (e.g. `.gitignore`, `.env`) in the served directory.
|
|
37
|
+
*
|
|
38
|
+
* @default true
|
|
39
|
+
*/
|
|
40
40
|
ignoreDotEnvFiles?: boolean;
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
* Whether to use the index.html file when the path is a directory.
|
|
43
|
+
*
|
|
44
|
+
* @default true
|
|
45
|
+
*/
|
|
46
46
|
indexFallback?: boolean;
|
|
47
47
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
* Force all requests "not found" to be served with the index.html file.
|
|
49
|
+
* This is useful for single-page applications (SPAs) that use client-side only routing.
|
|
50
|
+
*/
|
|
51
51
|
historyApiFallback?: boolean;
|
|
52
52
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
* Optional name of the primitive.
|
|
54
|
+
* This is used for logging and debugging purposes.
|
|
55
|
+
*
|
|
56
|
+
* @default Key name.
|
|
57
|
+
*/
|
|
58
58
|
name?: string;
|
|
59
59
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
* Whether to use cache control headers.
|
|
61
|
+
*
|
|
62
|
+
* @default {}
|
|
63
|
+
*/
|
|
64
64
|
cacheControl?: Partial<CacheControlOptions> | false;
|
|
65
65
|
}
|
|
66
66
|
interface CacheControlOptions {
|
|
67
67
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
* Whether to use cache control headers.
|
|
69
|
+
*
|
|
70
|
+
* @default [.js, .css]
|
|
71
|
+
*/
|
|
72
72
|
fileTypes: string[];
|
|
73
73
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
* The maximum age of the cache in seconds.
|
|
75
|
+
*
|
|
76
|
+
* @default 60 * 60 * 24 * 2 // 2 days
|
|
77
|
+
*/
|
|
78
78
|
maxAge: DurationLike;
|
|
79
79
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
* Whether to use immutable cache control headers.
|
|
81
|
+
*
|
|
82
|
+
* @default true
|
|
83
|
+
*/
|
|
84
84
|
immutable: boolean;
|
|
85
85
|
}
|
|
86
86
|
declare class ServePrimitive extends Primitive<ServePrimitiveOptions> {}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/static/primitives/$serve.ts","../../../src/server/static/providers/ServerStaticProvider.ts","../../../src/server/static/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/static/primitives/$serve.ts","../../../src/server/static/providers/ServerStaticProvider.ts","../../../src/server/static/index.ts"],"mappings":";;;;;;;;;;;cAMa,MAAA;EAAA,WAAmB,qBAAA,GAA6B,cAAA;EAAA;;UAI5C,qBAAA;;;;;;EAMf,IAAA;;;;;;EAOA,IAAA;;;AAbF;;;EAoBE,QAAA;EAdA;;;;;EAqBA,iBAAA;EAqBA;;;;;EAdA,aAAA;EAwBe;;;;EAlBf,kBAAA;EA+BA;;;;;AAUF;EAjCE,IAAA;;;;;;EAOA,YAAA,GAAe,OAAA,CAAQ,mBAAA;AAAA;AAAA,UAGR,mBAAA;;;;;;EAMf,SAAA;ECzDgC;;;;;EDgEhC,MAAA,EAAQ,YAAA;ECoCL;;;;;ED7BH,SAAA;AAAA;AAAA,cAGW,cAAA,SAAuB,SAAA,CAAU,qBAAA;;;cChFjC,oBAAA;EAAA,mBACQ,MAAA,EAAM,MAAA;EAAA,mBACN,cAAA,EAAc,oBAAA;EAAA,mBACd,gBAAA,EAAgB,gBAAA;EAAA,mBAChB,YAAA,EAAY,YAAA;EAAA,mBACZ,GAAA,EADY,cAAA,CACT,MAAA;EAAA,mBACH,WAAA,EAAa,cAAA;EAAA,mBAEb,SAAA,EAF2B,OAAA,CAElB,aAAA;EAWf,kBAAA,CACX,OAAA,EAAS,qBAAA,GACR,OAAA;EAkFU,iBAAA,CACX,QAAA,UACA,OAAA,EAAS,qBAAA,GACR,OAAA,CAAQ,aAAA;EAAA,UA2ED,iBAAA,CAAA;EAAA,UAiBA,eAAA,CACR,QAAA,UACA,OAAA,EAAS,qBAAA;IACN,MAAA;IAAgB,SAAA;EAAA;EAoBR,WAAA,CACX,GAAA,UACA,iBAAA,aACC,OAAA;AAAA;AAAA,UAmBY,cAAA;EACf,OAAA,EAAS,qBAAA;EACT,KAAA;AAAA;;;;;;;;;cC9OW,kBAAA,EAAkB,OAAA,CAAA,OAAA,CAI7B,OAAA,CAJ6B,MAAA"}
|
|
@@ -37,79 +37,79 @@ declare const $swagger: {
|
|
|
37
37
|
interface SwaggerPrimitiveOptions {
|
|
38
38
|
info?: OpenApiDocument["info"];
|
|
39
39
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
* @default: "/docs"
|
|
41
|
+
*/
|
|
42
42
|
prefix?: string;
|
|
43
43
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
* If true, docs will be disabled.
|
|
45
|
+
*/
|
|
46
46
|
disabled?: boolean;
|
|
47
47
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
* Tags to exclude from the documentation.
|
|
49
|
+
*/
|
|
50
50
|
excludeTags?: string[];
|
|
51
51
|
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
* Enable Swagger UI.
|
|
53
|
+
*
|
|
54
|
+
* @default true
|
|
55
|
+
*/
|
|
56
56
|
ui?: boolean | SwaggerUiOptions;
|
|
57
57
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
* Function to rewrite the OpenAPI document before serving it.
|
|
59
|
+
*/
|
|
60
60
|
rewrite?: (doc: OpenApiDocument) => void;
|
|
61
61
|
}
|
|
62
62
|
interface SwaggerUiOptions {
|
|
63
63
|
root?: string;
|
|
64
64
|
initOAuth?: {
|
|
65
65
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
* Default clientId.
|
|
67
|
+
*/
|
|
68
68
|
clientId?: string;
|
|
69
69
|
/**
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
* realm query parameter (for oauth1) added to authorizationUrl and tokenUrl.
|
|
71
|
+
*/
|
|
72
72
|
realm?: string;
|
|
73
73
|
/**
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
* application name, displayed in authorization popup.
|
|
75
|
+
*/
|
|
76
76
|
appName?: string;
|
|
77
77
|
/**
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
* scope separator for passing scopes, encoded before calling, default
|
|
79
|
+
* value is a space (encoded value %20).
|
|
80
|
+
*
|
|
81
|
+
* @default ' '
|
|
82
|
+
*/
|
|
83
83
|
scopeSeparator?: string;
|
|
84
84
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
85
|
+
* string array or scope separator (i.e. space) separated string of
|
|
86
|
+
* initially selected oauth scopes
|
|
87
|
+
*
|
|
88
|
+
* @default []
|
|
89
|
+
*/
|
|
90
90
|
scopes?: string | string[];
|
|
91
91
|
/**
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
* Additional query parameters added to authorizationUrl and tokenUrl.
|
|
93
|
+
* MUST be an object
|
|
94
|
+
*/
|
|
95
95
|
additionalQueryStringParams?: {
|
|
96
96
|
[key: string]: any;
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
* Only activated for the accessCode flow. During the authorization_code
|
|
100
|
+
* request to the tokenUrl, pass the Client Password using the HTTP Basic
|
|
101
|
+
* Authentication scheme (Authorization header with Basic
|
|
102
|
+
* base64encode(client_id + client_secret)).
|
|
103
|
+
*
|
|
104
|
+
* @default false
|
|
105
|
+
*/
|
|
106
106
|
useBasicAuthenticationWithAccessCodeGrant?: boolean;
|
|
107
107
|
/**
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
* Only applies to Authorization Code flows. Proof Key for Code Exchange
|
|
109
|
+
* brings enhanced security for OAuth public clients.
|
|
110
|
+
*
|
|
111
|
+
* @default false
|
|
112
|
+
*/
|
|
113
113
|
usePkceWithAuthorizationCodeGrant?: boolean;
|
|
114
114
|
};
|
|
115
115
|
}
|
|
@@ -200,12 +200,12 @@ declare class ServerSwaggerProvider {
|
|
|
200
200
|
declare module "alepha/server" {
|
|
201
201
|
interface ActionPrimitiveOptions<TConfig extends RequestConfigSchema> {
|
|
202
202
|
/**
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
* Short description of the route.
|
|
204
|
+
*/
|
|
205
205
|
summary?: string;
|
|
206
206
|
/**
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
* Don't include this action in the Swagger documentation.
|
|
208
|
+
*/
|
|
209
209
|
hide?: boolean;
|
|
210
210
|
}
|
|
211
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/swagger/primitives/$swagger.ts","../../../src/server/swagger/providers/ServerSwaggerProvider.ts","../../../src/server/swagger/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/server/swagger/primitives/$swagger.ts","../../../src/server/swagger/providers/ServerSwaggerProvider.ts","../../../src/server/swagger/index.ts"],"mappings":"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"}
|