{"_id":"@capgo/capacitor-intune","_rev":"6-70db9b3b39a55826598413f85ee78cca","name":"@capgo/capacitor-intune","dist-tags":{"latest":"8.1.4"},"versions":{"8.0.0":{"name":"@capgo/capacitor-intune","version":"8.0.0","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-intune@8.0.0","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/docs/plugins/intune/","bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"dist":{"shasum":"6eb04752fe44a106d4205b37bf1dc424490f7b35","tarball":"https://registry.npmjs.org/@capgo/capacitor-intune/-/capacitor-intune-8.0.0.tgz","fileCount":30,"integrity":"sha512-NFw9ebkDzhXh/3Dv+OfnAig/aLR5ZP+haZV/m9cFzAHXYjDLMcpCJPXTx95oVgNODnT/TYj4n1iQhCfymp7gRA==","signatures":[{"sig":"MEUCIQDz67/LsyiAJyOgB5CHDt8uBauW92aYELrayL6xAq8AdQIgVitDzYPUo+Y1sNLjHrrrJZELg8OYRM/YL6KRVmTcyzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083925},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"a04e2500b964815b2f969c5be12b1200f8c537da","scripts":{"fmt":"bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format","lint":"bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint","build":"bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api IntuneMAMPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"bun run verify:ios && bun run verify:android && bun run verify:web","prettier":"prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorIntune -destination generic/platform=iOS","verify:web":"bun run build","check:wiring":"bun scripts/check-capacitor-plugin-wiring.mjs","prepublishOnly":"bun run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"_npmVersion":"11.11.0","description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","directories":{},"_nodeVersion":"24.14.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.10.1","@capacitor/cli":"^8.0.0","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.7.7","prettier-pretty-check":"^0.2.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-intune_8.0.0_1774417245100_0.22661031188166603","host":"s3://npm-registry-packages-npm-production"}},"8.1.1":{"name":"@capgo/capacitor-intune","version":"8.1.1","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-intune@8.1.1","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/docs/plugins/intune/","bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"dist":{"shasum":"a839447b3c8cadfd871fcf1084def79c34e70595","tarball":"https://registry.npmjs.org/@capgo/capacitor-intune/-/capacitor-intune-8.1.1.tgz","fileCount":30,"integrity":"sha512-3+PeRCUmkK8uFCFtEmvPkvp+8hU2w3SKc2WGEQeeZP62XlQ2y3PeXAZC9x3Ks72zmyshgl5vOUrtNZLReaqrdA==","signatures":[{"sig":"MEUCIGmQ7lhwM8xbdR2NPrW+2ENXEUQuzZke0JH/2WMul6mdAiEA4QbvsobuzsKaky81+d20YrEoMjTRPHWSNTDea/hjwMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-intune@8.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083930},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"8380fdba90a1486608190238cd09d96f7f1bf15b","scripts":{"fmt":"bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format","lint":"bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint","build":"bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api IntuneMAMPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"bun run verify:ios && bun run verify:android && bun run verify:web","prettier":"prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorIntune -destination generic/platform=iOS","verify:web":"bun run build","check:wiring":"bun scripts/check-capacitor-plugin-wiring.mjs","prepublishOnly":"bun run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"_npmVersion":"11.11.0","description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","directories":{},"_nodeVersion":"24.14.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.10.1","@capacitor/cli":"^8.0.0","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.7.7","prettier-pretty-check":"^0.2.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-intune_8.1.1_1775659856592_0.026509989565236314","host":"s3://npm-registry-packages-npm-production"}},"8.1.2":{"name":"@capgo/capacitor-intune","version":"8.1.2","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-intune@8.1.2","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://capgo.app/docs/plugins/intune/","bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"dist":{"shasum":"ae5d4ac6af4f73eb7bb9516e17666de5af4f9f6a","tarball":"https://registry.npmjs.org/@capgo/capacitor-intune/-/capacitor-intune-8.1.2.tgz","fileCount":30,"integrity":"sha512-DMI4AVQt1/u1vSKJu4jq5+azJQytMR7Ypk4Riy0NixGwmdyvNYXzebuZRc3iZlofMWn/fKJaKra+BeqGCfpdDA==","signatures":[{"sig":"MEUCIQCkQqFWmB8l0KExG9vzFrryWFbrw/+btiJiA2GiNeljuQIgD71kCFf6Kps42Vjt6/0XRVE0jH9iYonB9dFHRgHE210=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-intune@8.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1083919},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"7fb79107250e13ca199c5c8fdf802e18643000f2","scripts":{"fmt":"bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format","lint":"bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint","build":"bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api IntuneMAMPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"bun run verify:ios && bun run verify:android && bun run verify:web","prettier":"prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorIntune -destination generic/platform=iOS","verify:web":"bun run build","check:wiring":"bun scripts/check-capacitor-plugin-wiring.mjs","prepublishOnly":"bun run build","verify:android":"cd android && ./gradlew clean build test && cd .."},"_npmUser":{"name":"riderx","email":"martin.donadieu@hey.com"},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"_npmVersion":"11.11.0","description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","directories":{},"_nodeVersion":"24.14.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.10.1","@capacitor/cli":"^8.0.0","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.7.7","prettier-pretty-check":"^0.2.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-intune_8.1.2_1778504866359_0.331974931106056","host":"s3://npm-registry-packages-npm-production"}},"8.1.3":{"name":"@capgo/capacitor-intune","version":"8.1.3","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-intune@8.1.3","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"},{"name":"torichancapgo","email":"tori@capgo.app"}],"homepage":"https://capgo.app/docs/plugins/intune/","bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"dist":{"shasum":"0aeba683713d44e563f27d0eacdde31765d94d92","tarball":"https://registry.npmjs.org/@capgo/capacitor-intune/-/capacitor-intune-8.1.3.tgz","fileCount":33,"integrity":"sha512-dYzQILxv1qT5p57qI3XJlTuy0tw3m8ldg7ksR6mgqr6kTnPmBTlMFzPQsAfxZDmUwovi0fefIV3+kDYSUiFBpA==","signatures":[{"sig":"MEUCIQDajvBkinsSyDEFXrk7QxoJ6N+Y/+QUUxdqNb043EbSNAIgf709kbrOrSGrJUM7yQd4lUNaJQOf+HNpsQ52Yo1a1l0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-intune@8.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1085305},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ed070e2235ce728cd9be0616a4523d502627ebee","scripts":{"fmt":"bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format","lint":"bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint","build":"bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api IntuneMAMPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"bun run verify:ios && bun run verify:android && bun run verify:web","prettier":"prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorIntune -destination generic/platform=iOS","verify:web":"bun run build","changelog:ai":"node scripts/generate-ai-changelog.mjs","check:wiring":"bun scripts/check-capacitor-plugin-wiring.mjs","prepublishOnly":"bun run build","verify:android":"cd android && ./gradlew clean build test && cd ..","check:cap9-deprecated":"node scripts/check-cap9-deprecated.mjs"},"_npmUser":{"name":"torichancapgo","email":"tori@capgo.app","approver":{"name":"torichancapgo","email":"tori@capgo.app"}},"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"_npmVersion":"11.19.1","description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","directories":{},"_nodeVersion":"24.20.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.10.1","@capacitor/cli":"^8.0.0","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.7.7","prettier-pretty-check":"^0.2.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-intune_8.1.3_1789470292082_0.5820862075340574","host":"s3://npm-registry-packages-npm-production"}},"8.1.4":{"_id":"@capgo/capacitor-intune@8.1.4","bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"dist":{"shasum":"42a5d7a041d0cb768164f2e14346ed88148c3997","tarball":"https://registry.npmjs.org/@capgo/capacitor-intune/-/capacitor-intune-8.1.4.tgz","integrity":"sha512-oFUyoLj2j2oGaiZU2yNNxcr5CHaFw72ZE8YlMhFSMwIpYpAPrOpscdXYqyERd7JaLoAiH+HOVjYQilFgnQG26Q==","fileCount":33,"unpackedSize":1085305,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-intune@8.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCgTTWhDGjRxuybTNSe/J5VH0dyZwzB3nDgkIplkT33RgIgLgsjutWW6b0TkcXCYDi9k/sFWacyGblu4QgK7/81aF4="}]},"main":"dist/plugin.cjs.js","name":"@capgo/capacitor-intune","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"module":"dist/esm/index.js","gitHead":"3ab7def2365560391b0629e41e6af5e59fdaccc4","license":"MPL-2.0","scripts":{"fmt":"bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format","lint":"bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint","build":"bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api IntuneMAMPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext .ts","verify":"bun run verify:ios && bun run verify:android && bun run verify:web","prettier":"prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java","swiftlint":"node-swiftlint","verify:ios":"xcodebuild -scheme CapgoCapacitorIntune -destination generic/platform=iOS","verify:web":"bun run build","changelog:ai":"node scripts/generate-ai-changelog.mjs","check:wiring":"bun scripts/check-capacitor-plugin-wiring.mjs","prepublishOnly":"bun run build","verify:android":"cd android && ./gradlew clean build test && cd ..","check:cap9-deprecated":"node scripts/check-cap9-deprecated.mjs"},"version":"8.1.4","_npmUser":{"name":"torichancapgo","email":"tori@capgo.app","approver":{"name":"torichancapgo","email":"tori@capgo.app"}},"homepage":"https://capgo.app/docs/plugins/intune/","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"prettier":"@ionic/prettier-config","capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"_npmVersion":"11.19.1","description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","directories":{},"maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"},{"name":"torichancapgo","email":"tori@capgo.app"}],"_nodeVersion":"24.20.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"devDependencies":{"husky":"^9.1.7","eslint":"^8.57.1","rimraf":"^6.1.0","rollup":"^4.53.2","prettier":"^3.6.2","swiftlint":"^2.0.0","typescript":"^5.9.3","@types/node":"^24.10.1","@capacitor/cli":"^8.0.0","@capacitor/ios":"^8.0.0","@capacitor/core":"^8.0.0","@capacitor/docgen":"^0.3.1","@capacitor/android":"^8.0.0","@ionic/eslint-config":"^0.4.0","eslint-plugin-import":"^2.31.0","prettier-plugin-java":"^2.7.7","prettier-pretty-check":"^0.2.0","@ionic/prettier-config":"^4.0.0","@ionic/swiftlint-config":"^2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-intune_8.1.4_1789491238355_0.4353418957615207"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-25T05:40:44.916Z","modified":"2026-09-15T16:53:58.844Z","8.0.0":"2026-03-25T05:40:45.280Z","8.1.1":"2026-04-08T14:50:56.818Z","8.1.2":"2026-05-11T13:07:46.526Z","8.1.3":"2026-09-15T11:04:52.218Z","8.1.4":"2026-09-15T16:53:58.540Z"},"bugs":{"url":"https://github.com/Cap-go/capacitor-intune/issues"},"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","homepage":"https://capgo.app/docs/plugins/intune/","keywords":["capacitor","plugin","intune","mam","msal","enterprise","app-protection"],"repository":{"url":"git+https://github.com/Cap-go/capacitor-intune.git","type":"git"},"description":"Capacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"},{"name":"torichancapgo","email":"tori@capgo.app"}],"readme":"# @capgo/capacitor-intune\n<a href=\"https://capgo.app/\"><img src=\"https://capgo.app/readme-banner.svg?repo=Cap-go/capacitor-intune\" alt=\"Capgo - Instant updates for Capacitor\" /></a>\n\n<div align=\"center\">\n  <h2><a href=\"https://capgo.app/?ref=plugin_intune\"> ➡️ Get Instant updates for your App with Capgo</a></h2>\n  <h2><a href=\"https://capgo.app/consulting/?ref=plugin_intune\"> Missing a feature? We’ll build the plugin for you 💪</a></h2>\n</div>\n\nCapacitor plugin for Microsoft Intune MAM enrollment, app protection policies, app config, and MSAL authentication.\n\n## What it covers\n\n- Interactive and silent Microsoft sign-in with MSAL.\n- Intune account registration, enrollment, logout, and selective wipe helpers.\n- Native Intune app configuration and app protection policy access.\n- Native change listeners for policy and app config refresh events.\n- iOS and Android native Intune SDK integration from one Capacitor API.\n\n## Platform requirements\n\n- Capacitor 8+\n- Android with the Microsoft Intune Android SDK `12.0.3`\n- iOS with the Microsoft Intune iOS SDK `21.5.1`\n- iOS deployment target `17.0+`\n\nIonic's Intune docs currently note that, starting January 19, 2026, apps built with Xcode 26 must use Intune iOS SDK `21.1.0` or later. This plugin bundles `21.5.1` for that reason.\n\n## Install\n\nYou can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:\n\n```bash\nnpx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```text\nUse the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-intune` plugin in my project.\n```\n\nIf you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nbun add @capgo/capacitor-intune\nbunx cap sync\n```\n\n## Native setup\n\nThis plugin wraps the native Intune SDKs, but your app still needs the host-project configuration Microsoft and Ionic require.\n\n### Android\n\n1. Add the Intune Gradle plugin to your app project's `android/build.gradle` buildscript classpath.\n2. Add the Duo Maven feed Ionic calls out for current Intune Android SDK builds.\n3. Apply `com.microsoft.intune.mam` in your app module.\n4. Add the Intune SDK AAR and keep `android.enableResourceOptimizations=false`.\n5. Add `android:name=\"app.capgo.intune.IntuneApplication\"` to your `<application>` tag if you do not already use a custom `Application`.\n6. If you do use a custom `Application`, extend `MAMApplication` and register `IntuneMamServiceAuthenticationCallback` in `onMAMCreate()`.\n7. Add broker/auth queries plus the `BrowserTabActivity` intent filter for your `msauth://` redirect URI.\n8. Create `android/app/src/main/res/raw/auth_config.json` with your MSAL app registration details.\n\nMinimal `auth_config.json` example:\n\n```json\n{\n  \"client_id\": \"YOUR_CLIENT_ID\",\n  \"authorization_user_agent\": \"BROWSER\",\n  \"redirect_uri\": \"msauth://YOUR_PACKAGE/YOUR_SIGNATURE_HASH\",\n  \"broker_redirect_uri_registered\": true,\n  \"account_mode\": \"MULTIPLE\",\n  \"authorities\": [\n    {\n      \"type\": \"AAD\",\n      \"audience\": {\n        \"type\": \"AzureADMyOrg\"\n      }\n    }\n  ]\n}\n```\n\nIf you target Android 16+, Ionic's docs also recommend `android:enableOnBackInvokedCallback=\"false\"` on the `<application>` tag until the Intune SDK updates its back navigation support.\n\n### iOS\n\n1. Add your Intune and MSAL settings under `IntuneMAMSettings` in `Info.plist`.\n2. Configure your URL scheme / redirect URI for MSAL.\n3. Forward the auth callback URL to `MSALPublicClientApplication.handleMSALResponse(...)` from `AppDelegate`.\n4. Run Microsoft's `IntuneMAMConfigurator` against your app's `Info.plist` and entitlements.\n5. Keep the iOS deployment target at `17.0+`.\n\nMinimal `Info.plist` configuration:\n\n```xml\n<key>IntuneMAMSettings</key>\n<dict>\n  <key>ADALClientId</key>\n  <string>YOUR_CLIENT_ID</string>\n  <key>ADALRedirectUri</key>\n  <string>msauth.com.example.app://auth</string>\n  <key>ADALAuthority</key>\n  <string>https://login.microsoftonline.com/common</string>\n</dict>\n```\n\n`AppDelegate.swift` example:\n\n```swift\nimport MSAL\n\nfunc application(\n  _ app: UIApplication,\n  open url: URL,\n  options: [UIApplication.OpenURLOptionsKey: Any] = [:]\n) -> Bool {\n  return MSALPublicClientApplication.handleMSALResponse(\n    url,\n    sourceApplication: options[.sourceApplication] as? String\n  )\n}\n```\n\n## Usage\n\n```ts\nimport { IntuneMAM } from '@capgo/capacitor-intune';\n\nawait IntuneMAM.addListener('appConfigChange', (result) => {\n  console.log('Intune app config changed', result.accountId);\n});\n\nawait IntuneMAM.addListener('policyChange', (result) => {\n  console.log('Intune policy changed', result.accountId);\n});\n\nconst auth = await IntuneMAM.acquireToken({\n  scopes: ['https://graph.microsoft.com/.default'],\n  loginHint: 'alex@example.com',\n});\n\nawait IntuneMAM.registerAndEnrollAccount({ accountId: auth.accountId });\n\nconst user = await IntuneMAM.enrolledAccount();\nconst appConfig = await IntuneMAM.appConfig({ accountId: auth.accountId });\nconst policy = await IntuneMAM.getPolicy({ accountId: auth.accountId });\nconst versions = await IntuneMAM.sdkVersion();\n\nconsole.log({ user, appConfig, policy, versions });\n```\n\n## Notes\n\n- Web is not supported; the web implementation throws an unavailable error.\n- The plugin does not create your Azure app registration, Intune policies, `auth_config.json`, or iOS entitlements for you.\n- For iOS, follow Microsoft's latest Intune MAM configurator and entitlement guidance in addition to the plugin setup above.\n\n## API\n\n<docgen-index>\n\n* [`acquireToken(...)`](#acquiretoken)\n* [`acquireTokenSilent(...)`](#acquiretokensilent)\n* [`registerAndEnrollAccount(...)`](#registerandenrollaccount)\n* [`loginAndEnrollAccount()`](#loginandenrollaccount)\n* [`enrolledAccount()`](#enrolledaccount)\n* [`deRegisterAndUnenrollAccount(...)`](#deregisterandunenrollaccount)\n* [`logoutOfAccount(...)`](#logoutofaccount)\n* [`appConfig(...)`](#appconfig)\n* [`getPolicy(...)`](#getpolicy)\n* [`groupName(...)`](#groupname)\n* [`sdkVersion()`](#sdkversion)\n* [`displayDiagnosticConsole()`](#displaydiagnosticconsole)\n* [`addListener('appConfigChange', ...)`](#addlistenerappconfigchange-)\n* [`addListener('policyChange', ...)`](#addlistenerpolicychange-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n* [Type Aliases](#type-aliases)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### acquireToken(...)\n\n```typescript\nacquireToken(options: AcquireTokenOptions) => Promise<IntuneMAMAcquireToken>\n```\n\nPresent the Microsoft sign-in flow and return an access token plus the account metadata.\n\n| Param         | Type                                                                |\n| ------------- | ------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#acquiretokenoptions\">AcquireTokenOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamacquiretoken\">IntuneMAMAcquireToken</a>&gt;</code>\n\n--------------------\n\n\n### acquireTokenSilent(...)\n\n```typescript\nacquireTokenSilent(options: AcquireTokenSilentOptions) => Promise<IntuneMAMAcquireToken>\n```\n\nAcquire a token from the MSAL cache for a previously signed-in user.\n\n| Param         | Type                                                                            |\n| ------------- | ------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#acquiretokensilentoptions\">AcquireTokenSilentOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamacquiretoken\">IntuneMAMAcquireToken</a>&gt;</code>\n\n--------------------\n\n\n### registerAndEnrollAccount(...)\n\n```typescript\nregisterAndEnrollAccount(options: RegisterAndEnrollAccountOptions) => Promise<void>\n```\n\nRegister a previously authenticated account with Intune and start enrollment.\n\n| Param         | Type                                                                                        |\n| ------------- | ------------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#registerandenrollaccountoptions\">RegisterAndEnrollAccountOptions</a></code> |\n\n--------------------\n\n\n### loginAndEnrollAccount()\n\n```typescript\nloginAndEnrollAccount() => Promise<void>\n```\n\nAsk Intune to authenticate and enroll a user without first requesting an app token.\n\n--------------------\n\n\n### enrolledAccount()\n\n```typescript\nenrolledAccount() => Promise<IntuneMAMUser | undefined>\n```\n\nReturn the currently enrolled Intune account, if one is available.\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamuser\">IntuneMAMUser</a>&gt;</code>\n\n--------------------\n\n\n### deRegisterAndUnenrollAccount(...)\n\n```typescript\ndeRegisterAndUnenrollAccount(user: IntuneMAMUser) => Promise<void>\n```\n\nDeregister the account from Intune and trigger selective wipe when applicable.\n\n| Param      | Type                                                    |\n| ---------- | ------------------------------------------------------- |\n| **`user`** | <code><a href=\"#intunemamuser\">IntuneMAMUser</a></code> |\n\n--------------------\n\n\n### logoutOfAccount(...)\n\n```typescript\nlogoutOfAccount(user: IntuneMAMUser) => Promise<void>\n```\n\nSign the user out of MSAL without unenrolling the Intune account.\n\n| Param      | Type                                                    |\n| ---------- | ------------------------------------------------------- |\n| **`user`** | <code><a href=\"#intunemamuser\">IntuneMAMUser</a></code> |\n\n--------------------\n\n\n### appConfig(...)\n\n```typescript\nappConfig(user: IntuneMAMUser) => Promise<IntuneMAMAppConfig>\n```\n\nFetch the remote Intune app configuration for a managed account.\n\n| Param      | Type                                                    |\n| ---------- | ------------------------------------------------------- |\n| **`user`** | <code><a href=\"#intunemamuser\">IntuneMAMUser</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamappconfig\">IntuneMAMAppConfig</a>&gt;</code>\n\n--------------------\n\n\n### getPolicy(...)\n\n```typescript\ngetPolicy(user: IntuneMAMUser) => Promise<IntuneMAMPolicy>\n```\n\nFetch the currently effective Intune app protection policy for a managed account.\n\n| Param      | Type                                                    |\n| ---------- | ------------------------------------------------------- |\n| **`user`** | <code><a href=\"#intunemamuser\">IntuneMAMUser</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemampolicy\">IntuneMAMPolicy</a>&gt;</code>\n\n--------------------\n\n\n### groupName(...)\n\n```typescript\ngroupName(user: IntuneMAMUser) => Promise<IntuneMAMGroupName>\n```\n\nConvenience helper that resolves the `GroupName` app configuration value when present.\n\n| Param      | Type                                                    |\n| ---------- | ------------------------------------------------------- |\n| **`user`** | <code><a href=\"#intunemamuser\">IntuneMAMUser</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamgroupname\">IntuneMAMGroupName</a>&gt;</code>\n\n--------------------\n\n\n### sdkVersion()\n\n```typescript\nsdkVersion() => Promise<IntuneMAMVersionInfo>\n```\n\nReturn the native Intune and MSAL SDK versions bundled by this plugin.\n\n**Returns:** <code>Promise&lt;<a href=\"#intunemamversioninfo\">IntuneMAMVersionInfo</a>&gt;</code>\n\n--------------------\n\n\n### displayDiagnosticConsole()\n\n```typescript\ndisplayDiagnosticConsole() => Promise<void>\n```\n\nShow the native Intune diagnostics UI.\n\n--------------------\n\n\n### addListener('appConfigChange', ...)\n\n```typescript\naddListener(eventName: 'appConfigChange', listenerFunc: (info: IntuneMAMChangeEvent) => void) => Promise<PluginListenerHandle>\n```\n\nListen for remote app configuration refreshes.\n\n| Param              | Type                                                                                     |\n| ------------------ | ---------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'appConfigChange'</code>                                                           |\n| **`listenerFunc`** | <code>(info: <a href=\"#intunemamchangeevent\">IntuneMAMChangeEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### addListener('policyChange', ...)\n\n```typescript\naddListener(eventName: 'policyChange', listenerFunc: (info: IntuneMAMChangeEvent) => void) => Promise<PluginListenerHandle>\n```\n\nListen for remote app protection policy refreshes.\n\n| Param              | Type                                                                                     |\n| ------------------ | ---------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'policyChange'</code>                                                              |\n| **`listenerFunc`** | <code>(info: <a href=\"#intunemamchangeevent\">IntuneMAMChangeEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all registered listeners for this plugin instance.\n\n--------------------\n\n\n### Interfaces\n\n\n#### IntuneMAMAcquireToken\n\n| Prop                    | Type                |\n| ----------------------- | ------------------- |\n| **`accountId`**         | <code>string</code> |\n| **`accessToken`**       | <code>string</code> |\n| **`accountIdentifier`** | <code>string</code> |\n| **`idToken`**           | <code>string</code> |\n| **`username`**          | <code>string</code> |\n| **`tenantId`**          | <code>string</code> |\n| **`authority`**         | <code>string</code> |\n\n\n#### AcquireTokenOptions\n\nInteractive token acquisition options.\n\n| Prop              | Type                  | Description                                                            | Default            |\n| ----------------- | --------------------- | ---------------------------------------------------------------------- | ------------------ |\n| **`scopes`**      | <code>string[]</code> | Scopes to request, for example `https://graph.microsoft.com/.default`. |                    |\n| **`forcePrompt`** | <code>boolean</code>  | When true, always show the Microsoft account picker or sign-in UI.     | <code>false</code> |\n| **`loginHint`**   | <code>string</code>   | Optional login hint for the interactive sign-in flow.                  |                    |\n\n\n#### AcquireTokenSilentOptions\n\nSilent token acquisition options.\n\n| Prop               | Type                  | Description                                                                | Default            |\n| ------------------ | --------------------- | -------------------------------------------------------------------------- | ------------------ |\n| **`scopes`**       | <code>string[]</code> | Scopes to request, for example `https://graph.microsoft.com/.default`.     |                    |\n| **`accountId`**    | <code>string</code>   | Microsoft Entra object ID returned by `acquireToken` or `enrolledAccount`. |                    |\n| **`forceRefresh`** | <code>boolean</code>  | When true, bypass the cached access token and request a fresh one.         | <code>false</code> |\n\n\n#### RegisterAndEnrollAccountOptions\n\n| Prop            | Type                | Description                                           |\n| --------------- | ------------------- | ----------------------------------------------------- |\n| **`accountId`** | <code>string</code> | Microsoft Entra object ID returned by `acquireToken`. |\n\n\n#### IntuneMAMUser\n\n| Prop                    | Type                |\n| ----------------------- | ------------------- |\n| **`accountId`**         | <code>string</code> |\n| **`accountIdentifier`** | <code>string</code> |\n| **`username`**          | <code>string</code> |\n| **`tenantId`**          | <code>string</code> |\n| **`authority`**         | <code>string</code> |\n\n\n#### IntuneMAMAppConfig\n\n| Prop            | Type                                                              |\n| --------------- | ----------------------------------------------------------------- |\n| **`accountId`** | <code>string</code>                                               |\n| **`fullData`**  | <code><a href=\"#record\">Record</a>&lt;string, string&gt;[]</code> |\n| **`values`**    | <code><a href=\"#record\">Record</a>&lt;string, string&gt;</code>   |\n| **`conflicts`** | <code>string[]</code>                                             |\n\n\n#### IntuneMAMPolicy\n\n| Prop                           | Type                 |\n| ------------------------------ | -------------------- |\n| **`accountId`**                | <code>string</code>  |\n| **`isPinRequired`**            | <code>boolean</code> |\n| **`isManagedBrowserRequired`** | <code>boolean</code> |\n| **`isScreenCaptureAllowed`**   | <code>boolean</code> |\n| **`isContactSyncAllowed`**     | <code>boolean</code> |\n| **`isAppSharingAllowed`**      | <code>boolean</code> |\n| **`isFileEncryptionRequired`** | <code>boolean</code> |\n| **`notificationPolicy`**       | <code>string</code>  |\n\n\n#### IntuneMAMGroupName\n\n| Prop            | Type                |\n| --------------- | ------------------- |\n| **`accountId`** | <code>string</code> |\n| **`groupName`** | <code>string</code> |\n\n\n#### IntuneMAMVersionInfo\n\n| Prop                   | Type                            |\n| ---------------------- | ------------------------------- |\n| **`platform`**         | <code>'ios' \\| 'android'</code> |\n| **`intuneSdkVersion`** | <code>string</code>             |\n| **`msalVersion`**      | <code>string</code>             |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |\n\n\n#### IntuneMAMChangeEvent\n\n| Prop            | Type                |\n| --------------- | ------------------- |\n| **`accountId`** | <code>string</code> |\n\n\n### Type Aliases\n\n\n#### Record\n\nConstruct a type with a set of properties K of type T\n\n<code>{\r [P in K]: T;\r }</code>\n\n</docgen-api>\n","readmeFilename":"README.md"}