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/esm/utils/logger.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LogLevel } from '../constants';
|
|
2
|
+
import { warnOnce } from './warn-once';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Built-in leveled logger for request-iframe.
|
|
@@ -52,4 +53,35 @@ export function requestIframeLog(level, message, data) {
|
|
|
52
53
|
} else {
|
|
53
54
|
console[method](`%c${prefix}%c ${message}`, prefixStyle, messageStyle);
|
|
54
55
|
}
|
|
55
|
-
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Unified logger facade.
|
|
60
|
+
*
|
|
61
|
+
* Notes:
|
|
62
|
+
* - This is a thin wrapper around existing functions (kept for backward compatibility).
|
|
63
|
+
* - `once()` is useful for configuration/security hints to avoid noisy logs.
|
|
64
|
+
*/
|
|
65
|
+
export var logger = {
|
|
66
|
+
getLevel: getRequestIframeLogLevel,
|
|
67
|
+
setLevel: setRequestIframeLogLevel,
|
|
68
|
+
ensureLevel: ensureRequestIframeLogLevel,
|
|
69
|
+
trace(message, data) {
|
|
70
|
+
requestIframeLog(LogLevel.TRACE, message, data);
|
|
71
|
+
},
|
|
72
|
+
info(message, data) {
|
|
73
|
+
requestIframeLog(LogLevel.INFO, message, data);
|
|
74
|
+
},
|
|
75
|
+
warn(message, data) {
|
|
76
|
+
requestIframeLog(LogLevel.WARN, message, data);
|
|
77
|
+
},
|
|
78
|
+
error(message, data) {
|
|
79
|
+
requestIframeLog(LogLevel.ERROR, message, data);
|
|
80
|
+
},
|
|
81
|
+
/**
|
|
82
|
+
* Log once by key (deduped across bundles/versions).
|
|
83
|
+
*/
|
|
84
|
+
once(level, key, message, data) {
|
|
85
|
+
warnOnce(key, () => requestIframeLog(level, message, data));
|
|
86
|
+
}
|
|
87
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import "core-js/modules/es.array.filter.js";
|
|
2
|
+
import "core-js/modules/es.object.get-own-property-descriptors.js";
|
|
3
|
+
import "core-js/modules/web.dom-collections.for-each.js";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
5
|
+
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; }
|
|
6
|
+
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) { _defineProperty(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; }
|
|
7
|
+
/**
|
|
8
|
+
* Security defaults helper for "strict mode".
|
|
9
|
+
*
|
|
10
|
+
* Goal:
|
|
11
|
+
* - Reduce boilerplate in common same-origin usage.
|
|
12
|
+
* - Provide safer defaults when user does NOT configure origin constraints explicitly.
|
|
13
|
+
*
|
|
14
|
+
* Behavior (when strict === true):
|
|
15
|
+
* - Client-like options:
|
|
16
|
+
* - If targetOrigin is not provided, default to window.location.origin (same-origin only).
|
|
17
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
18
|
+
* - Server-like options:
|
|
19
|
+
* - If neither allowedOrigins nor validateOrigin is provided, default allowedOrigins to [window.location.origin].
|
|
20
|
+
*
|
|
21
|
+
* Notes:
|
|
22
|
+
* - This intentionally makes cross-origin setups fail fast unless user explicitly configures
|
|
23
|
+
* targetOrigin and allowedOrigins/validateOrigin.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export function getCurrentWindowOrigin() {
|
|
27
|
+
try {
|
|
28
|
+
var _window$location;
|
|
29
|
+
if (typeof window === 'undefined') return undefined;
|
|
30
|
+
var origin = (_window$location = window.location) === null || _window$location === void 0 ? void 0 : _window$location.origin;
|
|
31
|
+
if (typeof origin === 'string' && origin) return origin;
|
|
32
|
+
} catch (_unused) {
|
|
33
|
+
/** ignore */
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
export function applyStrictClientSecurityDefaults(defaultTargetOrigin, options) {
|
|
38
|
+
var _options$targetOrigin;
|
|
39
|
+
var strict = (options === null || options === void 0 ? void 0 : options.strict) === true;
|
|
40
|
+
var targetOrigin = (_options$targetOrigin = options === null || options === void 0 ? void 0 : options.targetOrigin) !== null && _options$targetOrigin !== void 0 ? _options$targetOrigin : defaultTargetOrigin;
|
|
41
|
+
var allowedOrigins = options === null || options === void 0 ? void 0 : options.allowedOrigins;
|
|
42
|
+
if (strict) {
|
|
43
|
+
var currentOrigin = getCurrentWindowOrigin();
|
|
44
|
+
if (currentOrigin) {
|
|
45
|
+
if (!(options !== null && options !== void 0 && options.targetOrigin)) {
|
|
46
|
+
targetOrigin = currentOrigin;
|
|
47
|
+
}
|
|
48
|
+
if (!(options !== null && options !== void 0 && options.allowedOrigins) && !(options !== null && options !== void 0 && options.validateOrigin)) {
|
|
49
|
+
allowedOrigins = [currentOrigin];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (!options) {
|
|
54
|
+
return {
|
|
55
|
+
targetOrigin,
|
|
56
|
+
options: options
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (targetOrigin === options.targetOrigin && allowedOrigins === options.allowedOrigins) {
|
|
60
|
+
return {
|
|
61
|
+
targetOrigin,
|
|
62
|
+
options
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
targetOrigin,
|
|
67
|
+
options: _objectSpread(_objectSpread(_objectSpread({}, options), targetOrigin !== options.targetOrigin ? {
|
|
68
|
+
targetOrigin
|
|
69
|
+
} : null), allowedOrigins !== options.allowedOrigins ? {
|
|
70
|
+
allowedOrigins
|
|
71
|
+
} : null)
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function applyStrictServerSecurityDefaults(options) {
|
|
75
|
+
var strict = (options === null || options === void 0 ? void 0 : options.strict) === true;
|
|
76
|
+
if (!strict) return options;
|
|
77
|
+
if (options !== null && options !== void 0 && options.allowedOrigins || options !== null && options !== void 0 && options.validateOrigin) {
|
|
78
|
+
return options;
|
|
79
|
+
}
|
|
80
|
+
var currentOrigin = getCurrentWindowOrigin();
|
|
81
|
+
if (!currentOrigin) return options;
|
|
82
|
+
return _objectSpread(_objectSpread({}, options), {}, {
|
|
83
|
+
allowedOrigins: [currentOrigin]
|
|
84
|
+
});
|
|
85
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "core-js/modules/es.array.iterator.js";
|
|
2
|
+
import "core-js/modules/es.set.js";
|
|
3
|
+
import "core-js/modules/esnext.global-this.js";
|
|
4
|
+
import "core-js/modules/web.dom-collections.iterator.js";
|
|
5
|
+
/**
|
|
6
|
+
* A simple global warn-once helper.
|
|
7
|
+
*
|
|
8
|
+
* Why:
|
|
9
|
+
* - Some warnings need to fire before a hub/client/server instance exists (e.g. api factory functions).
|
|
10
|
+
* - We use Symbol.for() so multiple bundles/versions can share the same dedupe storage.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
var WARN_ONCE_SYMBOL = Symbol.for('__requestIframeWarnOnce__');
|
|
14
|
+
function getHost() {
|
|
15
|
+
if (typeof window !== 'undefined') return window;
|
|
16
|
+
return globalThis;
|
|
17
|
+
}
|
|
18
|
+
function getWarnOnceSet() {
|
|
19
|
+
var host = getHost();
|
|
20
|
+
if (!(WARN_ONCE_SYMBOL in host)) {
|
|
21
|
+
host[WARN_ONCE_SYMBOL] = new Set();
|
|
22
|
+
}
|
|
23
|
+
return host[WARN_ONCE_SYMBOL];
|
|
24
|
+
}
|
|
25
|
+
export function warnOnce(key, fn) {
|
|
26
|
+
var set = getWarnOnceSet();
|
|
27
|
+
if (set.has(key)) return;
|
|
28
|
+
set.add(key);
|
|
29
|
+
fn();
|
|
30
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { LogLevel, OriginConstant, WarnOnceKey, buildWarnOnceKey, Messages, formatMessage } from '../constants';
|
|
2
|
+
import { logger } from './logger';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Minimal "warnOnce host" interface.
|
|
6
|
+
*
|
|
7
|
+
* Why:
|
|
8
|
+
* - We want to reuse the hub-level warnOnce mechanism without importing endpoint internals here.
|
|
9
|
+
*/
|
|
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 function warnUnsafeTargetOriginForWindow(params) {
|
|
20
|
+
if (params.isIframeTarget) return;
|
|
21
|
+
if (params.targetOrigin !== OriginConstant.ANY) return;
|
|
22
|
+
if (params.allowedOrigins || params.validateOrigin) return;
|
|
23
|
+
logger.once(LogLevel.INFO, buildWarnOnceKey(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.');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Warn once when a client-side endpoint is already closed/destroyed and an inbound message arrives
|
|
28
|
+
* without a matching pending request.
|
|
29
|
+
*
|
|
30
|
+
* This is a debugging hint (warn level) because it often indicates lifecycle issues:
|
|
31
|
+
* - the client/server instance was recreated/unmounted before the response arrived
|
|
32
|
+
*/
|
|
33
|
+
export function warnClientServerIgnoredMessageWhenClosedOnce(host, params) {
|
|
34
|
+
host.warnOnce(buildWarnOnceKey(WarnOnceKey.INBOX_MISSING_PENDING_WHEN_CLOSED, params.requestId), () => {
|
|
35
|
+
logger.warn(formatMessage(Messages.CLIENT_SERVER_IGNORED_MESSAGE_WHEN_CLOSED, params.type, params.requestId));
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Warn once when a server-side endpoint is already closed/destroyed and it receives a message
|
|
41
|
+
* that cannot be matched to a pending waiter (e.g. ack/pong/stream control frames).
|
|
42
|
+
*/
|
|
43
|
+
export function warnServerIgnoredMessageWhenClosedOnce(host, params) {
|
|
44
|
+
host.warnOnce(buildWarnOnceKey(WarnOnceKey.SERVER_MISSING_PENDING_WHEN_CLOSED, params.type, params.requestId), () => {
|
|
45
|
+
logger.warn(formatMessage(Messages.SERVER_IGNORED_MESSAGE_WHEN_CLOSED, params.type, params.requestId));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAW1F;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,0BAA0B,GACnC,mBAAmB,CAgFrB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAQtE"}
|
package/library/api/client.js
CHANGED
|
@@ -8,10 +8,12 @@ exports.requestIframeClient = requestIframeClient;
|
|
|
8
8
|
var _iframe = require("../utils/iframe");
|
|
9
9
|
var _id = require("../utils/id");
|
|
10
10
|
var _client = require("../impl/client");
|
|
11
|
-
var _debug = require("../utils/debug");
|
|
12
11
|
var _logger = require("../utils/logger");
|
|
13
12
|
var _constants = require("../constants");
|
|
14
13
|
var _channelCache = require("../message/channel-cache");
|
|
14
|
+
var _warnings = require("../utils/warnings");
|
|
15
|
+
var _debugLazy = require("../utils/debug-lazy");
|
|
16
|
+
var _strictMode = require("../utils/strict-mode");
|
|
15
17
|
/**
|
|
16
18
|
* Create a client (for sending requests)
|
|
17
19
|
*
|
|
@@ -21,12 +23,13 @@ var _channelCache = require("../message/channel-cache");
|
|
|
21
23
|
* - This allows different versions of the library to coexist
|
|
22
24
|
*/
|
|
23
25
|
function requestIframeClient(target, options) {
|
|
26
|
+
var _resolved$options;
|
|
24
27
|
var targetWindow = null;
|
|
25
|
-
var
|
|
28
|
+
var defaultTargetOrigin = _constants.OriginConstant.ANY;
|
|
26
29
|
if (target.tagName === 'IFRAME') {
|
|
27
30
|
var iframe = target;
|
|
28
31
|
targetWindow = iframe.contentWindow;
|
|
29
|
-
|
|
32
|
+
defaultTargetOrigin = (0, _iframe.getIframeTargetOrigin)(iframe);
|
|
30
33
|
if (!targetWindow) {
|
|
31
34
|
throw {
|
|
32
35
|
message: _constants.Messages.IFRAME_NOT_READY,
|
|
@@ -35,16 +38,26 @@ function requestIframeClient(target, options) {
|
|
|
35
38
|
}
|
|
36
39
|
} else {
|
|
37
40
|
targetWindow = target;
|
|
38
|
-
|
|
41
|
+
defaultTargetOrigin = _constants.OriginConstant.ANY;
|
|
39
42
|
}
|
|
43
|
+
var resolved = (0, _strictMode.applyStrictClientSecurityDefaults)(defaultTargetOrigin, options);
|
|
44
|
+
var targetOrigin = resolved.targetOrigin;
|
|
45
|
+
var resolvedOptions = (_resolved$options = resolved.options) !== null && _resolved$options !== void 0 ? _resolved$options : options;
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
47
|
+
/**
|
|
48
|
+
* P1: warn on unsafe default targetOrigin for Window targets.
|
|
49
|
+
* - If targetOrigin is '*' and user did not configure allowedOrigins/validateOrigin,
|
|
50
|
+
* incoming message origin validation is effectively disabled.
|
|
51
|
+
*/
|
|
52
|
+
(0, _warnings.warnUnsafeTargetOriginForWindow)({
|
|
53
|
+
isIframeTarget: target.tagName === 'IFRAME',
|
|
54
|
+
targetOrigin,
|
|
55
|
+
allowedOrigins: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.allowedOrigins,
|
|
56
|
+
validateOrigin: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.validateOrigin
|
|
57
|
+
});
|
|
45
58
|
|
|
46
59
|
// Determine secretKey
|
|
47
|
-
var secretKey =
|
|
60
|
+
var secretKey = resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.secretKey;
|
|
48
61
|
|
|
49
62
|
// Generate instance ID first (will be used by both client and server)
|
|
50
63
|
var instanceId = (0, _id.generateInstanceId)();
|
|
@@ -52,16 +65,16 @@ function requestIframeClient(target, options) {
|
|
|
52
65
|
// Create client instance (internally creates its core message server)
|
|
53
66
|
var client = new _client.RequestIframeClientImpl(targetWindow, targetOrigin, {
|
|
54
67
|
secretKey,
|
|
55
|
-
ackTimeout:
|
|
56
|
-
timeout:
|
|
57
|
-
asyncTimeout:
|
|
58
|
-
returnData:
|
|
59
|
-
headers:
|
|
60
|
-
allowedOrigins:
|
|
61
|
-
validateOrigin:
|
|
62
|
-
autoOpen:
|
|
63
|
-
autoAckMaxMetaLength:
|
|
64
|
-
autoAckMaxIdLength:
|
|
68
|
+
ackTimeout: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.ackTimeout,
|
|
69
|
+
timeout: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.timeout,
|
|
70
|
+
asyncTimeout: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.asyncTimeout,
|
|
71
|
+
returnData: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.returnData,
|
|
72
|
+
headers: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.headers,
|
|
73
|
+
allowedOrigins: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.allowedOrigins,
|
|
74
|
+
validateOrigin: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.validateOrigin,
|
|
75
|
+
autoOpen: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoOpen,
|
|
76
|
+
autoAckMaxMetaLength: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoAckMaxMetaLength,
|
|
77
|
+
autoAckMaxIdLength: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoAckMaxIdLength
|
|
65
78
|
}, instanceId);
|
|
66
79
|
|
|
67
80
|
/**
|
|
@@ -69,11 +82,21 @@ function requestIframeClient(target, options) {
|
|
|
69
82
|
* - default: only warn/error will be printed (logger default)
|
|
70
83
|
* - if trace enabled: raise log level and (optionally) enable detailed debug interceptors
|
|
71
84
|
*/
|
|
72
|
-
if (
|
|
73
|
-
var level =
|
|
85
|
+
if (resolvedOptions !== null && resolvedOptions !== void 0 && resolvedOptions.trace) {
|
|
86
|
+
var level = resolvedOptions.trace === true ? _constants.LogLevel.TRACE : resolvedOptions.trace;
|
|
74
87
|
(0, _logger.setRequestIframeLogLevel)(level);
|
|
75
88
|
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
76
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Lazy-load debug hooks to keep main bundle smaller, but still ensure
|
|
91
|
+
* the first request in trace mode won't miss debug interceptors.
|
|
92
|
+
*/
|
|
93
|
+
(0, _debugLazy.wrapClientMethodsForDebug)(client);
|
|
94
|
+
// Preheat import early (best-effort)
|
|
95
|
+
void (0, _debugLazy.loadDebugModule)().catch(() => {
|
|
96
|
+
/** ignore */
|
|
97
|
+
});
|
|
98
|
+
// Attach ASAP (best-effort)
|
|
99
|
+
void (0, _debugLazy.ensureClientDebugInterceptors)(client);
|
|
77
100
|
}
|
|
78
101
|
}
|
|
79
102
|
return client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/api/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAYlB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,MAAM,4BAA4B,GAAG,0BAA0B,GAAG,0BAA0B,CAAC;AAsMnG;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,4BAA4B,GACrC,qBAAqB,CA8CvB"}
|
package/library/api/endpoint.js
CHANGED
|
@@ -12,9 +12,11 @@ var _id = require("../utils/id");
|
|
|
12
12
|
var _window = require("../utils/window");
|
|
13
13
|
var _client = require("../impl/client");
|
|
14
14
|
var _server = require("../impl/server");
|
|
15
|
-
var _debug = require("../utils/debug");
|
|
16
15
|
var _logger = require("../utils/logger");
|
|
17
16
|
var _constants = require("../constants");
|
|
17
|
+
var _warnings = require("../utils/warnings");
|
|
18
|
+
var _debugLazy = require("../utils/debug-lazy");
|
|
19
|
+
var _strictMode = require("../utils/strict-mode");
|
|
18
20
|
/**
|
|
19
21
|
* Endpoint facade type (client + server).
|
|
20
22
|
*/
|
|
@@ -77,7 +79,11 @@ class RequestIframeEndpointApiFacade {
|
|
|
77
79
|
var level = options.trace === true ? _constants.LogLevel.TRACE : options.trace;
|
|
78
80
|
(0, _logger.setRequestIframeLogLevel)(level);
|
|
79
81
|
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
80
|
-
(0,
|
|
82
|
+
(0, _debugLazy.wrapClientMethodsForDebug)(client);
|
|
83
|
+
void (0, _debugLazy.loadDebugModule)().catch(() => {
|
|
84
|
+
/** ignore */
|
|
85
|
+
});
|
|
86
|
+
void (0, _debugLazy.ensureClientDebugInterceptors)(client);
|
|
81
87
|
}
|
|
82
88
|
}
|
|
83
89
|
this.client_ = client;
|
|
@@ -112,7 +118,9 @@ class RequestIframeEndpointApiFacade {
|
|
|
112
118
|
var level = options.trace === true ? _constants.LogLevel.TRACE : options.trace;
|
|
113
119
|
(0, _logger.setRequestIframeLogLevel)(level);
|
|
114
120
|
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
115
|
-
(0,
|
|
121
|
+
void (0, _debugLazy.loadDebugModule)().then(m => m.setupServerDebugListeners(server)).catch(() => {
|
|
122
|
+
/** ignore */
|
|
123
|
+
});
|
|
116
124
|
}
|
|
117
125
|
}
|
|
118
126
|
this.server_ = server;
|
|
@@ -198,13 +206,13 @@ class RequestIframeEndpointApiFacade {
|
|
|
198
206
|
* - handle requests from the peer (server)
|
|
199
207
|
*/
|
|
200
208
|
function requestIframeEndpoint(target, options) {
|
|
201
|
-
var
|
|
209
|
+
var _applyStrictServerSec, _resolvedClient$optio, _resolvedClient$optio2, _resolvedOptions$id;
|
|
202
210
|
var targetWindow = null;
|
|
203
|
-
var
|
|
211
|
+
var defaultTargetOrigin = _constants.OriginConstant.ANY;
|
|
204
212
|
if (target.tagName === 'IFRAME') {
|
|
205
213
|
var iframe = target;
|
|
206
214
|
targetWindow = iframe.contentWindow;
|
|
207
|
-
|
|
215
|
+
defaultTargetOrigin = (0, _iframe.getIframeTargetOrigin)(iframe);
|
|
208
216
|
if (!targetWindow) {
|
|
209
217
|
throw {
|
|
210
218
|
message: _constants.Messages.IFRAME_NOT_READY,
|
|
@@ -213,23 +221,32 @@ function requestIframeEndpoint(target, options) {
|
|
|
213
221
|
}
|
|
214
222
|
} else {
|
|
215
223
|
targetWindow = target;
|
|
216
|
-
|
|
224
|
+
defaultTargetOrigin = _constants.OriginConstant.ANY;
|
|
217
225
|
}
|
|
226
|
+
var resolvedClient = (0, _strictMode.applyStrictClientSecurityDefaults)(defaultTargetOrigin, options);
|
|
227
|
+
var targetOrigin = resolvedClient.targetOrigin;
|
|
228
|
+
var resolvedOptions = (_applyStrictServerSec = (0, _strictMode.applyStrictServerSecurityDefaults)((_resolvedClient$optio = resolvedClient.options) !== null && _resolvedClient$optio !== void 0 ? _resolvedClient$optio : options)) !== null && _applyStrictServerSec !== void 0 ? _applyStrictServerSec : (_resolvedClient$optio2 = resolvedClient.options) !== null && _resolvedClient$optio2 !== void 0 ? _resolvedClient$optio2 : options;
|
|
218
229
|
|
|
219
|
-
/**
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
230
|
+
/**
|
|
231
|
+
* P1: warn on unsafe default targetOrigin for Window targets.
|
|
232
|
+
* Endpoint facade is lazy (client/server created later), so warn here.
|
|
233
|
+
*/
|
|
234
|
+
(0, _warnings.warnUnsafeTargetOriginForWindow)({
|
|
235
|
+
isIframeTarget: target.tagName === 'IFRAME',
|
|
236
|
+
targetOrigin,
|
|
237
|
+
allowedOrigins: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.allowedOrigins,
|
|
238
|
+
validateOrigin: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.validateOrigin
|
|
239
|
+
});
|
|
223
240
|
|
|
224
241
|
/**
|
|
225
242
|
* Endpoint uses ONE shared id by default, so it behaves like a single endpoint.
|
|
226
243
|
* If options.id is provided, it becomes the shared id for both client+server.
|
|
227
244
|
*/
|
|
228
|
-
var endpointId = (
|
|
245
|
+
var endpointId = (_resolvedOptions$id = resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.id) !== null && _resolvedOptions$id !== void 0 ? _resolvedOptions$id : (0, _id.generateInstanceId)();
|
|
229
246
|
return new RequestIframeEndpointApiFacade({
|
|
230
247
|
targetWindow,
|
|
231
248
|
targetOrigin,
|
|
232
|
-
options,
|
|
249
|
+
options: resolvedOptions,
|
|
233
250
|
endpointId
|
|
234
251
|
});
|
|
235
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAQ3E;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,mBAAmB,CAsDrB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,CAAC,EAAE,MAAM,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACjD,IAAI,CAGN"}
|
package/library/api/server.js
CHANGED
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.clearRequestIframeServerCache = clearRequestIframeServerCache;
|
|
7
7
|
exports.requestIframeServer = requestIframeServer;
|
|
8
8
|
var _server = require("../impl/server");
|
|
9
|
-
var _debug = require("../utils/debug");
|
|
10
9
|
var _logger = require("../utils/logger");
|
|
11
10
|
var _cache = require("../utils/cache");
|
|
12
11
|
var _constants = require("../constants");
|
|
12
|
+
var _debugLazy = require("../utils/debug-lazy");
|
|
13
|
+
var _strictMode = require("../utils/strict-mode");
|
|
13
14
|
/**
|
|
14
15
|
* Create a server (for receiving and handling requests)
|
|
15
16
|
*
|
|
@@ -20,9 +21,11 @@ var _constants = require("../constants");
|
|
|
20
21
|
* - This allows different versions of the library to coexist
|
|
21
22
|
*/
|
|
22
23
|
function requestIframeServer(options) {
|
|
24
|
+
var _applyStrictServerSec;
|
|
25
|
+
var resolvedOptions = (_applyStrictServerSec = (0, _strictMode.applyStrictServerSecurityDefaults)(options)) !== null && _applyStrictServerSec !== void 0 ? _applyStrictServerSec : options;
|
|
23
26
|
// Determine secretKey and id
|
|
24
|
-
var secretKey =
|
|
25
|
-
var id =
|
|
27
|
+
var secretKey = resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.secretKey;
|
|
28
|
+
var id = resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.id;
|
|
26
29
|
|
|
27
30
|
// If id is specified, check cache first
|
|
28
31
|
if (id) {
|
|
@@ -36,13 +39,13 @@ function requestIframeServer(options) {
|
|
|
36
39
|
var server = new _server.RequestIframeServerImpl({
|
|
37
40
|
secretKey,
|
|
38
41
|
id,
|
|
39
|
-
ackTimeout:
|
|
40
|
-
autoOpen:
|
|
41
|
-
allowedOrigins:
|
|
42
|
-
validateOrigin:
|
|
43
|
-
maxConcurrentRequestsPerClient:
|
|
44
|
-
autoAckMaxMetaLength:
|
|
45
|
-
autoAckMaxIdLength:
|
|
42
|
+
ackTimeout: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.ackTimeout,
|
|
43
|
+
autoOpen: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoOpen,
|
|
44
|
+
allowedOrigins: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.allowedOrigins,
|
|
45
|
+
validateOrigin: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.validateOrigin,
|
|
46
|
+
maxConcurrentRequestsPerClient: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.maxConcurrentRequestsPerClient,
|
|
47
|
+
autoAckMaxMetaLength: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoAckMaxMetaLength,
|
|
48
|
+
autoAckMaxIdLength: resolvedOptions === null || resolvedOptions === void 0 ? void 0 : resolvedOptions.autoAckMaxIdLength
|
|
46
49
|
});
|
|
47
50
|
|
|
48
51
|
/**
|
|
@@ -50,11 +53,17 @@ function requestIframeServer(options) {
|
|
|
50
53
|
* - default: only warn/error will be printed (logger default)
|
|
51
54
|
* - if trace enabled: raise log level and (optionally) enable detailed debug listeners
|
|
52
55
|
*/
|
|
53
|
-
if (
|
|
54
|
-
var level =
|
|
56
|
+
if (resolvedOptions !== null && resolvedOptions !== void 0 && resolvedOptions.trace) {
|
|
57
|
+
var level = resolvedOptions.trace === true ? _constants.LogLevel.TRACE : resolvedOptions.trace;
|
|
55
58
|
(0, _logger.setRequestIframeLogLevel)(level);
|
|
56
59
|
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
57
|
-
|
|
60
|
+
/**
|
|
61
|
+
* Lazy-load debug hooks to keep main bundle smaller.
|
|
62
|
+
* Best-effort: ignore dynamic import errors.
|
|
63
|
+
*/
|
|
64
|
+
void (0, _debugLazy.loadDebugModule)().then(m => m.setupServerDebugListeners(server)).catch(() => {
|
|
65
|
+
/** ignore */
|
|
66
|
+
});
|
|
58
67
|
}
|
|
59
68
|
}
|
|
60
69
|
|
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
export declare const WarnOnceKey: {
|
|
7
7
|
readonly INBOX_MISSING_PENDING_WHEN_CLOSED: "inbox:missingPendingWhenClosed";
|
|
8
8
|
readonly SERVER_MISSING_PENDING_WHEN_CLOSED: "server:missingPendingWhenClosed";
|
|
9
|
+
/**
|
|
10
|
+
* Security warning:
|
|
11
|
+
* - targetOrigin is '*'
|
|
12
|
+
* - and no allowedOrigins/validateOrigin is configured
|
|
13
|
+
*/
|
|
14
|
+
readonly TARGET_ORIGIN_ANY_WITHOUT_ORIGIN_VALIDATION: "targetOrigin:anyWithoutOriginValidation";
|
|
9
15
|
};
|
|
10
16
|
export type WarnOnceKeyValue = typeof WarnOnceKey[keyof typeof WarnOnceKey];
|
|
11
17
|
export declare function buildWarnOnceKey(prefix: WarnOnceKeyValue, ...parts: Array<string | number>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warn-once.d.ts","sourceRoot":"","sources":["../../src/constants/warn-once.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,WAAW;;;
|
|
1
|
+
{"version":3,"file":"warn-once.d.ts","sourceRoot":"","sources":["../../src/constants/warn-once.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,WAAW;;;IAGtB;;;;OAIG;;CAEK,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAGnG"}
|
|
@@ -14,7 +14,13 @@ require("core-js/modules/es.array.map.js");
|
|
|
14
14
|
|
|
15
15
|
var WarnOnceKey = exports.WarnOnceKey = {
|
|
16
16
|
INBOX_MISSING_PENDING_WHEN_CLOSED: 'inbox:missingPendingWhenClosed',
|
|
17
|
-
SERVER_MISSING_PENDING_WHEN_CLOSED: 'server:missingPendingWhenClosed'
|
|
17
|
+
SERVER_MISSING_PENDING_WHEN_CLOSED: 'server:missingPendingWhenClosed',
|
|
18
|
+
/**
|
|
19
|
+
* Security warning:
|
|
20
|
+
* - targetOrigin is '*'
|
|
21
|
+
* - and no allowedOrigins/validateOrigin is configured
|
|
22
|
+
*/
|
|
23
|
+
TARGET_ORIGIN_ANY_WITHOUT_ORIGIN_VALIDATION: 'targetOrigin:anyWithoutOriginValidation'
|
|
18
24
|
};
|
|
19
25
|
function buildWarnOnceKey(prefix, ...parts) {
|
|
20
26
|
if (!parts.length) return prefix;
|
|
@@ -12,5 +12,4 @@ export { RequestIframeEndpointFacade } from './facade';
|
|
|
12
12
|
export { createStreamMessageHandler } from './stream/handler';
|
|
13
13
|
export { buildStreamStartTimeoutErrorPayload } from './stream/errors';
|
|
14
14
|
export { autoResolveIframeFileReadableStream, parseFilenameFromContentDisposition } from './stream/file-auto-resolve';
|
|
15
|
-
export { createIframeFileWritableStreamFromContent } from './stream/file-writable';
|
|
16
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoint/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -57,12 +57,6 @@ Object.defineProperty(exports, "buildStreamStartTimeoutErrorPayload", {
|
|
|
57
57
|
return _errors.buildStreamStartTimeoutErrorPayload;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
-
Object.defineProperty(exports, "createIframeFileWritableStreamFromContent", {
|
|
61
|
-
enumerable: true,
|
|
62
|
-
get: function get() {
|
|
63
|
-
return _fileWritable.createIframeFileWritableStreamFromContent;
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
60
|
Object.defineProperty(exports, "createPingResponder", {
|
|
67
61
|
enumerable: true,
|
|
68
62
|
get: function get() {
|
|
@@ -110,5 +104,4 @@ var _factory = require("./stream/factory");
|
|
|
110
104
|
var _facade = require("./facade");
|
|
111
105
|
var _handler = require("./stream/handler");
|
|
112
106
|
var _errors = require("./stream/errors");
|
|
113
|
-
var _fileAutoResolve = require("./stream/file-auto-resolve");
|
|
114
|
-
var _fileWritable = require("./stream/file-writable");
|
|
107
|
+
var _fileAutoResolve = require("./stream/file-auto-resolve");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/endpoint/infra/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/endpoint/infra/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAqB5D;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IACrC,gBAAuB,gBAAgB,2BAA2B;IAClE,gBAAuB,kBAAkB,4BAA4B;IAErE,SAAgB,KAAK;;;qBAEkD,MAAM;;;;;MAI3E;IAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAEjC,GAAG,EAAE,wBAAwB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IAKrF;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAe/B;;;;;OAKG;IACI,aAAa,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,2BAA2B,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QACrC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC;KAC/F,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBpB;;OAEG;IACI,sBAAsB,CAC3B,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,EACf,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,GAC5F,IAAI;IAKP;;OAEG;IACI,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKxD,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqE5B;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAiCnB"}
|
|
@@ -12,7 +12,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
12
12
|
var _constants = require("../../constants");
|
|
13
13
|
var _ping = require("../heartbeat/ping");
|
|
14
14
|
var _hooks = require("../../utils/hooks");
|
|
15
|
-
var
|
|
15
|
+
var _warnings = require("../../utils/warnings");
|
|
16
16
|
/**
|
|
17
17
|
* Pending request awaiting response
|
|
18
18
|
*/
|
|
@@ -168,8 +168,9 @@ class RequestIframeEndpointInbox {
|
|
|
168
168
|
*/
|
|
169
169
|
if (!this.hub.isOpen) {
|
|
170
170
|
this.hooks.missingPending.call(data, context);
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
(0, _warnings.warnClientServerIgnoredMessageWhenClosedOnce)(this.hub, {
|
|
172
|
+
type: data.type,
|
|
173
|
+
requestId: data.requestId
|
|
173
174
|
});
|
|
174
175
|
}
|
|
175
176
|
return;
|
|
@@ -53,6 +53,8 @@ export interface RequestIframeOutboxSendFileParams<TResult> extends RequestIfram
|
|
|
53
53
|
fileName?: string;
|
|
54
54
|
mimeType?: string;
|
|
55
55
|
chunked?: boolean;
|
|
56
|
+
/** Chunk size in bytes (only used when chunked is true). */
|
|
57
|
+
chunkSize?: number;
|
|
56
58
|
autoResolve?: boolean;
|
|
57
59
|
defaultFileName?: string;
|
|
58
60
|
defaultMimeType?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../../src/endpoint/infra/outbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../../src/endpoint/infra/outbox.ts"],"names":[],"mappings":"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"}
|