sfnp-core
v0.1.0
Published
Shared SFNP library: content analysis and document/PDF rendering for Sales For Nice People
Readme
sfnp-core
Single shared library for Sales For Nice People (SFNP).
One package, modular subpaths — extract once, grow without renaming:
| Import | Role |
| --- | --- |
| sfnp-core / sfnp-core/analyze | Content signals (sentiment, opportunity score, linkable terms) |
| sfnp-core/document | Brand tokens + checklist PDF rendering (Uint8Array) |
| sfnp-core/integrations | Reserved for MailerLite / WP (not implemented yet) |
Consumed by the one SFNP Obsidian plugin (checklist now; interlink / integrations as modules later). This package has no Obsidian APIs and does not write vault files.
Install
npm install sfnp-coreAnalyze
import { analyzeContent } from 'sfnp-core/analyze';
const result = analyzeContent({
title: 'The Ethical Sales Guide',
body: 'Selling does not have to be extractive...',
tags: ['sales'],
});Document / PDF
import { renderChecklistPdf, ddxrCheatsheetSections } from 'sfnp-core/document';
const bytes = await renderChecklistPdf({
title: 'Deal Diagnosis X-Ray Cheatsheet',
tagline: 'More sales, less ghosting',
sections: ddxrCheatsheetSections(),
});
// Caller (e.g. Obsidian plugin) writes bytes to disk/vaultMigration from sfnp-content-analyzer
analyzeContent lives here. Prefer sfnp-core / sfnp-core/analyze. The old package may re-export this module temporarily.
Development
pnpm install
pnpm test
pnpm run build