{"_id":"@absolutejs/sync-pack-mentions","_rev":"8-294bf11a253e689075acbbe10e977951","name":"@absolutejs/sync-pack-mentions","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.0","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":"Alex Kahn","license":"CC BY-NC 4.0","_id":"@absolutejs/sync-pack-mentions@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"2cf54bd47f2d566577fc51c8768e8de4190ae52b","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.0.tgz","fileCount":5,"integrity":"sha512-QGBkypKaYPrxj4+akL3MsAiIT1p7jlMChzDQzk8/DnM4OCSPg4Zu/vB71sU5agqTY8vC65LrBhJOLeuDvg81GA==","signatures":[{"sig":"MEYCIQDzPjPzxOupUetFfs90mIdkTp3zt0N1fZlbvTsCmslszAIhAOV889dWaJ88jy+3Kt93owjiK/QDk8qFQ3X2m8nOhx8S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40377},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"2cf54bd47f2d566577fc51c8768e8de4190ae52b","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/sync && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-QGBkypKaYPrxj4+akL3MsAiIT1p7jlMChzDQzk8/DnM4OCSPg4Zu/vB71sU5agqTY8vC65LrBhJOLeuDvg81GA==","repository":{"url":"https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.8.3","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","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/sync":"^1.9.2"},"peerDependencies":{"@absolutejs/sync":">= 1.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.0_1780024344039_0.44215579508343583","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.1","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.1.1","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"dist":{"shasum":"88a58820625db3c7cb825f9a0af58e60bf59e08b","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.1.tgz","fileCount":6,"integrity":"sha512-kZ8PcFsVjz6xZhnFnwHYe4IP1UGnQtG/bE25ikrMmnXj8xEMTtYQzdzRWgAl26jlZiyJvygW/TtxlQAvL3de7A==","signatures":[{"sig":"MEQCIEFm4m4sOiy5Q/BSKHV6GoVIj0n31XWDOZCa8NyPrIbBAiBThtZ6cGYzMJOTsdqz4X7mPhhIUl1ixFAlArElKAtE8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49916},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"88a58820625db3c7cb825f9a0af58e60bf59e08b","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/sync && tsc --project tsconfig.build.json","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-kZ8PcFsVjz6xZhnFnwHYe4IP1UGnQtG/bE25ikrMmnXj8xEMTtYQzdzRWgAl26jlZiyJvygW/TtxlQAvL3de7A==","repository":{"url":"https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.8.3","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","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/sync":"^1.9.2"},"peerDependencies":{"@absolutejs/sync":">= 1.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.1_1780071576021_0.7097535347720958","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.2","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.1.2","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"dist":{"shasum":"53f572d58acf3828366b3d28e613623993dc9827","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.2.tgz","fileCount":10,"integrity":"sha512-qhpm8qJf/GtNxKLrG9oE7z0HAJN8Xb1rQIf3EMniEtnDn1Tw67d8spyBrQodKQ1Cz0XFKQVmYa6+WtTMBmppxA==","signatures":[{"sig":"MEYCIQDFMBeY/6a1OQiRwuRHZE3AATN51E8LKlYiM/V/izxY9QIhAKXTOIfVnajaLsMRNn5la4ha2SzKErlOXAQZDCZjUr2G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1147037},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"53f572d58acf3828366b3d28e613623993dc9827","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/sync && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-qhpm8qJf/GtNxKLrG9oE7z0HAJN8Xb1rQIf3EMniEtnDn1Tw67d8spyBrQodKQ1Cz0XFKQVmYa6+WtTMBmppxA==","absolutejs":{"manifestContract":1},"repository":{"url":"https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.8.3","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","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/sync":"^1.9.2"},"peerDependencies":{"@absolutejs/sync":">= 1.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.2_1783965474803_0.4396928675253031","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.3","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.1.3","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"dist":{"shasum":"da2cf56575128c6c9abe81f66ddc24b520f55bfa","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.3.tgz","fileCount":10,"integrity":"sha512-SlSyXT96WNw0i2FfcrewryARTFHX2WQiq6qSMhJ7I2nBtvNaDeWP478ATfAyh/wkGk/MzPOEcrXhgfC1/giBLw==","signatures":[{"sig":"MEQCID7iFvT/XLAwKC4qC73kEJ9BS2t9ASdVkpziXDBiEOznAiBNfkyjHJMFw8FRANyCOfxMU7u6RZc+Mv4Lif9x4h6wbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1168316},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"da2cf56575128c6c9abe81f66ddc24b520f55bfa","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/sync && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-SlSyXT96WNw0i2FfcrewryARTFHX2WQiq6qSMhJ7I2nBtvNaDeWP478ATfAyh/wkGk/MzPOEcrXhgfC1/giBLw==","absolutejs":{"manifestContract":2},"repository":{"url":"https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.8.3","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"^1.9.2"},"peerDependencies":{"@absolutejs/sync":">= 1.9.2"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.3_1784846215249_0.1869725394853614","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.4","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":"Alex Kahn","license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.1.4","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"dist":{"shasum":"9ec9013204879ad993a2eaa1cb6bc4f2b924265f","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.4.tgz","fileCount":10,"integrity":"sha512-mDfZQPkJsF0FKJlDkkVuGUVmQsK2DWlhVZ9eHS/TzWiY0RrYfPCjmjzWlg7/e8lTFyi0UMeg3iMldRtvyrKqHQ==","signatures":[{"sig":"MEUCIQDo25MGtuJtgfNOito3uWw7xfHZ9nX35zU/xyDg3ul8VAIgGDMXdfO3Bu18ewAc+PyDYfXYvqg/4XKxELNKX79PR3E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":510964},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"9ec9013204879ad993a2eaa1cb6bc4f2b924265f","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/sync && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"_integrity":"sha512-mDfZQPkJsF0FKJlDkkVuGUVmQsK2DWlhVZ9eHS/TzWiY0RrYfPCjmjzWlg7/e8lTFyi0UMeg3iMldRtvyrKqHQ==","absolutejs":{"runtimePeers":{"@absolutejs/sync":{"range":">=2.11.0 <3","tested":"2.11.0","buildExternals":["@absolutejs/sync"],"artifactImports":["@absolutejs/sync/engine"]}},"manifestContract":2},"repository":{"url":"https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.8.3","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"2.11.0"},"peerDependencies":{"@absolutejs/sync":">=2.11.0 <3"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.4_1784913347453_0.7743896604866565","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@absolutejs/sync-pack-mentions","version":"0.1.5","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.1.5","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"dist":{"shasum":"540a8c7322db9a11505a2d7c33001587d125f1ef","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.1.5.tgz","fileCount":10,"integrity":"sha512-Cu+fq9ImIMjg9F4XGxU+Y170JyRMaHs1o6JlAoj5wqDcIjYGy/QIiR04a8hZcoFEWWAKfUyio41fpV1jxudL2A==","signatures":[{"sig":"MEQCIChCKeNBvucbv1c2JlhbypwLeqBOVk6YTmQMQlG8DY8wAiAoXJzByE5KcScFcUAG+FFN3dj3M0S5HgYW5ULd1oM/HQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":518694},"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":"ba7c2594b58ad9e1cd434195d96823ba678f2260","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.9.2","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"2.11.0"},"peerDependencies":{"@absolutejs/sync":">=2.11.0 <3"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.1.5_1787720839137_0.8321270788492636","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@absolutejs/sync-pack-mentions","version":"0.2.0","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"author":{"name":"Alex Kahn"},"license":"Apache-2.0","_id":"@absolutejs/sync-pack-mentions@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"dist":{"shasum":"bd7210f26725babc4ffa5b7abee3901d89d6856e","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.2.0.tgz","fileCount":10,"integrity":"sha512-efnOHr+PVd073+YpenFS6uERinn9BUilZUW+gLGl8XbAlCpN0F7z2tDNlsvib9o8DRshgAjOimjn2Tsh+AuTJA==","signatures":[{"sig":"MEUCIB7rOIQht5XHRZJRI8PLWsPpoYqOBNUdJm/GQTZaXZXCAiEAqE26lG5mrZYuuxaP1uMJ+YSDMOVeTS6wk1uG1ofr41w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":519322},"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":"f6a9d1a741b1b3f39977cea64ba6931b3f2f61db","scripts":{"test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync && tsc --project tsconfig.build.json && absolute-manifest emit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"sync":{"localSchema":{"version":1,"localData":{"mutations":[{"match":"*mentions*","protection":"required","sensitivity":"private","onProtectionUnavailable":"memory-only"}],"collections":[{"match":"*mentions*","protection":"required","sensitivity":"private","evictionPriority":"normal","onProtectionUnavailable":"memory-only"}]}}},"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/sync-packs.git","type":"git","directory":"mentions"},"_npmVersion":"10.9.2","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"^0.34.0","@absolutejs/manifest":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.5.3","@types/bun":"1.3.14","typescript":"5.8.3","@absolutejs/sync":"2.28.0"},"peerDependencies":{"@absolutejs/sync":">=2.11.0 <3"},"_npmOperationalInternal":{"tmp":"tmp/sync-pack-mentions_0.2.0_1787723204745_0.42214701952301525","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@absolutejs/sync-pack-mentions","version":"0.3.0","description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","repository":{"type":"git","url":"git+https://github.com/absolutejs/sync-packs.git","directory":"mentions"},"homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","bugs":{"url":"https://github.com/absolutejs/sync-packs/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":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"scripts":{"build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --sourcemap --target=bun --external @absolutejs/sync && tsc --project tsconfig.build.json && absolute-manifest emit","test":"bun test","typecheck":"tsc --noEmit","format":"prettier --write \"./**/*.{ts,json,md}\"","release":"bun run format && bun run typecheck && bun run test && bun run build && bun publish"},"peerDependencies":{"@absolutejs/sync":">=2.11.0 <3"},"devDependencies":{"@absolutejs/sync":"2.29.0","@types/bun":"1.3.14","prettier":"3.5.3","typescript":"5.8.3"},"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,"sync":{"localSchema":{"version":1,"localData":{"collections":[{"match":"*mentions*","sensitivity":"private","protection":"required","onProtectionUnavailable":"memory-only","evictionPriority":"normal"}],"mutations":[{"match":"*mentions*","sensitivity":"private","protection":"required","onProtectionUnavailable":"memory-only","conflict":{"strategy":"client-wins","maxAttempts":1}}]}}}},"dependencies":{"@absolutejs/manifest":"^0.9.0","@sinclair/typebox":"^0.34.0"},"_id":"@absolutejs/sync-pack-mentions@0.3.0","gitHead":"70fac17d77643bafa53a933112c69a65b06245e9","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-ok3jePkFuvDC0pZkhkECy+96CQy8zx9XXKA/uAHjQ//4IZnBWdvBQKd3aLhqvjbx4NGuCWuNLxHKNjsTIKyEdg==","shasum":"8b1f8e830b948ea336cd584fcadf51d9d202d74a","tarball":"https://registry.npmjs.org/@absolutejs/sync-pack-mentions/-/sync-pack-mentions-0.3.0.tgz","fileCount":10,"unpackedSize":519705,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCUid404Ni/ZhR27zenrZc/OMI+xhwVnfa1D/Qsx6xUAQIhALrpNwpd2pild7ltOlsnh/RE2pscEjjC6Vv9rPu5xsMv"}]},"_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/sync-pack-mentions_0.3.0_1787729602255_0.43327454064216986"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T03:12:23.942Z","modified":"2026-08-26T07:33:22.712Z","0.1.0":"2026-05-29T03:12:24.187Z","0.1.1":"2026-05-29T16:19:36.284Z","0.1.2":"2026-07-13T17:57:54.973Z","0.1.3":"2026-07-23T22:36:55.469Z","0.1.4":"2026-07-24T17:15:47.739Z","0.1.5":"2026-08-26T05:07:19.286Z","0.2.0":"2026-08-26T05:46:44.886Z","0.3.0":"2026-08-26T07:33:22.438Z"},"bugs":{"url":"https://github.com/absolutejs/sync-packs/issues"},"author":{"name":"Alex Kahn"},"license":"Apache-2.0","homepage":"https://github.com/absolutejs/sync-packs/tree/main/mentions","keywords":["absolutejs","sync","sync-pack","mentions","notifications","composition"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/sync-packs.git","directory":"mentions"},"description":"@mention parser pack for @absolutejs/sync — extracts @usernames from a body, writes per-actor mention rows, fires an onMention hook that composes with the notifications pack","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/sync-pack-mentions\n\n`@username` parser pack for [`@absolutejs/sync`](https://github.com/absolutejs/sync). Owns a `mentions` table, parses bodies for `@usernames`, writes per-actor mention rows, and fires an `onMention` hook the host wires into other packs.\n\n```ts\nimport { createSyncEngine } from '@absolutejs/sync/engine';\nimport { createMentionsPack } from '@absolutejs/sync-pack-mentions';\n\nconst engine = createSyncEngine();\n\nengine.registerPack(\n  createMentionsPack({\n    getActorId: (ctx) => ctx.session.userId,\n    resolveActorId: async (username) => userIdByUsername(username),\n    onMention: async ({ mention }, ctx) => {\n      await engine.runMutation(\n        'notifications:notify',\n        {\n          targetActorId: mention.mentionedActorId,\n          kind: 'mention',\n          title: 'You were mentioned',\n          body: mention.snippet,\n          href: `/comments/${mention.sourceId}`,\n        },\n        ctx,\n      );\n    },\n  }),\n);\n```\n\nThe `onMention` hook is the seam. Packs in `@absolutejs/sync-packs` never call each other's mutations directly; the host wires them together. This pack provides the parser + the collection; you decide whether mentions fire notifications, emails, Slack pings, or anything else.\n\n## Surface\n\n| | |\n|---|---|\n| `ownsTables` | `mentions` |\n| Collections | `mentions` (per-actor view, filterable by `sourceKind` / `unresolvedOnly`) |\n| Mutations | `mentions:record { sourceKind, sourceId, body, authorId? }`, `mentions:resolve { id }`, `mentions:dismiss { id }` |\n| Permissions | only the mentioned actor reads, updates, deletes their rows; `insert` is host-trusted (the pack itself writes on the author's behalf) |\n\n## Composition pattern\n\nThe host calls `mentions:record` **right after** its own post mutation succeeds, then `onMention` fires once per parsed mention. From inside the hook, the host can `engine.runMutation('notifications:notify', …)` to compose with `@absolutejs/sync-pack-notifications`.\n\nMention rows are idempotent (`(sourceKind, sourceId, mentionedActorId)` is the primary key), so re-calling `mentions:record` on an edit of the same source body does **not** re-fire `onMention` for the same target. Self-mentions are skipped automatically.\n\n## License\n\nApache License 2.0. See [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}