{"_id":"@capgo/capacitor-disqo","_rev":"3-a8e366d238c3b145cacc74a02c23e846","name":"@capgo/capacitor-disqo","dist-tags":{"latest":"8.1.3"},"versions":{"8.1.2":{"name":"@capgo/capacitor-disqo","version":"8.1.2","keywords":["capacitor","plugin","disqo","pulse","accessibility","analytics"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-disqo@8.1.2","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://github.com/Cap-go/capacitor-disqo","bugs":{"url":"https://github.com/Cap-go/capacitor-disqo/issues"},"dist":{"shasum":"eeff03890232d1a47ecfbe36e151676027a114d8","tarball":"https://registry.npmjs.org/@capgo/capacitor-disqo/-/capacitor-disqo-8.1.2.tgz","fileCount":31,"integrity":"sha512-gPt5rZaUvy4441kmMYtmeyXKTyp49cSwUeCU5OOmJRWmg55K+CNiwTXkHgjo4zvDHOVi3UObxt63IdjagL9K6Q==","signatures":[{"sig":"MEQCIFORrjQrOEeGyGQCADvmAqeOD9QvVYKKn5lbstBiPQhvAiAvYOceCMiq84tq094LT5n3Uj6EJLsVMFdPrl7t9RTfgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-disqo@8.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147686},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"ba451ee1f4576f1000de5cb3f8b4a7eaa315e155","private":false,"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 DisqoPlugin --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 CapgoCapacitorDisqo -destination generic/platform=iOS","verify:web":"bun run build","check:wiring":"node 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-disqo.git","type":"git"},"_npmVersion":"11.11.0","description":"Capacitor bridge for the Disqo Pulse Android SDK.","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-disqo_8.1.2_1777480681424_0.3571358298670384","host":"s3://npm-registry-packages-npm-production"}},"8.1.3":{"name":"@capgo/capacitor-disqo","version":"8.1.3","keywords":["capacitor","plugin","disqo","pulse","accessibility","analytics"],"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","_id":"@capgo/capacitor-disqo@8.1.3","maintainers":[{"name":"riderx","email":"martin.donadieu@hey.com"}],"homepage":"https://github.com/Cap-go/capacitor-disqo","bugs":{"url":"https://github.com/Cap-go/capacitor-disqo/issues"},"dist":{"shasum":"9ea8dda1a8b1c9134420a420eba40bbb9916d51e","tarball":"https://registry.npmjs.org/@capgo/capacitor-disqo/-/capacitor-disqo-8.1.3.tgz","fileCount":31,"integrity":"sha512-wYcMiUWVZ3isGYuDz4FLiLMD9j6eODK2FCutrkD3ILmBF6eM6sLXOOVewaRBGC+FgYqRmubXhQTBG4pFRHS6jQ==","signatures":[{"sig":"MEUCIFN0ffaEr181WIPNnJzPm+fu1wS1LCXZs6Wj3W0gq7doAiEA/nOxZ6hCuRh5/rBFeI/NXUUIR0WNxI9O4rdD8qYbL+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capgo%2fcapacitor-disqo@8.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147675},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","gitHead":"9710c9eb0ff7b87ed19daf64cb06d87e004e1bb4","private":false,"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 DisqoPlugin --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 CapgoCapacitorDisqo -destination generic/platform=iOS","verify:web":"bun run build","check:wiring":"node 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-disqo.git","type":"git"},"_npmVersion":"11.11.0","description":"Capacitor bridge for the Disqo Pulse Android SDK.","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-disqo_8.1.3_1778503843433_0.14048726486710494","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-04-29T16:38:01.363Z","modified":"2026-08-19T10:40:40.705Z","8.1.2":"2026-04-29T16:38:01.624Z","8.1.3":"2026-05-11T12:50:43.615Z"},"bugs":{"url":"https://github.com/Cap-go/capacitor-disqo/issues"},"author":{"name":"Martin Donadieu","email":"martin@capgo.app"},"license":"MPL-2.0","homepage":"https://github.com/Cap-go/capacitor-disqo","keywords":["capacitor","plugin","disqo","pulse","accessibility","analytics"],"repository":{"url":"git+https://github.com/Cap-go/capacitor-disqo.git","type":"git"},"description":"Capacitor bridge for the Disqo Pulse Android SDK.","maintainers":[{"email":"martin.donadieu@hey.com","name":"riderx"},{"email":"tori@capgo.app","name":"torichancapgo"}],"readme":"# @capgo/capacitor-disqo\n<a href=\"https://capgo.app/\"><img src=\"https://capgo.app/readme-banner.svg?repo=Cap-go/capacitor-disqo\" alt=\"Capgo - Instant updates for Capacitor\" /></a>\n\n<div align=\"center\">\n  <h2><a href=\"https://capgo.app/?ref=plugin_disqo\">➡️ Ship Instant Updates with Capgo</a></h2>\n  <h2><a href=\"https://capgo.app/consulting/?ref=plugin_disqo\">Missing a feature? We’ll build the plugin for you 💪</a></h2>\n</div>\n\nCapacitor bridge for Disqo's Android Pulse SDK.\n\n## What it does\n\n- Wraps the Android Pulse SDK behind a Capacitor-friendly TypeScript API.\n- Lets the host app initialize the SDK, start or stop tracking, deep-link into Android accessibility settings, and query service state.\n- Bridges Pulse token callbacks back to JavaScript so the host app can keep using its own auth stack.\n\n## What it does not do\n\n- It does not implement the client-facing onboarding UI or Google Play disclosures for you.\n- It does not automate Play Console declarations, privacy policy updates, or the review video requirement.\n\n## Compatibility\n\n| Plugin version | Capacitor compatibility | Maintained |\n| -------------- | ----------------------- | ---------- |\n| v8.\\*.\\*       | v8.\\*.\\*                | ✅          |\n| v7.\\*.\\*       | v7.\\*.\\*                | On demand   |\n| v6.\\*.\\*       | v6.\\*.\\*                | ❌          |\n\n## Install\n\n```bash\nbun add @capgo/capacitor-disqo\nbunx cap sync android\n```\n\n## Android Notes\n\n- The underlying Pulse SDK is Android-only.\n- The host app is still responsible for the prominent disclosure screen, onboarding flow, Play Console declarations, privacy policy updates, and review video.\n- This plugin ships default resource strings for:\n  - `accessibility_service_label`\n  - `tracking_service_description`\n  - `tracking_service_summary`\n- The host app can override those values in its own `android/app/src/main/res/values/strings.xml`.\n\n## Usage\n\n```typescript\nimport { Disqo } from '@capgo/capacitor-disqo';\n\nawait Disqo.addListener('accessTokenRequested', async ({ requestId }) => {\n  const accessToken = await authStore.getPulseToken();\n  await Disqo.resolveAccessTokenRequest({\n    requestId,\n    accessToken,\n  });\n});\n\nawait Disqo.addListener('refreshTokenRequested', async ({ requestId }) => {\n  const refreshedSession = await authStore.refreshPulseToken();\n  await Disqo.resolveRefreshTokenRequest({\n    requestId,\n    accessToken: refreshedSession.accessToken,\n  });\n});\n\nconst sdkStatus = await Disqo.getSdkStatus();\nif (!sdkStatus.available) {\n  throw new Error(sdkStatus.message);\n}\n\nawait Disqo.initialize({\n  apiUrl: 'https://pulse.example.internal',\n  accessToken: await authStore.getPulseToken(),\n});\n\nawait Disqo.start({\n  userId: 'member-123',\n});\n\nawait Disqo.openAccessibilitySettings();\n\nconst state = await Disqo.getServiceStateInfo();\nconsole.log(state.enabled, state.state);\n```\n\n## Example App\n\nThe bundled `example-app/` is wired to:\n\n- register the token callback listeners,\n- reuse the token entered in the UI,\n- initialize the bridge,\n- start or stop tracking,\n- open Android accessibility settings,\n- and inspect the current service state.\n\n## API\n\n<docgen-index>\n\n* [`getSdkStatus()`](#getsdkstatus)\n* [`initialize(...)`](#initialize)\n* [`start(...)`](#start)\n* [`stop()`](#stop)\n* [`updateAccessToken(...)`](#updateaccesstoken)\n* [`clearAccessToken()`](#clearaccesstoken)\n* [`getServiceStateInfo()`](#getservicestateinfo)\n* [`isServiceEnabled()`](#isserviceenabled)\n* [`openAccessibilitySettings()`](#openaccessibilitysettings)\n* [`refreshConfigs()`](#refreshconfigs)\n* [`send()`](#send)\n* [`resolveAccessTokenRequest(...)`](#resolveaccesstokenrequest)\n* [`rejectAccessTokenRequest(...)`](#rejectaccesstokenrequest)\n* [`resolveRefreshTokenRequest(...)`](#resolverefreshtokenrequest)\n* [`rejectRefreshTokenRequest(...)`](#rejectrefreshtokenrequest)\n* [`getPluginVersion()`](#getpluginversion)\n* [`addListener('accessTokenRequested', ...)`](#addlisteneraccesstokenrequested-)\n* [`addListener('refreshTokenRequested', ...)`](#addlistenerrefreshtokenrequested-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\nCapacitor API for the Disqo Pulse Android SDK.\n\nThe host app is still responsible for the onboarding UI, prominent disclosure,\nGoogle Play declarations, and privacy policy updates.\n\n### getSdkStatus()\n\n```typescript\ngetSdkStatus() => Promise<SdkStatusResult>\n```\n\nCheck whether the Android Pulse SDK classes are available at runtime.\n\n**Returns:** <code>Promise&lt;<a href=\"#sdkstatusresult\">SdkStatusResult</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### initialize(...)\n\n```typescript\ninitialize(options: DisqoInitializeOptions) => Promise<void>\n```\n\nInitialize the native bridge and register the token-provider proxy required by Pulse.\n\n| Param         | Type                                                                      |\n| ------------- | ------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#disqoinitializeoptions\">DisqoInitializeOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### start(...)\n\n```typescript\nstart(options: DisqoStartOptions) => Promise<void>\n```\n\nStart Pulse tracking for the provided user.\n\n| Param         | Type                                                            |\n| ------------- | --------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#disqostartoptions\">DisqoStartOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### stop()\n\n```typescript\nstop() => Promise<void>\n```\n\nPut Pulse into silent mode and clear user state.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### updateAccessToken(...)\n\n```typescript\nupdateAccessToken(options: UpdateAccessTokenOptions) => Promise<void>\n```\n\nReplace the cached JWT used by the native provider bridge.\n\n| Param         | Type                                                                          |\n| ------------- | ----------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#updateaccesstokenoptions\">UpdateAccessTokenOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### clearAccessToken()\n\n```typescript\nclearAccessToken() => Promise<void>\n```\n\nClear the cached JWT. The next native lookup will ask JavaScript for a new token.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### getServiceStateInfo()\n\n```typescript\ngetServiceStateInfo() => Promise<ServiceStateInfo>\n```\n\nReturn a normalized snapshot of the current Pulse service state.\n\n**Returns:** <code>Promise&lt;<a href=\"#servicestateinfo\">ServiceStateInfo</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### isServiceEnabled()\n\n```typescript\nisServiceEnabled() => Promise<ServiceEnabledResult>\n```\n\nConvenience boolean for the current Pulse service state.\n\n**Returns:** <code>Promise&lt;<a href=\"#serviceenabledresult\">ServiceEnabledResult</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### openAccessibilitySettings()\n\n```typescript\nopenAccessibilitySettings() => Promise<void>\n```\n\nOpen Android accessibility settings so the host app can drive the enablement flow.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### refreshConfigs()\n\n```typescript\nrefreshConfigs() => Promise<void>\n```\n\nForce the native Pulse SDK to refresh its remote configuration.\n\nIntended for internal debugging.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### send()\n\n```typescript\nsend() => Promise<void>\n```\n\nForce the native Pulse SDK to send its queued events immediately.\n\nIntended for internal debugging.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### resolveAccessTokenRequest(...)\n\n```typescript\nresolveAccessTokenRequest(options: ResolveAccessTokenRequestOptions) => Promise<void>\n```\n\nResolve a pending `accessTokenRequested` callback with a fresh JWT.\n\n| Param         | Type                                                                                          |\n| ------------- | --------------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#resolveaccesstokenrequestoptions\">ResolveAccessTokenRequestOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### rejectAccessTokenRequest(...)\n\n```typescript\nrejectAccessTokenRequest(options: RejectAccessTokenRequestOptions) => Promise<void>\n```\n\nReject a pending `accessTokenRequested` callback.\n\n| Param         | Type                                                                                        |\n| ------------- | ------------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#rejectaccesstokenrequestoptions\">RejectAccessTokenRequestOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### resolveRefreshTokenRequest(...)\n\n```typescript\nresolveRefreshTokenRequest(options: ResolveRefreshTokenRequestOptions) => Promise<void>\n```\n\nResolve a pending `refreshTokenRequested` callback.\n\nOptionally includes a fresh JWT to cache immediately.\n\n| Param         | Type                                                                                            |\n| ------------- | ----------------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#resolverefreshtokenrequestoptions\">ResolveRefreshTokenRequestOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### rejectRefreshTokenRequest(...)\n\n```typescript\nrejectRefreshTokenRequest(options: RejectRefreshTokenRequestOptions) => Promise<void>\n```\n\nReject a pending `refreshTokenRequested` callback.\n\n| Param         | Type                                                                                          |\n| ------------- | --------------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#rejectrefreshtokenrequestoptions\">RejectRefreshTokenRequestOptions</a></code> |\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### getPluginVersion()\n\n```typescript\ngetPluginVersion() => Promise<PluginVersionResult>\n```\n\nGet the native Capacitor plugin version.\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginversionresult\">PluginVersionResult</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### addListener('accessTokenRequested', ...)\n\n```typescript\naddListener(eventName: 'accessTokenRequested', listenerFunc: (event: AccessTokenRequestedEvent) => void) => Promise<PluginListenerHandle>\n```\n\nListen for native access-token lookups.\n\n| Param              | Type                                                                                                |\n| ------------------ | --------------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'accessTokenRequested'</code>                                                                 |\n| **`listenerFunc`** | <code>(event: <a href=\"#accesstokenrequestedevent\">AccessTokenRequestedEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### addListener('refreshTokenRequested', ...)\n\n```typescript\naddListener(eventName: 'refreshTokenRequested', listenerFunc: (event: RefreshTokenRequestedEvent) => void) => Promise<PluginListenerHandle>\n```\n\nListen for native token-refresh requests.\n\n| Param              | Type                                                                                                  |\n| ------------------ | ----------------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'refreshTokenRequested'</code>                                                                  |\n| **`listenerFunc`** | <code>(event: <a href=\"#refreshtokenrequestedevent\">RefreshTokenRequestedEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove every active listener registered through the plugin.\n\n**Since:** 8.0.0\n\n--------------------\n\n\n### Interfaces\n\n\n#### SdkStatusResult\n\nResult of checking whether the Disqo Pulse SDK is available on Android.\n\n| Prop                 | Type                  | Description                                                              | Since |\n| -------------------- | --------------------- | ------------------------------------------------------------------------ | ----- |\n| **`available`**      | <code>boolean</code>  | Whether the required Android Pulse classes were found at runtime.        | 8.0.0 |\n| **`missingClasses`** | <code>string[]</code> | Fully qualified class names that were missing when the status check ran. | 8.0.0 |\n| **`message`**        | <code>string</code>   | Human-readable guidance that explains how to fix an unavailable SDK.     | 8.0.0 |\n\n\n#### DisqoInitializeOptions\n\nInitialization options for the Pulse bridge.\n\n| Prop              | Type                | Description                                                                                                     | Since |\n| ----------------- | ------------------- | --------------------------------------------------------------------------------------------------------------- | ----- |\n| **`apiUrl`**      | <code>string</code> | Base URL used by the Pulse SDK.                                                                                 | 8.0.0 |\n| **`accessToken`** | <code>string</code> | Optional cached JWT that can satisfy the SDK's first token lookup without a round-trip to JavaScript listeners. | 8.0.0 |\n\n\n#### DisqoStartOptions\n\nStart options for a Pulse session.\n\n| Prop              | Type                | Description                                                           | Since |\n| ----------------- | ------------------- | --------------------------------------------------------------------- | ----- |\n| **`userId`**      | <code>string</code> | User identifier forwarded to `sdk.start(userId = ...)`.               | 8.0.0 |\n| **`accessToken`** | <code>string</code> | Optional access token override to cache immediately before `start()`. | 8.0.0 |\n\n\n#### UpdateAccessTokenOptions\n\nUpdate the cached JWT used by the native token provider bridge.\n\n| Prop              | Type                | Description                                      | Since |\n| ----------------- | ------------------- | ------------------------------------------------ | ----- |\n| **`accessToken`** | <code>string</code> | Latest JWT returned by the host app auth system. | 8.0.0 |\n\n\n#### ServiceStateInfo\n\nLightweight view of the current Pulse service state.\n\nThe SDK can enrich this state in future versions, so the plugin exposes both a normalized\n`enabled` boolean and a raw string snapshot from the underlying Android object.\n\n| Prop          | Type                 | Description                                                                 | Since |\n| ------------- | -------------------- | --------------------------------------------------------------------------- | ----- |\n| **`enabled`** | <code>boolean</code> | Whether the accessibility-backed Pulse service is currently enabled.        | 8.0.0 |\n| **`state`**   | <code>string</code>  | Best-effort normalized state name derived from the underlying Pulse object. | 8.0.0 |\n| **`raw`**     | <code>string</code>  | Raw string representation returned by the native Pulse state object.        | 8.0.0 |\n\n\n#### ServiceEnabledResult\n\nBoolean wrapper for `isServiceEnabled()`.\n\n| Prop          | Type                 | Description                                      | Since |\n| ------------- | -------------------- | ------------------------------------------------ | ----- |\n| **`enabled`** | <code>boolean</code> | Whether the underlying Pulse service is enabled. | 8.0.0 |\n\n\n#### ResolveAccessTokenRequestOptions\n\nSuccessful response payload for `resolveAccessTokenRequest()`.\n\n| Prop              | Type                | Description                                             | Since |\n| ----------------- | ------------------- | ------------------------------------------------------- | ----- |\n| **`requestId`**   | <code>string</code> | Correlation id received in the original callback event. | 8.0.0 |\n| **`accessToken`** | <code>string</code> | Fresh JWT returned by the host app auth system.         | 8.0.0 |\n\n\n#### RejectAccessTokenRequestOptions\n\nError response payload for `rejectAccessTokenRequest()`.\n\n| Prop            | Type                | Description                                             | Since |\n| --------------- | ------------------- | ------------------------------------------------------- | ----- |\n| **`requestId`** | <code>string</code> | Correlation id received in the original callback event. | 8.0.0 |\n| **`message`**   | <code>string</code> | Optional reason returned to the native bridge.          | 8.0.0 |\n\n\n#### ResolveRefreshTokenRequestOptions\n\nSuccessful response payload for `resolveRefreshTokenRequest()`.\n\n| Prop              | Type                | Description                                                                           | Since |\n| ----------------- | ------------------- | ------------------------------------------------------------------------------------- | ----- |\n| **`requestId`**   | <code>string</code> | Correlation id received in the original callback event.                               | 8.0.0 |\n| **`accessToken`** | <code>string</code> | Optional fresh JWT to cache before the native bridge retries its access-token lookup. | 8.0.0 |\n\n\n#### RejectRefreshTokenRequestOptions\n\nError response payload for `rejectRefreshTokenRequest()`.\n\n| Prop            | Type                | Description                                             | Since |\n| --------------- | ------------------- | ------------------------------------------------------- | ----- |\n| **`requestId`** | <code>string</code> | Correlation id received in the original callback event. | 8.0.0 |\n| **`message`**   | <code>string</code> | Optional reason returned to the native bridge.          | 8.0.0 |\n\n\n#### PluginVersionResult\n\nPlugin version payload.\n\n| Prop          | Type                | Description                                                 | Since |\n| ------------- | ------------------- | ----------------------------------------------------------- | ----- |\n| **`version`** | <code>string</code> | Version identifier returned by the platform implementation. | 8.0.0 |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |\n\n\n#### AccessTokenRequestedEvent\n\nAccess-token callback event emitted when the native Pulse provider needs a JWT.\n\n| Prop            | Type                | Description                                                                                               | Since |\n| --------------- | ------------------- | --------------------------------------------------------------------------------------------------------- | ----- |\n| **`requestId`** | <code>string</code> | Correlation id that must be echoed back to `resolveAccessTokenRequest()` or `rejectAccessTokenRequest()`. | 8.0.0 |\n\n\n#### RefreshTokenRequestedEvent\n\nRefresh-token callback event emitted when the native Pulse provider asks the host app to refresh auth.\n\n| Prop            | Type                | Description                                                                                                 | Since |\n| --------------- | ------------------- | ----------------------------------------------------------------------------------------------------------- | ----- |\n| **`requestId`** | <code>string</code> | Correlation id that must be echoed back to `resolveRefreshTokenRequest()` or `rejectRefreshTokenRequest()`. | 8.0.0 |\n\n</docgen-api>\n","readmeFilename":"README.md"}