request-iframe 0.0.2 → 0.0.4
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/QUICKSTART.CN.md +35 -8
- package/QUICKSTART.md +35 -8
- package/README.CN.md +439 -36
- package/README.md +496 -30
- package/library/__tests__/channel.test.ts +420 -0
- package/library/__tests__/coverage-branches.test.ts +356 -0
- package/library/__tests__/debug.test.ts +588 -0
- package/library/__tests__/dispatcher.test.ts +481 -0
- package/library/__tests__/requestIframe.test.ts +3163 -185
- package/library/__tests__/server.test.ts +738 -0
- package/library/__tests__/stream.test.ts +46 -15
- package/library/api/client.d.ts.map +1 -1
- package/library/api/client.js +12 -6
- package/library/api/server.d.ts +4 -3
- package/library/api/server.d.ts.map +1 -1
- package/library/api/server.js +25 -7
- package/library/constants/index.d.ts +14 -4
- package/library/constants/index.d.ts.map +1 -1
- package/library/constants/index.js +15 -7
- package/library/constants/messages.d.ts +37 -0
- package/library/constants/messages.d.ts.map +1 -1
- package/library/constants/messages.js +38 -1
- package/library/core/client-server.d.ts +105 -0
- package/library/core/client-server.d.ts.map +1 -0
- package/library/core/client-server.js +289 -0
- package/library/core/client.d.ts +53 -10
- package/library/core/client.d.ts.map +1 -1
- package/library/core/client.js +529 -207
- package/library/core/request.d.ts +3 -1
- package/library/core/request.d.ts.map +1 -1
- package/library/core/request.js +2 -1
- package/library/core/response.d.ts +30 -4
- package/library/core/response.d.ts.map +1 -1
- package/library/core/response.js +176 -100
- package/library/core/server-client.d.ts +3 -1
- package/library/core/server-client.d.ts.map +1 -1
- package/library/core/server-client.js +19 -9
- package/library/core/server.d.ts +22 -1
- package/library/core/server.d.ts.map +1 -1
- package/library/core/server.js +304 -55
- package/library/index.d.ts +3 -2
- package/library/index.d.ts.map +1 -1
- package/library/index.js +34 -5
- package/library/interceptors/index.d.ts.map +1 -1
- package/library/message/channel.d.ts +3 -1
- package/library/message/channel.d.ts.map +1 -1
- package/library/message/dispatcher.d.ts +7 -2
- package/library/message/dispatcher.d.ts.map +1 -1
- package/library/message/dispatcher.js +48 -2
- package/library/message/index.d.ts.map +1 -1
- package/library/stream/file-stream.d.ts +5 -0
- package/library/stream/file-stream.d.ts.map +1 -1
- package/library/stream/file-stream.js +41 -12
- package/library/stream/index.d.ts +11 -1
- package/library/stream/index.d.ts.map +1 -1
- package/library/stream/index.js +21 -3
- package/library/stream/readable-stream.d.ts.map +1 -1
- package/library/stream/readable-stream.js +32 -30
- package/library/stream/types.d.ts +20 -2
- package/library/stream/types.d.ts.map +1 -1
- package/library/stream/writable-stream.d.ts +2 -1
- package/library/stream/writable-stream.d.ts.map +1 -1
- package/library/stream/writable-stream.js +13 -10
- package/library/types/index.d.ts +106 -32
- package/library/types/index.d.ts.map +1 -1
- package/library/utils/cache.d.ts +24 -0
- package/library/utils/cache.d.ts.map +1 -1
- package/library/utils/cache.js +76 -0
- package/library/utils/cookie.d.ts.map +1 -1
- package/library/utils/debug.d.ts.map +1 -1
- package/library/utils/debug.js +382 -20
- package/library/utils/index.d.ts +19 -0
- package/library/utils/index.d.ts.map +1 -1
- package/library/utils/index.js +113 -2
- package/library/utils/path-match.d.ts +16 -0
- package/library/utils/path-match.d.ts.map +1 -1
- package/library/utils/path-match.js +65 -0
- package/library/utils/protocol.d.ts.map +1 -1
- package/package.json +4 -1
- package/react/library/__tests__/index.test.tsx +274 -281
- package/react/library/index.d.ts +4 -3
- package/react/library/index.d.ts.map +1 -1
- package/react/library/index.js +225 -158
- package/react/package.json +7 -0
|
@@ -46,6 +46,7 @@ class IframeWritableStream {
|
|
|
46
46
|
this.iterator = options.iterator;
|
|
47
47
|
this.nextFn = options.next;
|
|
48
48
|
this.metadata = options.metadata;
|
|
49
|
+
this.autoResolve = options.autoResolve;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
/** Get stream state */
|
|
@@ -62,25 +63,26 @@ class IframeWritableStream {
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
/**
|
|
65
|
-
* Send message to client
|
|
66
|
+
* Send message (to client when server-side stream, to server when client-side stream)
|
|
66
67
|
*/
|
|
67
68
|
sendMessage(type, data) {
|
|
69
|
+
var _this$context$serverI;
|
|
68
70
|
if (!this.context) {
|
|
69
71
|
throw new Error(_constants.Messages.STREAM_NOT_BOUND);
|
|
70
72
|
}
|
|
73
|
+
var isClientStream = this.context.clientId !== undefined && this.context.serverId === undefined;
|
|
74
|
+
var role = isClientStream ? _constants.MessageRole.CLIENT : _constants.MessageRole.SERVER;
|
|
75
|
+
var creatorId = (_this$context$serverI = this.context.serverId) !== null && _this$context$serverI !== void 0 ? _this$context$serverI : this.context.clientId;
|
|
71
76
|
var message = (0, _utils.createPostMessage)(type, this.context.requestId, {
|
|
72
77
|
secretKey: this.context.secretKey,
|
|
73
78
|
body: _objectSpread({
|
|
74
79
|
streamId: this.streamId
|
|
75
|
-
}, data)
|
|
80
|
+
}, data),
|
|
81
|
+
role,
|
|
82
|
+
creatorId,
|
|
83
|
+
targetId: this.context.targetId
|
|
76
84
|
});
|
|
77
|
-
|
|
78
|
-
// Use channel if available, otherwise use direct postMessage
|
|
79
|
-
if (this.context.channel) {
|
|
80
|
-
this.context.channel.send(this.context.targetWindow, message, this.context.targetOrigin);
|
|
81
|
-
} else {
|
|
82
|
-
this.context.targetWindow.postMessage(message, this.context.targetOrigin);
|
|
83
|
-
}
|
|
85
|
+
this.context.channel.send(this.context.targetWindow, message, this.context.targetOrigin);
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
/**
|
|
@@ -111,7 +113,8 @@ class IframeWritableStream {
|
|
|
111
113
|
_this.sendMessage(_constants.MessageType.STREAM_START, {
|
|
112
114
|
type: _this.type,
|
|
113
115
|
chunked: _this.chunked,
|
|
114
|
-
metadata: _this.metadata
|
|
116
|
+
metadata: _this.metadata,
|
|
117
|
+
autoResolve: _this.autoResolve
|
|
115
118
|
});
|
|
116
119
|
_context.prev = 3;
|
|
117
120
|
if (!_this.iterator) {
|
package/library/types/index.d.ts
CHANGED
|
@@ -1,25 +1,49 @@
|
|
|
1
|
+
import { MessageRoleValue } from '../constants';
|
|
1
2
|
/**
|
|
2
3
|
* Request default configuration
|
|
3
4
|
* Can be set when creating requestIframeClient, and can be overridden on each request
|
|
4
5
|
*/
|
|
5
6
|
export interface RequestDefaults {
|
|
6
|
-
/** ACK confirmation timeout (milliseconds), timeout for waiting for the other party to acknowledge the message, default
|
|
7
|
+
/** ACK confirmation timeout (milliseconds), timeout for waiting for the other party to acknowledge the message, default 1000 */
|
|
7
8
|
ackTimeout?: number;
|
|
8
9
|
/** Request timeout (milliseconds), timeout for waiting for the server to return the result, default 5000 */
|
|
9
10
|
timeout?: number;
|
|
10
11
|
/** Async request timeout (milliseconds), timeout after the server indicates it's an async task, default 120000 */
|
|
11
12
|
asyncTimeout?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Whether to directly return response.data instead of the full Response object.
|
|
15
|
+
* If true, send() will return Promise<T> instead of Promise<Response<T>>.
|
|
16
|
+
* Default is false.
|
|
17
|
+
*/
|
|
18
|
+
returnData?: boolean;
|
|
12
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Headers value type (supports static value or dynamic function)
|
|
22
|
+
*/
|
|
23
|
+
export type HeaderValue = string | string[] | ((config: RequestConfig) => string | string[]);
|
|
24
|
+
/**
|
|
25
|
+
* Headers configuration type
|
|
26
|
+
*/
|
|
27
|
+
export type HeadersConfig = Record<string, HeaderValue>;
|
|
13
28
|
/**
|
|
14
29
|
* sender.send configuration options
|
|
15
30
|
*/
|
|
16
31
|
export interface RequestOptions extends RequestDefaults {
|
|
17
32
|
/** Custom request ID */
|
|
18
33
|
requestId?: string;
|
|
19
|
-
/**
|
|
20
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Request headers (can override initial headers from RequestIframeClientOptions).
|
|
36
|
+
* Values can be static strings/arrays or functions that dynamically generate headers based on request config.
|
|
37
|
+
*/
|
|
38
|
+
headers?: HeadersConfig;
|
|
21
39
|
/** Request cookies */
|
|
22
40
|
cookies?: Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Target server instance ID
|
|
43
|
+
* If specified, the request will only be handled by the server instance with this ID.
|
|
44
|
+
* This allows clients to target a specific server instance when multiple instances exist.
|
|
45
|
+
*/
|
|
46
|
+
targetId?: string;
|
|
23
47
|
}
|
|
24
48
|
/**
|
|
25
49
|
* sender.send request configuration (internal use)
|
|
@@ -27,10 +51,10 @@ export interface RequestOptions extends RequestDefaults {
|
|
|
27
51
|
export interface RequestConfig extends RequestOptions {
|
|
28
52
|
/** Interaction event ID (equivalent to path) */
|
|
29
53
|
path: string;
|
|
30
|
-
/** Request body */
|
|
31
|
-
body?:
|
|
54
|
+
/** Request body (plain object, File, Blob, or stream for sendStream) */
|
|
55
|
+
body?: any;
|
|
32
56
|
/** Request headers */
|
|
33
|
-
headers?:
|
|
57
|
+
headers?: HeadersConfig;
|
|
34
58
|
/** Request cookies */
|
|
35
59
|
cookies?: Record<string, string>;
|
|
36
60
|
}
|
|
@@ -48,12 +72,6 @@ export interface Response<T = any> {
|
|
|
48
72
|
requestId: string;
|
|
49
73
|
/** Response headers (Set-Cookie is a string array) */
|
|
50
74
|
headers?: Record<string, string | string[]>;
|
|
51
|
-
/** File data (if response is a file) */
|
|
52
|
-
fileData?: {
|
|
53
|
-
content: string;
|
|
54
|
-
mimeType?: string;
|
|
55
|
-
fileName?: string;
|
|
56
|
-
};
|
|
57
75
|
/** Stream data (if response is a stream) */
|
|
58
76
|
stream?: import('../stream').IIframeReadableStream<T>;
|
|
59
77
|
}
|
|
@@ -144,12 +162,6 @@ export interface PostMessageData {
|
|
|
144
162
|
cookies?: Record<string, string>;
|
|
145
163
|
/** Response data */
|
|
146
164
|
data?: any;
|
|
147
|
-
/** File data (base64 encoded, used for sendFile) */
|
|
148
|
-
fileData?: {
|
|
149
|
-
content: string;
|
|
150
|
-
mimeType?: string;
|
|
151
|
-
fileName?: string;
|
|
152
|
-
};
|
|
153
165
|
/** Error information */
|
|
154
166
|
error?: {
|
|
155
167
|
message: string;
|
|
@@ -161,6 +173,27 @@ export interface PostMessageData {
|
|
|
161
173
|
statusText?: string;
|
|
162
174
|
/** Whether client confirmation of receipt is required (for response/error messages) */
|
|
163
175
|
requireAck?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Message sender role
|
|
178
|
+
* - 'client': message sent by client
|
|
179
|
+
* - 'server': message sent by server
|
|
180
|
+
* Used to prevent message routing confusion when client and server are in the same window
|
|
181
|
+
*/
|
|
182
|
+
role?: MessageRoleValue;
|
|
183
|
+
/**
|
|
184
|
+
* ID of the instance that created this message
|
|
185
|
+
* Used to identify which client/server instance created the message
|
|
186
|
+
*/
|
|
187
|
+
creatorId?: string;
|
|
188
|
+
/**
|
|
189
|
+
* ID of the target instance that should handle this message
|
|
190
|
+
* - For requests: ID of the target server instance (if specified, only that server will process it)
|
|
191
|
+
* - For responses/acks: ID of the target client instance (usually the creatorId of the original request)
|
|
192
|
+
* Used to ensure messages are routed to the correct instance and avoid message confusion
|
|
193
|
+
*/
|
|
194
|
+
targetId?: string;
|
|
195
|
+
/** Stream ID (when request body is a stream, client sends stream; server receives stream_start next) */
|
|
196
|
+
streamId?: string;
|
|
164
197
|
}
|
|
165
198
|
/**
|
|
166
199
|
* Server Request object (similar to express)
|
|
@@ -168,12 +201,16 @@ export interface PostMessageData {
|
|
|
168
201
|
export interface ServerRequest {
|
|
169
202
|
/** Request body */
|
|
170
203
|
body: any;
|
|
204
|
+
/** Request stream (when client sent via sendStream) */
|
|
205
|
+
stream?: import('../stream').IIframeReadableStream;
|
|
171
206
|
/** Request headers */
|
|
172
207
|
headers: Record<string, string>;
|
|
173
208
|
/** Request cookies */
|
|
174
209
|
cookies: Record<string, string>;
|
|
175
210
|
/** Request path */
|
|
176
211
|
path: string;
|
|
212
|
+
/** Path parameters extracted from route pattern (e.g., { id: '123' } for '/api/users/:id' and '/api/users/123') */
|
|
213
|
+
params: Record<string, string>;
|
|
177
214
|
/** Request ID */
|
|
178
215
|
requestId: string;
|
|
179
216
|
/** Sender origin */
|
|
@@ -290,21 +327,31 @@ export type ServerEventName = 'request' | 'ack' | 'async' | 'response' | 'error'
|
|
|
290
327
|
* Client interface
|
|
291
328
|
*/
|
|
292
329
|
export interface RequestIframeClient {
|
|
330
|
+
/** Target window */
|
|
331
|
+
readonly targetWindow: Window;
|
|
332
|
+
/** Unique instance ID */
|
|
333
|
+
readonly id: string;
|
|
334
|
+
/** Whether message handling is enabled */
|
|
335
|
+
readonly isOpen: boolean;
|
|
336
|
+
/** Enable message handling (register message handler) */
|
|
337
|
+
open(): void;
|
|
338
|
+
/** Disable message handling (unregister message handler, but don't release resources) */
|
|
339
|
+
close(): void;
|
|
293
340
|
/** Interceptors (only effective for send) */
|
|
294
341
|
interceptors: {
|
|
295
342
|
request: import('../interceptors').RequestInterceptorManager;
|
|
296
343
|
response: import('../interceptors').ResponseInterceptorManager;
|
|
297
344
|
};
|
|
298
|
-
/**
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
/** Send request */
|
|
307
|
-
|
|
345
|
+
/** Send request (body can be plain data, File, Blob, or stream; auto-dispatches to sendFile/sendStream when applicable) */
|
|
346
|
+
send<T = any>(path: string, body?: any, options?: RequestOptions): Promise<Response<T> | T>;
|
|
347
|
+
/** Send file as request body (stream only; server receives stream or auto-resolved File/Blob via autoResolve) */
|
|
348
|
+
sendFile<T = any>(path: string, content: string | Blob | File, options?: RequestOptions & {
|
|
349
|
+
mimeType?: string;
|
|
350
|
+
fileName?: string;
|
|
351
|
+
autoResolve?: boolean;
|
|
352
|
+
}): Promise<Response<T> | T>;
|
|
353
|
+
/** Send stream as request body (server receives readable stream) */
|
|
354
|
+
sendStream<T = any>(path: string, stream: import('../stream').IframeWritableStream, options?: RequestOptions): Promise<Response<T> | T>;
|
|
308
355
|
/** Check if server is reachable */
|
|
309
356
|
isConnect(): Promise<boolean>;
|
|
310
357
|
/**
|
|
@@ -339,6 +386,8 @@ export interface RequestIframeClient {
|
|
|
339
386
|
* Clear all cookies
|
|
340
387
|
*/
|
|
341
388
|
clearCookies(): void;
|
|
389
|
+
/** Destroy client (close and release resources) */
|
|
390
|
+
destroy(): void;
|
|
342
391
|
}
|
|
343
392
|
/**
|
|
344
393
|
* Client server interface (used on client side, handles responses only)
|
|
@@ -359,6 +408,8 @@ export interface RequestIframeClientServer {
|
|
|
359
408
|
* Server interface (used on server side, handles requests and responses)
|
|
360
409
|
*/
|
|
361
410
|
export interface RequestIframeServer {
|
|
411
|
+
/** Unique instance ID */
|
|
412
|
+
readonly id: string;
|
|
362
413
|
/** Message isolation key (read-only) */
|
|
363
414
|
readonly secretKey?: string;
|
|
364
415
|
/** Whether message handling is enabled */
|
|
@@ -374,12 +425,12 @@ export interface RequestIframeServer {
|
|
|
374
425
|
*/
|
|
375
426
|
use(middleware: Middleware): void;
|
|
376
427
|
use(path: PathMatcher, middleware: Middleware): void;
|
|
377
|
-
/** Register route handler
|
|
378
|
-
on(path: string, handler: ServerHandler): () => void;
|
|
379
|
-
/** Unregister route handler
|
|
428
|
+
/** Register route handler */
|
|
429
|
+
on(path: string, handler: ServerHandler): (() => void);
|
|
430
|
+
/** Unregister route handler */
|
|
380
431
|
off(path: string | string[]): void;
|
|
381
432
|
/** Batch register route handlers (via key: value object) */
|
|
382
|
-
map(handlers: Record<string, ServerHandler>): void;
|
|
433
|
+
map(handlers: Record<string, ServerHandler>): (() => void);
|
|
383
434
|
/** Destroy server (close and release resources) */
|
|
384
435
|
destroy(): void;
|
|
385
436
|
}
|
|
@@ -397,6 +448,17 @@ export interface RequestIframeClientOptions extends RequestDefaults {
|
|
|
397
448
|
* If true, logs will be printed at various points such as before and after requests.
|
|
398
449
|
*/
|
|
399
450
|
trace?: boolean;
|
|
451
|
+
/**
|
|
452
|
+
* Initial request headers.
|
|
453
|
+
* Values can be static strings/arrays or functions that dynamically generate headers based on request config.
|
|
454
|
+
* Headers from individual requests will override these initial headers.
|
|
455
|
+
*/
|
|
456
|
+
headers?: HeadersConfig;
|
|
457
|
+
/**
|
|
458
|
+
* Whether to automatically open (start message handling) when creating the client.
|
|
459
|
+
* Default is true. If set to false, you need to manually call client.open() to start message handling.
|
|
460
|
+
*/
|
|
461
|
+
autoOpen?: boolean;
|
|
400
462
|
}
|
|
401
463
|
/**
|
|
402
464
|
* requestIframeServer entry options
|
|
@@ -407,10 +469,22 @@ export interface RequestIframeServerOptions extends Pick<RequestDefaults, 'ackTi
|
|
|
407
469
|
* If configured, automatically adds a unified prefix to the path of all messages (to avoid conflicts between different businesses), and only processes framework messages with the same secretKey.
|
|
408
470
|
*/
|
|
409
471
|
secretKey?: string;
|
|
472
|
+
/**
|
|
473
|
+
* Custom server instance ID.
|
|
474
|
+
* If specified, the server will use this ID instead of generating a random one.
|
|
475
|
+
* Servers with the same id (and secretKey) will be cached and reused (singleton pattern).
|
|
476
|
+
* This allows clients to target a specific server instance by its ID.
|
|
477
|
+
*/
|
|
478
|
+
id?: string;
|
|
410
479
|
/**
|
|
411
480
|
* Whether to enable trace mode.
|
|
412
481
|
* If true, logs will be printed at various points such as before and after requests, server receive/respond, etc.
|
|
413
482
|
*/
|
|
414
483
|
trace?: boolean;
|
|
484
|
+
/**
|
|
485
|
+
* Whether to automatically open (start message handling) when creating the server.
|
|
486
|
+
* Default is true. If set to false, you need to manually call server.open() to start message handling.
|
|
487
|
+
*/
|
|
488
|
+
autoOpen?: boolean;
|
|
415
489
|
}
|
|
416
490
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,gIAAgI;IAChI,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4GAA4G;IAC5G,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kHAAkH;IAClH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAE7F;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC/B,oBAAoB;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC5C,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,WAAW,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,GAAG,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC;CAC1C;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GACjF,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;IACvF,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC5C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oBAAoB;IACpB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,wBAAwB;IACxB,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,IAAI,EAAE,GAAG,CAAC;IACV,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,WAAW,EAAE,qBAAqB,CAAC;IACnD,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,mHAAmH;IACnH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,GAAG,EAAE,cAAc,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,2CAA2C;IAC3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;IACrC,kEAAkE;IAClE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACjE,+EAA+E;IAC/E,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,CAAC;IACrE,wEAAwE;IACxE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IAC7E,6CAA6C;IAC7C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;IACnE,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,cAAc,KAChB,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oBAAoB;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,IAAI,IAAI,IAAI,CAAC;IACb,yFAAyF;IACzF,KAAK,IAAI,IAAI,CAAC;IACd,6CAA6C;IAC7C,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,iBAAiB,EAAE,yBAAyB,CAAC;QAC7D,QAAQ,EAAE,OAAO,iBAAiB,EAAE,0BAA0B,CAAC;KAChE,CAAC;IACF,2HAA2H;IAC3H,IAAI,CAAC,CAAC,GAAG,GAAG,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,iHAAiH;IACjH,QAAQ,CAAC,CAAC,GAAG,GAAG,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EAC7B,OAAO,CAAC,EAAE,cAAc,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GACzF,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,oEAAoE;IACpE,UAAU,CAAC,CAAC,GAAG,GAAG,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,WAAW,EAAE,oBAAoB,EAChD,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,mCAAmC;IACnC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B;;;OAGG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3D;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3G;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,YAAY,IAAI,IAAI,CAAC;IACrB,mDAAmD;IACnD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,+CAA+C;IAC/C,OAAO,IAAI,IAAI,CAAC;IAChB,kDAAkD;IAClD,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,2EAA2E;IAC3E,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,EACxC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAC9B,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAAC;IACR,oDAAoD;IACpD,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,yBAAyB;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yDAAyD;IACzD,IAAI,IAAI,IAAI,CAAC;IACb,yFAAyF;IACzF,KAAK,IAAI,IAAI,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAClC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACrD,6BAA6B;IAC7B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IACvD,+BAA+B;IAC/B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,4DAA4D;IAC5D,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3D,mDAAmD;IACnD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;IACrF;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
package/library/utils/cache.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MessageChannel, ChannelType } from '../message';
|
|
2
|
+
import { RequestIframeServer } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* Get or create MessageChannel instance
|
|
4
5
|
* - Within the same window, only one channel is created per type + secretKey combination
|
|
@@ -16,4 +17,27 @@ export declare function releaseMessageChannel(channel: MessageChannel): void;
|
|
|
16
17
|
* Clear all MessageChannel cache (mainly for testing)
|
|
17
18
|
*/
|
|
18
19
|
export declare function clearMessageChannelCache(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get cached server instance or null
|
|
22
|
+
* @param secretKey secret key for message isolation
|
|
23
|
+
* @param id server instance ID
|
|
24
|
+
*/
|
|
25
|
+
export declare function getCachedServer(secretKey?: string, id?: string): RequestIframeServer | null;
|
|
26
|
+
/**
|
|
27
|
+
* Cache server instance
|
|
28
|
+
* @param server server instance
|
|
29
|
+
* @param secretKey secret key for message isolation
|
|
30
|
+
* @param id server instance ID
|
|
31
|
+
*/
|
|
32
|
+
export declare function cacheServer(server: RequestIframeServer, secretKey?: string, id?: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* Remove server from cache
|
|
35
|
+
* @param secretKey secret key for message isolation
|
|
36
|
+
* @param id server instance ID
|
|
37
|
+
*/
|
|
38
|
+
export declare function removeCachedServer(secretKey?: string, id?: string): void;
|
|
39
|
+
/**
|
|
40
|
+
* Clear all server cache (mainly for testing)
|
|
41
|
+
*/
|
|
42
|
+
export declare function clearServerCache(): void;
|
|
19
43
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAiC/C;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,GAAE,WAAsC,GAC3C,cAAc,CAYhB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAYnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAM/C;AAoBD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,GACV,mBAAmB,GAAG,IAAI,CAM5B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,mBAAmB,EAC3B,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAMN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAMxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC"}
|
package/library/utils/cache.js
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.cacheServer = cacheServer;
|
|
6
7
|
exports.clearMessageChannelCache = clearMessageChannelCache;
|
|
8
|
+
exports.clearServerCache = clearServerCache;
|
|
9
|
+
exports.getCachedServer = getCachedServer;
|
|
7
10
|
exports.getOrCreateMessageChannel = getOrCreateMessageChannel;
|
|
8
11
|
exports.releaseMessageChannel = releaseMessageChannel;
|
|
12
|
+
exports.removeCachedServer = removeCachedServer;
|
|
9
13
|
require("core-js/modules/es.array.iterator.js");
|
|
10
14
|
require("core-js/modules/es.map.js");
|
|
11
15
|
require("core-js/modules/web.dom-collections.for-each.js");
|
|
@@ -17,6 +21,12 @@ var _message = require("../message");
|
|
|
17
21
|
*/
|
|
18
22
|
var MESSAGE_CHANNEL_CACHE_SYMBOL = Symbol.for('__requestIframeMessageChannelCache__');
|
|
19
23
|
|
|
24
|
+
/**
|
|
25
|
+
* Global cache Symbol for server instances
|
|
26
|
+
* Using Symbol.for() ensures multiple library copies share the same cache
|
|
27
|
+
*/
|
|
28
|
+
var SERVER_CACHE_SYMBOL = Symbol.for('__requestIframeServerCache__');
|
|
29
|
+
|
|
20
30
|
/**
|
|
21
31
|
* Get the MessageChannel cache from window
|
|
22
32
|
*/
|
|
@@ -80,4 +90,70 @@ function clearMessageChannelCache() {
|
|
|
80
90
|
channel.destroy();
|
|
81
91
|
});
|
|
82
92
|
cache.clear();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get the server cache from window
|
|
97
|
+
*/
|
|
98
|
+
function getServerCacheForWindow(win) {
|
|
99
|
+
if (!(SERVER_CACHE_SYMBOL in win)) {
|
|
100
|
+
win[SERVER_CACHE_SYMBOL] = new Map();
|
|
101
|
+
}
|
|
102
|
+
return win[SERVER_CACHE_SYMBOL];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Generate server cache key
|
|
107
|
+
* Cache key format: "secretKey:id" or "secretKey:" when no id
|
|
108
|
+
*/
|
|
109
|
+
function getServerCacheKey(secretKey, id) {
|
|
110
|
+
return `${secretKey !== null && secretKey !== void 0 ? secretKey : ''}:${id !== null && id !== void 0 ? id : ''}`;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Get cached server instance or null
|
|
115
|
+
* @param secretKey secret key for message isolation
|
|
116
|
+
* @param id server instance ID
|
|
117
|
+
*/
|
|
118
|
+
function getCachedServer(secretKey, id) {
|
|
119
|
+
if (!id) return null;
|
|
120
|
+
var cache = getServerCacheForWindow(window);
|
|
121
|
+
var key = getServerCacheKey(secretKey, id);
|
|
122
|
+
return cache.get(key) || null;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Cache server instance
|
|
127
|
+
* @param server server instance
|
|
128
|
+
* @param secretKey secret key for message isolation
|
|
129
|
+
* @param id server instance ID
|
|
130
|
+
*/
|
|
131
|
+
function cacheServer(server, secretKey, id) {
|
|
132
|
+
if (!id) return;
|
|
133
|
+
var cache = getServerCacheForWindow(window);
|
|
134
|
+
var key = getServerCacheKey(secretKey, id);
|
|
135
|
+
cache.set(key, server);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Remove server from cache
|
|
140
|
+
* @param secretKey secret key for message isolation
|
|
141
|
+
* @param id server instance ID
|
|
142
|
+
*/
|
|
143
|
+
function removeCachedServer(secretKey, id) {
|
|
144
|
+
if (!id) return;
|
|
145
|
+
var cache = getServerCacheForWindow(window);
|
|
146
|
+
var key = getServerCacheKey(secretKey, id);
|
|
147
|
+
cache.delete(key);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Clear all server cache (mainly for testing)
|
|
152
|
+
*/
|
|
153
|
+
function clearServerCache() {
|
|
154
|
+
var cache = getServerCacheForWindow(window);
|
|
155
|
+
cache.forEach(server => {
|
|
156
|
+
server.destroy();
|
|
157
|
+
});
|
|
158
|
+
cache.clear();
|
|
83
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["cookie.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8DtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CA2B5F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAInF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAmBhF;AAkBD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAsC;IAErD;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAK7B;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAY5C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,IAAI;IAK9C;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAsBvD;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAqBpD;;OAEG;IACH,MAAM,IAAI,UAAU,EAAE;IAatB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAatC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB"}
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../src/utils/cookie.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8DtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CA2B5F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAInF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAmBhF;AAkBD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAsC;IAErD;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAK7B;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAY5C;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAY,GAAG,IAAI;IAK9C;;;;OAIG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAsBvD;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAqBpD;;OAEG;IACH,MAAM,IAAI,UAAU,EAAE;IAatB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAatC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAiDpE;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAsE9E;AA8GD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CA+H3E"}
|