{"id":"@lssm-tech/lib.notification","slug":"lib.notification","name":"@lssm-tech/lib.notification","version":"2.0.4","path":"packages/domains/communication/notification","manifestPath":"packages/domains/communication/notification/package.json","manifestBlobSha":"573cd791930d72ad00338ecdb88e8044da44a4d8","layer":"domains","physicalArea":"communication","primaryArea":"communication-and-notifications","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Library-first notification contracts, schema, channels, templates, and i18n for ContractSpec applications","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./channels","./channels/base","./channels/provider-channels","./channels/types","./communication-os","./contracts","./entities","./i18n","./i18n/catalogs","./i18n/catalogs/en","./i18n/catalogs/es","./i18n/catalogs/fr","./i18n/keys","./i18n/locale","./i18n/messages","./legacy-preferences","./notifications.capability","./notifications.feature","./product-channels","./templates"],"documentation":[{"title":"Lib Notification documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.notification","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.notification","title":"Lib Notification","description":"Library-first notification contracts, schema, channels, templates, and i18n for ContractSpec applications","status":"active","useCases":["Adopt library-first notification contracts, schema, channels, templates, and i18n for contractspec applications"],"aliases":["contractspec","notifications","messaging","channels","email","typescript","lib","notification"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.notification","symbols":[]},{"from":"@lssm-tech/lib.notification/channels","symbols":[]},{"from":"@lssm-tech/lib.notification/channels/base","symbols":[]},{"from":"@lssm-tech/lib.notification/channels/provider-channels","symbols":[]},{"from":"@lssm-tech/lib.notification/channels/types","symbols":[]},{"from":"@lssm-tech/lib.notification/communication-os","symbols":[]},{"from":"@lssm-tech/lib.notification/contracts","symbols":[]},{"from":"@lssm-tech/lib.notification/entities","symbols":[]},{"from":"@lssm-tech/lib.notification/i18n","symbols":[]},{"from":"@lssm-tech/lib.notification/i18n/catalogs","symbols":[]},{"from":"@lssm-tech/lib.notification/i18n/catalogs/en","symbols":[]},{"from":"@lssm-tech/lib.notification/i18n/catalogs/es","symbols":[]},{"from":"@lssm-tech/lib.notification/i18n/catalogs/fr","symbols":[]},{"from":"@lssm-tech/lib.notification/legacy-preferences","symbols":[]},{"from":"@lssm-tech/lib.notification/product-channels","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.notification package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/channels","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/channels/base","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/channels/provider-channels","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/channels/types","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/communication-os","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/contracts","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/entities","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/i18n","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/i18n/catalogs","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/i18n/catalogs/en","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/i18n/catalogs/es","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/i18n/catalogs/fr","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/legacy-preferences","symbols":[]},{"capabilityId":"package.lssm.tech.lib.notification","from":"@lssm-tech/lib.notification/product-channels","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.bus":"workspace:^","@lssm-tech/lib.communication-runtime":"workspace:^","@lssm-tech/lib.communication-spec":"workspace:^","@lssm-tech/lib.contracts-spec-core":"workspace:^","@lssm-tech/lib.schema":"workspace:^","@lssm-tech/lib.translation-runtime":"workspace:^","zod":"catalog:"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./channels":"./src/channels/index.ts","./channels/base":"./src/channels/base.ts","./channels/provider-channels":"./src/channels/provider-channels.ts","./channels/types":"./src/channels/types.ts","./communication-os":"./src/communication-os.ts","./contracts":"./src/contracts/index.ts","./entities":"./src/entities/index.ts","./i18n":"./src/i18n/index.ts","./i18n/catalogs":"./src/i18n/catalogs/index.ts","./i18n/catalogs/en":"./src/i18n/catalogs/en.ts","./i18n/catalogs/es":"./src/i18n/catalogs/es.ts","./i18n/catalogs/fr":"./src/i18n/catalogs/fr.ts","./i18n/keys":"./src/i18n/keys.ts","./i18n/locale":"./src/i18n/locale.ts","./i18n/messages":"./src/i18n/messages.ts","./legacy-preference-mapping":"./src/legacy-preference-mapping.ts","./legacy-preference-types":"./src/legacy-preference-types.ts","./legacy-preferences":"./src/legacy-preferences.ts","./notifications.capability":"./src/notifications.capability.ts","./notifications.feature":"./src/notifications.feature.ts","./product-channels":"./src/product-channels/index.ts","./product-channels/testing":"./src/product-channels/testing.ts","./templates":"./src/templates/index.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./channels":{"types":"./dist/channels/index.d.ts","browser":"./dist/browser/channels/index.js","bun":"./dist/channels/index.js","node":"./dist/node/channels/index.js","default":"./dist/channels/index.js"},"./channels/base":{"types":"./dist/channels/base.d.ts","browser":"./dist/browser/channels/base.js","bun":"./dist/channels/base.js","node":"./dist/node/channels/base.js","default":"./dist/channels/base.js"},"./channels/provider-channels":{"types":"./dist/channels/provider-channels.d.ts","browser":"./dist/browser/channels/provider-channels.js","bun":"./dist/channels/provider-channels.js","node":"./dist/node/channels/provider-channels.js","default":"./dist/channels/provider-channels.js"},"./channels/types":{"types":"./dist/channels/types.d.ts","browser":"./dist/browser/channels/types.js","bun":"./dist/channels/types.js","node":"./dist/node/channels/types.js","default":"./dist/channels/types.js"},"./communication-os":{"types":"./dist/communication-os.d.ts","browser":"./dist/browser/communication-os.js","bun":"./dist/communication-os.js","node":"./dist/node/communication-os.js","default":"./dist/communication-os.js"},"./contracts":{"types":"./dist/contracts/index.d.ts","browser":"./dist/browser/contracts/index.js","bun":"./dist/contracts/index.js","node":"./dist/node/contracts/index.js","default":"./dist/contracts/index.js"},"./entities":{"types":"./dist/entities/index.d.ts","browser":"./dist/browser/entities/index.js","bun":"./dist/entities/index.js","node":"./dist/node/entities/index.js","default":"./dist/entities/index.js"},"./i18n":{"types":"./dist/i18n/index.d.ts","browser":"./dist/browser/i18n/index.js","bun":"./dist/i18n/index.js","node":"./dist/node/i18n/index.js","default":"./dist/i18n/index.js"},"./i18n/catalogs":{"types":"./dist/i18n/catalogs/index.d.ts","browser":"./dist/browser/i18n/catalogs/index.js","bun":"./dist/i18n/catalogs/index.js","node":"./dist/node/i18n/catalogs/index.js","default":"./dist/i18n/catalogs/index.js"},"./i18n/catalogs/en":{"types":"./dist/i18n/catalogs/en.d.ts","browser":"./dist/browser/i18n/catalogs/en.js","bun":"./dist/i18n/catalogs/en.js","node":"./dist/node/i18n/catalogs/en.js","default":"./dist/i18n/catalogs/en.js"},"./i18n/catalogs/es":{"types":"./dist/i18n/catalogs/es.d.ts","browser":"./dist/browser/i18n/catalogs/es.js","bun":"./dist/i18n/catalogs/es.js","node":"./dist/node/i18n/catalogs/es.js","default":"./dist/i18n/catalogs/es.js"},"./i18n/catalogs/fr":{"types":"./dist/i18n/catalogs/fr.d.ts","browser":"./dist/browser/i18n/catalogs/fr.js","bun":"./dist/i18n/catalogs/fr.js","node":"./dist/node/i18n/catalogs/fr.js","default":"./dist/i18n/catalogs/fr.js"},"./i18n/keys":{"types":"./dist/i18n/keys.d.ts","browser":"./dist/browser/i18n/keys.js","bun":"./dist/i18n/keys.js","node":"./dist/node/i18n/keys.js","default":"./dist/i18n/keys.js"},"./i18n/locale":{"types":"./dist/i18n/locale.d.ts","browser":"./dist/browser/i18n/locale.js","bun":"./dist/i18n/locale.js","node":"./dist/node/i18n/locale.js","default":"./dist/i18n/locale.js"},"./i18n/messages":{"types":"./dist/i18n/messages.d.ts","browser":"./dist/browser/i18n/messages.js","bun":"./dist/i18n/messages.js","node":"./dist/node/i18n/messages.js","default":"./dist/i18n/messages.js"},"./legacy-preference-mapping":{"types":"./dist/legacy-preference-mapping.d.ts","browser":"./dist/browser/legacy-preference-mapping.js","bun":"./dist/legacy-preference-mapping.js","node":"./dist/node/legacy-preference-mapping.js","default":"./dist/legacy-preference-mapping.js"},"./legacy-preference-types":{"types":"./dist/legacy-preference-types.d.ts","browser":"./dist/browser/legacy-preference-types.js","bun":"./dist/legacy-preference-types.js","node":"./dist/node/legacy-preference-types.js","default":"./dist/legacy-preference-types.js"},"./legacy-preferences":{"types":"./dist/legacy-preferences.d.ts","browser":"./dist/browser/legacy-preferences.js","bun":"./dist/legacy-preferences.js","node":"./dist/node/legacy-preferences.js","default":"./dist/legacy-preferences.js"},"./notifications.capability":{"types":"./dist/notifications.capability.d.ts","browser":"./dist/browser/notifications.capability.js","bun":"./dist/notifications.capability.js","node":"./dist/node/notifications.capability.js","default":"./dist/notifications.capability.js"},"./notifications.feature":{"types":"./dist/notifications.feature.d.ts","browser":"./dist/browser/notifications.feature.js","bun":"./dist/notifications.feature.js","node":"./dist/node/notifications.feature.js","default":"./dist/notifications.feature.js"},"./product-channels":{"types":"./dist/product-channels/index.d.ts","browser":"./dist/browser/product-channels/index.js","bun":"./dist/product-channels/index.js","node":"./dist/node/product-channels/index.js","default":"./dist/product-channels/index.js"},"./product-channels/testing":{"types":"./dist/product-channels/testing.d.ts","browser":"./dist/browser/product-channels/testing.js","bun":"./dist/product-channels/testing.js","node":"./dist/node/product-channels/testing.js","default":"./dist/product-channels/testing.js"},"./templates":{"types":"./dist/templates/index.d.ts","browser":"./dist/browser/templates/index.js","bun":"./dist/templates/index.js","node":"./dist/node/templates/index.js","default":"./dist/templates/index.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.notification","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/domains/communication/notification/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./channels","importPath":"@lssm-tech/lib.notification/channels","target":"./src/channels/index.ts","targets":[{"conditions":[],"target":"./src/channels/index.ts","sourcePath":"packages/domains/communication/notification/src/channels/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./channels/base","importPath":"@lssm-tech/lib.notification/channels/base","target":"./src/channels/base.ts","targets":[{"conditions":[],"target":"./src/channels/base.ts","sourcePath":"packages/domains/communication/notification/src/channels/base.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/base.ts","sourceStatus":"verified source file"}]},{"subpath":"./channels/provider-channels","importPath":"@lssm-tech/lib.notification/channels/provider-channels","target":"./src/channels/provider-channels.ts","targets":[{"conditions":[],"target":"./src/channels/provider-channels.ts","sourcePath":"packages/domains/communication/notification/src/channels/provider-channels.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/provider-channels.ts","sourceStatus":"verified source file"}]},{"subpath":"./channels/types","importPath":"@lssm-tech/lib.notification/channels/types","target":"./src/channels/types.ts","targets":[{"conditions":[],"target":"./src/channels/types.ts","sourcePath":"packages/domains/communication/notification/src/channels/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/channels/types.ts","sourceStatus":"verified source file"}]},{"subpath":"./communication-os","importPath":"@lssm-tech/lib.notification/communication-os","target":"./src/communication-os.ts","targets":[{"conditions":[],"target":"./src/communication-os.ts","sourcePath":"packages/domains/communication/notification/src/communication-os.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/communication-os.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts","importPath":"@lssm-tech/lib.notification/contracts","target":"./src/contracts/index.ts","targets":[{"conditions":[],"target":"./src/contracts/index.ts","sourcePath":"packages/domains/communication/notification/src/contracts/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/contracts/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities","importPath":"@lssm-tech/lib.notification/entities","target":"./src/entities/index.ts","targets":[{"conditions":[],"target":"./src/entities/index.ts","sourcePath":"packages/domains/communication/notification/src/entities/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/entities/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n","importPath":"@lssm-tech/lib.notification/i18n","target":"./src/i18n/index.ts","targets":[{"conditions":[],"target":"./src/i18n/index.ts","sourcePath":"packages/domains/communication/notification/src/i18n/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/catalogs","importPath":"@lssm-tech/lib.notification/i18n/catalogs","target":"./src/i18n/catalogs/index.ts","targets":[{"conditions":[],"target":"./src/i18n/catalogs/index.ts","sourcePath":"packages/domains/communication/notification/src/i18n/catalogs/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/catalogs/en","importPath":"@lssm-tech/lib.notification/i18n/catalogs/en","target":"./src/i18n/catalogs/en.ts","targets":[{"conditions":[],"target":"./src/i18n/catalogs/en.ts","sourcePath":"packages/domains/communication/notification/src/i18n/catalogs/en.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/en.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/catalogs/es","importPath":"@lssm-tech/lib.notification/i18n/catalogs/es","target":"./src/i18n/catalogs/es.ts","targets":[{"conditions":[],"target":"./src/i18n/catalogs/es.ts","sourcePath":"packages/domains/communication/notification/src/i18n/catalogs/es.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/es.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/catalogs/fr","importPath":"@lssm-tech/lib.notification/i18n/catalogs/fr","target":"./src/i18n/catalogs/fr.ts","targets":[{"conditions":[],"target":"./src/i18n/catalogs/fr.ts","sourcePath":"packages/domains/communication/notification/src/i18n/catalogs/fr.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/catalogs/fr.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/keys","importPath":"@lssm-tech/lib.notification/i18n/keys","target":"./src/i18n/keys.ts","targets":[{"conditions":[],"target":"./src/i18n/keys.ts","sourcePath":"packages/domains/communication/notification/src/i18n/keys.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/keys.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/locale","importPath":"@lssm-tech/lib.notification/i18n/locale","target":"./src/i18n/locale.ts","targets":[{"conditions":[],"target":"./src/i18n/locale.ts","sourcePath":"packages/domains/communication/notification/src/i18n/locale.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/locale.ts","sourceStatus":"verified source file"}]},{"subpath":"./i18n/messages","importPath":"@lssm-tech/lib.notification/i18n/messages","target":"./src/i18n/messages.ts","targets":[{"conditions":[],"target":"./src/i18n/messages.ts","sourcePath":"packages/domains/communication/notification/src/i18n/messages.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/i18n/messages.ts","sourceStatus":"verified source file"}]},{"subpath":"./legacy-preference-mapping","importPath":"@lssm-tech/lib.notification/legacy-preference-mapping","target":"./src/legacy-preference-mapping.ts","targets":[{"conditions":[],"target":"./src/legacy-preference-mapping.ts","sourcePath":"packages/domains/communication/notification/src/legacy-preference-mapping.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preference-mapping.ts","sourceStatus":"verified source file"}]},{"subpath":"./legacy-preference-types","importPath":"@lssm-tech/lib.notification/legacy-preference-types","target":"./src/legacy-preference-types.ts","targets":[{"conditions":[],"target":"./src/legacy-preference-types.ts","sourcePath":"packages/domains/communication/notification/src/legacy-preference-types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preference-types.ts","sourceStatus":"verified source file"}]},{"subpath":"./legacy-preferences","importPath":"@lssm-tech/lib.notification/legacy-preferences","target":"./src/legacy-preferences.ts","targets":[{"conditions":[],"target":"./src/legacy-preferences.ts","sourcePath":"packages/domains/communication/notification/src/legacy-preferences.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/legacy-preferences.ts","sourceStatus":"verified source file"}]},{"subpath":"./notifications.capability","importPath":"@lssm-tech/lib.notification/notifications.capability","target":"./src/notifications.capability.ts","targets":[{"conditions":[],"target":"./src/notifications.capability.ts","sourcePath":"packages/domains/communication/notification/src/notifications.capability.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/notifications.capability.ts","sourceStatus":"verified source file"}]},{"subpath":"./notifications.feature","importPath":"@lssm-tech/lib.notification/notifications.feature","target":"./src/notifications.feature.ts","targets":[{"conditions":[],"target":"./src/notifications.feature.ts","sourcePath":"packages/domains/communication/notification/src/notifications.feature.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/notifications.feature.ts","sourceStatus":"verified source file"}]},{"subpath":"./product-channels","importPath":"@lssm-tech/lib.notification/product-channels","target":"./src/product-channels/index.ts","targets":[{"conditions":[],"target":"./src/product-channels/index.ts","sourcePath":"packages/domains/communication/notification/src/product-channels/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/product-channels/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./product-channels/testing","importPath":"@lssm-tech/lib.notification/product-channels/testing","target":"./src/product-channels/testing.ts","targets":[{"conditions":[],"target":"./src/product-channels/testing.ts","sourcePath":"packages/domains/communication/notification/src/product-channels/testing.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/product-channels/testing.ts","sourceStatus":"verified source file"}]},{"subpath":"./templates","importPath":"@lssm-tech/lib.notification/templates","target":"./src/templates/index.ts","targets":[{"conditions":[],"target":"./src/templates/index.ts","sourcePath":"packages/domains/communication/notification/src/templates/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/src/templates/index.ts","sourceStatus":"verified source file"}]}],"entryCount":24,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Notification documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.notification","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.notification.txt"},"readme":{"status":"available","body":"# `@lssm-tech/lib.notification`\n\nLibrary-first notification helpers for ContractSpec applications.\n\nThis package owns reusable notification entities, schema contributions, channels, templates, and i18n catalogs. Canonical notification contracts, capability metadata, and feature metadata are re-exported from `@lssm-tech/lib.contracts-spec/notifications`.\n\n## Compatibility\n\n- `notificationsSchemaContribution.moduleId` is `@lssm-tech/lib.notification`.\n- `legacyNotificationsSchemaContribution.moduleId` is `@lssm-tech/module.notifications`.\n- The deprecated `@lssm-tech/module.notifications` package remains available as a compatibility shim for existing consumers.\n\n## CommunicationOS migration\n\n`./legacy-preferences` converts legacy notification JSON into sealed\nCommunicationOS preference sets while preserving the complete source snapshot\nand every unmapped value. Enabled external routes without a consent reference\nrequire review instead of silently becoming deliverable.\n\n`./communication-os` compiles a legacy notification request into the canonical\nCommunicationOS routing input through an injected port. It returns a prepared or\nblocked decision only: the facade has no provider dependency, credential, send\ntool, fallback authority, or external-effect authority. Existing channel and\ntemplate helpers remain available during the compatibility window.\n\n## Product channel composition\n\n`./product-channels` composes a product's notification preference center and\nproducer on CommunicationOS routing. A product binding\n(`PACTENA_NOTIFICATION_BINDING_V1`, `HCIRCLE_NOTIFICATION_BINDING_V1`,\n`PERSONALOS_NOTIFICATION_BINDING_V1`) names the product, application, agent,\npolicy and feature refs and the channels it offers; `in_app` is mandatory as\nthe durable fallback terminal.\n\n- `createProductNotificationPreferenceCenterV1` reads and commits one person's\n  explicit choices through a revision-CAS store. An unset record reads as\n  in-app only, external channels need an explicit consent ref, and disabling a\n  channel drops its consent.\n- `createProductNotificationProducerV1` turns those choices into host-resolved\n  opaque routes, a platform -> person -> product preference chain and a sealed\n  profile, prepares the delivery through the CommunicationOS facade and hands\n  the authority-free prepared delivery to the host admission port. A requested\n  channel without an enabled, consented route degrades to the in-app terminal.\n  The request's scope must name the person notified (`subjectRef` equals\n  `userRef`), otherwise it is blocked with `scope_mismatch`.\n\nPreference records are keyed by product, person and full scope\n(`productNotificationPreferenceKeyV1`): a person in several tenants,\nworkspaces or spaces holds one independent record per scope, and a store's\n`load` and `compareAndSet` must use that key. Hosts mint consent evidence from\nthe authenticated session with `mintProductNotificationConsentRefV1` (product,\nchannel, person and the revision at which consent was affirmed) instead of\nstoring client-supplied text.\n\nThe host (`ProductNotificationHostV1`) supplies CommunicationOS routing, the\nroute directory, eligibility evidence and Runtime Node delivery admission.\nWithout a host or store every call returns a no-detail `unavailable` outcome;\nthe producer never dispatches a provider. `./product-channels/testing` is a\nlocal fake host and scope-keyed in-memory store for tests and must not be\nbound in a deployed host.\n","sourcePath":"packages/domains/communication/notification/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/communication/notification/README.md","blobSha":"55101c427be326d309e9de25edb0143318488912","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"communication-and-notifications","areaTitle":"Communication and notifications","displayName":"lib.notification","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.notification/","contextUrl":"/docs/packages/lib.notification.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}