{"_id":"@chrono-os/meta-capi","_rev":"2-c9ec110c1d6535f9acfb693608c4d405","name":"@chrono-os/meta-capi","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@chrono-os/meta-capi","version":"0.1.0","keywords":["meta","facebook","conversions-api","capi","pixel","chrono-os"],"license":"MIT","_id":"@chrono-os/meta-capi@0.1.0","maintainers":[{"name":"sugarhoneyicetea","email":"aquilaferraz@gmail.com"}],"homepage":"https://github.com/SugarHoneyIceTea/meta-capi#readme","bugs":{"url":"https://github.com/SugarHoneyIceTea/meta-capi/issues"},"dist":{"shasum":"f58e446749b167a94708d390f55f06b39d12bf96","tarball":"https://registry.npmjs.org/@chrono-os/meta-capi/-/meta-capi-0.1.0.tgz","fileCount":10,"integrity":"sha512-oS5B3UYCyyUuKxReUvGk5AowIdvXqez3nxkGOMlk/6wMAxdgQUtP9Ir+5oXiob5bCkVnnMj23kNQTb3dcACQQg==","signatures":[{"sig":"MEQCIDSK+ffeC3AnYUSMj1dlfDiTqCrX9PoRGfzf/3Ut9IFyAiA/Y/58pNlf3Hv4tP59U1ne6aUsJiPjkZY/OTpZwwMNvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55706},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./package.json":"./package.json"},"gitHead":"b56f82281235ccceb1ff403ac40b3dbf47546187","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit && tsc -p tsconfig.test.json","test:watch":"vitest"},"_npmUser":{"name":"sugarhoneyicetea","email":"aquilaferraz@gmail.com"},"repository":{"url":"git+https://github.com/SugarHoneyIceTea/meta-capi.git","type":"git"},"_npmVersion":"11.9.0","description":"Meta Conversions API (server-side): hash de PII no padrão da Meta, deduplicação por event_id, fbc/fbp, Lead e Purchase. Nunca lança; zero dependências de runtime.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^3","typescript":"5.9.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/meta-capi_0.1.0_1789069060841_0.12518504658664198","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"_id":"@chrono-os/meta-capi@0.1.1","bugs":{"url":"https://github.com/SugarHoneyIceTea/meta-capi/issues"},"dist":{"shasum":"3cae8949369d7e3303fd3784197f0682f382d6b9","tarball":"https://registry.npmjs.org/@chrono-os/meta-capi/-/meta-capi-0.1.1.tgz","fileCount":10,"integrity":"sha512-+LY8UDO1PfnpzG74DCs4eSeKncrotwN7uyHyKwGDx264+NEHrpCO8eP+R/eRIZq9C44JqSH/Zv+hPzlMRnIFow==","signatures":[{"sig":"MEUCIBqmbFCu1t6hUxQSjOnKoX/5goybXSyDLADAspzIgKWQAiEAgI17m1KrP3PwQqtoXJTIvPuNqNPJsqExPXmMLwBPdXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICK7yAxzZmzKdDS5W8LTWR7B6fWgfoEqDTmNUUqE8BF0AiEAxr+NOkKujJ10dGzrEajbDwdA5n8Oj+BRjBRuOBl4A6s="}],"unpackedSize":56160},"main":"./dist/index.cjs","name":"@chrono-os/meta-capi","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.17"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"64d4d3764bb598dd02fa6dae5f1d5a3aaaaba3de","license":"MIT","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit && tsc -p tsconfig.test.json","test:watch":"vitest"},"version":"0.1.1","_npmUser":{"name":"sugarhoneyicetea","email":"aquilaferraz@gmail.com"},"homepage":"https://github.com/SugarHoneyIceTea/meta-capi#readme","keywords":["meta","facebook","conversions-api","capi","pixel","chrono-os"],"repository":{"url":"git+https://github.com/SugarHoneyIceTea/meta-capi.git","type":"git"},"_npmVersion":"11.9.0","description":"Meta Conversions API (server-side): hash de PII no padrão da Meta, deduplicação por event_id, fbc/fbp, Lead e Purchase. Nunca lança; zero dependências de runtime.","directories":{},"maintainers":[{"name":"sugarhoneyicetea","email":"aquilaferraz@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","vitest":"^3","typescript":"5.9.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/meta-capi_0.1.1_1789075928027_0.9109579064711835"}}},"time":{"created":"2026-09-10T19:37:40.597Z","modified":"2026-09-10T21:32:08.312Z","0.1.0":"2026-09-10T19:37:41.002Z","0.1.1":"2026-09-10T21:32:08.115Z"},"bugs":{"url":"https://github.com/SugarHoneyIceTea/meta-capi/issues"},"license":"MIT","homepage":"https://github.com/SugarHoneyIceTea/meta-capi#readme","keywords":["meta","facebook","conversions-api","capi","pixel","chrono-os"],"repository":{"url":"git+https://github.com/SugarHoneyIceTea/meta-capi.git","type":"git"},"description":"Meta Conversions API (server-side): hash de PII no padrão da Meta, deduplicação por event_id, fbc/fbp, Lead e Purchase. Nunca lança; zero dependências de runtime.","maintainers":[{"name":"sugarhoneyicetea","email":"aquilaferraz@gmail.com"}],"readme":"# @chrono-os/meta-capi\n\nMeta Conversions API (eventos server-side do pixel). Hash de PII no padrão da Meta, deduplicação com o evento do navegador por `event_id`, `fbp`/`fbc`, Lead e Purchase. Nunca lança; zero dependências de runtime.\n\n```ts\nimport { criarMetaCapi, lerCookie } from '@chrono-os/meta-capi'\n\nconst capi = criarMetaCapi({\n  accessToken: process.env.META_CAPI_ACCESS_TOKEN, // vazio = desligado (avisa uma vez)\n  pixelId: process.env.META_PIXEL_ID,\n  testEventCode: process.env.META_CAPI_TEST_CODE,  // aba \"Testar eventos\"\n  logger,\n})\n\nawait capi.enviar({\n  eventName: 'Lead',\n  eventId,                              // o mesmo do fbq('track', 'Lead', {}, { eventID })\n  email, telefone, nome,\n  fbp: lerCookie(req.headers.cookie, '_fbp'),\n  fbc: lerCookie(req.headers.cookie, '_fbc'),\n  fbclid,                               // vira fbc quando o cookie falta\n  clientIp, userAgent,\n  eventSourceUrl: pagina,               // só origem + caminho são enviados\n  contentName: 'lp-holding',\n})\n// { ok: true, status } | { ok: false, motivo: 'desligado' | 'http' | 'rede', status? }\n```\n\n- Telefone sem DDI e sem `+` ganha o DDI padrão (`55`); com `+`, fica como veio.\n- O `access_token` vai no corpo do POST, não na URL (na URL ele acaba em log de proxy e de APM).\n- Nenhum dado pessoal sai em claro: e-mail, telefone, nome e `externalId` vão com SHA-256.\n\nAntes de subir campanha para domínio novo: adicionar o domínio na lista de permissão do pixel (Events Manager → Configurações → Permissões de tráfego) e confirmar o `PageView` como Processado em \"Testar eventos\". Sem isso o pixel do navegador não envia, e só este caminho server-side chega.\n","readmeFilename":"README.md"}