@lynx-js/web-mainthread-apis-canary 0.19.6-canary-20260112-9e774c8d → 0.19.6-canary-20260116-ff5a5b09

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/CHANGELOG.md CHANGED
@@ -1,13 +1,15 @@
1
1
  # @lynx-js/web-mainthread-apis
2
2
 
3
- ## 0.19.6-canary-20260112113628-9e774c8db22e4b3e5d677cf8347f3f29869bc65f
3
+ ## 0.19.6-canary-20260116094314-ff5a5b09d069df0e851e0e84a33c2147d537309e
4
4
 
5
5
  ### Patch Changes
6
6
 
7
+ - feat: add main-thread API: \_\_QuerySelector ([#2115](https://github.com/lynx-family/lynx-stack/pull/2115))
8
+
7
9
  - feat: support main thread invoke ui method ([#2104](https://github.com/lynx-family/lynx-stack/pull/2104))
8
10
 
9
- - Updated dependencies [[`6c2b51a`](https://github.com/lynx-family/lynx-stack/commit/6c2b51a661ae244eb40671f63f29ee971e084ed4)]:
10
- - @lynx-js/web-constants@0.19.6-canary-20260112113628-9e774c8db22e4b3e5d677cf8347f3f29869bc65f
11
+ - Updated dependencies [[`179f984`](https://github.com/lynx-family/lynx-stack/commit/179f9844adf00ff4b2cd450ffb943649441c87d3), [`6c2b51a`](https://github.com/lynx-family/lynx-stack/commit/6c2b51a661ae244eb40671f63f29ee971e084ed4)]:
12
+ - @lynx-js/web-constants@0.19.6-canary-20260116094314-ff5a5b09d069df0e851e0e84a33c2147d537309e
11
13
 
12
14
  ## 0.19.5
13
15
 
@@ -357,6 +357,65 @@ export function createMainThreadGlobalThis(config) {
357
357
  exposureChangedElements.clear();
358
358
  callbacks.flushElementTree(options, timingFlagsCopied, exposureChangedElementsArray);
359
359
  };
360
+ const __InvokeUIMethod = (element, method, params, callback) => {
361
+ try {
362
+ if (method === 'boundingClientRect') {
363
+ const rect = element.getBoundingClientRect();
364
+ callback({
365
+ code: ErrorCode.SUCCESS,
366
+ data: {
367
+ id: element.id,
368
+ width: rect.width,
369
+ height: rect.height,
370
+ left: rect.left,
371
+ right: rect.right,
372
+ top: rect.top,
373
+ bottom: rect.bottom,
374
+ },
375
+ });
376
+ return;
377
+ }
378
+ if (typeof element[method] === 'function') {
379
+ const data = element[method](params);
380
+ callback({
381
+ code: ErrorCode.SUCCESS,
382
+ data,
383
+ });
384
+ return;
385
+ }
386
+ callback({
387
+ code: ErrorCode.METHOD_NOT_FOUND,
388
+ });
389
+ }
390
+ catch (e) {
391
+ console.error(`[lynx-web] invokeUIMethod: apply method failed with`, e, element);
392
+ callback({
393
+ code: ErrorCode.PARAM_INVALID,
394
+ });
395
+ }
396
+ };
397
+ const __QuerySelector = (element, selector) => {
398
+ if (!element)
399
+ return null;
400
+ const el = element.querySelector(selector);
401
+ if (el) {
402
+ if (!el.invoke) {
403
+ el.invoke = (method, params) => {
404
+ return new Promise((resolve, reject) => {
405
+ __InvokeUIMethod(el, method, params, (res) => {
406
+ if (res.code === ErrorCode.SUCCESS) {
407
+ resolve(res.data);
408
+ }
409
+ else {
410
+ reject(res);
411
+ }
412
+ });
413
+ });
414
+ };
415
+ }
416
+ }
417
+ return el;
418
+ };
360
419
  const __GetPageElement = () => {
361
420
  return pageElement;
362
421
  };
@@ -501,43 +560,8 @@ export function createMainThreadGlobalThis(config) {
501
560
  _I18nResourceTranslation: callbacks._I18nResourceTranslation,
502
561
  _AddEventListener: () => { },
503
562
  renderPage: undefined,
504
- __InvokeUIMethod: (element, method, params, callback) => {
505
- try {
506
- if (method === 'boundingClientRect') {
507
- const rect = element.getBoundingClientRect();
508
- callback({
509
- code: ErrorCode.SUCCESS,
510
- data: {
511
- id: element.id,
512
- width: rect.width,
513
- height: rect.height,
514
- left: rect.left,
515
- right: rect.right,
516
- top: rect.top,
517
- bottom: rect.bottom,
518
- },
519
- });
520
- return;
521
- }
522
- if (typeof element[method] === 'function') {
523
- const data = element[method](params);
524
- callback({
525
- code: ErrorCode.SUCCESS,
526
- data,
527
- });
528
- return;
529
- }
530
- callback({
531
- code: ErrorCode.METHOD_NOT_FOUND,
532
- });
533
- }
534
- catch (e) {
535
- console.error(`[lynx-web] invokeUIMethod: apply method failed with`, e, element);
536
- callback({
537
- code: ErrorCode.PARAM_INVALID,
538
- });
539
- }
540
- },
563
+ __InvokeUIMethod,
564
+ __QuerySelector,
541
565
  };
542
566
  Object.assign(mtsRealm.globalWindow, mtsGlobalThis);
543
567
  Object.defineProperty(mtsRealm.globalWindow, 'renderPage', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/web-mainthread-apis-canary",
3
- "version": "0.19.6-canary-20260112-9e774c8d",
3
+ "version": "0.19.6-canary-20260116-ff5a5b09",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [],
@@ -26,7 +26,7 @@
26
26
  "**/*.css"
27
27
  ],
28
28
  "dependencies": {
29
- "@lynx-js/web-constants": "npm:@lynx-js/web-constants-canary@0.19.6-canary-20260112-9e774c8d",
29
+ "@lynx-js/web-constants": "npm:@lynx-js/web-constants-canary@0.19.6-canary-20260116-ff5a5b09",
30
30
  "hyphenate-style-name": "^1.1.0",
31
31
  "wasm-feature-detect": "^1.8.0"
32
32
  },