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.
Files changed (223) hide show
  1. package/QUICKSTART.CN.md +4 -2
  2. package/QUICKSTART.md +4 -2
  3. package/README.CN.md +302 -54
  4. package/README.md +281 -36
  5. package/cdn/request-iframe-react.umd.js +3354 -0
  6. package/cdn/request-iframe-react.umd.js.map +1 -0
  7. package/cdn/request-iframe-react.umd.min.js +2 -0
  8. package/cdn/request-iframe-react.umd.min.js.map +1 -0
  9. package/cdn/request-iframe.umd.js +19735 -0
  10. package/cdn/request-iframe.umd.js.map +1 -0
  11. package/cdn/request-iframe.umd.min.js +4 -0
  12. package/cdn/request-iframe.umd.min.js.map +1 -0
  13. package/esm/api/client.js +31 -22
  14. package/esm/api/endpoint.js +229 -0
  15. package/esm/api/server.js +19 -9
  16. package/esm/constants/debug.js +17 -0
  17. package/esm/constants/index.js +115 -66
  18. package/esm/constants/log.js +11 -0
  19. package/esm/constants/messages.js +6 -1
  20. package/esm/constants/warn-once.js +15 -0
  21. package/esm/endpoint/facade.js +390 -0
  22. package/esm/endpoint/heartbeat/heartbeat.js +60 -0
  23. package/esm/endpoint/heartbeat/ping.js +20 -0
  24. package/esm/endpoint/index.js +13 -0
  25. package/esm/endpoint/infra/hub.js +316 -0
  26. package/esm/endpoint/infra/inbox.js +232 -0
  27. package/esm/endpoint/infra/outbox.js +408 -0
  28. package/esm/endpoint/stream/dispatcher.js +58 -0
  29. package/esm/endpoint/stream/errors.js +27 -0
  30. package/esm/endpoint/stream/factory.js +76 -0
  31. package/esm/endpoint/stream/file-auto-resolve.js +34 -0
  32. package/esm/endpoint/stream/file-writable.js +105 -0
  33. package/esm/endpoint/stream/handler.js +26 -0
  34. package/esm/{core → impl}/client.js +243 -320
  35. package/esm/{core → impl}/response.js +120 -154
  36. package/esm/impl/server.js +568 -0
  37. package/esm/index.js +13 -6
  38. package/esm/message/ack.js +27 -0
  39. package/esm/message/channel-cache.js +108 -0
  40. package/esm/message/channel.js +92 -5
  41. package/esm/message/dispatcher.js +149 -98
  42. package/esm/stream/error.js +22 -0
  43. package/esm/stream/index.js +3 -1
  44. package/esm/stream/readable-stream.js +101 -26
  45. package/esm/stream/stream-core.js +121 -3
  46. package/esm/stream/writable-stream.js +368 -43
  47. package/esm/utils/ack.js +36 -0
  48. package/esm/utils/blob.js +16 -0
  49. package/esm/utils/cache.js +25 -76
  50. package/esm/utils/content-type.js +81 -0
  51. package/esm/utils/debug.js +157 -180
  52. package/esm/utils/hooks.js +130 -0
  53. package/esm/utils/id.js +14 -0
  54. package/esm/utils/iframe.js +20 -0
  55. package/esm/utils/index.js +12 -162
  56. package/esm/utils/is.js +3 -0
  57. package/esm/utils/logger.js +55 -0
  58. package/esm/utils/origin.js +3 -1
  59. package/esm/utils/promise.js +3 -0
  60. package/esm/utils/window.js +31 -0
  61. package/library/api/client.d.ts.map +1 -1
  62. package/library/api/client.js +32 -23
  63. package/library/api/endpoint.d.ts +23 -0
  64. package/library/api/endpoint.d.ts.map +1 -0
  65. package/library/api/endpoint.js +235 -0
  66. package/library/api/server.d.ts +4 -1
  67. package/library/api/server.d.ts.map +1 -1
  68. package/library/api/server.js +19 -9
  69. package/library/constants/debug.d.ts +18 -0
  70. package/library/constants/debug.d.ts.map +1 -0
  71. package/library/constants/debug.js +23 -0
  72. package/library/constants/index.d.ts +58 -7
  73. package/library/constants/index.d.ts.map +1 -1
  74. package/library/constants/index.js +143 -67
  75. package/library/constants/log.d.ts +12 -0
  76. package/library/constants/log.d.ts.map +1 -0
  77. package/library/constants/log.js +17 -0
  78. package/library/constants/messages.d.ts +6 -1
  79. package/library/constants/messages.d.ts.map +1 -1
  80. package/library/constants/messages.js +6 -1
  81. package/library/constants/warn-once.d.ts +12 -0
  82. package/library/constants/warn-once.d.ts.map +1 -0
  83. package/library/constants/warn-once.js +22 -0
  84. package/library/endpoint/facade.d.ts +238 -0
  85. package/library/endpoint/facade.d.ts.map +1 -0
  86. package/library/endpoint/facade.js +398 -0
  87. package/library/endpoint/heartbeat/heartbeat.d.ts +34 -0
  88. package/library/endpoint/heartbeat/heartbeat.d.ts.map +1 -0
  89. package/library/endpoint/heartbeat/heartbeat.js +67 -0
  90. package/library/endpoint/heartbeat/ping.d.ts +18 -0
  91. package/library/endpoint/heartbeat/ping.d.ts.map +1 -0
  92. package/library/endpoint/heartbeat/ping.js +26 -0
  93. package/library/endpoint/index.d.ts +16 -0
  94. package/library/endpoint/index.d.ts.map +1 -0
  95. package/library/endpoint/index.js +114 -0
  96. package/library/endpoint/infra/hub.d.ts +170 -0
  97. package/library/endpoint/infra/hub.d.ts.map +1 -0
  98. package/library/endpoint/infra/hub.js +323 -0
  99. package/library/endpoint/infra/inbox.d.ts +73 -0
  100. package/library/endpoint/infra/inbox.d.ts.map +1 -0
  101. package/library/endpoint/infra/inbox.js +239 -0
  102. package/library/endpoint/infra/outbox.d.ts +149 -0
  103. package/library/endpoint/infra/outbox.d.ts.map +1 -0
  104. package/library/endpoint/infra/outbox.js +415 -0
  105. package/library/endpoint/stream/dispatcher.d.ts +33 -0
  106. package/library/endpoint/stream/dispatcher.d.ts.map +1 -0
  107. package/library/endpoint/stream/dispatcher.js +66 -0
  108. package/library/endpoint/stream/errors.d.ts +20 -0
  109. package/library/endpoint/stream/errors.d.ts.map +1 -0
  110. package/library/endpoint/stream/errors.js +32 -0
  111. package/library/endpoint/stream/factory.d.ts +44 -0
  112. package/library/endpoint/stream/factory.d.ts.map +1 -0
  113. package/library/endpoint/stream/factory.js +82 -0
  114. package/library/endpoint/stream/file-auto-resolve.d.ts +26 -0
  115. package/library/endpoint/stream/file-auto-resolve.d.ts.map +1 -0
  116. package/library/endpoint/stream/file-auto-resolve.js +41 -0
  117. package/library/endpoint/stream/file-writable.d.ts +33 -0
  118. package/library/endpoint/stream/file-writable.d.ts.map +1 -0
  119. package/library/endpoint/stream/file-writable.js +115 -0
  120. package/library/endpoint/stream/handler.d.ts +20 -0
  121. package/library/endpoint/stream/handler.d.ts.map +1 -0
  122. package/library/endpoint/stream/handler.js +32 -0
  123. package/library/{core → impl}/client.d.ts +16 -13
  124. package/library/impl/client.d.ts.map +1 -0
  125. package/library/{core → impl}/client.js +254 -333
  126. package/library/{core → impl}/request.d.ts.map +1 -1
  127. package/library/{core → impl}/response.d.ts +7 -12
  128. package/library/impl/response.d.ts.map +1 -0
  129. package/library/{core → impl}/response.js +120 -154
  130. package/library/{core → impl}/server.d.ts +26 -55
  131. package/library/impl/server.d.ts.map +1 -0
  132. package/library/impl/server.js +575 -0
  133. package/library/index.d.ts +13 -6
  134. package/library/index.d.ts.map +1 -1
  135. package/library/index.js +16 -16
  136. package/library/message/ack.d.ts +15 -0
  137. package/library/message/ack.d.ts.map +1 -0
  138. package/library/message/ack.js +33 -0
  139. package/library/message/channel-cache.d.ts +26 -0
  140. package/library/message/channel-cache.d.ts.map +1 -0
  141. package/library/message/channel-cache.js +115 -0
  142. package/library/message/channel.d.ts +53 -6
  143. package/library/message/channel.d.ts.map +1 -1
  144. package/library/message/channel.js +96 -9
  145. package/library/message/dispatcher.d.ts +17 -0
  146. package/library/message/dispatcher.d.ts.map +1 -1
  147. package/library/message/dispatcher.js +149 -98
  148. package/library/stream/error.d.ts +24 -0
  149. package/library/stream/error.d.ts.map +1 -0
  150. package/library/stream/error.js +29 -0
  151. package/library/stream/index.d.ts +4 -1
  152. package/library/stream/index.d.ts.map +1 -1
  153. package/library/stream/index.js +7 -4
  154. package/library/stream/readable-stream.d.ts.map +1 -1
  155. package/library/stream/readable-stream.js +102 -27
  156. package/library/stream/stream-core.d.ts +22 -1
  157. package/library/stream/stream-core.d.ts.map +1 -1
  158. package/library/stream/stream-core.js +120 -2
  159. package/library/stream/types.d.ts +115 -2
  160. package/library/stream/types.d.ts.map +1 -1
  161. package/library/stream/writable-stream.d.ts +20 -2
  162. package/library/stream/writable-stream.d.ts.map +1 -1
  163. package/library/stream/writable-stream.js +366 -41
  164. package/library/types/index.d.ts +17 -22
  165. package/library/types/index.d.ts.map +1 -1
  166. package/library/utils/ack.d.ts +2 -0
  167. package/library/utils/ack.d.ts.map +1 -0
  168. package/library/utils/ack.js +44 -0
  169. package/library/utils/blob.d.ts +3 -0
  170. package/library/utils/blob.d.ts.map +1 -0
  171. package/library/utils/blob.js +22 -0
  172. package/library/utils/cache.d.ts +10 -20
  173. package/library/utils/cache.d.ts.map +1 -1
  174. package/library/utils/cache.js +25 -79
  175. package/library/utils/content-type.d.ts +13 -0
  176. package/library/utils/content-type.d.ts.map +1 -0
  177. package/library/utils/content-type.js +87 -0
  178. package/library/utils/debug.d.ts.map +1 -1
  179. package/library/utils/debug.js +156 -178
  180. package/library/utils/hooks.d.ts +30 -0
  181. package/library/utils/hooks.d.ts.map +1 -0
  182. package/library/utils/hooks.js +139 -0
  183. package/library/utils/id.d.ts +9 -0
  184. package/library/utils/id.d.ts.map +1 -0
  185. package/library/utils/id.js +21 -0
  186. package/library/utils/iframe.d.ts +5 -0
  187. package/library/utils/iframe.d.ts.map +1 -0
  188. package/library/utils/iframe.js +25 -0
  189. package/library/utils/index.d.ts +7 -34
  190. package/library/utils/index.d.ts.map +1 -1
  191. package/library/utils/index.js +58 -193
  192. package/library/utils/is.d.ts +2 -0
  193. package/library/utils/is.d.ts.map +1 -0
  194. package/library/utils/is.js +9 -0
  195. package/library/utils/logger.d.ts +13 -0
  196. package/library/utils/logger.d.ts.map +1 -0
  197. package/library/utils/logger.js +63 -0
  198. package/library/utils/origin.d.ts.map +1 -1
  199. package/library/utils/origin.js +2 -1
  200. package/library/utils/promise.d.ts +2 -0
  201. package/library/utils/promise.d.ts.map +1 -0
  202. package/library/utils/promise.js +9 -0
  203. package/library/utils/window.d.ts +2 -0
  204. package/library/utils/window.d.ts.map +1 -0
  205. package/library/utils/window.js +38 -0
  206. package/package.json +49 -2
  207. package/react/package.json +2 -1
  208. package/esm/core/client-server.js +0 -329
  209. package/esm/core/server.js +0 -767
  210. package/esm/utils/ack-meta.js +0 -53
  211. package/library/core/client-server.d.ts +0 -106
  212. package/library/core/client-server.d.ts.map +0 -1
  213. package/library/core/client-server.js +0 -336
  214. package/library/core/client.d.ts.map +0 -1
  215. package/library/core/response.d.ts.map +0 -1
  216. package/library/core/server.d.ts.map +0 -1
  217. package/library/core/server.js +0 -772
  218. package/library/utils/ack-meta.d.ts +0 -2
  219. package/library/utils/ack-meta.d.ts.map +0 -1
  220. package/library/utils/ack-meta.js +0 -59
  221. /package/esm/{core → impl}/request.js +0 -0
  222. /package/library/{core → impl}/request.d.ts +0 -0
  223. /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
+ }
@@ -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(secretKey?: string): void;
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;AAK3E;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,0BAA0B,GACnC,mBAAmB,CAmCrB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAKtE"}
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"}
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.clearRequestIframeServerCache = clearRequestIframeServerCache;
7
7
  exports.requestIframeServer = requestIframeServer;
8
- var _server = require("../core/server");
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
- // If trace mode is enabled, register debug listeners
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
- (0, _debug.setupServerDebugListeners)(server);
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(secretKey) {
61
- // Clear server cache
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 both client waiting for server ACK and server waiting for client RECEIVED.
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;;CAEhC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,sBAAsB;;IAEtB,mCAAmC;;IAEnC,8BAA8B;;IAE9B,uBAAuB;;IAEvB,oBAAoB;;IAEpB,wCAAwC;;IAExC,8CAA8C;;IAE9C,8CAA8C;;IAE9C,mBAAmB;;IAEnB,wBAAwB;;IAExB,iBAAiB;;IAEjB,mBAAmB;;IAEnB,oBAAoB;;IAEpB,kDAAkD;;IAElD,iDAAiD;;CAEzC,CAAC;AAEX,eAAO,MAAM,WAAW;IACtB,kBAAkB;;IAElB,kBAAkB;;CAEV,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;OAKG;;IAEH,0BAA0B;;IAE1B,kCAAkC;;CAE1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,sCAAsC;;IAEtC,mBAAmB;;IAEnB,+CAA+C;;IAE/C,oBAAoB;;IAEpB,0CAA0C;;CAElC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,yBAAyB;;IAEzB,kBAAkB;;CAEV,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;CAGb,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,yBAAyB;IACpC,mBAAmB;;IAEnB,kBAAkB;;IAElB,oBAAoB;;IAEpB,qBAAqB;;IAErB,mBAAmB;;IAEnB,kBAAkB;;CAEV,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,OAAO,yBAAyB,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAEtH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB,cAAc;;IAEd,gBAAgB;;IAEhB,YAAY;;IAEZ,YAAY;;IAEZ,gBAAgB;;CAER,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9F,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}