request-iframe 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/QUICKSTART.CN.md +4 -2
- package/QUICKSTART.md +4 -2
- package/README.CN.md +302 -54
- package/README.md +281 -36
- package/cdn/request-iframe-react.umd.js +3354 -0
- package/cdn/request-iframe-react.umd.js.map +1 -0
- package/cdn/request-iframe-react.umd.min.js +2 -0
- package/cdn/request-iframe-react.umd.min.js.map +1 -0
- package/cdn/request-iframe.umd.js +19735 -0
- package/cdn/request-iframe.umd.js.map +1 -0
- package/cdn/request-iframe.umd.min.js +4 -0
- package/cdn/request-iframe.umd.min.js.map +1 -0
- package/esm/api/client.js +31 -22
- package/esm/api/endpoint.js +229 -0
- package/esm/api/server.js +19 -9
- package/esm/constants/debug.js +17 -0
- package/esm/constants/index.js +115 -66
- package/esm/constants/log.js +11 -0
- package/esm/constants/messages.js +6 -1
- package/esm/constants/warn-once.js +15 -0
- package/esm/endpoint/facade.js +390 -0
- package/esm/endpoint/heartbeat/heartbeat.js +60 -0
- package/esm/endpoint/heartbeat/ping.js +20 -0
- package/esm/endpoint/index.js +13 -0
- package/esm/endpoint/infra/hub.js +316 -0
- package/esm/endpoint/infra/inbox.js +232 -0
- package/esm/endpoint/infra/outbox.js +408 -0
- package/esm/endpoint/stream/dispatcher.js +58 -0
- package/esm/endpoint/stream/errors.js +27 -0
- package/esm/endpoint/stream/factory.js +76 -0
- package/esm/endpoint/stream/file-auto-resolve.js +34 -0
- package/esm/endpoint/stream/file-writable.js +105 -0
- package/esm/endpoint/stream/handler.js +26 -0
- package/esm/{core → impl}/client.js +243 -320
- package/esm/{core → impl}/response.js +120 -154
- package/esm/impl/server.js +568 -0
- package/esm/index.js +13 -6
- package/esm/message/ack.js +27 -0
- package/esm/message/channel-cache.js +108 -0
- package/esm/message/channel.js +92 -5
- package/esm/message/dispatcher.js +149 -98
- package/esm/stream/error.js +22 -0
- package/esm/stream/index.js +3 -1
- package/esm/stream/readable-stream.js +101 -26
- package/esm/stream/stream-core.js +121 -3
- package/esm/stream/writable-stream.js +368 -43
- package/esm/utils/ack.js +36 -0
- package/esm/utils/blob.js +16 -0
- package/esm/utils/cache.js +25 -76
- package/esm/utils/content-type.js +81 -0
- package/esm/utils/debug.js +157 -180
- package/esm/utils/hooks.js +130 -0
- package/esm/utils/id.js +14 -0
- package/esm/utils/iframe.js +20 -0
- package/esm/utils/index.js +12 -162
- package/esm/utils/is.js +3 -0
- package/esm/utils/logger.js +55 -0
- package/esm/utils/origin.js +3 -1
- package/esm/utils/promise.js +3 -0
- package/esm/utils/window.js +31 -0
- package/library/api/client.d.ts.map +1 -1
- package/library/api/client.js +32 -23
- package/library/api/endpoint.d.ts +23 -0
- package/library/api/endpoint.d.ts.map +1 -0
- package/library/api/endpoint.js +235 -0
- package/library/api/server.d.ts +4 -1
- package/library/api/server.d.ts.map +1 -1
- package/library/api/server.js +19 -9
- package/library/constants/debug.d.ts +18 -0
- package/library/constants/debug.d.ts.map +1 -0
- package/library/constants/debug.js +23 -0
- package/library/constants/index.d.ts +58 -7
- package/library/constants/index.d.ts.map +1 -1
- package/library/constants/index.js +143 -67
- package/library/constants/log.d.ts +12 -0
- package/library/constants/log.d.ts.map +1 -0
- package/library/constants/log.js +17 -0
- package/library/constants/messages.d.ts +6 -1
- package/library/constants/messages.d.ts.map +1 -1
- package/library/constants/messages.js +6 -1
- package/library/constants/warn-once.d.ts +12 -0
- package/library/constants/warn-once.d.ts.map +1 -0
- package/library/constants/warn-once.js +22 -0
- package/library/endpoint/facade.d.ts +238 -0
- package/library/endpoint/facade.d.ts.map +1 -0
- package/library/endpoint/facade.js +398 -0
- package/library/endpoint/heartbeat/heartbeat.d.ts +34 -0
- package/library/endpoint/heartbeat/heartbeat.d.ts.map +1 -0
- package/library/endpoint/heartbeat/heartbeat.js +67 -0
- package/library/endpoint/heartbeat/ping.d.ts +18 -0
- package/library/endpoint/heartbeat/ping.d.ts.map +1 -0
- package/library/endpoint/heartbeat/ping.js +26 -0
- package/library/endpoint/index.d.ts +16 -0
- package/library/endpoint/index.d.ts.map +1 -0
- package/library/endpoint/index.js +114 -0
- package/library/endpoint/infra/hub.d.ts +170 -0
- package/library/endpoint/infra/hub.d.ts.map +1 -0
- package/library/endpoint/infra/hub.js +323 -0
- package/library/endpoint/infra/inbox.d.ts +73 -0
- package/library/endpoint/infra/inbox.d.ts.map +1 -0
- package/library/endpoint/infra/inbox.js +239 -0
- package/library/endpoint/infra/outbox.d.ts +149 -0
- package/library/endpoint/infra/outbox.d.ts.map +1 -0
- package/library/endpoint/infra/outbox.js +415 -0
- package/library/endpoint/stream/dispatcher.d.ts +33 -0
- package/library/endpoint/stream/dispatcher.d.ts.map +1 -0
- package/library/endpoint/stream/dispatcher.js +66 -0
- package/library/endpoint/stream/errors.d.ts +20 -0
- package/library/endpoint/stream/errors.d.ts.map +1 -0
- package/library/endpoint/stream/errors.js +32 -0
- package/library/endpoint/stream/factory.d.ts +44 -0
- package/library/endpoint/stream/factory.d.ts.map +1 -0
- package/library/endpoint/stream/factory.js +82 -0
- package/library/endpoint/stream/file-auto-resolve.d.ts +26 -0
- package/library/endpoint/stream/file-auto-resolve.d.ts.map +1 -0
- package/library/endpoint/stream/file-auto-resolve.js +41 -0
- package/library/endpoint/stream/file-writable.d.ts +33 -0
- package/library/endpoint/stream/file-writable.d.ts.map +1 -0
- package/library/endpoint/stream/file-writable.js +115 -0
- package/library/endpoint/stream/handler.d.ts +20 -0
- package/library/endpoint/stream/handler.d.ts.map +1 -0
- package/library/endpoint/stream/handler.js +32 -0
- package/library/{core → impl}/client.d.ts +16 -13
- package/library/impl/client.d.ts.map +1 -0
- package/library/{core → impl}/client.js +254 -333
- package/library/{core → impl}/request.d.ts.map +1 -1
- package/library/{core → impl}/response.d.ts +7 -12
- package/library/impl/response.d.ts.map +1 -0
- package/library/{core → impl}/response.js +120 -154
- package/library/{core → impl}/server.d.ts +26 -55
- package/library/impl/server.d.ts.map +1 -0
- package/library/impl/server.js +575 -0
- package/library/index.d.ts +13 -6
- package/library/index.d.ts.map +1 -1
- package/library/index.js +16 -16
- package/library/message/ack.d.ts +15 -0
- package/library/message/ack.d.ts.map +1 -0
- package/library/message/ack.js +33 -0
- package/library/message/channel-cache.d.ts +26 -0
- package/library/message/channel-cache.d.ts.map +1 -0
- package/library/message/channel-cache.js +115 -0
- package/library/message/channel.d.ts +53 -6
- package/library/message/channel.d.ts.map +1 -1
- package/library/message/channel.js +96 -9
- package/library/message/dispatcher.d.ts +17 -0
- package/library/message/dispatcher.d.ts.map +1 -1
- package/library/message/dispatcher.js +149 -98
- package/library/stream/error.d.ts +24 -0
- package/library/stream/error.d.ts.map +1 -0
- package/library/stream/error.js +29 -0
- package/library/stream/index.d.ts +4 -1
- package/library/stream/index.d.ts.map +1 -1
- package/library/stream/index.js +7 -4
- package/library/stream/readable-stream.d.ts.map +1 -1
- package/library/stream/readable-stream.js +102 -27
- package/library/stream/stream-core.d.ts +22 -1
- package/library/stream/stream-core.d.ts.map +1 -1
- package/library/stream/stream-core.js +120 -2
- package/library/stream/types.d.ts +115 -2
- package/library/stream/types.d.ts.map +1 -1
- package/library/stream/writable-stream.d.ts +20 -2
- package/library/stream/writable-stream.d.ts.map +1 -1
- package/library/stream/writable-stream.js +366 -41
- package/library/types/index.d.ts +17 -22
- package/library/types/index.d.ts.map +1 -1
- package/library/utils/ack.d.ts +2 -0
- package/library/utils/ack.d.ts.map +1 -0
- package/library/utils/ack.js +44 -0
- package/library/utils/blob.d.ts +3 -0
- package/library/utils/blob.d.ts.map +1 -0
- package/library/utils/blob.js +22 -0
- package/library/utils/cache.d.ts +10 -20
- package/library/utils/cache.d.ts.map +1 -1
- package/library/utils/cache.js +25 -79
- package/library/utils/content-type.d.ts +13 -0
- package/library/utils/content-type.d.ts.map +1 -0
- package/library/utils/content-type.js +87 -0
- package/library/utils/debug.d.ts.map +1 -1
- package/library/utils/debug.js +156 -178
- package/library/utils/hooks.d.ts +30 -0
- package/library/utils/hooks.d.ts.map +1 -0
- package/library/utils/hooks.js +139 -0
- package/library/utils/id.d.ts +9 -0
- package/library/utils/id.d.ts.map +1 -0
- package/library/utils/id.js +21 -0
- package/library/utils/iframe.d.ts +5 -0
- package/library/utils/iframe.d.ts.map +1 -0
- package/library/utils/iframe.js +25 -0
- package/library/utils/index.d.ts +7 -34
- package/library/utils/index.d.ts.map +1 -1
- package/library/utils/index.js +58 -193
- package/library/utils/is.d.ts +2 -0
- package/library/utils/is.d.ts.map +1 -0
- package/library/utils/is.js +9 -0
- package/library/utils/logger.d.ts +13 -0
- package/library/utils/logger.d.ts.map +1 -0
- package/library/utils/logger.js +63 -0
- package/library/utils/origin.d.ts.map +1 -1
- package/library/utils/origin.js +2 -1
- package/library/utils/promise.d.ts +2 -0
- package/library/utils/promise.d.ts.map +1 -0
- package/library/utils/promise.js +9 -0
- package/library/utils/window.d.ts +2 -0
- package/library/utils/window.d.ts.map +1 -0
- package/library/utils/window.js +38 -0
- package/package.json +49 -2
- package/react/package.json +2 -1
- package/esm/core/client-server.js +0 -329
- package/esm/core/server.js +0 -767
- package/esm/utils/ack-meta.js +0 -53
- package/library/core/client-server.d.ts +0 -106
- package/library/core/client-server.d.ts.map +0 -1
- package/library/core/client-server.js +0 -336
- package/library/core/client.d.ts.map +0 -1
- package/library/core/response.d.ts.map +0 -1
- package/library/core/server.d.ts.map +0 -1
- package/library/core/server.js +0 -772
- package/library/utils/ack-meta.d.ts +0 -2
- package/library/utils/ack-meta.d.ts.map +0 -1
- package/library/utils/ack-meta.js +0 -59
- /package/esm/{core → impl}/request.js +0 -0
- /package/library/{core → impl}/request.d.ts +0 -0
- /package/library/{core → impl}/request.js +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.requestIframeEndpoint = requestIframeEndpoint;
|
|
8
|
+
require("core-js/modules/es.array.map.js");
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
|
+
var _iframe = require("../utils/iframe");
|
|
11
|
+
var _id = require("../utils/id");
|
|
12
|
+
var _window = require("../utils/window");
|
|
13
|
+
var _client = require("../impl/client");
|
|
14
|
+
var _server = require("../impl/server");
|
|
15
|
+
var _debug = require("../utils/debug");
|
|
16
|
+
var _logger = require("../utils/logger");
|
|
17
|
+
var _constants = require("../constants");
|
|
18
|
+
/**
|
|
19
|
+
* Endpoint facade type (client + server).
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Endpoint facade options (client + server).
|
|
24
|
+
*
|
|
25
|
+
* - For client-side sending: uses RequestIframeClientOptions fields (targetOrigin, headers, etc.)
|
|
26
|
+
* - For server-side handling: uses RequestIframeServerOptions fields (middlewares, allowedOrigins, etc.)
|
|
27
|
+
*
|
|
28
|
+
* Note: overlapping fields (autoOpen/trace/allowedOrigins/validateOrigin/ackTimeout/autoAckMax*) apply to both sides.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
class RequestIframeEndpointApiFacade {
|
|
32
|
+
constructor(params) {
|
|
33
|
+
var _params$options;
|
|
34
|
+
(0, _defineProperty2.default)(this, "desiredOpen_", true);
|
|
35
|
+
/** Client send APIs */
|
|
36
|
+
(0, _defineProperty2.default)(this, "send", (path, body, options) => this.getClient().send(path, body, options));
|
|
37
|
+
(0, _defineProperty2.default)(this, "sendFile", (path, content, options) => this.getClient().sendFile(path, content, options));
|
|
38
|
+
(0, _defineProperty2.default)(this, "sendStream", (path, stream, options) => this.getClient().sendStream(path, stream, options));
|
|
39
|
+
(0, _defineProperty2.default)(this, "isConnect", () => this.getClient().isConnect());
|
|
40
|
+
(0, _defineProperty2.default)(this, "getCookies", path => this.getClient().getCookies(path));
|
|
41
|
+
(0, _defineProperty2.default)(this, "getCookie", (name, path) => this.getClient().getCookie(name, path));
|
|
42
|
+
(0, _defineProperty2.default)(this, "setCookie", (name, value, options) => this.getClient().setCookie(name, value, options));
|
|
43
|
+
(0, _defineProperty2.default)(this, "removeCookie", (name, path) => this.getClient().removeCookie(name, path));
|
|
44
|
+
(0, _defineProperty2.default)(this, "clearCookies", () => this.getClient().clearCookies());
|
|
45
|
+
/** Server routing/middleware APIs */
|
|
46
|
+
(0, _defineProperty2.default)(this, "use", (pathOrMiddleware, middleware) => this.getServer().use(pathOrMiddleware, middleware));
|
|
47
|
+
(0, _defineProperty2.default)(this, "on", (path, handler) => this.getServer().on(path, handler));
|
|
48
|
+
(0, _defineProperty2.default)(this, "off", path => this.getServer().off(path));
|
|
49
|
+
(0, _defineProperty2.default)(this, "map", handlers => this.getServer().map(handlers));
|
|
50
|
+
this.targetWindow_ = params.targetWindow;
|
|
51
|
+
this.targetOrigin_ = params.targetOrigin;
|
|
52
|
+
this.options_ = params.options;
|
|
53
|
+
this.endpointId_ = params.endpointId;
|
|
54
|
+
this.desiredOpen_ = ((_params$options = params.options) === null || _params$options === void 0 ? void 0 : _params$options.autoOpen) !== false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Lazy create client.
|
|
59
|
+
*/
|
|
60
|
+
getClient() {
|
|
61
|
+
if (!this.client_) {
|
|
62
|
+
var options = this.options_;
|
|
63
|
+
var client = new _client.RequestIframeClientImpl(this.targetWindow_, this.targetOrigin_, {
|
|
64
|
+
secretKey: options === null || options === void 0 ? void 0 : options.secretKey,
|
|
65
|
+
ackTimeout: options === null || options === void 0 ? void 0 : options.ackTimeout,
|
|
66
|
+
timeout: options === null || options === void 0 ? void 0 : options.timeout,
|
|
67
|
+
asyncTimeout: options === null || options === void 0 ? void 0 : options.asyncTimeout,
|
|
68
|
+
returnData: options === null || options === void 0 ? void 0 : options.returnData,
|
|
69
|
+
headers: options === null || options === void 0 ? void 0 : options.headers,
|
|
70
|
+
allowedOrigins: options === null || options === void 0 ? void 0 : options.allowedOrigins,
|
|
71
|
+
validateOrigin: options === null || options === void 0 ? void 0 : options.validateOrigin,
|
|
72
|
+
autoOpen: false,
|
|
73
|
+
autoAckMaxMetaLength: options === null || options === void 0 ? void 0 : options.autoAckMaxMetaLength,
|
|
74
|
+
autoAckMaxIdLength: options === null || options === void 0 ? void 0 : options.autoAckMaxIdLength
|
|
75
|
+
}, this.endpointId_);
|
|
76
|
+
if (options !== null && options !== void 0 && options.trace) {
|
|
77
|
+
var level = options.trace === true ? _constants.LogLevel.TRACE : options.trace;
|
|
78
|
+
(0, _logger.setRequestIframeLogLevel)(level);
|
|
79
|
+
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
80
|
+
(0, _debug.setupClientDebugInterceptors)(client);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
this.client_ = client;
|
|
84
|
+
}
|
|
85
|
+
if (this.desiredOpen_ && !this.client_.isOpen) {
|
|
86
|
+
this.client_.open();
|
|
87
|
+
}
|
|
88
|
+
if (!this.desiredOpen_ && this.client_.isOpen) {
|
|
89
|
+
this.client_.close();
|
|
90
|
+
}
|
|
91
|
+
return this.client_;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Lazy create server.
|
|
96
|
+
*/
|
|
97
|
+
getServer() {
|
|
98
|
+
if (!this.server_) {
|
|
99
|
+
var options = this.options_;
|
|
100
|
+
var server = new _server.RequestIframeServerImpl({
|
|
101
|
+
secretKey: options === null || options === void 0 ? void 0 : options.secretKey,
|
|
102
|
+
id: this.endpointId_,
|
|
103
|
+
ackTimeout: options === null || options === void 0 ? void 0 : options.ackTimeout,
|
|
104
|
+
autoOpen: false,
|
|
105
|
+
allowedOrigins: options === null || options === void 0 ? void 0 : options.allowedOrigins,
|
|
106
|
+
validateOrigin: options === null || options === void 0 ? void 0 : options.validateOrigin,
|
|
107
|
+
maxConcurrentRequestsPerClient: options === null || options === void 0 ? void 0 : options.maxConcurrentRequestsPerClient,
|
|
108
|
+
autoAckMaxMetaLength: options === null || options === void 0 ? void 0 : options.autoAckMaxMetaLength,
|
|
109
|
+
autoAckMaxIdLength: options === null || options === void 0 ? void 0 : options.autoAckMaxIdLength
|
|
110
|
+
});
|
|
111
|
+
if (options !== null && options !== void 0 && options.trace) {
|
|
112
|
+
var level = options.trace === true ? _constants.LogLevel.TRACE : options.trace;
|
|
113
|
+
(0, _logger.setRequestIframeLogLevel)(level);
|
|
114
|
+
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
115
|
+
(0, _debug.setupServerDebugListeners)(server);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
this.server_ = server;
|
|
119
|
+
}
|
|
120
|
+
if (this.desiredOpen_ && !this.server_.isOpen) {
|
|
121
|
+
this.server_.open();
|
|
122
|
+
}
|
|
123
|
+
if (!this.desiredOpen_ && this.server_.isOpen) {
|
|
124
|
+
this.server_.close();
|
|
125
|
+
}
|
|
126
|
+
return this.server_;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Optional accessors for debugging.
|
|
131
|
+
* Note: accessing will trigger lazy creation.
|
|
132
|
+
*/
|
|
133
|
+
get client() {
|
|
134
|
+
return this.getClient();
|
|
135
|
+
}
|
|
136
|
+
get server() {
|
|
137
|
+
return this.getServer();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Client fields */
|
|
141
|
+
get targetWindow() {
|
|
142
|
+
return this.targetWindow_;
|
|
143
|
+
}
|
|
144
|
+
get id() {
|
|
145
|
+
return this.endpointId_;
|
|
146
|
+
}
|
|
147
|
+
get isOpen() {
|
|
148
|
+
/**
|
|
149
|
+
* Facade-level open state.
|
|
150
|
+
* - When client/server is lazily created later, it will follow this state.
|
|
151
|
+
*/
|
|
152
|
+
return this.desiredOpen_;
|
|
153
|
+
}
|
|
154
|
+
get interceptors() {
|
|
155
|
+
return this.getClient().interceptors;
|
|
156
|
+
}
|
|
157
|
+
set interceptors(value) {
|
|
158
|
+
this.getClient().interceptors = value;
|
|
159
|
+
}
|
|
160
|
+
isAvailable() {
|
|
161
|
+
return (0, _window.isWindowAvailable)(this.targetWindow_);
|
|
162
|
+
}
|
|
163
|
+
open() {
|
|
164
|
+
var _this$client_, _this$server_;
|
|
165
|
+
this.desiredOpen_ = true;
|
|
166
|
+
(_this$client_ = this.client_) === null || _this$client_ === void 0 || _this$client_.open();
|
|
167
|
+
(_this$server_ = this.server_) === null || _this$server_ === void 0 || _this$server_.open();
|
|
168
|
+
}
|
|
169
|
+
close() {
|
|
170
|
+
var _this$client_2, _this$server_2;
|
|
171
|
+
this.desiredOpen_ = false;
|
|
172
|
+
(_this$client_2 = this.client_) === null || _this$client_2 === void 0 || _this$client_2.close();
|
|
173
|
+
(_this$server_2 = this.server_) === null || _this$server_2 === void 0 || _this$server_2.close();
|
|
174
|
+
}
|
|
175
|
+
destroy() {
|
|
176
|
+
var _this$client_3, _this$server_3;
|
|
177
|
+
/**
|
|
178
|
+
* Destroy created sides only.
|
|
179
|
+
* They share the underlying MessageChannel via cache ref-counting, so partial creation is safe.
|
|
180
|
+
*/
|
|
181
|
+
(_this$client_3 = this.client_) === null || _this$client_3 === void 0 || _this$client_3.destroy();
|
|
182
|
+
(_this$server_3 = this.server_) === null || _this$server_3 === void 0 || _this$server_3.destroy();
|
|
183
|
+
this.client_ = undefined;
|
|
184
|
+
this.server_ = undefined;
|
|
185
|
+
}
|
|
186
|
+
/** Server fields */
|
|
187
|
+
get secretKey() {
|
|
188
|
+
var _this$options_;
|
|
189
|
+
return (_this$options_ = this.options_) === null || _this$options_ === void 0 ? void 0 : _this$options_.secretKey;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Create an endpoint facade (client + server) for a peer window/iframe.
|
|
195
|
+
*
|
|
196
|
+
* It can:
|
|
197
|
+
* - send requests to the peer (client)
|
|
198
|
+
* - handle requests from the peer (server)
|
|
199
|
+
*/
|
|
200
|
+
function requestIframeEndpoint(target, options) {
|
|
201
|
+
var _options$id;
|
|
202
|
+
var targetWindow = null;
|
|
203
|
+
var targetOrigin = _constants.OriginConstant.ANY;
|
|
204
|
+
if (target.tagName === 'IFRAME') {
|
|
205
|
+
var iframe = target;
|
|
206
|
+
targetWindow = iframe.contentWindow;
|
|
207
|
+
targetOrigin = (0, _iframe.getIframeTargetOrigin)(iframe);
|
|
208
|
+
if (!targetWindow) {
|
|
209
|
+
throw {
|
|
210
|
+
message: _constants.Messages.IFRAME_NOT_READY,
|
|
211
|
+
code: _constants.ErrorCode.IFRAME_NOT_READY
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
} else {
|
|
215
|
+
targetWindow = target;
|
|
216
|
+
targetOrigin = _constants.OriginConstant.ANY;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/** Allow user to override targetOrigin explicitly */
|
|
220
|
+
if (options !== null && options !== void 0 && options.targetOrigin) {
|
|
221
|
+
targetOrigin = options.targetOrigin;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Endpoint uses ONE shared id by default, so it behaves like a single endpoint.
|
|
226
|
+
* If options.id is provided, it becomes the shared id for both client+server.
|
|
227
|
+
*/
|
|
228
|
+
var endpointId = (_options$id = options === null || options === void 0 ? void 0 : options.id) !== null && _options$id !== void 0 ? _options$id : (0, _id.generateInstanceId)();
|
|
229
|
+
return new RequestIframeEndpointApiFacade({
|
|
230
|
+
targetWindow,
|
|
231
|
+
targetOrigin,
|
|
232
|
+
options,
|
|
233
|
+
endpointId
|
|
234
|
+
});
|
|
235
|
+
}
|
package/library/api/server.d.ts
CHANGED
|
@@ -13,5 +13,8 @@ export declare function requestIframeServer(options?: RequestIframeServerOptions
|
|
|
13
13
|
* Clear server cache (for testing or reset)
|
|
14
14
|
* Note: This clears the cached server instances
|
|
15
15
|
*/
|
|
16
|
-
export declare function clearRequestIframeServerCache(
|
|
16
|
+
export declare function clearRequestIframeServerCache(arg?: string | {
|
|
17
|
+
secretKey?: string;
|
|
18
|
+
id?: string;
|
|
19
|
+
}): void;
|
|
17
20
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -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;AAO3E;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,mBAAmB,CA6CrB;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
|
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.clearRequestIframeServerCache = clearRequestIframeServerCache;
|
|
7
7
|
exports.requestIframeServer = requestIframeServer;
|
|
8
|
-
var _server = require("../
|
|
8
|
+
var _server = require("../impl/server");
|
|
9
9
|
var _debug = require("../utils/debug");
|
|
10
|
+
var _logger = require("../utils/logger");
|
|
10
11
|
var _cache = require("../utils/cache");
|
|
12
|
+
var _constants = require("../constants");
|
|
11
13
|
/**
|
|
12
14
|
* Create a server (for receiving and handling requests)
|
|
13
15
|
*
|
|
@@ -38,12 +40,22 @@ function requestIframeServer(options) {
|
|
|
38
40
|
autoOpen: options === null || options === void 0 ? void 0 : options.autoOpen,
|
|
39
41
|
allowedOrigins: options === null || options === void 0 ? void 0 : options.allowedOrigins,
|
|
40
42
|
validateOrigin: options === null || options === void 0 ? void 0 : options.validateOrigin,
|
|
41
|
-
maxConcurrentRequestsPerClient: options === null || options === void 0 ? void 0 : options.maxConcurrentRequestsPerClient
|
|
43
|
+
maxConcurrentRequestsPerClient: options === null || options === void 0 ? void 0 : options.maxConcurrentRequestsPerClient,
|
|
44
|
+
autoAckMaxMetaLength: options === null || options === void 0 ? void 0 : options.autoAckMaxMetaLength,
|
|
45
|
+
autoAckMaxIdLength: options === null || options === void 0 ? void 0 : options.autoAckMaxIdLength
|
|
42
46
|
});
|
|
43
47
|
|
|
44
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Trace/log level:
|
|
50
|
+
* - default: only warn/error will be printed (logger default)
|
|
51
|
+
* - if trace enabled: raise log level and (optionally) enable detailed debug listeners
|
|
52
|
+
*/
|
|
45
53
|
if (options !== null && options !== void 0 && options.trace) {
|
|
46
|
-
|
|
54
|
+
var level = options.trace === true ? _constants.LogLevel.TRACE : options.trace;
|
|
55
|
+
(0, _logger.setRequestIframeLogLevel)(level);
|
|
56
|
+
if (level === _constants.LogLevel.TRACE || level === _constants.LogLevel.INFO) {
|
|
57
|
+
(0, _debug.setupServerDebugListeners)(server);
|
|
58
|
+
}
|
|
47
59
|
}
|
|
48
60
|
|
|
49
61
|
// Cache server if id is specified
|
|
@@ -57,9 +69,7 @@ function requestIframeServer(options) {
|
|
|
57
69
|
* Clear server cache (for testing or reset)
|
|
58
70
|
* Note: This clears the cached server instances
|
|
59
71
|
*/
|
|
60
|
-
function clearRequestIframeServerCache(
|
|
61
|
-
|
|
62
|
-
(0, _cache.clearServerCache)();
|
|
63
|
-
// MessageChannel cleanup is handled by clearMessageChannelCache in cache.ts
|
|
64
|
-
void secretKey;
|
|
72
|
+
function clearRequestIframeServerCache(arg) {
|
|
73
|
+
/** Clear server cache */
|
|
74
|
+
(0, _cache.clearServerCache)(arg);
|
|
65
75
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug constants (event names for structured logs).
|
|
3
|
+
*/
|
|
4
|
+
export declare const DebugEvent: {
|
|
5
|
+
readonly CLIENT_REQUEST_START: "client.request.start";
|
|
6
|
+
readonly CLIENT_REQUEST_SUCCESS: "client.request.success";
|
|
7
|
+
readonly CLIENT_REQUEST_SUCCESS_FILE: "client.request.success.file";
|
|
8
|
+
readonly CLIENT_REQUEST_SUCCESS_STREAM: "client.request.success.stream";
|
|
9
|
+
readonly CLIENT_REQUEST_FAILED: "client.request.failed";
|
|
10
|
+
readonly CLIENT_MESSAGE_INBOUND: "client.message.inbound";
|
|
11
|
+
readonly CLIENT_MESSAGE_OUTBOUND: "client.message.outbound";
|
|
12
|
+
readonly SERVER_REQUEST_RECEIVED: "server.request.received";
|
|
13
|
+
readonly SERVER_RESPONSE_SEND: "server.response.send";
|
|
14
|
+
readonly SERVER_MESSAGE_INBOUND: "server.message.inbound";
|
|
15
|
+
readonly SERVER_MESSAGE_OUTBOUND: "server.message.outbound";
|
|
16
|
+
};
|
|
17
|
+
export type DebugEventValue = typeof DebugEvent[keyof typeof DebugEvent];
|
|
18
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/constants/debug.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DebugEvent = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Debug constants (event names for structured logs).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var DebugEvent = exports.DebugEvent = {
|
|
12
|
+
CLIENT_REQUEST_START: 'client.request.start',
|
|
13
|
+
CLIENT_REQUEST_SUCCESS: 'client.request.success',
|
|
14
|
+
CLIENT_REQUEST_SUCCESS_FILE: 'client.request.success.file',
|
|
15
|
+
CLIENT_REQUEST_SUCCESS_STREAM: 'client.request.success.stream',
|
|
16
|
+
CLIENT_REQUEST_FAILED: 'client.request.failed',
|
|
17
|
+
CLIENT_MESSAGE_INBOUND: 'client.message.inbound',
|
|
18
|
+
CLIENT_MESSAGE_OUTBOUND: 'client.message.outbound',
|
|
19
|
+
SERVER_REQUEST_RECEIVED: 'server.request.received',
|
|
20
|
+
SERVER_RESPONSE_SEND: 'server.response.send',
|
|
21
|
+
SERVER_MESSAGE_INBOUND: 'server.message.inbound',
|
|
22
|
+
SERVER_MESSAGE_OUTBOUND: 'server.message.outbound'
|
|
23
|
+
};
|
|
@@ -13,6 +13,22 @@ export declare const ProtocolVersion: {
|
|
|
13
13
|
/** Minimum supported protocol version (messages below this version will be rejected) */
|
|
14
14
|
readonly MIN_SUPPORTED: 1;
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Special origin values
|
|
18
|
+
*/
|
|
19
|
+
export declare const OriginConstant: {
|
|
20
|
+
/** Wildcard origin (postMessage targetOrigin = '*') */
|
|
21
|
+
readonly ANY: "*";
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Auto-ack (ACK-only) limits.
|
|
25
|
+
*/
|
|
26
|
+
export declare const AutoAckConstant: {
|
|
27
|
+
/** Max length of ack.id to be echoed back in auto-ack */
|
|
28
|
+
readonly MAX_ID_LENGTH: 1024;
|
|
29
|
+
/** Max length of ack.meta to be echoed back in auto-ack */
|
|
30
|
+
readonly MAX_META_LENGTH: 5120;
|
|
31
|
+
};
|
|
16
32
|
/**
|
|
17
33
|
* Protocol version type
|
|
18
34
|
*/
|
|
@@ -87,6 +103,22 @@ export declare const ErrorCode: {
|
|
|
87
103
|
readonly TOO_MANY_REQUESTS: "TOO_MANY_REQUESTS";
|
|
88
104
|
/** Stream start not received in time */
|
|
89
105
|
readonly STREAM_START_TIMEOUT: "STREAM_START_TIMEOUT";
|
|
106
|
+
/** Stream has already started */
|
|
107
|
+
readonly STREAM_ALREADY_STARTED: "STREAM_ALREADY_STARTED";
|
|
108
|
+
/** Stream has ended */
|
|
109
|
+
readonly STREAM_ENDED: "STREAM_ENDED";
|
|
110
|
+
/** Stream idle timeout */
|
|
111
|
+
readonly STREAM_TIMEOUT: "STREAM_TIMEOUT";
|
|
112
|
+
/** Stream expired */
|
|
113
|
+
readonly STREAM_EXPIRED: "STREAM_EXPIRED";
|
|
114
|
+
/** Stream read error */
|
|
115
|
+
readonly STREAM_READ_ERROR: "STREAM_READ_ERROR";
|
|
116
|
+
/** Stream write() is only available when mode is push */
|
|
117
|
+
readonly STREAM_WRITE_ONLY_IN_PUSH_MODE: "STREAM_WRITE_ONLY_IN_PUSH_MODE";
|
|
118
|
+
/** Stream pending queue overflow */
|
|
119
|
+
readonly STREAM_PENDING_QUEUE_OVERFLOW: "STREAM_PENDING_QUEUE_OVERFLOW";
|
|
120
|
+
/** Stream pending bytes overflow */
|
|
121
|
+
readonly STREAM_PENDING_BYTES_OVERFLOW: "STREAM_PENDING_BYTES_OVERFLOW";
|
|
90
122
|
};
|
|
91
123
|
/**
|
|
92
124
|
* Message type constants
|
|
@@ -102,8 +134,6 @@ export declare const MessageType: {
|
|
|
102
134
|
readonly RESPONSE: "response";
|
|
103
135
|
/** Error message */
|
|
104
136
|
readonly ERROR: "error";
|
|
105
|
-
/** Client confirms response received */
|
|
106
|
-
readonly RECEIVED: "received";
|
|
107
137
|
/** Ping message (for connection detection) */
|
|
108
138
|
readonly PING: "ping";
|
|
109
139
|
/** Pong message (for connection detection) */
|
|
@@ -120,8 +150,6 @@ export declare const MessageType: {
|
|
|
120
150
|
readonly STREAM_CANCEL: "stream_cancel";
|
|
121
151
|
/** Stream pull (receiver requests next chunks) */
|
|
122
152
|
readonly STREAM_PULL: "stream_pull";
|
|
123
|
-
/** Stream ack (receiver acknowledges a chunk) */
|
|
124
|
-
readonly STREAM_ACK: "stream_ack";
|
|
125
153
|
};
|
|
126
154
|
export declare const MessageRole: {
|
|
127
155
|
/** Server role */
|
|
@@ -136,7 +164,7 @@ export type MessageRoleValue = typeof MessageRole[keyof typeof MessageRole];
|
|
|
136
164
|
export declare const DefaultTimeout: {
|
|
137
165
|
/**
|
|
138
166
|
* ACK confirmation timeout: 1000ms (1s)
|
|
139
|
-
* Used for
|
|
167
|
+
* Used for requireAck confirmation (ACK-only).
|
|
140
168
|
* Increased from 500ms to accommodate slower environments or busy browsers where postMessage
|
|
141
169
|
* serialization/deserialization may take longer.
|
|
142
170
|
*/
|
|
@@ -207,8 +235,6 @@ export declare const StreamInternalMessageType: {
|
|
|
207
235
|
readonly CANCEL: "cancel";
|
|
208
236
|
/** Pull message */
|
|
209
237
|
readonly PULL: "pull";
|
|
210
|
-
/** Ack message */
|
|
211
|
-
readonly ACK: "ack";
|
|
212
238
|
};
|
|
213
239
|
/**
|
|
214
240
|
* Stream internal message type value type
|
|
@@ -237,9 +263,34 @@ export declare const StreamState: {
|
|
|
237
263
|
* Stream state value type
|
|
238
264
|
*/
|
|
239
265
|
export type StreamStateValue = typeof StreamState[keyof typeof StreamState];
|
|
266
|
+
/**
|
|
267
|
+
* Stream event name constants (for stream.on / observability)
|
|
268
|
+
*/
|
|
269
|
+
export declare const StreamEvent: {
|
|
270
|
+
readonly START: "start";
|
|
271
|
+
readonly DATA: "data";
|
|
272
|
+
readonly READ: "read";
|
|
273
|
+
readonly WRITE: "write";
|
|
274
|
+
readonly SEND: "send";
|
|
275
|
+
readonly PULL: "pull";
|
|
276
|
+
readonly ACK: "ack";
|
|
277
|
+
readonly END: "end";
|
|
278
|
+
readonly CANCEL: "cancel";
|
|
279
|
+
readonly ERROR: "error";
|
|
280
|
+
readonly TIMEOUT: "timeout";
|
|
281
|
+
readonly EXPIRED: "expired";
|
|
282
|
+
readonly STATE: "state";
|
|
283
|
+
};
|
|
284
|
+
export type StreamEventValue = typeof StreamEvent[keyof typeof StreamEvent];
|
|
240
285
|
/**
|
|
241
286
|
* Message constants (for multi-language support)
|
|
242
287
|
*/
|
|
243
288
|
export { Messages, formatMessage, setMessages, resetMessages, getMessages } from './messages';
|
|
244
289
|
export type { MessageKey } from './messages';
|
|
290
|
+
export { WarnOnceKey, buildWarnOnceKey } from './warn-once';
|
|
291
|
+
export type { WarnOnceKeyValue } from './warn-once';
|
|
292
|
+
export { LogLevel } from './log';
|
|
293
|
+
export type { LogLevelValue } from './log';
|
|
294
|
+
export { DebugEvent } from './debug';
|
|
295
|
+
export type { DebugEventValue } from './debug';
|
|
245
296
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;IAC1B,+BAA+B;;IAE/B,wFAAwF;;CAEhF,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAExF;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,oBAAoB;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;CAClD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAab,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAajD,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB,+BAA+B;;IAE/B,oCAAoC;;IAEpC,4BAA4B;;IAE5B,oBAAoB;;IAEpB,uBAAuB;;IAEvB,kBAAkB;;IAElB,qCAAqC;;IAErC,uBAAuB;;IAEvB,mBAAmB;;IAEnB,uBAAuB;;IAEvB,uBAAuB;;IAEvB,2BAA2B;;IAE3B,mDAAmD;;IAEnD,wCAAwC;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
|