request-iframe 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QUICKSTART.CN.md +33 -11
- package/QUICKSTART.md +33 -11
- package/README.CN.md +157 -44
- package/README.md +159 -41
- package/cdn/request-iframe.umd.js +4814 -4026
- package/cdn/request-iframe.umd.js.map +1 -1
- package/cdn/request-iframe.umd.min.js +2 -2
- package/cdn/request-iframe.umd.min.js.map +1 -1
- package/esm/api/client.js +45 -22
- package/esm/api/endpoint.js +30 -13
- package/esm/api/server.js +22 -13
- package/esm/constants/warn-once.js +7 -1
- package/esm/endpoint/index.js +1 -2
- package/esm/endpoint/infra/inbox.js +5 -4
- package/esm/endpoint/infra/outbox.js +8 -8
- package/esm/endpoint/stream/file-auto-resolve.js +9 -8
- package/esm/impl/client.js +3 -2
- package/esm/impl/response.js +4 -2
- package/esm/impl/server.js +8 -6
- package/esm/message/channel.js +15 -3
- package/esm/message/dispatcher.js +27 -0
- package/esm/stream/file-stream.js +311 -72
- package/esm/stream/writable-stream.js +21 -4
- package/esm/utils/blob.js +17 -0
- package/esm/utils/debug-lazy.js +76 -0
- package/esm/utils/logger.js +33 -1
- package/esm/utils/strict-mode.js +85 -0
- package/esm/utils/warn-once.js +30 -0
- package/esm/utils/warnings.js +47 -0
- package/library/api/client.d.ts.map +1 -1
- package/library/api/client.js +45 -22
- package/library/api/endpoint.d.ts.map +1 -1
- package/library/api/endpoint.js +30 -13
- package/library/api/server.d.ts.map +1 -1
- package/library/api/server.js +22 -13
- package/library/constants/warn-once.d.ts +6 -0
- package/library/constants/warn-once.d.ts.map +1 -1
- package/library/constants/warn-once.js +7 -1
- package/library/endpoint/index.d.ts +0 -1
- package/library/endpoint/index.d.ts.map +1 -1
- package/library/endpoint/index.js +1 -8
- package/library/endpoint/infra/inbox.d.ts.map +1 -1
- package/library/endpoint/infra/inbox.js +4 -3
- package/library/endpoint/infra/outbox.d.ts +2 -0
- package/library/endpoint/infra/outbox.d.ts.map +1 -1
- package/library/endpoint/infra/outbox.js +7 -7
- package/library/endpoint/stream/file-auto-resolve.d.ts +1 -1
- package/library/endpoint/stream/file-auto-resolve.d.ts.map +1 -1
- package/library/endpoint/stream/file-auto-resolve.js +8 -8
- package/library/impl/client.d.ts +2 -0
- package/library/impl/client.d.ts.map +1 -1
- package/library/impl/client.js +3 -2
- package/library/impl/response.d.ts.map +1 -1
- package/library/impl/response.js +4 -2
- package/library/impl/server.d.ts.map +1 -1
- package/library/impl/server.js +7 -5
- package/library/message/channel.d.ts +2 -2
- package/library/message/channel.d.ts.map +1 -1
- package/library/message/channel.js +15 -3
- package/library/message/dispatcher.d.ts.map +1 -1
- package/library/message/dispatcher.js +27 -0
- package/library/stream/file-stream.d.ts +70 -5
- package/library/stream/file-stream.d.ts.map +1 -1
- package/library/stream/file-stream.js +310 -70
- package/library/stream/types.d.ts +2 -0
- package/library/stream/types.d.ts.map +1 -1
- package/library/stream/writable-stream.d.ts.map +1 -1
- package/library/stream/writable-stream.js +21 -4
- package/library/types/index.d.ts +38 -0
- package/library/types/index.d.ts.map +1 -1
- package/library/utils/blob.d.ts +7 -0
- package/library/utils/blob.d.ts.map +1 -1
- package/library/utils/blob.js +18 -0
- package/library/utils/debug-lazy.d.ts +26 -0
- package/library/utils/debug-lazy.d.ts.map +1 -0
- package/library/utils/debug-lazy.js +85 -0
- package/library/utils/logger.d.ts +20 -0
- package/library/utils/logger.d.ts.map +1 -1
- package/library/utils/logger.js +34 -1
- package/library/utils/strict-mode.d.ts +37 -0
- package/library/utils/strict-mode.d.ts.map +1 -0
- package/library/utils/strict-mode.js +94 -0
- package/library/utils/warn-once.d.ts +9 -0
- package/library/utils/warn-once.d.ts.map +1 -0
- package/library/utils/warn-once.js +36 -0
- package/library/utils/warnings.d.ts +48 -0
- package/library/utils/warnings.d.ts.map +1 -0
- package/library/utils/warnings.js +54 -0
- package/package.json +1 -1
- package/esm/endpoint/stream/file-writable.js +0 -105
- package/library/endpoint/stream/file-writable.d.ts +0 -33
- package/library/endpoint/stream/file-writable.d.ts.map +0 -1
- package/library/endpoint/stream/file-writable.js +0 -115
package/library/types/index.d.ts
CHANGED
|
@@ -274,6 +274,21 @@ export interface SendFileOptions extends SendOptions {
|
|
|
274
274
|
mimeType?: string;
|
|
275
275
|
/** File name */
|
|
276
276
|
fileName?: string;
|
|
277
|
+
/**
|
|
278
|
+
* Whether to send file in multiple chunks.
|
|
279
|
+
* Default: false (backward compatible).
|
|
280
|
+
*/
|
|
281
|
+
chunked?: boolean;
|
|
282
|
+
/**
|
|
283
|
+
* Chunk size in bytes (only used when chunked is true).
|
|
284
|
+
*/
|
|
285
|
+
chunkSize?: number;
|
|
286
|
+
/**
|
|
287
|
+
* Whether receiver should auto-resolve the file stream to File/Blob.
|
|
288
|
+
* - true (default): client will read the entire file stream and return File/Blob in response.data
|
|
289
|
+
* - false: client will receive response.stream and can consume it progressively
|
|
290
|
+
*/
|
|
291
|
+
autoResolve?: boolean;
|
|
277
292
|
}
|
|
278
293
|
/**
|
|
279
294
|
* Cookie options (consistent with Express)
|
|
@@ -386,6 +401,8 @@ export interface RequestIframeClient {
|
|
|
386
401
|
mimeType?: string;
|
|
387
402
|
fileName?: string;
|
|
388
403
|
autoResolve?: boolean;
|
|
404
|
+
chunked?: boolean;
|
|
405
|
+
chunkSize?: number;
|
|
389
406
|
}): Promise<Response<T> | T>;
|
|
390
407
|
/** Send stream as request body (server receives readable stream) */
|
|
391
408
|
sendStream<T = any>(path: string, stream: import('../stream').IframeWritableStream, options?: RequestOptions): Promise<Response<T> | T>;
|
|
@@ -491,6 +508,18 @@ export interface RequestIframeClientOptions extends RequestDefaults {
|
|
|
491
508
|
* Return false to ignore the message.
|
|
492
509
|
*/
|
|
493
510
|
validateOrigin?: OriginValidator;
|
|
511
|
+
/**
|
|
512
|
+
* Strict mode (recommended for same-origin defaults).
|
|
513
|
+
*
|
|
514
|
+
* When enabled and user did not configure origin constraints explicitly:
|
|
515
|
+
* - targetOrigin defaults to window.location.origin (same-origin only)
|
|
516
|
+
* - allowedOrigins defaults to [window.location.origin]
|
|
517
|
+
*
|
|
518
|
+
* This reduces boilerplate and avoids unsafe defaults like Window targetOrigin='*'.
|
|
519
|
+
*
|
|
520
|
+
* Note: For cross-origin usage, you should explicitly set targetOrigin and allowedOrigins/validateOrigin.
|
|
521
|
+
*/
|
|
522
|
+
strict?: boolean;
|
|
494
523
|
/**
|
|
495
524
|
* Whether to enable trace mode.
|
|
496
525
|
* If true, logs will be printed at various points such as before and after requests.
|
|
@@ -539,6 +568,15 @@ export interface RequestIframeServerOptions extends Pick<RequestDefaults, 'ackTi
|
|
|
539
568
|
* Return false to ignore the message.
|
|
540
569
|
*/
|
|
541
570
|
validateOrigin?: OriginValidator;
|
|
571
|
+
/**
|
|
572
|
+
* Strict mode (recommended for same-origin defaults).
|
|
573
|
+
*
|
|
574
|
+
* When enabled and user did not configure origin constraints explicitly:
|
|
575
|
+
* - allowedOrigins defaults to [window.location.origin]
|
|
576
|
+
*
|
|
577
|
+
* Note: For cross-origin usage, you should explicitly set allowedOrigins/validateOrigin.
|
|
578
|
+
*/
|
|
579
|
+
strict?: boolean;
|
|
542
580
|
/**
|
|
543
581
|
* Whether to automatically open (start message handling) when creating the server.
|
|
544
582
|
* Default is true. If set to false, you need to manually call server.open() to start message handling.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/library/utils/blob.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
/** Convert Blob to base64 string */
|
|
2
2
|
export declare function blobToBase64(blob: Blob): Promise<string>;
|
|
3
|
+
/**
|
|
4
|
+
* Convert Blob to ArrayBuffer.
|
|
5
|
+
*
|
|
6
|
+
* Notes:
|
|
7
|
+
* - Use FileReader for legacy browser support (e.g. Chrome 49).
|
|
8
|
+
*/
|
|
9
|
+
export declare function blobToArrayBuffer(blob: Blob): Promise<ArrayBuffer>;
|
|
3
10
|
//# sourceMappingURL=blob.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/utils/blob.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAWxD"}
|
|
1
|
+
{"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../src/utils/blob.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAWxD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CASlE"}
|
package/library/utils/blob.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.blobToArrayBuffer = blobToArrayBuffer;
|
|
6
7
|
exports.blobToBase64 = blobToBase64;
|
|
7
8
|
require("core-js/modules/es.array.includes.js");
|
|
8
9
|
require("core-js/modules/es.promise.js");
|
|
@@ -19,4 +20,21 @@ function blobToBase64(blob) {
|
|
|
19
20
|
reader.onerror = reject;
|
|
20
21
|
reader.readAsDataURL(blob);
|
|
21
22
|
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Convert Blob to ArrayBuffer.
|
|
27
|
+
*
|
|
28
|
+
* Notes:
|
|
29
|
+
* - Use FileReader for legacy browser support (e.g. Chrome 49).
|
|
30
|
+
*/
|
|
31
|
+
function blobToArrayBuffer(blob) {
|
|
32
|
+
return new Promise((resolve, reject) => {
|
|
33
|
+
var reader = new FileReader();
|
|
34
|
+
reader.onloadend = () => {
|
|
35
|
+
resolve(reader.result);
|
|
36
|
+
};
|
|
37
|
+
reader.onerror = reject;
|
|
38
|
+
reader.readAsArrayBuffer(blob);
|
|
39
|
+
});
|
|
22
40
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy-load debug helpers (dynamic import) with shared caching.
|
|
3
|
+
*
|
|
4
|
+
* Why:
|
|
5
|
+
* - Avoid eagerly bundling debug wiring into the main bundle.
|
|
6
|
+
* - Keep one shared Promise so multiple entry points don't trigger multiple imports.
|
|
7
|
+
*/
|
|
8
|
+
import type { RequestIframeClient } from '../types';
|
|
9
|
+
export declare function loadDebugModule(): Promise<typeof import('./debug')>;
|
|
10
|
+
/**
|
|
11
|
+
* Ensure debug interceptors/listeners are attached to a client instance.
|
|
12
|
+
*
|
|
13
|
+
* Notes:
|
|
14
|
+
* - This returns a Promise that never rejects (best-effort).
|
|
15
|
+
* - It is safe to call multiple times; only attaches once per client instance.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ensureClientDebugInterceptors(client: RequestIframeClient): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Wrap client send methods so the first request in trace mode won't miss debug hooks.
|
|
20
|
+
*
|
|
21
|
+
* Why:
|
|
22
|
+
* - debug module is lazy-loaded via dynamic import, so it may not be ready immediately.
|
|
23
|
+
* - In trace mode, it's acceptable to delay the first send by a microtask or module-load time.
|
|
24
|
+
*/
|
|
25
|
+
export declare function wrapClientMethodsForDebug(client: RequestIframeClient): void;
|
|
26
|
+
//# sourceMappingURL=debug-lazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-lazy.d.ts","sourceRoot":"","sources":["../../src/utils/debug-lazy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIpD,wBAAgB,eAAe,IAAI,OAAO,CAAC,cAAc,SAAS,CAAC,CAAC,CAKnE;AAKD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxF;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAkB3E"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ensureClientDebugInterceptors = ensureClientDebugInterceptors;
|
|
7
|
+
exports.loadDebugModule = loadDebugModule;
|
|
8
|
+
exports.wrapClientMethodsForDebug = wrapClientMethodsForDebug;
|
|
9
|
+
require("core-js/modules/es.array.iterator.js");
|
|
10
|
+
require("core-js/modules/es.promise.js");
|
|
11
|
+
require("core-js/modules/es.weak-map.js");
|
|
12
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
14
|
+
/**
|
|
15
|
+
* Lazy-load debug helpers (dynamic import) with shared caching.
|
|
16
|
+
*
|
|
17
|
+
* Why:
|
|
18
|
+
* - Avoid eagerly bundling debug wiring into the main bundle.
|
|
19
|
+
* - Keep one shared Promise so multiple entry points don't trigger multiple imports.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
var debugModulePromise = null;
|
|
23
|
+
function loadDebugModule() {
|
|
24
|
+
if (!debugModulePromise) {
|
|
25
|
+
debugModulePromise = Promise.resolve().then(() => _interopRequireWildcard(require('./debug')));
|
|
26
|
+
}
|
|
27
|
+
return debugModulePromise;
|
|
28
|
+
}
|
|
29
|
+
var CLIENT_DEBUG_STATE = new WeakMap();
|
|
30
|
+
var CLIENT_DEBUG_WRAPPED = Symbol.for('__requestIframeClientDebugWrapped__');
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Ensure debug interceptors/listeners are attached to a client instance.
|
|
34
|
+
*
|
|
35
|
+
* Notes:
|
|
36
|
+
* - This returns a Promise that never rejects (best-effort).
|
|
37
|
+
* - It is safe to call multiple times; only attaches once per client instance.
|
|
38
|
+
*/
|
|
39
|
+
function ensureClientDebugInterceptors(client) {
|
|
40
|
+
var key = client;
|
|
41
|
+
var state = CLIENT_DEBUG_STATE.get(key);
|
|
42
|
+
if (!state) {
|
|
43
|
+
state = {
|
|
44
|
+
promise: null,
|
|
45
|
+
attached: false
|
|
46
|
+
};
|
|
47
|
+
CLIENT_DEBUG_STATE.set(key, state);
|
|
48
|
+
}
|
|
49
|
+
if (state.attached) return Promise.resolve();
|
|
50
|
+
if (!state.promise) {
|
|
51
|
+
state.promise = loadDebugModule().then(m => {
|
|
52
|
+
if (state.attached) return;
|
|
53
|
+
m.setupClientDebugInterceptors(client);
|
|
54
|
+
state.attached = true;
|
|
55
|
+
}).catch(() => {
|
|
56
|
+
/** ignore */
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return state.promise;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Wrap client send methods so the first request in trace mode won't miss debug hooks.
|
|
64
|
+
*
|
|
65
|
+
* Why:
|
|
66
|
+
* - debug module is lazy-loaded via dynamic import, so it may not be ready immediately.
|
|
67
|
+
* - In trace mode, it's acceptable to delay the first send by a microtask or module-load time.
|
|
68
|
+
*/
|
|
69
|
+
function wrapClientMethodsForDebug(client) {
|
|
70
|
+
var c = client;
|
|
71
|
+
if (c[CLIENT_DEBUG_WRAPPED]) return;
|
|
72
|
+
c[CLIENT_DEBUG_WRAPPED] = true;
|
|
73
|
+
var wrapAsyncMethod = name => {
|
|
74
|
+
var original = c[name];
|
|
75
|
+
if (typeof original !== 'function') return;
|
|
76
|
+
var bound = original.bind(c);
|
|
77
|
+
c[name] = (...args) => {
|
|
78
|
+
return ensureClientDebugInterceptors(client).then(() => bound(...args));
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
wrapAsyncMethod('send');
|
|
82
|
+
wrapAsyncMethod('sendFile');
|
|
83
|
+
wrapAsyncMethod('sendStream');
|
|
84
|
+
wrapAsyncMethod('isConnect');
|
|
85
|
+
}
|
|
@@ -10,4 +10,24 @@ export declare function ensureRequestIframeLogLevel(level: RequestIframeLogLevel
|
|
|
10
10
|
* Log with level gating + unified prefix.
|
|
11
11
|
*/
|
|
12
12
|
export declare function requestIframeLog(level: Exclude<RequestIframeLogLevel, 'silent'>, message: string, data?: unknown): void;
|
|
13
|
+
/**
|
|
14
|
+
* Unified logger facade.
|
|
15
|
+
*
|
|
16
|
+
* Notes:
|
|
17
|
+
* - This is a thin wrapper around existing functions (kept for backward compatibility).
|
|
18
|
+
* - `once()` is useful for configuration/security hints to avoid noisy logs.
|
|
19
|
+
*/
|
|
20
|
+
export declare const logger: {
|
|
21
|
+
readonly getLevel: typeof getRequestIframeLogLevel;
|
|
22
|
+
readonly setLevel: typeof setRequestIframeLogLevel;
|
|
23
|
+
readonly ensureLevel: typeof ensureRequestIframeLogLevel;
|
|
24
|
+
readonly trace: (message: string, data?: unknown) => void;
|
|
25
|
+
readonly info: (message: string, data?: unknown) => void;
|
|
26
|
+
readonly warn: (message: string, data?: unknown) => void;
|
|
27
|
+
readonly error: (message: string, data?: unknown) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Log once by key (deduped across bundles/versions).
|
|
30
|
+
*/
|
|
31
|
+
readonly once: (level: Exclude<RequestIframeLogLevel, "silent">, key: string, message: string, data?: unknown) => void;
|
|
32
|
+
};
|
|
13
33
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAuBtD,wBAAgB,wBAAwB,IAAI,qBAAqB,CAEhE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAE3E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAI9E;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAkBvH;AAED;;;;;;GAMG;AACH,eAAO,MAAM,MAAM;;;;8BAKF,MAAM,SAAS,OAAO,KAAG,IAAI;6BAG9B,MAAM,SAAS,OAAO,KAAG,IAAI;6BAG7B,MAAM,SAAS,OAAO,KAAG,IAAI;8BAG5B,MAAM,SAAS,OAAO,KAAG,IAAI;IAI5C;;OAEG;2BACS,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,OAAO,MAAM,WAAW,MAAM,SAAS,OAAO,KAAG,IAAI;CAGjG,CAAC"}
|
package/library/utils/logger.js
CHANGED
|
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ensureRequestIframeLogLevel = ensureRequestIframeLogLevel;
|
|
7
7
|
exports.getRequestIframeLogLevel = getRequestIframeLogLevel;
|
|
8
|
+
exports.logger = void 0;
|
|
8
9
|
exports.requestIframeLog = requestIframeLog;
|
|
9
10
|
exports.setRequestIframeLogLevel = setRequestIframeLogLevel;
|
|
10
11
|
var _constants = require("../constants");
|
|
12
|
+
var _warnOnce = require("./warn-once");
|
|
11
13
|
/**
|
|
12
14
|
* Built-in leveled logger for request-iframe.
|
|
13
15
|
*
|
|
@@ -60,4 +62,35 @@ function requestIframeLog(level, message, data) {
|
|
|
60
62
|
} else {
|
|
61
63
|
console[method](`%c${prefix}%c ${message}`, prefixStyle, messageStyle);
|
|
62
64
|
}
|
|
63
|
-
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Unified logger facade.
|
|
69
|
+
*
|
|
70
|
+
* Notes:
|
|
71
|
+
* - This is a thin wrapper around existing functions (kept for backward compatibility).
|
|
72
|
+
* - `once()` is useful for configuration/security hints to avoid noisy logs.
|
|
73
|
+
*/
|
|
74
|
+
var logger = exports.logger = {
|
|
75
|
+
getLevel: getRequestIframeLogLevel,
|
|
76
|
+
setLevel: setRequestIframeLogLevel,
|
|
77
|
+
ensureLevel: ensureRequestIframeLogLevel,
|
|
78
|
+
trace(message, data) {
|
|
79
|
+
requestIframeLog(_constants.LogLevel.TRACE, message, data);
|
|
80
|
+
},
|
|
81
|
+
info(message, data) {
|
|
82
|
+
requestIframeLog(_constants.LogLevel.INFO, message, data);
|
|
83
|
+
},
|
|
84
|
+
warn(message, data) {
|
|
85
|
+
requestIframeLog(_constants.LogLevel.WARN, message, data);
|
|
86
|
+
},
|
|
87
|
+
error(message, data) {
|
|
88
|
+
requestIframeLog(_constants.LogLevel.ERROR, message, data);
|
|
89
|
+
},
|
|
90
|
+
/**
|
|
91
|
+
* Log once by key (deduped across bundles/versions).
|
|
92
|
+
*/
|
|
93
|
+
once(level, key, message, data) {
|
|
94
|
+
(0, _warnOnce.warnOnce)(key, () => requestIframeLog(level, message, data));
|
|
95
|
+
}
|
|
96
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { OriginMatcher, OriginValidator } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Security defaults helper for "strict mode".
|
|
4
|
+
*
|
|
5
|
+
* Goal:
|
|
6
|
+
* - Reduce boilerplate in common same-origin usage.
|
|
7
|
+
* - Provide safer defaults when user does NOT configure origin constraints explicitly.
|
|
8
|
+
*
|
|
9
|
+
* Behavior (when strict === true):
|
|
10
|
+
* - Client-like options:
|
|
11
|
+
* - If targetOrigin is not provided, default to window.location.origin (same-origin only).
|
|
12
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
13
|
+
* - Server-like options:
|
|
14
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
15
|
+
*
|
|
16
|
+
* Notes:
|
|
17
|
+
* - This intentionally makes cross-origin setups fail fast unless user explicitly configures
|
|
18
|
+
* targetOrigin and allowedOrigins/validateOrigin.
|
|
19
|
+
*/
|
|
20
|
+
export interface StrictClientSecurityOptionsShape {
|
|
21
|
+
strict?: boolean;
|
|
22
|
+
targetOrigin?: string;
|
|
23
|
+
allowedOrigins?: OriginMatcher;
|
|
24
|
+
validateOrigin?: OriginValidator;
|
|
25
|
+
}
|
|
26
|
+
export interface StrictServerSecurityOptionsShape {
|
|
27
|
+
strict?: boolean;
|
|
28
|
+
allowedOrigins?: OriginMatcher;
|
|
29
|
+
validateOrigin?: OriginValidator;
|
|
30
|
+
}
|
|
31
|
+
export declare function getCurrentWindowOrigin(): string | undefined;
|
|
32
|
+
export declare function applyStrictClientSecurityDefaults<T extends StrictClientSecurityOptionsShape>(defaultTargetOrigin: string, options?: T): {
|
|
33
|
+
targetOrigin: string;
|
|
34
|
+
options?: T;
|
|
35
|
+
};
|
|
36
|
+
export declare function applyStrictServerSecurityDefaults<T extends StrictServerSecurityOptionsShape>(options?: T): T | undefined;
|
|
37
|
+
//# sourceMappingURL=strict-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict-mode.d.ts","sourceRoot":"","sources":["../../src/utils/strict-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,gCAAgC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC;AAED,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAS3D;AAED,wBAAgB,iCAAiC,CAAC,CAAC,SAAS,gCAAgC,EAC1F,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,CAAC,GACV;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA;CAAE,CAiCvC;AAED,wBAAgB,iCAAiC,CAAC,CAAC,SAAS,gCAAgC,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAexH"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.filter.js");
|
|
4
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
5
|
+
require("core-js/modules/web.dom-collections.for-each.js");
|
|
6
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.applyStrictClientSecurityDefaults = applyStrictClientSecurityDefaults;
|
|
11
|
+
exports.applyStrictServerSecurityDefaults = applyStrictServerSecurityDefaults;
|
|
12
|
+
exports.getCurrentWindowOrigin = getCurrentWindowOrigin;
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
/**
|
|
17
|
+
* Security defaults helper for "strict mode".
|
|
18
|
+
*
|
|
19
|
+
* Goal:
|
|
20
|
+
* - Reduce boilerplate in common same-origin usage.
|
|
21
|
+
* - Provide safer defaults when user does NOT configure origin constraints explicitly.
|
|
22
|
+
*
|
|
23
|
+
* Behavior (when strict === true):
|
|
24
|
+
* - Client-like options:
|
|
25
|
+
* - If targetOrigin is not provided, default to window.location.origin (same-origin only).
|
|
26
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
27
|
+
* - Server-like options:
|
|
28
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
29
|
+
*
|
|
30
|
+
* Notes:
|
|
31
|
+
* - This intentionally makes cross-origin setups fail fast unless user explicitly configures
|
|
32
|
+
* targetOrigin and allowedOrigins/validateOrigin.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
function getCurrentWindowOrigin() {
|
|
36
|
+
try {
|
|
37
|
+
var _window$location;
|
|
38
|
+
if (typeof window === 'undefined') return undefined;
|
|
39
|
+
var origin = (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.origin;
|
|
40
|
+
if (typeof origin === 'string' && origin) return origin;
|
|
41
|
+
} catch (_unused) {
|
|
42
|
+
/** ignore */
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
function applyStrictClientSecurityDefaults(defaultTargetOrigin, options) {
|
|
47
|
+
var _options$targetOrigin;
|
|
48
|
+
var strict = (options === null || options === void 0 ? void 0 : options.strict) === true;
|
|
49
|
+
var targetOrigin = (_options$targetOrigin = options === null || options === void 0 ? void 0 : options.targetOrigin) !== null && _options$targetOrigin !== void 0 ? _options$targetOrigin : defaultTargetOrigin;
|
|
50
|
+
var allowedOrigins = options === null || options === void 0 ? void 0 : options.allowedOrigins;
|
|
51
|
+
if (strict) {
|
|
52
|
+
var currentOrigin = getCurrentWindowOrigin();
|
|
53
|
+
if (currentOrigin) {
|
|
54
|
+
if (!(options !== null && options !== void 0 && options.targetOrigin)) {
|
|
55
|
+
targetOrigin = currentOrigin;
|
|
56
|
+
}
|
|
57
|
+
if (!(options !== null && options !== void 0 && options.allowedOrigins) && !(options !== null && options !== void 0 && options.validateOrigin)) {
|
|
58
|
+
allowedOrigins = [currentOrigin];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!options) {
|
|
63
|
+
return {
|
|
64
|
+
targetOrigin,
|
|
65
|
+
options: options
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
if (targetOrigin === options.targetOrigin && allowedOrigins === options.allowedOrigins) {
|
|
69
|
+
return {
|
|
70
|
+
targetOrigin,
|
|
71
|
+
options
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
targetOrigin,
|
|
76
|
+
options: _objectSpread(_objectSpread(_objectSpread({}, options), targetOrigin !== options.targetOrigin ? {
|
|
77
|
+
targetOrigin
|
|
78
|
+
} : null), allowedOrigins !== options.allowedOrigins ? {
|
|
79
|
+
allowedOrigins
|
|
80
|
+
} : null)
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function applyStrictServerSecurityDefaults(options) {
|
|
84
|
+
var strict = (options === null || options === void 0 ? void 0 : options.strict) === true;
|
|
85
|
+
if (!strict) return options;
|
|
86
|
+
if (options !== null && options !== void 0 && options.allowedOrigins || options !== null && options !== void 0 && options.validateOrigin) {
|
|
87
|
+
return options;
|
|
88
|
+
}
|
|
89
|
+
var currentOrigin = getCurrentWindowOrigin();
|
|
90
|
+
if (!currentOrigin) return options;
|
|
91
|
+
return _objectSpread(_objectSpread({}, options), {}, {
|
|
92
|
+
allowedOrigins: [currentOrigin]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A simple global warn-once helper.
|
|
3
|
+
*
|
|
4
|
+
* Why:
|
|
5
|
+
* - Some warnings need to fire before a hub/client/server instance exists (e.g. api factory functions).
|
|
6
|
+
* - We use Symbol.for() so multiple bundles/versions can share the same dedupe storage.
|
|
7
|
+
*/
|
|
8
|
+
export declare function warnOnce(key: string, fn: () => void): void;
|
|
9
|
+
//# sourceMappingURL=warn-once.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warn-once.d.ts","sourceRoot":"","sources":["../../src/utils/warn-once.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK1D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warnOnce = warnOnce;
|
|
7
|
+
require("core-js/modules/es.array.iterator.js");
|
|
8
|
+
require("core-js/modules/es.set.js");
|
|
9
|
+
require("core-js/modules/esnext.global-this.js");
|
|
10
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
11
|
+
/**
|
|
12
|
+
* A simple global warn-once helper.
|
|
13
|
+
*
|
|
14
|
+
* Why:
|
|
15
|
+
* - Some warnings need to fire before a hub/client/server instance exists (e.g. api factory functions).
|
|
16
|
+
* - We use Symbol.for() so multiple bundles/versions can share the same dedupe storage.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
var WARN_ONCE_SYMBOL = Symbol.for('__requestIframeWarnOnce__');
|
|
20
|
+
function getHost() {
|
|
21
|
+
if (typeof window !== 'undefined') return window;
|
|
22
|
+
return globalThis;
|
|
23
|
+
}
|
|
24
|
+
function getWarnOnceSet() {
|
|
25
|
+
var host = getHost();
|
|
26
|
+
if (!(WARN_ONCE_SYMBOL in host)) {
|
|
27
|
+
host[WARN_ONCE_SYMBOL] = new Set();
|
|
28
|
+
}
|
|
29
|
+
return host[WARN_ONCE_SYMBOL];
|
|
30
|
+
}
|
|
31
|
+
function warnOnce(key, fn) {
|
|
32
|
+
var set = getWarnOnceSet();
|
|
33
|
+
if (set.has(key)) return;
|
|
34
|
+
set.add(key);
|
|
35
|
+
fn();
|
|
36
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { OriginMatcher, OriginValidator } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal "warnOnce host" interface.
|
|
4
|
+
*
|
|
5
|
+
* Why:
|
|
6
|
+
* - We want to reuse the hub-level warnOnce mechanism without importing endpoint internals here.
|
|
7
|
+
*/
|
|
8
|
+
export interface WarnOnceHost {
|
|
9
|
+
warnOnce: (key: string, fn: () => void) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Warn when using `targetOrigin="*"` for Window targets without any incoming origin validation.
|
|
13
|
+
*
|
|
14
|
+
* Why:
|
|
15
|
+
* - For `Window` targets, default `targetOrigin` is '*'.
|
|
16
|
+
* - If user does not configure `allowedOrigins` / `validateOrigin`, origin validation is effectively disabled.
|
|
17
|
+
* - This is a best-practice/security warning and is logged once (INFO level) to avoid noise.
|
|
18
|
+
*/
|
|
19
|
+
export declare function warnUnsafeTargetOriginForWindow(params: {
|
|
20
|
+
/** If true, the target is an iframe element (then this warning should not apply). */
|
|
21
|
+
isIframeTarget: boolean;
|
|
22
|
+
/** Effective targetOrigin (after user override). */
|
|
23
|
+
targetOrigin: string;
|
|
24
|
+
/** Allowed origins matcher (optional). */
|
|
25
|
+
allowedOrigins?: OriginMatcher;
|
|
26
|
+
/** Custom origin validator (optional). */
|
|
27
|
+
validateOrigin?: OriginValidator;
|
|
28
|
+
}): void;
|
|
29
|
+
/**
|
|
30
|
+
* Warn once when a client-side endpoint is already closed/destroyed and an inbound message arrives
|
|
31
|
+
* without a matching pending request.
|
|
32
|
+
*
|
|
33
|
+
* This is a debugging hint (warn level) because it often indicates lifecycle issues:
|
|
34
|
+
* - the client/server instance was recreated/unmounted before the response arrived
|
|
35
|
+
*/
|
|
36
|
+
export declare function warnClientServerIgnoredMessageWhenClosedOnce(host: WarnOnceHost, params: {
|
|
37
|
+
type: string;
|
|
38
|
+
requestId: string;
|
|
39
|
+
}): void;
|
|
40
|
+
/**
|
|
41
|
+
* Warn once when a server-side endpoint is already closed/destroyed and it receives a message
|
|
42
|
+
* that cannot be matched to a pending waiter (e.g. ack/pong/stream control frames).
|
|
43
|
+
*/
|
|
44
|
+
export declare function warnServerIgnoredMessageWhenClosedOnce(host: WarnOnceHost, params: {
|
|
45
|
+
type: string;
|
|
46
|
+
requestId: string;
|
|
47
|
+
}): void;
|
|
48
|
+
//# sourceMappingURL=warnings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warnings.d.ts","sourceRoot":"","sources":["../../src/utils/warnings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI/D;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,qFAAqF;IACrF,cAAc,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,0CAA0C;IAC1C,cAAc,CAAC,EAAE,eAAe,CAAC;CAClC,GAAG,IAAI,CAWP;AAED;;;;;;GAMG;AACH,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1C,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAgB,sCAAsC,CACpD,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1C,IAAI,CAIN"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.warnClientServerIgnoredMessageWhenClosedOnce = warnClientServerIgnoredMessageWhenClosedOnce;
|
|
7
|
+
exports.warnServerIgnoredMessageWhenClosedOnce = warnServerIgnoredMessageWhenClosedOnce;
|
|
8
|
+
exports.warnUnsafeTargetOriginForWindow = warnUnsafeTargetOriginForWindow;
|
|
9
|
+
var _constants = require("../constants");
|
|
10
|
+
var _logger = require("./logger");
|
|
11
|
+
/**
|
|
12
|
+
* Minimal "warnOnce host" interface.
|
|
13
|
+
*
|
|
14
|
+
* Why:
|
|
15
|
+
* - We want to reuse the hub-level warnOnce mechanism without importing endpoint internals here.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Warn when using `targetOrigin="*"` for Window targets without any incoming origin validation.
|
|
20
|
+
*
|
|
21
|
+
* Why:
|
|
22
|
+
* - For `Window` targets, default `targetOrigin` is '*'.
|
|
23
|
+
* - If user does not configure `allowedOrigins` / `validateOrigin`, origin validation is effectively disabled.
|
|
24
|
+
* - This is a best-practice/security warning and is logged once (INFO level) to avoid noise.
|
|
25
|
+
*/
|
|
26
|
+
function warnUnsafeTargetOriginForWindow(params) {
|
|
27
|
+
if (params.isIframeTarget) return;
|
|
28
|
+
if (params.targetOrigin !== _constants.OriginConstant.ANY) return;
|
|
29
|
+
if (params.allowedOrigins || params.validateOrigin) return;
|
|
30
|
+
_logger.logger.once(_constants.LogLevel.INFO, (0, _constants.buildWarnOnceKey)(_constants.WarnOnceKey.TARGET_ORIGIN_ANY_WITHOUT_ORIGIN_VALIDATION), '[Security] targetOrigin is "*" for Window targets and no allowedOrigins/validateOrigin is configured. ' + 'Consider setting a strict targetOrigin and allowedOrigins/validateOrigin.');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Warn once when a client-side endpoint is already closed/destroyed and an inbound message arrives
|
|
35
|
+
* without a matching pending request.
|
|
36
|
+
*
|
|
37
|
+
* This is a debugging hint (warn level) because it often indicates lifecycle issues:
|
|
38
|
+
* - the client/server instance was recreated/unmounted before the response arrived
|
|
39
|
+
*/
|
|
40
|
+
function warnClientServerIgnoredMessageWhenClosedOnce(host, params) {
|
|
41
|
+
host.warnOnce((0, _constants.buildWarnOnceKey)(_constants.WarnOnceKey.INBOX_MISSING_PENDING_WHEN_CLOSED, params.requestId), () => {
|
|
42
|
+
_logger.logger.warn((0, _constants.formatMessage)(_constants.Messages.CLIENT_SERVER_IGNORED_MESSAGE_WHEN_CLOSED, params.type, params.requestId));
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Warn once when a server-side endpoint is already closed/destroyed and it receives a message
|
|
48
|
+
* that cannot be matched to a pending waiter (e.g. ack/pong/stream control frames).
|
|
49
|
+
*/
|
|
50
|
+
function warnServerIgnoredMessageWhenClosedOnce(host, params) {
|
|
51
|
+
host.warnOnce((0, _constants.buildWarnOnceKey)(_constants.WarnOnceKey.SERVER_MISSING_PENDING_WHEN_CLOSED, params.type, params.requestId), () => {
|
|
52
|
+
_logger.logger.warn((0, _constants.formatMessage)(_constants.Messages.SERVER_IGNORED_MESSAGE_WHEN_CLOSED, params.type, params.requestId));
|
|
53
|
+
});
|
|
54
|
+
}
|