{"_id":"@cariai/sdk","_rev":"2-140ed4024f7696f069f466222cce6685","name":"@cariai/sdk","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@cariai/sdk","version":"1.0.0","keywords":["cari","cariai","sdk","chatbot","chat","conversational"],"license":"SEE LICENSE IN LICENSE","_id":"@cariai/sdk@1.0.0","maintainers":[{"name":"cariai-sistemas","email":"sistemas@cariai.com"}],"homepage":"https://cariai.com","dist":{"shasum":"5ba0467dc28e848db4e4163680bfe4eae8b9b2db","tarball":"https://registry.npmjs.org/@cariai/sdk/-/sdk-1.0.0.tgz","fileCount":4,"integrity":"sha512-Im6tIupqajnXIfKz6rBWi9vLSH3zwqwjeFG1TTjvT7FyuoRHxFokyP5xUOVfEw4JjZykuzG2hXcGYJJlNb1jtw==","signatures":[{"sig":"MEUCIQDLvoFgYv7YMpZUyZfrbTY4X2B2YF7+BIcA46IOz3QzNgIgdQkNIRe2iBfdOX1Dt1sC/adi5IGt+8T3oIeo3SELtjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6034},"main":"./index.js","type":"module","module":"./index.js","exports":{".":"./index.js"},"_npmUser":{"name":"cariai-sistemas","email":"sistemas@cariai.com"},"_npmVersion":"11.12.1","description":"Cari SDK (web) — embebe el chat conversacional de Cari en tu web o app React con una función. Envuelve el loader hospedado (spec 013).","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_1.0.0_1784772175905_0.5454537007358311","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cariai/sdk","version":"1.0.1","description":"Cari SDK (web) — embebe el chat conversacional de Cari en tu web o app React con una función. Envuelve el loader hospedado (spec 013).","type":"module","main":"./index.js","module":"./index.js","exports":{".":"./index.js"},"keywords":["cari","cariai","sdk","chatbot","chat","conversational"],"sideEffects":false,"license":"SEE LICENSE IN LICENSE","homepage":"https://cariai.com","publishConfig":{"access":"public"},"_id":"@cariai/sdk@1.0.1","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-avpU4xBNyLlbSVZh/P1g2nUsP4/qoZh09jfXrx0+O2Ph2PHa/ehB22lFNhBeInrDFt3qKfDGgIJPQRZW9EYpuQ==","shasum":"2b4a48bc002907006f5f9233e36f81b962f7268a","tarball":"https://registry.npmjs.org/@cariai/sdk/-/sdk-1.0.1.tgz","fileCount":4,"unpackedSize":6346,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIED8SG8n6kPL7KEws/ZgOXt+FfVQCrrpm/cnCST4II+xAiBCkh6bqrDkqzz7K9vib8flB+GZxmLyXorY6eQV/fU/tw=="}]},"_npmUser":{"name":"cariai-sistemas","email":"sistemas@cariai.com"},"directories":{},"maintainers":[{"name":"cariai-sistemas","email":"sistemas@cariai.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sdk_1.0.1_1784824611792_0.8032272533063334"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-23T02:02:55.795Z","modified":"2026-07-23T16:36:52.088Z","1.0.0":"2026-07-23T02:02:56.077Z","1.0.1":"2026-07-23T16:36:51.915Z"},"license":"SEE LICENSE IN LICENSE","homepage":"https://cariai.com","keywords":["cari","cariai","sdk","chatbot","chat","conversational"],"description":"Cari SDK (web) — embebe el chat conversacional de Cari en tu web o app React con una función. Envuelve el loader hospedado (spec 013).","maintainers":[{"name":"cariai-sistemas","email":"sistemas@cariai.com"}],"readme":"# @cariai/sdk\n\nEmbebe el **Cari SDK (web)** en tu web o app React con una función. Es el envoltorio\nnpm del [loader hospedado](../v1/README.md) (spec 013): no duplica lógica — inyecta el\nmismo `cari-widget/v1/loader.js`, así el paquete y el snippet `<script>` quedan siempre\nen sincronía.\n\n## Instalar\n\n```bash\nnpm install @cariai/sdk\n```\n\n## Uso (JS / cualquier framework)\n\n```js\nimport { initCariWidget } from '@cariai/sdk';\n\ninitCariWidget({ key: 'TOKEN_DEL_BOT', lang: 'es' });\n// desde cualquier control:\nwindow.Cari?.open();\n```\n\n## Uso en React\n\n```jsx\nimport { useEffect } from 'react';\nimport { initCariWidget, destroyCariWidget } from '@cariai/sdk';\n\nexport function CariWidget({ botKey, domain, forceChatId }) {\n  useEffect(() => {\n    initCariWidget({ key: botKey, domain, forceChatId });\n    return () => destroyCariWidget();\n  }, [botKey, domain, forceChatId]);\n  return null;\n}\n```\n\n## Opciones (`initCariWidget(opts)`)\n\n| Opción | Qué hace | Default |\n|---|---|---|\n| `key` | **(requerido)** token del bot (`web_client_url`) | — |\n| `domain` | dominio de Cari (DEV/staging) | `https://cariai.com` |\n| `lang` | `es` / `en` | `es` |\n| `startHidden` | arrancar solo con el botón | `true` |\n| `forceChatId` | conversación ligada a persona (chatId del **inbox**, spec 004/005) | — |\n| `buttonId` | usar un botón propio como disparador | — |\n| `width` / `height` / `right` | tamaño/posición del panel | del bot |\n\n`destroyCariWidget()` quita el widget y su loader (útil al desmontar en una SPA).\n\n## API en runtime\n\n`window.Cari.open()` · `.close()` · `.identify({ chatId })`.\n\n> **Regla de oro (seguridad):** el `chatId` **siempre** viene del inbox autenticado del\n> propio usuario; nunca lo compongas en el cliente con un id ajeno (spec 006).\n\n## Publicación\n\nPendiente de decisión (spec 011, decisión #3): publicar bajo el org `@cariai` o entregar\nsolo el `<script>` hospedado. El código ya está listo para `npm publish`.\n","readmeFilename":"README.md"}