@simplysf/simply-document-core
v0.2.4
Published
Confluence-storage-format change report and technical design document rendering — the library layer behind @simplysf/simply-document, published separately for direct consumption (e.g. editor tooling, CI scripts) without the CLI framework
Readme
@simplysf/simply-document-core
Confluence-storage-format change report and technical design document rendering. This is not a Salesforce CLI plugin — it's the library layer behind @simplysf/simply-document's sf simply document diff/generate commands, published separately so it can be imported directly by anything that wants the same rendering (an editor extension, a CI job, a script) without pulling in the CLI framework.
Unlike the other internal libraries in this monorepo (@simplysf/simply-core, @simplysf/simply-plugin-kit, @simplysf/simply-report), this package is meant to be depended on by projects outside this repo, not only by other simply-* packages.
Install
npm install @simplysf/simply-document-coreRequires Node.js >=22 and either "type": "module" or a dynamic import() — this package ships ESM only.
API
Everything below is exported from the package root. Removing or renaming an export is a breaking change; see src/index.ts.
| Export | Description |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| buildChangeReportHtml(changes, customTemplateSource?) | Pure function: renders a Confluence-storage-format change report grouping a set of changed components by component type, for pasting into a release/change-management page. |
| buildTechnicalDesignDocumentHtml(data, customTemplateSource?) | Pure function: renders a full Confluence-storage-format technical design document from a Salesforce project's scanned metadata — objects/data model, security model, groups/queues/permissions, solution inventory, and custom code inventory. |
| ChangeEntry, ChangesByComponentType | Types for buildChangeReportHtml's input. |
| TechnicalDesignDocumentData | The full data model buildTechnicalDesignDocumentHtml renders, plus its 28 supporting item types: ApexClassItem, ApexTriggerItem, ApprovalProcessItem, AuraComponentItem, CustomApplicationItem, CustomFieldItem, CustomLabelItem, CustomMetadataItem, DashboardItem, DigitalExperienceBundleItem, EmailTemplateItem, ExperienceBundleItem, FieldSetItem, FlexipageItem, FlowItem, GroupItem, LayoutItem, LightningComponentItem, ObjectItem, PermissionSetGroupItem, PermissionSetItem, QueueItem, RecordTypeItem, ReportItem, SharingRuleItem, StaticResourceItem, ValidationRuleItem, VisualforcePageItem. |
Both functions accept an optional second customTemplateSource argument: a caller-supplied Handlebars template string, compiled against the same Handlebars instance as the built-in template (so it can use the same partials/helpers — changeTable for the change report, loud for the technical design document).
import { buildChangeReportHtml, type ChangesByComponentType } from '@simplysf/simply-document-core';
const changes: ChangesByComponentType = {
apexClasses: [
{
componentName: 'AccountService',
componentType: 'ApexClass',
changeType: 'Added',
changeDescription: 'New service class',
path: 'force-app/main/default/classes/AccountService.cls',
},
],
};
const html = buildChangeReportHtml(changes);
// paste the result into a Confluence page's storage-format editorimport { buildTechnicalDesignDocumentHtml, type TechnicalDesignDocumentData } from '@simplysf/simply-document-core';
const html = buildTechnicalDesignDocumentHtml(scannedProjectData);Issues
Please report any issues at https://github.com/SimplySF/simply-plugins-core/issues
Contributing
This package is part of the @simplysf/simply monorepo. See CONTRIBUTING.md for what's specific to this package, and the repo's root CONTRIBUTING.md for repo structure, setup, commit conventions, and how to submit a pull request. Please also read our Code of Conduct.
License
Licensed under the Apache-2.0 license.
