{"_id":"@absolutejs/dispatch-twilio","_rev":"11-f42cbeb03974cacf07c1d5c319f9b268","name":"@absolutejs/dispatch-twilio","dist-tags":{"latest":"0.7.0"},"versions":{"0.0.1":{"name":"@absolutejs/dispatch-twilio","version":"0.0.1","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.0.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"2603d5d01b713b2a81743a05add14a9756f2a982","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.0.1.tgz","fileCount":6,"integrity":"sha512-hOndOhpl7PflDYBScqFh5t3H3LQPzQb3dE6y2FtmTCNK0MTDkfcasUp9Uro5P8WQMZ1Gl1yncvANyL1G9KR0nA==","signatures":[{"sig":"MEUCIB1HPm4biKvKRDErtN78Qh4L9wFfHAHgYJr+vuE5r5AxAiEA2xt7WWaovuIcbtMf5tw2hw0XsnwQl7StyyIBdzXb7fI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13710},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"2603d5d01b713b2a81743a05add14a9756f2a982","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external twilio && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-hOndOhpl7PflDYBScqFh5t3H3LQPzQb3dE6y2FtmTCNK0MTDkfcasUp9Uro5P8WQMZ1Gl1yncvANyL1G9KR0nA==","repository":{"url":"https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.8.3","description":"Twilio-backed SmsAdapter for @absolutejs/dispatch. Maps SmsMessage to Twilio messages.create; surfaces the Message SID as DispatchResult.id.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"^0.0.1"},"peerDependencies":{"twilio":">= 5.0.0","@absolutejs/dispatch":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.0.1_1780174517019_0.16038086979711474","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@absolutejs/dispatch-twilio","version":"0.0.2","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.0.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"d5154e3fdcaf9615039ce499618bb47ac3d26499","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.0.2.tgz","fileCount":11,"integrity":"sha512-bNeGzsW824Xnt/Hq5PCiGQVe0lmvdCcI4V3PgFYa8BFyi0Am5SSxOTxLvvym904HGlfis63N8tMjZRw1Yb94nQ==","signatures":[{"sig":"MEYCIQDsIxn5udD6ocuaX/ss4mTiVzzTMrG7LgmG2u3dtczh6AIhAN5dgz0PznJrqa/sBjpG+hzUBUXNohGVeDp63dWgTt3/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1109955},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"d5154e3fdcaf9615039ce499618bb47ac3d26499","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external twilio && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-bNeGzsW824Xnt/Hq5PCiGQVe0lmvdCcI4V3PgFYa8BFyi0Am5SSxOTxLvvym904HGlfis63N8tMjZRw1Yb94nQ==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.8.3","description":"Twilio-backed SmsAdapter for @absolutejs/dispatch. Maps SmsMessage to Twilio messages.create; surfaces the Message SID as DispatchResult.id.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"^0.0.1"},"peerDependencies":{"twilio":">= 5.0.0","@absolutejs/dispatch":">= 0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.0.2_1783964728658_0.7610401382694258","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@absolutejs/dispatch-twilio","version":"0.0.3","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.0.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"b056be5416f2f8a3583489415d4e1b963090f491","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.0.3.tgz","fileCount":11,"integrity":"sha512-iZbQRHMlJc2ubfyYl9DrxFf6axpJiKRQ7g3GIZdCLyzydam+WiJonysEpn/ODfzZGNpehuyndEmxOePqLbwkWQ==","signatures":[{"sig":"MEUCIH8VfAlGVVTkjrngxKy6g5WlMkmR9swcOgf0Ktm2Jz0ZAiEA3FHTNziegoVa52GGrcbtQ2oFP4/wJpRmV0T05nLZHdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24879},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"748a80e3deb2d01bae7ac76c787c5a3d00899ea8","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.1.1 <0.2","tested":"0.1.1","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Twilio-backed SmsAdapter for @absolutejs/dispatch. Maps SmsMessage to Twilio messages.create; surfaces the Message SID as DispatchResult.id.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"twilio":"6.0.2","prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.1.1"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.1.1 <0.2"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.0.3_1784964462499_0.1712214883360561","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@absolutejs/dispatch-twilio","version":"0.1.0","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"4f5885fa7131c65fafa02232a291fc02c45d753f","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.1.0.tgz","fileCount":19,"integrity":"sha512-7aigoZc9pMmTxN6WhPO+6MMZSfgd9V2N1h18dS6KqylhQqiLk9M7PMisFD8Ffh0UbQqXciQkNpmplYk6D/3g8A==","signatures":[{"sig":"MEQCIEWySAruFOltRTf9a0Cn0s0oc5oDzjMa1wnADSNJHWmkAiAtuVXnrjDErJgiBfJj16A79ukI+lBpjqNE6cl448FdCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70762},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"56e26d7b2f886c4ab7a9cac635ca0c7d78118a05","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.1.1 <0.2","tested":"0.1.1","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS for @absolutejs/dispatch with Messaging Service routing, signed lifecycle webhooks, opt-out events, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"twilio":"6.0.2","prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.1.1"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.1.1 <0.2"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.1.0_1785556517339_0.07295504255272145","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/dispatch-twilio","version":"0.2.0","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"2f738ab28ecebba8ed886c788636d5b9add85164","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.2.0.tgz","fileCount":23,"integrity":"sha512-gx1h6cNfK+rcvFj3NgYgZMiORe+pf3EwXNrlgP0yBCuMJlcVC0SUbtIOvCbgQWdFTmNzzUorlKKuKAiwMJc2HQ==","signatures":[{"sig":"MEQCIAtxNWQljFhKbOkNEeUbBWyfFhJCC/yor+NeZnZLXvtLAiA5+lZyOz1XRb1zGI4+J4potPADPJMR/zbBQWrx3yWWQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130957},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"c4ad8ef3c415bad5c05d52c89036df04b72e0790","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.2.0 <0.3","tested":"0.2.0","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS for @absolutejs/dispatch with Messaging Service routing, signed lifecycle webhooks, opt-out events, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"twilio":"6.0.2","prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.2.0"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.2.0 <0.3"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.2.0_1785600299113_0.1138781836581313","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@absolutejs/dispatch-twilio","version":"0.2.1","keywords":["dispatch","sms","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.2.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"43d532463dbbbfe1ec1c9e172e18fed0707ab62f","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.2.1.tgz","fileCount":24,"integrity":"sha512-rMokb5eWKxHC+3iw+u0r4Q4ky7qTdzlKDplNqhsuQcwZZDHGvuxtsGPw5VMY9ht14O11vqMyC+hKjoBbC9TBtg==","signatures":[{"sig":"MEUCIQC/DCN6VkV9VtF6JKu6pDErrvaYTfuklZhgYlfDlX0zJAIgFlkNOF0GZZU3lltSbgODkmZQGKpRfl/Vk8QkiYkfUKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141194},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"51b30d166001c2518a2226a723da6e0b2fb8764a","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.2.0 <0.3","tested":"0.2.0","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS for @absolutejs/dispatch with Messaging Service routing, signed lifecycle webhooks, opt-out events, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"twilio":"6.0.2","prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.2.0"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.2.0 <0.3"},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.2.1_1785600591049_0.9103993066939109","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/dispatch-twilio","version":"0.3.0","keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.3.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"eaf1934497de0deb5199c1f86580d4efa977e1c6","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.3.0.tgz","fileCount":26,"integrity":"sha512-QnIFiC09I6Fj70jHwuhsyqn+x/T4sE8VbgAHbuwipgp8z8OGvQNy7ZZim64oV9FhRUZZFCxUIW3dpp3fhoZmEQ==","signatures":[{"sig":"MEUCIDb+XeD7sNXZ4vMPwO4ZBJHWs5fR3DGMslO3j4SbQZHSAiEAyDBYOxbLBUrJDuZXqoCDo+VhALeDhm1Bpnm0KbvG0IU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179311},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"cf0dc58f067d574fca9a33a27c85cb64a3acd851","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/compliance --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.3.1 <0.4","tested":"0.3.1","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]},"@absolutejs/compliance":{"range":">=0.3.1 <0.4","tested":"0.3.2","optional":true,"buildExternals":["@absolutejs/compliance"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"twilio":"6.0.2","prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.3.1","@absolutejs/compliance":"0.3.2"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.3.1 <0.4","@absolutejs/compliance":">=0.3.1 <0.4"},"peerDependenciesMeta":{"@absolutejs/compliance":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.3.0_1785602389282_0.20275387495620212","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@absolutejs/dispatch-twilio","version":"0.4.0","keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.4.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"037b954bc7286209706e2cb8995a6d7ce949ef50","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.4.0.tgz","fileCount":30,"integrity":"sha512-tVrzs7aOoEd+9npwYFirR7Qv6Ddj2ODosz+qn99SVp4yirndt+1QFDtfQzB8NKB6Kih16851CtkRiCR04bo0Zg==","signatures":[{"sig":"MEUCIQDEpXEKKqt6lQuxDdi3CT/PcmPf0iSXLFonY0YdtUPgcwIgB1GJ9ZEz6FWRcQ+RroT38nq0EgR3cE2UO/aBm4DI/Oc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296713},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"427174cce9369d4c131b700c361bcc55f806cf1c","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/compliance --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","test:postgres":"bun test tests/twilioPostgres.test.ts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.4.0 <0.5","tested":"0.4.0","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]},"@absolutejs/compliance":{"range":">=0.4.0 <0.5","tested":"0.4.0","optional":true,"buildExternals":["@absolutejs/compliance"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"8.22.0","twilio":"6.0.2","prettier":"3.8.1","@types/pg":"8.20.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.4.0","@absolutejs/compliance":"0.4.0"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.4.0 <0.5","@absolutejs/compliance":">=0.4.0 <0.5"},"peerDependenciesMeta":{"@absolutejs/compliance":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.4.0_1785605434767_0.04998533391534776","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@absolutejs/dispatch-twilio","version":"0.5.0","keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.5.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"d2ce847d56584e9622bae67044716e5b852ad765","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.5.0.tgz","fileCount":30,"integrity":"sha512-Fix1A0UA3TKxaknOKd6YBVxO7ViDjSvP5dy0Prd3QJ4QEVZ9l6UOhc/j8pQY5QOGnf0ZDE2i0EWJrIc2N31VOw==","signatures":[{"sig":"MEUCIQD8FOedEld8LPUXPqANpucoSSzgpQsUG//WfVw+zNjw9gIgMwAA20IDceiohgtBO63uH4j56XRvADycjN15LF+rOiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295934},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"60f2121776ae1f0d138f9ea77f6ac04889f5f1b0","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/compliance --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","test:postgres":"bun test tests/twilioPostgres.test.ts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.5.0 <0.6","tested":"0.5.0","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]},"@absolutejs/compliance":{"range":">=0.5.0 <0.6","tested":"0.5.0","optional":true,"buildExternals":["@absolutejs/compliance"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"8.22.0","twilio":"6.0.2","prettier":"3.8.1","@types/pg":"8.20.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.5.0","@absolutejs/compliance":"0.5.0"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.5.0 <0.6","@absolutejs/compliance":">=0.5.0 <0.6"},"peerDependenciesMeta":{"@absolutejs/compliance":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.5.0_1785607436535_0.5642770860191144","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@absolutejs/dispatch-twilio","version":"0.6.0","keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/dispatch-twilio@0.6.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"dist":{"shasum":"3a8bd8593ca5f1a3254c87f00b541975acaf140e","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.6.0.tgz","fileCount":30,"integrity":"sha512-SfOSUj/U1ZwIxr1jHaH9Gwy2DUSN4Ml41vqFK2gSoZhd3fwzA02bX/1Vi11eWucJjQOqdEU/Ok8+l0qb5K7KgA==","signatures":[{"sig":"MEUCIHvhlXLLQj8jeQ+yY7VicnCUmebG6v5JtJ12y7AqfEjLAiEAtaMPyQyhOtH7kPLHLO58DclUSvdgEhPZGmnWdT6Zwk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":300182},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"gitHead":"ac4ca39431662b229f1ff78f6eeff465d00c5949","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/compliance --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run check:package && npm publish --access public","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","test:postgres":"bun test tests/twilioPostgres.test.ts","verify-package":"absolute-manifest verify-package"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"runtimePeers":{"twilio":{"range":">=5.0.0 <7","tested":"6.0.2","optional":false,"buildExternals":["twilio","twilio/*"],"artifactImports":[]},"@absolutejs/dispatch":{"range":">=0.6.0 <0.7","tested":"0.6.0","optional":false,"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"artifactImports":[]},"@absolutejs/compliance":{"range":">=0.6.0 <0.7","tested":"0.6.0","optional":true,"buildExternals":["@absolutejs/compliance"],"artifactImports":[]}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/dispatch-adapters.git","type":"git","directory":"twilio"},"_npmVersion":"10.9.2","description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"8.22.0","twilio":"6.0.2","prettier":"3.8.1","@types/pg":"8.20.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/dispatch":"0.6.0","@absolutejs/compliance":"0.6.0"},"peerDependencies":{"twilio":">=5.0.0 <7","@absolutejs/dispatch":">=0.6.0 <0.7","@absolutejs/compliance":">=0.6.0 <0.7"},"peerDependenciesMeta":{"@absolutejs/compliance":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/dispatch-twilio_0.6.0_1785612559908_0.6448245622481028","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@absolutejs/dispatch-twilio","version":"0.7.0","description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","repository":{"type":"git","url":"git+https://github.com/absolutejs/dispatch-adapters.git","directory":"twilio"},"homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","type":"module","license":"Apache-2.0","author":{"name":"Alex Kahn"},"publishConfig":{"access":"public"},"keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/compliance --external @absolutejs/dispatch --external '@absolutejs/dispatch/*' --external @absolutejs/manifest --external @sinclair/typebox --external twilio --external 'twilio/*' && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test","test:postgres":"bun test tests/twilioPostgres.test.ts","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","verify-package":"absolute-manifest verify-package","check:package":"bun run format && bun run typecheck && bun run test && bun run verify-package && bun run build && bun run verify-package --artifacts","release":"bun run check:package && npm publish --access public"},"peerDependencies":{"@absolutejs/compliance":">=0.7.0 <0.8","@absolutejs/dispatch":">=0.7.0 <0.8","twilio":">=5.0.0 <7"},"devDependencies":{"@absolutejs/compliance":"0.7.0","@absolutejs/dispatch":"0.7.1","@types/bun":"1.3.14","@types/pg":"8.20.3","pg":"8.22.0","prettier":"3.8.1","twilio":"6.0.2","typescript":"5.8.3"},"peerDependenciesMeta":{"@absolutejs/compliance":{"optional":true}},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js","default":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"absolutejs":{"manifestContract":2,"runtimePeers":{"@absolutejs/compliance":{"artifactImports":[],"buildExternals":["@absolutejs/compliance"],"optional":true,"range":">=0.7.0 <0.8","tested":"0.7.0"},"@absolutejs/dispatch":{"artifactImports":[],"buildExternals":["@absolutejs/dispatch","@absolutejs/dispatch/*"],"optional":false,"range":">=0.7.0 <0.8","tested":"0.7.1"},"twilio":{"artifactImports":[],"buildExternals":["twilio","twilio/*"],"optional":false,"range":">=5.0.0 <7","tested":"6.0.2"}}},"dependencies":{"@absolutejs/manifest":"0.7.2","@sinclair/typebox":"^0.34.0"},"_id":"@absolutejs/dispatch-twilio@0.7.0","gitHead":"c7ced4f2c36deff0db92b72ef5bf86ca98aa004d","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-sO7jmatmtFSmjKvBPdWBGH0l6H9q/XesCC8KeOyfX/9rxgv3x9Egz9IXwoGs06LzVcwyhEYmTKFZ/MgljizwTg==","shasum":"56d374d3d84fd9b744056318692fa11f31a74a6e","tarball":"https://registry.npmjs.org/@absolutejs/dispatch-twilio/-/dispatch-twilio-0.7.0.tgz","fileCount":30,"unpackedSize":300182,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCP2NzIr+W3R5EZ1vTaYJss4tmVvXfj77ABPOdcejFPkwIgG5qh7pCncRtP8liMy1UCF510KSuaHfJAlv3nXp7MUYc="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dispatch-twilio_0.7.0_1785618468736_0.8619461643388802"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-30T20:55:16.847Z","modified":"2026-08-01T21:07:49.044Z","0.0.1":"2026-05-30T20:55:17.219Z","0.0.2":"2026-07-13T17:45:28.876Z","0.0.3":"2026-07-25T07:27:42.656Z","0.1.0":"2026-08-01T03:55:17.469Z","0.2.0":"2026-08-01T16:04:59.261Z","0.2.1":"2026-08-01T16:09:51.202Z","0.3.0":"2026-08-01T16:39:49.447Z","0.4.0":"2026-08-01T17:30:34.953Z","0.5.0":"2026-08-01T18:03:56.693Z","0.6.0":"2026-08-01T19:29:20.037Z","0.7.0":"2026-08-01T21:07:48.865Z"},"bugs":{"url":"https://github.com/absolutejs/dispatch-adapters/issues"},"author":{"name":"Alex Kahn"},"license":"Apache-2.0","homepage":"https://github.com/absolutejs/dispatch-adapters/tree/main/twilio","keywords":["dispatch","sms","rcs","a2p-10dlc","twilio","absolutejs","transactional"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/dispatch-adapters.git","directory":"twilio"},"description":"Production Twilio SMS, MMS, RCS, and WhatsApp for @absolutejs/dispatch with consent enforcement, signed webhooks, registration automation, and readiness checks.","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/dispatch-twilio\n\nProduction Twilio SMS, MMS, RCS, and WhatsApp for `@absolutejs/dispatch`, with\nconsent enforcement, signed webhooks and Event Streams, carrier-registration\nhelpers, bounded durable inboxes, and operational readiness checks.\n\n## Install\n\n```sh\nbun add @absolutejs/dispatch @absolutejs/dispatch-twilio twilio\nbun add @absolutejs/compliance # when using the shared consent ledger\n```\n\n## Send alerts\n\nEvery send uses a Twilio Messaging Service and a public status callback.\n\n```ts\nimport { createDispatcher } from \"@absolutejs/dispatch\";\nimport { createTwilioAdapter } from \"@absolutejs/dispatch-twilio\";\nimport { Twilio } from \"twilio\";\n\nconst accountSid = process.env.TWILIO_ACCOUNT_SID!;\nconst client = new Twilio(accountSid, process.env.TWILIO_AUTH_TOKEN!);\n\nconst dispatcher = createDispatcher({\n  messaging: createTwilioAdapter({\n    accountSid,\n    client,\n    messagingServiceSid: process.env.TWILIO_MESSAGING_SERVICE_SID!,\n    statusCallbackUrl: \"https://app.example.com/webhooks/twilio/messaging\",\n    smartEncoded: true,\n    validityPeriod: 300,\n  }),\n});\n\nawait dispatcher.messaging({\n  content: { kind: \"text\", text: \"CPU usage has exceeded 90%.\" },\n  consent: {\n    programId: \"pro-alerts\",\n    purpose: \"incident-alerts\",\n  },\n  privacy: {\n    addressRetention: \"obfuscate\",\n    contentRetention: \"discard\",\n  },\n  tenant: \"tenant-a\",\n  to: { address: \"+12025550100\", transport: \"sms\" },\n});\n```\n\nRCS fallback is declared as a route, so the compliance policy automatically\nchecks consent for both transports:\n\n```ts\nawait dispatcher.messaging({\n  content: { kind: \"template\", id: \"HX0123456789abcdef0123456789abcdef\" },\n  consent: {\n    programId: \"pro-alerts\",\n    purpose: \"incident-alerts\",\n  },\n  fallbacks: [\n    {\n      from: { address: \"+12025550199\", transport: \"sms\" },\n      transport: \"sms\",\n    },\n  ],\n  to: { address: \"+12025550100\", transport: \"rcs\" },\n});\n```\n\nOmit `fallbacks` to require RCS. Twilio rich content uses a published `HX`\nContent SID through `content.kind: \"template\"`; portable text and media content\nuse their own exclusive content variants.\n\n### Idempotency and tenant isolation\n\n```ts\nimport {\n  createPostgresTwilioIdempotencyStore,\n  TWILIO_IDEMPOTENCY_POSTGRES_SCHEMA,\n} from \"@absolutejs/dispatch-twilio\";\n\nconst adapter = createTwilioAdapter({\n  accountSid,\n  client,\n  idempotencyStore: createPostgresTwilioIdempotencyStore(postgresPool),\n  messagingServiceSid,\n  statusCallbackUrl,\n  resolveTenant: (tenant) => tenantTwilioConfiguration(tenant),\n});\n```\n\nApply `TWILIO_IDEMPOTENCY_POSTGRES_SCHEMA` first. The pool must expose\n`connect()` so transactions use one checked-out connection. Keys are scoped by\nTwilio account and tenant, bound to a canonical payload fingerprint, and fenced.\nCompleted results are replayed. Conflicting payloads fail. An ambiguous network\nresult becomes `TwilioIdempotencyIndeterminateError` instead of being sent\nagain.\n\nProvider-native scheduling is disabled by default. Prefer an application queue\nthat re-evaluates consent immediately before sending. Explicit native schedules\nmust be 15 minutes to 35 days away and cannot carry a consent scope. Use\n`createTwilioScheduledMessageManager()` to inspect or cancel them.\n\n## Consent and signed messaging webhooks\n\n```ts\nimport {\n  createMessagingConsentDispatchPolicy,\n  createMessagingConsentLedger,\n  createPostgresMessagingConsentStore,\n} from \"@absolutejs/compliance\";\nimport {\n  createPostgresTwilioLifecycleStore,\n  createTwilioWebhookHandler,\n} from \"@absolutejs/dispatch-twilio\";\n\nconst consent = createMessagingConsentLedger({\n  audit,\n  store: createPostgresMessagingConsentStore(postgresPool),\n});\nconst lifecycleStore = createPostgresTwilioLifecycleStore(postgresPool);\n\nconst handleTwilioWebhook = createTwilioWebhookHandler({\n  publicUrl: \"https://app.example.com/webhooks/twilio/messaging\",\n  resolveAccount: (untrustedAccountSid) =>\n    accountDirectory.get(untrustedAccountSid),\n  store: lifecycleStore,\n  consent: {\n    ledger: consent,\n    resolveScopes: (event) =>\n      [\"sms\", \"rcs\"].map((transport) => ({\n        programId: \"pro-alerts\",\n        purpose: \"incident-alerts\",\n        recipient: event.from!,\n        tenant: \"tenant-a\",\n        transport,\n      })),\n  },\n  onEvent: async (event) => alerts.recordTwilioEvent(event),\n});\n```\n\n`resolveAccount` returns only known `{ accountSid, authTokens,\nmessagingServiceSids? }` records. Put the current token first and a still-valid\nprevious token second during rotation. The fixed `publicUrl` is used for\nsignature validation; forwarded host/protocol headers are not trusted.\n\nSTART and STOP may resolve to multiple program transports so fallback consent\nstays synchronized. Twilio's RCS Advanced Opt-Out behavior has provider\nlimitations, so production readiness requires an explicit tested mitigation.\n\n### Durable lifecycle inbox\n\nApply `TWILIO_LIFECYCLE_POSTGRES_SCHEMA` before constructing the Postgres\nstore. It atomically deduplicates events, rejects status regressions, and leases\nconsumer work. It accepts both `SM` and `MM` SIDs, records the actual fallback\ntransport, and includes interactive `ButtonPayload`/`ButtonText` fields.\n\nRaw form payloads are discarded by default. Normalized recovery data has a\nseven-day default retention window and configurable address/content redaction.\nUse `exportMessage()` and `purgeExpired()` for privacy workflows. Run\n`drainTwilioWebhookInbox()` from a worker so accepted work survives beyond\nTwilio's retry window.\n\n## Event Streams\n\n`createTwilioEventStreamHandler()` validates the raw JSON body signature and\nhandles CloudEvent batches. Use `createPostgresTwilioEventStreamStore()` after\napplying `TWILIO_EVENT_STREAM_POSTGRES_SCHEMA`; it provides atomic deduplication,\nbounded retention, optional product-specific redaction, and recovery through\n`drainTwilioEventStreamInbox()`.\n\n## Carrier compliance and ISV onboarding\n\n```ts\nconst registration = createTwilioComplianceManager(client);\n\nconst campaign = await registration.registerA2PCampaign(messagingServiceSid, {\n  brandRegistrationSid,\n  description,\n  messageFlow,\n  messageSamples: [sampleOne, sampleTwo],\n  usAppToPersonUsecase: \"ACCOUNT_NOTIFICATION\",\n  hasEmbeddedLinks: false,\n  hasEmbeddedPhone: false,\n  privacyPolicyUrl,\n  termsAndConditionsUrl,\n});\n\nconst status = await registration.inspect({\n  kind: \"a2p\",\n  customerProfileSid,\n  brandRegistrationSid,\n  messagingServiceSid,\n  campaignSid: campaign.sid,\n});\n```\n\nInspection targets are complete discriminated workflows, so a partial set of\ngreen resources cannot report ready. Toll-free submission requires its Trust\nHub profile and current business registration fields; failed checks expose\nrejection reasons, error codes, and edit/resubmission windows.\n\nISVs can call `initializeTollFreeEmbeddableInquiry()` to obtain the inquiry ID\nand ephemeral session token for Twilio's Compliance Embeddable. Keep Twilio\ncredentials server-side and expose that token only to the authenticated end\ncustomer.\n\n## Operational readiness\n\n```ts\nconst report = await inspectTwilioMessagingReadiness({\n  client,\n  expectedAccountSid: accountSid,\n  inboundWebhookUrl,\n  messagingServiceSid,\n  requiresUsA2PRegistration: true,\n  requiresRcsSender: true,\n  rcsAssertions: {\n    senderApproved: true,\n    advancedOptOutMitigationTested: true,\n  },\n  statusCallbackUrl,\n  store: lifecycleStore,\n  assertions: {\n    consentEvidenceStored: true,\n    optOutConfigured: true,\n    privacyPolicyPublished: true,\n    termsPublished: true,\n  },\n});\n```\n\nThe report checks account/service binding, webhook configuration, sender pools,\nA2P attachment, durable storage, consent, policy disclosures, RCS approval, and\nopt-out testing. Its scope is always `operational-not-legal-certification`.\n\n## License\n\n[Apache 2.0](../LICENSE).\n","readmeFilename":"README.md"}