ms-types 0.9.20 → 0.9.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ms-types",
3
- "version": "0.9.20",
3
+ "version": "0.9.21",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
package/types/node.d.ts CHANGED
@@ -104,6 +104,39 @@ declare interface NodeInfo {
104
104
  * 节点是否可接收事件 用于判断是否显示在屏幕上
105
105
  */
106
106
  hittable(): boolean;
107
+ /**
108
+ * 无障碍点击
109
+ */
110
+ tap(): boolean;
111
+ /**
112
+ * 无障碍双击
113
+ */
114
+ doubleTap(): boolean;
115
+ /**
116
+ * 无障碍长按
117
+ * @param duration 长按持续时间,单位毫秒
118
+ */
119
+ press(duration: number): boolean;
120
+ /**
121
+ * 将节点滚动到可见区域
122
+ */
123
+ scrollToVisible(): boolean;
124
+ /**
125
+ * 清空输入
126
+ */
127
+ clearInput(): boolean;
128
+ /**
129
+ * 追加输入(聚焦后输入)
130
+ * @param text 要输入的文本
131
+ */
132
+ input(text: string): boolean;
133
+ /**
134
+ * 设置节点的值,按控件类型自动处理:
135
+ * - `XCUIElementTypePickerWheel`:传选项文案,如 `"1小时"`
136
+ * - 文本类控件(`TextField` / `SecureTextField` / `TextView` / `SearchField` 等):传要输入的文本(先聚焦再输入,不清空已有内容)
137
+ * @param text 目标值
138
+ */
139
+ setValue(text: string): boolean;
107
140
  /**
108
141
  * 获取父节点
109
142
  */
package/types/opencv.d.ts CHANGED
@@ -371,10 +371,6 @@ declare namespace cv {
371
371
  mask?: Mat;
372
372
  }
373
373
 
374
- interface FeatureMaskOptions {
375
- mask?: Mat;
376
- }
377
-
378
374
  interface FASTOptions {
379
375
  threshold?: number;
380
376
  nonmaxSuppression?: boolean;
@@ -510,10 +506,6 @@ declare namespace cv {
510
506
  function SIFT(mat: Mat, options?: SIFTOptions): FeatureResult | null;
511
507
  /** ORB 检测并计算描述子(二进制描述子,匹配常用 NORM_HAMMING) */
512
508
  function ORB(mat: Mat, options?: ORBOptions): FeatureResult | null;
513
- /** AKAZE 检测并计算描述子 */
514
- function AKAZE(mat: Mat, options?: FeatureMaskOptions): FeatureResult | null;
515
- /** BRISK 检测并计算描述子 */
516
- function BRISK(mat: Mat, options?: { thresh?: number; octaves?: number; mask?: Mat }): FeatureResult | null;
517
509
  /** FAST 仅返回关键点(无描述子) */
518
510
  function FAST(mat: Mat, options?: FASTOptions): { keypoints: KeyPoint[] } | null;
519
511
 
@@ -589,6 +581,7 @@ declare namespace cv {
589
581
  function boxPoints(options: { center: Point; size: Size | [number, number]; angle?: number }): Point[] | null;
590
582
  function pointPolygonTest(contour: Point[], ptOrOptions: Point | { pt: Point; measureDist?: boolean }): number;
591
583
  function minEnclosingCircle(points: Point[]): { center: Point; radius: number } | null;
584
+ /** 椭圆拟合,至少 5 个点;可用于圆形/椭圆控件轮廓 */
592
585
  function fitEllipse(points: Point[]): RotatedRect | null;
593
586
  function filter2D(mat: Mat, options: { kernel: Mat; ddepth?: number; delta?: number }): Mat | null;
594
587
  function ellipse(mat: Mat, options: {
@@ -608,6 +601,8 @@ declare namespace cv {
608
601
  }): { width: number; height: number; baseLine: number } | null;
609
602
 
610
603
  // ---- QR / 条码 ----
604
+ /** 编码二维码为可显示/可识别的 BGR Mat(已放大并加静区,可直接 detectQRCode) */
605
+ function encodeQRCode(text: string): Mat | null;
611
606
  function detectQRCode(mat: Mat): { decoded: string; points: Point[] } | null;
612
607
  function detectBarcode(mat: Mat): { decoded: string[]; types: string[]; points: Point[] } | null;
613
608
 
@@ -619,27 +614,6 @@ declare namespace cv {
619
614
  function fastNlMeansDenoisingColored(mat: Mat, options?: {
620
615
  h?: number; hColor?: number; templateWindowSize?: number; searchWindowSize?: number;
621
616
  }): Mat | null;
622
- function edgePreservingFilter(mat: Mat, options?: {
623
- flags?: number; sigma_s?: number; sigma_r?: number;
624
- }): Mat | null;
625
- function detailEnhance(mat: Mat, options?: { sigma_s?: number; sigma_r?: number }): Mat | null;
626
- function pencilSketch(mat: Mat, options?: {
627
- sigma_s?: number; sigma_r?: number; shade_factor?: number;
628
- }): { gray: Mat; color: Mat } | null;
629
- function stylization(mat: Mat, options?: { sigma_s?: number; sigma_r?: number }): Mat | null;
630
- function seamlessClone(src: Mat, options: {
631
- dst: Mat; mask: Mat; p: Point; flags?: number;
632
- }): Mat | null;
633
- function decolor(mat: Mat): { grayscale: Mat; colorBoost: Mat } | null;
634
- function colorChange(mat: Mat, options: {
635
- mask: Mat; red_mul?: number; green_mul?: number; blue_mul?: number;
636
- }): Mat | null;
637
- function illuminationChange(mat: Mat, options: {
638
- mask: Mat; alpha?: number; beta?: number;
639
- }): Mat | null;
640
- function textureFlattening(mat: Mat, options: {
641
- mask: Mat; low_threshold?: number; high_threshold?: number; kernel_size?: number;
642
- }): Mat | null;
643
617
 
644
618
  // ---- Core 扩展 ----
645
619
  function LUT(mat: Mat, options: { lut: Mat }): Mat | null;
@@ -647,48 +621,17 @@ declare namespace cv {
647
621
  function min(src1: Mat, options: { src2: Mat }): Mat | null;
648
622
  function max(src1: Mat, options: { src2: Mat }): Mat | null;
649
623
  function extractChannel(mat: Mat, options: { coi: number }): Mat | null;
650
- /** 就地写入 dst,返回 dst 句柄 */
651
- function insertChannel(srcChannel: Mat, options: { dst: Mat; coi: number }): Mat | null;
652
- /** 就地改写 dst,成功返回 true */
653
- function mixChannels(options: { src: Mat[]; dst: Mat[]; fromTo: number[] }): boolean;
654
- function pow(mat: Mat, options: { power: number }): Mat | null;
655
- function sqrt(mat: Mat): Mat | null;
656
- function exp(mat: Mat): Mat | null;
657
- function log(mat: Mat): Mat | null;
658
- function magnitude(options: { x: Mat; y: Mat }): Mat | null;
659
- function cartToPolar(options: { x: Mat; y: Mat; angleInDegrees?: boolean }): {
660
- magnitude: Mat; angle: Mat;
661
- } | null;
662
- function polarToCart(options: { magnitude: Mat; angle: Mat; angleInDegrees?: boolean }): {
663
- x: Mat; y: Mat;
664
- } | null;
665
- function PSNR(src1: Mat, options: { src2: Mat; R?: number }): number;
666
- function scaleAdd(src1: Mat, options: { alpha: number; src2: Mat }): Mat | null;
667
624
  function sum(mat: Mat): number[] | null;
668
625
 
669
626
  // ---- Imgproc 几何 / 滤波扩展 ----
670
- function stackBlur(mat: Mat, options: { ksize: number | [number, number] | Size }): Mat | null;
671
- function sepFilter2D(mat: Mat, options: {
672
- kernelX: Mat; kernelY: Mat; ddepth?: number; delta?: number;
673
- }): Mat | null;
674
- function remap(mat: Mat, options: {
675
- map1: Mat; map2: Mat; interpolation?: number; borderMode?: number;
676
- }): Mat | null;
677
- function warpPolar(mat: Mat, options: {
678
- width?: number; height?: number;
679
- center: Point; maxRadius: number; flags?: number;
680
- }): Mat | null;
681
627
  function invertAffineTransform(M: Mat): Mat | null;
682
628
  function getRectSubPix(mat: Mat, options: {
683
629
  patchSize: Size | [number, number]; center: Point;
684
630
  }): Mat | null;
631
+ /** 相位相关估计两图位移(如滚动/拖拽前后帧) */
685
632
  function phaseCorrelate(src1: Mat, options: { src2: Mat; window?: Mat }): {
686
633
  x: number; y: number; response?: number;
687
634
  } | null;
688
- function HoughLines(mat: Mat, options?: {
689
- rho?: number; theta?: number; threshold?: number; srn?: number; stn?: number;
690
- }): Array<{ rho: number; theta: number }> | null;
691
- function LSD(mat: Mat, options?: object): Array<{ x1: number; y1: number; x2: number; y2: number }> | null;
692
635
  function cornerHarris(mat: Mat, options?: { blockSize?: number; ksize?: number; k?: number }): Mat | null;
693
636
  function cornerSubPix(mat: Mat, options: {
694
637
  corners: Point[];
@@ -696,31 +639,10 @@ declare namespace cv {
696
639
  zeroZone?: Size | [number, number];
697
640
  criteria?: { type?: number; maxCount?: number; epsilon?: number };
698
641
  }): Point[] | null;
699
- function cornerMinEigenVal(mat: Mat, options?: { blockSize?: number; ksize?: number }): Mat | null;
700
- function preCornerDetect(mat: Mat, options?: { ksize?: number }): Mat | null;
701
- function spatialGradient(mat: Mat, options?: { ksize?: number }): { dx: Mat; dy: Mat } | null;
702
642
  function calcBackProject(mat: Mat, options: {
703
643
  hist: Mat; channels?: number[]; ranges?: number[]; scale?: number;
704
644
  }): Mat | null;
705
- function applyColorMap(mat: Mat, options: { colormap: number }): Mat | null;
706
645
  function HuMoments(contourOrMoments: Point[] | MomentsResult): number[] | null;
707
- function pyrMeanShiftFiltering(mat: Mat, options?: {
708
- sp?: number; sr?: number; maxLevel?: number;
709
- }): Mat | null;
710
- function integral(mat: Mat): Mat | null;
711
- /** 就地绘制标记 */
712
- function drawMarker(mat: Mat, options: {
713
- position: Point; color?: number[] | string;
714
- markerType?: number; markerSize?: number; thickness?: number;
715
- }): Mat | null;
716
- /** 就地画箭头线 */
717
- function arrowedLine(mat: Mat, options: {
718
- pt1: Point; pt2: Point; color?: number[] | string; thickness?: number; tipLength?: number;
719
- }): Mat | null;
720
- /** 就地填充凸多边形 */
721
- function fillConvexPoly(mat: Mat, options: {
722
- pts: Point[]; color?: number[] | string;
723
- }): Mat | null;
724
646
  function connectedComponents(mat: Mat, options?: { connectivity?: number }): {
725
647
  count: number; labels: Mat;
726
648
  } | null;
@@ -731,38 +653,33 @@ declare namespace cv {
731
653
  function fitLine(points: Point[], options?: {
732
654
  distType?: number; param?: number; reps?: number; aeps?: number;
733
655
  }): [number, number, number, number] | null;
734
- /** 就地改写 markers,返回 markers 句柄 */
735
- function watershed(mat: Mat, options: { markers: Mat }): Mat | null;
736
- /** 就地改写 mask,返回 mask 句柄 */
737
- function grabCut(mat: Mat, options: {
738
- mask: Mat; rect?: Rect; iterCount?: number; mode?: number;
656
+
657
+ /** 就地绘制标记点,返回原句柄 */
658
+ function drawMarker(mat: Mat, options: {
659
+ position: Point; color?: number[] | string;
660
+ markerType?: number; markerSize?: number; thickness?: number;
661
+ }): Mat | null;
662
+ /** 就地画箭头线,返回原句柄 */
663
+ function arrowedLine(mat: Mat, options: {
664
+ pt1: Point; pt2: Point; color?: number[] | string; thickness?: number; tipLength?: number;
665
+ }): Mat | null;
666
+ /** 就地填充凸多边形,返回原句柄 */
667
+ function fillConvexPoly(mat: Mat, options: {
668
+ pts: Point[]; color?: number[] | string;
739
669
  }): Mat | null;
740
670
 
741
671
  // ---- Calib3d ----
742
672
  function estimateAffine2D(options: {
743
673
  srcPoints: Point[]; dstPoints: Point[]; method?: number; ransacReprojThreshold?: number;
744
674
  }): Mat | null;
675
+ /** 相似变换(平移+旋转+等比缩放,无剪切),点对齐/跨分辨率匹配常用 */
745
676
  function estimateAffinePartial2D(options: {
746
677
  srcPoints: Point[]; dstPoints: Point[]; method?: number; ransacReprojThreshold?: number;
747
678
  }): Mat | null;
748
679
 
749
680
  // ---- Features 扩展 ----
750
- function KAZE(mat: Mat, options?: { mask?: Mat }): {
751
- keypoints: KeyPoint[]; descriptors: Mat | null;
752
- } | null;
753
- function MSER(mat: Mat, options?: { mask?: Mat }): { keypoints: KeyPoint[] } | null;
754
- function SimpleBlobDetector(mat: Mat, options?: { mask?: Mat }): { keypoints: KeyPoint[] } | null;
755
- function AGAST(mat: Mat, options?: {
756
- threshold?: number; nonmaxSuppression?: boolean; mask?: Mat;
757
- }): { keypoints: KeyPoint[] } | null;
758
681
 
759
682
  // ---- Objdetect ----
760
- function encodeQRCode(text: string): Mat | null;
761
- function CascadeClassifier(mat: Mat, options: {
762
- cascadePath: string;
763
- scaleFactor?: number; minNeighbors?: number; minSize?: Size | [number, number];
764
- }): Rect[] | null;
765
- function HOGDetect(mat: Mat, options?: object): Rect[] | null;
766
683
 
767
684
  const COLOR_RGB2GRAY: number;
768
685
  const COLOR_RGBA2GRAY: number;
@@ -781,31 +698,13 @@ declare namespace cv {
781
698
 
782
699
  const INPAINT_NS: number;
783
700
  const INPAINT_TELEA: number;
784
- const RECURS_FILTER: number;
785
- const NORMCONV_FILTER: number;
786
- const NORMAL_CLONE: number;
787
- const MIXED_CLONE: number;
788
- const MONOCHROME_TRANSFER: number;
789
701
  const CMP_EQ: number;
790
702
  const CMP_GT: number;
791
703
  const CMP_GE: number;
792
704
  const CMP_LT: number;
793
705
  const CMP_LE: number;
794
706
  const CMP_NE: number;
795
- const COLORMAP_JET: number;
796
- const COLORMAP_VIRIDIS: number;
797
- const COLORMAP_TURBO: number;
798
- const COLORMAP_HOT: number;
799
- const COLORMAP_RAINBOW: number;
800
- const COLORMAP_AUTUMN: number;
801
- const COLORMAP_BONE: number;
802
- const COLORMAP_PARULA: number;
803
- const COLORMAP_INFERNO: number;
804
- const COLORMAP_MAGMA: number;
805
- const COLORMAP_PLASMA: number;
806
707
  const MORPH_HITMISS: number;
807
- const WARP_POLAR_LINEAR: number;
808
- const WARP_POLAR_LOG: number;
809
708
  const MARKER_CROSS: number;
810
709
  const MARKER_TILTED_CROSS: number;
811
710
  const MARKER_STAR: number;
@@ -813,11 +712,4 @@ declare namespace cv {
813
712
  const MARKER_SQUARE: number;
814
713
  const MARKER_TRIANGLE_UP: number;
815
714
  const MARKER_TRIANGLE_DOWN: number;
816
- const GC_BGD: number;
817
- const GC_FGD: number;
818
- const GC_PR_BGD: number;
819
- const GC_PR_FGD: number;
820
- const GC_INIT_WITH_RECT: number;
821
- const GC_INIT_WITH_MASK: number;
822
- const GC_EVAL: number;
823
715
  }
@@ -102,6 +102,39 @@ declare interface $节点信息 {
102
102
  * 节点是否可接收事件 用于判断是否显示在屏幕上
103
103
  */
104
104
  hittable(): 布尔值;
105
+ /**
106
+ * 无障碍点击
107
+ */
108
+ tap(): 布尔值;
109
+ /**
110
+ * 无障碍双击
111
+ */
112
+ doubleTap(): 布尔值;
113
+ /**
114
+ * 无障碍长按
115
+ * @param duration 长按持续时间,单位毫秒
116
+ */
117
+ press(duration: 数字): 布尔值;
118
+ /**
119
+ * 将节点滚动到可见区域
120
+ */
121
+ scrollToVisible(): 布尔值;
122
+ /**
123
+ * 清空输入
124
+ */
125
+ clearInput(): 布尔值;
126
+ /**
127
+ * 追加输入(聚焦后输入)
128
+ * @param text 要输入的文本
129
+ */
130
+ input(text: 字符串): 布尔值;
131
+ /**
132
+ * 设置节点的值,按控件类型自动处理:
133
+ * - `XCUIElementTypePickerWheel`:传选项文案,如 `"1小时"`
134
+ * - 文本类控件(`TextField` / `SecureTextField` / `TextView` / `SearchField` 等):传要输入的文本(先聚焦再输入,不清空已有内容)
135
+ * @param text 目标值
136
+ */
137
+ setValue(text: 字符串): 布尔值;
105
138
  /**
106
139
  * 获取父节点
107
140
  */