@asenajs/ergenecore 1.1.0 → 1.3.0
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 +17 -17
- package/dist/lib/Ergenecore.d.ts +15 -2
- package/dist/lib/Ergenecore.js +152 -80
- package/dist/lib/Ergenecore.js.map +1 -1
- package/dist/lib/ErgenecoreContextWrapper.d.ts +44 -4
- package/dist/lib/ErgenecoreContextWrapper.js +115 -7
- package/dist/lib/ErgenecoreContextWrapper.js.map +1 -1
- package/dist/lib/ErgenecoreWebsocketAdapter.d.ts +2 -16
- package/dist/lib/ErgenecoreWebsocketAdapter.js +24 -52
- package/dist/lib/ErgenecoreWebsocketAdapter.js.map +1 -1
- package/dist/lib/defaults/ConfigService.d.ts +5 -2
- package/dist/lib/defaults/ConfigService.js +1 -1
- package/dist/lib/defaults/ConfigService.js.map +1 -1
- package/dist/lib/defaults/MiddlewareService.d.ts +1 -1
- package/dist/lib/defaults/MiddlewareService.js +1 -1
- package/dist/lib/defaults/MiddlewareService.js.map +1 -1
- package/dist/lib/defaults/StaticServeService.d.ts +1 -1
- package/dist/lib/defaults/StaticServeService.js +1 -1
- package/dist/lib/defaults/ValidationService.d.ts +1 -1
- package/dist/lib/defaults/ValidationService.js +1 -1
- package/dist/lib/errors.d.ts +24 -5
- package/dist/lib/errors.js +15 -4
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/index.d.ts +5 -1
- package/dist/lib/index.js +6 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/middlewares/CorsMiddleware.d.ts +2 -2
- package/dist/lib/middlewares/CorsMiddleware.js +2 -2
- package/dist/lib/middlewares/CorsMiddleware.js.map +1 -1
- package/dist/lib/middlewares/RateLimiterMiddleware.d.ts +2 -2
- package/dist/lib/middlewares/RateLimiterMiddleware.js +9 -6
- package/dist/lib/middlewares/RateLimiterMiddleware.js.map +1 -1
- package/dist/lib/stream/SSEStreamWriter.d.ts +9 -0
- package/dist/lib/stream/SSEStreamWriter.js +18 -0
- package/dist/lib/stream/SSEStreamWriter.js.map +1 -0
- package/dist/lib/stream/StreamWriter.d.ts +24 -0
- package/dist/lib/stream/StreamWriter.js +72 -0
- package/dist/lib/stream/StreamWriter.js.map +1 -0
- package/dist/lib/stream/index.d.ts +2 -0
- package/dist/lib/stream/index.js +3 -0
- package/dist/lib/stream/index.js.map +1 -0
- package/dist/lib/types/SendPingStrategy.d.ts +4 -0
- package/dist/lib/types/SendPingStrategy.js +2 -0
- package/dist/lib/types/SendPingStrategy.js.map +1 -0
- package/dist/lib/types/Validation.d.ts +3 -3
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.js +2 -0
- package/dist/lib/types/index.js.map +1 -1
- package/package.json +19 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErgenecoreWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/ErgenecoreWebsocketAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,OAAO,EACL,WAAW,EACX,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ErgenecoreWebsocketAdapter.js","sourceRoot":"","sources":["../../lib/ErgenecoreWebsocketAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { Config } from '@asenajs/asena/
|
|
11
|
+
* import { Config } from '@asenajs/asena/decorators';
|
|
12
12
|
* import { ConfigService, type Context } from '@asenajs/ergenecore';
|
|
13
13
|
*
|
|
14
14
|
* @Config()
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
* }
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
import type { AsenaConfig } from '@asenajs/asena/server/config';
|
|
22
|
+
import type { AsenaConfig, GlobalMiddlewareEntry } from '@asenajs/asena/server/config';
|
|
23
23
|
import type { Context } from '../ErgenecoreContextWrapper';
|
|
24
|
+
import type { AsenaServeOptions } from '@asenajs/asena/adapter';
|
|
24
25
|
/**
|
|
25
26
|
* Base class for Ergenecore configuration services
|
|
26
27
|
*
|
|
@@ -36,4 +37,6 @@ export declare abstract class ConfigService implements AsenaConfig<Context> {
|
|
|
36
37
|
* @returns Response or Promise<Response>
|
|
37
38
|
*/
|
|
38
39
|
abstract onError(error: Error, context: Context): Response | Promise<Response>;
|
|
40
|
+
abstract globalMiddlewares(): Promise<GlobalMiddlewareEntry[]> | GlobalMiddlewareEntry[];
|
|
41
|
+
abstract serveOptions(): AsenaServeOptions;
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../lib/defaults/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../../lib/defaults/ConfigService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH;;;;;GAKG;AACH,MAAM,OAAgB,aAAa;CAalC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewareService.js","sourceRoot":"","sources":["../../../lib/defaults/MiddlewareService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;;GAIG;AACH,MAAM,OAAgB,iBAAiB;
|
|
1
|
+
{"version":3,"file":"MiddlewareService.js","sourceRoot":"","sources":["../../../lib/defaults/MiddlewareService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;;;GAIG;AACH,MAAM,OAAgB,iBAAiB;CAStC"}
|
|
@@ -8,7 +8,7 @@ import type { Context } from '../ErgenecoreContextWrapper';
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { StaticServe } from '@asenajs/asena/
|
|
11
|
+
* import { StaticServe } from '@asenajs/asena/decorators';
|
|
12
12
|
* import { StaticServeService } from '@asenajs/ergenecore';
|
|
13
13
|
* import path from 'path';
|
|
14
14
|
*
|
|
@@ -6,7 +6,7 @@ import { AsenaStaticServeService } from '@asenajs/asena/middleware';
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
|
-
* import { StaticServe } from '@asenajs/asena/
|
|
9
|
+
* import { StaticServe } from '@asenajs/asena/decorators';
|
|
10
10
|
* import { StaticServeService } from '@asenajs/ergenecore';
|
|
11
11
|
* import path from 'path';
|
|
12
12
|
*
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
import type { HttpStatusCode } from '@asenajs/asena/web-types';
|
|
2
|
+
/**
|
|
3
|
+
* Extended ResponseInit with cause support
|
|
4
|
+
*/
|
|
5
|
+
export interface HttpExceptionInit extends ResponseInit {
|
|
6
|
+
/** The original error that caused this exception */
|
|
7
|
+
cause?: Error;
|
|
8
|
+
}
|
|
1
9
|
/**
|
|
2
10
|
* HTTP Exception for Ergenecore
|
|
3
11
|
*
|
|
@@ -17,6 +25,11 @@
|
|
|
17
25
|
* if (!isValid) {
|
|
18
26
|
* throw new HttpException(400, { error: 'Invalid data' });
|
|
19
27
|
* }
|
|
28
|
+
*
|
|
29
|
+
* // With cause
|
|
30
|
+
* try { await db.query(...) } catch (err) {
|
|
31
|
+
* throw new HttpException(500, 'Database Error', { cause: err });
|
|
32
|
+
* }
|
|
20
33
|
* ```
|
|
21
34
|
*/
|
|
22
35
|
export declare class HttpException extends Error {
|
|
@@ -29,21 +42,24 @@ export declare class HttpException extends Error {
|
|
|
29
42
|
*/
|
|
30
43
|
readonly body: string | object;
|
|
31
44
|
/**
|
|
32
|
-
* Optional response init options (headers, statusText, etc.)
|
|
45
|
+
* Optional response init options (headers, statusText, cause, etc.)
|
|
33
46
|
*/
|
|
34
|
-
readonly options?:
|
|
47
|
+
readonly options?: HttpExceptionInit;
|
|
35
48
|
/**
|
|
36
49
|
* Creates a new HttpException
|
|
37
50
|
*
|
|
38
|
-
* @param status - HTTP status code (e.g., 401, 403, 404)
|
|
51
|
+
* @param status - HTTP status code (e.g., 401, 403, 404) or HttpStatusCode enum value
|
|
39
52
|
* @param body - Response body (string or object to be JSON stringified)
|
|
40
|
-
* @param options - Optional
|
|
53
|
+
* @param options - Optional HttpExceptionInit options (headers, statusText, cause, etc.)
|
|
41
54
|
*
|
|
42
55
|
* @example
|
|
43
56
|
* ```typescript
|
|
44
57
|
* // Simple message
|
|
45
58
|
* throw new HttpException(404, 'Not Found');
|
|
46
59
|
*
|
|
60
|
+
* // With HttpStatusCode enum
|
|
61
|
+
* throw new HttpException(ClientErrorStatusCode.NotFound, 'Not Found');
|
|
62
|
+
*
|
|
47
63
|
* // JSON object
|
|
48
64
|
* throw new HttpException(400, { error: 'Invalid input', field: 'email' });
|
|
49
65
|
*
|
|
@@ -51,9 +67,12 @@ export declare class HttpException extends Error {
|
|
|
51
67
|
* throw new HttpException(429, 'Too Many Requests', {
|
|
52
68
|
* headers: { 'Retry-After': '60' }
|
|
53
69
|
* });
|
|
70
|
+
*
|
|
71
|
+
* // With cause
|
|
72
|
+
* throw new HttpException(500, 'Internal Error', { cause: originalError });
|
|
54
73
|
* ```
|
|
55
74
|
*/
|
|
56
|
-
constructor(status: number, body?: string | object, options?:
|
|
75
|
+
constructor(status: HttpStatusCode | number, body?: string | object, options?: HttpExceptionInit);
|
|
57
76
|
/**
|
|
58
77
|
* Converts the exception to a Response object
|
|
59
78
|
*
|
package/dist/lib/errors.js
CHANGED
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
* if (!isValid) {
|
|
18
18
|
* throw new HttpException(400, { error: 'Invalid data' });
|
|
19
19
|
* }
|
|
20
|
+
*
|
|
21
|
+
* // With cause
|
|
22
|
+
* try { await db.query(...) } catch (err) {
|
|
23
|
+
* throw new HttpException(500, 'Database Error', { cause: err });
|
|
24
|
+
* }
|
|
20
25
|
* ```
|
|
21
26
|
*/
|
|
22
27
|
export class HttpException extends Error {
|
|
@@ -29,21 +34,24 @@ export class HttpException extends Error {
|
|
|
29
34
|
*/
|
|
30
35
|
body;
|
|
31
36
|
/**
|
|
32
|
-
* Optional response init options (headers, statusText, etc.)
|
|
37
|
+
* Optional response init options (headers, statusText, cause, etc.)
|
|
33
38
|
*/
|
|
34
39
|
options;
|
|
35
40
|
/**
|
|
36
41
|
* Creates a new HttpException
|
|
37
42
|
*
|
|
38
|
-
* @param status - HTTP status code (e.g., 401, 403, 404)
|
|
43
|
+
* @param status - HTTP status code (e.g., 401, 403, 404) or HttpStatusCode enum value
|
|
39
44
|
* @param body - Response body (string or object to be JSON stringified)
|
|
40
|
-
* @param options - Optional
|
|
45
|
+
* @param options - Optional HttpExceptionInit options (headers, statusText, cause, etc.)
|
|
41
46
|
*
|
|
42
47
|
* @example
|
|
43
48
|
* ```typescript
|
|
44
49
|
* // Simple message
|
|
45
50
|
* throw new HttpException(404, 'Not Found');
|
|
46
51
|
*
|
|
52
|
+
* // With HttpStatusCode enum
|
|
53
|
+
* throw new HttpException(ClientErrorStatusCode.NotFound, 'Not Found');
|
|
54
|
+
*
|
|
47
55
|
* // JSON object
|
|
48
56
|
* throw new HttpException(400, { error: 'Invalid input', field: 'email' });
|
|
49
57
|
*
|
|
@@ -51,11 +59,14 @@ export class HttpException extends Error {
|
|
|
51
59
|
* throw new HttpException(429, 'Too Many Requests', {
|
|
52
60
|
* headers: { 'Retry-After': '60' }
|
|
53
61
|
* });
|
|
62
|
+
*
|
|
63
|
+
* // With cause
|
|
64
|
+
* throw new HttpException(500, 'Internal Error', { cause: originalError });
|
|
54
65
|
* ```
|
|
55
66
|
*/
|
|
56
67
|
constructor(status, body = '', options) {
|
|
57
68
|
const message = typeof body === 'string' ? body : JSON.stringify(body);
|
|
58
|
-
super(message);
|
|
69
|
+
super(message, options?.cause ? { cause: options.cause } : undefined);
|
|
59
70
|
this.name = 'HttpException';
|
|
60
71
|
this.status = status;
|
|
61
72
|
this.body = body;
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../lib/errors.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC;;OAEG;IACa,MAAM,CAAS;IAE/B;;OAEG;IACa,IAAI,CAAkB;IAEtC;;OAEG;IACa,OAAO,CAAqB;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,YAAmB,MAA+B,EAAE,OAAwB,EAAE,EAAE,OAA2B;QACzG,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEvE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,WAAW;QAChB,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEnD,gFAAgF;QAChF,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;;OAEG;IACa,QAAQ,CAAW;IAEnC;;;;OAIG;IACH,YAAmB,QAAkB;QACnC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -24,12 +24,16 @@
|
|
|
24
24
|
export { Ergenecore } from './Ergenecore';
|
|
25
25
|
export { ErgenecoreContextWrapper } from './ErgenecoreContextWrapper';
|
|
26
26
|
export { ErgenecoreWebsocketAdapter } from './ErgenecoreWebsocketAdapter';
|
|
27
|
-
export {
|
|
27
|
+
export { StreamWriter } from './stream/StreamWriter';
|
|
28
|
+
export { SSEStreamWriter } from './stream/SSEStreamWriter';
|
|
29
|
+
export { HttpException, type HttpExceptionInit } from './errors';
|
|
28
30
|
export { createErgenecoreAdapter, createProductionAdapter, createDevelopmentAdapter, type ErgenecoreOptions, } from './utils/factory';
|
|
29
31
|
export { ValidationService } from './defaults/ValidationService';
|
|
30
32
|
export { ConfigService } from './defaults/ConfigService';
|
|
31
33
|
export { MiddlewareService } from './defaults/MiddlewareService';
|
|
32
34
|
export { StaticServeService } from './defaults/StaticServeService';
|
|
35
|
+
export { CorsMiddleware, type CorsOptions } from './middlewares/CorsMiddleware';
|
|
36
|
+
export { RateLimiterMiddleware, type RateLimiterOptions } from './middlewares/RateLimiterMiddleware';
|
|
33
37
|
export type { Context } from './ErgenecoreContextWrapper';
|
|
34
38
|
export type { ErgenecoreHandler, ErgenecoreNext } from './types/Handler';
|
|
35
39
|
export type { StaticServeExtras } from './types/StaticServeExtras';
|
package/dist/lib/index.js
CHANGED
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
export { Ergenecore } from './Ergenecore';
|
|
26
26
|
export { ErgenecoreContextWrapper } from './ErgenecoreContextWrapper';
|
|
27
27
|
export { ErgenecoreWebsocketAdapter } from './ErgenecoreWebsocketAdapter';
|
|
28
|
+
// Stream writers
|
|
29
|
+
export { StreamWriter } from './stream/StreamWriter';
|
|
30
|
+
export { SSEStreamWriter } from './stream/SSEStreamWriter';
|
|
28
31
|
// Error classes
|
|
29
32
|
export { HttpException } from './errors';
|
|
30
33
|
// Factory functions
|
|
@@ -34,4 +37,7 @@ export { ValidationService } from './defaults/ValidationService';
|
|
|
34
37
|
export { ConfigService } from './defaults/ConfigService';
|
|
35
38
|
export { MiddlewareService } from './defaults/MiddlewareService';
|
|
36
39
|
export { StaticServeService } from './defaults/StaticServeService';
|
|
40
|
+
// Built-in middlewares
|
|
41
|
+
export { CorsMiddleware } from './middlewares/CorsMiddleware';
|
|
42
|
+
export { RateLimiterMiddleware } from './middlewares/RateLimiterMiddleware';
|
|
37
43
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,gBAAgB;AAChB,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAA0B,MAAM,UAAU,CAAC;AAEjE,oBAAoB;AACpB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,iBAAiB,CAAC;AAEzB,uBAAuB;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,uBAAuB;AACvB,OAAO,EAAE,cAAc,EAAoB,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAA2B,MAAM,qCAAqC,CAAC"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```typescript
|
|
14
|
-
* import { Middleware } from '@asenajs/asena/
|
|
14
|
+
* import { Middleware } from '@asenajs/asena/decorators';
|
|
15
15
|
* import { CorsMiddleware } from '@asenajs/ergenecore';
|
|
16
16
|
*
|
|
17
17
|
* @Middleware()
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
import type { Context } from '../ErgenecoreContextWrapper';
|
|
30
|
-
import { MiddlewareService } from '../defaults
|
|
30
|
+
import { MiddlewareService } from '../defaults';
|
|
31
31
|
/**
|
|
32
32
|
* CORS configuration options
|
|
33
33
|
*/
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```typescript
|
|
14
|
-
* import { Middleware } from '@asenajs/asena/
|
|
14
|
+
* import { Middleware } from '@asenajs/asena/decorators';
|
|
15
15
|
* import { CorsMiddleware } from '@asenajs/ergenecore';
|
|
16
16
|
*
|
|
17
17
|
* @Middleware()
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* }
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
|
-
import { MiddlewareService } from '../defaults
|
|
29
|
+
import { MiddlewareService } from '../defaults';
|
|
30
30
|
/**
|
|
31
31
|
* CORS Middleware
|
|
32
32
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CorsMiddleware.js","sourceRoot":"","sources":["../../../lib/middlewares/CorsMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"CorsMiddleware.js","sourceRoot":"","sources":["../../../lib/middlewares/CorsMiddleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* **Usage in Asena Application:**
|
|
14
14
|
* ```typescript
|
|
15
|
-
* import { Middleware } from '@asenajs/asena/
|
|
15
|
+
* import { Middleware } from '@asenajs/asena/decorators';
|
|
16
16
|
* import { RateLimiterMiddleware } from '@asenajs/ergenecore';
|
|
17
17
|
*
|
|
18
18
|
* // Create custom rate limiter for your needs
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
49
|
import type { Context } from '../ErgenecoreContextWrapper';
|
|
50
|
-
import { MiddlewareService } from '../defaults
|
|
50
|
+
import { MiddlewareService } from '../defaults';
|
|
51
51
|
/**
|
|
52
52
|
* Token bucket for a single client
|
|
53
53
|
*/
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* **Usage in Asena Application:**
|
|
14
14
|
* ```typescript
|
|
15
|
-
* import { Middleware } from '@asenajs/asena/
|
|
15
|
+
* import { Middleware } from '@asenajs/asena/decorators';
|
|
16
16
|
* import { RateLimiterMiddleware } from '@asenajs/ergenecore';
|
|
17
17
|
*
|
|
18
18
|
* // Create custom rate limiter for your needs
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
* public login() { ... }
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
-
import { MiddlewareService } from '../defaults
|
|
49
|
+
import { MiddlewareService } from '../defaults';
|
|
50
50
|
/**
|
|
51
51
|
* Rate Limiter Middleware
|
|
52
52
|
*
|
|
@@ -191,7 +191,7 @@ export class RateLimiterMiddleware extends MiddlewareService {
|
|
|
191
191
|
*/
|
|
192
192
|
async handle(context, next) {
|
|
193
193
|
// Check skip predicate
|
|
194
|
-
if (this.skip
|
|
194
|
+
if (this.skip?.(context)) {
|
|
195
195
|
return await next();
|
|
196
196
|
}
|
|
197
197
|
// Generate client key
|
|
@@ -268,9 +268,12 @@ export class RateLimiterMiddleware extends MiddlewareService {
|
|
|
268
268
|
* @param context - Ergenecore context
|
|
269
269
|
* @returns Client identifier
|
|
270
270
|
*/
|
|
271
|
-
defaultKeyGenerator(context) {
|
|
272
|
-
return context.req.headers.get('x-forwarded-for') ||
|
|
273
|
-
|
|
271
|
+
defaultKeyGenerator = (context) => {
|
|
272
|
+
return (context.req.headers.get('x-forwarded-for') ||
|
|
273
|
+
context.req.headers.get('cf-connecting-ip') ||
|
|
274
|
+
context.getRequestIp?.() ||
|
|
275
|
+
'unknown');
|
|
276
|
+
};
|
|
274
277
|
/**
|
|
275
278
|
* Setup automatic cleanup of inactive buckets
|
|
276
279
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiterMiddleware.js","sourceRoot":"","sources":["../../../lib/middlewares/RateLimiterMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"RateLimiterMiddleware.js","sourceRoot":"","sources":["../../../lib/middlewares/RateLimiterMiddleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAoIhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,OAAO,qBAAsB,SAAQ,iBAAiB;IAC1D;;;;OAIG;IACc,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD;;OAEG;IACc,QAAQ,CAAS;IAElC;;OAEG;IACc,UAAU,CAAS;IAEpC;;OAEG;IACc,YAAY,CAA+B;IAE5D;;OAEG;IACc,OAAO,CAAS;IAEjC;;OAEG;IACc,UAAU,CAAS;IAEpC;;OAEG;IACc,IAAI,CAA0C;IAE/D;;OAEG;IACc,IAAI,CAAiC;IAEtD;;OAEG;IACK,YAAY,CAAS;IAE7B;;OAEG;IACc,SAAS,CAAS;IAEnC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAmB,UAA8B,EAAE;QACjD,KAAK,EAAE,CAAC;QAER,sCAAsC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,8CAA8C,CAAC;QACjF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,aAAa;QAE3D,0BAA0B;QAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,CAAC,WAAW;QAErE,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,IAAyB;QAC7D,uBAAuB;QACvB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;QAED,sBAAsB;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEvC,uBAAuB;QACvB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,MAAM,EAAE,IAAI,CAAC,QAAQ;gBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;aACvB,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,sCAAsC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QACxD,MAAM,WAAW,GAAG,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QAErD,sBAAsB;QACtB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;QAExB,kCAAkC;QAClC,MAAM,WAAW,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAErF,uCAAuC;QACvC,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;YAChC,sBAAsB;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAE9E,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChC,MAAM,EAAE,IAAI,CAAC,UAAU;gBACvB,OAAO,EAAE;oBACP,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC;oBACjC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,EAAE,sBAAsB;oBACrF,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC1D,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;iBAC/E;aACF,CAAC,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC;QAE7B,yBAAyB;QACzB,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAElG,sCAAsC;QACtC,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,GAAG,CAAC,OAAgB,EAAU,EAAE;QACzD,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YAC3C,OAAO,CAAC,YAAY,EAAE,EAAE;YACxB,SAAS,CACV,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;OAMG;IACK,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,YAAY,GAAa,EAAE,CAAC;YAElC,wBAAwB;YACxB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEb,uCAAuC;QACvC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AsenaSSEStreamWriter, SSEMessage } from '@asenajs/asena/adapter';
|
|
2
|
+
import { StreamWriter } from './StreamWriter';
|
|
3
|
+
/**
|
|
4
|
+
* SSE stream writer that extends StreamWriter with SSE message formatting.
|
|
5
|
+
* Formats messages according to the Server-Sent Events specification.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SSEStreamWriter extends StreamWriter implements AsenaSSEStreamWriter {
|
|
8
|
+
writeSSE(message: SSEMessage): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { StreamWriter } from './StreamWriter';
|
|
2
|
+
/**
|
|
3
|
+
* SSE stream writer that extends StreamWriter with SSE message formatting.
|
|
4
|
+
* Formats messages according to the Server-Sent Events specification.
|
|
5
|
+
*/
|
|
6
|
+
export class SSEStreamWriter extends StreamWriter {
|
|
7
|
+
async writeSSE(message) {
|
|
8
|
+
const dataLines = message.data
|
|
9
|
+
.split(/\r\n|\r|\n/)
|
|
10
|
+
.map((line) => `data: ${line}`)
|
|
11
|
+
.join('\n');
|
|
12
|
+
const sseData = [message.event && `event: ${message.event}`, dataLines, message.id && `id: ${message.id}`, message.retry && `retry: ${message.retry}`]
|
|
13
|
+
.filter(Boolean)
|
|
14
|
+
.join('\n') + '\n\n';
|
|
15
|
+
await this.write(sseData);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=SSEStreamWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SSEStreamWriter.js","sourceRoot":"","sources":["../../../lib/stream/SSEStreamWriter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACxC,KAAK,CAAC,QAAQ,CAAC,OAAmB;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI;aAC3B,KAAK,CAAC,YAAY,CAAC;aACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC;aAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,OAAO,GACX,CAAC,OAAO,CAAC,KAAK,IAAI,UAAU,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,IAAI,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC;aACnI,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAEzB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AsenaStreamWriter } from '@asenajs/asena/adapter';
|
|
2
|
+
/**
|
|
3
|
+
* Generic stream writer implementation using Web Streams API.
|
|
4
|
+
* Built on TransformStream - zero external dependencies.
|
|
5
|
+
*/
|
|
6
|
+
export declare class StreamWriter implements AsenaStreamWriter {
|
|
7
|
+
private writer;
|
|
8
|
+
private encoder;
|
|
9
|
+
private writable;
|
|
10
|
+
private abortSubscribers;
|
|
11
|
+
readonly responseReadable: ReadableStream;
|
|
12
|
+
aborted: boolean;
|
|
13
|
+
closed: boolean;
|
|
14
|
+
constructor(writable: WritableStream, readable: ReadableStream);
|
|
15
|
+
write(input: Uint8Array | string): Promise<void>;
|
|
16
|
+
writeln(input: string): Promise<void>;
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
pipe(body: ReadableStream): Promise<void>;
|
|
19
|
+
onAbort(listener: () => void | Promise<void>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Abort the stream. Called when the client disconnects.
|
|
22
|
+
*/
|
|
23
|
+
abort(): void;
|
|
24
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic stream writer implementation using Web Streams API.
|
|
3
|
+
* Built on TransformStream - zero external dependencies.
|
|
4
|
+
*/
|
|
5
|
+
export class StreamWriter {
|
|
6
|
+
writer;
|
|
7
|
+
encoder;
|
|
8
|
+
writable;
|
|
9
|
+
abortSubscribers = [];
|
|
10
|
+
responseReadable;
|
|
11
|
+
aborted = false;
|
|
12
|
+
closed = false;
|
|
13
|
+
constructor(writable, readable) {
|
|
14
|
+
this.writable = writable;
|
|
15
|
+
this.writer = writable.getWriter();
|
|
16
|
+
this.encoder = new TextEncoder();
|
|
17
|
+
const reader = readable.getReader();
|
|
18
|
+
this.abortSubscribers.push(async () => {
|
|
19
|
+
await reader.cancel();
|
|
20
|
+
});
|
|
21
|
+
this.responseReadable = new ReadableStream({
|
|
22
|
+
async pull(controller) {
|
|
23
|
+
const { done, value } = await reader.read();
|
|
24
|
+
done ? controller.close() : controller.enqueue(value);
|
|
25
|
+
},
|
|
26
|
+
cancel: () => {
|
|
27
|
+
this.abort();
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async write(input) {
|
|
32
|
+
try {
|
|
33
|
+
if (typeof input === 'string') {
|
|
34
|
+
input = this.encoder.encode(input);
|
|
35
|
+
}
|
|
36
|
+
await this.writer.write(input);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Stream already closed or errored
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async writeln(input) {
|
|
43
|
+
await this.write(input + '\n');
|
|
44
|
+
}
|
|
45
|
+
async close() {
|
|
46
|
+
try {
|
|
47
|
+
await this.writer.close();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Stream already closed
|
|
51
|
+
}
|
|
52
|
+
this.closed = true;
|
|
53
|
+
}
|
|
54
|
+
async pipe(body) {
|
|
55
|
+
this.writer.releaseLock();
|
|
56
|
+
await body.pipeTo(this.writable, { preventClose: true });
|
|
57
|
+
this.writer = this.writable.getWriter();
|
|
58
|
+
}
|
|
59
|
+
onAbort(listener) {
|
|
60
|
+
this.abortSubscribers.push(listener);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Abort the stream. Called when the client disconnects.
|
|
64
|
+
*/
|
|
65
|
+
abort() {
|
|
66
|
+
if (!this.aborted) {
|
|
67
|
+
this.aborted = true;
|
|
68
|
+
this.abortSubscribers.forEach((subscriber) => subscriber());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=StreamWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StreamWriter.js","sourceRoot":"","sources":["../../../lib/stream/StreamWriter.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAA8B;IAEpC,OAAO,CAAc;IAErB,QAAQ,CAAiB;IAEzB,gBAAgB,GAAmC,EAAE,CAAC;IAE9C,gBAAgB,CAAiB;IAE1C,OAAO,GAAG,KAAK,CAAC;IAEhB,MAAM,GAAG,KAAK,CAAC;IAEtB,YAAmB,QAAwB,EAAE,QAAwB;QACnE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,cAAc,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACnB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,KAA0B;QAC3C,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;QACrC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,KAAa;QAChC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAoB;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IAEM,OAAO,CAAC,QAAoC;QACjD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,KAAK;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/stream/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendPingStrategy.js","sourceRoot":"","sources":["../../../lib/types/SendPingStrategy.ts"],"names":[],"mappings":""}
|