Skip to content
Merged

Dev #33

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions apps/docs/src/content/docs/markforge/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@ sidebar:
description: Release history and version notes for @masumdev/markforge.
---

## [0.5.1] - 2026-09-11

### Cross-Platform PDF Back Cover Preservation

- **CSS Height Standardizing**:
- Adjusted `.markforge-back-cover` print media CSS height to `calc(100vh - 2px)` with `overflow: hidden;` and `page-break-after: avoid; break-after: avoid;`, eliminating subpixel page overflow across Windows (DirectWrite / Edge / Chrome) and Linux (FreeType).
- **Eliminated Blind Page Truncation**:
- Removed trailing page deletion (`pdfDoc.removePage`) in the PDF builder pipeline that previously led to the back cover closing card being inadvertently deleted on Windows multi-page documents.

---

## [0.5.0] - 2026-09-03

### Plain Text (.txt) Document Publishing Engine
Expand Down
18 changes: 18 additions & 0 deletions apps/docs/src/content/docs/tscheck/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,24 @@ sidebar:
description: Release history and version notes for @masumdev/tscheck.
---

### v0.2.5

#### Bug Fixes & Clean Terminal Output
- **Node.js Typeless ESM Warning Suppression**:
- Filtered out Node.js v22+ `MODULE_TYPELESS_PACKAGE_JSON` warning during dynamic configuration module loading, ensuring a completely clean terminal experience across all project environments.

---

### v0.2.4

#### Improvements & Fixes
- **Documentation & Homepage URLs**:
- Updated monorepo documentation links and repository homepage metadata to the new production URL: `https://react-native-library-docs.vercel.app/`.
- **Monorepo Configuration & Import Resolving**:
- Standardized `defineConfig` import resolution for TypeScript project configurations (`tscheck.config.ts`).

---

### v0.2.3

#### Bug Fixes & Improvements
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "react-native-library",
"private": true,
"type": "module",
"scripts": {
"dev": "turbo run dev",
"dev:native": "turbo dev --filter='@masumdev/*' --filter=native",
Expand Down
7 changes: 7 additions & 0 deletions packages/markforge/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ All notable changes to **@masumdev/markforge** will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.1] - 2026-09-11

### Fixed
- **Cross-Platform PDF Back Cover Preservation**:
- Standardized `.markforge-back-cover` print media CSS height to `calc(100vh - 2px)` with `overflow: hidden;` and explicit `page-break-after: avoid; break-after: avoid;`, eliminating subpixel page overflow across Windows (DirectWrite / Edge / Chrome) and Linux (FreeType).
- Removed blind trailing page truncation (`pdfDoc.removePage`) that previously caused the back cover page to be incorrectly deleted on Windows multi-page documents.

---

## [0.5.0] - 2026-09-03
Expand Down
2 changes: 1 addition & 1 deletion packages/markforge/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@masumdev/markforge",
"version": "0.5.0",
"version": "0.5.1",
"description": "Modern, high-performance Markdown & MDX multi-format document publishing engine and CLI (DOCX, PDF, HTML, and Images) with embedded HTML/CSS, image inliner, and Ink terminal UI.",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
Expand Down
6 changes: 3 additions & 3 deletions packages/markforge/src/core/html/htmlBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -522,9 +522,9 @@ export async function renderBackCoverHtml(
break-before: page;
page-break-after: avoid;
break-after: avoid;
min-height: 100vh;
height: 100vh;
max-height: 100vh;
min-height: calc(100vh - 2px);
height: calc(100vh - 2px);
max-height: calc(100vh - 2px);
margin: 0;
box-sizing: border-box;
overflow: hidden;
Expand Down
15 changes: 7 additions & 8 deletions packages/markforge/src/core/pdf/pdfBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -309,11 +309,16 @@ export function injectPagedMediaStyles(
}
.markforge-back-cover {
page: back-cover-page;
min-height: 100vh;
height: 100vh;
min-height: calc(100vh - 2px);
height: calc(100vh - 2px);
max-height: calc(100vh - 2px);
margin: 0;
box-sizing: border-box;
overflow: hidden;
break-before: page;
page-break-before: always;
break-after: avoid;
page-break-after: avoid;
}`
: "";

Expand Down Expand Up @@ -511,12 +516,6 @@ export async function buildPdfDocument(



// When backCover is enabled, Chromium headless print generates a trailing overflow page after the 100vh back cover section.
// Remove this trailing blank page so the back cover is the true final page.
if (resolved.backCover?.enabled && pdfDoc.getPageCount() > 2) {
pdfDoc.removePage(pdfDoc.getPageCount() - 1);
}

if (resolved.watermark) {
const wmPng = generateWatermarkPngBuffer(chromePath, resolved.watermark);
if (wmPng) {
Expand Down
3 changes: 3 additions & 0 deletions packages/markforge/test/enterpriseFeatures.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,9 @@ Body paragraph before closing page.

const docxBuf = await buildDocxDocument(doc, {});
expect(docxBuf.length).toBeGreaterThan(1000);

const pdfBuf = await buildPdfDocument(doc, {});
expect(pdfBuf.length).toBeGreaterThan(500);
});

it("Metadata Cascading Priority: Frontmatter vs Config File", () => {
Expand Down
18 changes: 18 additions & 0 deletions packages/tscheck/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,24 @@ All notable changes to `@masumdev/tscheck` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.5] - 2026-09-11

### Fixed
- **Node.js ESM Typeless Package Warning Suppression**:
- Filtered out Node.js v22+ `MODULE_TYPELESS_PACKAGE_JSON` warning during dynamic configuration module loading, ensuring a completely clean terminal experience across all project environments.

---

## [0.2.4] - 2026-09-11

### Fixed
- **Documentation & Homepage URLs**:
- Updated all monorepo documentation portal URLs and repository links to the new production domain: `https://react-native-library-docs.vercel.app/`.
- **Monorepo Configuration & Import Resolving**:
- Standardized `defineConfig` import resolution for TypeScript project configurations.

---

## [0.2.3] - 2026-09-11

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion packages/tscheck/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@masumdev/tscheck",
"version": "0.2.3",
"version": "0.2.5",
"description": "Modern, high-performance TypeScript AST code audit CLI and engine with beautiful Ink terminal UI and type-safe config.",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
Expand Down
11 changes: 11 additions & 0 deletions packages/tscheck/src/cli.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ import { generateAiPrompt } from "./core/aiPrompt.js";
import { startReportServer, openInBrowser } from "./core/server.js";
import { getTscheckVersion } from "./version.js";

// Suppress Node.js v22+ typeless package.json ESM warning during dynamic config import
process.on("warning", (warning: Error & { code?: string }) => {
if (
warning.name === "MODULE_TYPELESS_PACKAGE_JSON" ||
warning.code === "MODULE_TYPELESS_PACKAGE_JSON"
) {
return;
}
console.warn(warning);
});

const VERSION = getTscheckVersion();

const program = new Command();
Expand Down
2 changes: 1 addition & 1 deletion tscheck.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { defineConfig } from "./packages/tscheck/src/index.js";
import { defineConfig } from "@masumdev/tscheck";

export default defineConfig({
rootDir: process.cwd(),
Expand Down
Loading