@midscene/ios 1.10.6 → 1.10.7-beta-20260720030503.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/dist/es/cli.mjs CHANGED
@@ -1629,7 +1629,7 @@ class IOSMidsceneTools extends BaseMidsceneTools {
1629
1629
  const tools = new IOSMidsceneTools();
1630
1630
  runToolsCLI(tools, 'midscene-ios', {
1631
1631
  stripPrefix: 'ios_',
1632
- version: "1.10.6",
1632
+ version: "1.10.7-beta-20260720030503.0",
1633
1633
  extraCommands: createReportCliCommands()
1634
1634
  }).catch((e)=>{
1635
1635
  process.exit(reportCLIError(e));
package/dist/lib/cli.js CHANGED
@@ -1653,7 +1653,7 @@ class IOSMidsceneTools extends base_tools_namespaceObject.BaseMidsceneTools {
1653
1653
  const tools = new IOSMidsceneTools();
1654
1654
  (0, cli_namespaceObject.runToolsCLI)(tools, 'midscene-ios', {
1655
1655
  stripPrefix: 'ios_',
1656
- version: "1.10.6",
1656
+ version: "1.10.7-beta-20260720030503.0",
1657
1657
  extraCommands: (0, core_namespaceObject.createReportCliCommands)()
1658
1658
  }).catch((e)=>{
1659
1659
  process.exit((0, cli_namespaceObject.reportCLIError)(e));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@midscene/ios",
3
- "version": "1.10.6",
3
+ "version": "1.10.7-beta-20260720030503.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/midscene.git",
@@ -43,10 +43,10 @@
43
43
  "dependencies": {
44
44
  "@inquirer/prompts": "^7.8.6",
45
45
  "open": "10.1.0",
46
- "@midscene/core": "1.10.6",
47
- "@midscene/shared": "1.10.6",
48
- "@midscene/webdriver": "1.10.6",
49
- "@midscene/playground": "1.10.6"
46
+ "@midscene/core": "1.10.7-beta-20260720030503.0",
47
+ "@midscene/shared": "1.10.7-beta-20260720030503.0",
48
+ "@midscene/webdriver": "1.10.7-beta-20260720030503.0",
49
+ "@midscene/playground": "1.10.7-beta-20260720030503.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@rslib/core": "^0.18.3",
package/static/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html><head><link rel="icon" href="/favicon.ico"><title>Midscene Playground</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/lib-react.7b1abe58.js"></script><script defer src="/static/js/859.2cecd47a.js"></script><script defer src="/static/js/index.5c44b734.js"></script><link href="/static/css/index.2b6b43ad.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
1
+ <!doctype html><html><head><link rel="icon" href="/favicon.ico"><title>Midscene Playground</title><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script defer src="/static/js/lib-react.7b1abe58.js"></script><script defer src="/static/js/859.2cecd47a.js"></script><script defer src="/static/js/index.7b7081f0.js"></script><link href="/static/css/index.2b6b43ad.css" rel="stylesheet"></head><body><div id="root"></div></body></html>
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkplayground=self.webpackChunkplayground||[]).push([["985"],{4168(t,e,a){a.d(e,{createCanvasFallbackModule:()=>v});var n=a(4565),r=a(5320);function i(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}let o=(0,n.a)("img:canvas-fallback");class g{get_width(){return this._width}get_height(){return this._height}get_raw_pixels(){return new Uint8Array(this.ctx.getImageData(0,0,this._width,this._height).data.buffer)}get_bytes_jpeg(t){let e=atob(this.canvas.toDataURL("image/jpeg",t/100).split(",")[1]),a=new Uint8Array(e.length);for(let t=0;t<e.length;t++)a[t]=e.charCodeAt(t);return a}free(){}_getCanvas(){return this.canvas}_getContext(){return this.ctx}static async new_from_base64(t){return new Promise((e,a)=>{let n=new Image;if(n.onload=()=>{let t=document.createElement("canvas");t.width=n.width,t.height=n.height;let r=t.getContext("2d");r?(r.drawImage(n,0,0),e(new g(t))):a(Error("Failed to get 2d context"))},n.onerror=()=>{a(Error("Failed to load image"))},t.startsWith("data:"))n.src=t;else{let e=(0,r.gF)(t)??"png";n.src=`data:${(0,r.QO)(e)};base64,${t}`}})}static async new_from_byteslice(t){return new Promise((e,a)=>{let n=(0,r.al)(t)??"png",i=new Blob([t],{type:(0,r.QO)(n)}),o=URL.createObjectURL(i),l=new Image;l.onload=()=>{let t=document.createElement("canvas");t.width=l.width,t.height=l.height;let n=t.getContext("2d");if(!n){URL.revokeObjectURL(o),a(Error("Failed to get 2d context"));return}n.drawImage(l,0,0),URL.revokeObjectURL(o),e(new g(t))},l.onerror=()=>{URL.revokeObjectURL(o),a(Error("Failed to load image from bytes"))},l.src=o})}constructor(t){i(this,"canvas",void 0),i(this,"ctx",void 0),i(this,"_width",void 0),i(this,"_height",void 0),this.canvas=t;const e=t.getContext("2d");if(!e)throw Error("Failed to get 2d context");this.ctx=e,this._width=t.width,this._height=t.height}}let l={Nearest:"nearest",Triangle:"triangle",CatmullRom:"catmullrom",Gaussian:"gaussian",Lanczos3:"lanczos3"};class h{constructor(t,e,a,n){i(this,"r",void 0),i(this,"g",void 0),i(this,"b",void 0),i(this,"a",void 0),this.r=t,this.g=e,this.b=a,this.a=n}}function d(t,e,a,n){let r=document.createElement("canvas");r.width=e,r.height=a;let i=r.getContext("2d");if(!i)throw Error("Failed to get 2d context");return i.imageSmoothingEnabled=!0,i.imageSmoothingQuality="high",i.drawImage(t._getCanvas(),0,0,e,a),new g(r)}function c(t,e,a,n,r){let i=n-e,o=r-a,l=document.createElement("canvas");l.width=i,l.height=o;let h=l.getContext("2d");if(!h)throw Error("Failed to get 2d context");return h.drawImage(t._getCanvas(),e,a,i,o,0,0,i,o),new g(l)}function s(t,e,a){let n=t.get_width()+e,r=t.get_height(),i=document.createElement("canvas");i.width=n,i.height=r;let o=i.getContext("2d");if(!o)throw Error("Failed to get 2d context");return o.fillStyle=`rgba(${a.r}, ${a.g}, ${a.b}, ${a.a/255})`,o.fillRect(0,0,n,r),o.drawImage(t._getCanvas(),0,0),new g(i)}function w(t,e,a){let n=t.get_width(),r=t.get_height()+e,i=document.createElement("canvas");i.width=n,i.height=r;let o=i.getContext("2d");if(!o)throw Error("Failed to get 2d context");return o.fillStyle=`rgba(${a.r}, ${a.g}, ${a.b}, ${a.a/255})`,o.fillRect(0,0,n,r),o.drawImage(t._getCanvas(),0,0),new g(i)}function m(t,e,a){let n=t.get_width()+2*e,r=t.get_height()+2*e,i=document.createElement("canvas");i.width=n,i.height=r;let o=i.getContext("2d");if(!o)throw Error("Failed to get 2d context");return o.fillStyle=`rgba(${a.r}, ${a.g}, ${a.b}, ${a.a/255})`,o.fillRect(0,0,n,r),o.drawImage(t._getCanvas(),e,e),new g(i)}function u(t,e,a){let n=t.get_width()+e,r=t.get_height(),i=document.createElement("canvas");i.width=n,i.height=r;let o=i.getContext("2d");if(!o)throw Error("Failed to get 2d context");return o.fillStyle=`rgba(${a.r}, ${a.g}, ${a.b}, ${a.a/255})`,o.fillRect(0,0,n,r),o.drawImage(t._getCanvas(),e,0),new g(i)}function _(t,e,a){let n=t.get_width(),r=t.get_height()+e,i=document.createElement("canvas");i.width=n,i.height=r;let o=i.getContext("2d");if(!o)throw Error("Failed to get 2d context");return o.fillStyle=`rgba(${a.r}, ${a.g}, ${a.b}, ${a.a/255})`,o.fillRect(0,0,n,r),o.drawImage(t._getCanvas(),0,e),new g(i)}function f(t,e,a,n){let r=document.createElement("canvas");r.width=t.get_width(),r.height=t.get_height();let i=r.getContext("2d");if(!i)throw Error("Failed to get 2d context");return i.drawImage(t._getCanvas(),0,0),i.drawImage(e._getCanvas(),a,n),new g(r)}function v(){return o("Creating Canvas fallback module"),console.log("[midscene:img] Using Canvas fallback (Photon WASM not available)"),{PhotonImage:g,SamplingFilter:l,resize:d,crop:c,open_image:()=>{throw Error("open_image not supported in Canvas fallback")},base64_to_image:g.new_from_base64,padding_uniform:m,padding_left:u,padding_right:s,padding_top:_,padding_bottom:w,watermark:f,Rgba:h}}}}]);
2
+ //# sourceMappingURL=985.9101002d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/async/985.9101002d.js","sources":["../../../../../../packages/shared/dist/es/img/canvas-fallback.mjs"],"sourcesContent":["import { getDebug } from \"../logger.mjs\";\nimport { detectScreenshotImageFormatFromBuffer, inferScreenshotImageFormatFromBase64, screenshotImageMimeType } from \"./image-format.mjs\";\nfunction _define_property(obj, key, value) {\n if (key in obj) Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n else obj[key] = value;\n return obj;\n}\nconst debug = getDebug('img:canvas-fallback');\nclass CanvasImage {\n get_width() {\n return this._width;\n }\n get_height() {\n return this._height;\n }\n get_raw_pixels() {\n const imageData = this.ctx.getImageData(0, 0, this._width, this._height);\n return new Uint8Array(imageData.data.buffer);\n }\n get_bytes_jpeg(quality) {\n const dataUrl = this.canvas.toDataURL('image/jpeg', quality / 100);\n const base64 = dataUrl.split(',')[1];\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for(let i = 0; i < binary.length; i++)bytes[i] = binary.charCodeAt(i);\n return bytes;\n }\n free() {}\n _getCanvas() {\n return this.canvas;\n }\n _getContext() {\n return this.ctx;\n }\n static async new_from_base64(base64Body) {\n return new Promise((resolve, reject)=>{\n const img = new Image();\n img.onload = ()=>{\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n if (!ctx) return void reject(new Error('Failed to get 2d context'));\n ctx.drawImage(img, 0, 0);\n resolve(new CanvasImage(canvas));\n };\n img.onerror = ()=>{\n reject(new Error('Failed to load image'));\n };\n if (base64Body.startsWith('data:')) img.src = base64Body;\n else {\n const format = inferScreenshotImageFormatFromBase64(base64Body) ?? 'png';\n img.src = `data:${screenshotImageMimeType(format)};base64,${base64Body}`;\n }\n });\n }\n static async new_from_byteslice(bytes) {\n return new Promise((resolve, reject)=>{\n const format = detectScreenshotImageFormatFromBuffer(bytes) ?? 'png';\n const blob = new Blob([\n bytes\n ], {\n type: screenshotImageMimeType(format)\n });\n const url = URL.createObjectURL(blob);\n const img = new Image();\n img.onload = ()=>{\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n URL.revokeObjectURL(url);\n reject(new Error('Failed to get 2d context'));\n return;\n }\n ctx.drawImage(img, 0, 0);\n URL.revokeObjectURL(url);\n resolve(new CanvasImage(canvas));\n };\n img.onerror = ()=>{\n URL.revokeObjectURL(url);\n reject(new Error('Failed to load image from bytes'));\n };\n img.src = url;\n });\n }\n constructor(canvas){\n _define_property(this, \"canvas\", void 0);\n _define_property(this, \"ctx\", void 0);\n _define_property(this, \"_width\", void 0);\n _define_property(this, \"_height\", void 0);\n this.canvas = canvas;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n this.ctx = ctx;\n this._width = canvas.width;\n this._height = canvas.height;\n }\n}\nconst CanvasSamplingFilter = {\n Nearest: 'nearest',\n Triangle: 'triangle',\n CatmullRom: 'catmullrom',\n Gaussian: 'gaussian',\n Lanczos3: 'lanczos3'\n};\nclass CanvasRgba {\n constructor(r, g, b, a){\n _define_property(this, \"r\", void 0);\n _define_property(this, \"g\", void 0);\n _define_property(this, \"b\", void 0);\n _define_property(this, \"a\", void 0);\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n}\nfunction canvasResize(image, newWidth, newHeight, _filter) {\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.imageSmoothingEnabled = true;\n ctx.imageSmoothingQuality = 'high';\n ctx.drawImage(image._getCanvas(), 0, 0, newWidth, newHeight);\n return new CanvasImage(canvas);\n}\nfunction canvasCrop(image, x1, y1, x2, y2) {\n const width = x2 - x1;\n const height = y2 - y1;\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.drawImage(image._getCanvas(), x1, y1, width, height, 0, 0, width, height);\n return new CanvasImage(canvas);\n}\nfunction canvasPaddingRight(image, padding, color) {\n const newWidth = image.get_width() + padding;\n const height = image.get_height();\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`;\n ctx.fillRect(0, 0, newWidth, height);\n ctx.drawImage(image._getCanvas(), 0, 0);\n return new CanvasImage(canvas);\n}\nfunction canvasPaddingBottom(image, padding, color) {\n const width = image.get_width();\n const newHeight = image.get_height() + padding;\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`;\n ctx.fillRect(0, 0, width, newHeight);\n ctx.drawImage(image._getCanvas(), 0, 0);\n return new CanvasImage(canvas);\n}\nfunction canvasPaddingUniform(image, padding, color) {\n const newWidth = image.get_width() + 2 * padding;\n const newHeight = image.get_height() + 2 * padding;\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`;\n ctx.fillRect(0, 0, newWidth, newHeight);\n ctx.drawImage(image._getCanvas(), padding, padding);\n return new CanvasImage(canvas);\n}\nfunction canvasPaddingLeft(image, padding, color) {\n const newWidth = image.get_width() + padding;\n const height = image.get_height();\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`;\n ctx.fillRect(0, 0, newWidth, height);\n ctx.drawImage(image._getCanvas(), padding, 0);\n return new CanvasImage(canvas);\n}\nfunction canvasPaddingTop(image, padding, color) {\n const width = image.get_width();\n const newHeight = image.get_height() + padding;\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = newHeight;\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.fillStyle = `rgba(${color.r}, ${color.g}, ${color.b}, ${color.a / 255})`;\n ctx.fillRect(0, 0, width, newHeight);\n ctx.drawImage(image._getCanvas(), 0, padding);\n return new CanvasImage(canvas);\n}\nfunction canvasWatermark(base, overlay, x, y) {\n const canvas = document.createElement('canvas');\n canvas.width = base.get_width();\n canvas.height = base.get_height();\n const ctx = canvas.getContext('2d');\n if (!ctx) throw new Error('Failed to get 2d context');\n ctx.drawImage(base._getCanvas(), 0, 0);\n ctx.drawImage(overlay._getCanvas(), x, y);\n return new CanvasImage(canvas);\n}\nfunction createCanvasFallbackModule() {\n debug('Creating Canvas fallback module');\n console.log('[midscene:img] Using Canvas fallback (Photon WASM not available)');\n return {\n PhotonImage: CanvasImage,\n SamplingFilter: CanvasSamplingFilter,\n resize: canvasResize,\n crop: canvasCrop,\n open_image: ()=>{\n throw new Error('open_image not supported in Canvas fallback');\n },\n base64_to_image: CanvasImage.new_from_base64,\n padding_uniform: canvasPaddingUniform,\n padding_left: canvasPaddingLeft,\n padding_right: canvasPaddingRight,\n padding_top: canvasPaddingTop,\n padding_bottom: canvasPaddingBottom,\n watermark: canvasWatermark,\n Rgba: CanvasRgba\n };\n}\nexport { CanvasImage, CanvasRgba, CanvasSamplingFilter, canvasCrop, canvasPaddingBottom, canvasPaddingLeft, canvasPaddingRight, canvasPaddingTop, canvasPaddingUniform, canvasResize, canvasWatermark, createCanvasFallbackModule };\n"],"names":["_define_property","obj","key","value","Object","debug","getDebug","CanvasImage","Uint8Array","imageData","quality","binary","atob","dataUrl","bytes","i","base64Body","Promise","resolve","reject","img","Image","canvas","document","ctx","Error","format","inferScreenshotImageFormatFromBase64","screenshotImageMimeType","detectScreenshotImageFormatFromBuffer","blob","Blob","url","URL","CanvasSamplingFilter","CanvasRgba","r","g","b","a","canvasResize","image","newWidth","newHeight","_filter","canvasCrop","x1","y1","x2","y2","width","height","canvasPaddingRight","padding","color","canvasPaddingBottom","canvasPaddingUniform","canvasPaddingLeft","canvasPaddingTop","canvasWatermark","base","overlay","x","y","createCanvasFallbackModule","console"],"mappings":"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"}