@sentryqa/core
v0.1.7
Published
Deterministic schemas, Markdown, privacy, geometry, and anchors for SentryQA.
Readme
@sentryqa/core
Models, validation, and deterministic utilities for SentryQA Markdown artifacts.
When to Use It
Install it only if you are building a custom integration, a tool that reads SentryQA issues, or an exporter. You do not need it to use SentryQA in a React + Vite application: the CLI installs @sentryqa/vite, which already integrates it.
npm install @sentryqa/coreMinimal Workflow
import { parseIssueMarkdown, serializeIssueMarkdown } from '@sentryqa/core';
const parsed = parseIssueMarkdown(markdownFromDisk);
console.log(parsed.issue.title, parsed.issue.status);
const markdown = serializeIssueMarkdown({
...parsed,
body: `${parsed.body}\nReviewed by the team.`,
});Canonical issue records use strict schema v2: parseCanonicalIssueV2 and serializeCanonicalIssueV2 reject legacy, incomplete, and unknown front matter. A valid issue uses <project>/.sentryqa/issues/SQA-XXXX.md plus .sentryqa/issues/SQA-XXXX/ assets, with manifest hashes, byte sizes, MIME metadata, same-ID containment, and a 1 GiB aggregate cap. The Node-only Manager validates existing regular, non-symlink assets without executing their content.
The parser validates the issue frontmatter and model. The serializer produces canonical Markdown again. It also exports layout codecs (parseLayoutMarkdown, serializeLayoutMarkdown, normalizeLayoutSpec), models, geometry, anchors, numbering, live-authoring validation, and formatters such as formatIssue and formatIssues.
Live layouts are version 3 artifacts with producer live-authoring. They describe bounded author intent, not DOM edits or generated code. Their reports include stable numbered assets, authored geometry, separately captured host evidence, nearby privacy-safe summaries, relationships, and unresolved-anchor warnings.
Relationship to the Other Packages
@sentryqa/viteuses core to validate and persist issues/layouts in the local bridge.@sentryqa/runtimeconsumes the models during browser interaction.@sentryqa/reactuses the context types to enrich component metadata.sentryqaconfigures Vite for you; it does not install core as a direct dependency of your application.
Notes
- It is an ESM package with TypeScript declarations; its public entry point is
dist/index.js. - It does not start servers, mount a UI, or capture the DOM.
- It rejects sensitive fields such as passwords, cookies, storage, requests, responses, and console data when processing artifacts.
- If you only want to mark the UI, do not install it directly.
