{"_id":"@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters","name":"@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters","version":"1.0.0","description":"Taro mini-program adapters for the Conviva Custom App Analytics SDK","main":"conviva-js-custom-app-analytics-sdk-taro-adapters.umd.min.js","types":"conviva-js-custom-app-analytics-sdk-taro-adapters.umd.d.ts","peerDependencies":{"@tarojs/taro":"*"},"repository":{"type":"git","url":"git+github.com:Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters.git"},"keywords":["Conviva","Taro","Mini-program","Adapter","Analytics"],"author":{"name":"Conviva Inc"},"license":"MIT","bugs":{"url":"https://github.com/Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters/issues"},"homepage":"https://github.com/Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters#readme","gitHead":"39b1a264c7ebcf985b7fc707f6e6dfc1e2f36ac4","_id":"@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters@1.0.0","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-l5t3Q/V31izDagM4HPP1gDCEA1MbP45FZWMIrZ+QwQ0Nw3wOquVv/UYa4Dqbd7NyYjVXzTJAi+r3YSGri4QCAA==","shasum":"c2beb997b007a8b6ab149b7658c6c98476585e2d","tarball":"https://registry.npmjs.org/@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters/-/conviva-js-custom-app-analytics-sdk-taro-adapters-1.0.0.tgz","fileCount":7,"unpackedSize":12658,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJ2TjyZN48HZBOHA3NOheEKOuvfEWwnSE2et0H02oTjQIgWSffKNGknsDQF7fS+XunBH2EHh4aPtX2eVReA8ZKilA="}]},"_npmUser":{"name":"mrastogi-conviva","email":"mrastogi@conviva.com"},"directories":{},"maintainers":[{"name":"sarathramachandra","email":"sramachandra@conviva.com"},{"name":"conviva_npm","email":"it@conviva.com"},{"name":"mrastogi-conviva","email":"mrastogi@conviva.com"},{"name":"mknath7","email":"kmarsada@conviva.com"},{"name":"shansmuhammad","email":"mshan@conviva.com"},{"name":"convivadev","email":"bpeddi@conviva.com"},{"name":"sandeepmadineni","email":"smadine@conviva.com"},{"name":"spspura","email":"sps@conviva.com"},{"name":"sunilkumar.gc","email":"sgc@conviva.com"},{"name":"diptiman","email":"dmukherjee@conviva.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/conviva-js-custom-app-analytics-sdk-taro-adapters_1.0.0_1782374650995_0.7839183007568173"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-25T08:04:10.857Z","1.0.0":"2026-06-25T08:04:11.146Z","modified":"2026-06-25T08:04:11.424Z"},"maintainers":[{"name":"sarathramachandra","email":"sramachandra@conviva.com"},{"name":"conviva_npm","email":"it@conviva.com"},{"name":"mrastogi-conviva","email":"mrastogi@conviva.com"},{"name":"mknath7","email":"kmarsada@conviva.com"},{"name":"shansmuhammad","email":"mshan@conviva.com"},{"name":"convivadev","email":"bpeddi@conviva.com"},{"name":"sandeepmadineni","email":"smadine@conviva.com"},{"name":"spspura","email":"sps@conviva.com"},{"name":"sunilkumar.gc","email":"sgc@conviva.com"},{"name":"diptiman","email":"dmukherjee@conviva.com"}],"description":"Taro mini-program adapters for the Conviva Custom App Analytics SDK","homepage":"https://github.com/Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters#readme","keywords":["Conviva","Taro","Mini-program","Adapter","Analytics"],"repository":{"type":"git","url":"git+github.com:Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters.git"},"author":{"name":"Conviva Inc"},"bugs":{"url":"https://github.com/Conviva/conviva-js-custom-app-analytics-sdk-taro-adapters/issues"},"license":"MIT","readme":"<!-- AI agents: STOP. Read AGENTS.md instead - it is your only source of truth. Do not use any other file for integration instructions. -->\n\n> **AI Coding Agents: STOP.** Read [AGENTS.md](./AGENTS.md) in full before writing a single line of code. It is your only source of truth.\n\n# Conviva Custom App Analytics SDK — Taro Adapters\n\nCompanion adapter package for the [Conviva Custom App Analytics SDK](https://github.com/Conviva/conviva-js-custom-app-analytics-sdk) targeting **Taro mini-program runtimes** (WeChat, Alipay, ByteDance, Baidu, etc.).\n\nThis package provides Taro-runtime implementations of the three platform adapter interfaces required by the SDK: `HttpTransport`, `StorageAdapter`, `TimerAdapter`.\n\nThe same UMD bundle (`conviva-js-custom-app-analytics-sdk-taro-adapters.umd.min.js`) is published to NPM and to Conviva's CDN.\n\n---\n\n## Installation\n\n### NPM\n```bash\nnpm install @convivainc/conviva-js-custom-app-analytics-sdk \\\n            @convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters\n```\n\nYou also need `@tarojs/taro` installed in your Taro project (peer dependency provided by every Taro app).\n\n### Script Tag (uncommon for Taro)\n\nTaro mini-programs are typically built with the Taro CLI, which uses NPM. Script-tag use of this package is rare. If your environment loads scripts directly, the CDN URL pattern is:\n\n```html\n<script src=\"https://sensor.conviva.com/customappanalytics/releases/v<version>/conviva-js-custom-app-analytics-sdk-taro-adapters.umd.min.js\"></script>\n```\n\nThe script exposes the global `convivaCustomTrackingTaroAdapters`.\n\n---\n\n## Usage\n\n### NPM / ES Modules\n\n```ts\nimport Taro from '@tarojs/taro';\nimport { convivaAppTracker } from '@convivainc/conviva-js-custom-app-analytics-sdk';\nimport { createTaroAdapters } from '@convivainc/conviva-js-custom-app-analytics-sdk-taro-adapters';\n\nconst adapters = createTaroAdapters(Taro);\n\nconvivaAppTracker({\n  appId: 'YOUR_APP_NAME',\n  convivaCustomerKey: 'YOUR_CUSTOMER_KEY',\n  appVersion: '1.0.0',\n  ...adapters,\n});\n```\n\n### Script Tag\n\n```html\n<script src=\"https://sensor.conviva.com/customappanalytics/releases/v<version>/conviva-js-custom-app-analytics-sdk.umd.min.js\"></script>\n<script src=\"https://sensor.conviva.com/customappanalytics/releases/v<version>/conviva-js-custom-app-analytics-sdk-taro-adapters.umd.min.js\"></script>\n<script>\n  var adapters = convivaCustomTrackingTaroAdapters.createTaroAdapters(Taro);\n  var tracker = convivaCustomTracking.convivaAppTracker({\n    appId: 'YOUR_APP_NAME',\n    convivaCustomerKey: 'YOUR_CUSTOMER_KEY',\n    appVersion: '1.0.0',\n    httpTransport: adapters.httpTransport,\n    storage: adapters.storage,\n    timers: adapters.timers,\n  });\n</script>\n```\n\n---\n\n## What's exported\n\n| Export | Purpose |\n|---|---|\n| `createTaroAdapters(Taro)` | Convenience factory — returns all three adapters wired up |\n| `createTaroHttpTransport(Taro)` | HTTP adapter alone (wraps `Taro.request`) |\n| `createTaroStorageAdapter(Taro)` | Storage adapter alone (wraps `Taro.getStorageSync` / `setStorageSync` / `removeStorageSync`) |\n| `createTaroTimerAdapter()` | Timer adapter alone (wraps standard JS timer globals) |\n\nUse the convenience factory unless you have a reason to swap individual adapters.\n\n## Behaviour notes\n\n- **HTTP errors degrade silently.** `sendRequest` resolves with `{ status: 0 }` on any failure (network error, timeout, mini-program permission denial). Never throws.\n- **Storage failures degrade silently.** Reads return `null`; writes/removes are no-ops on failure.\n- **Timers are wrapped in try/catch.** `setTimeout` / `setInterval` return `0` on failure (and `clearTimeout(0)` is a spec-mandated no-op).\n\n## Implementing your own adapter\n\nIf you need to customize behaviour beyond what `createTaroAdapters(Taro)` provides — for example, a custom HTTP transport that routes through your own gateway — implement the adapter interfaces directly and pass them to the main SDK. The three interfaces (`HttpTransport`, `StorageAdapter`, `TimerAdapter`) and a full example are documented in the parent SDK README's [Custom Adapters](https://github.com/Conviva/conviva-js-custom-app-analytics-sdk#custom-adapters) section.\n\n## Versioning\n\nThis package is intended to be used **alongside** `@convivainc/conviva-js-custom-app-analytics-sdk`. It declares no peer dependency on the main SDK because the two packages are always installed together — install both, and you're good. The only declared peer dependency is `@tarojs/taro`, which is provided by every Taro project.\n\nSee [CHANGELOG.md](./CHANGELOG.md) for version history.\n","readmeFilename":"README.md","_rev":"1-1aab33360ed222ba97cd51fecabf6aa7"}