{"_id":"@aliakhgar1/react-native-ikev2","name":"@aliakhgar1/react-native-ikev2","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@aliakhgar1/react-native-ikev2","version":"1.0.0","description":"An advanced React Native TurboModule for IKEv2","main":"./lib/module/index.js","types":"./lib/typescript/src/index.d.ts","exports":{".":{"source":"./src/index.tsx","types":"./lib/typescript/src/index.d.ts","default":"./lib/module/index.js"},"./package.json":"./package.json"},"scripts":{"example":"yarn workspace react-native-ikev2-example","test":"jest","typecheck":"tsc","lint":"eslint \"**/*.{js,ts,tsx}\"","clean":"del-cli android/build example/android/build example/android/app/build example/ios/build lib","prepare":"bob build","release":"release-it --only-version","semantic-release":"semantic-release"},"keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/AliAkhgar/react-native-ikev2.git"},"author":{"name":"Ali Akhgar","email":"theakhgar@gmail.com","url":"https://github.com/AliAkhgar"},"license":"MIT","bugs":{"url":"https://github.com/AliAkhgar/react-native-ikev2/issues"},"homepage":"https://github.com/AliAkhgar/react-native-ikev2#readme","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"devDependencies":{"@commitlint/config-conventional":"^19.6.0","@eslint/compat":"^1.2.7","@eslint/eslintrc":"^3.3.0","@eslint/js":"^9.22.0","@evilmartians/lefthook":"^1.5.0","@react-native-community/cli":"15.0.0-alpha.2","@react-native/babel-preset":"0.79.2","@react-native/eslint-config":"^0.78.0","@release-it/conventional-changelog":"^9.0.2","@types/jest":"^29.5.5","@types/react":"^19.0.0","commitlint":"^19.6.1","del-cli":"^5.1.0","eslint":"^9.22.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","jest":"^29.7.0","prettier":"^3.0.3","react":"19.0.0","react-native":"0.79.2","react-native-builder-bob":"^0.40.8","release-it":"^17.10.0","semantic-release":"^24.2.9","turbo":"^1.10.7","typescript":"^5.8.3"},"peerDependencies":{"react":"*","react-native":"*"},"workspaces":["example"],"packageManager":"yarn@3.6.1","jest":{"preset":"react-native","modulePathIgnorePatterns":["<rootDir>/example/node_modules","<rootDir>/lib/"]},"commitlint":{"extends":["@commitlint/config-conventional"]},"release-it":{"git":{"commitMessage":"chore: release ${version}","tagName":"v${version}"},"npm":{"publish":true},"github":{"release":true},"plugins":{"@release-it/conventional-changelog":{"preset":{"name":"angular"}}}},"prettier":{"quoteProps":"consistent","singleQuote":true,"tabWidth":2,"trailingComma":"es5","useTabs":false},"react-native-builder-bob":{"source":"src","output":"lib","targets":[["module",{"esm":true}],["typescript",{"project":"tsconfig.build.json"}]]},"codegenConfig":{"name":"Ikev2Spec","type":"modules","jsSrcsDir":"src","android":{"javaPackageName":"com.ikev2"}},"create-react-native-library":{"languages":"kotlin-objc","type":"turbo-module","version":"0.52.0"},"_id":"@aliakhgar1/react-native-ikev2@1.0.0","gitHead":"bb030d95af19aa641d79fe41603585d4c38f2543","_nodeVersion":"20.19.6","_npmVersion":"10.9.4","dist":{"integrity":"sha512-cVfzyvRJqd7HkUf/I3SKnn1vcU259cQ/mhfIWkJXUxdgqLGakIEPYIZfvdc75uBT8ocQ9/5TCU7NvlMDTdjLUg==","shasum":"8ce380427b36d6bb6a6eb0deb69d730d49083d4e","tarball":"https://registry.npmjs.org/@aliakhgar1/react-native-ikev2/-/react-native-ikev2-1.0.0.tgz","fileCount":147,"unpackedSize":21840130,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC4MP8NQS4YJWsuB7+oD1NZ4ZHY+qk+lpoTB7lXxf6cCAiA43E6FuGhPL6+1SgS+2nTPkJo3c9kt0mS2WNE4o8VjJQ=="}]},"_npmUser":{"name":"aliakhgar","email":"theakhgar@gmail.com"},"directories":{},"maintainers":[{"name":"aliakhgar","email":"theakhgar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-ikev2_1.0.0_1764852891223_0.18558223118072337"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-04T12:54:51.103Z","1.0.0":"2025-12-04T12:54:51.624Z","modified":"2025-12-04T12:54:52.039Z"},"maintainers":[{"name":"aliakhgar","email":"theakhgar@gmail.com"}],"description":"An advanced React Native TurboModule for IKEv2","homepage":"https://github.com/AliAkhgar/react-native-ikev2#readme","keywords":["react-native","ios","android"],"repository":{"type":"git","url":"git+https://github.com/AliAkhgar/react-native-ikev2.git"},"author":{"name":"Ali Akhgar","email":"theakhgar@gmail.com","url":"https://github.com/AliAkhgar"},"bugs":{"url":"https://github.com/AliAkhgar/react-native-ikev2/issues"},"license":"MIT","readme":"<p align=\"center\">\n  <img width=\"1244\" height=\"294\" alt=\"Generated Image December 04, 2025 - 3_20PM\" src=\"https://github.com/user-attachments/assets/df49b2fb-232e-4afd-a919-3b8f2dffc61e\" />\n\n</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/React%20Native-Turbo%20Module-61DAFB?style=flat-square&logo=react&logoColor=white\" alt=\"React Native Turbo Module\" />\n  <img src=\"https://img.shields.io/badge/IKEv2-Protocol-blue?style=flat-square&logo=strongswan&logoColor=red\" alt=\"IKEv2 Protocol\" />\n  <img src=\"https://img.shields.io/badge/License-MIT-green?style=flat-square&logo=strongswan&logoColor=red\" alt=\"MIT License\" />\n</p>\n\n<div valign=\"top\" align=\"right\">\n  <img align=\"right\" padding=\"200\" width=\"50%\" height=\"600\" style=\"margin:200px;\" src=\"https://github.com/user-attachments/assets/8803e977-283f-4c8b-baa3-3175fbee3532\">\n</div>\n\n<h3>Features</h3>\n\n⚡ **Turbo Module** architecture for optimal performance  \n🔐 **IKEv2/IPSec** native protocol support  \n🍎 **iOS Built-in** NEVPNManager integration  \n🤖 **Android strongSwan** implementation  \n🔔 **Customizable notifications** with actions and timers  \n🔄 **Event-driven** connection state management  \n📝 **Fully typed** APIs with IntelliSense support  \n🌐 **Advanced routing** and custom DNS features\n\n## 🧭 Fast Navigation\n\n<div align=\"center\">\n\n**📦 Installation** - Complete setup and platform configuration guide  \n<a href=\"docs/INSTALLATION.md\" style=\"color: #007acc; text-decoration: none;\">→ Browse Installation Guide</a>\n\n**📋 API Reference** - Complete method and interface documentation  \n<a href=\"docs/API.md\" style=\"color: #007acc; text-decoration: none;\">→ Browse API Documentation</a>\n\n**💡 Usage Example** - Practical implementation examples and guides  \n<a href=\"docs/EXAMPLES.md\" style=\"color: #007acc; text-decoration: none;\">→ View Usage Examples</a>\n\n**🔧 Troubleshoot and Debug** - Problem solutions and debugging tools  \n<a href=\"docs/DEBUG.md\" style=\"color: #007acc; text-decoration: none;\">→ Access Troubleshooting Guide</a>\n\n</div>\n\n---\n\n## 📦 Installation\n\n### Quick Install\n\n```bash\n# Using npm\nnpm install @aliakhgar1/react-native-ikev2\n\n# Using yarn\nyarn add @aliakhgar1/react-native-ikev2\n\n# Install iOS dependencies (iOS only)\ncd ios && pod install\n```\n\n### 🎯 Prerequisites\n\n**React Native:** 0.68+  \n**Android:** API 24+  \n**iOS:** 15.1+\n\n---\n\n## 🚀 Quick Start\n\nGet up and running with IKEv2 VPN connectivity in under 5 minutes:\n\n```typescript\nimport * as IKEv2 from '@aliakhgar1/react-native-ikev2';\n\n// 1. Check permissions (Android only)\nconst connectToVPN = async () => {\n  if (Platform.OS === 'android') {\n    const isPrepared = await IKEv2.isPrepared();\n    if (!isPrepared) {\n      const granted = await IKEv2.prepare();\n      if (!granted) return; // User denied permission\n    }\n  }\n\n  // 2. Connect with minimal configuration\n  await IKEv2.connect({\n    address: 'your-vpn-server.com',\n    username: 'your-username',\n    password: 'your-password',\n\n    iOSOptions: {\n      localizedDescription: 'My IKEv2 Connection',\n      disconnectOnSleep: false,\n      onDemandEnabled: false,\n    },\n\n    androidOptions: {\n      connectionName: 'My IKEv2 VPN',\n      AuthType: IKEv2.AndroidAuthType.IKEv2_EAP,\n      Notification: {\n        openActivityPackageName: 'com.yourapp.MainActivity',\n        titleConnected: '🔒 Secure Connection Active',\n        titleConnecting: '🔄 Connecting to VPN...',\n        showDisconnectAction: true,\n      },\n    },\n  });\n};\n\n// 3. Listen for connection state changes\nconst subscription = IKEv2.addIKev2StateChangeListener((state) => {\n  switch (state.state) {\n    case IKEv2.ConnectionState.CONNECTED:\n      console.log('🟢 VPN Connected Successfully!');\n      break;\n    case IKEv2.ConnectionState.DISCONNECTED:\n      console.log('🔴 VPN Disconnected');\n      break;\n    case IKEv2.ConnectionState.CONNECTING:\n      console.log('🟡 Connecting to VPN...');\n      break;\n  }\n});\n\n// 4. Disconnect when done\nawait IKEv2.disconnect();\nsubscription.remove();\n```\n\n## Contributing\n\nSee the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.\n\n---\n\nMade with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)\n","readmeFilename":"README.md","_rev":"1-d955e717d3513e537e342dfdd2e758f0"}