{"_id":"@adatechnology/notification-client","_rev":"8-b7d83fd16e31088799578ceb681467b3","name":"@adatechnology/notification-client","dist-tags":{"rc":"0.1.0-rc.6","latest":"0.1.0"},"versions":{"0.1.0-rc.1":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.1","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.1","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"5f06f3fa11b082ab5865d1802f34cd63be978325","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.1.tgz","fileCount":8,"integrity":"sha512-Zu9wetHFe9bBcxlUiFfDbbOB1UW7KillH53DODc5VmADr6dHHZH/pMQOXcmioIoHuLUkeB/gJc66MsaC1RWVWg==","signatures":[{"sig":"MEYCIQCMAHZotJL7cLGxZ9h6nquTvgau1cZlRj++EYLRevQAYgIhAMpsX+BjKCa8qh+UwMGkcPhlFnFV3u+JBfdKiE4x1pTu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75151},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.1.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/3087cb3cd40fd94e7f69b8a46a0da534/adatechnology-notification-client-0.1.0-rc.1.tgz","_integrity":"sha512-Zu9wetHFe9bBcxlUiFfDbbOB1UW7KillH53DODc5VmADr6dHHZH/pMQOXcmioIoHuLUkeB/gJc66MsaC1RWVWg==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.1_1785852815970_0.8202448141539465","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.2":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.2","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.2","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"2d0f0d87cc9d584d62356c9126eb9c3fed9bb0f3","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.2.tgz","fileCount":8,"integrity":"sha512-n9gRi15NkeXBwsZQ4/TNP7GT9TiMluyesxG3iVrnk4uW7iNFjZiQZdauK1VBxHAkFP0fLDyYBSN8xVSR4+nG3A==","signatures":[{"sig":"MEUCIQDuFUybub5yDx01c1k1YMnRC4N6FVqOGBAdnR+KXU0ZrwIgHELSaPKupjJd9pvq8JdHeZsYJoQHzM0z/X/SGVCwq+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79261},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.2.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/64a5951fb67d27a2a7687cfb3a5e1e62/adatechnology-notification-client-0.1.0-rc.2.tgz","_integrity":"sha512-n9gRi15NkeXBwsZQ4/TNP7GT9TiMluyesxG3iVrnk4uW7iNFjZiQZdauK1VBxHAkFP0fLDyYBSN8xVSR4+nG3A==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.2_1786034189544_0.5049744835372318","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.3":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.3","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.3","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"c9f152e5a3b815d064bb2c3b5539d074257878fb","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.3.tgz","fileCount":8,"integrity":"sha512-hCwvu+1SK5XIeBvASO6SgrfPeamP/t3RMEp5bCsumcAZ4L3lOetjDQRI6UHalzFA7UW6r+NtiYKzWsFPjrDfMw==","signatures":[{"sig":"MEYCIQCkzHVuBPRMRdh5vlRwUO4TvbuXErwr6oR1q8AyNiOhOQIhAI/fh0aA9+SaQqxGkMAP4qxx5fzw0cRQkaAaEB97nax3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87609},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.3.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/0625c8a889675e113245e3812f0f9244/adatechnology-notification-client-0.1.0-rc.3.tgz","_integrity":"sha512-hCwvu+1SK5XIeBvASO6SgrfPeamP/t3RMEp5bCsumcAZ4L3lOetjDQRI6UHalzFA7UW6r+NtiYKzWsFPjrDfMw==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.3_1787587602403_0.3341220847275612","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.4":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.4","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.4","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"2dce90d682345e0603e782abddaa29787de59612","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.4.tgz","fileCount":8,"integrity":"sha512-0zAyFk3kzwndL69VEa91jR+4Y4qYqs+mQvMUIsudjmosnbEMSS+Wisgntt4hOMNooiMaDnMZXMX1CcG/y2KprQ==","signatures":[{"sig":"MEYCIQDNFSJXzdGAb4i4ooD9KEX74uSvtRby7n/CjtrkwWxGvgIhAL7CfBH1573gMQk7sPxnWn1MVJ8GXhwzKTM+ULkA4USY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87609},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.4.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/6349c890d40cf9bfad6b137f042cb421/adatechnology-notification-client-0.1.0-rc.4.tgz","_integrity":"sha512-0zAyFk3kzwndL69VEa91jR+4Y4qYqs+mQvMUIsudjmosnbEMSS+Wisgntt4hOMNooiMaDnMZXMX1CcG/y2KprQ==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.4_1787623203774_0.5501150763593872","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.5":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.5","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.5","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"02a4b75c348776ca604dcb6c7b4506dfc84fbe5a","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.5.tgz","fileCount":8,"integrity":"sha512-TR2G2qBSoiWRHayR0ldG6Xeht7+1Wr0VcormcJyN+3ijUFbREW5rJ1QWauhATH4KMl6DES6W+tjcd/b58BGkbw==","signatures":[{"sig":"MEYCIQCHABSwy3bKjSD/QHY0qhCx+r3tvZLm6ohYTxWlwm0SLAIhAMRCACVoftHFeCbc42vUoLAq9Kvl2N0f3iqLQBOfGyS0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87609},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.5.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/a429a84bdf32682ba0f5302dc625cf30/adatechnology-notification-client-0.1.0-rc.5.tgz","_integrity":"sha512-TR2G2qBSoiWRHayR0ldG6Xeht7+1Wr0VcormcJyN+3ijUFbREW5rJ1QWauhATH4KMl6DES6W+tjcd/b58BGkbw==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.5_1787623917991_0.44827812725826344","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-rc.6":{"name":"@adatechnology/notification-client","version":"0.1.0-rc.6","license":"MIT","_id":"@adatechnology/notification-client@0.1.0-rc.6","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"dist":{"shasum":"1ed7ed5fd5767a6f7a207a08008a18a1eb163309","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0-rc.6.tgz","fileCount":8,"integrity":"sha512-3YfrmmbAA5Y1JE8/zu+4kt9MaRNawBZjBBTkql3e/leIKQ3CX8Msh7ZqBZ8Cag3Tvb1w4qKGYCYFUK/iYJplqg==","signatures":[{"sig":"MEUCIFkXaMuB2I7/gulEwF6Kvb7BELTqmZR8FLkKCwEIMiUdAiEA2oKdogqPrk9YgMsjBwlu7ePX4HrBoLRlvRqHTawNYbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87609},"main":"dist/index.js","type":"module","_from":"file:adatechnology-notification-client-0.1.0-rc.6.tgz","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"test":"bun test","build":"tsup","check":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"_resolved":"/tmp/08e80da715504464089cea9d72bd2c74/adatechnology-notification-client-0.1.0-rc.6.tgz","_integrity":"sha512-3YfrmmbAA5Y1JE8/zu+4kt9MaRNawBZjBBTkql3e/leIKQ3CX8Msh7ZqBZ8Cag3Tvb1w4qKGYCYFUK/iYJplqg==","_npmVersion":"10.9.8","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@adatechnology/notification-contracts":"0.1.0-rc.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","@types/bun":"1.3.14","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/notification-client_0.1.0-rc.6_1787657687008_0.11590231451504551","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@adatechnology/notification-client","version":"0.1.0","license":"MIT","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","publishConfig":{"access":"public"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"dependencies":{"@adatechnology/notification-contracts":"0.1.0"},"devDependencies":{"@types/bun":"1.3.14","tsup":"^8.5.1","typescript":"^5.7.3"},"scripts":{"build":"tsup","check":"tsc -p tsconfig.json --noEmit","test":"bun test"},"_id":"@adatechnology/notification-client@0.1.0","_integrity":"sha512-QR93KrvJzXCg3xkbusqiRrIuDbgw3lQDve1Q0GZzXh2XH2s4hm4WIjldlsowASuy5x69D52KM/veLsaGj/IqPg==","_resolved":"/tmp/d50b20d29c15442694b01bda5c4edd1e/adatechnology-notification-client-0.1.0.tgz","_from":"file:adatechnology-notification-client-0.1.0.tgz","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-QR93KrvJzXCg3xkbusqiRrIuDbgw3lQDve1Q0GZzXh2XH2s4hm4WIjldlsowASuy5x69D52KM/veLsaGj/IqPg==","shasum":"b6e10fdf1ea2048da9d652b3556eac3cd647103a","tarball":"https://registry.npmjs.org/@adatechnology/notification-client/-/notification-client-0.1.0.tgz","fileCount":8,"unpackedSize":87599,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDxZtUqe5/5Ensjn/qW3VXYdBQ7ydz0t392OOWFqvFxMgIgLH94Je3HcoZRXiCJAnkoeis0cpHqnFvOE6V8WSoqDpQ="}]},"_npmUser":{"name":"miyazaki","email":"andersonfrfilho@gmail.com"},"directories":{},"maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notification-client_0.1.0_1788318108689_0.2936039121428151"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T14:13:35.783Z","modified":"2026-09-02T03:01:48.996Z","0.1.0-rc.1":"2026-08-04T14:13:36.111Z","0.1.0-rc.2":"2026-08-06T16:36:29.733Z","0.1.0-rc.3":"2026-08-24T16:06:42.690Z","0.1.0-rc.4":"2026-08-25T02:00:03.921Z","0.1.0-rc.5":"2026-08-25T02:11:58.135Z","0.1.0-rc.6":"2026-08-25T11:34:47.153Z","0.1.0":"2026-09-02T03:01:48.837Z"},"license":"MIT","description":"Isomorphic notification client — typed HTTP, device registration and SSE. Runs in React Native, web, Node and Bun.","maintainers":[{"name":"miyazaki","email":"andersonfrfilho@gmail.com"}],"readme":"# @adatechnology/notification-client\n\nCliente **isomórfico** das rotas de notificação: HTTP tipado, registro de device e stream de\ntempo real. Roda em React Native, web, Node e Bun com o mesmo código.\n\nSem dependência de framework — o `notification-ui` é construído sobre ele, mas não é obrigatório.\n\n## Instalação\n\n```bash\nbun add @adatechnology/notification-client\n```\n\n## Uso\n\n```ts\nimport { createNotificationClient } from '@adatechnology/notification-client'\n\nconst client = createNotificationClient({\n  baseUrl: 'https://api.exemplo.com/v1',\n  getAuthHeaders: async () => ({ authorization: `Bearer ${await session.accessToken()}` }),\n})\n\nconst page = await client.listNotifications({ cursor })\nconst unread = await client.countUnread()\nawait client.markAsRead(notificationId)\n```\n\n`getAuthHeaders` é função, não valor: token de vida curta é renovado entre uma chamada e outra, e\ncapturar o header no boot deixaria o cliente autenticando com credencial vencida depois de 15\nminutos.\n\n## Tempo real sem `EventSource`\n\n```ts\nconst { url, headers } = await client.resolveStreamRequest()\n\nconst subscription = subscribeToNotificationStream({\n  url,\n  headers,\n  onEvent: () => queryClient.invalidateQueries(),\n})\n```\n\n`resolveStreamRequest` existe para o assinante reaproveitar a base e os headers já resolvidos, em\nvez de o chamador remontar a URL e o token por fora e os dois saírem de sincronia.\n\n**A `EventSource` da plataforma não é usada, de propósito.** Ela não aceita cabeçalho — o token\nteria que ir na query string, onde vaza para log de servidor, histórico e referer\n(`security.md` §8). E o React Native não a tem nativamente. A implementação usa `fetch` +\n`ReadableStream`, que resolve os dois problemas de uma vez e funciona igual nos quatro ambientes.\n\nReconexão com backoff exponencial e retomada por `Last-Event-ID` estão incluídas.\n\n## Registro de device\n\n```ts\nimport { createDeviceRegistration } from '@adatechnology/notification-client'\n```\n\nRegistra o token de push e **remove no logout** — device que continua registrado depois da saída\nmanda notificação da conta antiga para o aparelho.\n\n## Licença\n\nMIT © Ada Technology\n","readmeFilename":"README.md"}