{"_id":"@acabai/ios","_rev":"2-4efb4c3c133d16ec9e5c8e746dbdc884","name":"@acabai/ios","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@acabai/ios","version":"1.0.0","keywords":["acabai","ios","automation","appium","webdriverio","testing","ai"],"author":{"name":"acabAI Team"},"license":"MIT","_id":"@acabai/ios@1.0.0","maintainers":[{"name":"nodevexcon","email":"icguner@hotmail.com"}],"dist":{"shasum":"61614b6b02dc5d0a3ca36242c16bf070ff81abc8","tarball":"https://registry.npmjs.org/@acabai/ios/-/ios-1.0.0.tgz","fileCount":11,"integrity":"sha512-EU11xQrKOSArjR5SYb4HW5sf27J5hVQqDbCXAcs3rhfYlWYE3c6RlITLSNcl67rnGGBB9CkDS7Wm0vvovi5kbg==","signatures":[{"sig":"MEUCIQChLvwph+Oc+O7cGOLzkQ5X0JHUKzgD9WSNysDWzI+0/gIgY9vqW5FarINWTgCBypy5lBTwpmpE40F88ndV0be5s4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62402},"main":"./dist/lib/index.js","types":"./dist/lib/index.d.ts","exports":{".":{"types":"./dist/lib/index.d.ts","default":"./dist/lib/index.js"}},"gitHead":"46d9c6a75d55e88473b4e21f7c7e67dc7bc3bd31","scripts":{"dev":"modern dev","test":"vitest run","build":"modern build","example:ai":"ts-node examples/ai-automation.ts","test:watch":"vitest","example:basic":"ts-node examples/basic-usage.ts","example:sauce":"ts-node examples/sauce-labs.ts","example:custom-hub":"ts-node examples/custom-hub.ts"},"_npmUser":{"name":"nodevexcon","email":"icguner@hotmail.com"},"_npmVersion":"10.7.0","description":"Appium-based iOS automation library for acabAI","directories":{},"_nodeVersion":"22.8.0","dependencies":{"debug":"^4.3.4","@acabai/web":"^1.3.0","webdriverio":"^8.32.3","@acabai/core":"^1.0.1","@acabai/shared":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^1.0.0","ts-node":"^10.9.1","typescript":"^5.0.0","@types/node":"^20.0.0","@types/debug":"^4.1.8","@modern-js/module-tools":"^2.0.0"},"peerDependencies":{"webdriverio":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ios_1.0.0_1746997948080_0.36531284380782014","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@acabai/ios","version":"1.0.1","description":"Appium-based iOS automation library for acabAI","main":"./dist/lib/index.js","types":"./dist/lib/index.d.ts","exports":{".":{"types":"./dist/lib/index.d.ts","default":"./dist/lib/index.js"}},"scripts":{"build":"modern build","dev":"modern dev","example:basic":"ts-node examples/basic-usage.ts","example:custom-hub":"ts-node examples/custom-hub.ts","example:sauce":"ts-node examples/sauce-labs.ts","example:ai":"ts-node examples/ai-automation.ts","test":"vitest run","test:watch":"vitest"},"keywords":["acabai","ios","automation","appium","webdriverio","testing","ai"],"author":{"name":"acabAI Team"},"license":"MIT","dependencies":{"@acabai/core":"^1.0.3","@acabai/shared":"^1.0.1","@acabai/web":"^1.4.4","webdriverio":"^8.32.3","debug":"^4.3.4"},"devDependencies":{"@modern-js/module-tools":"^2.0.0","@types/debug":"^4.1.8","@types/node":"^20.0.0","ts-node":"^10.9.1","typescript":"^5.0.0","vitest":"^1.0.0"},"peerDependencies":{"webdriverio":"^8.0.0"},"_id":"@acabai/ios@1.0.1","gitHead":"46d9c6a75d55e88473b4e21f7c7e67dc7bc3bd31","_nodeVersion":"22.8.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-PK0IeAbHSY3IlNjKEs8zP0B4A3VtOPI24+ptPUNm0tiHKzVXE40SoWw2nJBh4NmgqAqzRQ6spaXzV5y8quhmow==","shasum":"8401fc9232c39246e49fe7198659b77929d57086","tarball":"https://registry.npmjs.org/@acabai/ios/-/ios-1.0.1.tgz","fileCount":11,"unpackedSize":62402,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDdwcH4Z8eubH+2xZZRDIemdD5KrSefpzS0/4dAb7EjHwIgYs0Fzlf9lKj6Nb7rjn96pq95nA58QpsWuxEehtKr/CY="}]},"_npmUser":{"name":"nodevexcon","email":"icguner@hotmail.com"},"directories":{},"maintainers":[{"name":"nodevexcon","email":"icguner@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ios_1.0.1_1747017141074_0.1441950671549821"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-11T21:12:27.986Z","modified":"2025-05-12T02:32:21.473Z","1.0.0":"2025-05-11T21:12:28.277Z","1.0.1":"2025-05-12T02:32:21.250Z"},"author":{"name":"acabAI Team"},"license":"MIT","keywords":["acabai","ios","automation","appium","webdriverio","testing","ai"],"description":"Appium-based iOS automation library for acabAI","maintainers":[{"name":"nodevexcon","email":"icguner@hotmail.com"}],"readme":"# @acabai/ios\n\niOS automation library for acabAI. Automate UI actions, extract data, and perform assertions using AI.\n\nThis package uses Appium and WebdriverIO to provide a robust and flexible iOS automation solution.\n\n## Installation\n\n```bash\nnpm install @acabai/ios webdriverio\n```\n\nNote: You need to have Appium server installed and running to use this package. See [Appium Installation Guide](https://appium.io/docs/en/2.0/quickstart/install/) for details.\n\n## Documentation\n\n### Basic Usage with Local Appium Server\n\n```typescript\nimport { IOSAgent, agentFromLocalAppium, type IOSCapabilities } from '@acabai/ios';\n\n// Define capabilities for the iOS device/simulator\nconst capabilities: IOSCapabilities = {\n  platformName: 'iOS',\n  'appium:automationName': 'XCUITest',\n  'appium:deviceName': 'iPhone Simulator',\n  'appium:udid': 'device_udid', // Optional: Specific device ID\n  'appium:bundleId': 'com.apple.Preferences',\n  'appium:noReset': true\n};\n\n// Create an agent using a local Appium server\nconst agent = await agentFromLocalAppium(capabilities);\n\n// Launch the app\nawait agent.launch('com.apple.Preferences');\n\n// Take a screenshot\nconst screenshot = await agent.page.screenshotBase64();\n\n// Get screen size\nconst size = await agent.page.size();\n\n// Tap on the screen\nawait agent.page.tap(100, 200);\n\n// Scroll down\nawait agent.page.scrollDown(200);\n\n// Use AI to find and interact with elements\nawait agent.aiAction('Find and tap on the Wi-Fi option');\n\n// Check conditions with AI\nconst isEnabled = await agent.aiAssert('Is Wi-Fi enabled?');\n\n// Clean up\nawait agent.page.disconnect();\n```\n\n### Using a Custom Appium Server\n\n```typescript\nimport { \n  agentFromAppiumServer, \n  type AppiumServerConfig, \n  type IOSCapabilities \n} from '@acabai/ios';\n\n// Define custom Appium server configuration\nconst serverConfig: AppiumServerConfig = {\n  hostname: 'appium.example.com',\n  port: 4723,\n  path: '/wd/hub',\n  protocol: 'https'\n};\n\n// Define capabilities for the iOS device\nconst capabilities: IOSCapabilities = {\n  platformName: 'iOS',\n  'appium:automationName': 'XCUITest',\n  'appium:deviceName': 'iPhone',\n  'appium:bundleId': 'com.example.app'\n};\n\n// Create an agent using the custom Appium server\nconst agent = await agentFromAppiumServer(serverConfig, capabilities);\n```\n\n### Using Sauce Labs\n\n```typescript\nimport { \n  agentFromSauceLabs, \n  type SauceLabsConfig, \n  type IOSSauceLabsCapabilities \n} from '@acabai/ios';\n\n// Define Sauce Labs configuration\nconst sauceConfig: SauceLabsConfig = {\n  username: 'your-sauce-username',\n  accessKey: 'your-sauce-access-key',\n  region: 'us-west-1' // or 'us-east-1' or 'eu-central-1'\n};\n\n// Define capabilities for the iOS device on Sauce Labs\nconst capabilities: IOSSauceLabsCapabilities = {\n  platformName: 'iOS',\n  'appium:automationName': 'XCUITest',\n  'appium:deviceName': 'iPhone.*',\n  'appium:platformVersion': '16',\n  'appium:bundleId': 'com.apple.Preferences',\n  'sauce:options': {\n    name: 'My iOS Test',\n    build: 'Build 1'\n  }\n};\n\n// Create an agent using Sauce Labs\nconst agent = await agentFromSauceLabs(sauceConfig, capabilities);\n```\n\n## Required Appium Capabilities\n\nThe following capabilities are required for basic Appium functionality:\n\n- `platformName`: Must be 'iOS'\n- `appium:automationName`: Should be 'XCUITest' for iOS\n- `appium:deviceName`: A name for the device (e.g., 'iPhone Simulator', 'iPhone 14')\n\nAdditional useful capabilities:\n\n- `appium:udid`: Device ID for connecting to a specific device\n- `appium:app`: Path or URL to the .app or .ipa file\n- `appium:bundleId`: Bundle ID of the app\n- `appium:platformVersion`: iOS version\n- `appium:noReset`: Prevent app data from being cleared between sessions\n- `appium:autoAcceptAlerts`: Automatically accept permission alerts\n\n## Appium Server Setup\n\n### macOS Requirements\n\niOS automation with Appium requires macOS with:\n\n1. Xcode (from App Store)\n2. Xcode Command Line Tools: `xcode-select --install`\n3. Node.js and npm\n4. Appium: `npm install -g appium`\n5. Appium XCUITest driver: `appium driver install xcuitest`\n\n### Checking Setup\n\nUse appium-doctor to verify your setup:\n\n```bash\nnpm install -g appium-doctor\nappium-doctor --ios\n```\n\nFix any issues reported by appium-doctor before using this package.\n\n## Examples\n\nThe package includes several examples in the `examples` directory:\n\n- `basic-usage.ts`: Basic iOS automation\n- `custom-hub.ts`: Using a custom Appium server\n- `sauce-labs.ts`: Using Sauce Labs cloud testing\n- `ai-automation.ts`: AI-powered automation\n\nRun the examples with:\n\n```bash\n# Basic usage example\nnpm run example:basic\n\n# Custom Appium server example\nnpm run example:custom-hub\n\n# Sauce Labs integration example\nnpm run example:sauce\n\n# AI-powered automation example\nnpm run example:ai\n```\n\n## License\n\nacabAI is MIT licensed.\n","readmeFilename":"README.md"}