seatable-html-page-sdk 0.0.2 → 0.0.3

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.
@@ -2,57 +2,43 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
6
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
- var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
8
- var _createClass = require('@babel/runtime/helpers/createClass');
9
- var _regeneratorRuntime = require('@babel/runtime/regenerator');
10
-
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
14
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
15
- var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
16
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
17
- var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
18
-
19
- 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; }
20
- 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__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
21
- var POST_MESSAGE_TYPE = {
5
+ const POST_MESSAGE_TYPE = {
22
6
  HTML_PAGE_REQUEST: 'HTML_PAGE_REQUEST',
23
7
  HTML_PAGE_RESPONSE: 'HTML_PAGE_RESPONSE',
24
8
  HTML_PAGE_EVENT: 'HTML_PAGE_EVENT',
25
9
  WINDOW_EVENT: 'WINDOW_EVENT'
26
10
  };
27
- var POST_MESSAGE_REQUEST_TYPE = {
11
+ const POST_MESSAGE_REQUEST_TYPE = {
28
12
  GET_SERVER: 'get_server',
29
13
  GET_ACCESS_TOKEN: 'get_access_token',
30
14
  GET_APP_UUID: 'get_app_uuid',
31
15
  GET_PAGE_ID: 'get_page_id'
32
16
  };
33
- var WINDOW_EVENT_SOURCE_TYPE = {
17
+ const WINDOW_EVENT_SOURCE_TYPE = {
34
18
  APP: 'app',
35
19
  IFRAME: 'iframe'
36
20
  };
37
- var SUPPORT_WINDOW_MOUSE_EVENT_TYPES = ['click', 'dblclick', 'mousemove', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'contextmenu'];
38
- var SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES = ['keydown', 'keyup', 'keypress'];
39
- var SUPPORT_WINDOW_DRAG_EVENT_TYPES = ['dragstart', 'dragover', 'drag', 'dragend', 'dragenter', 'dragleave', 'drop'];
40
- var HIGH_FREQUENCY_WINDOW_EVENT_TYPES = ['mousemove', 'dragover'];
41
- var hasOwnProperty = function hasOwnProperty(obj, key) {
21
+ const SUPPORT_WINDOW_MOUSE_EVENT_TYPES = ['click', 'dblclick', 'mousemove', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'contextmenu'];
22
+ const SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES = ['keydown', 'keyup', 'keypress'];
23
+ const SUPPORT_WINDOW_DRAG_EVENT_TYPES = ['dragstart', 'dragover', 'drag', 'dragend', 'dragenter', 'dragleave', 'drop'];
24
+ const HIGH_FREQUENCY_WINDOW_EVENT_TYPES = ['mousemove', 'dragover'];
25
+ const hasOwnProperty = (obj, key) => {
42
26
  return Object.prototype.hasOwnProperty.call(obj, key);
43
27
  };
44
- var generatorBase64Code = function generatorBase64Code() {
45
- var keyLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4;
46
- var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789';
47
- var key = '';
48
- for (var i = 0; i < keyLength; i++) {
28
+ const generatorBase64Code = function () {
29
+ let keyLength = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 4;
30
+ let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789';
31
+ let key = '';
32
+ for (let i = 0; i < keyLength; i++) {
49
33
  key += possible.charAt(Math.floor(Math.random() * possible.length));
50
34
  }
51
35
  return key;
52
36
  };
53
- var createWindowEventData = function createWindowEventData(_ref) {
54
- var eventType = _ref.eventType,
55
- event = _ref.event;
37
+ const createWindowEventData = _ref => {
38
+ let {
39
+ eventType,
40
+ event
41
+ } = _ref;
56
42
  if (SUPPORT_WINDOW_MOUSE_EVENT_TYPES.includes(eventType)) {
57
43
  return {
58
44
  type: eventType,
@@ -89,9 +75,8 @@ var createWindowEventData = function createWindowEventData(_ref) {
89
75
  * IframeAdapter – enables secure postMessage communication in production environments
90
76
  * For HTML page running inside an iframe
91
77
  */
92
- var IframeAdapter = /*#__PURE__*/function () {
93
- function IframeAdapter(options) {
94
- _classCallCheck__default["default"](this, IframeAdapter);
78
+ class IframeAdapter {
79
+ constructor(options) {
95
80
  this.options = options || {};
96
81
  this.selfWindow = window.parent === window.self;
97
82
  this.targetOrigin = this.options.targetOrigin || '*';
@@ -100,257 +85,216 @@ var IframeAdapter = /*#__PURE__*/function () {
100
85
  this.timeout = this.options.timeout || 10000;
101
86
  this.setupMessageListener();
102
87
  }
103
- return _createClass__default["default"](IframeAdapter, [{
104
- key: "generatorRequestId",
105
- value: function generatorRequestId() {
106
- var id = generatorBase64Code();
107
- while (hasOwnProperty(this.pendingRequests, id)) {
108
- id = generatorBase64Code();
109
- }
110
- return id;
88
+ generatorRequestId() {
89
+ let id = generatorBase64Code();
90
+ while (hasOwnProperty(this.pendingRequests, id)) {
91
+ id = generatorBase64Code();
111
92
  }
112
- }, {
113
- key: "setupMessageListener",
114
- value: function setupMessageListener() {
115
- if (this.selfWindow) return;
116
- window.addEventListener('message', this.handleMessage.bind(this));
117
- this.setEventsListener();
118
- }
119
- }, {
120
- key: "postWindowEvent",
121
- value: function postWindowEvent(eventData) {
122
- if (!eventData) return;
123
- window.parent.postMessage({
124
- type: POST_MESSAGE_TYPE.WINDOW_EVENT,
125
- params: {
126
- event_data: _objectSpread(_objectSpread({}, eventData), {}, {
127
- source: WINDOW_EVENT_SOURCE_TYPE.IFRAME
128
- })
93
+ return id;
94
+ }
95
+ setupMessageListener() {
96
+ if (this.selfWindow) return;
97
+ window.addEventListener('message', this.handleMessage.bind(this));
98
+ this.setEventsListener();
99
+ }
100
+ postWindowEvent(eventData) {
101
+ if (!eventData) return;
102
+ window.parent.postMessage({
103
+ type: POST_MESSAGE_TYPE.WINDOW_EVENT,
104
+ params: {
105
+ event_data: {
106
+ ...eventData,
107
+ source: WINDOW_EVENT_SOURCE_TYPE.IFRAME
129
108
  }
130
- }, this.targetOrigin);
131
- }
132
- }, {
133
- key: "setEventsListener",
134
- value: function setEventsListener() {
135
- var _this = this;
136
- var rafId = null;
137
- var pendingEvent = null;
138
- [].concat(SUPPORT_WINDOW_MOUSE_EVENT_TYPES, SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES, SUPPORT_WINDOW_DRAG_EVENT_TYPES).forEach(function (eventType) {
139
- window.addEventListener(eventType, function (event) {
140
- if (event.source === WINDOW_EVENT_SOURCE_TYPE.APP) return;
141
- if (HIGH_FREQUENCY_WINDOW_EVENT_TYPES.includes(eventType)) {
142
- // High-frequency events that need throttling (use RAF to limit to 60fps)
143
- // Use requestAnimationFrame for throttling high-frequency events
144
- // Store the latest event with necessary data
145
- pendingEvent = createWindowEventData({
146
- eventType: eventType,
147
- event: event
148
- });
109
+ }
110
+ }, this.targetOrigin);
111
+ }
112
+ setEventsListener() {
113
+ let rafId = null;
114
+ let pendingEvent = null;
115
+ [...SUPPORT_WINDOW_MOUSE_EVENT_TYPES, ...SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES, ...SUPPORT_WINDOW_DRAG_EVENT_TYPES].forEach(eventType => {
116
+ window.addEventListener(eventType, event => {
117
+ if (event.source === WINDOW_EVENT_SOURCE_TYPE.APP) return;
118
+ if (HIGH_FREQUENCY_WINDOW_EVENT_TYPES.includes(eventType)) {
119
+ // High-frequency events that need throttling (use RAF to limit to 60fps)
120
+ // Use requestAnimationFrame for throttling high-frequency events
121
+ // Store the latest event with necessary data
122
+ pendingEvent = createWindowEventData({
123
+ eventType,
124
+ event
125
+ });
149
126
 
150
- // Only schedule a new frame if one isn't already scheduled
151
- if (rafId === null) {
152
- rafId = requestAnimationFrame(function () {
153
- if (pendingEvent) {
154
- _this.postWindowEvent(pendingEvent);
155
- pendingEvent = null;
156
- rafId = null;
157
- }
158
- });
159
- }
160
- return;
127
+ // Only schedule a new frame if one isn't already scheduled
128
+ if (rafId === null) {
129
+ rafId = requestAnimationFrame(() => {
130
+ if (pendingEvent) {
131
+ this.postWindowEvent(pendingEvent);
132
+ pendingEvent = null;
133
+ rafId = null;
134
+ }
135
+ });
161
136
  }
137
+ return;
138
+ }
162
139
 
163
- // Low-frequency events
164
- _this.postWindowEvent(createWindowEventData({
165
- eventType: eventType,
166
- event: event
167
- }));
168
- }, true);
140
+ // Low-frequency events
141
+ this.postWindowEvent(createWindowEventData({
142
+ eventType,
143
+ event
144
+ }));
145
+ }, true);
146
+ });
147
+ }
148
+ async request(method, params) {
149
+ if (this.selfWindow) {
150
+ return new Promise(resolve => {
151
+ resolve(null);
169
152
  });
170
153
  }
171
- }, {
172
- key: "request",
173
- value: function () {
174
- var _request = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(method, params) {
175
- var _this2 = this;
176
- var requestId;
177
- return _regeneratorRuntime__default["default"].wrap(function (_context) {
178
- while (1) switch (_context.prev = _context.next) {
179
- case 0:
180
- if (!this.selfWindow) {
181
- _context.next = 1;
182
- break;
183
- }
184
- return _context.abrupt("return", new Promise(function (resolve) {
185
- resolve(null);
186
- }));
187
- case 1:
188
- requestId = this.generatorRequestId();
189
- return _context.abrupt("return", new Promise(function (resolve, reject) {
190
- _this2.pendingRequests[requestId] = {
191
- resolve: resolve,
192
- reject: reject
193
- };
194
- window.parent.postMessage({
195
- type: POST_MESSAGE_TYPE.HTML_PAGE_REQUEST,
196
- requestId: requestId,
197
- method: method,
198
- params: params
199
- }, _this2.targetOrigin);
200
-
201
- // request timeout
202
- // reject and clear the pending request
203
- var timeoutId = setTimeout(function () {
204
- if (hasOwnProperty(_this2.pendingRequests, requestId)) {
205
- delete _this2.pendingRequests[requestId];
206
- reject(new Error("Request timeout: ".concat(method)));
207
- }
208
- }, _this2.timeout);
154
+ const requestId = this.generatorRequestId();
155
+ return new Promise((resolve, reject) => {
156
+ this.pendingRequests[requestId] = {
157
+ resolve,
158
+ reject
159
+ };
160
+ window.parent.postMessage({
161
+ type: POST_MESSAGE_TYPE.HTML_PAGE_REQUEST,
162
+ requestId,
163
+ method,
164
+ params
165
+ }, this.targetOrigin);
209
166
 
210
- // save timeoutId for the pending request
211
- var pending = _this2.pendingRequests[requestId];
212
- if (pending) {
213
- pending.timeoutId = timeoutId;
214
- }
215
- }));
216
- case 2:
217
- case "end":
218
- return _context.stop();
219
- }
220
- }, _callee, this);
221
- }));
222
- function request(_x, _x2) {
223
- return _request.apply(this, arguments);
224
- }
225
- return request;
226
- }()
227
- }, {
228
- key: "handleMessage",
229
- value: function handleMessage(event) {
230
- var _event$data = event.data,
231
- type = _event$data.type,
232
- requestId = _event$data.requestId,
233
- data = _event$data.data,
234
- error = _event$data.error,
235
- eventType = _event$data.eventType,
236
- payload = _event$data.payload;
237
- if (type === POST_MESSAGE_TYPE.HTML_PAGE_RESPONSE) {
238
- var pending = this.pendingRequests[requestId];
239
- if (pending) {
240
- clearTimeout(pending.timeoutId);
167
+ // request timeout
168
+ // reject and clear the pending request
169
+ const timeoutId = setTimeout(() => {
170
+ if (hasOwnProperty(this.pendingRequests, requestId)) {
241
171
  delete this.pendingRequests[requestId];
242
- if (error) {
243
- pending.reject(new Error(error));
244
- } else {
245
- pending.resolve(data ? JSON.parse(data) : null);
246
- }
172
+ reject(new Error(`Request timeout: ${method}`));
247
173
  }
248
- } else if (type === POST_MESSAGE_TYPE.HTML_PAGE_EVENT) {
249
- this.emitEvent(eventType, payload);
250
- } else if (type === POST_MESSAGE_TYPE.WINDOW_EVENT) {
251
- var eventData = data.event_data;
252
- if (!eventData) return;
253
- var syntheticEvent;
254
- var targetElement;
255
- if (SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES.includes(eventData.type)) {
256
- syntheticEvent = new KeyboardEvent(eventData.type, {
257
- bubbles: true,
258
- cancelable: true,
259
- key: eventData.key,
260
- code: eventData.code,
261
- keyCode: eventData.keyCode,
262
- ctrlKey: eventData.ctrlKey,
263
- shiftKey: eventData.shiftKey,
264
- altKey: eventData.altKey,
265
- metaKey: eventData.metaKey,
266
- repeat: eventData.repeat,
267
- view: window
268
- });
269
- targetElement = document.activeElement || document.body;
270
- } else if (SUPPORT_WINDOW_MOUSE_EVENT_TYPES.includes(eventData.type)) {
271
- syntheticEvent = new MouseEvent(eventData.type, {
272
- bubbles: true,
273
- cancelable: true,
274
- view: window,
275
- clientX: eventData.x,
276
- clientY: eventData.y,
277
- screenX: eventData.x,
278
- screenY: eventData.y,
279
- button: eventData.button,
280
- buttons: eventData.buttons
281
- });
282
- var elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);
283
- targetElement = elementAtPoint || document.body;
284
- } else if (SUPPORT_WINDOW_DRAG_EVENT_TYPES.includes(eventData.type)) {
285
- syntheticEvent = new DragEvent(eventData.type, {
286
- bubbles: true,
287
- cancelable: true,
288
- view: window,
289
- clientX: eventData.x,
290
- clientY: eventData.y,
291
- screenX: eventData.x,
292
- screenY: eventData.y,
293
- button: eventData.button,
294
- buttons: eventData.buttons
295
- });
296
- var _elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);
297
- targetElement = _elementAtPoint || document.body;
298
- }
299
- if (!targetElement || !syntheticEvent) return;
174
+ }, this.timeout);
300
175
 
301
- // Dispatch once on the target element, it will bubble up naturally
302
- syntheticEvent.source = eventData.source;
303
- targetElement.dispatchEvent(syntheticEvent);
176
+ // save timeoutId for the pending request
177
+ const pending = this.pendingRequests[requestId];
178
+ if (pending) {
179
+ pending.timeoutId = timeoutId;
304
180
  }
305
- }
306
- }, {
307
- key: "on",
308
- value: function on(eventType, handler) {
309
- var _this3 = this;
310
- if (!hasOwnProperty(this.eventHandlers, eventType)) {
311
- this.eventHandlers[eventType] = [];
312
- }
313
- this.eventHandlers[eventType].push(handler);
314
- return function () {
315
- return _this3.off(eventType, handler);
316
- };
317
- }
318
- }, {
319
- key: "off",
320
- value: function off(eventType, handler) {
321
- var handlers = this.eventHandlers[eventType];
322
- if (handlers) {
323
- var index = handlers.indexOf(handler);
324
- if (index !== -1) {
325
- handlers.splice(index, 1);
181
+ });
182
+ }
183
+ handleMessage(event) {
184
+ const {
185
+ type,
186
+ requestId,
187
+ data,
188
+ error,
189
+ eventType,
190
+ payload
191
+ } = event.data;
192
+ if (type === POST_MESSAGE_TYPE.HTML_PAGE_RESPONSE) {
193
+ const pending = this.pendingRequests[requestId];
194
+ if (pending) {
195
+ clearTimeout(pending.timeoutId);
196
+ delete this.pendingRequests[requestId];
197
+ if (error) {
198
+ pending.reject(new Error(error));
199
+ } else {
200
+ pending.resolve(data ? JSON.parse(data) : null);
326
201
  }
327
202
  }
203
+ } else if (type === POST_MESSAGE_TYPE.HTML_PAGE_EVENT) {
204
+ this.emitEvent(eventType, payload);
205
+ } else if (type === POST_MESSAGE_TYPE.WINDOW_EVENT) {
206
+ const eventData = data.event_data;
207
+ if (!eventData) return;
208
+ let syntheticEvent;
209
+ let targetElement;
210
+ if (SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES.includes(eventData.type)) {
211
+ syntheticEvent = new KeyboardEvent(eventData.type, {
212
+ bubbles: true,
213
+ cancelable: true,
214
+ key: eventData.key,
215
+ code: eventData.code,
216
+ keyCode: eventData.keyCode,
217
+ ctrlKey: eventData.ctrlKey,
218
+ shiftKey: eventData.shiftKey,
219
+ altKey: eventData.altKey,
220
+ metaKey: eventData.metaKey,
221
+ repeat: eventData.repeat,
222
+ view: window
223
+ });
224
+ targetElement = document.activeElement || document.body;
225
+ } else if (SUPPORT_WINDOW_MOUSE_EVENT_TYPES.includes(eventData.type)) {
226
+ syntheticEvent = new MouseEvent(eventData.type, {
227
+ bubbles: true,
228
+ cancelable: true,
229
+ view: window,
230
+ clientX: eventData.x,
231
+ clientY: eventData.y,
232
+ screenX: eventData.x,
233
+ screenY: eventData.y,
234
+ button: eventData.button,
235
+ buttons: eventData.buttons
236
+ });
237
+ const elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);
238
+ targetElement = elementAtPoint || document.body;
239
+ } else if (SUPPORT_WINDOW_DRAG_EVENT_TYPES.includes(eventData.type)) {
240
+ syntheticEvent = new DragEvent(eventData.type, {
241
+ bubbles: true,
242
+ cancelable: true,
243
+ view: window,
244
+ clientX: eventData.x,
245
+ clientY: eventData.y,
246
+ screenX: eventData.x,
247
+ screenY: eventData.y,
248
+ button: eventData.button,
249
+ buttons: eventData.buttons
250
+ });
251
+ const elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);
252
+ targetElement = elementAtPoint || document.body;
253
+ }
254
+ if (!targetElement || !syntheticEvent) return;
255
+
256
+ // Dispatch once on the target element, it will bubble up naturally
257
+ syntheticEvent.source = eventData.source;
258
+ targetElement.dispatchEvent(syntheticEvent);
328
259
  }
329
- }, {
330
- key: "emitEvent",
331
- value: function emitEvent(eventType, payload) {
332
- var handlers = this.eventHandlers[eventType] || [];
333
- handlers.forEach(function (handler) {
334
- try {
335
- handler(payload);
336
- } catch (error) {
337
- // eslint-disable-next-line
338
- console.error("Error in event handler for ".concat(eventType, ":"), error);
339
- }
340
- });
260
+ }
261
+ on(eventType, handler) {
262
+ if (!hasOwnProperty(this.eventHandlers, eventType)) {
263
+ this.eventHandlers[eventType] = [];
341
264
  }
342
- }, {
343
- key: "destroy",
344
- value: function destroy() {
345
- this.pendingRequests.forEach(function (pending) {
346
- clearTimeout(pending.timeoutId);
347
- pending.reject(new Error('Adapter destroyed'));
348
- });
349
- this.pendingRequests = {};
350
- this.eventHandlers = {};
265
+ this.eventHandlers[eventType].push(handler);
266
+ return () => this.off(eventType, handler);
267
+ }
268
+ off(eventType, handler) {
269
+ const handlers = this.eventHandlers[eventType];
270
+ if (handlers) {
271
+ const index = handlers.indexOf(handler);
272
+ if (index !== -1) {
273
+ handlers.splice(index, 1);
274
+ }
351
275
  }
352
- }]);
353
- }();
276
+ }
277
+ emitEvent(eventType, payload) {
278
+ const handlers = this.eventHandlers[eventType] || [];
279
+ handlers.forEach(handler => {
280
+ try {
281
+ handler(payload);
282
+ } catch (error) {
283
+ // eslint-disable-next-line
284
+ console.error(`Error in event handler for ${eventType}:`, error);
285
+ }
286
+ });
287
+ }
288
+ destroy() {
289
+ this.pendingRequests.forEach(pending => {
290
+ clearTimeout(pending.timeoutId);
291
+ pending.reject(new Error('Adapter destroyed'));
292
+ });
293
+ this.pendingRequests = {};
294
+ this.eventHandlers = {};
295
+ }
296
+ }
354
297
 
355
298
  exports.IframeAdapter = IframeAdapter;
356
299
  exports.POST_MESSAGE_REQUEST_TYPE = POST_MESSAGE_REQUEST_TYPE;
300
+ //# sourceMappingURL=iframe-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframe-adapter.js","sources":["../src/iframe-adapter.js"],"sourcesContent":["const POST_MESSAGE_TYPE = {\n HTML_PAGE_REQUEST: 'HTML_PAGE_REQUEST',\n HTML_PAGE_RESPONSE: 'HTML_PAGE_RESPONSE',\n HTML_PAGE_EVENT: 'HTML_PAGE_EVENT',\n WINDOW_EVENT: 'WINDOW_EVENT',\n};\n\nexport const POST_MESSAGE_REQUEST_TYPE = {\n GET_SERVER: 'get_server',\n GET_ACCESS_TOKEN: 'get_access_token',\n GET_APP_UUID: 'get_app_uuid',\n GET_PAGE_ID: 'get_page_id',\n};\n\nconst WINDOW_EVENT_SOURCE_TYPE = {\n APP: 'app',\n IFRAME: 'iframe',\n};\nconst SUPPORT_WINDOW_MOUSE_EVENT_TYPES = ['click', 'dblclick', 'mousemove', 'mouseenter', 'mouseleave', 'mousedown', 'mouseup', 'contextmenu'];\nconst SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES = ['keydown', 'keyup', 'keypress'];\nconst SUPPORT_WINDOW_DRAG_EVENT_TYPES = ['dragstart', 'dragover', 'drag', 'dragend', 'dragenter', 'dragleave', 'drop'];\nconst HIGH_FREQUENCY_WINDOW_EVENT_TYPES = ['mousemove', 'dragover'];\n\nconst hasOwnProperty = (obj, key) => {\n return Object.prototype.hasOwnProperty.call(obj, key);\n};\n\nconst generatorBase64Code = (keyLength = 4) => {\n let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz0123456789';\n let key = '';\n for (let i = 0; i < keyLength; i++) {\n key += possible.charAt(Math.floor(Math.random() * possible.length));\n }\n return key;\n};\n\nconst createWindowEventData = ({ eventType, event }) => {\n if (SUPPORT_WINDOW_MOUSE_EVENT_TYPES.includes(eventType)) {\n return {\n type: eventType,\n x: event.x,\n y: event.y,\n button: event.button,\n buttons: event.buttons,\n };\n }\n if (SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES.includes(eventType)) {\n return {\n type: eventType,\n key: event.key,\n code: event.code,\n keyCode: event.keyCode,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n altKey: event.altKey,\n metaKey: event.metaKey,\n repeat: event.repeat,\n };\n }\n if (SUPPORT_WINDOW_DRAG_EVENT_TYPES.includes(eventType)) {\n return {\n type: eventType,\n x: event.x,\n y: event.y,\n };\n }\n return null;\n};\n\n/**\n * IframeAdapter – enables secure postMessage communication in production environments\n * For HTML page running inside an iframe\n */\nexport class IframeAdapter {\n constructor(options) {\n this.options = options || {};\n this.selfWindow = window.parent === window.self;\n this.targetOrigin = this.options.targetOrigin || '*';\n this.pendingRequests = {};\n this.eventHandlers = {};\n this.timeout = this.options.timeout || 10000;\n this.setupMessageListener();\n }\n\n generatorRequestId() {\n let id = generatorBase64Code();\n while (hasOwnProperty(this.pendingRequests, id)) {\n id = generatorBase64Code();\n }\n return id;\n }\n\n setupMessageListener() {\n if (this.selfWindow) return;\n window.addEventListener('message', this.handleMessage.bind(this));\n this.setEventsListener();\n }\n\n postWindowEvent(eventData) {\n if (!eventData) return;\n window.parent.postMessage({\n type: POST_MESSAGE_TYPE.WINDOW_EVENT,\n params: {\n event_data: {\n ...eventData,\n source: WINDOW_EVENT_SOURCE_TYPE.IFRAME,\n }\n }\n }, this.targetOrigin);\n }\n\n setEventsListener() {\n let rafId = null;\n let pendingEvent = null;\n [\n ...SUPPORT_WINDOW_MOUSE_EVENT_TYPES,\n ...SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES,\n ...SUPPORT_WINDOW_DRAG_EVENT_TYPES,\n ].forEach(eventType => {\n window.addEventListener(eventType, (event) => {\n if (event.source === WINDOW_EVENT_SOURCE_TYPE.APP) return;\n if (HIGH_FREQUENCY_WINDOW_EVENT_TYPES.includes(eventType)) {\n // High-frequency events that need throttling (use RAF to limit to 60fps)\n // Use requestAnimationFrame for throttling high-frequency events\n // Store the latest event with necessary data\n pendingEvent = createWindowEventData({ eventType, event });\n\n // Only schedule a new frame if one isn't already scheduled\n if (rafId === null) {\n rafId = requestAnimationFrame(() => {\n if (pendingEvent) {\n this.postWindowEvent(pendingEvent);\n pendingEvent = null;\n rafId = null;\n }\n });\n }\n return;\n }\n\n // Low-frequency events\n this.postWindowEvent(createWindowEventData({ eventType, event }));\n }, true);\n });\n }\n\n async request(method, params) {\n if (this.selfWindow) {\n return new Promise((resolve) => {\n resolve(null);\n });\n }\n const requestId = this.generatorRequestId();\n return new Promise((resolve, reject) => {\n this.pendingRequests[requestId] = { resolve, reject };\n window.parent.postMessage({\n type: POST_MESSAGE_TYPE.HTML_PAGE_REQUEST,\n requestId,\n method,\n params\n }, this.targetOrigin);\n\n // request timeout\n // reject and clear the pending request\n const timeoutId = setTimeout(() => {\n if (hasOwnProperty(this.pendingRequests, requestId)) {\n delete this.pendingRequests[requestId];\n reject(new Error(`Request timeout: ${method}`));\n }\n }, this.timeout);\n\n // save timeoutId for the pending request\n const pending = this.pendingRequests[requestId];\n if (pending) {\n pending.timeoutId = timeoutId;\n }\n });\n }\n\n handleMessage(event) {\n const { type, requestId, data, error, eventType, payload } = event.data;\n if (type === POST_MESSAGE_TYPE.HTML_PAGE_RESPONSE) {\n const pending = this.pendingRequests[requestId];\n if (pending) {\n clearTimeout(pending.timeoutId);\n delete this.pendingRequests[requestId];\n if (error) {\n pending.reject(new Error(error));\n } else {\n pending.resolve(data ? JSON.parse(data) : null);\n }\n }\n } else if (type === POST_MESSAGE_TYPE.HTML_PAGE_EVENT) {\n this.emitEvent(eventType, payload);\n } else if (type === POST_MESSAGE_TYPE.WINDOW_EVENT) {\n const eventData = data.event_data;\n if (!eventData) return;\n let syntheticEvent;\n let targetElement;\n if (SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES.includes(eventData.type)) {\n syntheticEvent = new KeyboardEvent(eventData.type, {\n bubbles: true,\n cancelable: true,\n key: eventData.key,\n code: eventData.code,\n keyCode: eventData.keyCode,\n ctrlKey: eventData.ctrlKey,\n shiftKey: eventData.shiftKey,\n altKey: eventData.altKey,\n metaKey: eventData.metaKey,\n repeat: eventData.repeat,\n view: window,\n });\n targetElement = document.activeElement || document.body;\n } else if (SUPPORT_WINDOW_MOUSE_EVENT_TYPES.includes(eventData.type)) {\n syntheticEvent = new MouseEvent(eventData.type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: eventData.x,\n clientY: eventData.y,\n screenX: eventData.x,\n screenY: eventData.y,\n button: eventData.button,\n buttons: eventData.buttons,\n });\n const elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);\n targetElement = elementAtPoint || document.body;\n } else if (SUPPORT_WINDOW_DRAG_EVENT_TYPES.includes(eventData.type)) {\n syntheticEvent = new DragEvent(eventData.type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: eventData.x,\n clientY: eventData.y,\n screenX: eventData.x,\n screenY: eventData.y,\n button: eventData.button,\n buttons: eventData.buttons,\n });\n const elementAtPoint = document.elementFromPoint(eventData.x, eventData.y);\n targetElement = elementAtPoint || document.body;\n }\n\n if (!targetElement || !syntheticEvent) return;\n\n // Dispatch once on the target element, it will bubble up naturally\n syntheticEvent.source = eventData.source;\n targetElement.dispatchEvent(syntheticEvent);\n }\n }\n\n on(eventType, handler) {\n if (!hasOwnProperty(this.eventHandlers, eventType)) {\n this.eventHandlers[eventType] = [];\n }\n this.eventHandlers[eventType].push(handler);\n return () => this.off(eventType, handler);\n }\n\n off(eventType, handler) {\n const handlers = this.eventHandlers[eventType];\n if (handlers) {\n const index = handlers.indexOf(handler);\n if (index !== -1) {\n handlers.splice(index, 1);\n }\n }\n }\n\n emitEvent(eventType, payload) {\n const handlers = this.eventHandlers[eventType] || [];\n handlers.forEach(handler => {\n try {\n handler(payload);\n } catch (error) {\n // eslint-disable-next-line\n console.error(`Error in event handler for ${eventType}:`, error);\n }\n });\n }\n\n destroy() {\n this.pendingRequests.forEach(pending => {\n clearTimeout(pending.timeoutId);\n pending.reject(new Error('Adapter destroyed'));\n });\n this.pendingRequests = {};\n this.eventHandlers = {};\n }\n}\n"],"names":["POST_MESSAGE_TYPE","HTML_PAGE_REQUEST","HTML_PAGE_RESPONSE","HTML_PAGE_EVENT","WINDOW_EVENT","POST_MESSAGE_REQUEST_TYPE","GET_SERVER","GET_ACCESS_TOKEN","GET_APP_UUID","GET_PAGE_ID","WINDOW_EVENT_SOURCE_TYPE","APP","IFRAME","SUPPORT_WINDOW_MOUSE_EVENT_TYPES","SUPPORT_WINDOW_KEYBOARD_EVENT_TYPES","SUPPORT_WINDOW_DRAG_EVENT_TYPES","HIGH_FREQUENCY_WINDOW_EVENT_TYPES","hasOwnProperty","obj","key","Object","prototype","call","generatorBase64Code","keyLength","arguments","length","undefined","possible","i","charAt","Math","floor","random","createWindowEventData","_ref","eventType","event","includes","type","x","y","button","buttons","code","keyCode","ctrlKey","shiftKey","altKey","metaKey","repeat","IframeAdapter","constructor","options","selfWindow","window","parent","self","targetOrigin","pendingRequests","eventHandlers","timeout","setupMessageListener","generatorRequestId","id","addEventListener","handleMessage","bind","setEventsListener","postWindowEvent","eventData","postMessage","params","event_data","source","rafId","pendingEvent","forEach","requestAnimationFrame","request","method","Promise","resolve","requestId","reject","timeoutId","setTimeout","Error","pending","data","error","payload","clearTimeout","JSON","parse","emitEvent","syntheticEvent","targetElement","KeyboardEvent","bubbles","cancelable","view","document","activeElement","body","MouseEvent","clientX","clientY","screenX","screenY","elementAtPoint","elementFromPoint","DragEvent","dispatchEvent","on","handler","push","off","handlers","index","indexOf","splice","console","destroy"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -7,3 +7,4 @@ var sdk = require('./sdk.js');
7
7
 
8
8
 
9
9
  exports.HTMLPageSDK = sdk.HTMLPageSDK;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}