{"_id":"@photon-ai/imessage-kit","_rev":"24-a90a054633f4926688b863d7567c7c34","name":"@photon-ai/imessage-kit","dist-tags":{"rc":"3.0.0-rc.3","latest":"3.0.0"},"versions":{"1.0.1":{"name":"@photon-ai/imessage-kit","version":"1.0.1","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@1.0.1","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/Something-Great-AI/imessage-kit#readme","bugs":{"url":"https://github.com/Something-Great-AI/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"ce9fbdeb499b3ea8f5271d4373244c0d0b434eeb","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.1.tgz","fileCount":8,"integrity":"sha512-bKha1u1VgqrVMxCYFIWpUc61mPrqj9eirEUbrSv/egxvncHM73lXZY7R+QctF+1e9u/mfjlIPizmdE8VfPu05Q==","signatures":[{"sig":"MEYCIQCG9xvaj+dqdjIOdy1+zV6jJufk8h5E2CfPuQ1mrA+y8wIhAPTVmbMu8mebK/JGxyIUoBZpHLXjhXIMCUbs7tzOGgol","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":440566},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"bccf830ecc0693b1d78daa016e0023263ae90a1d","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/Something-Great-AI/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.1_1761012756317_0.7482288227994269","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@photon-ai/imessage-kit","version":"1.0.2","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.2","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/Something-Great-AI/imessage-kit#readme","bugs":{"url":"https://github.com/Something-Great-AI/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"aa2e1c5da4ca7f50ded684c91031b3e144aab932","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.2.tgz","fileCount":9,"integrity":"sha512-LoX11XISoxHFxKqMxibEp4nBGB6NiOCed463h86sUHK/aZ7wxPb21jr/iaW7nPcyvWgEunSnvw/QTslp6xky5Q==","signatures":[{"sig":"MEUCIQCdQ0WhaTRk0R9ShFideMM2uYUjemx2X4kFEGniMhEeYAIgBbYxq0Xj+AjOmxSXOs55yB7r8PUtznP1qGJtvbq+Kdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446214},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8b3d00eb058a1a223fe27021225f0083ae99879a","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/Something-Great-AI/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.2_1761013876099_0.3126607275227298","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@photon-ai/imessage-kit","version":"1.0.3","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.3","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"1da86ff4a4033add2ae9dba6ff5b9d614ba76b2f","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.3.tgz","fileCount":9,"integrity":"sha512-DYGRQ6mk4V3ZuXtFCtyLR7//5bqTe31wGp7aGSMv4US47xBzUerLKESZa4qvTqMXKL94f/nZTrMZXh805bJ0Xg==","signatures":[{"sig":"MEUCICyo2sGqMjNLugM0vpU0iY6JJ/dG55q9lgYQ7K45mIDVAiEA6gtLX1rgLhxJr3JjZCSDf7mtIwLZpg5IhervC2JBnAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446201},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6b8c2f120c8241d7d90040ed27b13e4a7cf3ee79","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.3_1761014114213_0.04767433177972702","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@photon-ai/imessage-kit","version":"1.0.4","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.4","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"cd5cfa519d4a35c53cf8c0d1f6af60a77b63813c","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.4.tgz","fileCount":9,"integrity":"sha512-YyylzC4oQffbRARRI8Zf9CCiNrD4N+2h4OG8tN5QKkqmrI6sMtbPtmjXFQ9shs0dIXm6FgX71RXxvFHiHH8MMQ==","signatures":[{"sig":"MEUCIQDClnp03JKdbLKeKRHU9FW0LJRl/Hj/4mEHOmDGaW9O7gIgTxziPzo2NpCvWf27bvUSGdi7gBFhha8qudk/eLbTMUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":448266},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7f859af2483bd3e27a1e62ecb20638e55751b927","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.4_1761371134915_0.024764319986995353","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@photon-ai/imessage-kit","version":"1.0.5","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.5","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"0ea3cf9dbeca9e96e1d03a59bbc2cb3ec436013a","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.5.tgz","fileCount":9,"integrity":"sha512-F6moE1rYVj/P5/mbs13E4rLkBH/0ddew6+aO4926z/THrs++bXVyuXeJj3Tn6zpPfFjTSra8/3RvbOacW1uEWA==","signatures":[{"sig":"MEQCIBuSpmRNKaciTAFaSfP9XMYiQzZIE84jsfbKeFSLcXMQAiB7gryN9o+uiBNk5w4nlfNy2sdXixLbXZLQl6JsfWLeBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451302},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9d9002e11da3aa2ce1f27f4e12c529169894c965","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.5_1761376295837_0.02822542268375927","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@photon-ai/imessage-kit","version":"1.0.6","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.6","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"1ba8c8a460838593fd1e0fcaf76c62c04356fab7","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.6.tgz","fileCount":9,"integrity":"sha512-GtrBEwfcg52LzSMos28hb0H3pnw16v5hwJW+9FPY9Goy0RCHy/cczx/nnZ6kOKd7rC4AmHg0X4J3vxdbGVGkIg==","signatures":[{"sig":"MEYCIQCw1CUJxWqHJQQhfcuEke1B3tM7rABkRkR5FmnjOA90YgIhALBy7euLFHKzu3jOENFdhFS4PFZJH8WhiZRn6A5KDHV6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450474},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6413a7bd3f89bac165abbf5dfda8994b3c0d2ef8","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.6_1761556038612_0.6499913446467633","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@photon-ai/imessage-kit","version":"1.0.7","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.0.7","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"c33182d31f09d080a8cb75124eb64a8f84c5f72c","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.0.7.tgz","fileCount":9,"integrity":"sha512-L1zbaTwRzZA3f1XZdq69vYFgixXEDBxe5JmZAP7Tkj6Jto+zvT45AoQ41PxpF/uuWWClJE3c4zDOe5lqHVg/ug==","signatures":[{"sig":"MEUCIQCUttb3XJOGiEgtMPHGDFXwvCuSUCBX22z+WUTyJBfjNQIgA1BDNAitkUxCXDbHs0MhgnoLoWdU9FKqrOjeAhIvyDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450557},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"82696a0e90dbfc737cf73bcb29f0f6449622d8c8","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.0.0","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.18.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.0.7_1761556311737_0.9146851101051596","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@photon-ai/imessage-kit","version":"1.1.0","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.1.0","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/sg-hq/imessage-kit#readme","bugs":{"url":"https://github.com/sg-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"a6613940e15fc1d935a46781f03cb5a061bd5fe7","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.1.0.tgz","fileCount":9,"integrity":"sha512-jPp9Y1RMxQyQudO3Oc4QOdTnehp4uaAZ4J+YdE/nABxZof5r3zxKV5FBxmcYiTiC8Yk4wEkhJmqp9QZiHo/iGA==","signatures":[{"sig":"MEQCIG5Cd/OBC2wB022awvzu9EiMLs9OKcihSVlNQZFKRvBnAiATK/O7AvK/gTusaY/SZPGi4/C8EuMu+S/xeGGZbExWGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461014},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a22d7d73456cb152008121a4078724931a208eb6","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/sg-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.9.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.1.0_1761809129331_0.5698065107425077","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@photon-ai/imessage-kit","version":"1.1.2","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.1.2","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"8847eee7854056d20ab80294796ee1917526dab5","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.1.2.tgz","fileCount":9,"integrity":"sha512-0BERdkm99QVPmt/mO1bL8aemQZsnRiJmgKc4BYRdRSomkLubCpqJ/RYior+HeixB226LW6YjqgxqTUkADpSlnQ==","signatures":[{"sig":"MEUCIQDBDaKU3OeEXMrABgDNOOwt5rI0/ZnBlMW2HgSxtQ4UJQIgWm+xKZUrXVfnIlx00X+xXmEQAttXcJRtYirBkLyG/qA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":460938},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"575b09e871292de134fa6dc64e200b082b8108bd","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.1.2_1762154237653_0.5144688485228419","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@photon-ai/imessage-kit","version":"1.1.3","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@1.1.3","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"03aaf4b07a084eca0d611996649e3fb700e44551","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-1.1.3.tgz","fileCount":9,"integrity":"sha512-ZkvCvTdzq2KLBluThR/gxuo2SBaEuTP+jLv7o/DWZBoC97A0en3obxwjW5wTMeiUqAM89hgAd/GjwCZzkOsmGg==","signatures":[{"sig":"MEUCIQC15qClLI4HRNQhXKjt3fB+FhG27QxIDTg1yYETqridWwIgDYt7+l+4UGWm55TYjh6R24TxoLwV6U0LA66t9kslopw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":461124},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"c6895085a88865acf692eebdf51ef725ad27a4c6","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_1.1.3_1762341504415_0.1886439032377032","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@photon-ai/imessage-kit","version":"2.0.0","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"SSPL-1.0","_id":"@photon-ai/imessage-kit@2.0.0","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"967e0ef55d72609e60243ffb226cff40a66ed798","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.0.0.tgz","fileCount":9,"integrity":"sha512-TbdsCylFGkXbeVWZjhjDaN6Q4qPKtMbj3CAEpNAe97hMdAyz3gARsizfSmq8s0bTHSMHtLxx2ztbLDXJR2xnDA==","signatures":[{"sig":"MEYCIQDt6L6pUX+pYs7DgTL5L3gNdi5Bu3OUd+sRLzMAvHD1XAIhAOhs/5VD+EIM3+0wlE6W+ZiDVD+zfE4JzRd0KCxwTvqi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":733992},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8b2489beabf174a722b3ba6735516e3044b06214","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.0.0_1762839204298_0.0700275042703169","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@photon-ai/imessage-kit","version":"2.0.1","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@2.0.1","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"ffff7897157993104a8d7f9e2d2fe4070f8feb72","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.0.1.tgz","fileCount":9,"integrity":"sha512-OauxlzChAPoPZxCAWxenxdwzFTwFkJ9zHyx08O9uwRXvbYTbLPvvMB9BZ+qzlUZC/GGhPgyJXZ+vQ/ct3W43cw==","signatures":[{"sig":"MEUCIQD3uOK5nwNb1A+JJlM5UTYbtwxj6hBWavd7s+fCYiNO/AIgazEg6GEZKkHhbnon7rljCWsv3c1vmHTlaWJkxB3giMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":725441},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0130977b96f3893e9cb0b2eec05b36ab581c94b8","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^11.0.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.0.1_1764328737918_0.688232475031757","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@photon-ai/imessage-kit","version":"2.0.2","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@2.0.2","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"facd652f0a92e7250c584826059cbd48d12d7411","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.0.2.tgz","fileCount":9,"integrity":"sha512-gbLCoeH5cHNEdmp2JSENn43plElCdTc2VPRXCYkbfBnUlqL+aI97dKmvadVynyBTcxgz6lNRYsztw0OxF+l+rQ==","signatures":[{"sig":"MEQCIFtzjctfvaWBRLbqsZ7aHkdLZlHIQfpU1Uf6MdlCLF2bAiAiHv0OOQrPfqSCGs0rQZCgMR+iHaBTfTr6xNcz0YcbaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":850692},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a911bf32c6801820a2307537fa3d2d788c7b5aae","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"node-typedstream":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.0.2_1765765619697_0.5311969154651102","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@photon-ai/imessage-kit","version":"2.1.0","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@2.1.0","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"d717c1110c2c3ebb75effba33e3198c0d44ba931","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.1.0.tgz","fileCount":9,"integrity":"sha512-F7OxkAjXKA/Z/GwfgRRBRyc1gdGD4Jyc9q01GsOieiGKPaA6x/Erpz+06xqiiuDMJ6D4gzZV2h/+XtXlE/NSLw==","signatures":[{"sig":"MEYCIQDnWt48hyGhu8MFTy7tPnrJm78cRZdOV+S/sMaq0Z1EmAIhAKrVmhNk+7AClmFVl0rVNwIULdtns6Xo4D+/if2sOpdj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":865038},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9bd1e28c519c2332f4717ba6abac88d9c69e4317","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"node-typedstream":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.1.0_1766052803869_0.8991275400218808","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@photon-ai/imessage-kit","version":"2.1.1","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@2.1.1","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"9b888140d52440a5b934e9876dc44d557b87b7f4","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.1.1.tgz","fileCount":9,"integrity":"sha512-eTJLQuXg9bN1to6m1nMSGXQmJswaJcX+ecquRfGcN8rbq6K1mMuztg1Ius2HyoTI2tg8PZar3FFH2IjrhKeX2w==","signatures":[{"sig":"MEYCIQCeQDI/xDLik2K5b4H68D1eun5BcvVE+nYhjOsBAo0aQAIhALQ0DIR9/5DIB9Xqmxz5UdA0/rC8m6edJrSdWgUxl4EO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":875223},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2c8590ed8e739ee6d94aa622f947036870cd36aa","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"node-typedstream":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.1.1_1768276145338_0.20262958891303784","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@photon-ai/imessage-kit","version":"2.1.2","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@2.1.2","maintainers":[{"name":"photon-ai","email":"photon@something.surf"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"dist":{"shasum":"a33c4a80dd34a1098d8ed41c189cfc2013f60b3d","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-2.1.2.tgz","fileCount":9,"integrity":"sha512-xteMkPqqWkPLv40M9gA1HJGS/fHXIWzzXNCwRfnC4+bj120KMXMacT9zOSoEcGk4MA0pGXcUMQPE16MdB+Bf/g==","signatures":[{"sig":"MEQCIEX3kpJgXpvzERkMzPxaMz21FREHBOTSCV08he8u6JBsAiAXruPa2CaEcmj8rSmWBplKwW6M+02ZM8MahRErUx2n3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@photon-ai%2fimessage-kit@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":875187},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"63fe172537140d2e867cec9dd0deac13a971ad4c","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","prepack":"npm run build","lint:fix":"biome check --write .","test:node":"node --test","test:watch":"bun test --watch","type-check":"tsc --noEmit","check:package":"bash scripts/check-package.sh","check:publish":"bash scripts/publish-check.sh","test:coverage":"bun test --coverage","prepublishOnly":"npm run lint && npm run type-check && npm run test && npm run build"},"_npmUser":{"name":"photon-ai","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"10.8.2","description":"A type-safe, elegant iMessage SDK for macOS with zero dependencies","directories":{},"sideEffects":false,"_nodeVersion":"20.19.6","dependencies":{"node-typedstream":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^1.9.4","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_2.1.2_1769082958690_0.7293243721560747","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.1":{"name":"@photon-ai/imessage-kit","version":"3.0.0-rc.1","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@3.0.0-rc.1","maintainers":[{"name":"photon_dev","email":"photon@something.surf"},{"name":"ryanzhuuuu","email":"ryan@photon.codes"},{"name":"qwerzl","email":"me@qwerzl.me"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"os":["darwin"],"dist":{"shasum":"b66d3f128e095e2aba8f15b8c670952a099b3ef5","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-3.0.0-rc.1.tgz","fileCount":9,"integrity":"sha512-PX9Fx8mQ+QuFd0JrUaCR3nk0c25dK0NKskX6ZxVmHVMj+kS9tJJiha/RL4/AyJyTLKQYpTcLvFa7cZCiY6PViQ==","signatures":[{"sig":"MEQCICNvB33hfFgqpX95SwF2cegEP1NyWMrAhh0R4EcHcl79AiAjGuuC+LPxPoBfispUWqniuv729sCUDg355g4Paplb4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1000428},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"73c17ae981f5c891b4b969c4da75ff7becf8f1b4","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","lint:fix":"biome check --write .","test:watch":"bun test --watch","type-check":"tsc --noEmit","test:coverage":"bun test --coverage"},"_npmUser":{"name":"photon_dev","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0","rollup":"^4.59.0","minimatch":"^10.2.4","@isaacs/brace-expansion":"^5.0.1"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.11.1","description":"Type-safe macOS iMessage SDK for TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@parseaple/typedstream":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^2.4.10","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_3.0.0-rc.1_1775925931188_0.4236619132900967","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.2":{"name":"@photon-ai/imessage-kit","version":"3.0.0-rc.2","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@3.0.0-rc.2","maintainers":[{"name":"photon_dev","email":"photon@something.surf"},{"name":"ryanzhuuuu","email":"ryan@photon.codes"},{"name":"qwerzl","email":"me@qwerzl.me"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"dist":{"shasum":"a8b772ec6a02c3883573b9592bf18fd84987e709","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-3.0.0-rc.2.tgz","fileCount":9,"integrity":"sha512-AlhogO/WEZNTMR0h+UsvtMkjdkuFI2WGnY8+gIVVusA6onzOuJwZpxQ70quc2Y+O0HsUV0JnLy+A0ZcudvuSXA==","signatures":[{"sig":"MEQCIFNkRa0XK/xDYnXo+Px7oe2TIBvnmZhMHtGVl7fP1kVhAiA7dZi3MidmylW408Xnm90n56B8RVIj8QWBpqX0GtjaWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1000406},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"922777cedab9c9326481c3eb69c4c2f1d935a0e9","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","lint:fix":"biome check --write .","test:watch":"bun test --watch","type-check":"tsc --noEmit","test:coverage":"bun test --coverage"},"_npmUser":{"name":"photon_dev","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0","rollup":"^4.59.0","minimatch":"^10.2.4","@isaacs/brace-expansion":"^5.0.1"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.11.1","description":"Type-safe macOS iMessage SDK for TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@parseaple/typedstream":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^2.4.10","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_3.0.0-rc.2_1776483443768_0.7354976466673424","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.3":{"name":"@photon-ai/imessage-kit","version":"3.0.0-rc.3","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@3.0.0-rc.3","maintainers":[{"name":"photon_dev","email":"photon@something.surf"},{"name":"ryanzhuuuu","email":"ryan@photon.codes"},{"name":"qwerzl","email":"me@qwerzl.me"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"dist":{"shasum":"355a400907d181e5313a3296cfee5c7b7fb96e0f","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-3.0.0-rc.3.tgz","fileCount":9,"integrity":"sha512-RsYDviKlL4WbVBZoNRj2S4qPBHtzCMpyW3Vfch8vVGv6gAG+4Hmq/VjUto+fnMPppm7sECjtOX1Eh8e8IQY68w==","signatures":[{"sig":"MEUCICoYi8VDOqPBauVqrlAT0nxQNpw8qycEwLHFPBQj4VAoAiEAmgwaqWcPICOMZQUETrbwopdBX+zyQYtRHqAriJMJYVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":763330},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4c8ead2de27af8d306e4a03b455c693572acdfbf","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","lint:fix":"biome check --write .","test:watch":"bun test --watch","type-check":"tsc --noEmit","test:coverage":"bun test --coverage"},"_npmUser":{"name":"photon_dev","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0","rollup":"^4.59.0","minimatch":"^10.2.4","@isaacs/brace-expansion":"^5.0.1"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.11.1","description":"Type-safe macOS iMessage SDK for TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@parseaple/typedstream":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","readmeFilename":"README.md","devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^2.4.10","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_3.0.0-rc.3_1776657944228_0.7701046897571555","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@photon-ai/imessage-kit","version":"3.0.0","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"author":{"name":"GreatSomething"},"license":"MIT","_id":"@photon-ai/imessage-kit@3.0.0","maintainers":[{"name":"photon_dev","email":"photon@something.surf"},{"name":"ryanzhuuuu","email":"ryan@photon.codes"},{"name":"qwerzl","email":"me@qwerzl.me"}],"homepage":"https://github.com/photon-hq/imessage-kit#readme","bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"dist":{"shasum":"a55293045ba71de6657408bd66de8d205409969d","tarball":"https://registry.npmjs.org/@photon-ai/imessage-kit/-/imessage-kit-3.0.0.tgz","fileCount":9,"integrity":"sha512-GGDETlRbrPXP5eaRvswaead7MCBGQkm8f7d3aVbx8+rXhB4GEyPiw7Q1/yz5ix53rmxqKRevWywOfG7n+kZDBw==","signatures":[{"sig":"MEYCIQD5T5HLGxlSRmbYj67mN6OE2CniUsGvzloqFW0RgOKbHAIhAIyPG5jR4YYu2iEhvp6eFF4Aym68c2yfsE7e5yW3YArN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":763325},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b0fcb8a6271f6e6cc668d4a283b8dd553cdeaf7d","scripts":{"dev":"tsup --watch","lint":"biome check .","test":"bun test","build":"tsup","format":"biome format --write .","lint:fix":"biome check --write .","test:watch":"bun test --watch","type-check":"tsc --noEmit","test:coverage":"bun test --coverage"},"_npmUser":{"name":"photon_dev","email":"photon@something.surf"},"overrides":{"glob":"^11.1.0","rollup":"^4.59.0","minimatch":"^10.2.4","@isaacs/brace-expansion":"^5.0.1"},"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"_npmVersion":"11.11.1","description":"Type-safe macOS iMessage SDK for TypeScript","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@parseaple/typedstream":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"tsup":"^8.0.0","@types/bun":"^1.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","@biomejs/biome":"^2.4.10","@types/better-sqlite3":"^7.6.0"},"optionalDependencies":{"better-sqlite3":"^12.5.0"},"_npmOperationalInternal":{"tmp":"tmp/imessage-kit_3.0.0_1776658573804_0.5800913946651252","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-10-21T02:12:36.232Z","modified":"2026-07-11T06:16:27.199Z","1.0.1":"2025-10-21T02:12:36.514Z","1.0.2":"2025-10-21T02:31:16.341Z","1.0.3":"2025-10-21T02:35:14.520Z","1.0.4":"2025-10-25T05:45:35.101Z","1.0.5":"2025-10-25T07:11:36.079Z","1.0.6":"2025-10-27T09:07:18.791Z","1.0.7":"2025-10-27T09:11:51.936Z","1.1.0":"2025-10-30T07:25:29.518Z","1.1.2":"2025-11-03T07:17:17.885Z","1.1.3":"2025-11-05T11:18:24.608Z","2.0.0":"2025-11-11T05:33:24.590Z","2.0.1":"2025-11-28T11:18:58.112Z","2.0.2":"2025-12-15T02:26:59.878Z","2.1.0":"2025-12-18T10:13:24.099Z","2.1.1":"2026-01-13T03:49:05.538Z","2.1.2":"2026-01-22T11:55:58.910Z","3.0.0-rc.1":"2026-04-11T16:45:31.437Z","3.0.0-rc.2":"2026-04-18T03:37:24.048Z","3.0.0-rc.3":"2026-04-20T04:05:44.398Z","3.0.0":"2026-04-20T04:16:14.008Z"},"bugs":{"url":"https://github.com/photon-hq/imessage-kit/issues"},"author":{"name":"GreatSomething"},"license":"MIT","homepage":"https://github.com/photon-hq/imessage-kit#readme","keywords":["imessage","sms","rcs","macos","typescript","sdk"],"repository":{"url":"git+https://github.com/photon-hq/imessage-kit.git","type":"git"},"description":"Type-safe macOS iMessage SDK for TypeScript","maintainers":[{"email":"team@photon.codes","name":"photon_dev"},{"email":"ryan@photon.codes","name":"ryanzhuuuu"},{"email":"me@qwerzl.me","name":"qwerzl"},{"email":"synapse-05.giddy@icloud.com","name":"lcandy"}],"readme":"<div align=\"center\">\n  \n![Banner](./.github/assets/banner.png)\n\n# @photon-ai/imessage-kit\n\n> A type-safe, elegant iMessage SDK for macOS with cross-runtime support\n\n</div>\n\n[![npm version](https://img.shields.io/npm/v/@photon-ai/imessage-kit.svg)](https://www.npmjs.com/package/@photon-ai/imessage-kit)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n[![Discord](https://img.shields.io/badge/Discord-Join-5865F2.svg?logo=discord&logoColor=white)](https://discord.gg/bZd4CMd2H5)\n\nA full-featured iMessage SDK for **reading**, **sending**, and **automating** iMessage conversations on macOS. Perfect for building AI agents, automation tools, and chat-first applications.\n\n> [!NOTE]\n> **✨ Looking for advanced features like threaded replies, tapbacks, message editing, unsending, live typing indicators? Check out [Advanced iMessage Kit](https://github.com/photon-hq/advanced-imessage-kit) and contact us at daniel@photon.codes.**\n\n---\n\n## Features\n\n| Feature | Method | Example |\n|---------|--------|---------|\n| [Send Text](#send-messages) | `sdk.send()` | [01-send-text.ts](./examples/01-send-text.ts) |\n| [Send Image](#send-attachments) | `sdk.send()` | [02-send-image.ts](./examples/02-send-image.ts) |\n| [Send File](#send-attachments) | `sdk.send()` | [03-send-file.ts](./examples/03-send-file.ts) |\n| [Send to Group](#send-to-groups) | `sdk.send()` | [04-send-group.ts](./examples/04-send-group.ts) |\n| [Query Messages](#query-messages) | `sdk.getMessages()` | [05-query-messages.ts](./examples/05-query-messages.ts) |\n| [List Chats](#list-chats) | `sdk.listChats()` | [06-list-chats.ts](./examples/06-list-chats.ts) |\n| [Real-time Watching](#real-time-watching) | `sdk.startWatching()` | [07-watch-messages.ts](./examples/07-watch-messages.ts) |\n| [Auto Reply](#auto-reply) | `onDirectMessage` → `sdk.send()` | [08-auto-reply.ts](./examples/08-auto-reply.ts) |\n| [Plugin System](#plugin-system) | `sdk.use()` | [10-plugin.ts](./examples/10-plugin.ts) |\n| [Error Handling](#error-handling) | `IMessageError` | [11-error-handling.ts](./examples/11-error-handling.ts) |\n\n---\n\n## Quick Start\n\n### Installation\n\n```bash\n# For Bun (zero dependencies)\nbun add @photon-ai/imessage-kit\n\n# For Node.js (requires better-sqlite3)\nnpm install @photon-ai/imessage-kit better-sqlite3\n```\n\n### Basic Usage\n\n```typescript\nimport { IMessageSDK } from '@photon-ai/imessage-kit'\n\nconst sdk = new IMessageSDK()\n\n// Send a text message\nawait sdk.send({ to: '+1234567890', text: 'Hello from iMessage Kit!' })\n\n// Or use async-dispose to guarantee teardown:\nawait using disposable = new IMessageSDK()\nawait disposable.send({ to: '+1234567890', text: 'Hi!' })\n\n// Manual teardown\nawait sdk.close()\n```\n\n### Configuration\n\n```typescript\n// Simplified; `readonly` modifiers omitted for readability — see src/types/config.ts\ninterface IMessageConfig {\n    databasePath?: string        // Path to Messages SQLite database (default: ~/Library/Messages/chat.db)\n    maxConcurrentSends?: number  // Concurrent send cap (default 10, range 1..50)\n    sendTimeout?: number         // ms per AppleScript invocation (default 30_000, range 1_000..300_000)\n    debug?: boolean              // Verbose SDK logs\n    plugins?: Plugin[]           // Plugins registered at construction; sdk.use() is also available later\n}\n```\n\nOut-of-range numeric values **throw** `IMessageError(code: 'CONFIG')` at construction — they are not silently clamped. The accepted ranges are exposed as the `BOUNDS` constant exported from the package root.\n\n### Granting Permission\n\n`IMessageKit` requires **Full Disk Access** to read `chat.db`.\n\n1. Open **System Settings → Privacy & Security → Full Disk Access**\n2. Click **\"+\"** and add your IDE or terminal (e.g., Cursor, VS Code, Terminal, Warp)\n\n---\n\n## Send vs Observe Semantics\n\n- `sdk.send(request)` returns `Promise<void>` that resolves when `osascript` exits successfully. It does **not** confirm the message landed in `chat.db`, nor does it return a `Message` object.\n- To correlate your send with a `chat.db` row (and observe delivery transitions), subscribe to `onFromMeMessage` via the watcher — it fires for every from-me row observed, whether authored by this SDK, another Apple client, or Messages.app.\n\n```typescript\n// Fire-and-forget send\nawait sdk.send({ to: '+1234567890', text: 'Hi' })\n\n// Observe the landed row\nawait sdk.startWatching({\n    onFromMeMessage: (msg) => console.log('Landed in chat.db:', msg.id, msg.isDelivered),\n})\n```\n\n---\n\n## Messages\n\n> Examples: [01-send-text.ts](./examples/01-send-text.ts) | [02-send-image.ts](./examples/02-send-image.ts) | [03-send-file.ts](./examples/03-send-file.ts) | [05-query-messages.ts](./examples/05-query-messages.ts)\n\n### Send Messages\n\n`sdk.send(request: SendRequest): Promise<void>`\n\n```typescript\n// Simplified; `readonly` modifiers omitted for readability — see src/types/send.ts\ninterface SendRequest {\n    to: string                  // phone, email, or chatId\n    text?: string\n    attachments?: string[]      // local absolute paths; remote URLs are rejected\n}\n\n// Text\nawait sdk.send({ to: '+1234567890', text: 'Hello World!' })\n\n// Email recipient\nawait sdk.send({ to: 'user@example.com', text: 'Hello!' })\n```\n\n### Send Attachments\n\n```typescript\n// Local file paths only — download remote URLs yourself first.\nawait sdk.send({ to: '+1234567890', attachments: ['/abs/path/image.jpg'] })\n\n// Text + multiple attachments — non-transactional: the first osascript call\n// bundles text + attachments[0]; each later attachment is its own call with\n// a ~500ms inter-step pacing. A mid-batch failure is labelled\n// \"attachment N/total\".\nawait sdk.send({\n    to: '+1234567890',\n    text: 'Check this out',\n    attachments: ['/abs/path/photo.jpg', '/abs/path/report.pdf']\n})\n```\n\n### Query Messages\n\n```typescript\nconst messages = await sdk.getMessages({\n    chatId: 'any;+;chat534ce85d...',   // optional — scopes to one conversation\n    participant: '+1234567890',\n    service: 'iMessage',                // 'iMessage' | 'SMS' | 'RCS'\n    isFromMe: false,                    // tri-state: omit → both\n    isRead: false,                      // tri-state: omit → both\n    hasAttachments: true,               // tri-state: omit → both\n    excludeReactions: true,             // drop tapback/sticker rows\n    since: new Date('2025-01-01'),\n    before: new Date('2025-02-01'),\n    search: 'meeting',                  // app-layer substring over decoded text\n    limit: 20,\n    offset: 0,\n})\n```\n\n`search` runs in application layer over decoded `attributedBody` — there is no SQL `LIKE` index. Narrow with `chatId` / `participant` / `since` / `limit` on large databases.\n\n---\n\n## Chats\n\n> Examples: [04-send-group.ts](./examples/04-send-group.ts) | [06-list-chats.ts](./examples/06-list-chats.ts)\n\n### List Chats\n\n```typescript\nconst chats = await sdk.listChats({\n    chatId: 'any;+;chat...',   // optional — scope to one chat\n    kind: 'group',              // 'group' | 'dm'\n    service: 'iMessage',\n    isArchived: false,\n    hasUnread: true,\n    sortBy: 'recent',           // 'recent' | 'name'\n    search: 'Project',          // LIKE over display_name / chat_identifier (escaped)\n    limit: 20,\n    offset: 0,\n})\n\nfor (const chat of chats) {\n    console.log({\n        chatId: chat.chatId,\n        name: chat.name,\n        kind: chat.kind,\n        unread: chat.unreadCount,\n        lastMessageAt: chat.lastMessageAt,\n    })\n}\n```\n\n### Send to Groups\n\nNever hand-write a group `chatId`. Always use one surfaced by the SDK.\n\n```typescript\n// From listChats\nconst groups = await sdk.listChats({ kind: 'group' })\nawait sdk.send({ to: groups[0].chatId, text: 'Hello group!' })\n\n// From the watcher\nawait sdk.startWatching({\n    onGroupMessage: async (msg) => {\n        if (msg.chatId) await sdk.send({ to: msg.chatId, text: 'ack' })\n    }\n})\n```\n\n### ChatId Formats\n\n| Format | Example | Used for |\n|--------|---------|----------|\n| DM bare address | `+1234567890` / `user@example.com` | DM routing; SDK prefixes internally |\n| DM prefixed | `iMessage;-;+1234567890` | Canonical DM chatId |\n| Group (macOS 26+) | `any;+;chat534ce85d...` | Group chat (current) |\n| Group (legacy) | `iMessage;+;chat534ce85d...` | Pre-macOS-26 group chat |\n| Group (bare GUID) | `chat45e2b868...` | Accepted as input; SDK prefixes internally |\n\nParse / validate directly via the exported value object when needed:\n\n```typescript\nimport { ChatId, resolveTarget } from '@photon-ai/imessage-kit'\n\nconst cid = ChatId.fromUserInput('iMessage;-;pilot@photon.codes')\ncid.isGroup            // false\ncid.coreIdentifier     // 'pilot@photon.codes'\n\nconst target = resolveTarget('+1234567890')   // MessageTarget (dm | group)\n```\n\n---\n\n## Real-time Events\n\n> Examples: [07-watch-messages.ts](./examples/07-watch-messages.ts) | [08-auto-reply.ts](./examples/08-auto-reply.ts) | [09-get-sent-message.ts](./examples/09-get-sent-message.ts)\n\n### Real-time Watching\n\n`sdk.startWatching(events)` accepts five callbacks. Calling it while a watcher is already running throws `IMessageError(code: 'CONFIG', message: 'Watcher is already running')` — stop it first.\n\n```typescript\nawait sdk.startWatching({\n    onIncomingMessage: (msg) => { /* every incoming (non-from-me) row */ },\n    onDirectMessage:   (msg) => { /* incoming DMs only */ },\n    onGroupMessage:    (msg) => { /* incoming group messages only */ },\n    onFromMeMessage:   (msg) => { /* any from-me row — this SDK or another client */ },\n    onError:           (err) => { /* dispatch errors */ },\n})\n\nawait sdk.stopWatching()   // safe to call even if never started\n```\n\n### Auto Reply\n\n```typescript\nawait sdk.startWatching({\n    onDirectMessage: async (msg) => {\n        if (!msg.text || !/hello/i.test(msg.text)) return\n        if (!msg.chatId) return   // rare WAL race before chat_message_join flushes\n        await sdk.send({ to: msg.chatId, text: 'Hi there!' })\n    }\n})\n```\n\n---\n\n## Attachments\n\n> Examples: [02-send-image.ts](./examples/02-send-image.ts) | [03-send-file.ts](./examples/03-send-file.ts)\n\n### Attachment Helpers\n\nOnly iMessage-specific helpers are exported. For copy / read / stat, use `node:fs` directly against `attachment.localPath`.\n\n```typescript\nimport {\n    attachmentExists,\n    getAttachmentExtension,\n    isImageAttachment,\n    isVideoAttachment,\n    isAudioAttachment,\n} from '@photon-ai/imessage-kit'\n\nconst [msg] = await sdk.getMessages({ hasAttachments: true, limit: 1 })\nconst attachment = msg?.attachments[0]\n\nif (attachment && await attachmentExists(attachment)) {\n    if (isImageAttachment(attachment)) {\n        const ext = getAttachmentExtension(attachment)   // lowercase, no leading dot — e.g. 'jpg'\n        // Use node:fs for anything further (copyFile, createReadStream, stat, …)\n    }\n}\n```\n\n---\n\n## Plugin System\n\n> Example: [10-plugin.ts](./examples/10-plugin.ts) · reference logger: [logger-plugin.ts](./examples/logger-plugin.ts)\n\n`sdk.use(plugin)` can be called before or after `sdk` is initialized — late registrations are joined to the pipeline on the next hook. Plugins are torn down on `sdk.close()`.\n\n```typescript\nimport { definePlugin } from '@photon-ai/imessage-kit'\n\nconst audit = definePlugin({\n    name: 'audit',\n    version: '1.0.0',\n    onBeforeSend: ({ request }) => {\n        // Throw here to veto the send; cause is attached to IMessageError(SEND).\n        if (request.text?.includes('forbidden')) throw new Error('blocked by policy')\n    },\n    onAfterSend: ({ request }) => {\n        console.log('[audit] dispatched to', request.to)\n    },\n})\n\nsdk.use(audit)\n```\n\n### Hook contract\n\nAll 11 hooks, grouped by dispatch mode:\n\n| Hook | Mode | Behaviour on throw |\n|------|------|--------------------|\n| `onInit` | sequential | Routed to `onError` |\n| `onDestroy` | sequential | Routed to `onError` |\n| `onError` | sequential | Logged once; not re-routed (prevents recursion) |\n| `onBeforeMessageQuery` | **interrupting** | Aborts `getMessages` with `IMessageError(DATABASE)` |\n| `onBeforeChatQuery` | **interrupting** | Aborts `listChats` with `IMessageError(DATABASE)` |\n| `onBeforeSend` | **interrupting** | Aborts `send` with `IMessageError(SEND)` — use as auth/policy gate |\n| `onAfterMessageQuery` | parallel | Routed to `onError` |\n| `onAfterChatQuery` | parallel | Routed to `onError` |\n| `onAfterSend` | parallel | Fires only on successful AppleScript dispatch |\n| `onIncomingMessage` | parallel | Every incoming row observed by the watcher |\n| `onFromMe` | parallel | Every from-me row observed — authoritative DB-arrival signal |\n\n> **Naming quirk.** The same from-me event surfaces as `DispatchEvents.onFromMeMessage` (user callback passed to `startWatching`) and `PluginHooks.onFromMe` (plugin entry point). They are intentionally distinct to mark the \"inline handler\" vs \"plugin observer\" boundary.\n\n---\n\n## Error Handling\n\n> Example: [11-error-handling.ts](./examples/11-error-handling.ts)\n\nAll SDK failures surface as `IMessageError` with a typed `code`.\n\n```typescript\nimport { IMessageError } from '@photon-ai/imessage-kit'\n\ntry {\n    await sdk.send({ to: '+1234567890', text: 'Hello' })\n} catch (error) {\n    if (error instanceof IMessageError) {\n        // error.code: 'PLATFORM' | 'DATABASE' | 'SEND' | 'CONFIG'\n        // error.cause: original thrown Error (when applicable)\n        console.error(`[${error.code}] ${error.message}`)\n    }\n}\n```\n\n`IMessageError` codes map to failure classes:\n- `PLATFORM` — non-darwin runtime, or missing `$HOME` (only raised by `requireMacOS()` / `getDefaultDatabasePath()`)\n- `DATABASE` — SQLite open failure, query errors, decoder issues, or `onBeforeMessageQuery` / `onBeforeChatQuery` plugin veto\n- `SEND` — AppleScript dispatch failure, `osascript` non-zero exit, Messages.app not running, attachment unreadable, send cancellation, or `onBeforeSend` plugin veto\n- `CONFIG` — out-of-bounds config, malformed chatId, SDK already destroyed, watcher already running, duplicate plugin name\n\n---\n\n## Examples\n\nRun any example with Bun (requires macOS and Full Disk Access):\n\n```bash\nbun run examples/01-send-text.ts\n```\n\n### Getting Started\n- [01-send-text.ts](./examples/01-send-text.ts) — basic text message\n- [02-send-image.ts](./examples/02-send-image.ts) — send an image attachment\n- [03-send-file.ts](./examples/03-send-file.ts) — send an arbitrary file\n\n### Message Operations\n- [05-query-messages.ts](./examples/05-query-messages.ts) — filter history\n- [09-get-sent-message.ts](./examples/09-get-sent-message.ts) — correlate a send with its chat.db row\n\n### Chats & Groups\n- [04-send-group.ts](./examples/04-send-group.ts) — send to a group\n- [06-list-chats.ts](./examples/06-list-chats.ts) — list conversations\n\n### Real-time & Automation\n- [07-watch-messages.ts](./examples/07-watch-messages.ts) — watcher lifecycle\n- [08-auto-reply.ts](./examples/08-auto-reply.ts) — auto-reply bot\n\n### Advanced\n- [10-plugin.ts](./examples/10-plugin.ts) — custom plugin\n- [11-error-handling.ts](./examples/11-error-handling.ts) — `IMessageError` handling\n- [logger-plugin.ts](./examples/logger-plugin.ts) — a reference logger plugin to adapt\n\n---\n\n## API Reference\n\n### Core Methods\n\n| Method | Description |\n|--------|-------------|\n| `new IMessageSDK(config?)` | Construct the SDK (sync). Opens the DB lazily. |\n| `sdk.use(plugin)` | Register a plugin; valid before or after init. |\n| `sdk.getMessages(query?)` | Query historical messages. Returns `Message[]`. |\n| `sdk.listChats(query?)` | Query chat summaries. Returns `Chat[]`. |\n| `sdk.send(request)` | Dispatch a send via AppleScript. Resolves on `osascript` exit. |\n| `sdk.startWatching(events)` | Begin WAL-based real-time watching. Throws `IMessageError(CONFIG)` if a watcher is already live. |\n| `sdk.stopWatching()` | Stop the watcher. Safe when never started. |\n| `sdk.close()` | Tear down watcher, plugins, and DB. Concurrent callers share the in-flight teardown; teardown failures surface as `AggregateError`. |\n| `await using sdk = new IMessageSDK()` | `Symbol.asyncDispose` integration — auto-close on scope exit. |\n\n### Types\n\n```typescript\ninterface Message {\n    rowId: number\n    id: string\n    text: string | null\n    participant: string | null\n    chatId: string | null\n    chatKind: 'dm' | 'group' | 'unknown'\n    service: 'iMessage' | 'SMS' | 'RCS' | null\n    kind: 'text' | 'memberAdded' | 'memberRemoved' | 'nameChanged' | 'groupAction' | 'unknown'\n    isFromMe: boolean\n    isRead: boolean\n    isSent: boolean\n    isDelivered: boolean\n    createdAt: Date\n    deliveredAt: Date | null\n    readAt: Date | null\n    editedAt: Date | null\n    retractedAt: Date | null\n    reaction: Reaction | null\n    attachments: Attachment[]\n    // ...plus ~30 additional fields; see src/domain/message.ts for the full interface\n}\n```\n\nFull types — `Message`, `Chat`, `Attachment`, `Reaction`, `SendRequest`, `MessageQuery`, `ChatQuery`, `Plugin`, `PluginHooks`, `DispatchEvents`, `MessageTarget` — are exported from the package root. See `llms.txt` for the condensed reference.\n\n---\n\n## Requirements\n\n- **OS**: macOS only\n- **Runtime**: Node.js >= 20.0.0 or Bun >= 1.0.0\n- **Permissions**: Full Disk Access\n\n---\n\n## LLMs\n\nDownload `llms.txt` for language model context:\n\n- [Download llms.txt](./llms.txt)\n\n### Context7 MCP\n\n- [Context7 Docs](https://context7.com/photon-hq/imessage-kit)\n\nAdd [Context7 MCP](https://context7.com/docs/installation) to your IDE, then use:\n\n```\nuse context7: photon-hq/imessage-kit\n```\n\n---\n\n## License\n\n[MIT License](./LICENSE)\n\n---\n\n**Note**: This SDK is for educational and development purposes. Always respect user privacy and follow Apple's terms of service.\n","readmeFilename":"README.md"}